PostgreSQL Source Code  git master
guc.h
Go to the documentation of this file.
1 /*--------------------------------------------------------------------
2  * guc.h
3  *
4  * External declarations pertaining to backend/utils/misc/guc.c and
5  * backend/utils/misc/guc-file.l
6  *
7  * Copyright (c) 2000-2022, PostgreSQL Global Development Group
8  * Written by Peter Eisentraut <peter_e@gmx.net>.
9  *
10  * src/include/utils/guc.h
11  *--------------------------------------------------------------------
12  */
13 #ifndef GUC_H
14 #define GUC_H
15 
16 #include "nodes/parsenodes.h"
17 #include "tcop/dest.h"
18 #include "utils/array.h"
19 
20 
21 /* upper limit for GUC variables measured in kilobytes of memory */
22 /* note that various places assume the byte size fits in a "long" variable */
23 #if SIZEOF_SIZE_T > 4 && SIZEOF_LONG > 4
24 #define MAX_KILOBYTES INT_MAX
25 #else
26 #define MAX_KILOBYTES (INT_MAX / 1024)
27 #endif
28 
29 /*
30  * Automatic configuration file name for ALTER SYSTEM.
31  * This file will be used to store values of configuration parameters
32  * set by ALTER SYSTEM command.
33  */
34 #define PG_AUTOCONF_FILENAME "postgresql.auto.conf"
35 
36 /*
37  * Certain options can only be set at certain times. The rules are
38  * like this:
39  *
40  * INTERNAL options cannot be set by the user at all, but only through
41  * internal processes ("server_version" is an example). These are GUC
42  * variables only so they can be shown by SHOW, etc.
43  *
44  * POSTMASTER options can only be set when the postmaster starts,
45  * either from the configuration file or the command line.
46  *
47  * SIGHUP options can only be set at postmaster startup or by changing
48  * the configuration file and sending the HUP signal to the postmaster
49  * or a backend process. (Notice that the signal receipt will not be
50  * evaluated immediately. The postmaster and the backend check it at a
51  * certain point in their main loop. It's safer to wait than to read a
52  * file asynchronously.)
53  *
54  * BACKEND and SU_BACKEND options can only be set at postmaster startup,
55  * from the configuration file, or by client request in the connection
56  * startup packet (e.g., from libpq's PGOPTIONS variable). SU_BACKEND
57  * options can be set from the startup packet only when the user is a
58  * superuser. Furthermore, an already-started backend will ignore changes
59  * to such an option in the configuration file. The idea is that these
60  * options are fixed for a given backend once it's started, but they can
61  * vary across backends.
62  *
63  * SUSET options can be set at postmaster startup, with the SIGHUP
64  * mechanism, or from the startup packet or SQL if you're a superuser.
65  *
66  * USERSET options can be set by anyone any time.
67  */
68 typedef enum
69 {
78 
79 /*
80  * The following type records the source of the current setting. A
81  * new setting can only take effect if the previous setting had the
82  * same or lower level. (E.g, changing the config file doesn't
83  * override the postmaster command line.) Tracking the source allows us
84  * to process sources in any convenient order without affecting results.
85  * Sources <= PGC_S_OVERRIDE will set the default used by RESET, as well
86  * as the current value. Note that source == PGC_S_OVERRIDE should be
87  * used when setting a PGC_INTERNAL option.
88  *
89  * PGC_S_INTERACTIVE isn't actually a source value, but is the
90  * dividing line between "interactive" and "non-interactive" sources for
91  * error reporting purposes.
92  *
93  * PGC_S_TEST is used when testing values to be used later. For example,
94  * ALTER DATABASE/ROLE tests proposed per-database or per-user defaults this
95  * way, and CREATE FUNCTION tests proposed function SET clauses this way.
96  * This is an interactive case, but it needs its own source value because
97  * some assign hooks need to make different validity checks in this case.
98  * In particular, references to nonexistent database objects generally
99  * shouldn't throw hard errors in this case, at most NOTICEs, since the
100  * objects might exist by the time the setting is used for real.
101  *
102  * NB: see GucSource_Names in guc.c if you change this.
103  */
104 typedef enum
105 {
106  PGC_S_DEFAULT, /* hard-wired default ("boot_val") */
107  PGC_S_DYNAMIC_DEFAULT, /* default computed during initialization */
108  PGC_S_ENV_VAR, /* postmaster environment variable */
109  PGC_S_FILE, /* postgresql.conf */
110  PGC_S_ARGV, /* postmaster command line */
111  PGC_S_GLOBAL, /* global in-database setting */
112  PGC_S_DATABASE, /* per-database setting */
113  PGC_S_USER, /* per-user setting */
114  PGC_S_DATABASE_USER, /* per-user-and-database setting */
115  PGC_S_CLIENT, /* from client connection request */
116  PGC_S_OVERRIDE, /* special case to forcibly set default */
117  PGC_S_INTERACTIVE, /* dividing line for error reporting */
118  PGC_S_TEST, /* test per-database or per-user setting */
119  PGC_S_SESSION /* SET command */
121 
122 /*
123  * Parsing the configuration file(s) will return a list of name-value pairs
124  * with source location info. We also abuse this data structure to carry
125  * error reports about the config files. An entry reporting an error will
126  * have errmsg != NULL, and might have NULLs for name, value, and/or filename.
127  *
128  * If "ignore" is true, don't attempt to apply the item (it might be an error
129  * report, or an item we determined to be duplicate). "applied" is set true
130  * if we successfully applied, or could have applied, the setting.
131  */
132 typedef struct ConfigVariable
133 {
134  char *name;
135  char *value;
136  char *errmsg;
137  char *filename;
139  bool ignore;
140  bool applied;
143 
144 extern bool ParseConfigFile(const char *config_file, bool strict,
145  const char *calling_file, int calling_lineno,
146  int depth, int elevel,
147  ConfigVariable **head_p, ConfigVariable **tail_p);
148 extern bool ParseConfigFp(FILE *fp, const char *config_file,
149  int depth, int elevel,
150  ConfigVariable **head_p, ConfigVariable **tail_p);
151 extern bool ParseConfigDirectory(const char *includedir,
152  const char *calling_file, int calling_lineno,
153  int depth, int elevel,
154  ConfigVariable **head_p,
155  ConfigVariable **tail_p);
157 extern char *DeescapeQuotedString(const char *s);
158 
159 /*
160  * The possible values of an enum variable are specified by an array of
161  * name-value pairs. The "hidden" flag means the value is accepted but
162  * won't be displayed when guc.c is asked for a list of acceptable values.
163  */
165 {
166  const char *name;
167  int val;
168  bool hidden;
169 };
170 
171 /*
172  * Signatures for per-variable check/assign/show hook functions
173  */
174 typedef bool (*GucBoolCheckHook) (bool *newval, void **extra, GucSource source);
175 typedef bool (*GucIntCheckHook) (int *newval, void **extra, GucSource source);
176 typedef bool (*GucRealCheckHook) (double *newval, void **extra, GucSource source);
177 typedef bool (*GucStringCheckHook) (char **newval, void **extra, GucSource source);
178 typedef bool (*GucEnumCheckHook) (int *newval, void **extra, GucSource source);
179 
180 typedef void (*GucBoolAssignHook) (bool newval, void *extra);
181 typedef void (*GucIntAssignHook) (int newval, void *extra);
182 typedef void (*GucRealAssignHook) (double newval, void *extra);
183 typedef void (*GucStringAssignHook) (const char *newval, void *extra);
184 typedef void (*GucEnumAssignHook) (int newval, void *extra);
185 
186 typedef const char *(*GucShowHook) (void);
187 
188 /*
189  * Miscellaneous
190  */
191 typedef enum
192 {
193  /* Types of set_config_option actions */
194  GUC_ACTION_SET, /* regular SET command */
195  GUC_ACTION_LOCAL, /* SET LOCAL command */
196  GUC_ACTION_SAVE /* function SET option, or temp assignment */
198 
199 #define GUC_QUALIFIER_SEPARATOR '.'
200 
201 /*
202  * bit values in "flags" of a GUC variable
203  */
204 #define GUC_LIST_INPUT 0x0001 /* input can be list format */
205 #define GUC_LIST_QUOTE 0x0002 /* double-quote list elements */
206 #define GUC_NO_SHOW_ALL 0x0004 /* exclude from SHOW ALL */
207 #define GUC_NO_RESET_ALL 0x0008 /* exclude from RESET ALL */
208 #define GUC_REPORT 0x0010 /* auto-report changes to client */
209 #define GUC_NOT_IN_SAMPLE 0x0020 /* not in postgresql.conf.sample */
210 #define GUC_DISALLOW_IN_FILE 0x0040 /* can't set in postgresql.conf */
211 #define GUC_CUSTOM_PLACEHOLDER 0x0080 /* placeholder for custom variable */
212 #define GUC_SUPERUSER_ONLY 0x0100 /* show only to superusers */
213 #define GUC_IS_NAME 0x0200 /* limit string to NAMEDATALEN-1 */
214 #define GUC_NOT_WHILE_SEC_REST 0x0400 /* can't set if security restricted */
215 #define GUC_DISALLOW_IN_AUTO_FILE 0x0800 /* can't set in
216  * PG_AUTOCONF_FILENAME */
217 
218 #define GUC_UNIT_KB 0x1000 /* value is in kilobytes */
219 #define GUC_UNIT_BLOCKS 0x2000 /* value is in blocks */
220 #define GUC_UNIT_XBLOCKS 0x3000 /* value is in xlog blocks */
221 #define GUC_UNIT_MB 0x4000 /* value is in megabytes */
222 #define GUC_UNIT_BYTE 0x8000 /* value is in bytes */
223 #define GUC_UNIT_MEMORY 0xF000 /* mask for size-related units */
224 
225 #define GUC_UNIT_MS 0x10000 /* value is in milliseconds */
226 #define GUC_UNIT_S 0x20000 /* value is in seconds */
227 #define GUC_UNIT_MIN 0x30000 /* value is in minutes */
228 #define GUC_UNIT_TIME 0xF0000 /* mask for time-related units */
229 
230 #define GUC_EXPLAIN 0x100000 /* include in explain */
231 
232 /*
233  * GUC_RUNTIME_COMPUTED is intended for runtime-computed GUCs that are only
234  * available via 'postgres -C' if the server is not running.
235  */
236 #define GUC_RUNTIME_COMPUTED 0x200000
237 
238 #define GUC_UNIT (GUC_UNIT_MEMORY | GUC_UNIT_TIME)
239 
240 
241 /* GUC vars that are actually declared in guc.c, rather than elsewhere */
242 extern PGDLLIMPORT bool Debug_print_plan;
243 extern PGDLLIMPORT bool Debug_print_parse;
245 extern PGDLLIMPORT bool Debug_pretty_print;
246 
247 extern PGDLLIMPORT bool log_parser_stats;
248 extern PGDLLIMPORT bool log_planner_stats;
249 extern PGDLLIMPORT bool log_executor_stats;
250 extern PGDLLIMPORT bool log_statement_stats;
252 
255 
256 extern PGDLLIMPORT bool log_duration;
260 extern PGDLLIMPORT int log_min_messages;
264 extern PGDLLIMPORT int log_temp_files;
266 extern PGDLLIMPORT double log_xact_sample_rate;
267 extern PGDLLIMPORT char *backtrace_functions;
269 
270 extern PGDLLIMPORT int temp_file_limit;
271 
272 extern PGDLLIMPORT int num_temp_buffers;
273 
274 extern PGDLLIMPORT char *cluster_name;
275 extern PGDLLIMPORT char *ConfigFileName;
276 extern PGDLLIMPORT char *HbaFileName;
277 extern PGDLLIMPORT char *IdentFileName;
278 extern PGDLLIMPORT char *external_pid_file;
279 
280 extern PGDLLIMPORT char *application_name;
281 
285 extern PGDLLIMPORT int tcp_user_timeout;
286 
287 #ifdef TRACE_SORT
288 extern PGDLLIMPORT bool trace_sort;
289 #endif
290 
291 /*
292  * Functions exported by guc.c
293  */
294 extern void SetConfigOption(const char *name, const char *value,
295  GucContext context, GucSource source);
296 
297 extern void DefineCustomBoolVariable(const char *name,
298  const char *short_desc,
299  const char *long_desc,
300  bool *valueAddr,
301  bool bootValue,
302  GucContext context,
303  int flags,
304  GucBoolCheckHook check_hook,
305  GucBoolAssignHook assign_hook,
306  GucShowHook show_hook);
307 
308 extern void DefineCustomIntVariable(const char *name,
309  const char *short_desc,
310  const char *long_desc,
311  int *valueAddr,
312  int bootValue,
313  int minValue,
314  int maxValue,
315  GucContext context,
316  int flags,
317  GucIntCheckHook check_hook,
318  GucIntAssignHook assign_hook,
319  GucShowHook show_hook);
320 
321 extern void DefineCustomRealVariable(const char *name,
322  const char *short_desc,
323  const char *long_desc,
324  double *valueAddr,
325  double bootValue,
326  double minValue,
327  double maxValue,
328  GucContext context,
329  int flags,
330  GucRealCheckHook check_hook,
331  GucRealAssignHook assign_hook,
332  GucShowHook show_hook);
333 
334 extern void DefineCustomStringVariable(const char *name,
335  const char *short_desc,
336  const char *long_desc,
337  char **valueAddr,
338  const char *bootValue,
339  GucContext context,
340  int flags,
341  GucStringCheckHook check_hook,
342  GucStringAssignHook assign_hook,
343  GucShowHook show_hook);
344 
345 extern void DefineCustomEnumVariable(const char *name,
346  const char *short_desc,
347  const char *long_desc,
348  int *valueAddr,
349  int bootValue,
350  const struct config_enum_entry *options,
351  GucContext context,
352  int flags,
353  GucEnumCheckHook check_hook,
354  GucEnumAssignHook assign_hook,
355  GucShowHook show_hook);
356 
357 extern void MarkGUCPrefixReserved(const char *className);
358 
359 /* old name for MarkGUCPrefixReserved, for backwards compatibility: */
360 #define EmitWarningsOnPlaceholders(className) MarkGUCPrefixReserved(className)
361 
362 extern const char *GetConfigOption(const char *name, bool missing_ok,
363  bool restrict_privileged);
364 extern const char *GetConfigOptionResetString(const char *name);
365 extern int GetConfigOptionFlags(const char *name, bool missing_ok);
366 extern void ProcessConfigFile(GucContext context);
367 extern char *convert_GUC_name_for_parameter_acl(const char *name);
368 extern bool check_GUC_name_for_parameter_acl(const char *name);
369 extern void InitializeGUCOptions(void);
370 extern void InitializeWalConsistencyChecking(void);
371 extern bool SelectConfigFiles(const char *userDoption, const char *progname);
372 extern void ResetAllOptions(void);
373 extern void AtStart_GUC(void);
374 extern int NewGUCNestLevel(void);
375 extern void AtEOXact_GUC(bool isCommit, int nestLevel);
376 extern void BeginReportingGUCOptions(void);
377 extern void ReportChangedGUCOptions(void);
378 extern void ParseLongOption(const char *string, char **name, char **value);
379 extern bool parse_int(const char *value, int *result, int flags,
380  const char **hintmsg);
381 extern bool parse_real(const char *value, double *result, int flags,
382  const char **hintmsg);
383 extern int set_config_option(const char *name, const char *value,
384  GucContext context, GucSource source,
385  GucAction action, bool changeVal, int elevel,
386  bool is_reload);
387 extern void AlterSystemSetConfigFile(AlterSystemStmt *altersysstmt);
388 extern char *GetConfigOptionByName(const char *name, const char **varname,
389  bool missing_ok);
390 extern void GetConfigOptionByNum(int varnum, const char **values, bool *noshow);
391 extern int GetNumConfigOptions(void);
392 
393 extern void SetPGVariable(const char *name, List *args, bool is_local);
394 extern void GetPGVariable(const char *name, DestReceiver *dest);
395 extern TupleDesc GetPGVariableResultDesc(const char *name);
396 
397 extern void ExecSetVariableStmt(VariableSetStmt *stmt, bool isTopLevel);
398 extern char *ExtractSetVariableArgs(VariableSetStmt *stmt);
399 
400 extern void ProcessGUCArray(ArrayType *array,
402 extern ArrayType *GUCArrayAdd(ArrayType *array, const char *name, const char *value);
403 extern ArrayType *GUCArrayDelete(ArrayType *array, const char *name);
404 extern ArrayType *GUCArrayReset(ArrayType *array);
405 
406 #ifdef EXEC_BACKEND
407 extern void write_nondefault_variables(GucContext context);
408 extern void read_nondefault_variables(void);
409 #endif
410 
411 /* GUC serialization */
412 extern Size EstimateGUCStateSpace(void);
413 extern void SerializeGUCState(Size maxsize, char *start_address);
414 extern void RestoreGUCState(void *gucstate);
415 
416 /* Support for messages reported from GUC check hooks */
417 
421 
422 extern void GUC_check_errcode(int sqlerrcode);
423 
424 #define GUC_check_errmsg \
425  pre_format_elog_string(errno, TEXTDOMAIN), \
426  GUC_check_errmsg_string = format_elog_string
427 
428 #define GUC_check_errdetail \
429  pre_format_elog_string(errno, TEXTDOMAIN), \
430  GUC_check_errdetail_string = format_elog_string
431 
432 #define GUC_check_errhint \
433  pre_format_elog_string(errno, TEXTDOMAIN), \
434  GUC_check_errhint_string = format_elog_string
435 
436 
437 /*
438  * The following functions are not in guc.c, but are declared here to avoid
439  * having to include guc.h in some widely used headers that it really doesn't
440  * belong in.
441  */
442 
443 /* in commands/tablespace.c */
444 extern bool check_default_tablespace(char **newval, void **extra, GucSource source);
445 extern bool check_temp_tablespaces(char **newval, void **extra, GucSource source);
446 extern void assign_temp_tablespaces(const char *newval, void *extra);
447 
448 /* in catalog/namespace.c */
449 extern bool check_search_path(char **newval, void **extra, GucSource source);
450 extern void assign_search_path(const char *newval, void *extra);
451 
452 /* in access/transam/xlog.c */
453 extern bool check_wal_buffers(int *newval, void **extra, GucSource source);
454 extern void assign_xlog_sync_method(int new_sync_method, void *extra);
455 
456 /* in access/transam/xlogprefetcher.c */
457 extern bool check_recovery_prefetch(int *new_value, void **extra, GucSource source);
458 extern void assign_recovery_prefetch(int new_value, void *extra);
459 
460 #endif /* GUC_H */
static Datum values[MAXATTR]
Definition: bootstrap.c:156
#define PGDLLIMPORT
Definition: c.h:1331
unsigned char bool
Definition: c.h:391
size_t Size
Definition: c.h:540
const char * name
Definition: encode.c:561
#define newval
void BeginReportingGUCOptions(void)
Definition: guc.c:6766
void GUC_check_errcode(int sqlerrcode)
Definition: guc.c:11726
void RestoreGUCState(void *gucstate)
Definition: guc.c:11160
bool(* GucBoolCheckHook)(bool *newval, void **extra, GucSource source)
Definition: guc.h:174
GucAction
Definition: guc.h:192
@ GUC_ACTION_SAVE
Definition: guc.h:196
@ GUC_ACTION_SET
Definition: guc.h:194
@ GUC_ACTION_LOCAL
Definition: guc.h:195
PGDLLIMPORT int client_min_messages
Definition: guc.c:637
bool parse_int(const char *value, int *result, int flags, const char **hintmsg)
Definition: guc.c:7098
void GetPGVariable(const char *name, DestReceiver *dest)
Definition: guc.c:9666
void FreeConfigVariables(ConfigVariable *list)
PGDLLIMPORT bool session_auth_is_superuser
Definition: guc.c:633
void DefineCustomRealVariable(const char *name, const char *short_desc, const char *long_desc, double *valueAddr, double bootValue, double minValue, double maxValue, GucContext context, int flags, GucRealCheckHook check_hook, GucRealAssignHook assign_hook, GucShowHook show_hook)
Definition: guc.c:9532
void DefineCustomEnumVariable(const char *name, const char *short_desc, const char *long_desc, int *valueAddr, int bootValue, const struct config_enum_entry *options, GucContext context, int flags, GucEnumCheckHook check_hook, GucEnumAssignHook assign_hook, GucShowHook show_hook)
Definition: guc.c:9587
int GetNumConfigOptions(void)
Definition: guc.c:10198
bool ParseConfigFp(FILE *fp, const char *config_file, int depth, int elevel, ConfigVariable **head_p, ConfigVariable **tail_p)
bool(* GucRealCheckHook)(double *newval, void **extra, GucSource source)
Definition: guc.h:176
int NewGUCNestLevel(void)
Definition: guc.c:6467
PGDLLIMPORT int temp_file_limit
Definition: guc.c:649
void assign_search_path(const char *newval, void *extra)
Definition: namespace.c:4356
ArrayType * GUCArrayReset(ArrayType *array)
Definition: guc.c:11580
PGDLLIMPORT char * GUC_check_errhint_string
Definition: guc.c:161
void ProcessGUCArray(ArrayType *array, GucContext context, GucSource source, GucAction action)
Definition: guc.c:11363
PGDLLIMPORT char * application_name
Definition: guc.c:661
void SetConfigOption(const char *name, const char *value, GucContext context, GucSource source)
Definition: guc.c:8370
void(* GucStringAssignHook)(const char *newval, void *extra)
Definition: guc.h:183
PGDLLIMPORT int tcp_keepalives_idle
Definition: guc.c:663
bool(* GucEnumCheckHook)(int *newval, void **extra, GucSource source)
Definition: guc.h:178
PGDLLIMPORT bool Debug_print_parse
Definition: guc.c:613
void(* GucBoolAssignHook)(bool newval, void *extra)
Definition: guc.h:180
bool check_default_tablespace(char **newval, void **extra, GucSource source)
Definition: tablespace.c:1139
PGDLLIMPORT char * GUC_check_errdetail_string
Definition: guc.c:160
PGDLLIMPORT char * backtrace_functions
Definition: guc.c:646
PGDLLIMPORT bool Debug_print_rewritten
Definition: guc.c:614
void DefineCustomStringVariable(const char *name, const char *short_desc, const char *long_desc, char **valueAddr, const char *bootValue, GucContext context, int flags, GucStringCheckHook check_hook, GucStringAssignHook assign_hook, GucShowHook show_hook)
Definition: guc.c:9562
bool parse_real(const char *value, double *result, int flags, const char **hintmsg)
Definition: guc.c:7188
void(* GucEnumAssignHook)(int newval, void *extra)
Definition: guc.h:184
void DefineCustomBoolVariable(const char *name, const char *short_desc, const char *long_desc, bool *valueAddr, bool bootValue, GucContext context, int flags, GucBoolCheckHook check_hook, GucBoolAssignHook assign_hook, GucShowHook show_hook)
Definition: guc.c:9476
PGDLLIMPORT char * backtrace_symbol_list
Definition: guc.c:647
PGDLLIMPORT int tcp_user_timeout
Definition: guc.c:666
PGDLLIMPORT bool log_duration
Definition: guc.c:611
const char * GetConfigOptionResetString(const char *name)
Definition: guc.c:8443
void SerializeGUCState(Size maxsize, char *start_address)
Definition: guc.c:11074
PGDLLIMPORT bool log_planner_stats
Definition: guc.c:618
bool SelectConfigFiles(const char *userDoption, const char *progname)
Definition: guc.c:6088
PGDLLIMPORT char * HbaFileName
Definition: guc.c:655
char * DeescapeQuotedString(const char *s)
PGDLLIMPORT int log_parameter_max_length
Definition: guc.c:640
PGDLLIMPORT char * external_pid_file
Definition: guc.c:657
void AlterSystemSetConfigFile(AlterSystemStmt *altersysstmt)
Definition: guc.c:8772
struct ConfigVariable ConfigVariable
PGDLLIMPORT int log_min_error_statement
Definition: guc.c:635
const char *(* GucShowHook)(void)
Definition: guc.h:186
Size EstimateGUCStateSpace(void)
Definition: guc.c:10931
PGDLLIMPORT bool log_btree_build_stats
Definition: guc.c:622
TupleDesc GetPGVariableResultDesc(const char *name)
Definition: guc.c:9675
PGDLLIMPORT char * ConfigFileName
Definition: guc.c:654
PGDLLIMPORT int log_min_duration_statement
Definition: guc.c:639
void AtStart_GUC(void)
Definition: guc.c:6447
void InitializeWalConsistencyChecking(void)
Definition: guc.c:5889
void assign_xlog_sync_method(int new_sync_method, void *extra)
Definition: xlog.c:7926
void ParseLongOption(const char *string, char **name, char **value)
Definition: guc.c:11325
void ResetAllOptions(void)
Definition: guc.c:6263
GucSource
Definition: guc.h:105
@ PGC_S_DEFAULT
Definition: guc.h:106
@ PGC_S_DYNAMIC_DEFAULT
Definition: guc.h:107
@ PGC_S_FILE
Definition: guc.h:109
@ PGC_S_GLOBAL
Definition: guc.h:111
@ PGC_S_DATABASE
Definition: guc.h:112
@ PGC_S_OVERRIDE
Definition: guc.h:116
@ PGC_S_ARGV
Definition: guc.h:110
@ PGC_S_SESSION
Definition: guc.h:119
@ PGC_S_CLIENT
Definition: guc.h:115
@ PGC_S_DATABASE_USER
Definition: guc.h:114
@ PGC_S_ENV_VAR
Definition: guc.h:108
@ PGC_S_USER
Definition: guc.h:113
@ PGC_S_TEST
Definition: guc.h:118
@ PGC_S_INTERACTIVE
Definition: guc.h:117
void assign_temp_tablespaces(const char *newval, void *extra)
Definition: tablespace.c:1354
void SetPGVariable(const char *name, List *args, bool is_local)
Definition: guc.c:9164
char * ExtractSetVariableArgs(VariableSetStmt *stmt)
Definition: guc.c:9144
PGDLLIMPORT char * IdentFileName
Definition: guc.c:656
bool(* GucStringCheckHook)(char **newval, void **extra, GucSource source)
Definition: guc.h:177
PGDLLIMPORT bool log_executor_stats
Definition: guc.c:619
PGDLLIMPORT bool Debug_print_plan
Definition: guc.c:612
void InitializeGUCOptions(void)
Definition: guc.c:5836
bool ParseConfigFile(const char *config_file, bool strict, const char *calling_file, int calling_lineno, int depth, int elevel, ConfigVariable **head_p, ConfigVariable **tail_p)
bool ParseConfigDirectory(const char *includedir, const char *calling_file, int calling_lineno, int depth, int elevel, ConfigVariable **head_p, ConfigVariable **tail_p)
void MarkGUCPrefixReserved(const char *className)
Definition: guc.c:9623
void(* GucIntAssignHook)(int newval, void *extra)
Definition: guc.h:181
const char * GetConfigOption(const char *name, bool missing_ok, bool restrict_privileged)
Definition: guc.c:8394
void(* GucRealAssignHook)(double newval, void *extra)
Definition: guc.h:182
PGDLLIMPORT int log_min_duration_sample
Definition: guc.c:638
GucContext
Definition: guc.h:69
@ PGC_SUSET
Definition: guc.h:75
@ PGC_INTERNAL
Definition: guc.h:70
@ PGC_USERSET
Definition: guc.h:76
@ PGC_SU_BACKEND
Definition: guc.h:73
@ PGC_POSTMASTER
Definition: guc.h:71
@ PGC_SIGHUP
Definition: guc.h:72
@ PGC_BACKEND
Definition: guc.h:74
char * GetConfigOptionByName(const char *name, const char **varname, bool missing_ok)
Definition: guc.c:9901
void assign_recovery_prefetch(int new_value, void *extra)
PGDLLIMPORT bool Debug_pretty_print
Definition: guc.c:615
ArrayType * GUCArrayAdd(ArrayType *array, const char *name, const char *value)
Definition: guc.c:11428
bool check_temp_tablespaces(char **newval, void **extra, GucSource source)
Definition: tablespace.c:1246
PGDLLIMPORT int tcp_keepalives_interval
Definition: guc.c:664
PGDLLIMPORT int log_temp_files
Definition: guc.c:642
void ExecSetVariableStmt(VariableSetStmt *stmt, bool isTopLevel)
Definition: guc.c:9017
PGDLLIMPORT int tcp_keepalives_count
Definition: guc.c:665
bool(* GucIntCheckHook)(int *newval, void **extra, GucSource source)
Definition: guc.h:175
PGDLLIMPORT bool check_function_bodies
Definition: guc.c:626
int GetConfigOptionFlags(const char *name, bool missing_ok)
Definition: guc.c:8489
PGDLLIMPORT int num_temp_buffers
Definition: guc.c:651
PGDLLIMPORT double log_xact_sample_rate
Definition: guc.c:644
bool check_search_path(char **newval, void **extra, GucSource source)
Definition: namespace.c:4322
bool check_GUC_name_for_parameter_acl(const char *name)
Definition: guc.c:5817
char * convert_GUC_name_for_parameter_acl(const char *name)
Definition: guc.c:5781
ArrayType * GUCArrayDelete(ArrayType *array, const char *name)
Definition: guc.c:11508
bool check_wal_buffers(int *newval, void **extra, GucSource source)
Definition: xlog.c:4282
PGDLLIMPORT bool log_statement_stats
Definition: guc.c:620
void ProcessConfigFile(GucContext context)
PGDLLIMPORT bool log_parser_stats
Definition: guc.c:617
void ReportChangedGUCOptions(void)
Definition: guc.c:6812
void GetConfigOptionByNum(int varnum, const char **values, bool *noshow)
Definition: guc.c:9970
bool check_recovery_prefetch(int *new_value, void **extra, GucSource source)
PGDLLIMPORT int log_min_messages
Definition: guc.c:636
void AtEOXact_GUC(bool isCommit, int nestLevel)
Definition: guc.c:6481
void DefineCustomIntVariable(const char *name, const char *short_desc, const char *long_desc, int *valueAddr, int bootValue, int minValue, int maxValue, GucContext context, int flags, GucIntCheckHook check_hook, GucIntAssignHook assign_hook, GucShowHook show_hook)
Definition: guc.c:9502
PGDLLIMPORT int log_parameter_max_length_on_error
Definition: guc.c:641
int set_config_option(const char *name, const char *value, GucContext context, GucSource source, GucAction action, bool changeVal, int elevel, bool is_reload)
Definition: guc.c:7558
PGDLLIMPORT char * GUC_check_errmsg_string
Definition: guc.c:159
PGDLLIMPORT double log_statement_sample_rate
Definition: guc.c:643
PGDLLIMPORT char * cluster_name
Definition: guc.c:653
static struct @151 value
const char * progname
Definition: main.c:50
static rewind_source * source
Definition: pg_rewind.c:81
char * config_file
Definition: pg_rewind.c:64
static const char * userDoption
Definition: postgres.c:170
char * name
Definition: guc.h:134
bool ignore
Definition: guc.h:139
struct ConfigVariable * next
Definition: guc.h:141
bool applied
Definition: guc.h:140
char * filename
Definition: guc.h:137
int sourceline
Definition: guc.h:138
char * value
Definition: guc.h:135
char * errmsg
Definition: guc.h:136
Definition: pg_list.h:51
Definition: guc.h:165
const char * name
Definition: guc.h:166
int val
Definition: guc.h:167
bool hidden
Definition: guc.h:168
bool trace_sort
Definition: tuplesort.c:144