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