Thread: pgsql: Add infrastructure to save and restore GUC values.
Add infrastructure to save and restore GUC values. This is further infrastructure for parallelism. Amit Khandekar, Noah Misch, Robert Haas Branch ------ master Details ------- http://git.postgresql.org/pg/commitdiff/f5d9698a8400972bd604069a3f15ca33e535ea6e Modified Files -------------- contrib/dblink/dblink.c | 2 +- contrib/postgres_fdw/postgres_fdw.c | 6 +- src/backend/commands/extension.c | 6 +- src/backend/utils/adt/ri_triggers.c | 2 +- src/backend/utils/misc/guc-file.l | 4 +- src/backend/utils/misc/guc.c | 461 ++++++++++++++++++++++++++++++++--- src/include/utils/guc.h | 8 +- 7 files changed, 446 insertions(+), 43 deletions(-)
On 11/25/2014 12:17 AM, Robert Haas wrote: > Add infrastructure to save and restore GUC values. > > This is further infrastructure for parallelism. > > Amit Khandekar, Noah Misch, Robert Haas guc.c: In function ‘EstimateGUCStateSpace’: guc.c:8506:7: warning: ‘valsize’ may be used uninitialized in this function [-Wmaybe-uninitialized] Size valsize; ^ guc.c: In function ‘SerializeGUCState’: guc.c:8762:56: warning: ‘i_role’ may be used uninitialized in this function [-Wmaybe-uninitialized] serialize_variable(&curptr, &bytes_left, guc_variables[i_role]); ^ - Heikki
Heikki Linnakangas <hlinnakangas@vmware.com> writes: > On 11/25/2014 12:17 AM, Robert Haas wrote: >> Add infrastructure to save and restore GUC values. > guc.c: In function ‘EstimateGUCStateSpace’: > guc.c:8506:7: warning: ‘valsize’ may be used uninitialized in this > function [-Wmaybe-uninitialized] > Size valsize; > ^ > guc.c: In function ‘SerializeGUCState’: > guc.c:8762:56: warning: ‘i_role’ may be used uninitialized in this > function [-Wmaybe-uninitialized] > serialize_variable(&curptr, &bytes_left, guc_variables[i_role]); > ^ I fixed the latter (my compiler was unhappy about it though not about the former). I'm not sure whether Robert would prefer to fix the former by adding a useless initialization or by adding a default: to the switch. Personally I'd lean towards the initialization, though, as a default: would suppress warnings about errors-of-omission if we ever add more switch cases. regards, tom lane
On Tue, Nov 25, 2014 at 3:20 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Heikki Linnakangas <hlinnakangas@vmware.com> writes: >> On 11/25/2014 12:17 AM, Robert Haas wrote: >>> Add infrastructure to save and restore GUC values. > >> guc.c: In function ‘EstimateGUCStateSpace’: >> guc.c:8506:7: warning: ‘valsize’ may be used uninitialized in this >> function [-Wmaybe-uninitialized] >> Size valsize; >> ^ >> guc.c: In function ‘SerializeGUCState’: >> guc.c:8762:56: warning: ‘i_role’ may be used uninitialized in this >> function [-Wmaybe-uninitialized] >> serialize_variable(&curptr, &bytes_left, guc_variables[i_role]); >> ^ > > I fixed the latter (my compiler was unhappy about it though not about > the former). I'm not sure whether Robert would prefer to fix > the former by adding a useless initialization or by adding a default: > to the switch. Personally I'd lean towards the initialization, though, > as a default: would suppress warnings about errors-of-omission if we > ever add more switch cases. Done. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company