PostgreSQL Source Code  git master
guc_tables.c
Go to the documentation of this file.
1 /*--------------------------------------------------------------------
2  *
3  * guc_tables.c
4  *
5  * Static tables for the Grand Unified Configuration scheme.
6  *
7  * Many of these tables are const. However, ConfigureNamesBool[]
8  * and so on are not, because the structs in those arrays are actually
9  * the live per-variable state data that guc.c manipulates. While many of
10  * their fields are intended to be constant, some fields change at runtime.
11  *
12  *
13  * Copyright (c) 2000-2024, PostgreSQL Global Development Group
14  * Written by Peter Eisentraut <peter_e@gmx.net>.
15  *
16  * IDENTIFICATION
17  * src/backend/utils/misc/guc_tables.c
18  *
19  *--------------------------------------------------------------------
20  */
21 #include "postgres.h"
22 
23 #include <float.h>
24 #include <limits.h>
25 #ifdef HAVE_SYSLOG
26 #include <syslog.h>
27 #endif
28 
29 #include "access/commit_ts.h"
30 #include "access/gin.h"
32 #include "access/twophase.h"
33 #include "access/xlog_internal.h"
34 #include "access/xlogprefetcher.h"
35 #include "access/xlogrecovery.h"
36 #include "archive/archive_module.h"
37 #include "catalog/namespace.h"
38 #include "catalog/storage.h"
39 #include "commands/async.h"
40 #include "commands/event_trigger.h"
41 #include "commands/tablespace.h"
42 #include "commands/trigger.h"
43 #include "commands/user.h"
44 #include "commands/vacuum.h"
45 #include "common/file_utils.h"
46 #include "common/scram-common.h"
47 #include "jit/jit.h"
48 #include "libpq/auth.h"
49 #include "libpq/libpq.h"
50 #include "libpq/scram.h"
51 #include "nodes/queryjumble.h"
52 #include "optimizer/cost.h"
53 #include "optimizer/geqo.h"
54 #include "optimizer/optimizer.h"
55 #include "optimizer/paths.h"
56 #include "optimizer/planmain.h"
57 #include "parser/parse_expr.h"
58 #include "parser/parser.h"
59 #include "pgstat.h"
60 #include "postmaster/autovacuum.h"
62 #include "postmaster/bgwriter.h"
63 #include "postmaster/postmaster.h"
64 #include "postmaster/startup.h"
65 #include "postmaster/syslogger.h"
67 #include "postmaster/walwriter.h"
69 #include "replication/slot.h"
70 #include "replication/slotsync.h"
71 #include "replication/syncrep.h"
72 #include "storage/bufmgr.h"
73 #include "storage/large_object.h"
74 #include "storage/pg_shmem.h"
75 #include "storage/predicate.h"
76 #include "storage/standby.h"
77 #include "tcop/tcopprot.h"
78 #include "tsearch/ts_cache.h"
79 #include "utils/builtins.h"
80 #include "utils/bytea.h"
81 #include "utils/float.h"
82 #include "utils/guc_hooks.h"
83 #include "utils/guc_tables.h"
84 #include "utils/memutils.h"
85 #include "utils/pg_locale.h"
86 #include "utils/portal.h"
87 #include "utils/ps_status.h"
88 #include "utils/inval.h"
89 #include "utils/xml.h"
90 
91 /* This value is normally passed in from the Makefile */
92 #ifndef PG_KRB_SRVTAB
93 #define PG_KRB_SRVTAB ""
94 #endif
95 
96 /* XXX these should appear in other modules' header files */
97 extern bool Log_disconnections;
98 extern int CommitDelay;
99 extern int CommitSiblings;
100 extern char *default_tablespace;
101 extern char *temp_tablespaces;
102 extern bool ignore_checksum_failure;
104 
105 #ifdef TRACE_SYNCSCAN
106 extern bool trace_syncscan;
107 #endif
108 #ifdef DEBUG_BOUNDED_SORT
109 extern bool optimize_bounded_sort;
110 #endif
111 
112 /*
113  * Options for enum values defined in this module.
114  *
115  * NOTE! Option values may not contain double quotes!
116  */
117 
118 static const struct config_enum_entry bytea_output_options[] = {
119  {"escape", BYTEA_OUTPUT_ESCAPE, false},
120  {"hex", BYTEA_OUTPUT_HEX, false},
121  {NULL, 0, false}
122 };
123 
125  "array length mismatch");
126 
127 /*
128  * We have different sets for client and server message level options because
129  * they sort slightly different (see "log" level), and because "fatal"/"panic"
130  * aren't sensible for client_min_messages.
131  */
132 static const struct config_enum_entry client_message_level_options[] = {
133  {"debug5", DEBUG5, false},
134  {"debug4", DEBUG4, false},
135  {"debug3", DEBUG3, false},
136  {"debug2", DEBUG2, false},
137  {"debug1", DEBUG1, false},
138  {"debug", DEBUG2, true},
139  {"log", LOG, false},
140  {"info", INFO, true},
141  {"notice", NOTICE, false},
142  {"warning", WARNING, false},
143  {"error", ERROR, false},
144  {NULL, 0, false}
145 };
146 
147 static const struct config_enum_entry server_message_level_options[] = {
148  {"debug5", DEBUG5, false},
149  {"debug4", DEBUG4, false},
150  {"debug3", DEBUG3, false},
151  {"debug2", DEBUG2, false},
152  {"debug1", DEBUG1, false},
153  {"debug", DEBUG2, true},
154  {"info", INFO, false},
155  {"notice", NOTICE, false},
156  {"warning", WARNING, false},
157  {"error", ERROR, false},
158  {"log", LOG, false},
159  {"fatal", FATAL, false},
160  {"panic", PANIC, false},
161  {NULL, 0, false}
162 };
163 
164 static const struct config_enum_entry intervalstyle_options[] = {
165  {"postgres", INTSTYLE_POSTGRES, false},
166  {"postgres_verbose", INTSTYLE_POSTGRES_VERBOSE, false},
167  {"sql_standard", INTSTYLE_SQL_STANDARD, false},
168  {"iso_8601", INTSTYLE_ISO_8601, false},
169  {NULL, 0, false}
170 };
171 
172 static const struct config_enum_entry icu_validation_level_options[] = {
173  {"disabled", -1, false},
174  {"debug5", DEBUG5, false},
175  {"debug4", DEBUG4, false},
176  {"debug3", DEBUG3, false},
177  {"debug2", DEBUG2, false},
178  {"debug1", DEBUG1, false},
179  {"debug", DEBUG2, true},
180  {"log", LOG, false},
181  {"info", INFO, true},
182  {"notice", NOTICE, false},
183  {"warning", WARNING, false},
184  {"error", ERROR, false},
185  {NULL, 0, false}
186 };
187 
189  "array length mismatch");
190 
191 static const struct config_enum_entry log_error_verbosity_options[] = {
192  {"terse", PGERROR_TERSE, false},
193  {"default", PGERROR_DEFAULT, false},
194  {"verbose", PGERROR_VERBOSE, false},
195  {NULL, 0, false}
196 };
197 
199  "array length mismatch");
200 
201 static const struct config_enum_entry log_statement_options[] = {
202  {"none", LOGSTMT_NONE, false},
203  {"ddl", LOGSTMT_DDL, false},
204  {"mod", LOGSTMT_MOD, false},
205  {"all", LOGSTMT_ALL, false},
206  {NULL, 0, false}
207 };
208 
210  "array length mismatch");
211 
212 static const struct config_enum_entry isolation_level_options[] = {
213  {"serializable", XACT_SERIALIZABLE, false},
214  {"repeatable read", XACT_REPEATABLE_READ, false},
215  {"read committed", XACT_READ_COMMITTED, false},
216  {"read uncommitted", XACT_READ_UNCOMMITTED, false},
217  {NULL, 0}
218 };
219 
220 static const struct config_enum_entry session_replication_role_options[] = {
221  {"origin", SESSION_REPLICATION_ROLE_ORIGIN, false},
222  {"replica", SESSION_REPLICATION_ROLE_REPLICA, false},
223  {"local", SESSION_REPLICATION_ROLE_LOCAL, false},
224  {NULL, 0, false}
225 };
226 
228  "array length mismatch");
229 
230 static const struct config_enum_entry syslog_facility_options[] = {
231 #ifdef HAVE_SYSLOG
232  {"local0", LOG_LOCAL0, false},
233  {"local1", LOG_LOCAL1, false},
234  {"local2", LOG_LOCAL2, false},
235  {"local3", LOG_LOCAL3, false},
236  {"local4", LOG_LOCAL4, false},
237  {"local5", LOG_LOCAL5, false},
238  {"local6", LOG_LOCAL6, false},
239  {"local7", LOG_LOCAL7, false},
240 #else
241  {"none", 0, false},
242 #endif
243  {NULL, 0}
244 };
245 
246 static const struct config_enum_entry track_function_options[] = {
247  {"none", TRACK_FUNC_OFF, false},
248  {"pl", TRACK_FUNC_PL, false},
249  {"all", TRACK_FUNC_ALL, false},
250  {NULL, 0, false}
251 };
252 
254  "array length mismatch");
255 
256 static const struct config_enum_entry stats_fetch_consistency[] = {
257  {"none", PGSTAT_FETCH_CONSISTENCY_NONE, false},
258  {"cache", PGSTAT_FETCH_CONSISTENCY_CACHE, false},
259  {"snapshot", PGSTAT_FETCH_CONSISTENCY_SNAPSHOT, false},
260  {NULL, 0, false}
261 };
262 
264  "array length mismatch");
265 
266 static const struct config_enum_entry xmlbinary_options[] = {
267  {"base64", XMLBINARY_BASE64, false},
268  {"hex", XMLBINARY_HEX, false},
269  {NULL, 0, false}
270 };
271 
273  "array length mismatch");
274 
275 static const struct config_enum_entry xmloption_options[] = {
276  {"content", XMLOPTION_CONTENT, false},
277  {"document", XMLOPTION_DOCUMENT, false},
278  {NULL, 0, false}
279 };
280 
282  "array length mismatch");
283 
284 /*
285  * Although only "on", "off", and "safe_encoding" are documented, we
286  * accept all the likely variants of "on" and "off".
287  */
288 static const struct config_enum_entry backslash_quote_options[] = {
289  {"safe_encoding", BACKSLASH_QUOTE_SAFE_ENCODING, false},
290  {"on", BACKSLASH_QUOTE_ON, false},
291  {"off", BACKSLASH_QUOTE_OFF, false},
292  {"true", BACKSLASH_QUOTE_ON, true},
293  {"false", BACKSLASH_QUOTE_OFF, true},
294  {"yes", BACKSLASH_QUOTE_ON, true},
295  {"no", BACKSLASH_QUOTE_OFF, true},
296  {"1", BACKSLASH_QUOTE_ON, true},
297  {"0", BACKSLASH_QUOTE_OFF, true},
298  {NULL, 0, false}
299 };
300 
301 /*
302  * Although only "on", "off", and "auto" are documented, we accept
303  * all the likely variants of "on" and "off".
304  */
305 static const struct config_enum_entry compute_query_id_options[] = {
306  {"auto", COMPUTE_QUERY_ID_AUTO, false},
307  {"regress", COMPUTE_QUERY_ID_REGRESS, false},
308  {"on", COMPUTE_QUERY_ID_ON, false},
309  {"off", COMPUTE_QUERY_ID_OFF, false},
310  {"true", COMPUTE_QUERY_ID_ON, true},
311  {"false", COMPUTE_QUERY_ID_OFF, true},
312  {"yes", COMPUTE_QUERY_ID_ON, true},
313  {"no", COMPUTE_QUERY_ID_OFF, true},
314  {"1", COMPUTE_QUERY_ID_ON, true},
315  {"0", COMPUTE_QUERY_ID_OFF, true},
316  {NULL, 0, false}
317 };
318 
319 /*
320  * Although only "on", "off", and "partition" are documented, we
321  * accept all the likely variants of "on" and "off".
322  */
323 static const struct config_enum_entry constraint_exclusion_options[] = {
324  {"partition", CONSTRAINT_EXCLUSION_PARTITION, false},
325  {"on", CONSTRAINT_EXCLUSION_ON, false},
326  {"off", CONSTRAINT_EXCLUSION_OFF, false},
327  {"true", CONSTRAINT_EXCLUSION_ON, true},
328  {"false", CONSTRAINT_EXCLUSION_OFF, true},
329  {"yes", CONSTRAINT_EXCLUSION_ON, true},
330  {"no", CONSTRAINT_EXCLUSION_OFF, true},
331  {"1", CONSTRAINT_EXCLUSION_ON, true},
332  {"0", CONSTRAINT_EXCLUSION_OFF, true},
333  {NULL, 0, false}
334 };
335 
336 /*
337  * Although only "on", "off", "remote_apply", "remote_write", and "local" are
338  * documented, we accept all the likely variants of "on" and "off".
339  */
340 static const struct config_enum_entry synchronous_commit_options[] = {
341  {"local", SYNCHRONOUS_COMMIT_LOCAL_FLUSH, false},
342  {"remote_write", SYNCHRONOUS_COMMIT_REMOTE_WRITE, false},
343  {"remote_apply", SYNCHRONOUS_COMMIT_REMOTE_APPLY, false},
344  {"on", SYNCHRONOUS_COMMIT_ON, false},
345  {"off", SYNCHRONOUS_COMMIT_OFF, false},
346  {"true", SYNCHRONOUS_COMMIT_ON, true},
347  {"false", SYNCHRONOUS_COMMIT_OFF, true},
348  {"yes", SYNCHRONOUS_COMMIT_ON, true},
349  {"no", SYNCHRONOUS_COMMIT_OFF, true},
350  {"1", SYNCHRONOUS_COMMIT_ON, true},
351  {"0", SYNCHRONOUS_COMMIT_OFF, true},
352  {NULL, 0, false}
353 };
354 
355 /*
356  * Although only "on", "off", "try" are documented, we accept all the likely
357  * variants of "on" and "off".
358  */
359 static const struct config_enum_entry huge_pages_options[] = {
360  {"off", HUGE_PAGES_OFF, false},
361  {"on", HUGE_PAGES_ON, false},
362  {"try", HUGE_PAGES_TRY, false},
363  {"true", HUGE_PAGES_ON, true},
364  {"false", HUGE_PAGES_OFF, true},
365  {"yes", HUGE_PAGES_ON, true},
366  {"no", HUGE_PAGES_OFF, true},
367  {"1", HUGE_PAGES_ON, true},
368  {"0", HUGE_PAGES_OFF, true},
369  {NULL, 0, false}
370 };
371 
372 static const struct config_enum_entry huge_pages_status_options[] = {
373  {"off", HUGE_PAGES_OFF, false},
374  {"on", HUGE_PAGES_ON, false},
375  {"unknown", HUGE_PAGES_UNKNOWN, false},
376  {NULL, 0, false}
377 };
378 
379 static const struct config_enum_entry recovery_prefetch_options[] = {
380  {"off", RECOVERY_PREFETCH_OFF, false},
381  {"on", RECOVERY_PREFETCH_ON, false},
382  {"try", RECOVERY_PREFETCH_TRY, false},
383  {"true", RECOVERY_PREFETCH_ON, true},
384  {"false", RECOVERY_PREFETCH_OFF, true},
385  {"yes", RECOVERY_PREFETCH_ON, true},
386  {"no", RECOVERY_PREFETCH_OFF, true},
387  {"1", RECOVERY_PREFETCH_ON, true},
388  {"0", RECOVERY_PREFETCH_OFF, true},
389  {NULL, 0, false}
390 };
391 
392 static const struct config_enum_entry debug_parallel_query_options[] = {
393  {"off", DEBUG_PARALLEL_OFF, false},
394  {"on", DEBUG_PARALLEL_ON, false},
395  {"regress", DEBUG_PARALLEL_REGRESS, false},
396  {"true", DEBUG_PARALLEL_ON, true},
397  {"false", DEBUG_PARALLEL_OFF, true},
398  {"yes", DEBUG_PARALLEL_ON, true},
399  {"no", DEBUG_PARALLEL_OFF, true},
400  {"1", DEBUG_PARALLEL_ON, true},
401  {"0", DEBUG_PARALLEL_OFF, true},
402  {NULL, 0, false}
403 };
404 
405 static const struct config_enum_entry plan_cache_mode_options[] = {
406  {"auto", PLAN_CACHE_MODE_AUTO, false},
407  {"force_generic_plan", PLAN_CACHE_MODE_FORCE_GENERIC_PLAN, false},
408  {"force_custom_plan", PLAN_CACHE_MODE_FORCE_CUSTOM_PLAN, false},
409  {NULL, 0, false}
410 };
411 
412 static const struct config_enum_entry password_encryption_options[] = {
413  {"md5", PASSWORD_TYPE_MD5, false},
414  {"scram-sha-256", PASSWORD_TYPE_SCRAM_SHA_256, false},
415  {NULL, 0, false}
416 };
417 
418 static const struct config_enum_entry ssl_protocol_versions_info[] = {
419  {"", PG_TLS_ANY, false},
420  {"TLSv1", PG_TLS1_VERSION, false},
421  {"TLSv1.1", PG_TLS1_1_VERSION, false},
422  {"TLSv1.2", PG_TLS1_2_VERSION, false},
423  {"TLSv1.3", PG_TLS1_3_VERSION, false},
424  {NULL, 0, false}
425 };
426 
428  {"buffered", DEBUG_LOGICAL_REP_STREAMING_BUFFERED, false},
429  {"immediate", DEBUG_LOGICAL_REP_STREAMING_IMMEDIATE, false},
430  {NULL, 0, false}
431 };
432 
434  "array length mismatch");
435 
437  {"fsync", DATA_DIR_SYNC_METHOD_FSYNC, false},
438 #ifdef HAVE_SYNCFS
439  {"syncfs", DATA_DIR_SYNC_METHOD_SYNCFS, false},
440 #endif
441  {NULL, 0, false}
442 };
443 
444 static const struct config_enum_entry shared_memory_options[] = {
445 #ifndef WIN32
446  {"sysv", SHMEM_TYPE_SYSV, false},
447 #endif
448 #ifndef EXEC_BACKEND
449  {"mmap", SHMEM_TYPE_MMAP, false},
450 #endif
451 #ifdef WIN32
452  {"windows", SHMEM_TYPE_WINDOWS, false},
453 #endif
454  {NULL, 0, false}
455 };
456 
458  {"pglz", TOAST_PGLZ_COMPRESSION, false},
459 #ifdef USE_LZ4
460  {"lz4", TOAST_LZ4_COMPRESSION, false},
461 #endif
462  {NULL, 0, false}
463 };
464 
465 static const struct config_enum_entry wal_compression_options[] = {
466  {"pglz", WAL_COMPRESSION_PGLZ, false},
467 #ifdef USE_LZ4
468  {"lz4", WAL_COMPRESSION_LZ4, false},
469 #endif
470 #ifdef USE_ZSTD
471  {"zstd", WAL_COMPRESSION_ZSTD, false},
472 #endif
473  {"on", WAL_COMPRESSION_PGLZ, false},
474  {"off", WAL_COMPRESSION_NONE, false},
475  {"true", WAL_COMPRESSION_PGLZ, true},
476  {"false", WAL_COMPRESSION_NONE, true},
477  {"yes", WAL_COMPRESSION_PGLZ, true},
478  {"no", WAL_COMPRESSION_NONE, true},
479  {"1", WAL_COMPRESSION_PGLZ, true},
480  {"0", WAL_COMPRESSION_NONE, true},
481  {NULL, 0, false}
482 };
483 
484 /*
485  * Options for enum values stored in other modules
486  */
487 extern const struct config_enum_entry wal_level_options[];
488 extern const struct config_enum_entry archive_mode_options[];
490 extern const struct config_enum_entry wal_sync_method_options[];
492 
493 /*
494  * GUC option variables that are exported from this module
495  */
496 bool log_duration = false;
497 bool Debug_print_plan = false;
498 bool Debug_print_parse = false;
500 bool Debug_pretty_print = true;
501 
502 bool log_parser_stats = false;
503 bool log_planner_stats = false;
504 bool log_executor_stats = false;
505 bool log_statement_stats = false; /* this is sort of all three above
506  * together */
509 
512 
513 /*
514  * This GUC exists solely for backward compatibility, check its definition for
515  * details.
516  */
517 bool default_with_oids = false;
519 
527 int log_temp_files = -1;
532 
534 
535 int num_temp_buffers = 1024;
536 
537 char *cluster_name = "";
542 
544 
549 
550 /*
551  * SSL renegotiation was been removed in PostgreSQL 9.5, but we tolerate it
552  * being set to zero (meaning never renegotiate) for backward compatibility.
553  * This avoids breaking compatibility with clients that have never supported
554  * renegotiation and therefore always try to zero it.
555  */
557 
558 /*
559  * This really belongs in pg_shmem.c, but is defined here so that it doesn't
560  * need to be duplicated in all the different implementations of pg_shmem.c.
561  */
565 
566 /*
567  * These variables are all dummies that don't do anything, except in some
568  * cases provide the value for SHOW to display. The real state is elsewhere
569  * and is kept in sync by assign_hooks.
570  */
571 static char *syslog_ident_str;
572 static double phony_random_seed;
574 static char *datestyle_string;
579 
580 #ifdef HAVE_SYSLOG
581 #define DEFAULT_SYSLOG_FACILITY LOG_LOCAL0
582 #else
583 #define DEFAULT_SYSLOG_FACILITY 0
584 #endif
586 
587 static char *timezone_string;
588 static char *log_timezone_string;
590 static char *data_directory;
592 static int max_function_args;
593 static int max_index_keys;
595 static int block_size;
596 static int segment_size;
599 static int wal_block_size;
600 static bool data_checksums;
601 static bool integer_datetimes;
602 
603 #ifdef USE_ASSERT_CHECKING
604 #define DEFAULT_ASSERT_ENABLED true
605 #else
606 #define DEFAULT_ASSERT_ENABLED false
607 #endif
609 
615 
616 /* should be static, but commands/variable.c needs to get at this */
618 
619 /* should be static, but guc.c needs to get at this */
621 
622 
623 /*
624  * Displayable names for context types (enum GucContext)
625  *
626  * Note: these strings are deliberately not localized.
627  */
628 const char *const GucContext_Names[] =
629 {
630  /* PGC_INTERNAL */ "internal",
631  /* PGC_POSTMASTER */ "postmaster",
632  /* PGC_SIGHUP */ "sighup",
633  /* PGC_SU_BACKEND */ "superuser-backend",
634  /* PGC_BACKEND */ "backend",
635  /* PGC_SUSET */ "superuser",
636  /* PGC_USERSET */ "user"
637 };
638 
640  "array length mismatch");
641 
642 /*
643  * Displayable names for source types (enum GucSource)
644  *
645  * Note: these strings are deliberately not localized.
646  */
647 const char *const GucSource_Names[] =
648 {
649  /* PGC_S_DEFAULT */ "default",
650  /* PGC_S_DYNAMIC_DEFAULT */ "default",
651  /* PGC_S_ENV_VAR */ "environment variable",
652  /* PGC_S_FILE */ "configuration file",
653  /* PGC_S_ARGV */ "command line",
654  /* PGC_S_GLOBAL */ "global",
655  /* PGC_S_DATABASE */ "database",
656  /* PGC_S_USER */ "user",
657  /* PGC_S_DATABASE_USER */ "database user",
658  /* PGC_S_CLIENT */ "client",
659  /* PGC_S_OVERRIDE */ "override",
660  /* PGC_S_INTERACTIVE */ "interactive",
661  /* PGC_S_TEST */ "test",
662  /* PGC_S_SESSION */ "session"
663 };
664 
666  "array length mismatch");
667 
668 /*
669  * Displayable names for the groupings defined in enum config_group
670  */
671 const char *const config_group_names[] =
672 {
673  /* UNGROUPED */
674  gettext_noop("Ungrouped"),
675  /* FILE_LOCATIONS */
676  gettext_noop("File Locations"),
677  /* CONN_AUTH_SETTINGS */
678  gettext_noop("Connections and Authentication / Connection Settings"),
679  /* CONN_AUTH_TCP */
680  gettext_noop("Connections and Authentication / TCP Settings"),
681  /* CONN_AUTH_AUTH */
682  gettext_noop("Connections and Authentication / Authentication"),
683  /* CONN_AUTH_SSL */
684  gettext_noop("Connections and Authentication / SSL"),
685  /* RESOURCES_MEM */
686  gettext_noop("Resource Usage / Memory"),
687  /* RESOURCES_DISK */
688  gettext_noop("Resource Usage / Disk"),
689  /* RESOURCES_KERNEL */
690  gettext_noop("Resource Usage / Kernel Resources"),
691  /* RESOURCES_VACUUM_DELAY */
692  gettext_noop("Resource Usage / Cost-Based Vacuum Delay"),
693  /* RESOURCES_BGWRITER */
694  gettext_noop("Resource Usage / Background Writer"),
695  /* RESOURCES_ASYNCHRONOUS */
696  gettext_noop("Resource Usage / Asynchronous Behavior"),
697  /* WAL_SETTINGS */
698  gettext_noop("Write-Ahead Log / Settings"),
699  /* WAL_CHECKPOINTS */
700  gettext_noop("Write-Ahead Log / Checkpoints"),
701  /* WAL_ARCHIVING */
702  gettext_noop("Write-Ahead Log / Archiving"),
703  /* WAL_RECOVERY */
704  gettext_noop("Write-Ahead Log / Recovery"),
705  /* WAL_ARCHIVE_RECOVERY */
706  gettext_noop("Write-Ahead Log / Archive Recovery"),
707  /* WAL_RECOVERY_TARGET */
708  gettext_noop("Write-Ahead Log / Recovery Target"),
709  /* WAL_SUMMARIZATION */
710  gettext_noop("Write-Ahead Log / Summarization"),
711  /* REPLICATION_SENDING */
712  gettext_noop("Replication / Sending Servers"),
713  /* REPLICATION_PRIMARY */
714  gettext_noop("Replication / Primary Server"),
715  /* REPLICATION_STANDBY */
716  gettext_noop("Replication / Standby Servers"),
717  /* REPLICATION_SUBSCRIBERS */
718  gettext_noop("Replication / Subscribers"),
719  /* QUERY_TUNING_METHOD */
720  gettext_noop("Query Tuning / Planner Method Configuration"),
721  /* QUERY_TUNING_COST */
722  gettext_noop("Query Tuning / Planner Cost Constants"),
723  /* QUERY_TUNING_GEQO */
724  gettext_noop("Query Tuning / Genetic Query Optimizer"),
725  /* QUERY_TUNING_OTHER */
726  gettext_noop("Query Tuning / Other Planner Options"),
727  /* LOGGING_WHERE */
728  gettext_noop("Reporting and Logging / Where to Log"),
729  /* LOGGING_WHEN */
730  gettext_noop("Reporting and Logging / When to Log"),
731  /* LOGGING_WHAT */
732  gettext_noop("Reporting and Logging / What to Log"),
733  /* PROCESS_TITLE */
734  gettext_noop("Reporting and Logging / Process Title"),
735  /* STATS_MONITORING */
736  gettext_noop("Statistics / Monitoring"),
737  /* STATS_CUMULATIVE */
738  gettext_noop("Statistics / Cumulative Query and Index Statistics"),
739  /* AUTOVACUUM */
740  gettext_noop("Autovacuum"),
741  /* CLIENT_CONN_STATEMENT */
742  gettext_noop("Client Connection Defaults / Statement Behavior"),
743  /* CLIENT_CONN_LOCALE */
744  gettext_noop("Client Connection Defaults / Locale and Formatting"),
745  /* CLIENT_CONN_PRELOAD */
746  gettext_noop("Client Connection Defaults / Shared Library Preloading"),
747  /* CLIENT_CONN_OTHER */
748  gettext_noop("Client Connection Defaults / Other Defaults"),
749  /* LOCK_MANAGEMENT */
750  gettext_noop("Lock Management"),
751  /* COMPAT_OPTIONS_PREVIOUS */
752  gettext_noop("Version and Platform Compatibility / Previous PostgreSQL Versions"),
753  /* COMPAT_OPTIONS_CLIENT */
754  gettext_noop("Version and Platform Compatibility / Other Platforms and Clients"),
755  /* ERROR_HANDLING_OPTIONS */
756  gettext_noop("Error Handling"),
757  /* PRESET_OPTIONS */
758  gettext_noop("Preset Options"),
759  /* CUSTOM_OPTIONS */
760  gettext_noop("Customized Options"),
761  /* DEVELOPER_OPTIONS */
762  gettext_noop("Developer Options"),
763  /* help_config wants this array to be null-terminated */
764  NULL
765 };
766 
768  "array length mismatch");
769 
770 /*
771  * Displayable names for GUC variable types (enum config_type)
772  *
773  * Note: these strings are deliberately not localized.
774  */
775 const char *const config_type_names[] =
776 {
777  /* PGC_BOOL */ "bool",
778  /* PGC_INT */ "integer",
779  /* PGC_REAL */ "real",
780  /* PGC_STRING */ "string",
781  /* PGC_ENUM */ "enum"
782 };
783 
785  "array length mismatch");
786 
787 
788 /*
789  * Contents of GUC tables
790  *
791  * See src/backend/utils/misc/README for design notes.
792  *
793  * TO ADD AN OPTION:
794  *
795  * 1. Declare a global variable of type bool, int, double, or char*
796  * and make use of it.
797  *
798  * 2. Decide at what times it's safe to set the option. See guc.h for
799  * details.
800  *
801  * 3. Decide on a name, a default value, upper and lower bounds (if
802  * applicable), etc.
803  *
804  * 4. Add a record below.
805  *
806  * 5. Add it to src/backend/utils/misc/postgresql.conf.sample, if
807  * appropriate.
808  *
809  * 6. Don't forget to document the option (at least in config.sgml).
810  *
811  * 7. If it's a new GUC_LIST_QUOTE option, you must add it to
812  * variable_is_guc_list_quote() in src/bin/pg_dump/dumputils.c.
813  */
814 
816 {
817  {
818  {"backtrace_on_internal_error", PGC_SUSET, DEVELOPER_OPTIONS,
819  gettext_noop("Log backtrace for any error with error code XX000 (internal error)."),
820  NULL,
822  },
824  false,
825  NULL, NULL, NULL
826  },
827  {
828  {"enable_seqscan", PGC_USERSET, QUERY_TUNING_METHOD,
829  gettext_noop("Enables the planner's use of sequential-scan plans."),
830  NULL,
832  },
834  true,
835  NULL, NULL, NULL
836  },
837  {
838  {"enable_indexscan", PGC_USERSET, QUERY_TUNING_METHOD,
839  gettext_noop("Enables the planner's use of index-scan plans."),
840  NULL,
842  },
844  true,
845  NULL, NULL, NULL
846  },
847  {
848  {"enable_indexonlyscan", PGC_USERSET, QUERY_TUNING_METHOD,
849  gettext_noop("Enables the planner's use of index-only-scan plans."),
850  NULL,
852  },
854  true,
855  NULL, NULL, NULL
856  },
857  {
858  {"enable_bitmapscan", PGC_USERSET, QUERY_TUNING_METHOD,
859  gettext_noop("Enables the planner's use of bitmap-scan plans."),
860  NULL,
862  },
864  true,
865  NULL, NULL, NULL
866  },
867  {
868  {"enable_tidscan", PGC_USERSET, QUERY_TUNING_METHOD,
869  gettext_noop("Enables the planner's use of TID scan plans."),
870  NULL,
872  },
874  true,
875  NULL, NULL, NULL
876  },
877  {
878  {"enable_sort", PGC_USERSET, QUERY_TUNING_METHOD,
879  gettext_noop("Enables the planner's use of explicit sort steps."),
880  NULL,
882  },
883  &enable_sort,
884  true,
885  NULL, NULL, NULL
886  },
887  {
888  {"enable_incremental_sort", PGC_USERSET, QUERY_TUNING_METHOD,
889  gettext_noop("Enables the planner's use of incremental sort steps."),
890  NULL,
892  },
894  true,
895  NULL, NULL, NULL
896  },
897  {
898  {"enable_hashagg", PGC_USERSET, QUERY_TUNING_METHOD,
899  gettext_noop("Enables the planner's use of hashed aggregation plans."),
900  NULL,
902  },
904  true,
905  NULL, NULL, NULL
906  },
907  {
908  {"enable_material", PGC_USERSET, QUERY_TUNING_METHOD,
909  gettext_noop("Enables the planner's use of materialization."),
910  NULL,
912  },
914  true,
915  NULL, NULL, NULL
916  },
917  {
918  {"enable_memoize", PGC_USERSET, QUERY_TUNING_METHOD,
919  gettext_noop("Enables the planner's use of memoization."),
920  NULL,
922  },
924  true,
925  NULL, NULL, NULL
926  },
927  {
928  {"enable_nestloop", PGC_USERSET, QUERY_TUNING_METHOD,
929  gettext_noop("Enables the planner's use of nested-loop join plans."),
930  NULL,
932  },
934  true,
935  NULL, NULL, NULL
936  },
937  {
938  {"enable_mergejoin", PGC_USERSET, QUERY_TUNING_METHOD,
939  gettext_noop("Enables the planner's use of merge join plans."),
940  NULL,
942  },
944  true,
945  NULL, NULL, NULL
946  },
947  {
948  {"enable_hashjoin", PGC_USERSET, QUERY_TUNING_METHOD,
949  gettext_noop("Enables the planner's use of hash join plans."),
950  NULL,
952  },
954  true,
955  NULL, NULL, NULL
956  },
957  {
958  {"enable_gathermerge", PGC_USERSET, QUERY_TUNING_METHOD,
959  gettext_noop("Enables the planner's use of gather merge plans."),
960  NULL,
962  },
964  true,
965  NULL, NULL, NULL
966  },
967  {
968  {"enable_partitionwise_join", PGC_USERSET, QUERY_TUNING_METHOD,
969  gettext_noop("Enables partitionwise join."),
970  NULL,
972  },
974  false,
975  NULL, NULL, NULL
976  },
977  {
978  {"enable_partitionwise_aggregate", PGC_USERSET, QUERY_TUNING_METHOD,
979  gettext_noop("Enables partitionwise aggregation and grouping."),
980  NULL,
982  },
984  false,
985  NULL, NULL, NULL
986  },
987  {
988  {"enable_parallel_append", PGC_USERSET, QUERY_TUNING_METHOD,
989  gettext_noop("Enables the planner's use of parallel append plans."),
990  NULL,
992  },
994  true,
995  NULL, NULL, NULL
996  },
997  {
998  {"enable_parallel_hash", PGC_USERSET, QUERY_TUNING_METHOD,
999  gettext_noop("Enables the planner's use of parallel hash plans."),
1000  NULL,
1001  GUC_EXPLAIN
1002  },
1004  true,
1005  NULL, NULL, NULL
1006  },
1007  {
1008  {"enable_partition_pruning", PGC_USERSET, QUERY_TUNING_METHOD,
1009  gettext_noop("Enables plan-time and execution-time partition pruning."),
1010  gettext_noop("Allows the query planner and executor to compare partition "
1011  "bounds to conditions in the query to determine which "
1012  "partitions must be scanned."),
1013  GUC_EXPLAIN
1014  },
1016  true,
1017  NULL, NULL, NULL
1018  },
1019  {
1020  {"enable_presorted_aggregate", PGC_USERSET, QUERY_TUNING_METHOD,
1021  gettext_noop("Enables the planner's ability to produce plans that "
1022  "provide presorted input for ORDER BY / DISTINCT aggregate "
1023  "functions."),
1024  gettext_noop("Allows the query planner to build plans that provide "
1025  "presorted input for aggregate functions with an ORDER BY / "
1026  "DISTINCT clause. When disabled, implicit sorts are always "
1027  "performed during execution."),
1028  GUC_EXPLAIN
1029  },
1031  true,
1032  NULL, NULL, NULL
1033  },
1034  {
1035  {"enable_async_append", PGC_USERSET, QUERY_TUNING_METHOD,
1036  gettext_noop("Enables the planner's use of async append plans."),
1037  NULL,
1038  GUC_EXPLAIN
1039  },
1041  true,
1042  NULL, NULL, NULL
1043  },
1044  {
1045  {"enable_self_join_removal", PGC_USERSET, QUERY_TUNING_METHOD,
1046  gettext_noop("Enable removal of unique self-joins."),
1047  NULL,
1049  },
1051  true,
1052  NULL, NULL, NULL
1053  },
1054  {
1055  {"enable_group_by_reordering", PGC_USERSET, QUERY_TUNING_METHOD,
1056  gettext_noop("Enables reordering of GROUP BY keys."),
1057  NULL,
1058  GUC_EXPLAIN
1059  },
1061  true,
1062  NULL, NULL, NULL
1063  },
1064  {
1065  {"geqo", PGC_USERSET, QUERY_TUNING_GEQO,
1066  gettext_noop("Enables genetic query optimization."),
1067  gettext_noop("This algorithm attempts to do planning without "
1068  "exhaustive searching."),
1069  GUC_EXPLAIN
1070  },
1071  &enable_geqo,
1072  true,
1073  NULL, NULL, NULL
1074  },
1075  {
1076  /*
1077  * Not for general use --- used by SET SESSION AUTHORIZATION and SET
1078  * ROLE
1079  */
1080  {"is_superuser", PGC_INTERNAL, UNGROUPED,
1081  gettext_noop("Shows whether the current user is a superuser."),
1082  NULL,
1084  },
1086  false,
1087  NULL, NULL, NULL
1088  },
1089  {
1090  {"bonjour", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
1091  gettext_noop("Enables advertising the server via Bonjour."),
1092  NULL
1093  },
1094  &enable_bonjour,
1095  false,
1096  check_bonjour, NULL, NULL
1097  },
1098  {
1099  {"track_commit_timestamp", PGC_POSTMASTER, REPLICATION_SENDING,
1100  gettext_noop("Collects transaction commit time."),
1101  NULL
1102  },
1104  false,
1105  NULL, NULL, NULL
1106  },
1107  {
1108  {"ssl", PGC_SIGHUP, CONN_AUTH_SSL,
1109  gettext_noop("Enables SSL connections."),
1110  NULL
1111  },
1112  &EnableSSL,
1113  false,
1114  check_ssl, NULL, NULL
1115  },
1116  {
1117  {"ssl_passphrase_command_supports_reload", PGC_SIGHUP, CONN_AUTH_SSL,
1118  gettext_noop("Controls whether ssl_passphrase_command is called during server reload."),
1119  NULL
1120  },
1122  false,
1123  NULL, NULL, NULL
1124  },
1125  {
1126  {"ssl_prefer_server_ciphers", PGC_SIGHUP, CONN_AUTH_SSL,
1127  gettext_noop("Give priority to server ciphersuite order."),
1128  NULL
1129  },
1131  true,
1132  NULL, NULL, NULL
1133  },
1134  {
1135  {"fsync", PGC_SIGHUP, WAL_SETTINGS,
1136  gettext_noop("Forces synchronization of updates to disk."),
1137  gettext_noop("The server will use the fsync() system call in several places to make "
1138  "sure that updates are physically written to disk. This ensures "
1139  "that a database cluster will recover to a consistent state after "
1140  "an operating system or hardware crash.")
1141  },
1142  &enableFsync,
1143  true,
1144  NULL, NULL, NULL
1145  },
1146  {
1147  {"ignore_checksum_failure", PGC_SUSET, DEVELOPER_OPTIONS,
1148  gettext_noop("Continues processing after a checksum failure."),
1149  gettext_noop("Detection of a checksum failure normally causes PostgreSQL to "
1150  "report an error, aborting the current transaction. Setting "
1151  "ignore_checksum_failure to true causes the system to ignore the failure "
1152  "(but still report a warning), and continue processing. This "
1153  "behavior could cause crashes or other serious problems. Only "
1154  "has an effect if checksums are enabled."),
1156  },
1158  false,
1159  NULL, NULL, NULL
1160  },
1161  {
1162  {"zero_damaged_pages", PGC_SUSET, DEVELOPER_OPTIONS,
1163  gettext_noop("Continues processing past damaged page headers."),
1164  gettext_noop("Detection of a damaged page header normally causes PostgreSQL to "
1165  "report an error, aborting the current transaction. Setting "
1166  "zero_damaged_pages to true causes the system to instead report a "
1167  "warning, zero out the damaged page, and continue processing. This "
1168  "behavior will destroy data, namely all the rows on the damaged page."),
1170  },
1172  false,
1173  NULL, NULL, NULL
1174  },
1175  {
1176  {"ignore_invalid_pages", PGC_POSTMASTER, DEVELOPER_OPTIONS,
1177  gettext_noop("Continues recovery after an invalid pages failure."),
1178  gettext_noop("Detection of WAL records having references to "
1179  "invalid pages during recovery causes PostgreSQL to "
1180  "raise a PANIC-level error, aborting the recovery. "
1181  "Setting ignore_invalid_pages to true causes "
1182  "the system to ignore invalid page references "
1183  "in WAL records (but still report a warning), "
1184  "and continue recovery. This behavior may cause "
1185  "crashes, data loss, propagate or hide corruption, "
1186  "or other serious problems. Only has an effect "
1187  "during recovery or in standby mode."),
1189  },
1191  false,
1192  NULL, NULL, NULL
1193  },
1194  {
1195  {"full_page_writes", PGC_SIGHUP, WAL_SETTINGS,
1196  gettext_noop("Writes full pages to WAL when first modified after a checkpoint."),
1197  gettext_noop("A page write in process during an operating system crash might be "
1198  "only partially written to disk. During recovery, the row changes "
1199  "stored in WAL are not enough to recover. This option writes "
1200  "pages when first modified after a checkpoint to WAL so full recovery "
1201  "is possible.")
1202  },
1203  &fullPageWrites,
1204  true,
1205  NULL, NULL, NULL
1206  },
1207 
1208  {
1209  {"wal_log_hints", PGC_POSTMASTER, WAL_SETTINGS,
1210  gettext_noop("Writes full pages to WAL when first modified after a checkpoint, even for a non-critical modification."),
1211  NULL
1212  },
1213  &wal_log_hints,
1214  false,
1215  NULL, NULL, NULL
1216  },
1217 
1218  {
1219  {"wal_init_zero", PGC_SUSET, WAL_SETTINGS,
1220  gettext_noop("Writes zeroes to new WAL files before first use."),
1221  NULL
1222  },
1223  &wal_init_zero,
1224  true,
1225  NULL, NULL, NULL
1226  },
1227 
1228  {
1229  {"wal_recycle", PGC_SUSET, WAL_SETTINGS,
1230  gettext_noop("Recycles WAL files by renaming them."),
1231  NULL
1232  },
1233  &wal_recycle,
1234  true,
1235  NULL, NULL, NULL
1236  },
1237 
1238  {
1239  {"log_checkpoints", PGC_SIGHUP, LOGGING_WHAT,
1240  gettext_noop("Logs each checkpoint."),
1241  NULL
1242  },
1243  &log_checkpoints,
1244  true,
1245  NULL, NULL, NULL
1246  },
1247  {
1248  {"log_connections", PGC_SU_BACKEND, LOGGING_WHAT,
1249  gettext_noop("Logs each successful connection."),
1250  NULL
1251  },
1252  &Log_connections,
1253  false,
1254  NULL, NULL, NULL
1255  },
1256  {
1257  {"log_disconnections", PGC_SU_BACKEND, LOGGING_WHAT,
1258  gettext_noop("Logs end of a session, including duration."),
1259  NULL
1260  },
1262  false,
1263  NULL, NULL, NULL
1264  },
1265  {
1266  {"log_replication_commands", PGC_SUSET, LOGGING_WHAT,
1267  gettext_noop("Logs each replication command."),
1268  NULL
1269  },
1271  false,
1272  NULL, NULL, NULL
1273  },
1274  {
1275  {"debug_assertions", PGC_INTERNAL, PRESET_OPTIONS,
1276  gettext_noop("Shows whether the running server has assertion checks enabled."),
1277  NULL,
1279  },
1280  &assert_enabled,
1282  NULL, NULL, NULL
1283  },
1284 
1285  {
1286  {"exit_on_error", PGC_USERSET, ERROR_HANDLING_OPTIONS,
1287  gettext_noop("Terminate session on any error."),
1288  NULL
1289  },
1290  &ExitOnAnyError,
1291  false,
1292  NULL, NULL, NULL
1293  },
1294  {
1295  {"restart_after_crash", PGC_SIGHUP, ERROR_HANDLING_OPTIONS,
1296  gettext_noop("Reinitialize server after backend crash."),
1297  NULL
1298  },
1300  true,
1301  NULL, NULL, NULL
1302  },
1303  {
1304  {"remove_temp_files_after_crash", PGC_SIGHUP, DEVELOPER_OPTIONS,
1305  gettext_noop("Remove temporary files after backend crash."),
1306  NULL,
1308  },
1310  true,
1311  NULL, NULL, NULL
1312  },
1313  {
1314  {"send_abort_for_crash", PGC_SIGHUP, DEVELOPER_OPTIONS,
1315  gettext_noop("Send SIGABRT not SIGQUIT to child processes after backend crash."),
1316  NULL,
1318  },
1320  false,
1321  NULL, NULL, NULL
1322  },
1323  {
1324  {"send_abort_for_kill", PGC_SIGHUP, DEVELOPER_OPTIONS,
1325  gettext_noop("Send SIGABRT not SIGKILL to stuck child processes."),
1326  NULL,
1328  },
1330  false,
1331  NULL, NULL, NULL
1332  },
1333 
1334  {
1335  {"log_duration", PGC_SUSET, LOGGING_WHAT,
1336  gettext_noop("Logs the duration of each completed SQL statement."),
1337  NULL
1338  },
1339  &log_duration,
1340  false,
1341  NULL, NULL, NULL
1342  },
1343  {
1344  {"debug_print_parse", PGC_USERSET, LOGGING_WHAT,
1345  gettext_noop("Logs each query's parse tree."),
1346  NULL
1347  },
1349  false,
1350  NULL, NULL, NULL
1351  },
1352  {
1353  {"debug_print_rewritten", PGC_USERSET, LOGGING_WHAT,
1354  gettext_noop("Logs each query's rewritten parse tree."),
1355  NULL
1356  },
1358  false,
1359  NULL, NULL, NULL
1360  },
1361  {
1362  {"debug_print_plan", PGC_USERSET, LOGGING_WHAT,
1363  gettext_noop("Logs each query's execution plan."),
1364  NULL
1365  },
1367  false,
1368  NULL, NULL, NULL
1369  },
1370  {
1371  {"debug_pretty_print", PGC_USERSET, LOGGING_WHAT,
1372  gettext_noop("Indents parse and plan tree displays."),
1373  NULL
1374  },
1376  true,
1377  NULL, NULL, NULL
1378  },
1379  {
1380  {"log_parser_stats", PGC_SUSET, STATS_MONITORING,
1381  gettext_noop("Writes parser performance statistics to the server log."),
1382  NULL
1383  },
1385  false,
1386  check_stage_log_stats, NULL, NULL
1387  },
1388  {
1389  {"log_planner_stats", PGC_SUSET, STATS_MONITORING,
1390  gettext_noop("Writes planner performance statistics to the server log."),
1391  NULL
1392  },
1394  false,
1395  check_stage_log_stats, NULL, NULL
1396  },
1397  {
1398  {"log_executor_stats", PGC_SUSET, STATS_MONITORING,
1399  gettext_noop("Writes executor performance statistics to the server log."),
1400  NULL
1401  },
1403  false,
1404  check_stage_log_stats, NULL, NULL
1405  },
1406  {
1407  {"log_statement_stats", PGC_SUSET, STATS_MONITORING,
1408  gettext_noop("Writes cumulative performance statistics to the server log."),
1409  NULL
1410  },
1412  false,
1413  check_log_stats, NULL, NULL
1414  },
1415 #ifdef BTREE_BUILD_STATS
1416  {
1417  {"log_btree_build_stats", PGC_SUSET, DEVELOPER_OPTIONS,
1418  gettext_noop("Logs system resource usage statistics (memory and CPU) on various B-tree operations."),
1419  NULL,
1421  },
1423  false,
1424  NULL, NULL, NULL
1425  },
1426 #endif
1427 
1428  {
1429  {"track_activities", PGC_SUSET, STATS_CUMULATIVE,
1430  gettext_noop("Collects information about executing commands."),
1431  gettext_noop("Enables the collection of information on the currently "
1432  "executing command of each session, along with "
1433  "the time at which that command began execution.")
1434  },
1436  true,
1437  NULL, NULL, NULL
1438  },
1439  {
1440  {"track_counts", PGC_SUSET, STATS_CUMULATIVE,
1441  gettext_noop("Collects statistics on database activity."),
1442  NULL
1443  },
1445  true,
1446  NULL, NULL, NULL
1447  },
1448  {
1449  {"track_io_timing", PGC_SUSET, STATS_CUMULATIVE,
1450  gettext_noop("Collects timing statistics for database I/O activity."),
1451  NULL
1452  },
1453  &track_io_timing,
1454  false,
1455  NULL, NULL, NULL
1456  },
1457  {
1458  {"track_wal_io_timing", PGC_SUSET, STATS_CUMULATIVE,
1459  gettext_noop("Collects timing statistics for WAL I/O activity."),
1460  NULL
1461  },
1463  false,
1464  NULL, NULL, NULL
1465  },
1466 
1467  {
1468  {"update_process_title", PGC_SUSET, PROCESS_TITLE,
1469  gettext_noop("Updates the process title to show the active SQL command."),
1470  gettext_noop("Enables updating of the process title every time a new SQL command is received by the server.")
1471  },
1474  NULL, NULL, NULL
1475  },
1476 
1477  {
1478  {"autovacuum", PGC_SIGHUP, AUTOVACUUM,
1479  gettext_noop("Starts the autovacuum subprocess."),
1480  NULL
1481  },
1483  true,
1484  NULL, NULL, NULL
1485  },
1486 
1487  {
1488  {"trace_notify", PGC_USERSET, DEVELOPER_OPTIONS,
1489  gettext_noop("Generates debugging output for LISTEN and NOTIFY."),
1490  NULL,
1492  },
1493  &Trace_notify,
1494  false,
1495  NULL, NULL, NULL
1496  },
1497 
1498 #ifdef LOCK_DEBUG
1499  {
1500  {"trace_locks", PGC_SUSET, DEVELOPER_OPTIONS,
1501  gettext_noop("Emits information about lock usage."),
1502  NULL,
1504  },
1505  &Trace_locks,
1506  false,
1507  NULL, NULL, NULL
1508  },
1509  {
1510  {"trace_userlocks", PGC_SUSET, DEVELOPER_OPTIONS,
1511  gettext_noop("Emits information about user lock usage."),
1512  NULL,
1514  },
1515  &Trace_userlocks,
1516  false,
1517  NULL, NULL, NULL
1518  },
1519  {
1520  {"trace_lwlocks", PGC_SUSET, DEVELOPER_OPTIONS,
1521  gettext_noop("Emits information about lightweight lock usage."),
1522  NULL,
1524  },
1525  &Trace_lwlocks,
1526  false,
1527  NULL, NULL, NULL
1528  },
1529  {
1530  {"debug_deadlocks", PGC_SUSET, DEVELOPER_OPTIONS,
1531  gettext_noop("Dumps information about all current locks when a deadlock timeout occurs."),
1532  NULL,
1534  },
1535  &Debug_deadlocks,
1536  false,
1537  NULL, NULL, NULL
1538  },
1539 #endif
1540 
1541  {
1542  {"log_lock_waits", PGC_SUSET, LOGGING_WHAT,
1543  gettext_noop("Logs long lock waits."),
1544  NULL
1545  },
1546  &log_lock_waits,
1547  false,
1548  NULL, NULL, NULL
1549  },
1550  {
1551  {"log_recovery_conflict_waits", PGC_SIGHUP, LOGGING_WHAT,
1552  gettext_noop("Logs standby recovery conflict waits."),
1553  NULL
1554  },
1556  false,
1557  NULL, NULL, NULL
1558  },
1559  {
1560  {"log_hostname", PGC_SIGHUP, LOGGING_WHAT,
1561  gettext_noop("Logs the host name in the connection logs."),
1562  gettext_noop("By default, connection logs only show the IP address "
1563  "of the connecting host. If you want them to show the host name you "
1564  "can turn this on, but depending on your host name resolution "
1565  "setup it might impose a non-negligible performance penalty.")
1566  },
1567  &log_hostname,
1568  false,
1569  NULL, NULL, NULL
1570  },
1571  {
1572  {"transform_null_equals", PGC_USERSET, COMPAT_OPTIONS_CLIENT,
1573  gettext_noop("Treats \"expr=NULL\" as \"expr IS NULL\"."),
1574  gettext_noop("When turned on, expressions of the form expr = NULL "
1575  "(or NULL = expr) are treated as expr IS NULL, that is, they "
1576  "return true if expr evaluates to the null value, and false "
1577  "otherwise. The correct behavior of expr = NULL is to always "
1578  "return null (unknown).")
1579  },
1581  false,
1582  NULL, NULL, NULL
1583  },
1584  {
1585  {"default_transaction_read_only", PGC_USERSET, CLIENT_CONN_STATEMENT,
1586  gettext_noop("Sets the default read-only status of new transactions."),
1587  NULL,
1588  GUC_REPORT
1589  },
1591  false,
1592  NULL, NULL, NULL
1593  },
1594  {
1595  {"transaction_read_only", PGC_USERSET, CLIENT_CONN_STATEMENT,
1596  gettext_noop("Sets the current transaction's read-only status."),
1597  NULL,
1599  },
1600  &XactReadOnly,
1601  false,
1602  check_transaction_read_only, NULL, NULL
1603  },
1604  {
1605  {"default_transaction_deferrable", PGC_USERSET, CLIENT_CONN_STATEMENT,
1606  gettext_noop("Sets the default deferrable status of new transactions."),
1607  NULL
1608  },
1610  false,
1611  NULL, NULL, NULL
1612  },
1613  {
1614  {"transaction_deferrable", PGC_USERSET, CLIENT_CONN_STATEMENT,
1615  gettext_noop("Whether to defer a read-only serializable transaction until it can be executed with no possible serialization failures."),
1616  NULL,
1618  },
1619  &XactDeferrable,
1620  false,
1621  check_transaction_deferrable, NULL, NULL
1622  },
1623  {
1624  {"row_security", PGC_USERSET, CLIENT_CONN_STATEMENT,
1625  gettext_noop("Enable row security."),
1626  gettext_noop("When enabled, row security will be applied to all users.")
1627  },
1628  &row_security,
1629  true,
1630  NULL, NULL, NULL
1631  },
1632  {
1633  {"check_function_bodies", PGC_USERSET, CLIENT_CONN_STATEMENT,
1634  gettext_noop("Check routine bodies during CREATE FUNCTION and CREATE PROCEDURE."),
1635  NULL
1636  },
1638  true,
1639  NULL, NULL, NULL
1640  },
1641  {
1642  {"array_nulls", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
1643  gettext_noop("Enable input of NULL elements in arrays."),
1644  gettext_noop("When turned on, unquoted NULL in an array input "
1645  "value means a null value; "
1646  "otherwise it is taken literally.")
1647  },
1648  &Array_nulls,
1649  true,
1650  NULL, NULL, NULL
1651  },
1652 
1653  /*
1654  * WITH OIDS support, and consequently default_with_oids, was removed in
1655  * PostgreSQL 12, but we tolerate the parameter being set to false to
1656  * avoid unnecessarily breaking older dump files.
1657  */
1658  {
1659  {"default_with_oids", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
1660  gettext_noop("WITH OIDS is no longer supported; this can only be false."),
1661  NULL,
1663  },
1665  false,
1666  check_default_with_oids, NULL, NULL
1667  },
1668  {
1669  {"logging_collector", PGC_POSTMASTER, LOGGING_WHERE,
1670  gettext_noop("Start a subprocess to capture stderr output and/or csvlogs into log files."),
1671  NULL
1672  },
1674  false,
1675  NULL, NULL, NULL
1676  },
1677  {
1678  {"log_truncate_on_rotation", PGC_SIGHUP, LOGGING_WHERE,
1679  gettext_noop("Truncate existing log files of same name during log rotation."),
1680  NULL
1681  },
1683  false,
1684  NULL, NULL, NULL
1685  },
1686 
1687 #ifdef TRACE_SORT
1688  {
1689  {"trace_sort", PGC_USERSET, DEVELOPER_OPTIONS,
1690  gettext_noop("Emit information about resource usage in sorting."),
1691  NULL,
1693  },
1694  &trace_sort,
1695  false,
1696  NULL, NULL, NULL
1697  },
1698 #endif
1699 
1700 #ifdef TRACE_SYNCSCAN
1701  /* this is undocumented because not exposed in a standard build */
1702  {
1703  {"trace_syncscan", PGC_USERSET, DEVELOPER_OPTIONS,
1704  gettext_noop("Generate debugging output for synchronized scanning."),
1705  NULL,
1707  },
1708  &trace_syncscan,
1709  false,
1710  NULL, NULL, NULL
1711  },
1712 #endif
1713 
1714 #ifdef DEBUG_BOUNDED_SORT
1715  /* this is undocumented because not exposed in a standard build */
1716  {
1717  {
1718  "optimize_bounded_sort", PGC_USERSET, QUERY_TUNING_METHOD,
1719  gettext_noop("Enable bounded sorting using heap sort."),
1720  NULL,
1722  },
1723  &optimize_bounded_sort,
1724  true,
1725  NULL, NULL, NULL
1726  },
1727 #endif
1728 
1729 #ifdef WAL_DEBUG
1730  {
1731  {"wal_debug", PGC_SUSET, DEVELOPER_OPTIONS,
1732  gettext_noop("Emit WAL-related debugging output."),
1733  NULL,
1735  },
1736  &XLOG_DEBUG,
1737  false,
1738  NULL, NULL, NULL
1739  },
1740 #endif
1741 
1742  {
1743  {"integer_datetimes", PGC_INTERNAL, PRESET_OPTIONS,
1744  gettext_noop("Shows whether datetimes are integer based."),
1745  NULL,
1747  },
1749  true,
1750  NULL, NULL, NULL
1751  },
1752 
1753  {
1754  {"krb_caseins_users", PGC_SIGHUP, CONN_AUTH_AUTH,
1755  gettext_noop("Sets whether Kerberos and GSSAPI user names should be treated as case-insensitive."),
1756  NULL
1757  },
1759  false,
1760  NULL, NULL, NULL
1761  },
1762 
1763  {
1764  {"gss_accept_delegation", PGC_SIGHUP, CONN_AUTH_AUTH,
1765  gettext_noop("Sets whether GSSAPI delegation should be accepted from the client."),
1766  NULL
1767  },
1769  false,
1770  NULL, NULL, NULL
1771  },
1772 
1773  {
1774  {"escape_string_warning", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
1775  gettext_noop("Warn about backslash escapes in ordinary string literals."),
1776  NULL
1777  },
1779  true,
1780  NULL, NULL, NULL
1781  },
1782 
1783  {
1784  {"standard_conforming_strings", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
1785  gettext_noop("Causes '...' strings to treat backslashes literally."),
1786  NULL,
1787  GUC_REPORT
1788  },
1790  true,
1791  NULL, NULL, NULL
1792  },
1793 
1794  {
1795  {"synchronize_seqscans", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
1796  gettext_noop("Enable synchronized sequential scans."),
1797  NULL
1798  },
1800  true,
1801  NULL, NULL, NULL
1802  },
1803 
1804  {
1805  {"recovery_target_inclusive", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
1806  gettext_noop("Sets whether to include or exclude transaction with recovery target."),
1807  NULL
1808  },
1810  true,
1811  NULL, NULL, NULL
1812  },
1813 
1814  {
1815  {"summarize_wal", PGC_SIGHUP, WAL_SUMMARIZATION,
1816  gettext_noop("Starts the WAL summarizer process to enable incremental backup."),
1817  NULL
1818  },
1819  &summarize_wal,
1820  false,
1821  NULL, NULL, NULL
1822  },
1823 
1824  {
1825  {"hot_standby", PGC_POSTMASTER, REPLICATION_STANDBY,
1826  gettext_noop("Allows connections and queries during recovery."),
1827  NULL
1828  },
1830  true,
1831  NULL, NULL, NULL
1832  },
1833 
1834  {
1835  {"hot_standby_feedback", PGC_SIGHUP, REPLICATION_STANDBY,
1836  gettext_noop("Allows feedback from a hot standby to the primary that will avoid query conflicts."),
1837  NULL
1838  },
1840  false,
1841  NULL, NULL, NULL
1842  },
1843 
1844  {
1845  {"in_hot_standby", PGC_INTERNAL, PRESET_OPTIONS,
1846  gettext_noop("Shows whether hot standby is currently active."),
1847  NULL,
1849  },
1851  false,
1852  NULL, NULL, show_in_hot_standby
1853  },
1854 
1855  {
1856  {"allow_system_table_mods", PGC_SUSET, DEVELOPER_OPTIONS,
1857  gettext_noop("Allows modifications of the structure of system tables."),
1858  NULL,
1860  },
1862  false,
1863  NULL, NULL, NULL
1864  },
1865 
1866  {
1867  {"ignore_system_indexes", PGC_BACKEND, DEVELOPER_OPTIONS,
1868  gettext_noop("Disables reading from system indexes."),
1869  gettext_noop("It does not prevent updating the indexes, so it is safe "
1870  "to use. The worst consequence is slowness."),
1872  },
1874  false,
1875  NULL, NULL, NULL
1876  },
1877 
1878  {
1879  {"allow_in_place_tablespaces", PGC_SUSET, DEVELOPER_OPTIONS,
1880  gettext_noop("Allows tablespaces directly inside pg_tblspc, for testing."),
1881  NULL,
1883  },
1885  false,
1886  NULL, NULL, NULL
1887  },
1888 
1889  {
1890  {"lo_compat_privileges", PGC_SUSET, COMPAT_OPTIONS_PREVIOUS,
1891  gettext_noop("Enables backward compatibility mode for privilege checks on large objects."),
1892  gettext_noop("Skips privilege checks when reading or modifying large objects, "
1893  "for compatibility with PostgreSQL releases prior to 9.0.")
1894  },
1896  false,
1897  NULL, NULL, NULL
1898  },
1899 
1900  {
1901  {"quote_all_identifiers", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
1902  gettext_noop("When generating SQL fragments, quote all identifiers."),
1903  NULL,
1904  },
1906  false,
1907  NULL, NULL, NULL
1908  },
1909 
1910  {
1911  {"data_checksums", PGC_INTERNAL, PRESET_OPTIONS,
1912  gettext_noop("Shows whether data checksums are turned on for this cluster."),
1913  NULL,
1915  },
1916  &data_checksums,
1917  false,
1918  NULL, NULL, NULL
1919  },
1920 
1921  {
1922  {"syslog_sequence_numbers", PGC_SIGHUP, LOGGING_WHERE,
1923  gettext_noop("Add sequence number to syslog messages to avoid duplicate suppression."),
1924  NULL
1925  },
1927  true,
1928  NULL, NULL, NULL
1929  },
1930 
1931  {
1932  {"syslog_split_messages", PGC_SIGHUP, LOGGING_WHERE,
1933  gettext_noop("Split messages sent to syslog by lines and to fit into 1024 bytes."),
1934  NULL
1935  },
1937  true,
1938  NULL, NULL, NULL
1939  },
1940 
1941  {
1942  {"parallel_leader_participation", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
1943  gettext_noop("Controls whether Gather and Gather Merge also run subplans."),
1944  gettext_noop("Should gather nodes also run subplans or just gather tuples?"),
1945  GUC_EXPLAIN
1946  },
1948  true,
1949  NULL, NULL, NULL
1950  },
1951 
1952  {
1954  gettext_noop("Allow JIT compilation."),
1955  NULL,
1956  GUC_EXPLAIN
1957  },
1958  &jit_enabled,
1959  true,
1960  NULL, NULL, NULL
1961  },
1962 
1963  {
1964  {"jit_debugging_support", PGC_SU_BACKEND, DEVELOPER_OPTIONS,
1965  gettext_noop("Register JIT-compiled functions with debugger."),
1966  NULL,
1968  },
1970  false,
1971 
1972  /*
1973  * This is not guaranteed to be available, but given it's a developer
1974  * oriented option, it doesn't seem worth adding code checking
1975  * availability.
1976  */
1977  NULL, NULL, NULL
1978  },
1979 
1980  {
1981  {"jit_dump_bitcode", PGC_SUSET, DEVELOPER_OPTIONS,
1982  gettext_noop("Write out LLVM bitcode to facilitate JIT debugging."),
1983  NULL,
1985  },
1987  false,
1988  NULL, NULL, NULL
1989  },
1990 
1991  {
1992  {"jit_expressions", PGC_USERSET, DEVELOPER_OPTIONS,
1993  gettext_noop("Allow JIT compilation of expressions."),
1994  NULL,
1996  },
1997  &jit_expressions,
1998  true,
1999  NULL, NULL, NULL
2000  },
2001 
2002  {
2003  {"jit_profiling_support", PGC_SU_BACKEND, DEVELOPER_OPTIONS,
2004  gettext_noop("Register JIT-compiled functions with perf profiler."),
2005  NULL,
2007  },
2009  false,
2010 
2011  /*
2012  * This is not guaranteed to be available, but given it's a developer
2013  * oriented option, it doesn't seem worth adding code checking
2014  * availability.
2015  */
2016  NULL, NULL, NULL
2017  },
2018 
2019  {
2020  {"jit_tuple_deforming", PGC_USERSET, DEVELOPER_OPTIONS,
2021  gettext_noop("Allow JIT compilation of tuple deforming."),
2022  NULL,
2024  },
2026  true,
2027  NULL, NULL, NULL
2028  },
2029 
2030  {
2031  {"data_sync_retry", PGC_POSTMASTER, ERROR_HANDLING_OPTIONS,
2032  gettext_noop("Whether to continue running after a failure to sync data files."),
2033  },
2034  &data_sync_retry,
2035  false,
2036  NULL, NULL, NULL
2037  },
2038 
2039  {
2040  {"wal_receiver_create_temp_slot", PGC_SIGHUP, REPLICATION_STANDBY,
2041  gettext_noop("Sets whether a WAL receiver should create a temporary replication slot if no permanent slot is configured."),
2042  },
2044  false,
2045  NULL, NULL, NULL
2046  },
2047 
2048  {
2049  {"event_triggers", PGC_SUSET, CLIENT_CONN_STATEMENT,
2050  gettext_noop("Enables event triggers."),
2051  gettext_noop("When enabled, event triggers will fire for all applicable statements."),
2052  },
2053  &event_triggers,
2054  true,
2055  NULL, NULL, NULL
2056  },
2057 
2058  {
2059  {"sync_replication_slots", PGC_SIGHUP, REPLICATION_STANDBY,
2060  gettext_noop("Enables a physical standby to synchronize logical failover slots from the primary server."),
2061  },
2063  false,
2064  NULL, NULL, NULL
2065  },
2066 
2067  /* End-of-list marker */
2068  {
2069  {NULL, 0, 0, NULL, NULL}, NULL, false, NULL, NULL, NULL
2070  }
2071 };
2072 
2073 
2074 struct config_int ConfigureNamesInt[] =
2075 {
2076  {
2077  {"archive_timeout", PGC_SIGHUP, WAL_ARCHIVING,
2078  gettext_noop("Sets the amount of time to wait before forcing a "
2079  "switch to the next WAL file."),
2080  NULL,
2081  GUC_UNIT_S
2082  },
2084  0, 0, INT_MAX / 2,
2085  NULL, NULL, NULL
2086  },
2087  {
2088  {"post_auth_delay", PGC_BACKEND, DEVELOPER_OPTIONS,
2089  gettext_noop("Sets the amount of time to wait after "
2090  "authentication on connection startup."),
2091  gettext_noop("This allows attaching a debugger to the process."),
2093  },
2094  &PostAuthDelay,
2095  0, 0, INT_MAX / 1000000,
2096  NULL, NULL, NULL
2097  },
2098  {
2099  {"default_statistics_target", PGC_USERSET, QUERY_TUNING_OTHER,
2100  gettext_noop("Sets the default statistics target."),
2101  gettext_noop("This applies to table columns that have not had a "
2102  "column-specific target set via ALTER TABLE SET STATISTICS.")
2103  },
2105  100, 1, MAX_STATISTICS_TARGET,
2106  NULL, NULL, NULL
2107  },
2108  {
2109  {"from_collapse_limit", PGC_USERSET, QUERY_TUNING_OTHER,
2110  gettext_noop("Sets the FROM-list size beyond which subqueries "
2111  "are not collapsed."),
2112  gettext_noop("The planner will merge subqueries into upper "
2113  "queries if the resulting FROM list would have no more than "
2114  "this many items."),
2115  GUC_EXPLAIN
2116  },
2118  8, 1, INT_MAX,
2119  NULL, NULL, NULL
2120  },
2121  {
2122  {"join_collapse_limit", PGC_USERSET, QUERY_TUNING_OTHER,
2123  gettext_noop("Sets the FROM-list size beyond which JOIN "
2124  "constructs are not flattened."),
2125  gettext_noop("The planner will flatten explicit JOIN "
2126  "constructs into lists of FROM items whenever a "
2127  "list of no more than this many items would result."),
2128  GUC_EXPLAIN
2129  },
2131  8, 1, INT_MAX,
2132  NULL, NULL, NULL
2133  },
2134  {
2135  {"geqo_threshold", PGC_USERSET, QUERY_TUNING_GEQO,
2136  gettext_noop("Sets the threshold of FROM items beyond which GEQO is used."),
2137  NULL,
2138  GUC_EXPLAIN
2139  },
2140  &geqo_threshold,
2141  12, 2, INT_MAX,
2142  NULL, NULL, NULL
2143  },
2144  {
2145  {"geqo_effort", PGC_USERSET, QUERY_TUNING_GEQO,
2146  gettext_noop("GEQO: effort is used to set the default for other GEQO parameters."),
2147  NULL,
2148  GUC_EXPLAIN
2149  },
2150  &Geqo_effort,
2152  NULL, NULL, NULL
2153  },
2154  {
2155  {"geqo_pool_size", PGC_USERSET, QUERY_TUNING_GEQO,
2156  gettext_noop("GEQO: number of individuals in the population."),
2157  gettext_noop("Zero selects a suitable default value."),
2158  GUC_EXPLAIN
2159  },
2160  &Geqo_pool_size,
2161  0, 0, INT_MAX,
2162  NULL, NULL, NULL
2163  },
2164  {
2165  {"geqo_generations", PGC_USERSET, QUERY_TUNING_GEQO,
2166  gettext_noop("GEQO: number of iterations of the algorithm."),
2167  gettext_noop("Zero selects a suitable default value."),
2168  GUC_EXPLAIN
2169  },
2171  0, 0, INT_MAX,
2172  NULL, NULL, NULL
2173  },
2174 
2175  {
2176  /* This is PGC_SUSET to prevent hiding from log_lock_waits. */
2177  {"deadlock_timeout", PGC_SUSET, LOCK_MANAGEMENT,
2178  gettext_noop("Sets the time to wait on a lock before checking for deadlock."),
2179  NULL,
2180  GUC_UNIT_MS
2181  },
2182  &DeadlockTimeout,
2183  1000, 1, INT_MAX,
2184  NULL, NULL, NULL
2185  },
2186 
2187  {
2188  {"max_standby_archive_delay", PGC_SIGHUP, REPLICATION_STANDBY,
2189  gettext_noop("Sets the maximum delay before canceling queries when a hot standby server is processing archived WAL data."),
2190  NULL,
2191  GUC_UNIT_MS
2192  },
2194  30 * 1000, -1, INT_MAX,
2195  NULL, NULL, NULL
2196  },
2197 
2198  {
2199  {"max_standby_streaming_delay", PGC_SIGHUP, REPLICATION_STANDBY,
2200  gettext_noop("Sets the maximum delay before canceling queries when a hot standby server is processing streamed WAL data."),
2201  NULL,
2202  GUC_UNIT_MS
2203  },
2205  30 * 1000, -1, INT_MAX,
2206  NULL, NULL, NULL
2207  },
2208 
2209  {
2210  {"recovery_min_apply_delay", PGC_SIGHUP, REPLICATION_STANDBY,
2211  gettext_noop("Sets the minimum delay for applying changes during recovery."),
2212  NULL,
2213  GUC_UNIT_MS
2214  },
2216  0, 0, INT_MAX,
2217  NULL, NULL, NULL
2218  },
2219 
2220  {
2221  {"wal_receiver_status_interval", PGC_SIGHUP, REPLICATION_STANDBY,
2222  gettext_noop("Sets the maximum interval between WAL receiver status reports to the sending server."),
2223  NULL,
2224  GUC_UNIT_S
2225  },
2227  10, 0, INT_MAX / 1000,
2228  NULL, NULL, NULL
2229  },
2230 
2231  {
2232  {"wal_receiver_timeout", PGC_SIGHUP, REPLICATION_STANDBY,
2233  gettext_noop("Sets the maximum wait time to receive data from the sending server."),
2234  NULL,
2235  GUC_UNIT_MS
2236  },
2238  60 * 1000, 0, INT_MAX,
2239  NULL, NULL, NULL
2240  },
2241 
2242  {
2243  {"max_connections", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
2244  gettext_noop("Sets the maximum number of concurrent connections."),
2245  NULL
2246  },
2247  &MaxConnections,
2248  100, 1, MAX_BACKENDS,
2249  check_max_connections, NULL, NULL
2250  },
2251 
2252  {
2253  /* see max_connections */
2254  {"superuser_reserved_connections", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
2255  gettext_noop("Sets the number of connection slots reserved for superusers."),
2256  NULL
2257  },
2259  3, 0, MAX_BACKENDS,
2260  NULL, NULL, NULL
2261  },
2262 
2263  {
2264  {"reserved_connections", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
2265  gettext_noop("Sets the number of connection slots reserved for roles "
2266  "with privileges of pg_use_reserved_connections."),
2267  NULL
2268  },
2270  0, 0, MAX_BACKENDS,
2271  NULL, NULL, NULL
2272  },
2273 
2274  {
2275  {"min_dynamic_shared_memory", PGC_POSTMASTER, RESOURCES_MEM,
2276  gettext_noop("Amount of dynamic shared memory reserved at startup."),
2277  NULL,
2278  GUC_UNIT_MB
2279  },
2281  0, 0, (int) Min((size_t) INT_MAX, SIZE_MAX / (1024 * 1024)),
2282  NULL, NULL, NULL
2283  },
2284 
2285  /*
2286  * We sometimes multiply the number of shared buffers by two without
2287  * checking for overflow, so we mustn't allow more than INT_MAX / 2.
2288  */
2289  {
2290  {"shared_buffers", PGC_POSTMASTER, RESOURCES_MEM,
2291  gettext_noop("Sets the number of shared memory buffers used by the server."),
2292  NULL,
2294  },
2295  &NBuffers,
2296  16384, 16, INT_MAX / 2,
2297  NULL, NULL, NULL
2298  },
2299 
2300  {
2301  {"vacuum_buffer_usage_limit", PGC_USERSET, RESOURCES_MEM,
2302  gettext_noop("Sets the buffer pool size for VACUUM, ANALYZE, and autovacuum."),
2303  NULL,
2304  GUC_UNIT_KB
2305  },
2307  256, 0, MAX_BAS_VAC_RING_SIZE_KB,
2309  },
2310 
2311  {
2312  {"shared_memory_size", PGC_INTERNAL, PRESET_OPTIONS,
2313  gettext_noop("Shows the size of the server's main shared memory area (rounded up to the nearest MB)."),
2314  NULL,
2316  },
2318  0, 0, INT_MAX,
2319  NULL, NULL, NULL
2320  },
2321 
2322  {
2323  {"shared_memory_size_in_huge_pages", PGC_INTERNAL, PRESET_OPTIONS,
2324  gettext_noop("Shows the number of huge pages needed for the main shared memory area."),
2325  gettext_noop("-1 indicates that the value could not be determined."),
2327  },
2329  -1, -1, INT_MAX,
2330  NULL, NULL, NULL
2331  },
2332 
2333  {
2334  {"temp_buffers", PGC_USERSET, RESOURCES_MEM,
2335  gettext_noop("Sets the maximum number of temporary buffers used by each session."),
2336  NULL,
2338  },
2340  1024, 100, INT_MAX / 2,
2341  check_temp_buffers, NULL, NULL
2342  },
2343 
2344  {
2346  gettext_noop("Sets the TCP port the server listens on."),
2347  NULL
2348  },
2349  &PostPortNumber,
2350  DEF_PGPORT, 1, 65535,
2351  NULL, NULL, NULL
2352  },
2353 
2354  {
2355  {"unix_socket_permissions", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
2356  gettext_noop("Sets the access permissions of the Unix-domain socket."),
2357  gettext_noop("Unix-domain sockets use the usual Unix file system "
2358  "permission set. The parameter value is expected "
2359  "to be a numeric mode specification in the form "
2360  "accepted by the chmod and umask system calls. "
2361  "(To use the customary octal format the number must "
2362  "start with a 0 (zero).)")
2363  },
2365  0777, 0000, 0777,
2366  NULL, NULL, show_unix_socket_permissions
2367  },
2368 
2369  {
2370  {"log_file_mode", PGC_SIGHUP, LOGGING_WHERE,
2371  gettext_noop("Sets the file permissions for log files."),
2372  gettext_noop("The parameter value is expected "
2373  "to be a numeric mode specification in the form "
2374  "accepted by the chmod and umask system calls. "
2375  "(To use the customary octal format the number must "
2376  "start with a 0 (zero).)")
2377  },
2378  &Log_file_mode,
2379  0600, 0000, 0777,
2380  NULL, NULL, show_log_file_mode
2381  },
2382 
2383 
2384  {
2385  {"data_directory_mode", PGC_INTERNAL, PRESET_OPTIONS,
2386  gettext_noop("Shows the mode of the data directory."),
2387  gettext_noop("The parameter value is a numeric mode specification "
2388  "in the form accepted by the chmod and umask system "
2389  "calls. (To use the customary octal format the number "
2390  "must start with a 0 (zero).)"),
2392  },
2394  0700, 0000, 0777,
2395  NULL, NULL, show_data_directory_mode
2396  },
2397 
2398  {
2399  {"work_mem", PGC_USERSET, RESOURCES_MEM,
2400  gettext_noop("Sets the maximum memory to be used for query workspaces."),
2401  gettext_noop("This much memory can be used by each internal "
2402  "sort operation and hash table before switching to "
2403  "temporary disk files."),
2405  },
2406  &work_mem,
2407  4096, 64, MAX_KILOBYTES,
2408  NULL, NULL, NULL
2409  },
2410 
2411  {
2412  {"maintenance_work_mem", PGC_USERSET, RESOURCES_MEM,
2413  gettext_noop("Sets the maximum memory to be used for maintenance operations."),
2414  gettext_noop("This includes operations such as VACUUM and CREATE INDEX."),
2415  GUC_UNIT_KB
2416  },
2418  65536, 1024, MAX_KILOBYTES,
2419  NULL, NULL, NULL
2420  },
2421 
2422  {
2423  {"logical_decoding_work_mem", PGC_USERSET, RESOURCES_MEM,
2424  gettext_noop("Sets the maximum memory to be used for logical decoding."),
2425  gettext_noop("This much memory can be used by each internal "
2426  "reorder buffer before spilling to disk."),
2427  GUC_UNIT_KB
2428  },
2430  65536, 64, MAX_KILOBYTES,
2431  NULL, NULL, NULL
2432  },
2433 
2434  /*
2435  * We use the hopefully-safely-small value of 100kB as the compiled-in
2436  * default for max_stack_depth. InitializeGUCOptions will increase it if
2437  * possible, depending on the actual platform-specific stack limit.
2438  */
2439  {
2440  {"max_stack_depth", PGC_SUSET, RESOURCES_MEM,
2441  gettext_noop("Sets the maximum stack depth, in kilobytes."),
2442  NULL,
2443  GUC_UNIT_KB
2444  },
2445  &max_stack_depth,
2446  100, 100, MAX_KILOBYTES,
2448  },
2449 
2450  {
2451  {"temp_file_limit", PGC_SUSET, RESOURCES_DISK,
2452  gettext_noop("Limits the total size of all temporary files used by each process."),
2453  gettext_noop("-1 means no limit."),
2454  GUC_UNIT_KB
2455  },
2456  &temp_file_limit,
2457  -1, -1, INT_MAX,
2458  NULL, NULL, NULL
2459  },
2460 
2461  {
2462  {"vacuum_cost_page_hit", PGC_USERSET, RESOURCES_VACUUM_DELAY,
2463  gettext_noop("Vacuum cost for a page found in the buffer cache."),
2464  NULL
2465  },
2467  1, 0, 10000,
2468  NULL, NULL, NULL
2469  },
2470 
2471  {
2472  {"vacuum_cost_page_miss", PGC_USERSET, RESOURCES_VACUUM_DELAY,
2473  gettext_noop("Vacuum cost for a page not found in the buffer cache."),
2474  NULL
2475  },
2477  2, 0, 10000,
2478  NULL, NULL, NULL
2479  },
2480 
2481  {
2482  {"vacuum_cost_page_dirty", PGC_USERSET, RESOURCES_VACUUM_DELAY,
2483  gettext_noop("Vacuum cost for a page dirtied by vacuum."),
2484  NULL
2485  },
2487  20, 0, 10000,
2488  NULL, NULL, NULL
2489  },
2490 
2491  {
2492  {"vacuum_cost_limit", PGC_USERSET, RESOURCES_VACUUM_DELAY,
2493  gettext_noop("Vacuum cost amount available before napping."),
2494  NULL
2495  },
2496  &VacuumCostLimit,
2497  200, 1, 10000,
2498  NULL, NULL, NULL
2499  },
2500 
2501  {
2502  {"autovacuum_vacuum_cost_limit", PGC_SIGHUP, AUTOVACUUM,
2503  gettext_noop("Vacuum cost amount available before napping, for autovacuum."),
2504  NULL
2505  },
2507  -1, -1, 10000,
2508  NULL, NULL, NULL
2509  },
2510 
2511  {
2512  {"max_files_per_process", PGC_POSTMASTER, RESOURCES_KERNEL,
2513  gettext_noop("Sets the maximum number of simultaneously open files for each server process."),
2514  NULL
2515  },
2517  1000, 64, INT_MAX,
2518  NULL, NULL, NULL
2519  },
2520 
2521  /*
2522  * See also CheckRequiredParameterValues() if this parameter changes
2523  */
2524  {
2525  {"max_prepared_transactions", PGC_POSTMASTER, RESOURCES_MEM,
2526  gettext_noop("Sets the maximum number of simultaneously prepared transactions."),
2527  NULL
2528  },
2530  0, 0, MAX_BACKENDS,
2531  NULL, NULL, NULL
2532  },
2533 
2534 #ifdef LOCK_DEBUG
2535  {
2536  {"trace_lock_oidmin", PGC_SUSET, DEVELOPER_OPTIONS,
2537  gettext_noop("Sets the minimum OID of tables for tracking locks."),
2538  gettext_noop("Is used to avoid output on system tables."),
2540  },
2541  &Trace_lock_oidmin,
2542  FirstNormalObjectId, 0, INT_MAX,
2543  NULL, NULL, NULL
2544  },
2545  {
2546  {"trace_lock_table", PGC_SUSET, DEVELOPER_OPTIONS,
2547  gettext_noop("Sets the OID of the table with unconditionally lock tracing."),
2548  NULL,
2550  },
2551  &Trace_lock_table,
2552  0, 0, INT_MAX,
2553  NULL, NULL, NULL
2554  },
2555 #endif
2556 
2557  {
2558  {"statement_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
2559  gettext_noop("Sets the maximum allowed duration of any statement."),
2560  gettext_noop("A value of 0 turns off the timeout."),
2561  GUC_UNIT_MS
2562  },
2564  0, 0, INT_MAX,
2565  NULL, NULL, NULL
2566  },
2567 
2568  {
2569  {"lock_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
2570  gettext_noop("Sets the maximum allowed duration of any wait for a lock."),
2571  gettext_noop("A value of 0 turns off the timeout."),
2572  GUC_UNIT_MS
2573  },
2574  &LockTimeout,
2575  0, 0, INT_MAX,
2576  NULL, NULL, NULL
2577  },
2578 
2579  {
2580  {"idle_in_transaction_session_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
2581  gettext_noop("Sets the maximum allowed idle time between queries, when in a transaction."),
2582  gettext_noop("A value of 0 turns off the timeout."),
2583  GUC_UNIT_MS
2584  },
2586  0, 0, INT_MAX,
2587  NULL, NULL, NULL
2588  },
2589 
2590  {
2591  {"transaction_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
2592  gettext_noop("Sets the maximum allowed time in a transaction with a session (not a prepared transaction)."),
2593  gettext_noop("A value of 0 turns off the timeout."),
2594  GUC_UNIT_MS
2595  },
2597  0, 0, INT_MAX,
2598  NULL, assign_transaction_timeout, NULL
2599  },
2600 
2601  {
2602  {"idle_session_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
2603  gettext_noop("Sets the maximum allowed idle time between queries, when not in a transaction."),
2604  gettext_noop("A value of 0 turns off the timeout."),
2605  GUC_UNIT_MS
2606  },
2608  0, 0, INT_MAX,
2609  NULL, NULL, NULL
2610  },
2611 
2612  {
2613  {"vacuum_freeze_min_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
2614  gettext_noop("Minimum age at which VACUUM should freeze a table row."),
2615  NULL
2616  },
2618  50000000, 0, 1000000000,
2619  NULL, NULL, NULL
2620  },
2621 
2622  {
2623  {"vacuum_freeze_table_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
2624  gettext_noop("Age at which VACUUM should scan whole table to freeze tuples."),
2625  NULL
2626  },
2628  150000000, 0, 2000000000,
2629  NULL, NULL, NULL
2630  },
2631 
2632  {
2633  {"vacuum_multixact_freeze_min_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
2634  gettext_noop("Minimum age at which VACUUM should freeze a MultiXactId in a table row."),
2635  NULL
2636  },
2638  5000000, 0, 1000000000,
2639  NULL, NULL, NULL
2640  },
2641 
2642  {
2643  {"vacuum_multixact_freeze_table_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
2644  gettext_noop("Multixact age at which VACUUM should scan whole table to freeze tuples."),
2645  NULL
2646  },
2648  150000000, 0, 2000000000,
2649  NULL, NULL, NULL
2650  },
2651 
2652  {
2653  {"vacuum_failsafe_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
2654  gettext_noop("Age at which VACUUM should trigger failsafe to avoid a wraparound outage."),
2655  NULL
2656  },
2658  1600000000, 0, 2100000000,
2659  NULL, NULL, NULL
2660  },
2661  {
2662  {"vacuum_multixact_failsafe_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
2663  gettext_noop("Multixact age at which VACUUM should trigger failsafe to avoid a wraparound outage."),
2664  NULL
2665  },
2667  1600000000, 0, 2100000000,
2668  NULL, NULL, NULL
2669  },
2670 
2671  /*
2672  * See also CheckRequiredParameterValues() if this parameter changes
2673  */
2674  {
2675  {"max_locks_per_transaction", PGC_POSTMASTER, LOCK_MANAGEMENT,
2676  gettext_noop("Sets the maximum number of locks per transaction."),
2677  gettext_noop("The shared lock table is sized on the assumption that at most "
2678  "max_locks_per_transaction objects per server process or prepared "
2679  "transaction will need to be locked at any one time.")
2680  },
2682  64, 10, INT_MAX,
2683  NULL, NULL, NULL
2684  },
2685 
2686  {
2687  {"max_pred_locks_per_transaction", PGC_POSTMASTER, LOCK_MANAGEMENT,
2688  gettext_noop("Sets the maximum number of predicate locks per transaction."),
2689  gettext_noop("The shared predicate lock table is sized on the assumption that "
2690  "at most max_pred_locks_per_transaction objects per server process "
2691  "or prepared transaction will need to be locked at any one time.")
2692  },
2694  64, 10, INT_MAX,
2695  NULL, NULL, NULL
2696  },
2697 
2698  {
2699  {"max_pred_locks_per_relation", PGC_SIGHUP, LOCK_MANAGEMENT,
2700  gettext_noop("Sets the maximum number of predicate-locked pages and tuples per relation."),
2701  gettext_noop("If more than this total of pages and tuples in the same relation are locked "
2702  "by a connection, those locks are replaced by a relation-level lock.")
2703  },
2705  -2, INT_MIN, INT_MAX,
2706  NULL, NULL, NULL
2707  },
2708 
2709  {
2710  {"max_pred_locks_per_page", PGC_SIGHUP, LOCK_MANAGEMENT,
2711  gettext_noop("Sets the maximum number of predicate-locked tuples per page."),
2712  gettext_noop("If more than this number of tuples on the same page are locked "
2713  "by a connection, those locks are replaced by a page-level lock.")
2714  },
2716  2, 0, INT_MAX,
2717  NULL, NULL, NULL
2718  },
2719 
2720  {
2721  {"authentication_timeout", PGC_SIGHUP, CONN_AUTH_AUTH,
2722  gettext_noop("Sets the maximum allowed time to complete client authentication."),
2723  NULL,
2724  GUC_UNIT_S
2725  },
2727  60, 1, 600,
2728  NULL, NULL, NULL
2729  },
2730 
2731  {
2732  /* Not for general use */
2733  {"pre_auth_delay", PGC_SIGHUP, DEVELOPER_OPTIONS,
2734  gettext_noop("Sets the amount of time to wait before "
2735  "authentication on connection startup."),
2736  gettext_noop("This allows attaching a debugger to the process."),
2738  },
2739  &PreAuthDelay,
2740  0, 0, 60,
2741  NULL, NULL, NULL
2742  },
2743 
2744  {
2745  {"max_notify_queue_pages", PGC_POSTMASTER, RESOURCES_DISK,
2746  gettext_noop("Sets the maximum number of allocated pages for NOTIFY / LISTEN queue."),
2747  NULL,
2748  },
2750  1048576, 64, INT_MAX,
2751  NULL, NULL, NULL
2752  },
2753 
2754  {
2755  {"wal_decode_buffer_size", PGC_POSTMASTER, WAL_RECOVERY,
2756  gettext_noop("Buffer size for reading ahead in the WAL during recovery."),
2757  gettext_noop("Maximum distance to read ahead in the WAL to prefetch referenced data blocks."),
2759  },
2761  512 * 1024, 64 * 1024, MaxAllocSize,
2762  NULL, NULL, NULL
2763  },
2764 
2765  {
2766  {"wal_keep_size", PGC_SIGHUP, REPLICATION_SENDING,
2767  gettext_noop("Sets the size of WAL files held for standby servers."),
2768  NULL,
2769  GUC_UNIT_MB
2770  },
2772  0, 0, MAX_KILOBYTES,
2773  NULL, NULL, NULL
2774  },
2775 
2776  {
2777  {"min_wal_size", PGC_SIGHUP, WAL_CHECKPOINTS,
2778  gettext_noop("Sets the minimum size to shrink the WAL to."),
2779  NULL,
2780  GUC_UNIT_MB
2781  },
2782  &min_wal_size_mb,
2783  DEFAULT_MIN_WAL_SEGS * (DEFAULT_XLOG_SEG_SIZE / (1024 * 1024)),
2784  2, MAX_KILOBYTES,
2785  NULL, NULL, NULL
2786  },
2787 
2788  {
2789  {"max_wal_size", PGC_SIGHUP, WAL_CHECKPOINTS,
2790  gettext_noop("Sets the WAL size that triggers a checkpoint."),
2791  NULL,
2792  GUC_UNIT_MB
2793  },
2794  &max_wal_size_mb,
2795  DEFAULT_MAX_WAL_SEGS * (DEFAULT_XLOG_SEG_SIZE / (1024 * 1024)),
2796  2, MAX_KILOBYTES,
2797  NULL, assign_max_wal_size, NULL
2798  },
2799 
2800  {
2801  {"checkpoint_timeout", PGC_SIGHUP, WAL_CHECKPOINTS,
2802  gettext_noop("Sets the maximum time between automatic WAL checkpoints."),
2803  NULL,
2804  GUC_UNIT_S
2805  },
2807  300, 30, 86400,
2808  NULL, NULL, NULL
2809  },
2810 
2811  {
2812  {"checkpoint_warning", PGC_SIGHUP, WAL_CHECKPOINTS,
2813  gettext_noop("Sets the maximum time before warning if checkpoints "
2814  "triggered by WAL volume happen too frequently."),
2815  gettext_noop("Write a message to the server log if checkpoints "
2816  "caused by the filling of WAL segment files happen more "
2817  "frequently than this amount of time. "
2818  "Zero turns off the warning."),
2819  GUC_UNIT_S
2820  },
2822  30, 0, INT_MAX,
2823  NULL, NULL, NULL
2824  },
2825 
2826  {
2827  {"checkpoint_flush_after", PGC_SIGHUP, WAL_CHECKPOINTS,
2828  gettext_noop("Number of pages after which previously performed writes are flushed to disk."),
2829  NULL,
2831  },
2834  NULL, NULL, NULL
2835  },
2836 
2837  {
2838  {"wal_buffers", PGC_POSTMASTER, WAL_SETTINGS,
2839  gettext_noop("Sets the number of disk-page buffers in shared memory for WAL."),
2840  NULL,
2842  },
2843  &XLOGbuffers,
2844  -1, -1, (INT_MAX / XLOG_BLCKSZ),
2845  check_wal_buffers, NULL, NULL
2846  },
2847 
2848  {
2849  {"wal_writer_delay", PGC_SIGHUP, WAL_SETTINGS,
2850  gettext_noop("Time between WAL flushes performed in the WAL writer."),
2851  NULL,
2852  GUC_UNIT_MS
2853  },
2854  &WalWriterDelay,
2855  200, 1, 10000,
2856  NULL, NULL, NULL
2857  },
2858 
2859  {
2860  {"wal_writer_flush_after", PGC_SIGHUP, WAL_SETTINGS,
2861  gettext_noop("Amount of WAL written out by WAL writer that triggers a flush."),
2862  NULL,
2864  },
2866  DEFAULT_WAL_WRITER_FLUSH_AFTER, 0, INT_MAX,
2867  NULL, NULL, NULL
2868  },
2869 
2870  {
2871  {"wal_skip_threshold", PGC_USERSET, WAL_SETTINGS,
2872  gettext_noop("Minimum size of new file to fsync instead of writing WAL."),
2873  NULL,
2874  GUC_UNIT_KB
2875  },
2877  2048, 0, MAX_KILOBYTES,
2878  NULL, NULL, NULL
2879  },
2880 
2881  {
2882  {"max_wal_senders", PGC_POSTMASTER, REPLICATION_SENDING,
2883  gettext_noop("Sets the maximum number of simultaneously running WAL sender processes."),
2884  NULL
2885  },
2886  &max_wal_senders,
2887  10, 0, MAX_BACKENDS,
2888  check_max_wal_senders, NULL, NULL
2889  },
2890 
2891  {
2892  /* see max_wal_senders */
2893  {"max_replication_slots", PGC_POSTMASTER, REPLICATION_SENDING,
2894  gettext_noop("Sets the maximum number of simultaneously defined replication slots."),
2895  NULL
2896  },
2898  10, 0, MAX_BACKENDS /* XXX? */ ,
2899  NULL, NULL, NULL
2900  },
2901 
2902  {
2903  {"max_slot_wal_keep_size", PGC_SIGHUP, REPLICATION_SENDING,
2904  gettext_noop("Sets the maximum WAL size that can be reserved by replication slots."),
2905  gettext_noop("Replication slots will be marked as failed, and segments released "
2906  "for deletion or recycling, if this much space is occupied by WAL "
2907  "on disk."),
2908  GUC_UNIT_MB
2909  },
2911  -1, -1, MAX_KILOBYTES,
2912  check_max_slot_wal_keep_size, NULL, NULL
2913  },
2914 
2915  {
2916  {"wal_sender_timeout", PGC_USERSET, REPLICATION_SENDING,
2917  gettext_noop("Sets the maximum time to wait for WAL replication."),
2918  NULL,
2919  GUC_UNIT_MS
2920  },
2922  60 * 1000, 0, INT_MAX,
2923  NULL, NULL, NULL
2924  },
2925 
2926  {
2927  {"commit_delay", PGC_SUSET, WAL_SETTINGS,
2928  gettext_noop("Sets the delay in microseconds between transaction commit and "
2929  "flushing WAL to disk."),
2930  NULL
2931  /* we have no microseconds designation, so can't supply units here */
2932  },
2933  &CommitDelay,
2934  0, 0, 100000,
2935  NULL, NULL, NULL
2936  },
2937 
2938  {
2939  {"commit_siblings", PGC_USERSET, WAL_SETTINGS,
2940  gettext_noop("Sets the minimum number of concurrent open transactions "
2941  "required before performing commit_delay."),
2942  NULL
2943  },
2944  &CommitSiblings,
2945  5, 0, 1000,
2946  NULL, NULL, NULL
2947  },
2948 
2949  {
2950  {"extra_float_digits", PGC_USERSET, CLIENT_CONN_LOCALE,
2951  gettext_noop("Sets the number of digits displayed for floating-point values."),
2952  gettext_noop("This affects real, double precision, and geometric data types. "
2953  "A zero or negative parameter value is added to the standard "
2954  "number of digits (FLT_DIG or DBL_DIG as appropriate). "
2955  "Any value greater than zero selects precise output mode.")
2956  },
2958  1, -15, 3,
2959  NULL, NULL, NULL
2960  },
2961 
2962  {
2963  {"log_min_duration_sample", PGC_SUSET, LOGGING_WHEN,
2964  gettext_noop("Sets the minimum execution time above which "
2965  "a sample of statements will be logged."
2966  " Sampling is determined by log_statement_sample_rate."),
2967  gettext_noop("Zero logs a sample of all queries. -1 turns this feature off."),
2968  GUC_UNIT_MS
2969  },
2971  -1, -1, INT_MAX,
2972  NULL, NULL, NULL
2973  },
2974 
2975  {
2976  {"log_min_duration_statement", PGC_SUSET, LOGGING_WHEN,
2977  gettext_noop("Sets the minimum execution time above which "
2978  "all statements will be logged."),
2979  gettext_noop("Zero prints all queries. -1 turns this feature off."),
2980  GUC_UNIT_MS
2981  },
2983  -1, -1, INT_MAX,
2984  NULL, NULL, NULL
2985  },
2986 
2987  {
2988  {"log_autovacuum_min_duration", PGC_SIGHUP, LOGGING_WHAT,
2989  gettext_noop("Sets the minimum execution time above which "
2990  "autovacuum actions will be logged."),
2991  gettext_noop("Zero prints all actions. -1 turns autovacuum logging off."),
2992  GUC_UNIT_MS
2993  },
2995  600000, -1, INT_MAX,
2996  NULL, NULL, NULL
2997  },
2998 
2999  {
3000  {"log_parameter_max_length", PGC_SUSET, LOGGING_WHAT,
3001  gettext_noop("Sets the maximum length in bytes of data logged for bind "
3002  "parameter values when logging statements."),
3003  gettext_noop("-1 to print values in full."),
3005  },
3007  -1, -1, INT_MAX / 2,
3008  NULL, NULL, NULL
3009  },
3010 
3011  {
3012  {"log_parameter_max_length_on_error", PGC_USERSET, LOGGING_WHAT,
3013  gettext_noop("Sets the maximum length in bytes of data logged for bind "
3014  "parameter values when logging statements, on error."),
3015  gettext_noop("-1 to print values in full."),
3017  },
3019  0, -1, INT_MAX / 2,
3020  NULL, NULL, NULL
3021  },
3022 
3023  {
3024  {"bgwriter_delay", PGC_SIGHUP, RESOURCES_BGWRITER,
3025  gettext_noop("Background writer sleep time between rounds."),
3026  NULL,
3027  GUC_UNIT_MS
3028  },
3029  &BgWriterDelay,
3030  200, 10, 10000,
3031  NULL, NULL, NULL
3032  },
3033 
3034  {
3035  {"bgwriter_lru_maxpages", PGC_SIGHUP, RESOURCES_BGWRITER,
3036  gettext_noop("Background writer maximum number of LRU pages to flush per round."),
3037  NULL
3038  },
3040  100, 0, INT_MAX / 2, /* Same upper limit as shared_buffers */
3041  NULL, NULL, NULL
3042  },
3043 
3044  {
3045  {"bgwriter_flush_after", PGC_SIGHUP, RESOURCES_BGWRITER,
3046  gettext_noop("Number of pages after which previously performed writes are flushed to disk."),
3047  NULL,
3049  },
3052  NULL, NULL, NULL
3053  },
3054 
3055  {
3056  {"effective_io_concurrency",
3057  PGC_USERSET,
3059  gettext_noop("Number of simultaneous requests that can be handled efficiently by the disk subsystem."),
3060  NULL,
3061  GUC_EXPLAIN
3062  },
3065  0, MAX_IO_CONCURRENCY,
3066  check_effective_io_concurrency, NULL, NULL
3067  },
3068 
3069  {
3070  {"maintenance_io_concurrency",
3071  PGC_USERSET,
3073  gettext_noop("A variant of effective_io_concurrency that is used for maintenance work."),
3074  NULL,
3075  GUC_EXPLAIN
3076  },
3079  0, MAX_IO_CONCURRENCY,
3081  NULL
3082  },
3083 
3084  {
3085  {"backend_flush_after", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
3086  gettext_noop("Number of pages after which previously performed writes are flushed to disk."),
3087  NULL,
3089  },
3092  NULL, NULL, NULL
3093  },
3094 
3095  {
3096  {"max_worker_processes",
3099  gettext_noop("Maximum number of concurrent worker processes."),
3100  NULL,
3101  },
3103  8, 0, MAX_BACKENDS,
3104  check_max_worker_processes, NULL, NULL
3105  },
3106 
3107  {
3108  {"max_logical_replication_workers",
3111  gettext_noop("Maximum number of logical replication worker processes."),
3112  NULL,
3113  },
3115  4, 0, MAX_BACKENDS,
3116  NULL, NULL, NULL
3117  },
3118 
3119  {
3120  {"max_sync_workers_per_subscription",
3121  PGC_SIGHUP,
3123  gettext_noop("Maximum number of table synchronization workers per subscription."),
3124  NULL,
3125  },
3127  2, 0, MAX_BACKENDS,
3128  NULL, NULL, NULL
3129  },
3130 
3131  {
3132  {"max_parallel_apply_workers_per_subscription",
3133  PGC_SIGHUP,
3135  gettext_noop("Maximum number of parallel apply workers per subscription."),
3136  NULL,
3137  },
3140  NULL, NULL, NULL
3141  },
3142 
3143  {
3144  {"log_rotation_age", PGC_SIGHUP, LOGGING_WHERE,
3145  gettext_noop("Sets the amount of time to wait before forcing "
3146  "log file rotation."),
3147  NULL,
3148  GUC_UNIT_MIN
3149  },
3150  &Log_RotationAge,
3152  NULL, NULL, NULL
3153  },
3154 
3155  {
3156  {"log_rotation_size", PGC_SIGHUP, LOGGING_WHERE,
3157  gettext_noop("Sets the maximum size a log file can reach before "
3158  "being rotated."),
3159  NULL,
3160  GUC_UNIT_KB
3161  },
3163  10 * 1024, 0, INT_MAX / 1024,
3164  NULL, NULL, NULL
3165  },
3166 
3167  {
3168  {"max_function_args", PGC_INTERNAL, PRESET_OPTIONS,
3169  gettext_noop("Shows the maximum number of function arguments."),
3170  NULL,
3172  },
3175  NULL, NULL, NULL
3176  },
3177 
3178  {
3179  {"max_index_keys", PGC_INTERNAL, PRESET_OPTIONS,
3180  gettext_noop("Shows the maximum number of index keys."),
3181  NULL,
3183  },
3184  &max_index_keys,
3186  NULL, NULL, NULL
3187  },
3188 
3189  {
3190  {"max_identifier_length", PGC_INTERNAL, PRESET_OPTIONS,
3191  gettext_noop("Shows the maximum identifier length."),
3192  NULL,
3194  },
3196  NAMEDATALEN - 1, NAMEDATALEN - 1, NAMEDATALEN - 1,
3197  NULL, NULL, NULL
3198  },
3199 
3200  {
3201  {"block_size", PGC_INTERNAL, PRESET_OPTIONS,
3202  gettext_noop("Shows the size of a disk block."),
3203  NULL,
3205  },
3206  &block_size,
3207  BLCKSZ, BLCKSZ, BLCKSZ,
3208  NULL, NULL, NULL
3209  },
3210 
3211  {
3212  {"segment_size", PGC_INTERNAL, PRESET_OPTIONS,
3213  gettext_noop("Shows the number of pages per disk file."),
3214  NULL,
3216  },
3217  &segment_size,
3218  RELSEG_SIZE, RELSEG_SIZE, RELSEG_SIZE,
3219  NULL, NULL, NULL
3220  },
3221 
3222  {
3223  {"wal_block_size", PGC_INTERNAL, PRESET_OPTIONS,
3224  gettext_noop("Shows the block size in the write ahead log."),
3225  NULL,
3227  },
3228  &wal_block_size,
3229  XLOG_BLCKSZ, XLOG_BLCKSZ, XLOG_BLCKSZ,
3230  NULL, NULL, NULL
3231  },
3232 
3233  {
3234  {"wal_retrieve_retry_interval", PGC_SIGHUP, REPLICATION_STANDBY,
3235  gettext_noop("Sets the time to wait before retrying to retrieve WAL "
3236  "after a failed attempt."),
3237  NULL,
3238  GUC_UNIT_MS
3239  },
3241  5000, 1, INT_MAX,
3242  NULL, NULL, NULL
3243  },
3244 
3245  {
3246  {"wal_segment_size", PGC_INTERNAL, PRESET_OPTIONS,
3247  gettext_noop("Shows the size of write ahead log segments."),
3248  NULL,
3250  },
3253  WalSegMinSize,
3254  WalSegMaxSize,
3255  check_wal_segment_size, NULL, NULL
3256  },
3257 
3258  {
3259  {"wal_summary_keep_time", PGC_SIGHUP, WAL_SUMMARIZATION,
3260  gettext_noop("Time for which WAL summary files should be kept."),
3261  NULL,
3262  GUC_UNIT_MIN,
3263  },
3265  10 * 24 * 60, /* 10 days */
3266  0,
3267  INT_MAX,
3268  NULL, NULL, NULL
3269  },
3270 
3271  {
3272  {"autovacuum_naptime", PGC_SIGHUP, AUTOVACUUM,
3273  gettext_noop("Time to sleep between autovacuum runs."),
3274  NULL,
3275  GUC_UNIT_S
3276  },
3278  60, 1, INT_MAX / 1000,
3279  NULL, NULL, NULL
3280  },
3281  {
3282  {"autovacuum_vacuum_threshold", PGC_SIGHUP, AUTOVACUUM,
3283  gettext_noop("Minimum number of tuple updates or deletes prior to vacuum."),
3284  NULL
3285  },
3287  50, 0, INT_MAX,
3288  NULL, NULL, NULL
3289  },
3290  {
3291  {"autovacuum_vacuum_insert_threshold", PGC_SIGHUP, AUTOVACUUM,
3292  gettext_noop("Minimum number of tuple inserts prior to vacuum, or -1 to disable insert vacuums."),
3293  NULL
3294  },
3296  1000, -1, INT_MAX,
3297  NULL, NULL, NULL
3298  },
3299  {
3300  {"autovacuum_analyze_threshold", PGC_SIGHUP, AUTOVACUUM,
3301  gettext_noop("Minimum number of tuple inserts, updates, or deletes prior to analyze."),
3302  NULL
3303  },
3305  50, 0, INT_MAX,
3306  NULL, NULL, NULL
3307  },
3308  {
3309  /* see varsup.c for why this is PGC_POSTMASTER not PGC_SIGHUP */
3310  {"autovacuum_freeze_max_age", PGC_POSTMASTER, AUTOVACUUM,
3311  gettext_noop("Age at which to autovacuum a table to prevent transaction ID wraparound."),
3312  NULL
3313  },
3315 
3316  /* see vacuum_failsafe_age if you change the upper-limit value. */
3317  200000000, 100000, 2000000000,
3318  NULL, NULL, NULL
3319  },
3320  {
3321  /* see multixact.c for why this is PGC_POSTMASTER not PGC_SIGHUP */
3322  {"autovacuum_multixact_freeze_max_age", PGC_POSTMASTER, AUTOVACUUM,
3323  gettext_noop("Multixact age at which to autovacuum a table to prevent multixact wraparound."),
3324  NULL
3325  },
3327  400000000, 10000, 2000000000,
3328  NULL, NULL, NULL
3329  },
3330  {
3331  /* see max_connections */
3332  {"autovacuum_max_workers", PGC_POSTMASTER, AUTOVACUUM,
3333  gettext_noop("Sets the maximum number of simultaneously running autovacuum worker processes."),
3334  NULL
3335  },
3337  3, 1, MAX_BACKENDS,
3338  check_autovacuum_max_workers, NULL, NULL
3339  },
3340 
3341  {
3342  {"max_parallel_maintenance_workers", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
3343  gettext_noop("Sets the maximum number of parallel processes per maintenance operation."),
3344  NULL
3345  },
3347  2, 0, 1024,
3348  NULL, NULL, NULL
3349  },
3350 
3351  {
3352  {"max_parallel_workers_per_gather", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
3353  gettext_noop("Sets the maximum number of parallel processes per executor node."),
3354  NULL,
3355  GUC_EXPLAIN
3356  },
3359  NULL, NULL, NULL
3360  },
3361 
3362  {
3363  {"max_parallel_workers", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
3364  gettext_noop("Sets the maximum number of parallel workers that can be active at one time."),
3365  NULL,
3366  GUC_EXPLAIN
3367  },
3370  NULL, NULL, NULL
3371  },
3372 
3373  {
3374  {"autovacuum_work_mem", PGC_SIGHUP, RESOURCES_MEM,
3375  gettext_noop("Sets the maximum memory to be used by each autovacuum worker process."),
3376  NULL,
3377  GUC_UNIT_KB
3378  },
3380  -1, -1, MAX_KILOBYTES,
3381  check_autovacuum_work_mem, NULL, NULL
3382  },
3383 
3384  {
3385  {"tcp_keepalives_idle", PGC_USERSET, CONN_AUTH_TCP,
3386  gettext_noop("Time between issuing TCP keepalives."),
3387  gettext_noop("A value of 0 uses the system default."),
3388  GUC_UNIT_S
3389  },
3391  0, 0, INT_MAX,
3393  },
3394 
3395  {
3396  {"tcp_keepalives_interval", PGC_USERSET, CONN_AUTH_TCP,
3397  gettext_noop("Time between TCP keepalive retransmits."),
3398  gettext_noop("A value of 0 uses the system default."),
3399  GUC_UNIT_S
3400  },
3402  0, 0, INT_MAX,
3404  },
3405 
3406  {
3407  {"ssl_renegotiation_limit", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
3408  gettext_noop("SSL renegotiation is no longer supported; this can only be 0."),
3409  NULL,
3411  },
3413  0, 0, 0,
3414  NULL, NULL, NULL
3415  },
3416 
3417  {
3418  {"tcp_keepalives_count", PGC_USERSET, CONN_AUTH_TCP,
3419  gettext_noop("Maximum number of TCP keepalive retransmits."),
3420  gettext_noop("Number of consecutive keepalive retransmits that can be "
3421  "lost before a connection is considered dead. A value of 0 uses the "
3422  "system default."),
3423  },
3425  0, 0, INT_MAX,
3427  },
3428 
3429  {
3430  {"gin_fuzzy_search_limit", PGC_USERSET, CLIENT_CONN_OTHER,
3431  gettext_noop("Sets the maximum allowed result for exact search by GIN."),
3432  NULL,
3433  0
3434  },
3436  0, 0, INT_MAX,
3437  NULL, NULL, NULL
3438  },
3439 
3440  {
3441  {"effective_cache_size", PGC_USERSET, QUERY_TUNING_COST,
3442  gettext_noop("Sets the planner's assumption about the total size of the data caches."),
3443  gettext_noop("That is, the total size of the caches (kernel cache and shared buffers) used for PostgreSQL data files. "
3444  "This is measured in disk pages, which are normally 8 kB each."),
3446  },
3448  DEFAULT_EFFECTIVE_CACHE_SIZE, 1, INT_MAX,
3449  NULL, NULL, NULL
3450  },
3451 
3452  {
3453  {"min_parallel_table_scan_size", PGC_USERSET, QUERY_TUNING_COST,
3454  gettext_noop("Sets the minimum amount of table data for a parallel scan."),
3455  gettext_noop("If the planner estimates that it will read a number of table pages too small to reach this limit, a parallel scan will not be considered."),
3457  },
3459  (8 * 1024 * 1024) / BLCKSZ, 0, INT_MAX / 3,
3460  NULL, NULL, NULL
3461  },
3462 
3463  {
3464  {"min_parallel_index_scan_size", PGC_USERSET, QUERY_TUNING_COST,
3465  gettext_noop("Sets the minimum amount of index data for a parallel scan."),
3466  gettext_noop("If the planner estimates that it will read a number of index pages too small to reach this limit, a parallel scan will not be considered."),
3468  },
3470  (512 * 1024) / BLCKSZ, 0, INT_MAX / 3,
3471  NULL, NULL, NULL
3472  },
3473 
3474  {
3475  /* Can't be set in postgresql.conf */
3476  {"server_version_num", PGC_INTERNAL, PRESET_OPTIONS,
3477  gettext_noop("Shows the server version as an integer."),
3478  NULL,
3480  },
3482  PG_VERSION_NUM, PG_VERSION_NUM, PG_VERSION_NUM,
3483  NULL, NULL, NULL
3484  },
3485 
3486  {
3487  {"log_temp_files", PGC_SUSET, LOGGING_WHAT,
3488  gettext_noop("Log the use of temporary files larger than this number of kilobytes."),
3489  gettext_noop("Zero logs all files. The default is -1 (turning this feature off)."),
3490  GUC_UNIT_KB
3491  },
3492  &log_temp_files,
3493  -1, -1, INT_MAX,
3494  NULL, NULL, NULL
3495  },
3496 
3497  {
3498  {"track_activity_query_size", PGC_POSTMASTER, STATS_CUMULATIVE,
3499  gettext_noop("Sets the size reserved for pg_stat_activity.query, in bytes."),
3500  NULL,
3502  },
3504  1024, 100, 1048576,
3505  NULL, NULL, NULL
3506  },
3507 
3508  {
3509  {"gin_pending_list_limit", PGC_USERSET, CLIENT_CONN_STATEMENT,
3510  gettext_noop("Sets the maximum size of the pending list for GIN index."),
3511  NULL,
3512  GUC_UNIT_KB
3513  },
3515  4096, 64, MAX_KILOBYTES,
3516  NULL, NULL, NULL
3517  },
3518 
3519  {
3520  {"tcp_user_timeout", PGC_USERSET, CONN_AUTH_TCP,
3521  gettext_noop("TCP user timeout."),
3522  gettext_noop("A value of 0 uses the system default."),
3523  GUC_UNIT_MS
3524  },
3526  0, 0, INT_MAX,
3528  },
3529 
3530  {
3531  {"huge_page_size", PGC_POSTMASTER, RESOURCES_MEM,
3532  gettext_noop("The size of huge page that should be requested."),
3533  NULL,
3534  GUC_UNIT_KB
3535  },
3536  &huge_page_size,
3537  0, 0, INT_MAX,
3538  check_huge_page_size, NULL, NULL
3539  },
3540 
3541  {
3542  {"debug_discard_caches", PGC_SUSET, DEVELOPER_OPTIONS,
3543  gettext_noop("Aggressively flush system caches for debugging purposes."),
3544  NULL,
3546  },
3548 #ifdef DISCARD_CACHES_ENABLED
3549  /* Set default based on older compile-time-only cache clobber macros */
3550 #if defined(CLOBBER_CACHE_RECURSIVELY)
3551  3,
3552 #elif defined(CLOBBER_CACHE_ALWAYS)
3553  1,
3554 #else
3555  0,
3556 #endif
3557  0, 5,
3558 #else /* not DISCARD_CACHES_ENABLED */
3559  0, 0, 0,
3560 #endif /* not DISCARD_CACHES_ENABLED */
3561  NULL, NULL, NULL
3562  },
3563 
3564  {
3565  {"client_connection_check_interval", PGC_USERSET, CONN_AUTH_TCP,
3566  gettext_noop("Sets the time interval between checks for disconnection while running queries."),
3567  NULL,
3568  GUC_UNIT_MS
3569  },
3571  0, 0, INT_MAX,
3573  },
3574 
3575  {
3576  {"log_startup_progress_interval", PGC_SIGHUP, LOGGING_WHEN,
3577  gettext_noop("Time between progress updates for "
3578  "long-running startup operations."),
3579  gettext_noop("0 turns this feature off."),
3580  GUC_UNIT_MS,
3581  },
3583  10000, 0, INT_MAX,
3584  NULL, NULL, NULL
3585  },
3586 
3587  {
3588  {"scram_iterations", PGC_USERSET, CONN_AUTH_AUTH,
3589  gettext_noop("Sets the iteration count for SCRAM secret generation."),
3590  NULL,
3591  GUC_REPORT
3592  },
3595  NULL, NULL, NULL
3596  },
3597 
3598  /* End-of-list marker */
3599  {
3600  {NULL, 0, 0, NULL, NULL}, NULL, 0, 0, 0, NULL, NULL, NULL
3601  }
3602 };
3603 
3604 
3606 {
3607  {
3608  {"seq_page_cost", PGC_USERSET, QUERY_TUNING_COST,
3609  gettext_noop("Sets the planner's estimate of the cost of a "
3610  "sequentially fetched disk page."),
3611  NULL,
3612  GUC_EXPLAIN
3613  },
3614  &seq_page_cost,
3615  DEFAULT_SEQ_PAGE_COST, 0, DBL_MAX,
3616  NULL, NULL, NULL
3617  },
3618  {
3619  {"random_page_cost", PGC_USERSET, QUERY_TUNING_COST,
3620  gettext_noop("Sets the planner's estimate of the cost of a "
3621  "nonsequentially fetched disk page."),
3622  NULL,
3623  GUC_EXPLAIN
3624  },
3626  DEFAULT_RANDOM_PAGE_COST, 0, DBL_MAX,
3627  NULL, NULL, NULL
3628  },
3629  {
3630  {"cpu_tuple_cost", PGC_USERSET, QUERY_TUNING_COST,
3631  gettext_noop("Sets the planner's estimate of the cost of "
3632  "processing each tuple (row)."),
3633  NULL,
3634  GUC_EXPLAIN
3635  },
3636  &cpu_tuple_cost,
3637  DEFAULT_CPU_TUPLE_COST, 0, DBL_MAX,
3638  NULL, NULL, NULL
3639  },
3640  {
3641  {"cpu_index_tuple_cost", PGC_USERSET, QUERY_TUNING_COST,
3642  gettext_noop("Sets the planner's estimate of the cost of "
3643  "processing each index entry during an index scan."),
3644  NULL,
3645  GUC_EXPLAIN
3646  },
3648  DEFAULT_CPU_INDEX_TUPLE_COST, 0, DBL_MAX,
3649  NULL, NULL, NULL
3650  },
3651  {
3652  {"cpu_operator_cost", PGC_USERSET, QUERY_TUNING_COST,
3653  gettext_noop("Sets the planner's estimate of the cost of "
3654  "processing each operator or function call."),
3655  NULL,
3656  GUC_EXPLAIN
3657  },
3659  DEFAULT_CPU_OPERATOR_COST, 0, DBL_MAX,
3660  NULL, NULL, NULL
3661  },
3662  {
3663  {"parallel_tuple_cost", PGC_USERSET, QUERY_TUNING_COST,
3664  gettext_noop("Sets the planner's estimate of the cost of "
3665  "passing each tuple (row) from worker to leader backend."),
3666  NULL,
3667  GUC_EXPLAIN
3668  },
3670  DEFAULT_PARALLEL_TUPLE_COST, 0, DBL_MAX,
3671  NULL, NULL, NULL
3672  },
3673  {
3674  {"parallel_setup_cost", PGC_USERSET, QUERY_TUNING_COST,
3675  gettext_noop("Sets the planner's estimate of the cost of "
3676  "starting up worker processes for parallel query."),
3677  NULL,
3678  GUC_EXPLAIN
3679  },
3681  DEFAULT_PARALLEL_SETUP_COST, 0, DBL_MAX,
3682  NULL, NULL, NULL
3683  },
3684 
3685  {
3686  {"jit_above_cost", PGC_USERSET, QUERY_TUNING_COST,
3687  gettext_noop("Perform JIT compilation if query is more expensive."),
3688  gettext_noop("-1 disables JIT compilation."),
3689  GUC_EXPLAIN
3690  },
3691  &jit_above_cost,
3692  100000, -1, DBL_MAX,
3693  NULL, NULL, NULL
3694  },
3695 
3696  {
3697  {"jit_optimize_above_cost", PGC_USERSET, QUERY_TUNING_COST,
3698  gettext_noop("Optimize JIT-compiled functions if query is more expensive."),
3699  gettext_noop("-1 disables optimization."),
3700  GUC_EXPLAIN
3701  },
3703  500000, -1, DBL_MAX,
3704  NULL, NULL, NULL
3705  },
3706 
3707  {
3708  {"jit_inline_above_cost", PGC_USERSET, QUERY_TUNING_COST,
3709  gettext_noop("Perform JIT inlining if query is more expensive."),
3710  gettext_noop("-1 disables inlining."),
3711  GUC_EXPLAIN
3712  },
3714  500000, -1, DBL_MAX,
3715  NULL, NULL, NULL
3716  },
3717 
3718  {
3719  {"cursor_tuple_fraction", PGC_USERSET, QUERY_TUNING_OTHER,
3720  gettext_noop("Sets the planner's estimate of the fraction of "
3721  "a cursor's rows that will be retrieved."),
3722  NULL,
3723  GUC_EXPLAIN
3724  },
3727  NULL, NULL, NULL
3728  },
3729 
3730  {
3731  {"recursive_worktable_factor", PGC_USERSET, QUERY_TUNING_OTHER,
3732  gettext_noop("Sets the planner's estimate of the average size "
3733  "of a recursive query's working table."),
3734  NULL,
3735  GUC_EXPLAIN
3736  },
3738  DEFAULT_RECURSIVE_WORKTABLE_FACTOR, 0.001, 1000000.0,
3739  NULL, NULL, NULL
3740  },
3741 
3742  {
3743  {"geqo_selection_bias", PGC_USERSET, QUERY_TUNING_GEQO,
3744  gettext_noop("GEQO: selective pressure within the population."),
3745  NULL,
3746  GUC_EXPLAIN
3747  },
3751  NULL, NULL, NULL
3752  },
3753  {
3754  {"geqo_seed", PGC_USERSET, QUERY_TUNING_GEQO,
3755  gettext_noop("GEQO: seed for random path selection."),
3756  NULL,
3757  GUC_EXPLAIN
3758  },
3759  &Geqo_seed,
3760  0.0, 0.0, 1.0,
3761  NULL, NULL, NULL
3762  },
3763 
3764  {
3765  {"hash_mem_multiplier", PGC_USERSET, RESOURCES_MEM,
3766  gettext_noop("Multiple of work_mem to use for hash tables."),
3767  NULL,
3768  GUC_EXPLAIN
3769  },
3771  2.0, 1.0, 1000.0,
3772  NULL, NULL, NULL
3773  },
3774 
3775  {
3776  {"bgwriter_lru_multiplier", PGC_SIGHUP, RESOURCES_BGWRITER,
3777  gettext_noop("Multiple of the average buffer usage to free per round."),
3778  NULL
3779  },
3781  2.0, 0.0, 10.0,
3782  NULL, NULL, NULL
3783  },
3784 
3785  {
3786  {"seed", PGC_USERSET, UNGROUPED,
3787  gettext_noop("Sets the seed for random-number generation."),
3788  NULL,
3790  },
3792  0.0, -1.0, 1.0,
3794  },
3795 
3796  {
3797  {"vacuum_cost_delay", PGC_USERSET, RESOURCES_VACUUM_DELAY,
3798  gettext_noop("Vacuum cost delay in milliseconds."),
3799  NULL,
3800  GUC_UNIT_MS
3801  },
3802  &VacuumCostDelay,
3803  0, 0, 100,
3804  NULL, NULL, NULL
3805  },
3806 
3807  {
3808  {"autovacuum_vacuum_cost_delay", PGC_SIGHUP, AUTOVACUUM,
3809  gettext_noop("Vacuum cost delay in milliseconds, for autovacuum."),
3810  NULL,
3811  GUC_UNIT_MS
3812  },
3814  2, -1, 100,
3815  NULL, NULL, NULL
3816  },
3817 
3818  {
3819  {"autovacuum_vacuum_scale_factor", PGC_SIGHUP, AUTOVACUUM,
3820  gettext_noop("Number of tuple updates or deletes prior to vacuum as a fraction of reltuples."),
3821  NULL
3822  },
3824  0.2, 0.0, 100.0,
3825  NULL, NULL, NULL
3826  },
3827 
3828  {
3829  {"autovacuum_vacuum_insert_scale_factor", PGC_SIGHUP, AUTOVACUUM,
3830  gettext_noop("Number of tuple inserts prior to vacuum as a fraction of reltuples."),
3831  NULL
3832  },
3834  0.2, 0.0, 100.0,
3835  NULL, NULL, NULL
3836  },
3837 
3838  {
3839  {"autovacuum_analyze_scale_factor", PGC_SIGHUP, AUTOVACUUM,
3840  gettext_noop("Number of tuple inserts, updates, or deletes prior to analyze as a fraction of reltuples."),
3841  NULL
3842  },
3844  0.1, 0.0, 100.0,
3845  NULL, NULL, NULL
3846  },
3847 
3848  {
3849  {"checkpoint_completion_target", PGC_SIGHUP, WAL_CHECKPOINTS,
3850  gettext_noop("Time spent flushing dirty buffers during checkpoint, as fraction of checkpoint interval."),
3851  NULL
3852  },
3854  0.9, 0.0, 1.0,
3856  },
3857 
3858  {
3859  {"log_statement_sample_rate", PGC_SUSET, LOGGING_WHEN,
3860  gettext_noop("Fraction of statements exceeding log_min_duration_sample to be logged."),
3861  gettext_noop("Use a value between 0.0 (never log) and 1.0 (always log).")
3862  },
3864  1.0, 0.0, 1.0,
3865  NULL, NULL, NULL
3866  },
3867 
3868  {
3869  {"log_transaction_sample_rate", PGC_SUSET, LOGGING_WHEN,
3870  gettext_noop("Sets the fraction of transactions from which to log all statements."),
3871  gettext_noop("Use a value between 0.0 (never log) and 1.0 (log all "
3872  "statements for all transactions).")
3873  },
3875  0.0, 0.0, 1.0,
3876  NULL, NULL, NULL
3877  },
3878 
3879  /* End-of-list marker */
3880  {
3881  {NULL, 0, 0, NULL, NULL}, NULL, 0.0, 0.0, 0.0, NULL, NULL, NULL
3882  }
3883 };
3884 
3885 
3887 {
3888  {
3889  {"archive_command", PGC_SIGHUP, WAL_ARCHIVING,
3890  gettext_noop("Sets the shell command that will be called to archive a WAL file."),
3891  gettext_noop("This is used only if archive_library is not set.")
3892  },
3894  "",
3895  NULL, NULL, show_archive_command
3896  },
3897 
3898  {
3899  {"archive_library", PGC_SIGHUP, WAL_ARCHIVING,
3900  gettext_noop("Sets the library that will be called to archive a WAL file."),
3901  gettext_noop("An empty string indicates that archive_command should be used.")
3902  },
3904  "",
3905  NULL, NULL, NULL
3906  },
3907 
3908  {
3909  {"restore_command", PGC_SIGHUP, WAL_ARCHIVE_RECOVERY,
3910  gettext_noop("Sets the shell command that will be called to retrieve an archived WAL file."),
3911  NULL
3912  },
3914  "",
3915  NULL, NULL, NULL
3916  },
3917 
3918  {
3919  {"archive_cleanup_command", PGC_SIGHUP, WAL_ARCHIVE_RECOVERY,
3920  gettext_noop("Sets the shell command that will be executed at every restart point."),
3921  NULL
3922  },
3924  "",
3925  NULL, NULL, NULL
3926  },
3927 
3928  {
3929  {"recovery_end_command", PGC_SIGHUP, WAL_ARCHIVE_RECOVERY,
3930  gettext_noop("Sets the shell command that will be executed once at the end of recovery."),
3931  NULL
3932  },
3934  "",
3935  NULL, NULL, NULL
3936  },
3937 
3938  {
3939  {"recovery_target_timeline", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
3940  gettext_noop("Specifies the timeline to recover into."),
3941  NULL
3942  },
3944  "latest",
3946  },
3947 
3948  {
3949  {"recovery_target", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
3950  gettext_noop("Set to \"immediate\" to end recovery as soon as a consistent state is reached."),
3951  NULL
3952  },
3954  "",
3956  },
3957  {
3958  {"recovery_target_xid", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
3959  gettext_noop("Sets the transaction ID up to which recovery will proceed."),
3960  NULL
3961  },
3963  "",
3965  },
3966  {
3967  {"recovery_target_time", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
3968  gettext_noop("Sets the time stamp up to which recovery will proceed."),
3969  NULL
3970  },
3972  "",
3974  },
3975  {
3976  {"recovery_target_name", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
3977  gettext_noop("Sets the named restore point up to which recovery will proceed."),
3978  NULL
3979  },
3981  "",
3983  },
3984  {
3985  {"recovery_target_lsn", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
3986  gettext_noop("Sets the LSN of the write-ahead log location up to which recovery will proceed."),
3987  NULL
3988  },
3990  "",
3992  },
3993 
3994  {
3995  {"primary_conninfo", PGC_SIGHUP, REPLICATION_STANDBY,
3996  gettext_noop("Sets the connection string to be used to connect to the sending server."),
3997  NULL,
3999  },
4000  &PrimaryConnInfo,
4001  "",
4002  NULL, NULL, NULL
4003  },
4004 
4005  {
4006  {"primary_slot_name", PGC_SIGHUP, REPLICATION_STANDBY,
4007  gettext_noop("Sets the name of the replication slot to use on the sending server."),
4008  NULL
4009  },
4010  &PrimarySlotName,
4011  "",
4012  check_primary_slot_name, NULL, NULL
4013  },
4014 
4015  {
4016  {"client_encoding", PGC_USERSET, CLIENT_CONN_LOCALE,
4017  gettext_noop("Sets the client's character set encoding."),
4018  NULL,
4020  },
4022  "SQL_ASCII",
4024  },
4025 
4026  {
4027  {"log_line_prefix", PGC_SIGHUP, LOGGING_WHAT,
4028  gettext_noop("Controls information prefixed to each log line."),
4029  gettext_noop("If blank, no prefix is used.")
4030  },
4031  &Log_line_prefix,
4032  "%m [%p] ",
4033  NULL, NULL, NULL
4034  },
4035 
4036  {
4037  {"log_timezone", PGC_SIGHUP, LOGGING_WHAT,
4038  gettext_noop("Sets the time zone to use in log messages."),
4039  NULL
4040  },
4042  "GMT",
4044  },
4045 
4046  {
4047  {"DateStyle", PGC_USERSET, CLIENT_CONN_LOCALE,
4048  gettext_noop("Sets the display format for date and time values."),
4049  gettext_noop("Also controls interpretation of ambiguous "
4050  "date inputs."),
4052  },
4054  "ISO, MDY",
4056  },
4057 
4058  {
4059  {"default_table_access_method", PGC_USERSET, CLIENT_CONN_STATEMENT,
4060  gettext_noop("Sets the default table access method for new tables."),
4061  NULL,
4062  GUC_IS_NAME
4063  },
4067  },
4068 
4069  {
4070  {"default_tablespace", PGC_USERSET, CLIENT_CONN_STATEMENT,
4071  gettext_noop("Sets the default tablespace to create tables and indexes in."),
4072  gettext_noop("An empty string selects the database's default tablespace."),
4073  GUC_IS_NAME
4074  },
4076  "",
4077  check_default_tablespace, NULL, NULL
4078  },
4079 
4080  {
4081  {"temp_tablespaces", PGC_USERSET, CLIENT_CONN_STATEMENT,
4082  gettext_noop("Sets the tablespace(s) to use for temporary tables and sort files."),
4083  NULL,
4085  },
4087  "",
4089  },
4090 
4091  {
4092  {"createrole_self_grant", PGC_USERSET, CLIENT_CONN_STATEMENT,
4093  gettext_noop("Sets whether a CREATEROLE user automatically grants "
4094  "the role to themselves, and with which options."),
4095  NULL,
4097  },
4099  "",
4101  },
4102 
4103  {
4104  {"dynamic_library_path", PGC_SUSET, CLIENT_CONN_OTHER,
4105  gettext_noop("Sets the path for dynamically loadable modules."),
4106  gettext_noop("If a dynamically loadable module needs to be opened and "
4107  "the specified name does not have a directory component (i.e., the "
4108  "name does not contain a slash), the system will search this path for "
4109  "the specified file."),
4111  },
4113  "$libdir",
4114  NULL, NULL, NULL
4115  },
4116 
4117  {
4118  {"krb_server_keyfile", PGC_SIGHUP, CONN_AUTH_AUTH,
4119  gettext_noop("Sets the location of the Kerberos server key file."),
4120  NULL,
4122  },
4124  PG_KRB_SRVTAB,
4125  NULL, NULL, NULL
4126  },
4127 
4128  {
4129  {"bonjour_name", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
4130  gettext_noop("Sets the Bonjour service name."),
4131  NULL
4132  },
4133  &bonjour_name,
4134  "",
4135  NULL, NULL, NULL
4136  },
4137 
4138  {
4139  {"lc_messages", PGC_SUSET, CLIENT_CONN_LOCALE,
4140  gettext_noop("Sets the language in which messages are displayed."),
4141  NULL
4142  },
4143  &locale_messages,
4144  "",
4146  },
4147 
4148  {
4149  {"lc_monetary", PGC_USERSET, CLIENT_CONN_LOCALE,
4150  gettext_noop("Sets the locale for formatting monetary amounts."),
4151  NULL
4152  },
4153  &locale_monetary,
4154  "C",
4156  },
4157 
4158  {
4159  {"lc_numeric", PGC_USERSET, CLIENT_CONN_LOCALE,
4160  gettext_noop("Sets the locale for formatting numbers."),
4161  NULL
4162  },
4163  &locale_numeric,
4164  "C",
4166  },
4167 
4168  {
4169  {"lc_time", PGC_USERSET, CLIENT_CONN_LOCALE,
4170  gettext_noop("Sets the locale for formatting date and time values."),
4171  NULL
4172  },
4173  &locale_time,
4174  "C",
4176  },
4177 
4178  {
4179  {"session_preload_libraries", PGC_SUSET, CLIENT_CONN_PRELOAD,
4180  gettext_noop("Lists shared libraries to preload into each backend."),
4181  NULL,
4183  },
4185  "",
4186  NULL, NULL, NULL
4187  },
4188 
4189  {
4190  {"shared_preload_libraries", PGC_POSTMASTER, CLIENT_CONN_PRELOAD,
4191  gettext_noop("Lists shared libraries to preload into server."),
4192  NULL,
4194  },
4196  "",
4197  NULL, NULL, NULL
4198  },
4199 
4200  {
4201  {"local_preload_libraries", PGC_USERSET, CLIENT_CONN_PRELOAD,
4202  gettext_noop("Lists unprivileged shared libraries to preload into each backend."),
4203  NULL,
4205  },
4207  "",
4208  NULL, NULL, NULL
4209  },
4210 
4211  {
4212  {"search_path", PGC_USERSET, CLIENT_CONN_STATEMENT,
4213  gettext_noop("Sets the schema search order for names that are not schema-qualified."),
4214  NULL,
4216  },
4218  "\"$user\", public",
4220  },
4221 
4222  {
4223  /* Can't be set in postgresql.conf */
4224  {"server_encoding", PGC_INTERNAL, PRESET_OPTIONS,
4225  gettext_noop("Shows the server (database) character set encoding."),
4226  NULL,
4228  },
4230  "SQL_ASCII",
4231  NULL, NULL, NULL
4232  },
4233 
4234  {
4235  /* Can't be set in postgresql.conf */
4236  {"server_version", PGC_INTERNAL, PRESET_OPTIONS,
4237  gettext_noop("Shows the server version."),
4238  NULL,
4240  },
4242  PG_VERSION,
4243  NULL, NULL, NULL
4244  },
4245 
4246  {
4247  /* Not for general use --- used by SET ROLE */
4248  {"role", PGC_USERSET, UNGROUPED,
4249  gettext_noop("Sets the current role."),
4250  NULL,
4252  },
4253  &role_string,
4254  "none",
4256  },
4257 
4258  {
4259  /* Not for general use --- used by SET SESSION AUTHORIZATION */
4260  {"session_authorization", PGC_USERSET, UNGROUPED,
4261  gettext_noop("Sets the session user name."),
4262  NULL,
4264  },
4266  NULL,
4268  },
4269 
4270  {
4271  {"log_destination", PGC_SIGHUP, LOGGING_WHERE,
4272  gettext_noop("Sets the destination for server log output."),
4273  gettext_noop("Valid values are combinations of \"stderr\", "
4274  "\"syslog\", \"csvlog\", \"jsonlog\", and \"eventlog\", "
4275  "depending on the platform."),
4277  },
4279  "stderr",
4281  },
4282  {
4283  {"log_directory", PGC_SIGHUP, LOGGING_WHERE,
4284  gettext_noop("Sets the destination directory for log files."),
4285  gettext_noop("Can be specified as relative to the data directory "
4286  "or as absolute path."),
4288  },
4289  &Log_directory,
4290  "log",
4291  check_canonical_path, NULL, NULL
4292  },
4293  {
4294  {"log_filename", PGC_SIGHUP, LOGGING_WHERE,
4295  gettext_noop("Sets the file name pattern for log files."),
4296  NULL,
4298  },
4299  &Log_filename,
4300  "postgresql-%Y-%m-%d_%H%M%S.log",
4301  NULL, NULL, NULL
4302  },
4303 
4304  {
4305  {"syslog_ident", PGC_SIGHUP, LOGGING_WHERE,
4306  gettext_noop("Sets the program name used to identify PostgreSQL "
4307  "messages in syslog."),
4308  NULL
4309  },
4311  "postgres",
4312  NULL, assign_syslog_ident, NULL
4313  },
4314 
4315  {
4316  {"event_source", PGC_POSTMASTER, LOGGING_WHERE,
4317  gettext_noop("Sets the application name used to identify "
4318  "PostgreSQL messages in the event log."),
4319  NULL
4320  },
4321  &event_source,
4323  NULL, NULL, NULL
4324  },
4325 
4326  {
4327  {"TimeZone", PGC_USERSET, CLIENT_CONN_LOCALE,
4328  gettext_noop("Sets the time zone for displaying and interpreting time stamps."),
4329  NULL,
4330  GUC_REPORT
4331  },
4332  &timezone_string,
4333  "GMT",
4335  },
4336  {
4337  {"timezone_abbreviations", PGC_USERSET, CLIENT_CONN_LOCALE,
4338  gettext_noop("Selects a file of time zone abbreviations."),
4339  NULL
4340  },
4342  NULL,
4344  },
4345 
4346  {
4347  {"unix_socket_group", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
4348  gettext_noop("Sets the owning group of the Unix-domain socket."),
4349  gettext_noop("The owning user of the socket is always the user "
4350  "that starts the server.")
4351  },
4353  "",
4354  NULL, NULL, NULL
4355  },
4356 
4357  {
4358  {"unix_socket_directories", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
4359  gettext_noop("Sets the directories where Unix-domain sockets will be created."),
4360  NULL,
4362  },
4365  NULL, NULL, NULL
4366  },
4367 
4368  {
4369  {"listen_addresses", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
4370  gettext_noop("Sets the host name or IP address(es) to listen to."),
4371  NULL,
4373  },
4374  &ListenAddresses,
4375  "localhost",
4376  NULL, NULL, NULL
4377  },
4378 
4379  {
4380  /*
4381  * Can't be set by ALTER SYSTEM as it can lead to recursive definition
4382  * of data_directory.
4383  */
4384  {"data_directory", PGC_POSTMASTER, FILE_LOCATIONS,
4385  gettext_noop("Sets the server's data directory."),
4386  NULL,
4388  },
4389  &data_directory,
4390  NULL,
4391  NULL, NULL, NULL
4392  },
4393 
4394  {
4395  {"config_file", PGC_POSTMASTER, FILE_LOCATIONS,
4396  gettext_noop("Sets the server's main configuration file."),
4397  NULL,
4399  },
4400  &ConfigFileName,
4401  NULL,
4402  NULL, NULL, NULL
4403  },
4404 
4405  {
4406  {"hba_file", PGC_POSTMASTER, FILE_LOCATIONS,
4407  gettext_noop("Sets the server's \"hba\" configuration file."),
4408  NULL,
4410  },
4411  &HbaFileName,
4412  NULL,
4413  NULL, NULL, NULL
4414  },
4415 
4416  {
4417  {"ident_file", PGC_POSTMASTER, FILE_LOCATIONS,
4418  gettext_noop("Sets the server's \"ident\" configuration file."),
4419  NULL,
4421  },
4422  &IdentFileName,
4423  NULL,
4424  NULL, NULL, NULL
4425  },
4426 
4427  {
4428  {"external_pid_file", PGC_POSTMASTER, FILE_LOCATIONS,
4429  gettext_noop("Writes the postmaster PID to the specified file."),
4430  NULL,
4432  },
4434  NULL,
4435  check_canonical_path, NULL, NULL
4436  },
4437 
4438  {
4439  {"ssl_library", PGC_INTERNAL, PRESET_OPTIONS,
4440  gettext_noop("Shows the name of the SSL library."),
4441  NULL,
4443  },
4444  &ssl_library,
4445 #ifdef USE_SSL
4446  "OpenSSL",
4447 #else
4448  "",
4449 #endif
4450  NULL, NULL, NULL
4451  },
4452 
4453  {
4454  {"ssl_cert_file", PGC_SIGHUP, CONN_AUTH_SSL,
4455  gettext_noop("Location of the SSL server certificate file."),
4456  NULL
4457  },
4458  &ssl_cert_file,
4459  "server.crt",
4460  NULL, NULL, NULL
4461  },
4462 
4463  {
4464  {"ssl_key_file", PGC_SIGHUP, CONN_AUTH_SSL,
4465  gettext_noop("Location of the SSL server private key file."),
4466  NULL
4467  },
4468  &ssl_key_file,
4469  "server.key",
4470  NULL, NULL, NULL
4471  },
4472 
4473  {
4474  {"ssl_ca_file", PGC_SIGHUP, CONN_AUTH_SSL,
4475  gettext_noop("Location of the SSL certificate authority file."),
4476  NULL
4477  },
4478  &ssl_ca_file,
4479  "",
4480  NULL, NULL, NULL
4481  },
4482 
4483  {
4484  {"ssl_crl_file", PGC_SIGHUP, CONN_AUTH_SSL,
4485  gettext_noop("Location of the SSL certificate revocation list file."),
4486  NULL
4487  },
4488  &ssl_crl_file,
4489  "",
4490  NULL, NULL, NULL
4491  },
4492 
4493  {
4494  {"ssl_crl_dir", PGC_SIGHUP, CONN_AUTH_SSL,
4495  gettext_noop("Location of the SSL certificate revocation list directory."),
4496  NULL
4497  },
4498  &ssl_crl_dir,
4499  "",
4500  NULL, NULL, NULL
4501  },
4502 
4503  {
4504  {"synchronous_standby_names", PGC_SIGHUP, REPLICATION_PRIMARY,
4505  gettext_noop("Number of synchronous standbys and list of names of potential synchronous ones."),
4506  NULL,
4508  },
4510  "",
4512  },
4513 
4514  {
4515  {"default_text_search_config", PGC_USERSET, CLIENT_CONN_LOCALE,
4516  gettext_noop("Sets default text search configuration."),
4517  NULL
4518  },
4519  &TSCurrentConfig,
4520  "pg_catalog.simple",
4522  },
4523 
4524  {
4525  {"ssl_ciphers", PGC_SIGHUP, CONN_AUTH_SSL,
4526  gettext_noop("Sets the list of allowed SSL ciphers."),
4527  NULL,
4529  },
4530  &SSLCipherSuites,
4531 #ifdef USE_OPENSSL
4532  "HIGH:MEDIUM:+3DES:!aNULL",
4533 #else
4534  "none",
4535 #endif
4536  NULL, NULL, NULL
4537  },
4538 
4539  {
4540  {"ssl_ecdh_curve", PGC_SIGHUP, CONN_AUTH_SSL,
4541  gettext_noop("Sets the curve to use for ECDH."),
4542  NULL,
4544  },
4545  &SSLECDHCurve,
4546 #ifdef USE_SSL
4547  "prime256v1",
4548 #else
4549  "none",
4550 #endif
4551  NULL, NULL, NULL
4552  },
4553 
4554  {
4555  {"ssl_dh_params_file", PGC_SIGHUP, CONN_AUTH_SSL,
4556  gettext_noop("Location of the SSL DH parameters file."),
4557  NULL,
4559  },
4561  "",
4562  NULL, NULL, NULL
4563  },
4564 
4565  {
4566  {"ssl_passphrase_command", PGC_SIGHUP, CONN_AUTH_SSL,
4567  gettext_noop("Command to obtain passphrases for SSL."),
4568  NULL,
4570  },
4572  "",
4573  NULL, NULL, NULL
4574  },
4575 
4576  {
4577  {"application_name", PGC_USERSET, LOGGING_WHAT,
4578  gettext_noop("Sets the application name to be reported in statistics and logs."),
4579  NULL,
4581  },
4583  "",
4585  },
4586 
4587  {
4588  {"cluster_name", PGC_POSTMASTER, PROCESS_TITLE,
4589  gettext_noop("Sets the name of the cluster, which is included in the process title."),
4590  NULL,
4591  GUC_IS_NAME
4592  },
4593  &cluster_name,
4594  "",
4595  check_cluster_name, NULL, NULL
4596  },
4597 
4598  {
4599  {"wal_consistency_checking", PGC_SUSET, DEVELOPER_OPTIONS,
4600  gettext_noop("Sets the WAL resource managers for which WAL consistency checks are done."),
4601  gettext_noop("Full-page images will be logged for all data blocks and cross-checked against the results of WAL replay."),
4603  },
4605  "",
4607  },
4608 
4609  {
4610  {"jit_provider", PGC_POSTMASTER, CLIENT_CONN_PRELOAD,
4611  gettext_noop("JIT provider to use."),
4612  NULL,
4614  },
4615  &jit_provider,
4616  "llvmjit",
4617  NULL, NULL, NULL
4618  },
4619 
4620  {
4621  {"backtrace_functions", PGC_SUSET, DEVELOPER_OPTIONS,
4622  gettext_noop("Log backtrace for errors in these functions."),
4623  NULL,
4625  },
4627  "",
4629  },
4630 
4631  {
4632  {"debug_io_direct", PGC_POSTMASTER, DEVELOPER_OPTIONS,
4633  gettext_noop("Use direct I/O for file access."),
4634  NULL,
4636  },
4638  "",
4640  },
4641 
4642  /* End-of-list marker */
4643  {
4644  {NULL, 0, 0, NULL, NULL}, NULL, NULL, NULL, NULL, NULL
4645  }
4646 };
4647 
4648 
4650 {
4651  {
4652  {"backslash_quote", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
4653  gettext_noop("Sets whether \"\\'\" is allowed in string literals."),
4654  NULL
4655  },
4656  &backslash_quote,
4658  NULL, NULL, NULL
4659  },
4660 
4661  {
4662  {"bytea_output", PGC_USERSET, CLIENT_CONN_STATEMENT,
4663  gettext_noop("Sets the output format for bytea."),
4664  NULL
4665  },
4666  &bytea_output,
4668  NULL, NULL, NULL
4669  },
4670 
4671  {
4672  {"client_min_messages", PGC_USERSET, CLIENT_CONN_STATEMENT,
4673  gettext_noop("Sets the message levels that are sent to the client."),
4674  gettext_noop("Each level includes all the levels that follow it. The later"
4675  " the level, the fewer messages are sent.")
4676  },
4679  NULL, NULL, NULL
4680  },
4681 
4682  {
4683  {"compute_query_id", PGC_SUSET, STATS_MONITORING,
4684  gettext_noop("Enables in-core computation of query identifiers."),
4685  NULL
4686  },
4689  NULL, NULL, NULL
4690  },
4691 
4692  {
4693  {"constraint_exclusion", PGC_USERSET, QUERY_TUNING_OTHER,
4694  gettext_noop("Enables the planner to use constraints to optimize queries."),
4695  gettext_noop("Table scans will be skipped if their constraints"
4696  " guarantee that no rows match the query."),
4697  GUC_EXPLAIN
4698  },
4701  NULL, NULL, NULL
4702  },
4703 
4704  {
4705  {"default_toast_compression", PGC_USERSET, CLIENT_CONN_STATEMENT,
4706  gettext_noop("Sets the default compression method for compressible values."),
4707  NULL
4708  },
4712  NULL, NULL, NULL
4713  },
4714 
4715  {
4716  {"default_transaction_isolation", PGC_USERSET, CLIENT_CONN_STATEMENT,
4717  gettext_noop("Sets the transaction isolation level of each new transaction."),
4718  NULL
4719  },
4722  NULL, NULL, NULL
4723  },
4724 
4725  {
4726  {"transaction_isolation", PGC_USERSET, CLIENT_CONN_STATEMENT,
4727  gettext_noop("Sets the current transaction's isolation level."),
4728  NULL,
4730  },
4731  &XactIsoLevel,
4733  check_transaction_isolation, NULL, NULL
4734  },
4735 
4736  {
4737  {"IntervalStyle", PGC_USERSET, CLIENT_CONN_LOCALE,
4738  gettext_noop("Sets the display format for interval values."),
4739  NULL,
4740  GUC_REPORT
4741  },
4742  &IntervalStyle,
4744  NULL, NULL, NULL
4745  },
4746 
4747  {
4748  {"icu_validation_level", PGC_USERSET, CLIENT_CONN_LOCALE,
4749  gettext_noop("Log level for reporting invalid ICU locale strings."),
4750  NULL
4751  },
4754  NULL, NULL, NULL
4755  },
4756 
4757  {
4758  {"log_error_verbosity", PGC_SUSET, LOGGING_WHAT,
4759  gettext_noop("Sets the verbosity of logged messages."),
4760  NULL
4761  },
4764  NULL, NULL, NULL
4765  },
4766 
4767  {
4768  {"log_min_messages", PGC_SUSET, LOGGING_WHEN,
4769  gettext_noop("Sets the message levels that are logged."),
4770  gettext_noop("Each level includes all the levels that follow it. The later"
4771  " the level, the fewer messages are sent.")
4772  },
4775  NULL, NULL, NULL
4776  },
4777 
4778  {
4779  {"log_min_error_statement", PGC_SUSET, LOGGING_WHEN,
4780  gettext_noop("Causes all statements generating error at or above this level to be logged."),
4781  gettext_noop("Each level includes all the levels that follow it. The later"
4782  " the level, the fewer messages are sent.")
4783  },
4786  NULL, NULL, NULL
4787  },
4788 
4789  {
4790  {"log_statement", PGC_SUSET, LOGGING_WHAT,
4791  gettext_noop("Sets the type of statements logged."),
4792  NULL
4793  },
4794  &log_statement,
4796  NULL, NULL, NULL
4797  },
4798 
4799  {
4800  {"syslog_facility", PGC_SIGHUP, LOGGING_WHERE,
4801  gettext_noop("Sets the syslog \"facility\" to be used when syslog enabled."),
4802  NULL
4803  },
4804  &syslog_facility,
4807  NULL, assign_syslog_facility, NULL
4808  },
4809 
4810  {
4811  {"session_replication_role", PGC_SUSET, CLIENT_CONN_STATEMENT,
4812  gettext_noop("Sets the session's behavior for triggers and rewrite rules."),
4813  NULL
4814  },
4818  },
4819 
4820  {
4821  {"synchronous_commit", PGC_USERSET, WAL_SETTINGS,
4822  gettext_noop("Sets the current transaction's synchronization level."),
4823  NULL
4824  },
4827  NULL, assign_synchronous_commit, NULL
4828  },
4829 
4830  {
4831  {"archive_mode", PGC_POSTMASTER, WAL_ARCHIVING,
4832  gettext_noop("Allows archiving of WAL files using archive_command."),
4833  NULL
4834  },
4835  &XLogArchiveMode,
4837  NULL, NULL, NULL
4838  },
4839 
4840  {
4841  {"recovery_target_action", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
4842  gettext_noop("Sets the action to perform upon reaching the recovery target."),
4843  NULL
4844  },
4847  NULL, NULL, NULL
4848  },
4849 
4850  {
4851  {"track_functions", PGC_SUSET, STATS_CUMULATIVE,
4852  gettext_noop("Collects function-level statistics on database activity."),
4853  NULL
4854  },
4857  NULL, NULL, NULL
4858  },
4859 
4860 
4861  {
4862  {"stats_fetch_consistency", PGC_USERSET, STATS_CUMULATIVE,
4863  gettext_noop("Sets the consistency of accesses to statistics data."),
4864  NULL
4865  },
4868  NULL, assign_stats_fetch_consistency, NULL
4869  },
4870 
4871  {
4872  {"wal_compression", PGC_SUSET, WAL_SETTINGS,
4873  gettext_noop("Compresses full-page writes written in WAL file with specified method."),
4874  NULL
4875  },
4876  &wal_compression,
4878  NULL, NULL, NULL
4879  },
4880 
4881  {
4882  {"wal_level", PGC_POSTMASTER, WAL_SETTINGS,
4883  gettext_noop("Sets the level of information written to the WAL."),
4884  NULL
4885  },
4886  &wal_level,
4888  NULL, NULL, NULL
4889  },
4890 
4891  {
4892  {"dynamic_shared_memory_type", PGC_POSTMASTER, RESOURCES_MEM,
4893  gettext_noop("Selects the dynamic shared memory implementation used."),
4894  NULL
4895  },
4898  NULL, NULL, NULL
4899  },
4900 
4901  {
4902  {"shared_memory_type", PGC_POSTMASTER, RESOURCES_MEM,
4903  gettext_noop("Selects the shared memory implementation used for the main shared memory region."),
4904  NULL
4905  },
4908  NULL, NULL, NULL
4909  },
4910 
4911  {
4912  {"wal_sync_method", PGC_SIGHUP, WAL_SETTINGS,
4913  gettext_noop("Selects the method used for forcing WAL updates to disk."),
4914  NULL
4915  },
4916  &wal_sync_method,
4918  NULL, assign_wal_sync_method, NULL
4919  },
4920 
4921  {
4922  {"xmlbinary", PGC_USERSET, CLIENT_CONN_STATEMENT,
4923  gettext_noop("Sets how binary values are to be encoded in XML."),
4924  NULL
4925  },
4926  &xmlbinary,
4928  NULL, NULL, NULL
4929  },
4930 
4931  {
4932  {"xmloption", PGC_USERSET, CLIENT_CONN_STATEMENT,
4933  gettext_noop("Sets whether XML data in implicit parsing and serialization "
4934  "operations is to be considered as documents or content fragments."),
4935  NULL
4936  },
4937  &xmloption,
4939  NULL, NULL, NULL
4940  },
4941 
4942  {
4943  {"huge_pages", PGC_POSTMASTER, RESOURCES_MEM,
4944  gettext_noop("Use of huge pages on Linux or Windows."),
4945  NULL
4946  },
4947  &huge_pages,
4949  NULL, NULL, NULL
4950  },
4951 
4952  {
4953  {"huge_pages_status", PGC_INTERNAL, PRESET_OPTIONS,
4954  gettext_noop("Indicates the status of huge pages."),
4955  NULL,
4957  },
4960  NULL, NULL, NULL
4961  },
4962 
4963  {
4964  {"recovery_prefetch", PGC_SIGHUP, WAL_RECOVERY,
4965  gettext_noop("Prefetch referenced blocks during recovery."),
4966  gettext_noop("Look ahead in the WAL to find references to uncached data.")
4967  },
4971  },
4972 
4973  {
4974  {"debug_parallel_query", PGC_USERSET, DEVELOPER_OPTIONS,
4975  gettext_noop("Forces the planner's use parallel query nodes."),
4976  gettext_noop("This can be useful for testing the parallel query infrastructure "
4977  "by forcing the planner to generate plans that contain nodes "
4978  "that perform tuple communication between workers and the main process."),
4980  },
4983  NULL, NULL, NULL
4984  },
4985 
4986  {
4987  {"password_encryption", PGC_USERSET, CONN_AUTH_AUTH,
4988  gettext_noop("Chooses the algorithm for encrypting passwords."),
4989  NULL
4990  },
4993  NULL, NULL, NULL
4994  },
4995 
4996  {
4997  {"plan_cache_mode", PGC_USERSET, QUERY_TUNING_OTHER,
4998  gettext_noop("Controls the planner's selection of custom or generic plan."),
4999  gettext_noop("Prepared statements can have custom and generic plans, and the planner "
5000  "will attempt to choose which is better. This can be set to override "
5001  "the default behavior."),
5002  GUC_EXPLAIN
5003  },
5004  &plan_cache_mode,
5006  NULL, NULL, NULL
5007  },
5008 
5009  {
5010  {"ssl_min_protocol_version", PGC_SIGHUP, CONN_AUTH_SSL,
5011  gettext_noop("Sets the minimum SSL/TLS protocol version to use."),
5012  NULL,
5014  },
5017  ssl_protocol_versions_info + 1, /* don't allow PG_TLS_ANY */
5018  NULL, NULL, NULL
5019  },
5020 
5021  {
5022  {"ssl_max_protocol_version", PGC_SIGHUP, CONN_AUTH_SSL,
5023  gettext_noop("Sets the maximum SSL/TLS protocol version to use."),
5024  NULL,
5026  },
5028  PG_TLS_ANY,
5030  NULL, NULL, NULL
5031  },
5032 
5033  {
5034  {"recovery_init_sync_method", PGC_SIGHUP, ERROR_HANDLING_OPTIONS,
5035  gettext_noop("Sets the method for synchronizing the data directory before crash recovery."),
5036  },
5039  NULL, NULL, NULL
5040  },
5041 
5042  {
5043  {"debug_logical_replication_streaming", PGC_USERSET, DEVELOPER_OPTIONS,
5044  gettext_noop("Forces immediate streaming or serialization of changes in large transactions."),
5045  gettext_noop("On the publisher, it allows streaming or serializing each change in logical decoding. "
5046  "On the subscriber, it allows serialization of all changes to files and notifies the "
5047  "parallel apply workers to read and apply them at the end of the transaction."),
5049  },
5052  NULL, NULL, NULL
5053  },
5054 
5055  /* End-of-list marker */
5056  {
5057  {NULL, 0, 0, NULL, NULL}, NULL, 0, NULL, NULL, NULL, NULL
5058  }
5059 };
int geqo_threshold
Definition: allpaths.c:83
bool enable_geqo
Definition: allpaths.c:82
int min_parallel_index_scan_size
Definition: allpaths.c:85
int min_parallel_table_scan_size
Definition: allpaths.c:84
bool enable_self_join_removal
Definition: analyzejoins.c:46
bool Array_nulls
Definition: arrayfuncs.c:44
int max_notify_queue_pages
Definition: async.c:430
bool Trace_notify
Definition: async.c:427
int scram_sha_256_iterations
Definition: auth-scram.c:197
char * pg_krb_server_keyfile
Definition: auth.c:166
bool pg_krb_caseins_users
Definition: auth.c:167
bool pg_gss_accept_delegation
Definition: auth.c:168
int autovacuum_multixact_freeze_max_age
Definition: autovacuum.c:128
int autovacuum_naptime
Definition: autovacuum.c:120
double autovacuum_vac_scale
Definition: autovacuum.c:122
int Log_autovacuum_min_duration
Definition: autovacuum.c:133
int autovacuum_anl_thresh
Definition: autovacuum.c:125
bool check_autovacuum_work_mem(int *newval, void **extra, GucSource source)
Definition: autovacuum.c:3442
int autovacuum_vac_cost_limit
Definition: autovacuum.c:131
int autovacuum_max_workers
Definition: autovacuum.c:118
int autovacuum_freeze_max_age
Definition: autovacuum.c:127
double autovacuum_vac_cost_delay
Definition: autovacuum.c:130
int autovacuum_vac_thresh
Definition: autovacuum.c:121
int autovacuum_work_mem
Definition: autovacuum.c:119
double autovacuum_anl_scale
Definition: autovacuum.c:126
int autovacuum_vac_ins_thresh
Definition: autovacuum.c:123
bool autovacuum_start_daemon
Definition: autovacuum.c:117
double autovacuum_vac_ins_scale
Definition: autovacuum.c:124
bool check_default_tablespace(char **newval, void **extra, GucSource source)
Definition: tablespace.c:1097
void assign_temp_tablespaces(const char *newval, void *extra)
Definition: tablespace.c:1312
bool check_temp_tablespaces(char **newval, void **extra, GucSource source)
Definition: tablespace.c:1204
bool allow_in_place_tablespaces
Definition: tablespace.c:91
int Password_encryption
Definition: user.c:86
bool check_createrole_self_grant(char **newval, void **extra, GucSource source)
Definition: user.c:2516
void assign_createrole_self_grant(const char *newval, void *extra)
Definition: user.c:2567
char * createrole_self_grant
Definition: user.c:87
const char * show_unix_socket_permissions(void)
Definition: variable.c:1157
void assign_application_name(const char *newval, void *extra)
Definition: variable.c:1075
bool check_bonjour(bool *newval, void **extra, GucSource source)
Definition: variable.c:1172
bool check_maintenance_io_concurrency(int *newval, void **extra, GucSource source)
Definition: variable.c:1213
void assign_session_authorization(const char *newval, void *extra)
Definition: variable.c:885
bool check_transaction_deferrable(bool *newval, void **extra, GucSource source)
Definition: variable.c:620
bool check_canonical_path(char **newval, void **extra, GucSource source)
Definition: variable.c:1028
const char * show_timezone(void)
Definition: variable.c:390
bool check_transaction_isolation(int *newval, void **extra, GucSource source)
Definition: variable.c:583
bool check_default_with_oids(bool *newval, void **extra, GucSource source)
Definition: variable.c:1185
void assign_timezone_abbreviations(const char *newval, void *extra)
Definition: variable.c:517
bool check_effective_io_concurrency(int *newval, void **extra, GucSource source)
Definition: variable.c:1200
bool check_application_name(char **newval, void **extra, GucSource source)
Definition: variable.c:1049
void assign_timezone(const char *newval, void *extra)
Definition: variable.c:381
bool check_role(char **newval, void **extra, GucSource source)
Definition: variable.c:907
bool check_cluster_name(char **newval, void **extra, GucSource source)
Definition: variable.c:1085
const char * show_log_timezone(void)
Definition: variable.c:463
bool check_session_authorization(char **newval, void **extra, GucSource source)
Definition: variable.c:802
bool check_transaction_read_only(bool *newval, void **extra, GucSource source)
Definition: variable.c:544
void assign_maintenance_io_concurrency(int newval, void *extra)
Definition: variable.c:1111
bool check_timezone_abbreviations(char **newval, void **extra, GucSource source)
Definition: variable.c:485
void assign_client_encoding(const char *newval, void *extra)
Definition: variable.c:756
void assign_role(const char *newval, void *extra)
Definition: variable.c:995
bool check_timezone(char **newval, void **extra, GucSource source)
Definition: variable.c:261
const char * show_random_seed(void)
Definition: variable.c:669
bool check_ssl(bool *newval, void **extra, GucSource source)
Definition: variable.c:1226
void assign_datestyle(const char *newval, void *extra)
Definition: variable.c:244
void assign_random_seed(double newval, void *extra)
Definition: variable.c:660
bool check_log_timezone(char **newval, void **extra, GucSource source)
Definition: variable.c:416
bool check_random_seed(double *newval, void **extra, GucSource source)
Definition: variable.c:648
const char * show_role(void)
Definition: variable.c:1003
bool check_datestyle(char **newval, void **extra, GucSource source)
Definition: variable.c:52
bool check_client_encoding(char **newval, void **extra, GucSource source)
Definition: variable.c:680
const char * show_log_file_mode(void)
Definition: variable.c:1145
const char * show_data_directory_mode(void)
Definition: variable.c:1133
void assign_log_timezone(const char *newval, void *extra)
Definition: variable.c:454
int log_startup_progress_interval
Definition: startup.c:77
bool pgstat_track_activities
int pgstat_track_activity_query_size
char * ssl_crl_dir
Definition: be-secure.c:43
char * ssl_dh_params_file
Definition: be-secure.c:44
int ssl_min_protocol_version
Definition: be-secure.c:61
char * ssl_cert_file
Definition: be-secure.c:39
bool SSLPreferServerCiphers
Definition: be-secure.c:59
char * ssl_library
Definition: be-secure.c:38
int ssl_max_protocol_version
Definition: be-secure.c:62
char * ssl_passphrase_command
Definition: be-secure.c:45
bool ssl_passphrase_command_supports_reload
Definition: be-secure.c:46
char * SSLCipherSuites
Definition: be-secure.c:53
char * SSLECDHCurve
Definition: be-secure.c:56
char * ssl_key_file
Definition: be-secure.c:40
char * ssl_crl_file
Definition: be-secure.c:42
char * ssl_ca_file
Definition: be-secure.c:41
#define MAX_PARALLEL_WORKER_LIMIT
int BgWriterDelay
Definition: bgwriter.c:61
bool track_io_timing
Definition: bufmgr.c:139
bool zero_damaged_pages
Definition: bufmgr.c:136
int bgwriter_flush_after
Definition: bufmgr.c:161
int checkpoint_flush_after
Definition: bufmgr.c:160
double bgwriter_lru_multiplier
Definition: bufmgr.c:138
int backend_flush_after
Definition: bufmgr.c:162
int maintenance_io_concurrency
Definition: bufmgr.c:154
int effective_io_concurrency
Definition: bufmgr.c:147
int bgwriter_lru_maxpages
Definition: bufmgr.c:137
#define MAX_IO_CONCURRENCY
Definition: bufmgr.h:149
#define DEFAULT_EFFECTIVE_IO_CONCURRENCY
Definition: bufmgr.h:130
#define DEFAULT_MAINTENANCE_IO_CONCURRENCY
Definition: bufmgr.h:131
@ BYTEA_OUTPUT_HEX
Definition: bytea.h:22
@ BYTEA_OUTPUT_ESCAPE
Definition: bytea.h:21
#define Min(x, y)
Definition: c.h:993
#define gettext_noop(x)
Definition: c.h:1185
#define lengthof(array)
Definition: c.h:777
double CheckPointCompletionTarget
Definition: checkpointer.c:137
int CheckPointWarning
Definition: checkpointer.c:136
int CheckPointTimeout
Definition: checkpointer.c:135
int default_statistics_target
Definition: analyze.c:83
bool track_commit_timestamp
Definition: commit_ts.c:111
#define DEFAULT_PARALLEL_TUPLE_COST
Definition: cost.h:29
#define DEFAULT_PARALLEL_SETUP_COST
Definition: cost.h:30
@ CONSTRAINT_EXCLUSION_OFF
Definition: cost.h:38
@ CONSTRAINT_EXCLUSION_PARTITION
Definition: cost.h:40
@ CONSTRAINT_EXCLUSION_ON
Definition: cost.h:39
#define DEFAULT_CPU_INDEX_TUPLE_COST
Definition: cost.h:27
#define DEFAULT_CPU_TUPLE_COST
Definition: cost.h:26
#define DEFAULT_RANDOM_PAGE_COST
Definition: cost.h:25
#define DEFAULT_RECURSIVE_WORKTABLE_FACTOR
Definition: cost.h:33
#define DEFAULT_EFFECTIVE_CACHE_SIZE
Definition: cost.h:34
#define DEFAULT_SEQ_PAGE_COST
Definition: cost.h:24
#define DEFAULT_CPU_OPERATOR_COST
Definition: cost.h:28
double random_page_cost
Definition: costsize.c:121
double cpu_operator_cost
Definition: costsize.c:124
bool enable_partitionwise_aggregate
Definition: costsize.c:150
bool enable_seqscan
Definition: costsize.c:135
int max_parallel_workers_per_gather
Definition: costsize.c:133
bool enable_memoize
Definition: costsize.c:145
double parallel_setup_cost
Definition: costsize.c:126
double recursive_worktable_factor
Definition: costsize.c:127
bool enable_gathermerge
Definition: costsize.c:148
double parallel_tuple_cost
Definition: costsize.c:125
bool enable_indexonlyscan
Definition: costsize.c:137
bool enable_tidscan
Definition: costsize.c:139
double cpu_tuple_cost
Definition: costsize.c:122
bool enable_material
Definition: costsize.c:144
bool enable_hashjoin
Definition: costsize.c:147
bool enable_mergejoin
Definition: costsize.c:146
bool enable_presorted_aggregate
Definition: costsize.c:154
bool enable_parallel_hash
Definition: costsize.c:152
bool enable_partitionwise_join
Definition: costsize.c:149
bool enable_async_append
Definition: costsize.c:155
double seq_page_cost
Definition: costsize.c:120
bool enable_parallel_append
Definition: costsize.c:151
bool enable_nestloop
Definition: costsize.c:143
bool enable_bitmapscan
Definition: costsize.c:138
bool enable_hashagg
Definition: costsize.c:142
bool enable_partition_pruning
Definition: costsize.c:153
bool enable_sort
Definition: costsize.c:140
int effective_cache_size
Definition: costsize.c:129
double cpu_index_tuple_cost
Definition: costsize.c:123
bool enable_indexscan
Definition: costsize.c:136
bool enable_incremental_sort
Definition: costsize.c:141
@ PASSWORD_TYPE_SCRAM_SHA_256
Definition: crypt.h:31
@ PASSWORD_TYPE_MD5
Definition: crypt.h:30
#define MINS_PER_HOUR
Definition: timestamp.h:129
#define SECS_PER_MINUTE
Definition: timestamp.h:128
#define HOURS_PER_DAY
Definition: timestamp.h:118
char * Dynamic_library_path
Definition: dfmgr.c:77
int min_dynamic_shared_memory
Definition: dsm_impl.c:115
int dynamic_shared_memory_type
Definition: dsm_impl.c:112
#define DEFAULT_DYNAMIC_SHARED_MEMORY_TYPE
Definition: dsm_impl.h:36
void assign_syslog_facility(int newval, void *extra)
Definition: elog.c:2299
void assign_syslog_ident(const char *newval, void *extra)
Definition: elog.c:2267
bool syslog_split_messages
Definition: elog.c:116
void assign_backtrace_functions(const char *newval, void *extra)
Definition: elog.c:2187
int Log_error_verbosity
Definition: elog.c:111
bool check_backtrace_functions(char **newval, void **extra, GucSource source)
Definition: elog.c:2128
bool check_log_destination(char **newval, void **extra, GucSource source)
Definition: elog.c:2196
bool syslog_sequence_numbers
Definition: elog.c:115
char * Log_destination_string
Definition: elog.c:114
char * Log_line_prefix
Definition: elog.c:112
void assign_log_destination(const char *newval, void *extra)
Definition: elog.c:2258
@ PGERROR_VERBOSE
Definition: elog.h:481
@ PGERROR_DEFAULT
Definition: elog.h:480
@ PGERROR_TERSE
Definition: elog.h:479
#define LOG
Definition: elog.h:31
#define DEBUG3
Definition: elog.h:28
#define FATAL
Definition: elog.h:41
#define WARNING
Definition: elog.h:36
#define DEBUG2
Definition: elog.h:29
#define PANIC
Definition: elog.h:42
#define DEBUG1
Definition: elog.h:30
#define ERROR
Definition: elog.h:39
#define NOTICE
Definition: elog.h:35
#define INFO
Definition: elog.h:34
#define DEBUG5
Definition: elog.h:26
#define DEBUG4
Definition: elog.h:27
bool event_triggers
Definition: event_trigger.c:81
int max_files_per_process
Definition: fd.c:146
int recovery_init_sync_method
Definition: fd.c:165
void assign_debug_io_direct(const char *newval, void *extra)
Definition: fd.c:4024
bool data_sync_retry
Definition: fd.c:162
bool check_debug_io_direct(char **newval, void **extra, GucSource source)
Definition: fd.c:3942
@ DATA_DIR_SYNC_METHOD_SYNCFS
Definition: file_utils.h:30
@ DATA_DIR_SYNC_METHOD_FSYNC
Definition: file_utils.h:29
int extra_float_digits
Definition: float.c:43
#define DEFAULT_GEQO_EFFORT
Definition: geqo.h:55
#define MAX_GEQO_EFFORT
Definition: geqo.h:57
#define MAX_GEQO_SELECTION_BIAS
Definition: geqo.h:67
#define MIN_GEQO_EFFORT
Definition: geqo.h:56
#define DEFAULT_GEQO_SELECTION_BIAS
Definition: geqo.h:65
#define MIN_GEQO_SELECTION_BIAS
Definition: geqo.h:66
int Geqo_pool_size
Definition: geqo_main.c:40
double Geqo_seed
Definition: geqo_main.c:43
int Geqo_generations
Definition: geqo_main.c:41
int Geqo_effort
Definition: geqo_main.c:39
double Geqo_selection_bias
Definition: geqo_main.c:42
int gin_pending_list_limit
Definition: ginfast.c:39
int GinFuzzySearchLimit
Definition: ginget.c:27
double hash_mem_multiplier
Definition: globals.c:129
int VacuumCostLimit
Definition: globals.c:151
int max_parallel_maintenance_workers
Definition: globals.c:131
int NBuffers
Definition: globals.c:139
bool enableFsync
Definition: globals.c:126
int VacuumCostPageMiss
Definition: globals.c:149
int MaxConnections
Definition: globals.c:140
int data_directory_mode
Definition: globals.c:73
bool allowSystemTableMods
Definition: globals.c:127
int maintenance_work_mem
Definition: globals.c:130
int max_parallel_workers
Definition: globals.c:142
int VacuumCostPageDirty
Definition: globals.c:150
bool ExitOnAnyError
Definition: globals.c:120
int IntervalStyle
Definition: globals.c:124
int work_mem
Definition: globals.c:128
int VacuumBufferUsageLimit
Definition: globals.c:146
int VacuumCostPageHit
Definition: globals.c:148
double VacuumCostDelay
Definition: globals.c:152
int max_worker_processes
Definition: globals.c:141
#define GUC_UNIT_MB
Definition: guc.h:230
#define GUC_EXPLAIN
Definition: guc.h:215
#define GUC_SUPERUSER_ONLY
Definition: guc.h:220
#define GUC_NO_RESET_ALL
Definition: guc.h:214
#define GUC_NO_RESET
Definition: guc.h:213
#define GUC_LIST_QUOTE
Definition: guc.h:211
#define GUC_UNIT_MS
Definition: guc.h:234
#define GUC_NOT_WHILE_SEC_REST
Definition: guc.h:222
#define GUC_UNIT_BLOCKS
Definition: guc.h:228
#define GUC_UNIT_XBLOCKS
Definition: guc.h:229
#define GUC_IS_NAME
Definition: guc.h:221
#define GUC_DISALLOW_IN_FILE
Definition: guc.h:218
#define GUC_LIST_INPUT
Definition: guc.h:210
#define GUC_RUNTIME_COMPUTED
Definition: guc.h:225
@ PGC_S_SESSION
Definition: guc.h:122
#define GUC_NO_SHOW_ALL
Definition: guc.h:212
#define GUC_DISALLOW_IN_AUTO_FILE
Definition: guc.h:223
@ PGC_SUSET
Definition: guc.h:74
@ PGC_INTERNAL
Definition: guc.h:69
@ PGC_USERSET
Definition: guc.h:75
@ PGC_SU_BACKEND
Definition: guc.h:72
@ PGC_POSTMASTER
Definition: guc.h:70
@ PGC_SIGHUP
Definition: guc.h:71
@ PGC_BACKEND
Definition: guc.h:73
#define GUC_UNIT_BYTE
Definition: guc.h:231
#define GUC_NOT_IN_SAMPLE
Definition: guc.h:217
#define GUC_UNIT_S
Definition: guc.h:235
#define GUC_REPORT
Definition: guc.h:216
#define MAX_KILOBYTES
Definition: guc.h:25
#define GUC_UNIT_KB
Definition: guc.h:227
#define GUC_UNIT_MIN
Definition: guc.h:236
static char * recovery_target_lsn_string
Definition: guc_tables.c:614
bool log_statement_stats
Definition: guc_tables.c:505
static char * client_encoding_string
Definition: guc_tables.c:573
static int segment_size
Definition: guc_tables.c:596
static char * timezone_abbreviations_string
Definition: guc_tables.c:589
static const struct config_enum_entry stats_fetch_consistency[]
Definition: guc_tables.c:256
bool Debug_print_plan
Definition: guc_tables.c:497
char * event_source
Definition: guc_tables.c:508
bool check_function_bodies
Definition: guc_tables.c:511
int num_temp_buffers
Definition: guc_tables.c:535
int client_min_messages
Definition: guc_tables.c:522
bool ignore_checksum_failure
Definition: bufpage.c:27
static int max_identifier_length
Definition: guc_tables.c:594
static const struct config_enum_entry password_encryption_options[]
Definition: guc_tables.c:412
static const struct config_enum_entry ssl_protocol_versions_info[]
Definition: guc_tables.c:418
const struct config_enum_entry recovery_target_action_options[]
Definition: xlogrecovery.c:75
bool default_with_oids
Definition: guc_tables.c:517
bool ignore_invalid_pages
Definition: xlogutils.c:37
struct config_string ConfigureNamesString[]
Definition: guc_tables.c:3886
int CommitDelay
Definition: xlog.c:136
static char * timezone_string
Definition: guc_tables.c:587
#define PG_KRB_SRVTAB
Definition: guc_tables.c:93
static const struct config_enum_entry debug_parallel_query_options[]
Definition: guc_tables.c:392
static char * server_version_string
Definition: guc_tables.c:576
int log_min_error_statement
Definition: guc_tables.c:520
static bool data_checksums
Definition: guc_tables.c:600
static const struct config_enum_entry syslog_facility_options[]
Definition: guc_tables.c:230
static const struct config_enum_entry icu_validation_level_options[]
Definition: guc_tables.c:172
static const struct config_enum_entry recovery_prefetch_options[]
Definition: guc_tables.c:379
static const struct config_enum_entry recovery_init_sync_method_options[]
Definition: guc_tables.c:436
int tcp_keepalives_idle
Definition: guc_tables.c:545
char * HbaFileName
Definition: guc_tables.c:539
int temp_file_limit
Definition: guc_tables.c:533
const char *const GucContext_Names[]
Definition: guc_tables.c:628
int ssl_renegotiation_limit
Definition: guc_tables.c:556
static int syslog_facility
Definition: guc_tables.c:585
static int max_function_args
Definition: guc_tables.c:592
int tcp_keepalives_interval
Definition: guc_tables.c:546
static int max_index_keys
Definition: guc_tables.c:593
static const struct config_enum_entry backslash_quote_options[]
Definition: guc_tables.c:288
static char * syslog_ident_str
Definition: guc_tables.c:571
#define DEFAULT_SYSLOG_FACILITY
Definition: guc_tables.c:583
int CommitSiblings
Definition: xlog.c:137
const char *const GucSource_Names[]
Definition: guc_tables.c:647
char * ConfigFileName
Definition: guc_tables.c:538
bool log_parser_stats
Definition: guc_tables.c:502
static int block_size
Definition: guc_tables.c:595
int tcp_keepalives_count
Definition: guc_tables.c:547
double log_xact_sample_rate
Definition: guc_tables.c:529
#define DEFAULT_ASSERT_ENABLED
Definition: guc_tables.c:606
static const struct config_enum_entry shared_memory_options[]
Definition: guc_tables.c:444
struct config_int ConfigureNamesInt[]
Definition: guc_tables.c:2074
static const struct config_enum_entry huge_pages_status_options[]
Definition: guc_tables.c:372
const char *const config_type_names[]
Definition: guc_tables.c:775
bool Debug_pretty_print
Definition: guc_tables.c:500
char * role_string
Definition: guc_tables.c:617
static char * server_encoding_string
Definition: guc_tables.c:575
static int wal_block_size
Definition: guc_tables.c:599
static const struct config_enum_entry log_statement_options[]
Definition: guc_tables.c:201
static const struct config_enum_entry plan_cache_mode_options[]
Definition: guc_tables.c:405
char * temp_tablespaces
Definition: tablespace.c:90
int huge_pages
Definition: guc_tables.c:562
static const struct config_enum_entry wal_compression_options[]
Definition: guc_tables.c:465
static const struct config_enum_entry debug_logical_replication_streaming_options[]
Definition: guc_tables.c:427
static char * datestyle_string
Definition: guc_tables.c:574
static char * recovery_target_timeline_string
Definition: guc_tables.c:610
int log_parameter_max_length_on_error
Definition: guc_tables.c:526
const struct config_enum_entry dynamic_shared_memory_options[]
Definition: dsm_impl.c:95
static const struct config_enum_entry xmlbinary_options[]
Definition: guc_tables.c:266
int log_min_duration_statement
Definition: guc_tables.c:524
static char * recovery_target_xid_string
Definition: guc_tables.c:612
int log_min_duration_sample
Definition: guc_tables.c:523
bool log_btree_build_stats
Definition: guc_tables.c:507
bool log_planner_stats
Definition: guc_tables.c:503
struct config_bool ConfigureNamesBool[]
Definition: guc_tables.c:815
static const struct config_enum_entry bytea_output_options[]
Definition: guc_tables.c:118
bool row_security
Definition: guc_tables.c:510
const struct config_enum_entry archive_mode_options[]
Definition: xlog.c:195
static const struct config_enum_entry huge_pages_options[]
Definition: guc_tables.c:359
static const struct config_enum_entry synchronous_commit_options[]
Definition: guc_tables.c:340
static char * recovery_target_string
Definition: guc_tables.c:611
char * cluster_name
Definition: guc_tables.c:537
static bool assert_enabled
Definition: guc_tables.c:608
static const struct config_enum_entry default_toast_compression_options[]
Definition: guc_tables.c:457
static char * log_timezone_string
Definition: guc_tables.c:588
static char * session_authorization_string