PostgreSQL Source Code git master
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
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"
36#include "access/xlogrecovery.h"
37#include "access/xlogutils.h"
39#include "catalog/namespace.h"
40#include "catalog/storage.h"
41#include "commands/async.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"
64#include "postmaster/bgwriter.h"
66#include "postmaster/startup.h"
71#include "replication/slot.h"
73#include "replication/syncrep.h"
74#include "storage/bufmgr.h"
75#include "storage/bufpage.h"
77#include "storage/pg_shmem.h"
78#include "storage/predicate.h"
79#include "storage/standby.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
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 */
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
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
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
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
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
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
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
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
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
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
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
259static 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
268static 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 */
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 */
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 */
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 */
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 */
352static 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
366 {"off", HUGE_PAGES_OFF, false},
367 {"on", HUGE_PAGES_ON, false},
368 {"unknown", HUGE_PAGES_UNKNOWN, false},
369 {NULL, 0, false}
370};
371
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
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
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
406 {"md5", PASSWORD_TYPE_MD5, false},
407 {"scram-sha-256", PASSWORD_TYPE_SCRAM_SHA_256, false},
408 {NULL, 0, false}
409};
410
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
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
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 */
480extern const struct config_enum_entry wal_level_options[];
481extern const struct config_enum_entry archive_mode_options[];
483extern const struct config_enum_entry wal_sync_method_options[];
485
486/*
487 * GUC option variables that are exported from this module
488 */
490bool log_duration = false;
491bool Debug_print_plan = false;
492bool Debug_print_parse = false;
495
496#ifdef DEBUG_NODE_TESTS_ENABLED
497bool Debug_copy_parse_plan_trees;
498bool Debug_write_read_parse_plan_trees;
499bool Debug_raw_expression_coverage_test;
500#endif
501
502bool log_parser_stats = false;
503bool log_planner_stats = false;
505bool log_statement_stats = false; /* this is sort of all three above
506 * together */
509
512
513/*
514 * This GUC exists solely for backward compatibility, check its definition for
515 * details.
516 */
517static bool default_with_oids = false;
518
520
532
534
536
537char *cluster_name = "";
542
544
549
550/*
551 * SSL renegotiation was been removed in PostgreSQL 9.5, but we tolerate it
552 * being set to zero (meaning never renegotiate) for backward compatibility.
553 * This avoids breaking compatibility with clients that have never supported
554 * renegotiation and therefore always try to zero it.
555 */
557
558/*
559 * This really belongs in pg_shmem.c, but is defined here so that it doesn't
560 * need to be duplicated in all the different implementations of pg_shmem.c.
561 */
565
566/*
567 * These variables are all dummies that don't do anything, except in some
568 * cases provide the value for SHOW to display. The real state is elsewhere
569 * and is kept in sync by assign_hooks.
570 */
571static char *syslog_ident_str;
572static double phony_random_seed;
574static char *datestyle_string;
580
581#ifdef HAVE_SYSLOG
582#define DEFAULT_SYSLOG_FACILITY LOG_LOCAL0
583#else
584#define DEFAULT_SYSLOG_FACILITY 0
585#endif
587
588static char *timezone_string;
591static char *data_directory;
594static int max_index_keys;
596static int block_size;
597static int segment_size;
600static int wal_block_size;
602static bool data_checksums;
604
605#ifdef USE_ASSERT_CHECKING
606#define DEFAULT_ASSERT_ENABLED true
607#else
608#define DEFAULT_ASSERT_ENABLED false
609#endif
611
617
618/* should be static, but commands/variable.c needs to get at this */
620
621/* should be static, but guc.c needs to get at this */
623
624
625/*
626 * Displayable names for context types (enum GucContext)
627 *
628 * Note: these strings are deliberately not localized.
629 */
630const char *const GucContext_Names[] =
631{
632 [PGC_INTERNAL] = "internal",
633 [PGC_POSTMASTER] = "postmaster",
634 [PGC_SIGHUP] = "sighup",
635 [PGC_SU_BACKEND] = "superuser-backend",
636 [PGC_BACKEND] = "backend",
637 [PGC_SUSET] = "superuser",
638 [PGC_USERSET] = "user",
639};
640
642 "array length mismatch");
643
644/*
645 * Displayable names for source types (enum GucSource)
646 *
647 * Note: these strings are deliberately not localized.
648 */
649const char *const GucSource_Names[] =
650{
651 [PGC_S_DEFAULT] = "default",
652 [PGC_S_DYNAMIC_DEFAULT] = "default",
653 [PGC_S_ENV_VAR] = "environment variable",
654 [PGC_S_FILE] = "configuration file",
655 [PGC_S_ARGV] = "command line",
656 [PGC_S_GLOBAL] = "global",
657 [PGC_S_DATABASE] = "database",
658 [PGC_S_USER] = "user",
659 [PGC_S_DATABASE_USER] = "database user",
660 [PGC_S_CLIENT] = "client",
661 [PGC_S_OVERRIDE] = "override",
662 [PGC_S_INTERACTIVE] = "interactive",
663 [PGC_S_TEST] = "test",
664 [PGC_S_SESSION] = "session",
665};
666
668 "array length mismatch");
669
670/*
671 * Displayable names for the groupings defined in enum config_group
672 */
673const char *const config_group_names[] =
674{
675 [UNGROUPED] = gettext_noop("Ungrouped"),
676 [FILE_LOCATIONS] = gettext_noop("File Locations"),
677 [CONN_AUTH_SETTINGS] = gettext_noop("Connections and Authentication / Connection Settings"),
678 [CONN_AUTH_TCP] = gettext_noop("Connections and Authentication / TCP Settings"),
679 [CONN_AUTH_AUTH] = gettext_noop("Connections and Authentication / Authentication"),
680 [CONN_AUTH_SSL] = gettext_noop("Connections and Authentication / SSL"),
681 [RESOURCES_MEM] = gettext_noop("Resource Usage / Memory"),
682 [RESOURCES_DISK] = gettext_noop("Resource Usage / Disk"),
683 [RESOURCES_KERNEL] = gettext_noop("Resource Usage / Kernel Resources"),
684 [RESOURCES_VACUUM_DELAY] = gettext_noop("Resource Usage / Cost-Based Vacuum Delay"),
685 [RESOURCES_BGWRITER] = gettext_noop("Resource Usage / Background Writer"),
686 [RESOURCES_ASYNCHRONOUS] = gettext_noop("Resource Usage / Asynchronous Behavior"),
687 [WAL_SETTINGS] = gettext_noop("Write-Ahead Log / Settings"),
688 [WAL_CHECKPOINTS] = gettext_noop("Write-Ahead Log / Checkpoints"),
689 [WAL_ARCHIVING] = gettext_noop("Write-Ahead Log / Archiving"),
690 [WAL_RECOVERY] = gettext_noop("Write-Ahead Log / Recovery"),
691 [WAL_ARCHIVE_RECOVERY] = gettext_noop("Write-Ahead Log / Archive Recovery"),
692 [WAL_RECOVERY_TARGET] = gettext_noop("Write-Ahead Log / Recovery Target"),
693 [WAL_SUMMARIZATION] = gettext_noop("Write-Ahead Log / Summarization"),
694 [REPLICATION_SENDING] = gettext_noop("Replication / Sending Servers"),
695 [REPLICATION_PRIMARY] = gettext_noop("Replication / Primary Server"),
696 [REPLICATION_STANDBY] = gettext_noop("Replication / Standby Servers"),
697 [REPLICATION_SUBSCRIBERS] = gettext_noop("Replication / Subscribers"),
698 [QUERY_TUNING_METHOD] = gettext_noop("Query Tuning / Planner Method Configuration"),
699 [QUERY_TUNING_COST] = gettext_noop("Query Tuning / Planner Cost Constants"),
700 [QUERY_TUNING_GEQO] = gettext_noop("Query Tuning / Genetic Query Optimizer"),
701 [QUERY_TUNING_OTHER] = gettext_noop("Query Tuning / Other Planner Options"),
702 [LOGGING_WHERE] = gettext_noop("Reporting and Logging / Where to Log"),
703 [LOGGING_WHEN] = gettext_noop("Reporting and Logging / When to Log"),
704 [LOGGING_WHAT] = gettext_noop("Reporting and Logging / What to Log"),
705 [PROCESS_TITLE] = gettext_noop("Reporting and Logging / Process Title"),
706 [STATS_MONITORING] = gettext_noop("Statistics / Monitoring"),
707 [STATS_CUMULATIVE] = gettext_noop("Statistics / Cumulative Query and Index Statistics"),
708 [AUTOVACUUM] = gettext_noop("Autovacuum"),
709 [CLIENT_CONN_STATEMENT] = gettext_noop("Client Connection Defaults / Statement Behavior"),
710 [CLIENT_CONN_LOCALE] = gettext_noop("Client Connection Defaults / Locale and Formatting"),
711 [CLIENT_CONN_PRELOAD] = gettext_noop("Client Connection Defaults / Shared Library Preloading"),
712 [CLIENT_CONN_OTHER] = gettext_noop("Client Connection Defaults / Other Defaults"),
713 [LOCK_MANAGEMENT] = gettext_noop("Lock Management"),
714 [COMPAT_OPTIONS_PREVIOUS] = gettext_noop("Version and Platform Compatibility / Previous PostgreSQL Versions"),
715 [COMPAT_OPTIONS_OTHER] = gettext_noop("Version and Platform Compatibility / Other Platforms and Clients"),
716 [ERROR_HANDLING_OPTIONS] = gettext_noop("Error Handling"),
717 [PRESET_OPTIONS] = gettext_noop("Preset Options"),
718 [CUSTOM_OPTIONS] = gettext_noop("Customized Options"),
719 [DEVELOPER_OPTIONS] = gettext_noop("Developer Options"),
720};
721
723 "array length mismatch");
724
725/*
726 * Displayable names for GUC variable types (enum config_type)
727 *
728 * Note: these strings are deliberately not localized.
729 */
730const char *const config_type_names[] =
731{
732 [PGC_BOOL] = "bool",
733 [PGC_INT] = "integer",
734 [PGC_REAL] = "real",
735 [PGC_STRING] = "string",
736 [PGC_ENUM] = "enum",
737};
738
740 "array length mismatch");
741
742
743/*
744 * Contents of GUC tables
745 *
746 * See src/backend/utils/misc/README for design notes.
747 *
748 * TO ADD AN OPTION:
749 *
750 * 1. Declare a global variable of type bool, int, double, or char*
751 * and make use of it.
752 *
753 * 2. Decide at what times it's safe to set the option. See guc.h for
754 * details.
755 *
756 * 3. Decide on a name, a default value, upper and lower bounds (if
757 * applicable), etc.
758 *
759 * 4. Add a record below.
760 *
761 * 5. Add it to src/backend/utils/misc/postgresql.conf.sample, if
762 * appropriate.
763 *
764 * 6. Don't forget to document the option (at least in config.sgml).
765 *
766 * 7. If it's a new GUC_LIST_QUOTE option, you must add it to
767 * variable_is_guc_list_quote() in src/bin/pg_dump/dumputils.c.
768 */
769
771{
772 {
773 {"enable_seqscan", PGC_USERSET, QUERY_TUNING_METHOD,
774 gettext_noop("Enables the planner's use of sequential-scan plans."),
775 NULL,
777 },
779 true,
780 NULL, NULL, NULL
781 },
782 {
783 {"enable_indexscan", PGC_USERSET, QUERY_TUNING_METHOD,
784 gettext_noop("Enables the planner's use of index-scan plans."),
785 NULL,
787 },
789 true,
790 NULL, NULL, NULL
791 },
792 {
793 {"enable_indexonlyscan", PGC_USERSET, QUERY_TUNING_METHOD,
794 gettext_noop("Enables the planner's use of index-only-scan plans."),
795 NULL,
797 },
799 true,
800 NULL, NULL, NULL
801 },
802 {
803 {"enable_bitmapscan", PGC_USERSET, QUERY_TUNING_METHOD,
804 gettext_noop("Enables the planner's use of bitmap-scan plans."),
805 NULL,
807 },
809 true,
810 NULL, NULL, NULL
811 },
812 {
813 {"enable_tidscan", PGC_USERSET, QUERY_TUNING_METHOD,
814 gettext_noop("Enables the planner's use of TID scan plans."),
815 NULL,
817 },
819 true,
820 NULL, NULL, NULL
821 },
822 {
823 {"enable_sort", PGC_USERSET, QUERY_TUNING_METHOD,
824 gettext_noop("Enables the planner's use of explicit sort steps."),
825 NULL,
827 },
829 true,
830 NULL, NULL, NULL
831 },
832 {
833 {"enable_incremental_sort", PGC_USERSET, QUERY_TUNING_METHOD,
834 gettext_noop("Enables the planner's use of incremental sort steps."),
835 NULL,
837 },
839 true,
840 NULL, NULL, NULL
841 },
842 {
843 {"enable_hashagg", PGC_USERSET, QUERY_TUNING_METHOD,
844 gettext_noop("Enables the planner's use of hashed aggregation plans."),
845 NULL,
847 },
849 true,
850 NULL, NULL, NULL
851 },
852 {
853 {"enable_material", PGC_USERSET, QUERY_TUNING_METHOD,
854 gettext_noop("Enables the planner's use of materialization."),
855 NULL,
857 },
859 true,
860 NULL, NULL, NULL
861 },
862 {
863 {"enable_memoize", PGC_USERSET, QUERY_TUNING_METHOD,
864 gettext_noop("Enables the planner's use of memoization."),
865 NULL,
867 },
869 true,
870 NULL, NULL, NULL
871 },
872 {
873 {"enable_nestloop", PGC_USERSET, QUERY_TUNING_METHOD,
874 gettext_noop("Enables the planner's use of nested-loop join plans."),
875 NULL,
877 },
879 true,
880 NULL, NULL, NULL
881 },
882 {
883 {"enable_mergejoin", PGC_USERSET, QUERY_TUNING_METHOD,
884 gettext_noop("Enables the planner's use of merge join plans."),
885 NULL,
887 },
889 true,
890 NULL, NULL, NULL
891 },
892 {
893 {"enable_hashjoin", PGC_USERSET, QUERY_TUNING_METHOD,
894 gettext_noop("Enables the planner's use of hash join plans."),
895 NULL,
897 },
899 true,
900 NULL, NULL, NULL
901 },
902 {
903 {"enable_gathermerge", PGC_USERSET, QUERY_TUNING_METHOD,
904 gettext_noop("Enables the planner's use of gather merge plans."),
905 NULL,
907 },
909 true,
910 NULL, NULL, NULL
911 },
912 {
913 {"enable_partitionwise_join", PGC_USERSET, QUERY_TUNING_METHOD,
914 gettext_noop("Enables partitionwise join."),
915 NULL,
917 },
919 false,
920 NULL, NULL, NULL
921 },
922 {
923 {"enable_partitionwise_aggregate", PGC_USERSET, QUERY_TUNING_METHOD,
924 gettext_noop("Enables partitionwise aggregation and grouping."),
925 NULL,
927 },
929 false,
930 NULL, NULL, NULL
931 },
932 {
933 {"enable_parallel_append", PGC_USERSET, QUERY_TUNING_METHOD,
934 gettext_noop("Enables the planner's use of parallel append plans."),
935 NULL,
937 },
939 true,
940 NULL, NULL, NULL
941 },
942 {
943 {"enable_parallel_hash", PGC_USERSET, QUERY_TUNING_METHOD,
944 gettext_noop("Enables the planner's use of parallel hash plans."),
945 NULL,
947 },
949 true,
950 NULL, NULL, NULL
951 },
952 {
953 {"enable_partition_pruning", PGC_USERSET, QUERY_TUNING_METHOD,
954 gettext_noop("Enables plan-time and execution-time partition pruning."),
955 gettext_noop("Allows the query planner and executor to compare partition "
956 "bounds to conditions in the query to determine which "
957 "partitions must be scanned."),
959 },
961 true,
962 NULL, NULL, NULL
963 },
964 {
965 {"enable_presorted_aggregate", PGC_USERSET, QUERY_TUNING_METHOD,
966 gettext_noop("Enables the planner's ability to produce plans that "
967 "provide presorted input for ORDER BY / DISTINCT aggregate "
968 "functions."),
969 gettext_noop("Allows the query planner to build plans that provide "
970 "presorted input for aggregate functions with an ORDER BY / "
971 "DISTINCT clause. When disabled, implicit sorts are always "
972 "performed during execution."),
974 },
976 true,
977 NULL, NULL, NULL
978 },
979 {
980 {"enable_async_append", PGC_USERSET, QUERY_TUNING_METHOD,
981 gettext_noop("Enables the planner's use of async append plans."),
982 NULL,
984 },
986 true,
987 NULL, NULL, NULL
988 },
989 {
990 {"enable_group_by_reordering", PGC_USERSET, QUERY_TUNING_METHOD,
991 gettext_noop("Enables reordering of GROUP BY keys."),
992 NULL,
994 },
996 true,
997 NULL, NULL, NULL
998 },
999 {
1000 {"enable_distinct_reordering", PGC_USERSET, QUERY_TUNING_METHOD,
1001 gettext_noop("Enables reordering of DISTINCT pathkeys."),
1002 NULL,
1004 },
1006 true,
1007 NULL, NULL, NULL
1008 },
1009 {
1011 gettext_noop("Enables genetic query optimization."),
1012 gettext_noop("This algorithm attempts to do planning without "
1013 "exhaustive searching."),
1015 },
1016 &enable_geqo,
1017 true,
1018 NULL, NULL, NULL
1019 },
1020 {
1021 /*
1022 * Not for general use --- used by SET SESSION AUTHORIZATION and SET
1023 * ROLE
1024 */
1025 {"is_superuser", PGC_INTERNAL, UNGROUPED,
1026 gettext_noop("Shows whether the current user is a superuser."),
1027 NULL,
1029 },
1031 false,
1032 NULL, NULL, NULL
1033 },
1034 {
1035 /*
1036 * This setting itself cannot be set by ALTER SYSTEM to avoid an
1037 * operator turning this setting off by using ALTER SYSTEM, without a
1038 * way to turn it back on.
1039 */
1040 {"allow_alter_system", PGC_SIGHUP, COMPAT_OPTIONS_OTHER,
1041 gettext_noop("Allows running the ALTER SYSTEM command."),
1042 gettext_noop("Can be set to off for environments where global configuration "
1043 "changes should be made using a different method."),
1045 },
1047 true,
1048 NULL, NULL, NULL
1049 },
1050 {
1052 gettext_noop("Enables advertising the server via Bonjour."),
1053 NULL
1054 },
1056 false,
1057 check_bonjour, NULL, NULL
1058 },
1059 {
1060 {"track_commit_timestamp", PGC_POSTMASTER, REPLICATION_SENDING,
1061 gettext_noop("Collects transaction commit time."),
1062 NULL
1063 },
1065 false,
1066 NULL, NULL, NULL
1067 },
1068 {
1069 {"ssl", PGC_SIGHUP, CONN_AUTH_SSL,
1070 gettext_noop("Enables SSL connections."),
1071 NULL
1072 },
1073 &EnableSSL,
1074 false,
1075 check_ssl, NULL, NULL
1076 },
1077 {
1078 {"ssl_passphrase_command_supports_reload", PGC_SIGHUP, CONN_AUTH_SSL,
1079 gettext_noop("Controls whether \"ssl_passphrase_command\" is called during server reload."),
1080 NULL
1081 },
1083 false,
1084 NULL, NULL, NULL
1085 },
1086 {
1087 {"ssl_prefer_server_ciphers", PGC_SIGHUP, CONN_AUTH_SSL,
1088 gettext_noop("Give priority to server ciphersuite order."),
1089 NULL
1090 },
1092 true,
1093 NULL, NULL, NULL
1094 },
1095 {
1096 {"fsync", PGC_SIGHUP, WAL_SETTINGS,
1097 gettext_noop("Forces synchronization of updates to disk."),
1098 gettext_noop("The server will use the fsync() system call in several places to make "
1099 "sure that updates are physically written to disk. This ensures "
1100 "that a database cluster will recover to a consistent state after "
1101 "an operating system or hardware crash.")
1102 },
1103 &enableFsync,
1104 true,
1105 NULL, NULL, NULL
1106 },
1107 {
1108 {"ignore_checksum_failure", PGC_SUSET, DEVELOPER_OPTIONS,
1109 gettext_noop("Continues processing after a checksum failure."),
1110 gettext_noop("Detection of a checksum failure normally causes PostgreSQL to "
1111 "report an error, aborting the current transaction. Setting "
1112 "ignore_checksum_failure to true causes the system to ignore the failure "
1113 "(but still report a warning), and continue processing. This "
1114 "behavior could cause crashes or other serious problems. Only "
1115 "has an effect if checksums are enabled."),
1117 },
1119 false,
1120 NULL, NULL, NULL
1121 },
1122 {
1123 {"zero_damaged_pages", PGC_SUSET, DEVELOPER_OPTIONS,
1124 gettext_noop("Continues processing past damaged page headers."),
1125 gettext_noop("Detection of a damaged page header normally causes PostgreSQL to "
1126 "report an error, aborting the current transaction. Setting "
1127 "\"zero_damaged_pages\" to true causes the system to instead report a "
1128 "warning, zero out the damaged page, and continue processing. This "
1129 "behavior will destroy data, namely all the rows on the damaged page."),
1131 },
1133 false,
1134 NULL, NULL, NULL
1135 },
1136 {
1137 {"ignore_invalid_pages", PGC_POSTMASTER, DEVELOPER_OPTIONS,
1138 gettext_noop("Continues recovery after an invalid pages failure."),
1139 gettext_noop("Detection of WAL records having references to "
1140 "invalid pages during recovery causes PostgreSQL to "
1141 "raise a PANIC-level error, aborting the recovery. "
1142 "Setting \"ignore_invalid_pages\" to true causes "
1143 "the system to ignore invalid page references "
1144 "in WAL records (but still report a warning), "
1145 "and continue recovery. This behavior may cause "
1146 "crashes, data loss, propagate or hide corruption, "
1147 "or other serious problems. Only has an effect "
1148 "during recovery or in standby mode."),
1150 },
1152 false,
1153 NULL, NULL, NULL
1154 },
1155 {
1156 {"full_page_writes", PGC_SIGHUP, WAL_SETTINGS,
1157 gettext_noop("Writes full pages to WAL when first modified after a checkpoint."),
1158 gettext_noop("A page write in process during an operating system crash might be "
1159 "only partially written to disk. During recovery, the row changes "
1160 "stored in WAL are not enough to recover. This option writes "
1161 "pages when first modified after a checkpoint to WAL so full recovery "
1162 "is possible.")
1163 },
1165 true,
1166 NULL, NULL, NULL
1167 },
1168
1169 {
1170 {"wal_log_hints", PGC_POSTMASTER, WAL_SETTINGS,
1171 gettext_noop("Writes full pages to WAL when first modified after a checkpoint, even for a non-critical modification."),
1172 NULL
1173 },
1175 false,
1176 NULL, NULL, NULL
1177 },
1178
1179 {
1180 {"wal_init_zero", PGC_SUSET, WAL_SETTINGS,
1181 gettext_noop("Writes zeroes to new WAL files before first use."),
1182 NULL
1183 },
1185 true,
1186 NULL, NULL, NULL
1187 },
1188
1189 {
1190 {"wal_recycle", PGC_SUSET, WAL_SETTINGS,
1191 gettext_noop("Recycles WAL files by renaming them."),
1192 NULL
1193 },
1194 &wal_recycle,
1195 true,
1196 NULL, NULL, NULL
1197 },
1198
1199 {
1200 {"log_checkpoints", PGC_SIGHUP, LOGGING_WHAT,
1201 gettext_noop("Logs each checkpoint."),
1202 NULL
1203 },
1205 true,
1206 NULL, NULL, NULL
1207 },
1208 {
1209 {"log_connections", PGC_SU_BACKEND, LOGGING_WHAT,
1210 gettext_noop("Logs each successful connection."),
1211 NULL
1212 },
1214 false,
1215 NULL, NULL, NULL
1216 },
1217 {
1218 {"trace_connection_negotiation", PGC_POSTMASTER, DEVELOPER_OPTIONS,
1219 gettext_noop("Logs details of pre-authentication connection handshake."),
1220 NULL,
1222 },
1224 false,
1225 NULL, NULL, NULL
1226 },
1227 {
1228 {"log_disconnections", PGC_SU_BACKEND, LOGGING_WHAT,
1229 gettext_noop("Logs end of a session, including duration."),
1230 NULL
1231 },
1233 false,
1234 NULL, NULL, NULL
1235 },
1236 {
1237 {"log_replication_commands", PGC_SUSET, LOGGING_WHAT,
1238 gettext_noop("Logs each replication command."),
1239 NULL
1240 },
1242 false,
1243 NULL, NULL, NULL
1244 },
1245 {
1246 {"debug_assertions", PGC_INTERNAL, PRESET_OPTIONS,
1247 gettext_noop("Shows whether the running server has assertion checks enabled."),
1248 NULL,
1250 },
1253 NULL, NULL, NULL
1254 },
1255
1256 {
1257 {"exit_on_error", PGC_USERSET, ERROR_HANDLING_OPTIONS,
1258 gettext_noop("Terminate session on any error."),
1259 NULL
1260 },
1262 false,
1263 NULL, NULL, NULL
1264 },
1265 {
1266 {"restart_after_crash", PGC_SIGHUP, ERROR_HANDLING_OPTIONS,
1267 gettext_noop("Reinitialize server after backend crash."),
1268 NULL
1269 },
1271 true,
1272 NULL, NULL, NULL
1273 },
1274 {
1275 {"remove_temp_files_after_crash", PGC_SIGHUP, DEVELOPER_OPTIONS,
1276 gettext_noop("Remove temporary files after backend crash."),
1277 NULL,
1279 },
1281 true,
1282 NULL, NULL, NULL
1283 },
1284 {
1285 {"send_abort_for_crash", PGC_SIGHUP, DEVELOPER_OPTIONS,
1286 gettext_noop("Send SIGABRT not SIGQUIT to child processes after backend crash."),
1287 NULL,
1289 },
1291 false,
1292 NULL, NULL, NULL
1293 },
1294 {
1295 {"send_abort_for_kill", PGC_SIGHUP, DEVELOPER_OPTIONS,
1296 gettext_noop("Send SIGABRT not SIGKILL to stuck child processes."),
1297 NULL,
1299 },
1301 false,
1302 NULL, NULL, NULL
1303 },
1304
1305 {
1306 {"log_duration", PGC_SUSET, LOGGING_WHAT,
1307 gettext_noop("Logs the duration of each completed SQL statement."),
1308 NULL
1309 },
1310 &log_duration,
1311 false,
1312 NULL, NULL, NULL
1313 },
1314#ifdef DEBUG_NODE_TESTS_ENABLED
1315 {
1316 {"debug_copy_parse_plan_trees", PGC_SUSET, DEVELOPER_OPTIONS,
1317 gettext_noop("Set this to force all parse and plan trees to be passed through "
1318 "copyObject(), to facilitate catching errors and omissions in "
1319 "copyObject()."),
1320 NULL,
1322 },
1323 &Debug_copy_parse_plan_trees,
1324/* support for legacy compile-time setting */
1325#ifdef COPY_PARSE_PLAN_TREES
1326 true,
1327#else
1328 false,
1329#endif
1330 NULL, NULL, NULL
1331 },
1332 {
1333 {"debug_write_read_parse_plan_trees", PGC_SUSET, DEVELOPER_OPTIONS,
1334 gettext_noop("Set this to force all parse and plan trees to be passed through "
1335 "outfuncs.c/readfuncs.c, to facilitate catching errors and omissions in "
1336 "those modules."),
1337 NULL,
1339 },
1340 &Debug_write_read_parse_plan_trees,
1341/* support for legacy compile-time setting */
1342#ifdef WRITE_READ_PARSE_PLAN_TREES
1343 true,
1344#else
1345 false,
1346#endif
1347 NULL, NULL, NULL
1348 },
1349 {
1350 {"debug_raw_expression_coverage_test", PGC_SUSET, DEVELOPER_OPTIONS,
1351 gettext_noop("Set this to force all raw parse trees for DML statements to be scanned "
1352 "by raw_expression_tree_walker(), to facilitate catching errors and "
1353 "omissions in that function."),
1354 NULL,
1356 },
1357 &Debug_raw_expression_coverage_test,
1358/* support for legacy compile-time setting */
1359#ifdef RAW_EXPRESSION_COVERAGE_TEST
1360 true,
1361#else
1362 false,
1363#endif
1364 NULL, NULL, NULL
1365 },
1366#endif /* DEBUG_NODE_TESTS_ENABLED */
1367 {
1368 {"debug_print_parse", PGC_USERSET, LOGGING_WHAT,
1369 gettext_noop("Logs each query's parse tree."),
1370 NULL
1371 },
1373 false,
1374 NULL, NULL, NULL
1375 },
1376 {
1377 {"debug_print_rewritten", PGC_USERSET, LOGGING_WHAT,
1378 gettext_noop("Logs each query's rewritten parse tree."),
1379 NULL
1380 },
1382 false,
1383 NULL, NULL, NULL
1384 },
1385 {
1386 {"debug_print_plan", PGC_USERSET, LOGGING_WHAT,
1387 gettext_noop("Logs each query's execution plan."),
1388 NULL
1389 },
1391 false,
1392 NULL, NULL, NULL
1393 },
1394 {
1395 {"debug_pretty_print", PGC_USERSET, LOGGING_WHAT,
1396 gettext_noop("Indents parse and plan tree displays."),
1397 NULL
1398 },
1400 true,
1401 NULL, NULL, NULL
1402 },
1403 {
1404 {"log_parser_stats", PGC_SUSET, STATS_MONITORING,
1405 gettext_noop("Writes parser performance statistics to the server log."),
1406 NULL
1407 },
1409 false,
1410 check_stage_log_stats, NULL, NULL
1411 },
1412 {
1413 {"log_planner_stats", PGC_SUSET, STATS_MONITORING,
1414 gettext_noop("Writes planner performance statistics to the server log."),
1415 NULL
1416 },
1418 false,
1419 check_stage_log_stats, NULL, NULL
1420 },
1421 {
1422 {"log_executor_stats", PGC_SUSET, STATS_MONITORING,
1423 gettext_noop("Writes executor performance statistics to the server log."),
1424 NULL
1425 },
1427 false,
1428 check_stage_log_stats, NULL, NULL
1429 },
1430 {
1431 {"log_statement_stats", PGC_SUSET, STATS_MONITORING,
1432 gettext_noop("Writes cumulative performance statistics to the server log."),
1433 NULL
1434 },
1436 false,
1437 check_log_stats, NULL, NULL
1438 },
1439#ifdef BTREE_BUILD_STATS
1440 {
1441 {"log_btree_build_stats", PGC_SUSET, DEVELOPER_OPTIONS,
1442 gettext_noop("Logs system resource usage statistics (memory and CPU) on various B-tree operations."),
1443 NULL,
1445 },
1447 false,
1448 NULL, NULL, NULL
1449 },
1450#endif
1451
1452 {
1453 {"track_activities", PGC_SUSET, STATS_CUMULATIVE,
1454 gettext_noop("Collects information about executing commands."),
1455 gettext_noop("Enables the collection of information on the currently "
1456 "executing command of each session, along with "
1457 "the time at which that command began execution.")
1458 },
1460 true,
1461 NULL, NULL, NULL
1462 },
1463 {
1464 {"track_counts", PGC_SUSET, STATS_CUMULATIVE,
1465 gettext_noop("Collects statistics on database activity."),
1466 NULL
1467 },
1469 true,
1470 NULL, NULL, NULL
1471 },
1472 {
1473 {"track_io_timing", PGC_SUSET, STATS_CUMULATIVE,
1474 gettext_noop("Collects timing statistics for database I/O activity."),
1475 NULL
1476 },
1478 false,
1479 NULL, NULL, NULL
1480 },
1481 {
1482 {"track_wal_io_timing", PGC_SUSET, STATS_CUMULATIVE,
1483 gettext_noop("Collects timing statistics for WAL I/O activity."),
1484 NULL
1485 },
1487 false,
1488 NULL, NULL, NULL
1489 },
1490
1491 {
1492 {"update_process_title", PGC_SUSET, PROCESS_TITLE,
1493 gettext_noop("Updates the process title to show the active SQL command."),
1494 gettext_noop("Enables updating of the process title every time a new SQL command is received by the server.")
1495 },
1498 NULL, NULL, NULL
1499 },
1500
1501 {
1502 {"autovacuum", PGC_SIGHUP, AUTOVACUUM,
1503 gettext_noop("Starts the autovacuum subprocess."),
1504 NULL
1505 },
1507 true,
1508 NULL, NULL, NULL
1509 },
1510
1511 {
1512 {"trace_notify", PGC_USERSET, DEVELOPER_OPTIONS,
1513 gettext_noop("Generates debugging output for LISTEN and NOTIFY."),
1514 NULL,
1516 },
1517 &Trace_notify,
1518 false,
1519 NULL, NULL, NULL
1520 },
1521
1522#ifdef LOCK_DEBUG
1523 {
1524 {"trace_locks", PGC_SUSET, DEVELOPER_OPTIONS,
1525 gettext_noop("Emits information about lock usage."),
1526 NULL,
1528 },
1529 &Trace_locks,
1530 false,
1531 NULL, NULL, NULL
1532 },
1533 {
1534 {"trace_userlocks", PGC_SUSET, DEVELOPER_OPTIONS,
1535 gettext_noop("Emits information about user lock usage."),
1536 NULL,
1538 },
1539 &Trace_userlocks,
1540 false,
1541 NULL, NULL, NULL
1542 },
1543 {
1544 {"trace_lwlocks", PGC_SUSET, DEVELOPER_OPTIONS,
1545 gettext_noop("Emits information about lightweight lock usage."),
1546 NULL,
1548 },
1549 &Trace_lwlocks,
1550 false,
1551 NULL, NULL, NULL
1552 },
1553 {
1554 {"debug_deadlocks", PGC_SUSET, DEVELOPER_OPTIONS,
1555 gettext_noop("Dumps information about all current locks when a deadlock timeout occurs."),
1556 NULL,
1558 },
1559 &Debug_deadlocks,
1560 false,
1561 NULL, NULL, NULL
1562 },
1563#endif
1564
1565 {
1566 {"log_lock_waits", PGC_SUSET, LOGGING_WHAT,
1567 gettext_noop("Logs long lock waits."),
1568 NULL
1569 },
1571 false,
1572 NULL, NULL, NULL
1573 },
1574 {
1575 {"log_recovery_conflict_waits", PGC_SIGHUP, LOGGING_WHAT,
1576 gettext_noop("Logs standby recovery conflict waits."),
1577 NULL
1578 },
1580 false,
1581 NULL, NULL, NULL
1582 },
1583 {
1584 {"log_hostname", PGC_SIGHUP, LOGGING_WHAT,
1585 gettext_noop("Logs the host name in the connection logs."),
1586 gettext_noop("By default, connection logs only show the IP address "
1587 "of the connecting host. If you want them to show the host name you "
1588 "can turn this on, but depending on your host name resolution "
1589 "setup it might impose a non-negligible performance penalty.")
1590 },
1591 &log_hostname,
1592 false,
1593 NULL, NULL, NULL
1594 },
1595 {
1596 {"transform_null_equals", PGC_USERSET, COMPAT_OPTIONS_OTHER,
1597 gettext_noop("Treats \"expr=NULL\" as \"expr IS NULL\"."),
1598 gettext_noop("When turned on, expressions of the form expr = NULL "
1599 "(or NULL = expr) are treated as expr IS NULL, that is, they "
1600 "return true if expr evaluates to the null value, and false "
1601 "otherwise. The correct behavior of expr = NULL is to always "
1602 "return null (unknown).")
1603 },
1605 false,
1606 NULL, NULL, NULL
1607 },
1608 {
1609 {"default_transaction_read_only", PGC_USERSET, CLIENT_CONN_STATEMENT,
1610 gettext_noop("Sets the default read-only status of new transactions."),
1611 NULL,
1613 },
1615 false,
1616 NULL, NULL, NULL
1617 },
1618 {
1619 {"transaction_read_only", PGC_USERSET, CLIENT_CONN_STATEMENT,
1620 gettext_noop("Sets the current transaction's read-only status."),
1621 NULL,
1623 },
1624 &XactReadOnly,
1625 false,
1626 check_transaction_read_only, NULL, NULL
1627 },
1628 {
1629 {"default_transaction_deferrable", PGC_USERSET, CLIENT_CONN_STATEMENT,
1630 gettext_noop("Sets the default deferrable status of new transactions."),
1631 NULL
1632 },
1634 false,
1635 NULL, NULL, NULL
1636 },
1637 {
1638 {"transaction_deferrable", PGC_USERSET, CLIENT_CONN_STATEMENT,
1639 gettext_noop("Whether to defer a read-only serializable transaction until it can be executed with no possible serialization failures."),
1640 NULL,
1642 },
1644 false,
1646 },
1647 {
1648 {"row_security", PGC_USERSET, CLIENT_CONN_STATEMENT,
1649 gettext_noop("Enable row security."),
1650 gettext_noop("When enabled, row security will be applied to all users.")
1651 },
1652 &row_security,
1653 true,
1654 NULL, NULL, NULL
1655 },
1656 {
1657 {"check_function_bodies", PGC_USERSET, CLIENT_CONN_STATEMENT,
1658 gettext_noop("Check routine bodies during CREATE FUNCTION and CREATE PROCEDURE."),
1659 NULL
1660 },
1662 true,
1663 NULL, NULL, NULL
1664 },
1665 {
1666 {"array_nulls", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
1667 gettext_noop("Enable input of NULL elements in arrays."),
1668 gettext_noop("When turned on, unquoted NULL in an array input "
1669 "value means a null value; "
1670 "otherwise it is taken literally.")
1671 },
1672 &Array_nulls,
1673 true,
1674 NULL, NULL, NULL
1675 },
1676
1677 /*
1678 * WITH OIDS support, and consequently default_with_oids, was removed in
1679 * PostgreSQL 12, but we tolerate the parameter being set to false to
1680 * avoid unnecessarily breaking older dump files.
1681 */
1682 {
1683 {"default_with_oids", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
1684 gettext_noop("WITH OIDS is no longer supported; this can only be false."),
1685 NULL,
1687 },
1689 false,
1690 check_default_with_oids, NULL, NULL
1691 },
1692 {
1693 {"logging_collector", PGC_POSTMASTER, LOGGING_WHERE,
1694 gettext_noop("Start a subprocess to capture stderr output and/or csvlogs into log files."),
1695 NULL
1696 },
1698 false,
1699 NULL, NULL, NULL
1700 },
1701 {
1702 {"log_truncate_on_rotation", PGC_SIGHUP, LOGGING_WHERE,
1703 gettext_noop("Truncate existing log files of same name during log rotation."),
1704 NULL
1705 },
1707 false,
1708 NULL, NULL, NULL
1709 },
1710
1711 {
1712 {"trace_sort", PGC_USERSET, DEVELOPER_OPTIONS,
1713 gettext_noop("Emit information about resource usage in sorting."),
1714 NULL,
1716 },
1717 &trace_sort,
1718 false,
1719 NULL, NULL, NULL
1720 },
1721
1722#ifdef TRACE_SYNCSCAN
1723 /* this is undocumented because not exposed in a standard build */
1724 {
1725 {"trace_syncscan", PGC_USERSET, DEVELOPER_OPTIONS,
1726 gettext_noop("Generate debugging output for synchronized scanning."),
1727 NULL,
1729 },
1730 &trace_syncscan,
1731 false,
1732 NULL, NULL, NULL
1733 },
1734#endif
1735
1736#ifdef DEBUG_BOUNDED_SORT
1737 /* this is undocumented because not exposed in a standard build */
1738 {
1739 {
1740 "optimize_bounded_sort", PGC_USERSET, QUERY_TUNING_METHOD,
1741 gettext_noop("Enable bounded sorting using heap sort."),
1742 NULL,
1744 },
1745 &optimize_bounded_sort,
1746 true,
1747 NULL, NULL, NULL
1748 },
1749#endif
1750
1751#ifdef WAL_DEBUG
1752 {
1753 {"wal_debug", PGC_SUSET, DEVELOPER_OPTIONS,
1754 gettext_noop("Emit WAL-related debugging output."),
1755 NULL,
1757 },
1758 &XLOG_DEBUG,
1759 false,
1760 NULL, NULL, NULL
1761 },
1762#endif
1763
1764 {
1765 {"integer_datetimes", PGC_INTERNAL, PRESET_OPTIONS,
1766 gettext_noop("Shows whether datetimes are integer based."),
1767 NULL,
1769 },
1771 true,
1772 NULL, NULL, NULL
1773 },
1774
1775 {
1776 {"krb_caseins_users", PGC_SIGHUP, CONN_AUTH_AUTH,
1777 gettext_noop("Sets whether Kerberos and GSSAPI user names should be treated as case-insensitive."),
1778 NULL
1779 },
1781 false,
1782 NULL, NULL, NULL
1783 },
1784
1785 {
1786 {"gss_accept_delegation", PGC_SIGHUP, CONN_AUTH_AUTH,
1787 gettext_noop("Sets whether GSSAPI delegation should be accepted from the client."),
1788 NULL
1789 },
1791 false,
1792 NULL, NULL, NULL
1793 },
1794
1795 {
1796 {"escape_string_warning", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
1797 gettext_noop("Warn about backslash escapes in ordinary string literals."),
1798 NULL
1799 },
1801 true,
1802 NULL, NULL, NULL
1803 },
1804
1805 {
1806 {"standard_conforming_strings", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
1807 gettext_noop("Causes '...' strings to treat backslashes literally."),
1808 NULL,
1810 },
1812 true,
1813 NULL, NULL, NULL
1814 },
1815
1816 {
1817 {"synchronize_seqscans", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
1818 gettext_noop("Enable synchronized sequential scans."),
1819 NULL
1820 },
1822 true,
1823 NULL, NULL, NULL
1824 },
1825
1826 {
1827 {"recovery_target_inclusive", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
1828 gettext_noop("Sets whether to include or exclude transaction with recovery target."),
1829 NULL
1830 },
1832 true,
1833 NULL, NULL, NULL
1834 },
1835
1836 {
1837 {"summarize_wal", PGC_SIGHUP, WAL_SUMMARIZATION,
1838 gettext_noop("Starts the WAL summarizer process to enable incremental backup."),
1839 NULL
1840 },
1842 false,
1843 NULL, NULL, NULL
1844 },
1845
1846 {
1847 {"hot_standby", PGC_POSTMASTER, REPLICATION_STANDBY,
1848 gettext_noop("Allows connections and queries during recovery."),
1849 NULL
1850 },
1852 true,
1853 NULL, NULL, NULL
1854 },
1855
1856 {
1857 {"hot_standby_feedback", PGC_SIGHUP, REPLICATION_STANDBY,
1858 gettext_noop("Allows feedback from a hot standby to the primary that will avoid query conflicts."),
1859 NULL
1860 },
1862 false,
1863 NULL, NULL, NULL
1864 },
1865
1866 {
1867 {"in_hot_standby", PGC_INTERNAL, PRESET_OPTIONS,
1868 gettext_noop("Shows whether hot standby is currently active."),
1869 NULL,
1871 },
1873 false,
1874 NULL, NULL, show_in_hot_standby
1875 },
1876
1877 {
1878 {"allow_system_table_mods", PGC_SUSET, DEVELOPER_OPTIONS,
1879 gettext_noop("Allows modifications of the structure of system tables."),
1880 NULL,
1882 },
1884 false,
1885 NULL, NULL, NULL
1886 },
1887
1888 {
1889 {"ignore_system_indexes", PGC_BACKEND, DEVELOPER_OPTIONS,
1890 gettext_noop("Disables reading from system indexes."),
1891 gettext_noop("It does not prevent updating the indexes, so it is safe "
1892 "to use. The worst consequence is slowness."),
1894 },
1896 false,
1897 NULL, NULL, NULL
1898 },
1899
1900 {
1901 {"allow_in_place_tablespaces", PGC_SUSET, DEVELOPER_OPTIONS,
1902 gettext_noop("Allows tablespaces directly inside pg_tblspc, for testing."),
1903 NULL,
1905 },
1907 false,
1908 NULL, NULL, NULL
1909 },
1910
1911 {
1912 {"lo_compat_privileges", PGC_SUSET, COMPAT_OPTIONS_PREVIOUS,
1913 gettext_noop("Enables backward compatibility mode for privilege checks on large objects."),
1914 gettext_noop("Skips privilege checks when reading or modifying large objects, "
1915 "for compatibility with PostgreSQL releases prior to 9.0.")
1916 },
1918 false,
1919 NULL, NULL, NULL
1920 },
1921
1922 {
1923 {"quote_all_identifiers", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
1924 gettext_noop("When generating SQL fragments, quote all identifiers."),
1925 NULL,
1926 },
1928 false,
1929 NULL, NULL, NULL
1930 },
1931
1932 {
1933 {"data_checksums", PGC_INTERNAL, PRESET_OPTIONS,
1934 gettext_noop("Shows whether data checksums are turned on for this cluster."),
1935 NULL,
1937 },
1939 false,
1940 NULL, NULL, NULL
1941 },
1942
1943 {
1944 {"syslog_sequence_numbers", PGC_SIGHUP, LOGGING_WHERE,
1945 gettext_noop("Add sequence number to syslog messages to avoid duplicate suppression."),
1946 NULL
1947 },
1949 true,
1950 NULL, NULL, NULL
1951 },
1952
1953 {
1954 {"syslog_split_messages", PGC_SIGHUP, LOGGING_WHERE,
1955 gettext_noop("Split messages sent to syslog by lines and to fit into 1024 bytes."),
1956 NULL
1957 },
1959 true,
1960 NULL, NULL, NULL
1961 },
1962
1963 {
1964 {"parallel_leader_participation", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
1965 gettext_noop("Controls whether Gather and Gather Merge also run subplans."),
1966 gettext_noop("Should gather nodes also run subplans or just gather tuples?"),
1968 },
1970 true,
1971 NULL, NULL, NULL
1972 },
1973
1974 {
1976 gettext_noop("Allow JIT compilation."),
1977 NULL,
1979 },
1980 &jit_enabled,
1981 true,
1982 NULL, NULL, NULL
1983 },
1984
1985 {
1986 {"jit_debugging_support", PGC_SU_BACKEND, DEVELOPER_OPTIONS,
1987 gettext_noop("Register JIT-compiled functions with debugger."),
1988 NULL,
1990 },
1992 false,
1993
1994 /*
1995 * This is not guaranteed to be available, but given it's a developer
1996 * oriented option, it doesn't seem worth adding code checking
1997 * availability.
1998 */
1999 NULL, NULL, NULL
2000 },
2001
2002 {
2003 {"jit_dump_bitcode", PGC_SUSET, DEVELOPER_OPTIONS,
2004 gettext_noop("Write out LLVM bitcode to facilitate JIT debugging."),
2005 NULL,
2007 },
2009 false,
2010 NULL, NULL, NULL
2011 },
2012
2013 {
2014 {"jit_expressions", PGC_USERSET, DEVELOPER_OPTIONS,
2015 gettext_noop("Allow JIT compilation of expressions."),
2016 NULL,
2018 },
2020 true,
2021 NULL, NULL, NULL
2022 },
2023
2024 {
2025 {"jit_profiling_support", PGC_SU_BACKEND, DEVELOPER_OPTIONS,
2026 gettext_noop("Register JIT-compiled functions with perf profiler."),
2027 NULL,
2029 },
2031 false,
2032
2033 /*
2034 * This is not guaranteed to be available, but given it's a developer
2035 * oriented option, it doesn't seem worth adding code checking
2036 * availability.
2037 */
2038 NULL, NULL, NULL
2039 },
2040
2041 {
2042 {"jit_tuple_deforming", PGC_USERSET, DEVELOPER_OPTIONS,
2043 gettext_noop("Allow JIT compilation of tuple deforming."),
2044 NULL,
2046 },
2048 true,
2049 NULL, NULL, NULL
2050 },
2051
2052 {
2053 {"data_sync_retry", PGC_POSTMASTER, ERROR_HANDLING_OPTIONS,
2054 gettext_noop("Whether to continue running after a failure to sync data files."),
2055 },
2057 false,
2058 NULL, NULL, NULL
2059 },
2060
2061 {
2062 {"wal_receiver_create_temp_slot", PGC_SIGHUP, REPLICATION_STANDBY,
2063 gettext_noop("Sets whether a WAL receiver should create a temporary replication slot if no permanent slot is configured."),
2064 },
2066 false,
2067 NULL, NULL, NULL
2068 },
2069
2070 {
2071 {"event_triggers", PGC_SUSET, CLIENT_CONN_STATEMENT,
2072 gettext_noop("Enables event triggers."),
2073 gettext_noop("When enabled, event triggers will fire for all applicable statements."),
2074 },
2076 true,
2077 NULL, NULL, NULL
2078 },
2079
2080 {
2081 {"sync_replication_slots", PGC_SIGHUP, REPLICATION_STANDBY,
2082 gettext_noop("Enables a physical standby to synchronize logical failover replication slots from the primary server."),
2083 },
2085 false,
2086 NULL, NULL, NULL
2087 },
2088
2089 {
2090 {"md5_password_warnings", PGC_USERSET, CONN_AUTH_AUTH,
2091 gettext_noop("Enables deprecation warnings for MD5 passwords."),
2092 },
2094 true,
2095 NULL, NULL, NULL
2096 },
2097
2098 /* End-of-list marker */
2099 {
2100 {NULL, 0, 0, NULL, NULL}, NULL, false, NULL, NULL, NULL
2101 }
2102};
2103
2104
2106{
2107 {
2108 {"archive_timeout", PGC_SIGHUP, WAL_ARCHIVING,
2109 gettext_noop("Sets the amount of time to wait before forcing a "
2110 "switch to the next WAL file."),
2111 NULL,
2113 },
2115 0, 0, INT_MAX / 2,
2116 NULL, NULL, NULL
2117 },
2118 {
2119 {"post_auth_delay", PGC_BACKEND, DEVELOPER_OPTIONS,
2120 gettext_noop("Sets the amount of time to wait after "
2121 "authentication on connection startup."),
2122 gettext_noop("This allows attaching a debugger to the process."),
2124 },
2126 0, 0, INT_MAX / 1000000,
2127 NULL, NULL, NULL
2128 },
2129 {
2130 {"default_statistics_target", PGC_USERSET, QUERY_TUNING_OTHER,
2131 gettext_noop("Sets the default statistics target."),
2132 gettext_noop("This applies to table columns that have not had a "
2133 "column-specific target set via ALTER TABLE SET STATISTICS.")
2134 },
2136 100, 1, MAX_STATISTICS_TARGET,
2137 NULL, NULL, NULL
2138 },
2139 {
2140 {"from_collapse_limit", PGC_USERSET, QUERY_TUNING_OTHER,
2141 gettext_noop("Sets the FROM-list size beyond which subqueries "
2142 "are not collapsed."),
2143 gettext_noop("The planner will merge subqueries into upper "
2144 "queries if the resulting FROM list would have no more than "
2145 "this many items."),
2147 },
2149 8, 1, INT_MAX,
2150 NULL, NULL, NULL
2151 },
2152 {
2153 {"join_collapse_limit", PGC_USERSET, QUERY_TUNING_OTHER,
2154 gettext_noop("Sets the FROM-list size beyond which JOIN "
2155 "constructs are not flattened."),
2156 gettext_noop("The planner will flatten explicit JOIN "
2157 "constructs into lists of FROM items whenever a "
2158 "list of no more than this many items would result."),
2160 },
2162 8, 1, INT_MAX,
2163 NULL, NULL, NULL
2164 },
2165 {
2166 {"geqo_threshold", PGC_USERSET, QUERY_TUNING_GEQO,
2167 gettext_noop("Sets the threshold of FROM items beyond which GEQO is used."),
2168 NULL,
2170 },
2172 12, 2, INT_MAX,
2173 NULL, NULL, NULL
2174 },
2175 {
2176 {"geqo_effort", PGC_USERSET, QUERY_TUNING_GEQO,
2177 gettext_noop("GEQO: effort is used to set the default for other GEQO parameters."),
2178 NULL,
2180 },
2181 &Geqo_effort,
2183 NULL, NULL, NULL
2184 },
2185 {
2186 {"geqo_pool_size", PGC_USERSET, QUERY_TUNING_GEQO,
2187 gettext_noop("GEQO: number of individuals in the population."),
2188 gettext_noop("Zero selects a suitable default value."),
2190 },
2192 0, 0, INT_MAX,
2193 NULL, NULL, NULL
2194 },
2195 {
2196 {"geqo_generations", PGC_USERSET, QUERY_TUNING_GEQO,
2197 gettext_noop("GEQO: number of iterations of the algorithm."),
2198 gettext_noop("Zero selects a suitable default value."),
2200 },
2202 0, 0, INT_MAX,
2203 NULL, NULL, NULL
2204 },
2205
2206 {
2207 /* This is PGC_SUSET to prevent hiding from log_lock_waits. */
2208 {"deadlock_timeout", PGC_SUSET, LOCK_MANAGEMENT,
2209 gettext_noop("Sets the time to wait on a lock before checking for deadlock."),
2210 NULL,
2212 },
2214 1000, 1, INT_MAX,
2215 NULL, NULL, NULL
2216 },
2217
2218 {
2219 {"max_standby_archive_delay", PGC_SIGHUP, REPLICATION_STANDBY,
2220 gettext_noop("Sets the maximum delay before canceling queries when a hot standby server is processing archived WAL data."),
2221 NULL,
2223 },
2225 30 * 1000, -1, INT_MAX,
2226 NULL, NULL, NULL
2227 },
2228
2229 {
2230 {"max_standby_streaming_delay", PGC_SIGHUP, REPLICATION_STANDBY,
2231 gettext_noop("Sets the maximum delay before canceling queries when a hot standby server is processing streamed WAL data."),
2232 NULL,
2234 },
2236 30 * 1000, -1, INT_MAX,
2237 NULL, NULL, NULL
2238 },
2239
2240 {
2241 {"recovery_min_apply_delay", PGC_SIGHUP, REPLICATION_STANDBY,
2242 gettext_noop("Sets the minimum delay for applying changes during recovery."),
2243 NULL,
2245 },
2247 0, 0, INT_MAX,
2248 NULL, NULL, NULL
2249 },
2250
2251 {
2252 {"wal_receiver_status_interval", PGC_SIGHUP, REPLICATION_STANDBY,
2253 gettext_noop("Sets the maximum interval between WAL receiver status reports to the sending server."),
2254 NULL,
2256 },
2258 10, 0, INT_MAX / 1000,
2259 NULL, NULL, NULL
2260 },
2261
2262 {
2263 {"wal_receiver_timeout", PGC_SIGHUP, REPLICATION_STANDBY,
2264 gettext_noop("Sets the maximum wait time to receive data from the sending server."),
2265 NULL,
2267 },
2269 60 * 1000, 0, INT_MAX,
2270 NULL, NULL, NULL
2271 },
2272
2273 {
2274 {"max_connections", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
2275 gettext_noop("Sets the maximum number of concurrent connections."),
2276 NULL
2277 },
2279 100, 1, MAX_BACKENDS,
2280 NULL, NULL, NULL
2281 },
2282
2283 {
2284 /* see max_connections */
2285 {"superuser_reserved_connections", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
2286 gettext_noop("Sets the number of connection slots reserved for superusers."),
2287 NULL
2288 },
2290 3, 0, MAX_BACKENDS,
2291 NULL, NULL, NULL
2292 },
2293
2294 {
2295 {"reserved_connections", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
2296 gettext_noop("Sets the number of connection slots reserved for roles "
2297 "with privileges of pg_use_reserved_connections."),
2298 NULL
2299 },
2301 0, 0, MAX_BACKENDS,
2302 NULL, NULL, NULL
2303 },
2304
2305 {
2306 {"min_dynamic_shared_memory", PGC_POSTMASTER, RESOURCES_MEM,
2307 gettext_noop("Amount of dynamic shared memory reserved at startup."),
2308 NULL,
2310 },
2312 0, 0, (int) Min((size_t) INT_MAX, SIZE_MAX / (1024 * 1024)),
2313 NULL, NULL, NULL
2314 },
2315
2316 /*
2317 * We sometimes multiply the number of shared buffers by two without
2318 * checking for overflow, so we mustn't allow more than INT_MAX / 2.
2319 */
2320 {
2321 {"shared_buffers", PGC_POSTMASTER, RESOURCES_MEM,
2322 gettext_noop("Sets the number of shared memory buffers used by the server."),
2323 NULL,
2325 },
2326 &NBuffers,
2327 16384, 16, INT_MAX / 2,
2328 NULL, NULL, NULL
2329 },
2330
2331 {
2332 {"vacuum_buffer_usage_limit", PGC_USERSET, RESOURCES_MEM,
2333 gettext_noop("Sets the buffer pool size for VACUUM, ANALYZE, and autovacuum."),
2334 NULL,
2336 },
2338 2048, 0, MAX_BAS_VAC_RING_SIZE_KB,
2340 },
2341
2342 {
2343 {"shared_memory_size", PGC_INTERNAL, PRESET_OPTIONS,
2344 gettext_noop("Shows the size of the server's main shared memory area (rounded up to the nearest MB)."),
2345 NULL,
2347 },
2349 0, 0, INT_MAX,
2350 NULL, NULL, NULL
2351 },
2352
2353 {
2354 {"shared_memory_size_in_huge_pages", PGC_INTERNAL, PRESET_OPTIONS,
2355 gettext_noop("Shows the number of huge pages needed for the main shared memory area."),
2356 gettext_noop("-1 indicates that the value could not be determined."),
2358 },
2360 -1, -1, INT_MAX,
2361 NULL, NULL, NULL
2362 },
2363
2364 {
2365 {"num_os_semaphores", PGC_INTERNAL, PRESET_OPTIONS,
2366 gettext_noop("Shows the number of semaphores required for the server."),
2367 NULL,
2369 },
2371 0, 0, INT_MAX,
2372 NULL, NULL, NULL
2373 },
2374
2375 {
2376 {"commit_timestamp_buffers", PGC_POSTMASTER, RESOURCES_MEM,
2377 gettext_noop("Sets the size of the dedicated buffer pool used for the commit timestamp cache."),
2378 gettext_noop("Specify 0 to have this value determined as a fraction of \"shared_buffers\"."),
2380 },
2383 check_commit_ts_buffers, NULL, NULL
2384 },
2385
2386 {
2387 {"multixact_member_buffers", PGC_POSTMASTER, RESOURCES_MEM,
2388 gettext_noop("Sets the size of the dedicated buffer pool used for the MultiXact member cache."),
2389 NULL,
2391 },
2395 },
2396
2397 {
2398 {"multixact_offset_buffers", PGC_POSTMASTER, RESOURCES_MEM,
2399 gettext_noop("Sets the size of the dedicated buffer pool used for the MultiXact offset cache."),
2400 NULL,
2402 },
2406 },
2407
2408 {
2409 {"notify_buffers", PGC_POSTMASTER, RESOURCES_MEM,
2410 gettext_noop("Sets the size of the dedicated buffer pool used for the LISTEN/NOTIFY message cache."),
2411 NULL,
2413 },
2416 check_notify_buffers, NULL, NULL
2417 },
2418
2419 {
2420 {"serializable_buffers", PGC_POSTMASTER, RESOURCES_MEM,
2421 gettext_noop("Sets the size of the dedicated buffer pool used for the serializable transaction cache."),
2422 NULL,
2424 },
2427 check_serial_buffers, NULL, NULL
2428 },
2429
2430 {
2431 {"subtransaction_buffers", PGC_POSTMASTER, RESOURCES_MEM,
2432 gettext_noop("Sets the size of the dedicated buffer pool used for the subtransaction cache."),
2433 gettext_noop("Specify 0 to have this value determined as a fraction of \"shared_buffers\"."),
2435 },
2438 check_subtrans_buffers, NULL, NULL
2439 },
2440
2441 {
2442 {"transaction_buffers", PGC_POSTMASTER, RESOURCES_MEM,
2443 gettext_noop("Sets the size of the dedicated buffer pool used for the transaction status cache."),
2444 gettext_noop("Specify 0 to have this value determined as a fraction of \"shared_buffers\"."),
2446 },
2449 check_transaction_buffers, NULL, NULL
2450 },
2451
2452 {
2453 {"temp_buffers", PGC_USERSET, RESOURCES_MEM,
2454 gettext_noop("Sets the maximum number of temporary buffers used by each session."),
2455 NULL,
2457 },
2459 1024, 100, INT_MAX / 2,
2460 check_temp_buffers, NULL, NULL
2461 },
2462
2463 {
2465 gettext_noop("Sets the TCP port the server listens on."),
2466 NULL
2467 },
2469 DEF_PGPORT, 1, 65535,
2470 NULL, NULL, NULL
2471 },
2472
2473 {
2474 {"unix_socket_permissions", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
2475 gettext_noop("Sets the access permissions of the Unix-domain socket."),
2476 gettext_noop("Unix-domain sockets use the usual Unix file system "
2477 "permission set. The parameter value is expected "
2478 "to be a numeric mode specification in the form "
2479 "accepted by the chmod and umask system calls. "
2480 "(To use the customary octal format the number must "
2481 "start with a 0 (zero).)")
2482 },
2484 0777, 0000, 0777,
2486 },
2487
2488 {
2489 {"log_file_mode", PGC_SIGHUP, LOGGING_WHERE,
2490 gettext_noop("Sets the file permissions for log files."),
2491 gettext_noop("The parameter value is expected "
2492 "to be a numeric mode specification in the form "
2493 "accepted by the chmod and umask system calls. "
2494 "(To use the customary octal format the number must "
2495 "start with a 0 (zero).)")
2496 },
2498 0600, 0000, 0777,
2499 NULL, NULL, show_log_file_mode
2500 },
2501
2502
2503 {
2504 {"data_directory_mode", PGC_INTERNAL, PRESET_OPTIONS,
2505 gettext_noop("Shows the mode of the data directory."),
2506 gettext_noop("The parameter value is a numeric mode specification "
2507 "in the form accepted by the chmod and umask system "
2508 "calls. (To use the customary octal format the number "
2509 "must start with a 0 (zero).)"),
2511 },
2513 0700, 0000, 0777,
2514 NULL, NULL, show_data_directory_mode
2515 },
2516
2517 {
2518 {"work_mem", PGC_USERSET, RESOURCES_MEM,
2519 gettext_noop("Sets the maximum memory to be used for query workspaces."),
2520 gettext_noop("This much memory can be used by each internal "
2521 "sort operation and hash table before switching to "
2522 "temporary disk files."),
2524 },
2525 &work_mem,
2526 4096, 64, MAX_KILOBYTES,
2527 NULL, NULL, NULL
2528 },
2529
2530 /*
2531 * Dynamic shared memory has a higher overhead than local memory contexts,
2532 * so when testing low-memory scenarios that could use shared memory, the
2533 * recommended minimum is 1MB.
2534 */
2535 {
2536 {"maintenance_work_mem", PGC_USERSET, RESOURCES_MEM,
2537 gettext_noop("Sets the maximum memory to be used for maintenance operations."),
2538 gettext_noop("This includes operations such as VACUUM and CREATE INDEX."),
2540 },
2542 65536, 64, MAX_KILOBYTES,
2543 NULL, NULL, NULL
2544 },
2545
2546 {
2547 {"logical_decoding_work_mem", PGC_USERSET, RESOURCES_MEM,
2548 gettext_noop("Sets the maximum memory to be used for logical decoding."),
2549 gettext_noop("This much memory can be used by each internal "
2550 "reorder buffer before spilling to disk."),
2552 },
2554 65536, 64, MAX_KILOBYTES,
2555 NULL, NULL, NULL
2556 },
2557
2558 /*
2559 * We use the hopefully-safely-small value of 100kB as the compiled-in
2560 * default for max_stack_depth. InitializeGUCOptions will increase it if
2561 * possible, depending on the actual platform-specific stack limit.
2562 */
2563 {
2564 {"max_stack_depth", PGC_SUSET, RESOURCES_MEM,
2565 gettext_noop("Sets the maximum stack depth, in kilobytes."),
2566 NULL,
2568 },
2570 100, 100, MAX_KILOBYTES,
2572 },
2573
2574 {
2575 {"temp_file_limit", PGC_SUSET, RESOURCES_DISK,
2576 gettext_noop("Limits the total size of all temporary files used by each process."),
2577 gettext_noop("-1 means no limit."),
2579 },
2581 -1, -1, INT_MAX,
2582 NULL, NULL, NULL
2583 },
2584
2585 {
2586 {"vacuum_cost_page_hit", PGC_USERSET, RESOURCES_VACUUM_DELAY,
2587 gettext_noop("Vacuum cost for a page found in the buffer cache."),
2588 NULL
2589 },
2591 1, 0, 10000,
2592 NULL, NULL, NULL
2593 },
2594
2595 {
2596 {"vacuum_cost_page_miss", PGC_USERSET, RESOURCES_VACUUM_DELAY,
2597 gettext_noop("Vacuum cost for a page not found in the buffer cache."),
2598 NULL
2599 },
2601 2, 0, 10000,
2602 NULL, NULL, NULL
2603 },
2604
2605 {
2606 {"vacuum_cost_page_dirty", PGC_USERSET, RESOURCES_VACUUM_DELAY,
2607 gettext_noop("Vacuum cost for a page dirtied by vacuum."),
2608 NULL
2609 },
2611 20, 0, 10000,
2612 NULL, NULL, NULL
2613 },
2614
2615 {
2616 {"vacuum_cost_limit", PGC_USERSET, RESOURCES_VACUUM_DELAY,
2617 gettext_noop("Vacuum cost amount available before napping."),
2618 NULL
2619 },
2621 200, 1, 10000,
2622 NULL, NULL, NULL
2623 },
2624
2625 {
2626 {"autovacuum_vacuum_cost_limit", PGC_SIGHUP, AUTOVACUUM,
2627 gettext_noop("Vacuum cost amount available before napping, for autovacuum."),
2628 NULL
2629 },
2631 -1, -1, 10000,
2632 NULL, NULL, NULL
2633 },
2634
2635 {
2636 {"max_files_per_process", PGC_POSTMASTER, RESOURCES_KERNEL,
2637 gettext_noop("Sets the maximum number of simultaneously open files for each server process."),
2638 NULL
2639 },
2641 1000, 64, INT_MAX,
2642 NULL, NULL, NULL
2643 },
2644
2645 /*
2646 * See also CheckRequiredParameterValues() if this parameter changes
2647 */
2648 {
2649 {"max_prepared_transactions", PGC_POSTMASTER, RESOURCES_MEM,
2650 gettext_noop("Sets the maximum number of simultaneously prepared transactions."),
2651 NULL
2652 },
2654 0, 0, MAX_BACKENDS,
2655 NULL, NULL, NULL
2656 },
2657
2658#ifdef LOCK_DEBUG
2659 {
2660 {"trace_lock_oidmin", PGC_SUSET, DEVELOPER_OPTIONS,
2661 gettext_noop("Sets the minimum OID of tables for tracking locks."),
2662 gettext_noop("Is used to avoid output on system tables."),
2664 },
2665 &Trace_lock_oidmin,
2666 FirstNormalObjectId, 0, INT_MAX,
2667 NULL, NULL, NULL
2668 },
2669 {
2670 {"trace_lock_table", PGC_SUSET, DEVELOPER_OPTIONS,
2671 gettext_noop("Sets the OID of the table with unconditionally lock tracing."),
2672 NULL,
2674 },
2675 &Trace_lock_table,
2676 0, 0, INT_MAX,
2677 NULL, NULL, NULL
2678 },
2679#endif
2680
2681 {
2682 {"statement_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
2683 gettext_noop("Sets the maximum allowed duration of any statement."),
2684 gettext_noop("A value of 0 turns off the timeout."),
2686 },
2688 0, 0, INT_MAX,
2689 NULL, NULL, NULL
2690 },
2691
2692 {
2693 {"lock_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
2694 gettext_noop("Sets the maximum allowed duration of any wait for a lock."),
2695 gettext_noop("A value of 0 turns off the timeout."),
2697 },
2698 &LockTimeout,
2699 0, 0, INT_MAX,
2700 NULL, NULL, NULL
2701 },
2702
2703 {
2704 {"idle_in_transaction_session_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
2705 gettext_noop("Sets the maximum allowed idle time between queries, when in a transaction."),
2706 gettext_noop("A value of 0 turns off the timeout."),
2708 },
2710 0, 0, INT_MAX,
2711 NULL, NULL, NULL
2712 },
2713
2714 {
2715 {"transaction_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
2716 gettext_noop("Sets the maximum allowed duration of any transaction within a session (not a prepared transaction)."),
2717 gettext_noop("A value of 0 turns off the timeout."),
2719 },
2721 0, 0, INT_MAX,
2722 NULL, assign_transaction_timeout, NULL
2723 },
2724
2725 {
2726 {"idle_session_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
2727 gettext_noop("Sets the maximum allowed idle time between queries, when not in a transaction."),
2728 gettext_noop("A value of 0 turns off the timeout."),
2730 },
2732 0, 0, INT_MAX,
2733 NULL, NULL, NULL
2734 },
2735
2736 {
2737 {"vacuum_freeze_min_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
2738 gettext_noop("Minimum age at which VACUUM should freeze a table row."),
2739 NULL
2740 },
2742 50000000, 0, 1000000000,
2743 NULL, NULL, NULL
2744 },
2745
2746 {
2747 {"vacuum_freeze_table_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
2748 gettext_noop("Age at which VACUUM should scan whole table to freeze tuples."),
2749 NULL
2750 },
2752 150000000, 0, 2000000000,
2753 NULL, NULL, NULL
2754 },
2755
2756 {
2757 {"vacuum_multixact_freeze_min_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
2758 gettext_noop("Minimum age at which VACUUM should freeze a MultiXactId in a table row."),
2759 NULL
2760 },
2762 5000000, 0, 1000000000,
2763 NULL, NULL, NULL
2764 },
2765
2766 {
2767 {"vacuum_multixact_freeze_table_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
2768 gettext_noop("Multixact age at which VACUUM should scan whole table to freeze tuples."),
2769 NULL
2770 },
2772 150000000, 0, 2000000000,
2773 NULL, NULL, NULL
2774 },
2775
2776 {
2777 {"vacuum_failsafe_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
2778 gettext_noop("Age at which VACUUM should trigger failsafe to avoid a wraparound outage."),
2779 NULL
2780 },
2782 1600000000, 0, 2100000000,
2783 NULL, NULL, NULL
2784 },
2785 {
2786 {"vacuum_multixact_failsafe_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
2787 gettext_noop("Multixact age at which VACUUM should trigger failsafe to avoid a wraparound outage."),
2788 NULL
2789 },
2791 1600000000, 0, 2100000000,
2792 NULL, NULL, NULL
2793 },
2794
2795 /*
2796 * See also CheckRequiredParameterValues() if this parameter changes
2797 */
2798 {
2799 {"max_locks_per_transaction", PGC_POSTMASTER, LOCK_MANAGEMENT,
2800 gettext_noop("Sets the maximum number of locks per transaction."),
2801 gettext_noop("The shared lock table is sized on the assumption that at most "
2802 "\"max_locks_per_transaction\" objects per server process or prepared "
2803 "transaction will need to be locked at any one time.")
2804 },
2806 64, 10, INT_MAX,
2807 NULL, NULL, NULL
2808 },
2809
2810 {
2811 {"max_pred_locks_per_transaction", PGC_POSTMASTER, LOCK_MANAGEMENT,
2812 gettext_noop("Sets the maximum number of predicate locks per transaction."),
2813 gettext_noop("The shared predicate lock table is sized on the assumption that "
2814 "at most \"max_pred_locks_per_transaction\" objects per server process "
2815 "or prepared transaction will need to be locked at any one time.")
2816 },
2818 64, 10, INT_MAX,
2819 NULL, NULL, NULL
2820 },
2821
2822 {
2823 {"max_pred_locks_per_relation", PGC_SIGHUP, LOCK_MANAGEMENT,
2824 gettext_noop("Sets the maximum number of predicate-locked pages and tuples per relation."),
2825 gettext_noop("If more than this total of pages and tuples in the same relation are locked "
2826 "by a connection, those locks are replaced by a relation-level lock.")
2827 },
2829 -2, INT_MIN, INT_MAX,
2830 NULL, NULL, NULL
2831 },
2832
2833 {
2834 {"max_pred_locks_per_page", PGC_SIGHUP, LOCK_MANAGEMENT,
2835 gettext_noop("Sets the maximum number of predicate-locked tuples per page."),
2836 gettext_noop("If more than this number of tuples on the same page are locked "
2837 "by a connection, those locks are replaced by a page-level lock.")
2838 },
2840 2, 0, INT_MAX,
2841 NULL, NULL, NULL
2842 },
2843
2844 {
2845 {"authentication_timeout", PGC_SIGHUP, CONN_AUTH_AUTH,
2846 gettext_noop("Sets the maximum allowed time to complete client authentication."),
2847 NULL,
2849 },
2851 60, 1, 600,
2852 NULL, NULL, NULL
2853 },
2854
2855 {
2856 /* Not for general use */
2857 {"pre_auth_delay", PGC_SIGHUP, DEVELOPER_OPTIONS,
2858 gettext_noop("Sets the amount of time to wait before "
2859 "authentication on connection startup."),
2860 gettext_noop("This allows attaching a debugger to the process."),
2862 },
2863 &PreAuthDelay,
2864 0, 0, 60,
2865 NULL, NULL, NULL
2866 },
2867
2868 {
2869 {"max_notify_queue_pages", PGC_POSTMASTER, RESOURCES_DISK,
2870 gettext_noop("Sets the maximum number of allocated pages for NOTIFY / LISTEN queue."),
2871 NULL,
2872 },
2874 1048576, 64, INT_MAX,
2875 NULL, NULL, NULL
2876 },
2877
2878 {
2879 {"wal_decode_buffer_size", PGC_POSTMASTER, WAL_RECOVERY,
2880 gettext_noop("Buffer size for reading ahead in the WAL during recovery."),
2881 gettext_noop("Maximum distance to read ahead in the WAL to prefetch referenced data blocks."),
2883 },
2885 512 * 1024, 64 * 1024, MaxAllocSize,
2886 NULL, NULL, NULL
2887 },
2888
2889 {
2890 {"wal_keep_size", PGC_SIGHUP, REPLICATION_SENDING,
2891 gettext_noop("Sets the size of WAL files held for standby servers."),
2892 NULL,
2894 },
2896 0, 0, MAX_KILOBYTES,
2897 NULL, NULL, NULL
2898 },
2899
2900 {
2901 {"min_wal_size", PGC_SIGHUP, WAL_CHECKPOINTS,
2902 gettext_noop("Sets the minimum size to shrink the WAL to."),
2903 NULL,
2905 },
2907 DEFAULT_MIN_WAL_SEGS * (DEFAULT_XLOG_SEG_SIZE / (1024 * 1024)),
2908 2, MAX_KILOBYTES,
2909 NULL, NULL, NULL
2910 },
2911
2912 {
2913 {"max_wal_size", PGC_SIGHUP, WAL_CHECKPOINTS,
2914 gettext_noop("Sets the WAL size that triggers a checkpoint."),
2915 NULL,
2917 },
2919 DEFAULT_MAX_WAL_SEGS * (DEFAULT_XLOG_SEG_SIZE / (1024 * 1024)),
2920 2, MAX_KILOBYTES,
2921 NULL, assign_max_wal_size, NULL
2922 },
2923
2924 {
2925 {"checkpoint_timeout", PGC_SIGHUP, WAL_CHECKPOINTS,
2926 gettext_noop("Sets the maximum time between automatic WAL checkpoints."),
2927 NULL,
2929 },
2931 300, 30, 86400,
2932 NULL, NULL, NULL
2933 },
2934
2935 {
2936 {"checkpoint_warning", PGC_SIGHUP, WAL_CHECKPOINTS,
2937 gettext_noop("Sets the maximum time before warning if checkpoints "
2938 "triggered by WAL volume happen too frequently."),
2939 gettext_noop("Write a message to the server log if checkpoints "
2940 "caused by the filling of WAL segment files happen more "
2941 "frequently than this amount of time. "
2942 "Zero turns off the warning."),
2944 },
2946 30, 0, INT_MAX,
2947 NULL, NULL, NULL
2948 },
2949
2950 {
2951 {"checkpoint_flush_after", PGC_SIGHUP, WAL_CHECKPOINTS,
2952 gettext_noop("Number of pages after which previously performed writes are flushed to disk."),
2953 NULL,
2955 },
2958 NULL, NULL, NULL
2959 },
2960
2961 {
2962 {"wal_buffers", PGC_POSTMASTER, WAL_SETTINGS,
2963 gettext_noop("Sets the number of disk-page buffers in shared memory for WAL."),
2964 gettext_noop("Specify -1 to have this value determined as a fraction of \"shared_buffers\"."),
2966 },
2967 &XLOGbuffers,
2968 -1, -1, (INT_MAX / XLOG_BLCKSZ),
2969 check_wal_buffers, NULL, NULL
2970 },
2971
2972 {
2973 {"wal_writer_delay", PGC_SIGHUP, WAL_SETTINGS,
2974 gettext_noop("Time between WAL flushes performed in the WAL writer."),
2975 NULL,
2977 },
2979 200, 1, 10000,
2980 NULL, NULL, NULL
2981 },
2982
2983 {
2984 {"wal_writer_flush_after", PGC_SIGHUP, WAL_SETTINGS,
2985 gettext_noop("Amount of WAL written out by WAL writer that triggers a flush."),
2986 NULL,
2988 },
2991 NULL, NULL, NULL
2992 },
2993
2994 {
2995 {"wal_skip_threshold", PGC_USERSET, WAL_SETTINGS,
2996 gettext_noop("Minimum size of new file to fsync instead of writing WAL."),
2997 NULL,
2999 },
3001 2048, 0, MAX_KILOBYTES,
3002 NULL, NULL, NULL
3003 },
3004
3005 {
3006 {"max_wal_senders", PGC_POSTMASTER, REPLICATION_SENDING,
3007 gettext_noop("Sets the maximum number of simultaneously running WAL sender processes."),
3008 NULL
3009 },
3011 10, 0, MAX_BACKENDS,
3012 NULL, NULL, NULL
3013 },
3014
3015 {
3016 /* see max_wal_senders */
3017 {"max_replication_slots", PGC_POSTMASTER, REPLICATION_SENDING,
3018 gettext_noop("Sets the maximum number of simultaneously defined replication slots."),
3019 NULL
3020 },
3022 10, 0, MAX_BACKENDS /* XXX? */ ,
3023 NULL, NULL, NULL
3024 },
3025
3026 {
3027 {"max_slot_wal_keep_size", PGC_SIGHUP, REPLICATION_SENDING,
3028 gettext_noop("Sets the maximum WAL size that can be reserved by replication slots."),
3029 gettext_noop("Replication slots will be marked as failed, and segments released "
3030 "for deletion or recycling, if this much space is occupied by WAL "
3031 "on disk."),
3033 },
3035 -1, -1, MAX_KILOBYTES,
3037 },
3038
3039 {
3040 {"wal_sender_timeout", PGC_USERSET, REPLICATION_SENDING,
3041 gettext_noop("Sets the maximum time to wait for WAL replication."),
3042 NULL,
3044 },
3046 60 * 1000, 0, INT_MAX,
3047 NULL, NULL, NULL
3048 },
3049
3050 {
3051 {"commit_delay", PGC_SUSET, WAL_SETTINGS,
3052 gettext_noop("Sets the delay in microseconds between transaction commit and "
3053 "flushing WAL to disk."),
3054 NULL
3055 /* we have no microseconds designation, so can't supply units here */
3056 },
3057 &CommitDelay,
3058 0, 0, 100000,
3059 NULL, NULL, NULL
3060 },
3061
3062 {
3063 {"commit_siblings", PGC_USERSET, WAL_SETTINGS,
3064 gettext_noop("Sets the minimum number of concurrent open transactions "
3065 "required before performing \"commit_delay\"."),
3066 NULL
3067 },
3069 5, 0, 1000,
3070 NULL, NULL, NULL
3071 },
3072
3073 {
3074 {"extra_float_digits", PGC_USERSET, CLIENT_CONN_LOCALE,
3075 gettext_noop("Sets the number of digits displayed for floating-point values."),
3076 gettext_noop("This affects real, double precision, and geometric data types. "
3077 "A zero or negative parameter value is added to the standard "
3078 "number of digits (FLT_DIG or DBL_DIG as appropriate). "
3079 "Any value greater than zero selects precise output mode.")
3080 },
3082 1, -15, 3,
3083 NULL, NULL, NULL
3084 },
3085
3086 {
3087 {"log_min_duration_sample", PGC_SUSET, LOGGING_WHEN,
3088 gettext_noop("Sets the minimum execution time above which "
3089 "a sample of statements will be logged."
3090 " Sampling is determined by \"log_statement_sample_rate\"."),
3091 gettext_noop("Zero logs a sample of all queries. -1 turns this feature off."),
3093 },
3095 -1, -1, INT_MAX,
3096 NULL, NULL, NULL
3097 },
3098
3099 {
3100 {"log_min_duration_statement", PGC_SUSET, LOGGING_WHEN,
3101 gettext_noop("Sets the minimum execution time above which "
3102 "all statements will be logged."),
3103 gettext_noop("Zero prints all queries. -1 turns this feature off."),
3105 },
3107 -1, -1, INT_MAX,
3108 NULL, NULL, NULL
3109 },
3110
3111 {
3112 {"log_autovacuum_min_duration", PGC_SIGHUP, LOGGING_WHAT,
3113 gettext_noop("Sets the minimum execution time above which "
3114 "autovacuum actions will be logged."),
3115 gettext_noop("Zero prints all actions. -1 turns autovacuum logging off."),
3117 },
3119 600000, -1, INT_MAX,
3120 NULL, NULL, NULL
3121 },
3122
3123 {
3124 {"log_parameter_max_length", PGC_SUSET, LOGGING_WHAT,
3125 gettext_noop("Sets the maximum length in bytes of data logged for bind "
3126 "parameter values when logging statements."),
3127 gettext_noop("-1 to print values in full."),
3129 },
3131 -1, -1, INT_MAX / 2,
3132 NULL, NULL, NULL
3133 },
3134
3135 {
3136 {"log_parameter_max_length_on_error", PGC_USERSET, LOGGING_WHAT,
3137 gettext_noop("Sets the maximum length in bytes of data logged for bind "
3138 "parameter values when logging statements, on error."),
3139 gettext_noop("-1 to print values in full."),
3141 },
3143 0, -1, INT_MAX / 2,
3144 NULL, NULL, NULL
3145 },
3146
3147 {
3148 {"bgwriter_delay", PGC_SIGHUP, RESOURCES_BGWRITER,
3149 gettext_noop("Background writer sleep time between rounds."),
3150 NULL,
3152 },
3154 200, 10, 10000,
3155 NULL, NULL, NULL
3156 },
3157
3158 {
3159 {"bgwriter_lru_maxpages", PGC_SIGHUP, RESOURCES_BGWRITER,
3160 gettext_noop("Background writer maximum number of LRU pages to flush per round."),
3161 NULL
3162 },
3164 100, 0, INT_MAX / 2, /* Same upper limit as shared_buffers */
3165 NULL, NULL, NULL
3166 },
3167
3168 {
3169 {"bgwriter_flush_after", PGC_SIGHUP, RESOURCES_BGWRITER,
3170 gettext_noop("Number of pages after which previously performed writes are flushed to disk."),
3171 NULL,
3173 },
3176 NULL, NULL, NULL
3177 },
3178
3179 {
3180 {"effective_io_concurrency",
3183 gettext_noop("Number of simultaneous requests that can be handled efficiently by the disk subsystem."),
3184 NULL,
3186 },
3191 },
3192
3193 {
3194 {"maintenance_io_concurrency",
3197 gettext_noop("A variant of \"effective_io_concurrency\" that is used for maintenance work."),
3198 NULL,
3200 },
3205 NULL
3206 },
3207
3208 {
3209 {"io_combine_limit",
3212 gettext_noop("Limit on the size of data reads and writes."),
3213 NULL,
3215 },
3219 NULL, NULL, NULL
3220 },
3221
3222 {
3223 {"backend_flush_after", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
3224 gettext_noop("Number of pages after which previously performed writes are flushed to disk."),
3225 NULL,
3227 },
3230 NULL, NULL, NULL
3231 },
3232
3233 {
3234 {"max_worker_processes",
3237 gettext_noop("Maximum number of concurrent worker processes."),
3238 NULL,
3239 },
3241 8, 0, MAX_BACKENDS,
3242 NULL, NULL, NULL
3243 },
3244
3245 {
3246 {"max_logical_replication_workers",
3249 gettext_noop("Maximum number of logical replication worker processes."),
3250 NULL,
3251 },
3253 4, 0, MAX_BACKENDS,
3254 NULL, NULL, NULL
3255 },
3256
3257 {
3258 {"max_sync_workers_per_subscription",
3259 PGC_SIGHUP,
3261 gettext_noop("Maximum number of table synchronization workers per subscription."),
3262 NULL,
3263 },
3265 2, 0, MAX_BACKENDS,
3266 NULL, NULL, NULL
3267 },
3268
3269 {
3270 {"max_parallel_apply_workers_per_subscription",
3271 PGC_SIGHUP,
3273 gettext_noop("Maximum number of parallel apply workers per subscription."),
3274 NULL,
3275 },
3278 NULL, NULL, NULL
3279 },
3280
3281 {
3282 {"log_rotation_age", PGC_SIGHUP, LOGGING_WHERE,
3283 gettext_noop("Sets the amount of time to wait before forcing "
3284 "log file rotation."),
3285 NULL,
3287 },
3290 NULL, NULL, NULL
3291 },
3292
3293 {
3294 {"log_rotation_size", PGC_SIGHUP, LOGGING_WHERE,
3295 gettext_noop("Sets the maximum size a log file can reach before "
3296 "being rotated."),
3297 NULL,
3299 },
3301 10 * 1024, 0, INT_MAX / 1024,
3302 NULL, NULL, NULL
3303 },
3304
3305 {
3306 {"max_function_args", PGC_INTERNAL, PRESET_OPTIONS,
3307 gettext_noop("Shows the maximum number of function arguments."),
3308 NULL,
3310 },
3313 NULL, NULL, NULL
3314 },
3315
3316 {
3317 {"max_index_keys", PGC_INTERNAL, PRESET_OPTIONS,
3318 gettext_noop("Shows the maximum number of index keys."),
3319 NULL,
3321 },
3324 NULL, NULL, NULL
3325 },
3326
3327 {
3328 {"max_identifier_length", PGC_INTERNAL, PRESET_OPTIONS,
3329 gettext_noop("Shows the maximum identifier length."),
3330 NULL,
3332 },
3334 NAMEDATALEN - 1, NAMEDATALEN - 1, NAMEDATALEN - 1,
3335 NULL, NULL, NULL
3336 },
3337
3338 {
3339 {"block_size", PGC_INTERNAL, PRESET_OPTIONS,
3340 gettext_noop("Shows the size of a disk block."),
3341 NULL,
3343 },
3344 &block_size,
3345 BLCKSZ, BLCKSZ, BLCKSZ,
3346 NULL, NULL, NULL
3347 },
3348
3349 {
3350 {"segment_size", PGC_INTERNAL, PRESET_OPTIONS,
3351 gettext_noop("Shows the number of pages per disk file."),
3352 NULL,
3354 },
3355 &segment_size,
3356 RELSEG_SIZE, RELSEG_SIZE, RELSEG_SIZE,
3357 NULL, NULL, NULL
3358 },
3359
3360 {
3361 {"wal_block_size", PGC_INTERNAL, PRESET_OPTIONS,
3362 gettext_noop("Shows the block size in the write ahead log."),
3363 NULL,
3365 },
3367 XLOG_BLCKSZ, XLOG_BLCKSZ, XLOG_BLCKSZ,
3368 NULL, NULL, NULL
3369 },
3370
3371 {
3372 {"wal_retrieve_retry_interval", PGC_SIGHUP, REPLICATION_STANDBY,
3373 gettext_noop("Sets the time to wait before retrying to retrieve WAL "
3374 "after a failed attempt."),
3375 NULL,
3377 },
3379 5000, 1, INT_MAX,
3380 NULL, NULL, NULL
3381 },
3382
3383 {
3384 {"wal_segment_size", PGC_INTERNAL, PRESET_OPTIONS,
3385 gettext_noop("Shows the size of write ahead log segments."),
3386 NULL,
3388 },
3393 check_wal_segment_size, NULL, NULL
3394 },
3395
3396 {
3397 {"wal_summary_keep_time", PGC_SIGHUP, WAL_SUMMARIZATION,
3398 gettext_noop("Time for which WAL summary files should be kept."),
3399 NULL,
3401 },
3403 10 * HOURS_PER_DAY * MINS_PER_HOUR, /* 10 days */
3404 0,
3405 INT_MAX / SECS_PER_MINUTE,
3406 NULL, NULL, NULL
3407 },
3408
3409 {
3410 {"autovacuum_naptime", PGC_SIGHUP, AUTOVACUUM,
3411 gettext_noop("Time to sleep between autovacuum runs."),
3412 NULL,
3414 },
3416 60, 1, INT_MAX / 1000,
3417 NULL, NULL, NULL
3418 },
3419 {
3420 {"autovacuum_vacuum_threshold", PGC_SIGHUP, AUTOVACUUM,
3421 gettext_noop("Minimum number of tuple updates or deletes prior to vacuum."),
3422 NULL
3423 },
3425 50, 0, INT_MAX,
3426 NULL, NULL, NULL
3427 },
3428 {
3429 {"autovacuum_vacuum_insert_threshold", PGC_SIGHUP, AUTOVACUUM,
3430 gettext_noop("Minimum number of tuple inserts prior to vacuum, or -1 to disable insert vacuums."),
3431 NULL
3432 },
3434 1000, -1, INT_MAX,
3435 NULL, NULL, NULL
3436 },
3437 {
3438 {"autovacuum_analyze_threshold", PGC_SIGHUP, AUTOVACUUM,
3439 gettext_noop("Minimum number of tuple inserts, updates, or deletes prior to analyze."),
3440 NULL
3441 },
3443 50, 0, INT_MAX,
3444 NULL, NULL, NULL
3445 },
3446 {
3447 /* see varsup.c for why this is PGC_POSTMASTER not PGC_SIGHUP */
3448 {"autovacuum_freeze_max_age", PGC_POSTMASTER, AUTOVACUUM,
3449 gettext_noop("Age at which to autovacuum a table to prevent transaction ID wraparound."),
3450 NULL
3451 },
3453
3454 /* see vacuum_failsafe_age if you change the upper-limit value. */
3455 200000000, 100000, 2000000000,
3456 NULL, NULL, NULL
3457 },
3458 {
3459 /* see multixact.c for why this is PGC_POSTMASTER not PGC_SIGHUP */
3460 {"autovacuum_multixact_freeze_max_age", PGC_POSTMASTER, AUTOVACUUM,
3461 gettext_noop("Multixact age at which to autovacuum a table to prevent multixact wraparound."),
3462 NULL
3463 },
3465 400000000, 10000, 2000000000,
3466 NULL, NULL, NULL
3467 },
3468 {
3469 /* see max_connections */
3470 {"autovacuum_max_workers", PGC_POSTMASTER, AUTOVACUUM,
3471 gettext_noop("Sets the maximum number of simultaneously running autovacuum worker processes."),
3472 NULL
3473 },
3475 3, 1, MAX_BACKENDS,
3476 NULL, NULL, NULL
3477 },
3478
3479 {
3480 {"max_parallel_maintenance_workers", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
3481 gettext_noop("Sets the maximum number of parallel processes per maintenance operation."),
3482 NULL
3483 },
3486 NULL, NULL, NULL
3487 },
3488
3489 {
3490 {"max_parallel_workers_per_gather", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
3491 gettext_noop("Sets the maximum number of parallel processes per executor node."),
3492 NULL,
3494 },
3497 NULL, NULL, NULL
3498 },
3499
3500 {
3501 {"max_parallel_workers", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
3502 gettext_noop("Sets the maximum number of parallel workers that can be active at one time."),
3503 NULL,
3505 },
3508 NULL, NULL, NULL
3509 },
3510
3511 {
3512 {"autovacuum_work_mem", PGC_SIGHUP, RESOURCES_MEM,
3513 gettext_noop("Sets the maximum memory to be used by each autovacuum worker process."),
3514 NULL,
3516 },
3518 -1, -1, MAX_KILOBYTES,
3519 check_autovacuum_work_mem, NULL, NULL
3520 },
3521
3522 {
3523 {"tcp_keepalives_idle", PGC_USERSET, CONN_AUTH_TCP,
3524 gettext_noop("Time between issuing TCP keepalives."),
3525 gettext_noop("A value of 0 uses the system default."),
3527 },
3529 0, 0, INT_MAX,
3531 },
3532
3533 {
3534 {"tcp_keepalives_interval", PGC_USERSET, CONN_AUTH_TCP,
3535 gettext_noop("Time between TCP keepalive retransmits."),
3536 gettext_noop("A value of 0 uses the system default."),
3538 },
3540 0, 0, INT_MAX,
3542 },
3543
3544 {
3545 {"ssl_renegotiation_limit", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
3546 gettext_noop("SSL renegotiation is no longer supported; this can only be 0."),
3547 NULL,
3549 },
3551 0, 0, 0,
3552 NULL, NULL, NULL
3553 },
3554
3555 {
3556 {"tcp_keepalives_count", PGC_USERSET, CONN_AUTH_TCP,
3557 gettext_noop("Maximum number of TCP keepalive retransmits."),
3558 gettext_noop("Number of consecutive keepalive retransmits that can be "
3559 "lost before a connection is considered dead. A value of 0 uses the "
3560 "system default."),
3561 },
3563 0, 0, INT_MAX,
3565 },
3566
3567 {
3568 {"gin_fuzzy_search_limit", PGC_USERSET, CLIENT_CONN_OTHER,
3569 gettext_noop("Sets the maximum allowed result for exact search by GIN."),
3570 NULL,
3571 0
3572 },
3574 0, 0, INT_MAX,
3575 NULL, NULL, NULL
3576 },
3577
3578 {
3579 {"effective_cache_size", PGC_USERSET, QUERY_TUNING_COST,
3580 gettext_noop("Sets the planner's assumption about the total size of the data caches."),
3581 gettext_noop("That is, the total size of the caches (kernel cache and shared buffers) used for PostgreSQL data files. "
3582 "This is measured in disk pages, which are normally 8 kB each."),
3584 },
3586 DEFAULT_EFFECTIVE_CACHE_SIZE, 1, INT_MAX,
3587 NULL, NULL, NULL
3588 },
3589
3590 {
3591 {"min_parallel_table_scan_size", PGC_USERSET, QUERY_TUNING_COST,
3592 gettext_noop("Sets the minimum amount of table data for a parallel scan."),
3593 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."),
3595 },
3597 (8 * 1024 * 1024) / BLCKSZ, 0, INT_MAX / 3,
3598 NULL, NULL, NULL
3599 },
3600
3601 {
3602 {"min_parallel_index_scan_size", PGC_USERSET, QUERY_TUNING_COST,
3603 gettext_noop("Sets the minimum amount of index data for a parallel scan."),
3604 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."),
3606 },
3608 (512 * 1024) / BLCKSZ, 0, INT_MAX / 3,
3609 NULL, NULL, NULL
3610 },
3611
3612 {
3613 /* Can't be set in postgresql.conf */
3614 {"server_version_num", PGC_INTERNAL, PRESET_OPTIONS,
3615 gettext_noop("Shows the server version as an integer."),
3616 NULL,
3618 },
3620 PG_VERSION_NUM, PG_VERSION_NUM, PG_VERSION_NUM,
3621 NULL, NULL, NULL
3622 },
3623
3624 {
3625 {"log_temp_files", PGC_SUSET, LOGGING_WHAT,
3626 gettext_noop("Log the use of temporary files larger than this number of kilobytes."),
3627 gettext_noop("Zero logs all files. The default is -1 (turning this feature off)."),
3629 },
3631 -1, -1, INT_MAX,
3632 NULL, NULL, NULL
3633 },
3634
3635 {
3636 {"track_activity_query_size", PGC_POSTMASTER, STATS_CUMULATIVE,
3637 gettext_noop("Sets the size reserved for pg_stat_activity.query, in bytes."),
3638 NULL,
3640 },
3642 1024, 100, 1048576,
3643 NULL, NULL, NULL
3644 },
3645
3646 {
3647 {"gin_pending_list_limit", PGC_USERSET, CLIENT_CONN_STATEMENT,
3648 gettext_noop("Sets the maximum size of the pending list for GIN index."),
3649 NULL,
3651 },
3653 4096, 64, MAX_KILOBYTES,
3654 NULL, NULL, NULL
3655 },
3656
3657 {
3658 {"tcp_user_timeout", PGC_USERSET, CONN_AUTH_TCP,
3659 gettext_noop("TCP user timeout."),
3660 gettext_noop("A value of 0 uses the system default."),
3662 },
3664 0, 0, INT_MAX,
3666 },
3667
3668 {
3669 {"huge_page_size", PGC_POSTMASTER, RESOURCES_MEM,
3670 gettext_noop("The size of huge page that should be requested."),
3671 NULL,
3673 },
3675 0, 0, INT_MAX,
3676 check_huge_page_size, NULL, NULL
3677 },
3678
3679 {
3680 {"debug_discard_caches", PGC_SUSET, DEVELOPER_OPTIONS,
3681 gettext_noop("Aggressively flush system caches for debugging purposes."),
3682 NULL,
3684 },
3686#ifdef DISCARD_CACHES_ENABLED
3687 /* Set default based on older compile-time-only cache clobber macros */
3688#if defined(CLOBBER_CACHE_RECURSIVELY)
3689 3,
3690#elif defined(CLOBBER_CACHE_ALWAYS)
3691 1,
3692#else
3693 0,
3694#endif
3695 0, 5,
3696#else /* not DISCARD_CACHES_ENABLED */
3697 0, 0, 0,
3698#endif /* not DISCARD_CACHES_ENABLED */
3699 NULL, NULL, NULL
3700 },
3701
3702 {
3703 {"client_connection_check_interval", PGC_USERSET, CONN_AUTH_TCP,
3704 gettext_noop("Sets the time interval between checks for disconnection while running queries."),
3705 NULL,
3707 },
3709 0, 0, INT_MAX,
3711 },
3712
3713 {
3714 {"log_startup_progress_interval", PGC_SIGHUP, LOGGING_WHEN,
3715 gettext_noop("Time between progress updates for "
3716 "long-running startup operations."),
3717 gettext_noop("0 turns this feature off."),
3719 },
3721 10000, 0, INT_MAX,
3722 NULL, NULL, NULL
3723 },
3724
3725 {
3726 {"scram_iterations", PGC_USERSET, CONN_AUTH_AUTH,
3727 gettext_noop("Sets the iteration count for SCRAM secret generation."),
3728 NULL,
3730 },
3733 NULL, NULL, NULL
3734 },
3735
3736 /* End-of-list marker */
3737 {
3738 {NULL, 0, 0, NULL, NULL}, NULL, 0, 0, 0, NULL, NULL, NULL
3739 }
3740};
3741
3742
3744{
3745 {
3746 {"seq_page_cost", PGC_USERSET, QUERY_TUNING_COST,
3747 gettext_noop("Sets the planner's estimate of the cost of a "
3748 "sequentially fetched disk page."),
3749 NULL,
3751 },
3753 DEFAULT_SEQ_PAGE_COST, 0, DBL_MAX,
3754 NULL, NULL, NULL
3755 },
3756 {
3757 {"random_page_cost", PGC_USERSET, QUERY_TUNING_COST,
3758 gettext_noop("Sets the planner's estimate of the cost of a "
3759 "nonsequentially fetched disk page."),
3760 NULL,
3762 },
3764 DEFAULT_RANDOM_PAGE_COST, 0, DBL_MAX,
3765 NULL, NULL, NULL
3766 },
3767 {
3768 {"cpu_tuple_cost", PGC_USERSET, QUERY_TUNING_COST,
3769 gettext_noop("Sets the planner's estimate of the cost of "
3770 "processing each tuple (row)."),
3771 NULL,
3773 },
3775 DEFAULT_CPU_TUPLE_COST, 0, DBL_MAX,
3776 NULL, NULL, NULL
3777 },
3778 {
3779 {"cpu_index_tuple_cost", PGC_USERSET, QUERY_TUNING_COST,
3780 gettext_noop("Sets the planner's estimate of the cost of "
3781 "processing each index entry during an index scan."),
3782 NULL,
3784 },
3786 DEFAULT_CPU_INDEX_TUPLE_COST, 0, DBL_MAX,
3787 NULL, NULL, NULL
3788 },
3789 {
3790 {"cpu_operator_cost", PGC_USERSET, QUERY_TUNING_COST,
3791 gettext_noop("Sets the planner's estimate of the cost of "
3792 "processing each operator or function call."),
3793 NULL,
3795 },
3797 DEFAULT_CPU_OPERATOR_COST, 0, DBL_MAX,
3798 NULL, NULL, NULL
3799 },
3800 {
3801 {"parallel_tuple_cost", PGC_USERSET, QUERY_TUNING_COST,
3802 gettext_noop("Sets the planner's estimate of the cost of "
3803 "passing each tuple (row) from worker to leader backend."),
3804 NULL,
3806 },
3808 DEFAULT_PARALLEL_TUPLE_COST, 0, DBL_MAX,
3809 NULL, NULL, NULL
3810 },
3811 {
3812 {"parallel_setup_cost", PGC_USERSET, QUERY_TUNING_COST,
3813 gettext_noop("Sets the planner's estimate of the cost of "
3814 "starting up worker processes for parallel query."),
3815 NULL,
3817 },
3819 DEFAULT_PARALLEL_SETUP_COST, 0, DBL_MAX,
3820 NULL, NULL, NULL
3821 },
3822
3823 {
3824 {"jit_above_cost", PGC_USERSET, QUERY_TUNING_COST,
3825 gettext_noop("Perform JIT compilation if query is more expensive."),
3826 gettext_noop("-1 disables JIT compilation."),
3828 },
3830 100000, -1, DBL_MAX,
3831 NULL, NULL, NULL
3832 },
3833
3834 {
3835 {"jit_optimize_above_cost", PGC_USERSET, QUERY_TUNING_COST,
3836 gettext_noop("Optimize JIT-compiled functions if query is more expensive."),
3837 gettext_noop("-1 disables optimization."),
3839 },
3841 500000, -1, DBL_MAX,
3842 NULL, NULL, NULL
3843 },
3844
3845 {
3846 {"jit_inline_above_cost", PGC_USERSET, QUERY_TUNING_COST,
3847 gettext_noop("Perform JIT inlining if query is more expensive."),
3848 gettext_noop("-1 disables inlining."),
3850 },
3852 500000, -1, DBL_MAX,
3853 NULL, NULL, NULL
3854 },
3855
3856 {
3857 {"cursor_tuple_fraction", PGC_USERSET, QUERY_TUNING_OTHER,
3858 gettext_noop("Sets the planner's estimate of the fraction of "
3859 "a cursor's rows that will be retrieved."),
3860 NULL,
3862 },
3865 NULL, NULL, NULL
3866 },
3867
3868 {
3869 {"recursive_worktable_factor", PGC_USERSET, QUERY_TUNING_OTHER,
3870 gettext_noop("Sets the planner's estimate of the average size "
3871 "of a recursive query's working table."),
3872 NULL,
3874 },
3876 DEFAULT_RECURSIVE_WORKTABLE_FACTOR, 0.001, 1000000.0,
3877 NULL, NULL, NULL
3878 },
3879
3880 {
3881 {"geqo_selection_bias", PGC_USERSET, QUERY_TUNING_GEQO,
3882 gettext_noop("GEQO: selective pressure within the population."),
3883 NULL,
3885 },
3889 NULL, NULL, NULL
3890 },
3891 {
3892 {"geqo_seed", PGC_USERSET, QUERY_TUNING_GEQO,
3893 gettext_noop("GEQO: seed for random path selection."),
3894 NULL,
3896 },
3897 &Geqo_seed,
3898 0.0, 0.0, 1.0,
3899 NULL, NULL, NULL
3900 },
3901
3902 {
3903 {"hash_mem_multiplier", PGC_USERSET, RESOURCES_MEM,
3904 gettext_noop("Multiple of \"work_mem\" to use for hash tables."),
3905 NULL,
3907 },
3909 2.0, 1.0, 1000.0,
3910 NULL, NULL, NULL
3911 },
3912
3913 {
3914 {"bgwriter_lru_multiplier", PGC_SIGHUP, RESOURCES_BGWRITER,
3915 gettext_noop("Multiple of the average buffer usage to free per round."),
3916 NULL
3917 },
3919 2.0, 0.0, 10.0,
3920 NULL, NULL, NULL
3921 },
3922
3923 {
3924 {"seed", PGC_USERSET, UNGROUPED,
3925 gettext_noop("Sets the seed for random-number generation."),
3926 NULL,
3928 },
3930 0.0, -1.0, 1.0,
3932 },
3933
3934 {
3935 {"vacuum_cost_delay", PGC_USERSET, RESOURCES_VACUUM_DELAY,
3936 gettext_noop("Vacuum cost delay in milliseconds."),
3937 NULL,
3939 },
3941 0, 0, 100,
3942 NULL, NULL, NULL
3943 },
3944
3945 {
3946 {"autovacuum_vacuum_cost_delay", PGC_SIGHUP, AUTOVACUUM,
3947 gettext_noop("Vacuum cost delay in milliseconds, for autovacuum."),
3948 NULL,
3950 },
3952 2, -1, 100,
3953 NULL, NULL, NULL
3954 },
3955
3956 {
3957 {"autovacuum_vacuum_scale_factor", PGC_SIGHUP, AUTOVACUUM,
3958 gettext_noop("Number of tuple updates or deletes prior to vacuum as a fraction of reltuples."),
3959 NULL
3960 },
3962 0.2, 0.0, 100.0,
3963 NULL, NULL, NULL
3964 },
3965
3966 {
3967 {"autovacuum_vacuum_insert_scale_factor", PGC_SIGHUP, AUTOVACUUM,
3968 gettext_noop("Number of tuple inserts prior to vacuum as a fraction of reltuples."),
3969 NULL
3970 },
3972 0.2, 0.0, 100.0,
3973 NULL, NULL, NULL
3974 },
3975
3976 {
3977 {"autovacuum_analyze_scale_factor", PGC_SIGHUP, AUTOVACUUM,
3978 gettext_noop("Number of tuple inserts, updates, or deletes prior to analyze as a fraction of reltuples."),
3979 NULL
3980 },
3982 0.1, 0.0, 100.0,
3983 NULL, NULL, NULL
3984 },
3985
3986 {
3987 {"checkpoint_completion_target", PGC_SIGHUP, WAL_CHECKPOINTS,
3988 gettext_noop("Time spent flushing dirty buffers during checkpoint, as fraction of checkpoint interval."),
3989 NULL
3990 },
3992 0.9, 0.0, 1.0,
3994 },
3995
3996 {
3997 {"log_statement_sample_rate", PGC_SUSET, LOGGING_WHEN,
3998 gettext_noop("Fraction of statements exceeding \"log_min_duration_sample\" to be logged."),
3999 gettext_noop("Use a value between 0.0 (never log) and 1.0 (always log).")
4000 },
4002 1.0, 0.0, 1.0,
4003 NULL, NULL, NULL
4004 },
4005
4006 {
4007 {"log_transaction_sample_rate", PGC_SUSET, LOGGING_WHEN,
4008 gettext_noop("Sets the fraction of transactions from which to log all statements."),
4009 gettext_noop("Use a value between 0.0 (never log) and 1.0 (log all "
4010 "statements for all transactions).")
4011 },
4013 0.0, 0.0, 1.0,
4014 NULL, NULL, NULL
4015 },
4016
4017 /* End-of-list marker */
4018 {
4019 {NULL, 0, 0, NULL, NULL}, NULL, 0.0, 0.0, 0.0, NULL, NULL, NULL
4020 }
4021};
4022
4023
4025{
4026 {
4027 {"archive_command", PGC_SIGHUP, WAL_ARCHIVING,
4028 gettext_noop("Sets the shell command that will be called to archive a WAL file."),
4029 gettext_noop("This is used only if \"archive_library\" is not set.")
4030 },
4032 "",
4033 NULL, NULL, show_archive_command
4034 },
4035
4036 {
4037 {"archive_library", PGC_SIGHUP, WAL_ARCHIVING,
4038 gettext_noop("Sets the library that will be called to archive a WAL file."),
4039 gettext_noop("An empty string indicates that \"archive_command\" should be used.")
4040 },
4042 "",
4043 NULL, NULL, NULL
4044 },
4045
4046 {
4047 {"restore_command", PGC_SIGHUP, WAL_ARCHIVE_RECOVERY,
4048 gettext_noop("Sets the shell command that will be called to retrieve an archived WAL file."),
4049 NULL
4050 },
4052 "",
4053 NULL, NULL, NULL
4054 },
4055
4056 {
4057 {"archive_cleanup_command", PGC_SIGHUP, WAL_ARCHIVE_RECOVERY,
4058 gettext_noop("Sets the shell command that will be executed at every restart point."),
4059 NULL
4060 },
4062 "",
4063 NULL, NULL, NULL
4064 },
4065
4066 {
4067 {"recovery_end_command", PGC_SIGHUP, WAL_ARCHIVE_RECOVERY,
4068 gettext_noop("Sets the shell command that will be executed once at the end of recovery."),
4069 NULL
4070 },
4072 "",
4073 NULL, NULL, NULL
4074 },
4075
4076 {
4077 {"recovery_target_timeline", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
4078 gettext_noop("Specifies the timeline to recover into."),
4079 NULL
4080 },
4082 "latest",
4084 },
4085
4086 {
4087 {"recovery_target", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
4088 gettext_noop("Set to \"immediate\" to end recovery as soon as a consistent state is reached."),
4089 NULL
4090 },
4092 "",
4094 },
4095 {
4096 {"recovery_target_xid", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
4097 gettext_noop("Sets the transaction ID up to which recovery will proceed."),
4098 NULL
4099 },
4101 "",
4103 },
4104 {
4105 {"recovery_target_time", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
4106 gettext_noop("Sets the time stamp up to which recovery will proceed."),
4107 NULL
4108 },
4110 "",
4112 },
4113 {
4114 {"recovery_target_name", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
4115 gettext_noop("Sets the named restore point up to which recovery will proceed."),
4116 NULL
4117 },
4119 "",
4121 },
4122 {
4123 {"recovery_target_lsn", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
4124 gettext_noop("Sets the LSN of the write-ahead log location up to which recovery will proceed."),
4125 NULL
4126 },
4128 "",
4130 },
4131
4132 {
4133 {"primary_conninfo", PGC_SIGHUP, REPLICATION_STANDBY,
4134 gettext_noop("Sets the connection string to be used to connect to the sending server."),
4135 NULL,
4137 },
4139 "",
4140 NULL, NULL, NULL
4141 },
4142
4143 {
4144 {"primary_slot_name", PGC_SIGHUP, REPLICATION_STANDBY,
4145 gettext_noop("Sets the name of the replication slot to use on the sending server."),
4146 NULL
4147 },
4149 "",
4150 check_primary_slot_name, NULL, NULL
4151 },
4152
4153 {
4154 {"client_encoding", PGC_USERSET, CLIENT_CONN_LOCALE,
4155 gettext_noop("Sets the client's character set encoding."),
4156 NULL,
4158 },
4160 "SQL_ASCII",
4162 },
4163
4164 {
4165 {"log_line_prefix", PGC_SIGHUP, LOGGING_WHAT,
4166 gettext_noop("Controls information prefixed to each log line."),
4167 gettext_noop("If blank, no prefix is used.")
4168 },
4170 "%m [%p] ",
4171 NULL, NULL, NULL
4172 },
4173
4174 {
4175 {"log_timezone", PGC_SIGHUP, LOGGING_WHAT,
4176 gettext_noop("Sets the time zone to use in log messages."),
4177 NULL
4178 },
4180 "GMT",
4182 },
4183
4184 {
4185 {"DateStyle", PGC_USERSET, CLIENT_CONN_LOCALE,
4186 gettext_noop("Sets the display format for date and time values."),
4187 gettext_noop("Also controls interpretation of ambiguous "
4188 "date inputs."),
4190 },
4192 "ISO, MDY",
4194 },
4195
4196 {
4197 {"default_table_access_method", PGC_USERSET, CLIENT_CONN_STATEMENT,
4198 gettext_noop("Sets the default table access method for new tables."),
4199 NULL,
4201 },
4205 },
4206
4207 {
4208 {"default_tablespace", PGC_USERSET, CLIENT_CONN_STATEMENT,
4209 gettext_noop("Sets the default tablespace to create tables and indexes in."),
4210 gettext_noop("An empty string selects the database's default tablespace."),
4212 },
4214 "",
4215 check_default_tablespace, NULL, NULL
4216 },
4217
4218 {
4219 {"temp_tablespaces", PGC_USERSET, CLIENT_CONN_STATEMENT,
4220 gettext_noop("Sets the tablespace(s) to use for temporary tables and sort files."),
4221 NULL,
4223 },
4225 "",
4227 },
4228
4229 {
4230 {"createrole_self_grant", PGC_USERSET, CLIENT_CONN_STATEMENT,
4231 gettext_noop("Sets whether a CREATEROLE user automatically grants "
4232 "the role to themselves, and with which options."),
4233 NULL,
4235 },
4237 "",
4239 },
4240
4241 {
4242 {"dynamic_library_path", PGC_SUSET, CLIENT_CONN_OTHER,
4243 gettext_noop("Sets the path for dynamically loadable modules."),
4244 gettext_noop("If a dynamically loadable module needs to be opened and "
4245 "the specified name does not have a directory component (i.e., the "
4246 "name does not contain a slash), the system will search this path for "
4247 "the specified file."),
4249 },
4251 "$libdir",
4252 NULL, NULL, NULL
4253 },
4254
4255 {
4256 {"krb_server_keyfile", PGC_SIGHUP, CONN_AUTH_AUTH,
4257 gettext_noop("Sets the location of the Kerberos server key file."),
4258 NULL,
4260 },
4263 NULL, NULL, NULL
4264 },
4265
4266 {
4267 {"bonjour_name", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
4268 gettext_noop("Sets the Bonjour service name."),
4269 NULL
4270 },
4271 &bonjour_name,
4272 "",
4273 NULL, NULL, NULL
4274 },
4275
4276 {
4277 {"lc_messages", PGC_SUSET, CLIENT_CONN_LOCALE,
4278 gettext_noop("Sets the language in which messages are displayed."),
4279 NULL
4280 },
4282 "",
4284 },
4285
4286 {
4287 {"lc_monetary", PGC_USERSET, CLIENT_CONN_LOCALE,
4288 gettext_noop("Sets the locale for formatting monetary amounts."),
4289 NULL
4290 },
4292 "C",
4294 },
4295
4296 {
4297 {"lc_numeric", PGC_USERSET, CLIENT_CONN_LOCALE,
4298 gettext_noop("Sets the locale for formatting numbers."),
4299 NULL
4300 },
4302 "C",
4304 },
4305
4306 {
4307 {"lc_time", PGC_USERSET, CLIENT_CONN_LOCALE,
4308 gettext_noop("Sets the locale for formatting date and time values."),
4309 NULL
4310 },
4311 &locale_time,
4312 "C",
4314 },
4315
4316 {
4317 {"session_preload_libraries", PGC_SUSET, CLIENT_CONN_PRELOAD,
4318 gettext_noop("Lists shared libraries to preload into each backend."),
4319 NULL,
4321 },
4323 "",
4324 NULL, NULL, NULL
4325 },
4326
4327 {
4328 {"shared_preload_libraries", PGC_POSTMASTER, CLIENT_CONN_PRELOAD,
4329 gettext_noop("Lists shared libraries to preload into server."),
4330 NULL,
4332 },
4334 "",
4335 NULL, NULL, NULL
4336 },
4337
4338 {
4339 {"local_preload_libraries", PGC_USERSET, CLIENT_CONN_PRELOAD,
4340 gettext_noop("Lists unprivileged shared libraries to preload into each backend."),
4341 NULL,
4343 },
4345 "",
4346 NULL, NULL, NULL
4347 },
4348
4349 {
4350 {"search_path", PGC_USERSET, CLIENT_CONN_STATEMENT,
4351 gettext_noop("Sets the schema search order for names that are not schema-qualified."),
4352 NULL,
4354 },
4356 "\"$user\", public",
4358 },
4359
4360 {
4361 /* Can't be set in postgresql.conf */
4362 {"server_encoding", PGC_INTERNAL, PRESET_OPTIONS,
4363 gettext_noop("Shows the server (database) character set encoding."),
4364 NULL,
4366 },
4368 "SQL_ASCII",
4369 NULL, NULL, NULL
4370 },
4371
4372 {
4373 /* Can't be set in postgresql.conf */
4374 {"server_version", PGC_INTERNAL, PRESET_OPTIONS,
4375 gettext_noop("Shows the server version."),
4376 NULL,
4378 },
4380 PG_VERSION,
4381 NULL, NULL, NULL
4382 },
4383
4384 {
4385 /* Not for general use --- used by SET ROLE */
4386 {"role", PGC_USERSET, UNGROUPED,
4387 gettext_noop("Sets the current role."),
4388 NULL,
4390 },
4391 &role_string,
4392 "none",
4394 },
4395
4396 {
4397 /* Not for general use --- used by SET SESSION AUTHORIZATION */
4398 {"session_authorization", PGC_USERSET, UNGROUPED,
4399 gettext_noop("Sets the session user name."),
4400 NULL,
4402 },
4404 NULL,
4406 },
4407
4408 {
4409 {"log_destination", PGC_SIGHUP, LOGGING_WHERE,
4410 gettext_noop("Sets the destination for server log output."),
4411 gettext_noop("Valid values are combinations of \"stderr\", "
4412 "\"syslog\", \"csvlog\", \"jsonlog\", and \"eventlog\", "
4413 "depending on the platform."),
4415 },
4417 "stderr",
4419 },
4420 {
4421 {"log_directory", PGC_SIGHUP, LOGGING_WHERE,
4422 gettext_noop("Sets the destination directory for log files."),
4423 gettext_noop("Can be specified as relative to the data directory "
4424 "or as absolute path."),
4426 },
4428 "log",
4429 check_canonical_path, NULL, NULL
4430 },
4431 {
4432 {"log_filename", PGC_SIGHUP, LOGGING_WHERE,
4433 gettext_noop("Sets the file name pattern for log files."),
4434 NULL,
4436 },
4437 &Log_filename,
4438 "postgresql-%Y-%m-%d_%H%M%S.log",
4439 NULL, NULL, NULL
4440 },
4441
4442 {
4443 {"syslog_ident", PGC_SIGHUP, LOGGING_WHERE,
4444 gettext_noop("Sets the program name used to identify PostgreSQL "
4445 "messages in syslog."),
4446 NULL
4447 },
4449 "postgres",
4450 NULL, assign_syslog_ident, NULL
4451 },
4452
4453 {
4454 {"event_source", PGC_POSTMASTER, LOGGING_WHERE,
4455 gettext_noop("Sets the application name used to identify "
4456 "PostgreSQL messages in the event log."),
4457 NULL
4458 },
4459 &event_source,
4461 NULL, NULL, NULL
4462 },
4463
4464 {
4465 {"TimeZone", PGC_USERSET, CLIENT_CONN_LOCALE,
4466 gettext_noop("Sets the time zone for displaying and interpreting time stamps."),
4467 NULL,
4469 },
4471 "GMT",
4473 },
4474 {
4475 {"timezone_abbreviations", PGC_USERSET, CLIENT_CONN_LOCALE,
4476 gettext_noop("Selects a file of time zone abbreviations."),
4477 NULL
4478 },
4480 NULL,
4482 },
4483
4484 {
4485 {"unix_socket_group", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
4486 gettext_noop("Sets the owning group of the Unix-domain socket."),
4487 gettext_noop("The owning user of the socket is always the user "
4488 "that starts the server.")
4489 },
4491 "",
4492 NULL, NULL, NULL
4493 },
4494
4495 {
4496 {"unix_socket_directories", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
4497 gettext_noop("Sets the directories where Unix-domain sockets will be created."),
4498 NULL,
4500 },
4503 NULL, NULL, NULL
4504 },
4505
4506 {
4507 {"listen_addresses", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
4508 gettext_noop("Sets the host name or IP address(es) to listen to."),
4509 NULL,
4511 },
4513 "localhost",
4514 NULL, NULL, NULL
4515 },
4516
4517 {
4518 /*
4519 * Can't be set by ALTER SYSTEM as it can lead to recursive definition
4520 * of data_directory.
4521 */
4522 {"data_directory", PGC_POSTMASTER, FILE_LOCATIONS,
4523 gettext_noop("Sets the server's data directory."),
4524 NULL,
4526 },
4528 NULL,
4529 NULL, NULL, NULL
4530 },
4531
4532 {
4533 {"config_file", PGC_POSTMASTER, FILE_LOCATIONS,
4534 gettext_noop("Sets the server's main configuration file."),
4535 NULL,
4537 },
4539 NULL,
4540 NULL, NULL, NULL
4541 },
4542
4543 {
4544 {"hba_file", PGC_POSTMASTER, FILE_LOCATIONS,
4545 gettext_noop("Sets the server's \"hba\" configuration file."),
4546 NULL,
4548 },
4549 &HbaFileName,
4550 NULL,
4551 NULL, NULL, NULL
4552 },
4553
4554 {
4555 {"ident_file", PGC_POSTMASTER, FILE_LOCATIONS,
4556 gettext_noop("Sets the server's \"ident\" configuration file."),
4557 NULL,
4559 },
4561 NULL,
4562 NULL, NULL, NULL
4563 },
4564
4565 {
4566 {"external_pid_file", PGC_POSTMASTER, FILE_LOCATIONS,
4567 gettext_noop("Writes the postmaster PID to the specified file."),
4568 NULL,
4570 },
4572 NULL,
4573 check_canonical_path, NULL, NULL
4574 },
4575
4576 {
4577 {"ssl_library", PGC_INTERNAL, PRESET_OPTIONS,
4578 gettext_noop("Shows the name of the SSL library."),
4579 NULL,
4581 },
4582 &ssl_library,
4583#ifdef USE_SSL
4584 "OpenSSL",
4585#else
4586 "",
4587#endif
4588 NULL, NULL, NULL
4589 },
4590
4591 {
4592 {"ssl_cert_file", PGC_SIGHUP, CONN_AUTH_SSL,
4593 gettext_noop("Location of the SSL server certificate file."),
4594 NULL
4595 },
4597 "server.crt",
4598 NULL, NULL, NULL
4599 },
4600
4601 {
4602 {"ssl_key_file", PGC_SIGHUP, CONN_AUTH_SSL,
4603 gettext_noop("Location of the SSL server private key file."),
4604 NULL
4605 },
4606 &ssl_key_file,
4607 "server.key",
4608 NULL, NULL, NULL
4609 },
4610
4611 {
4612 {"ssl_ca_file", PGC_SIGHUP, CONN_AUTH_SSL,
4613 gettext_noop("Location of the SSL certificate authority file."),
4614 NULL
4615 },
4616 &ssl_ca_file,
4617 "",
4618 NULL, NULL, NULL
4619 },
4620
4621 {
4622 {"ssl_crl_file", PGC_SIGHUP, CONN_AUTH_SSL,
4623 gettext_noop("Location of the SSL certificate revocation list file."),
4624 NULL
4625 },
4626 &ssl_crl_file,
4627 "",
4628 NULL, NULL, NULL
4629 },
4630
4631 {
4632 {"ssl_crl_dir", PGC_SIGHUP, CONN_AUTH_SSL,
4633 gettext_noop("Location of the SSL certificate revocation list directory."),
4634 NULL
4635 },
4636 &ssl_crl_dir,
4637 "",
4638 NULL, NULL, NULL
4639 },
4640
4641 {
4642 {"synchronous_standby_names", PGC_SIGHUP, REPLICATION_PRIMARY,
4643 gettext_noop("Number of synchronous standbys and list of names of potential synchronous ones."),
4644 NULL,
4646 },
4648 "",
4650 },
4651
4652 {
4653 {"default_text_search_config", PGC_USERSET, CLIENT_CONN_LOCALE,
4654 gettext_noop("Sets default text search configuration."),
4655 NULL
4656 },
4658 "pg_catalog.simple",
4660 },
4661
4662 {
4663 {"ssl_tls13_ciphers", PGC_SIGHUP, CONN_AUTH_SSL,
4664 gettext_noop("Sets the list of allowed TLSv1.3 cipher suites (leave blank for default)."),
4665 NULL,
4667 },
4669 "",
4670 NULL, NULL, NULL
4671 },
4672
4673 {
4674 {"ssl_ciphers", PGC_SIGHUP, CONN_AUTH_SSL,
4675 gettext_noop("Sets the list of allowed TLSv1.2 (and lower) ciphers."),
4676 NULL,
4678 },
4680#ifdef USE_OPENSSL
4681 "HIGH:MEDIUM:+3DES:!aNULL",
4682#else
4683 "none",
4684#endif
4685 NULL, NULL, NULL
4686 },
4687
4688 {
4689 {"ssl_groups", PGC_SIGHUP, CONN_AUTH_SSL,
4690 gettext_noop("Sets the group(s) to use for Diffie-Hellman key exchange."),
4691 gettext_noop("Multiple groups can be specified using colon-separated list."),
4693 },
4694 &SSLECDHCurve,
4695#ifdef USE_SSL
4696 "prime256v1",
4697#else
4698 "none",
4699#endif
4700 NULL, NULL, NULL
4701 },
4702
4703 {
4704 {"ssl_dh_params_file", PGC_SIGHUP, CONN_AUTH_SSL,
4705 gettext_noop("Location of the SSL DH parameters file."),
4706 NULL,
4708 },
4710 "",
4711 NULL, NULL, NULL
4712 },
4713
4714 {
4715 {"ssl_passphrase_command", PGC_SIGHUP, CONN_AUTH_SSL,
4716 gettext_noop("Command to obtain passphrases for SSL."),
4717 NULL,
4719 },
4721 "",
4722 NULL, NULL, NULL
4723 },
4724
4725 {
4726 {"application_name", PGC_USERSET, LOGGING_WHAT,
4727 gettext_noop("Sets the application name to be reported in statistics and logs."),
4728 NULL,
4730 },
4732 "",
4734 },
4735
4736 {
4737 {"cluster_name", PGC_POSTMASTER, PROCESS_TITLE,
4738 gettext_noop("Sets the name of the cluster, which is included in the process title."),
4739 NULL,
4741 },
4742 &cluster_name,
4743 "",
4744 check_cluster_name, NULL, NULL
4745 },
4746
4747 {
4748 {"wal_consistency_checking", PGC_SUSET, DEVELOPER_OPTIONS,
4749 gettext_noop("Sets the WAL resource managers for which WAL consistency checks are done."),
4750 gettext_noop("Full-page images will be logged for all data blocks and cross-checked against the results of WAL replay."),
4752 },
4754 "",
4756 },
4757
4758 {
4759 {"jit_provider", PGC_POSTMASTER, CLIENT_CONN_PRELOAD,
4760 gettext_noop("JIT provider to use."),
4761 NULL,
4763 },
4764 &jit_provider,
4765 "llvmjit",
4766 NULL, NULL, NULL
4767 },
4768
4769 {
4770 {"backtrace_functions", PGC_SUSET, DEVELOPER_OPTIONS,
4771 gettext_noop("Log backtrace for errors in these functions."),
4772 NULL,
4774 },
4776 "",
4778 },
4779
4780 {
4781 {"debug_io_direct", PGC_POSTMASTER, DEVELOPER_OPTIONS,
4782 gettext_noop("Use direct I/O for file access."),
4783 NULL,
4785 },
4787 "",
4789 },
4790
4791 {
4792 {"synchronized_standby_slots", PGC_SIGHUP, REPLICATION_PRIMARY,
4793 gettext_noop("Lists streaming replication standby server replication slot "
4794 "names that logical WAL sender processes will wait for."),
4795 gettext_noop("Logical WAL sender processes will send decoded "
4796 "changes to output plugins only after the specified "
4797 "replication slots have confirmed receiving WAL."),
4799 },
4801 "",
4803 },
4804
4805 {
4806 {"restrict_nonsystem_relation_kind", PGC_USERSET, CLIENT_CONN_STATEMENT,
4807 gettext_noop("Prohibits access to non-system relations of specified kinds."),
4808 NULL,
4810 },
4812 "",
4814 },
4815
4816 /* End-of-list marker */
4817 {
4818 {NULL, 0, 0, NULL, NULL}, NULL, NULL, NULL, NULL, NULL
4819 }
4820};
4821
4822
4824{
4825 {
4826 {"backslash_quote", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
4827 gettext_noop("Sets whether \"\\'\" is allowed in string literals."),
4828 NULL
4829 },
4832 NULL, NULL, NULL
4833 },
4834
4835 {
4836 {"bytea_output", PGC_USERSET, CLIENT_CONN_STATEMENT,
4837 gettext_noop("Sets the output format for bytea."),
4838 NULL
4839 },
4840 &bytea_output,
4842 NULL, NULL, NULL
4843 },
4844
4845 {
4846 {"client_min_messages", PGC_USERSET, CLIENT_CONN_STATEMENT,
4847 gettext_noop("Sets the message levels that are sent to the client."),
4848 gettext_noop("Each level includes all the levels that follow it. The later"
4849 " the level, the fewer messages are sent.")
4850 },
4853 NULL, NULL, NULL
4854 },
4855
4856 {
4857 {"compute_query_id", PGC_SUSET, STATS_MONITORING,
4858 gettext_noop("Enables in-core computation of query identifiers."),
4859 NULL
4860 },
4863 NULL, NULL, NULL
4864 },
4865
4866 {
4867 {"constraint_exclusion", PGC_USERSET, QUERY_TUNING_OTHER,
4868 gettext_noop("Enables the planner to use constraints to optimize queries."),
4869 gettext_noop("Table scans will be skipped if their constraints"
4870 " guarantee that no rows match the query."),
4872 },
4875 NULL, NULL, NULL
4876 },
4877
4878 {
4879 {"default_toast_compression", PGC_USERSET, CLIENT_CONN_STATEMENT,
4880 gettext_noop("Sets the default compression method for compressible values."),
4881 NULL
4882 },
4886 NULL, NULL, NULL
4887 },
4888
4889 {
4890 {"default_transaction_isolation", PGC_USERSET, CLIENT_CONN_STATEMENT,
4891 gettext_noop("Sets the transaction isolation level of each new transaction."),
4892 NULL
4893 },
4896 NULL, NULL, NULL
4897 },
4898
4899 {
4900 {"transaction_isolation", PGC_USERSET, CLIENT_CONN_STATEMENT,
4901 gettext_noop("Sets the current transaction's isolation level."),
4902 NULL,
4904 },
4905 &XactIsoLevel,
4907 check_transaction_isolation, NULL, NULL
4908 },
4909
4910 {
4911 {"IntervalStyle", PGC_USERSET, CLIENT_CONN_LOCALE,
4912 gettext_noop("Sets the display format for interval values."),
4913 NULL,
4915 },
4918 NULL, NULL, NULL
4919 },
4920
4921 {
4922 {"icu_validation_level", PGC_USERSET, CLIENT_CONN_LOCALE,
4923 gettext_noop("Log level for reporting invalid ICU locale strings."),
4924 NULL
4925 },
4928 NULL, NULL, NULL
4929 },
4930
4931 {
4932 {"log_error_verbosity", PGC_SUSET, LOGGING_WHAT,
4933 gettext_noop("Sets the verbosity of logged messages."),
4934 NULL
4935 },
4938 NULL, NULL, NULL
4939 },
4940
4941 {
4942 {"log_min_messages", PGC_SUSET, LOGGING_WHEN,
4943 gettext_noop("Sets the message levels that are logged."),
4944 gettext_noop("Each level includes all the levels that follow it. The later"
4945 " the level, the fewer messages are sent.")
4946 },
4949 NULL, NULL, NULL
4950 },
4951
4952 {
4953 {"log_min_error_statement", PGC_SUSET, LOGGING_WHEN,
4954 gettext_noop("Causes all statements generating error at or above this level to be logged."),
4955 gettext_noop("Each level includes all the levels that follow it. The later"
4956 " the level, the fewer messages are sent.")
4957 },
4960 NULL, NULL, NULL
4961 },
4962
4963 {
4964 {"log_statement", PGC_SUSET, LOGGING_WHAT,
4965 gettext_noop("Sets the type of statements logged."),
4966 NULL
4967 },
4970 NULL, NULL, NULL
4971 },
4972
4973 {
4974 {"syslog_facility", PGC_SIGHUP, LOGGING_WHERE,
4975 gettext_noop("Sets the syslog \"facility\" to be used when syslog enabled."),
4976 NULL
4977 },
4981 NULL, assign_syslog_facility, NULL
4982 },
4983
4984 {
4985 {"session_replication_role", PGC_SUSET, CLIENT_CONN_STATEMENT,
4986 gettext_noop("Sets the session's behavior for triggers and rewrite rules."),
4987 NULL
4988 },
4992 },
4993
4994 {
4995 {"synchronous_commit", PGC_USERSET, WAL_SETTINGS,
4996 gettext_noop("Sets the current transaction's synchronization level."),
4997 NULL
4998 },
5001 NULL, assign_synchronous_commit, NULL
5002 },
5003
5004 {
5005 {"archive_mode", PGC_POSTMASTER, WAL_ARCHIVING,
5006 gettext_noop("Allows archiving of WAL files using \"archive_command\"."),
5007 NULL
5008 },
5011 NULL, NULL, NULL
5012 },
5013
5014 {
5015 {"recovery_target_action", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
5016 gettext_noop("Sets the action to perform upon reaching the recovery target."),
5017 NULL
5018 },
5021 NULL, NULL, NULL
5022 },
5023
5024 {
5025 {"track_functions", PGC_SUSET, STATS_CUMULATIVE,
5026 gettext_noop("Collects function-level statistics on database activity."),
5027 NULL
5028 },
5031 NULL, NULL, NULL
5032 },
5033
5034
5035 {
5036 {"stats_fetch_consistency", PGC_USERSET, STATS_CUMULATIVE,
5037 gettext_noop("Sets the consistency of accesses to statistics data."),
5038 NULL
5039 },
5043 },
5044
5045 {
5046 {"wal_compression", PGC_SUSET, WAL_SETTINGS,
5047 gettext_noop("Compresses full-page writes written in WAL file with specified method."),
5048 NULL
5049 },
5052 NULL, NULL, NULL
5053 },
5054
5055 {
5056 {"wal_level", PGC_POSTMASTER, WAL_SETTINGS,
5057 gettext_noop("Sets the level of information written to the WAL."),
5058 NULL
5059 },
5060 &wal_level,
5062 NULL, NULL, NULL
5063 },
5064
5065 {
5066 {"dynamic_shared_memory_type", PGC_POSTMASTER, RESOURCES_MEM,
5067 gettext_noop("Selects the dynamic shared memory implementation used."),
5068 NULL
5069 },
5072 NULL, NULL, NULL
5073 },
5074
5075 {
5076 {"shared_memory_type", PGC_POSTMASTER, RESOURCES_MEM,
5077 gettext_noop("Selects the shared memory implementation used for the main shared memory region."),
5078 NULL
5079 },
5082 NULL, NULL, NULL
5083 },
5084
5085 {
5086 {"wal_sync_method", PGC_SIGHUP, WAL_SETTINGS,
5087 gettext_noop("Selects the method used for forcing WAL updates to disk."),
5088 NULL
5089 },
5092 NULL, assign_wal_sync_method, NULL
5093 },
5094
5095 {
5096 {"xmlbinary", PGC_USERSET, CLIENT_CONN_STATEMENT,
5097 gettext_noop("Sets how binary values are to be encoded in XML."),
5098 NULL
5099 },
5100 &xmlbinary,
5102 NULL, NULL, NULL
5103 },
5104
5105 {
5106 {"xmloption", PGC_USERSET, CLIENT_CONN_STATEMENT,
5107 gettext_noop("Sets whether XML data in implicit parsing and serialization "
5108 "operations is to be considered as documents or content fragments."),
5109 NULL
5110 },
5111 &xmloption,
5113 NULL, NULL, NULL
5114 },
5115
5116 {
5117 {"huge_pages", PGC_POSTMASTER, RESOURCES_MEM,
5118 gettext_noop("Use of huge pages on Linux or Windows."),
5119 NULL
5120 },
5121 &huge_pages,
5123 NULL, NULL, NULL
5124 },
5125
5126 {
5127 {"huge_pages_status", PGC_INTERNAL, PRESET_OPTIONS,
5128 gettext_noop("Indicates the status of huge pages."),
5129 NULL,
5131 },
5134 NULL, NULL, NULL
5135 },
5136
5137 {
5138 {"recovery_prefetch", PGC_SIGHUP, WAL_RECOVERY,
5139 gettext_noop("Prefetch referenced blocks during recovery."),
5140 gettext_noop("Look ahead in the WAL to find references to uncached data.")
5141 },
5145 },
5146
5147 {
5148 {"debug_parallel_query", PGC_USERSET, DEVELOPER_OPTIONS,
5149 gettext_noop("Forces the planner's use parallel query nodes."),
5150 gettext_noop("This can be useful for testing the parallel query infrastructure "
5151 "by forcing the planner to generate plans that contain nodes "
5152 "that perform tuple communication between workers and the main process."),
5154 },
5157 NULL, NULL, NULL
5158 },
5159
5160 {
5161 {"password_encryption", PGC_USERSET, CONN_AUTH_AUTH,
5162 gettext_noop("Chooses the algorithm for encrypting passwords."),
5163 NULL
5164 },
5167 NULL, NULL, NULL
5168 },
5169
5170 {
5171 {"plan_cache_mode", PGC_USERSET, QUERY_TUNING_OTHER,
5172 gettext_noop("Controls the planner's selection of custom or generic plan."),
5173 gettext_noop("Prepared statements can have custom and generic plans, and the planner "
5174 "will attempt to choose which is better. This can be set to override "
5175 "the default behavior."),
5177 },
5180 NULL, NULL, NULL
5181 },
5182
5183 {
5184 {"ssl_min_protocol_version", PGC_SIGHUP, CONN_AUTH_SSL,
5185 gettext_noop("Sets the minimum SSL/TLS protocol version to use."),
5186 NULL,
5188 },
5191 ssl_protocol_versions_info + 1, /* don't allow PG_TLS_ANY */
5192 NULL, NULL, NULL
5193 },
5194
5195 {
5196 {"ssl_max_protocol_version", PGC_SIGHUP, CONN_AUTH_SSL,
5197 gettext_noop("Sets the maximum SSL/TLS protocol version to use."),
5198 NULL,
5200 },
5202 PG_TLS_ANY,
5204 NULL, NULL, NULL
5205 },
5206
5207 {
5208 {"recovery_init_sync_method", PGC_SIGHUP, ERROR_HANDLING_OPTIONS,
5209 gettext_noop("Sets the method for synchronizing the data directory before crash recovery."),
5210 },
5213 NULL, NULL, NULL
5214 },
5215
5216 {
5217 {"debug_logical_replication_streaming", PGC_USERSET, DEVELOPER_OPTIONS,
5218 gettext_noop("Forces immediate streaming or serialization of changes in large transactions."),
5219 gettext_noop("On the publisher, it allows streaming or serializing each change in logical decoding. "
5220 "On the subscriber, it allows serialization of all changes to files and notifies the "
5221 "parallel apply workers to read and apply them at the end of the transaction."),
5223 },
5226 NULL, NULL, NULL
5227 },
5228
5229 /* End-of-list marker */
5230 {
5231 {NULL, 0, 0, NULL, NULL}, NULL, 0, NULL, NULL, NULL, NULL
5232 }
5233};
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:194
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:3326
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
void assign_application_name(const char *newval, void *extra)
Definition: variable.c:1106
bool check_bonjour(bool *newval, void **extra, GucSource source)
Definition: variable.c:1205
bool check_maintenance_io_concurrency(int *newval, void **extra, GucSource source)
Definition: variable.c:1247
void assign_session_authorization(const char *newval, void *extra)
Definition: variable.c:910
bool check_transaction_deferrable(bool *newval, void **extra, GucSource source)
Definition: variable.c:622
bool check_canonical_path(char **newval, void **extra, GucSource source)
Definition: variable.c:1057
bool check_transaction_isolation(int *newval, void **extra, GucSource source)
Definition: variable.c:584
bool check_default_with_oids(bool *newval, void **extra, GucSource source)
Definition: variable.c:1218
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:1233
bool check_application_name(char **newval, void **extra, GucSource source)
Definition: variable.c:1078
void assign_timezone(const char *newval, void *extra)
Definition: variable.c:381
bool check_role(char **newval, void **extra, GucSource source)
Definition: variable.c:931
bool check_cluster_name(char **newval, void **extra, GucSource source)
Definition: variable.c:1116
const char * show_random_seed(void)
Definition: variable.c:675
bool check_session_authorization(char **newval, void **extra, GucSource source)
Definition: variable.c:813
const char * show_log_file_mode(void)
Definition: variable.c:1178
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:1144
bool check_timezone_abbreviations(char **newval, void **extra, GucSource source)
Definition: variable.c:485
const char * show_log_timezone(void)
Definition: variable.c:463
void assign_client_encoding(const char *newval, void *extra)
Definition: variable.c:784
void assign_role(const char *newval, void *extra)
Definition: variable.c:1024
bool check_timezone(char **newval, void **extra, GucSource source)
Definition: variable.c:261
bool check_ssl(bool *newval, void **extra, GucSource source)
Definition: variable.c:1261
void assign_datestyle(const char *newval, void *extra)
Definition: variable.c:244
void assign_random_seed(double newval, void *extra)
Definition: variable.c:666
const char * show_role(void)
Definition: variable.c:1032
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:654
const char * show_unix_socket_permissions(void)
Definition: variable.c:1190
const char * show_timezone(void)
Definition: variable.c:390
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:686
const char * show_data_directory_mode(void)
Definition: variable.c:1166
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:60
char * ssl_cert_file
Definition: be-secure.c:37
bool SSLPreferServerCiphers
Definition: be-secure.c:58
char * ssl_library
Definition: be-secure.c:36
int ssl_max_protocol_version
Definition: be-secure.c:61
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:55
char * SSLCipherList
Definition: be-secure.c:52
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:143
bool zero_damaged_pages
Definition: bufmgr.c:140
int bgwriter_flush_after
Definition: bufmgr.c:172
int checkpoint_flush_after
Definition: bufmgr.c:171
double bgwriter_lru_multiplier
Definition: bufmgr.c:142
int backend_flush_after
Definition: bufmgr.c:173
int maintenance_io_concurrency
Definition: bufmgr.c:158
int effective_io_concurrency
Definition: bufmgr.c:151
int io_combine_limit
Definition: bufmgr.c:165
int bgwriter_lru_maxpages
Definition: bufmgr.c:141
#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:958
#define gettext_noop(x)
Definition: c.h:1150
#define lengthof(array)
Definition: c.h:742
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:71
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:131
double cpu_operator_cost
Definition: costsize.c:134
bool enable_partitionwise_aggregate
Definition: costsize.c:160
bool enable_seqscan
Definition: costsize.c:145
int max_parallel_workers_per_gather
Definition: costsize.c:143
bool enable_memoize
Definition: costsize.c:155
double parallel_setup_cost
Definition: costsize.c:136
double recursive_worktable_factor
Definition: costsize.c:137
bool enable_gathermerge
Definition: costsize.c:158
double parallel_tuple_cost
Definition: costsize.c:135
bool enable_indexonlyscan
Definition: costsize.c:147
bool enable_tidscan
Definition: costsize.c:149
double cpu_tuple_cost
Definition: costsize.c:132
bool enable_material
Definition: costsize.c:154
bool enable_hashjoin
Definition: costsize.c:157
bool enable_mergejoin
Definition: costsize.c:156
bool enable_presorted_aggregate
Definition: costsize.c:164
bool enable_parallel_hash
Definition: costsize.c:162
bool enable_partitionwise_join
Definition: costsize.c:159
bool enable_async_append
Definition: costsize.c:165
double seq_page_cost
Definition: costsize.c:130
bool enable_parallel_append
Definition: costsize.c:161
bool enable_nestloop
Definition: costsize.c:153
bool enable_bitmapscan
Definition: costsize.c:148
bool enable_hashagg
Definition: costsize.c:152
bool enable_partition_pruning
Definition: costsize.c:163
bool enable_sort
Definition: costsize.c:150
int effective_cache_size
Definition: costsize.c:139
double cpu_index_tuple_cost
Definition: costsize.c:133
bool enable_indexscan
Definition: costsize.c:146
bool enable_incremental_sort
Definition: costsize.c:151
bool md5_password_warnings
Definition: crypt.c:28
@ PASSWORD_TYPE_SCRAM_SHA_256
Definition: crypt.h:44
@ PASSWORD_TYPE_MD5
Definition: crypt.h:43
#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:67
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:2338
void assign_syslog_ident(const char *newval, void *extra)
Definition: elog.c:2306
bool syslog_split_messages
Definition: elog.c:113
void assign_backtrace_functions(const char *newval, void *extra)
Definition: elog.c:2226
int Log_error_verbosity
Definition: elog.c:108
bool check_backtrace_functions(char **newval, void **extra, GucSource source)
Definition: elog.c:2167
bool check_log_destination(char **newval, void **extra, GucSource source)
Definition: elog.c:2235
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:2297
@ PGERROR_VERBOSE
Definition: elog.h:482
@ PGERROR_DEFAULT
Definition: elog.h:481
@ PGERROR_TERSE
Definition: elog.h:480
#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:145
int recovery_init_sync_method
Definition: fd.c:164
void assign_debug_io_direct(const char *newval, void *extra)
Definition: fd.c:4050
bool data_sync_retry
Definition: fd.c:161
bool check_debug_io_direct(char **newval, void **extra, GucSource source)
Definition: fd.c:3965
#define MaxAllocSize
Definition: fe_memutils.h:22
@ 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:40
#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:162
double hash_mem_multiplier
Definition: globals.c:131
int VacuumCostLimit
Definition: globals.c:153
int max_parallel_maintenance_workers
Definition: globals.c:133
int NBuffers
Definition: globals.c:141
int transaction_buffers
Definition: globals.c:166
bool enableFsync
Definition: globals.c:128
int VacuumCostPageMiss
Definition: globals.c:151
int MaxConnections
Definition: globals.c:142
int multixact_member_buffers
Definition: globals.c:161
int data_directory_mode
Definition: globals.c:76
bool allowSystemTableMods
Definition: globals.c:129
int maintenance_work_mem
Definition: globals.c:132
int max_parallel_workers
Definition: globals.c:144
int VacuumCostPageDirty
Definition: globals.c:152
bool ExitOnAnyError
Definition: globals.c:122
int IntervalStyle
Definition: globals.c:126
int notify_buffers
Definition: globals.c:163
int work_mem
Definition: globals.c:130
int VacuumBufferUsageLimit
Definition: globals.c:148
int VacuumCostPageHit
Definition: globals.c:150
int commit_timestamp_buffers
Definition: globals.c:160
double VacuumCostDelay
Definition: globals.c:154
int subtransaction_buffers
Definition: globals.c:165
int max_worker_processes
Definition: globals.c:143
int serializable_buffers
Definition: globals.c:164
#define GUC_UNIT_MB
Definition: guc.h:231
#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:235
#define GUC_NOT_WHILE_SEC_REST
Definition: guc.h:222
#define GUC_UNIT_BLOCKS
Definition: guc.h:229
#define GUC_UNIT_XBLOCKS
Definition: guc.h:230
#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
#define GUC_ALLOW_IN_PARALLEL
Definition: guc.h:226
@ 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:232
#define GUC_NOT_IN_SAMPLE
Definition: guc.h:217
#define GUC_UNIT_S
Definition: guc.h:236
#define GUC_REPORT
Definition: guc.h:216
#define MAX_KILOBYTES
Definition: guc.h:25
#define GUC_UNIT_KB
Definition: guc.h:228
#define GUC_UNIT_MIN
Definition: guc.h:237
static char * recovery_target_lsn_string
Definition: guc_tables.c:616
bool log_statement_stats
Definition: guc_tables.c:505
static char * client_encoding_string
Definition: guc_tables.c:573
static int segment_size
Definition: guc_tables.c:597
static char * timezone_abbreviations_string
Definition: guc_tables.c:590
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:508
bool check_function_bodies
Definition: guc_tables.c:511
int num_temp_buffers
Definition: guc_tables.c:535
int client_min_messages
Definition: guc_tables.c:523
static int max_identifier_length
Definition: guc_tables.c:595
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:517
struct config_string ConfigureNamesString[]
Definition: guc_tables.c:4024
static char * timezone_string
Definition: guc_tables.c:588
#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:576
int log_min_error_statement
Definition: guc_tables.c:521
static bool data_checksums
Definition: guc_tables.c:602
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:545
char * HbaFileName
Definition: guc_tables.c:539
int temp_file_limit
Definition: guc_tables.c:533
const char *const GucContext_Names[]
Definition: guc_tables.c:630
static int ssl_renegotiation_limit
Definition: guc_tables.c:556
static int syslog_facility
Definition: guc_tables.c:586
static int max_function_args
Definition: guc_tables.c:593
int tcp_keepalives_interval
Definition: guc_tables.c:546
static int max_index_keys
Definition: guc_tables.c:594
static const struct config_enum_entry backslash_quote_options[]
Definition: guc_tables.c:281
static char * syslog_ident_str
Definition: guc_tables.c:571
#define DEFAULT_SYSLOG_FACILITY
Definition: guc_tables.c:584
const char *const GucSource_Names[]
Definition: guc_tables.c:649
char * ConfigFileName
Definition: guc_tables.c:538
bool log_parser_stats
Definition: guc_tables.c:502
static int block_size
Definition: guc_tables.c:596
int tcp_keepalives_count
Definition: guc_tables.c:547
double log_xact_sample_rate
Definition: guc_tables.c:530
#define DEFAULT_ASSERT_ENABLED
Definition: guc_tables.c:608
static const struct config_enum_entry shared_memory_options[]
Definition: guc_tables.c:437
struct config_int ConfigureNamesInt[]
Definition: guc_tables.c:2105
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:730
bool Debug_pretty_print
Definition: guc_tables.c:494
char * role_string
Definition: guc_tables.c:619
static char * server_encoding_string
Definition: guc_tables.c:575
static int wal_block_size
Definition: guc_tables.c:600
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:562
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:574
static char * recovery_target_timeline_string
Definition: guc_tables.c:612
static char * restrict_nonsystem_relation_kind_string
Definition: guc_tables.c:579
int log_parameter_max_length_on_error
Definition: guc_tables.c:527
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:525
static char * recovery_target_xid_string
Definition: guc_tables.c:614
bool AllowAlterSystem
Definition: guc_tables.c:489
int log_min_duration_sample
Definition: guc_tables.c:524
bool log_btree_build_stats
Definition: guc_tables.c:507
bool log_planner_stats
Definition: guc_tables.c:503
struct config_bool ConfigureNamesBool[]
Definition: guc_tables.c:770
static const struct config_enum_entry bytea_output_options[]
Definition: guc_tables.c:111
bool row_security
Definition: guc_tables.c:510
const struct config_enum_entry archive_mode_options[]
Definition: xlog.c:191
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:613
char * cluster_name
Definition: guc_tables.c:537
static bool assert_enabled
Definition: guc_tables.c:610
static const struct config_enum_entry default_toast_compression_options[]
Definition: guc_tables.c:450
static char * log_timezone_string
Definition: guc_tables.c:589
static char * session_authorization_string
Definition: guc_tables.c:592
bool in_hot_standby_guc
Definition: guc_tables.c:622
bool Debug_print_rewritten
Definition: guc_tables.c:493
static int shared_memory_size_in_huge_pages
Definition: guc_tables.c:599
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:171
static int server_version_num
Definition: guc_tables.c:577
bool Debug_print_parse
Definition: guc_tables.c:492
char * application_name
Definition: guc_tables.c:543
static const struct config_enum_entry intervalstyle_options[]
Definition: guc_tables.c:157
int log_parameter_max_length
Definition: guc_tables.c:526
struct config_real ConfigureNamesReal[]
Definition: guc_tables.c:3743
char * IdentFileName
Definition: guc_tables.c:540
const struct config_enum_entry wal_level_options[]
Definition: xlogdesc.c:27
struct config_enum ConfigureNamesEnum[]
Definition: guc_tables.c:4823
static const struct config_enum_entry client_message_level_options[]
Definition: guc_tables.c:125
int tcp_user_timeout
Definition: guc_tables.c:548
bool current_role_is_superuser
Definition: guc_tables.c:519
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:615
int huge_page_size
Definition: guc_tables.c:563
static char * data_directory
Definition: guc_tables.c:591
StaticAssertDecl(lengthof(bytea_output_options)==(BYTEA_OUTPUT_HEX+2), "array length mismatch")
double log_statement_sample_rate
Definition: guc_tables.c:529
bool log_duration
Definition: guc_tables.c:490
const char *const config_group_names[]
Definition: guc_tables.c:673
static bool integer_datetimes
Definition: guc_tables.c:603
static double phony_random_seed
Definition: guc_tables.c:572
char * external_pid_file
Definition: guc_tables.c:541
int log_temp_files
Definition: guc_tables.c:528
static int num_os_semaphores
Definition: guc_tables.c:601
int log_min_messages
Definition: guc_tables.c:522
bool log_executor_stats
Definition: guc_tables.c:504
char * backtrace_functions
Definition: guc_tables.c:531
static int shared_memory_size_mb
Definition: guc_tables.c:598
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:564
static char * debug_io_direct_string
Definition: guc_tables.c:578
@ 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:40
int from_collapse_limit
Definition: initsplan.c:39
bool lo_compat_privileges
Definition: inv_api.c:56
int debug_discard_caches
Definition: inval.c:258
int shared_memory_type
Definition: ipci.c:55
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:131
@ PG_TLS1_3_VERSION
Definition: libpq.h:134
@ PG_TLS1_1_VERSION
Definition: libpq.h:132
@ PG_TLS1_2_VERSION
Definition: libpq.h:133
@ PG_TLS_ANY
Definition: libpq.h:130
bool check_temp_buffers(int *newval, void **extra, GucSource source)
Definition: localbuf.c:704
int max_locks_per_xact
Definition: lock.c:52
#define INTSTYLE_SQL_STANDARD
Definition: miscadmin.h:258
#define INTSTYLE_POSTGRES_VERBOSE
Definition: miscadmin.h:257
#define MAX_BAS_VAC_RING_SIZE_KB
Definition: miscadmin.h:278
#define INTSTYLE_ISO_8601
Definition: miscadmin.h:259
#define INTSTYLE_POSTGRES
Definition: miscadmin.h:256
bool IgnoreSystemIndexes
Definition: miscinit.c:81
char * shared_preload_libraries_string
Definition: miscinit.c:1830
char * session_preload_libraries_string
Definition: miscinit.c:1829
char * local_preload_libraries_string
Definition: miscinit.c:1831
bool check_multixact_offset_buffers(int *newval, void **extra, GucSource source)
Definition: multixact.c:2014
bool check_multixact_member_buffers(int *newval, void **extra, GucSource source)
Definition: multixact.c:2023
void assign_search_path(const char *newval, void *extra)
Definition: namespace.c:4713
char * namespace_search_path
Definition: namespace.c:211
bool check_search_path(char **newval, void **extra, GucSource source)
Definition: namespace.c:4657
@ 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:44
@ BACKSLASH_QUOTE_ON
Definition: parser.h:51
@ BACKSLASH_QUOTE_SAFE_ENCODING
Definition: parser.h:52
@ BACKSLASH_QUOTE_OFF
Definition: parser.h:50
bool enable_group_by_reordering
Definition: pathkeys.c:32
#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:146
void assign_locale_time(const char *newval, void *extra)
Definition: pg_locale.c:421
bool check_locale_time(char **newval, void **extra, GucSource source)
Definition: pg_locale.c:415
char * locale_messages
Definition: pg_locale.c:141
char * locale_numeric
Definition: pg_locale.c:143
char * locale_time
Definition: pg_locale.c:144
bool check_locale_numeric(char **newval, void **extra, GucSource source)
Definition: pg_locale.c:403
void assign_locale_numeric(const char *newval, void *extra)
Definition: pg_locale.c:409
bool check_locale_messages(char **newval, void **extra, GucSource source)
Definition: pg_locale.c:437
void assign_locale_messages(const char *newval, void *extra)
Definition: pg_locale.c:460
void assign_locale_monetary(const char *newval, void *extra)
Definition: pg_locale.c:397
char * locale_monetary
Definition: pg_locale.c:142
bool check_locale_monetary(char **newval, void **extra, GucSource source)
Definition: pg_locale.c:391
@ 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:205
bool pgstat_track_counts
Definition: pgstat.c:204
void assign_stats_fetch_consistency(int newval, void *extra)
Definition: pgstat.c:2097
@ PGSTAT_FETCH_CONSISTENCY_NONE
Definition: pgstat.h:102
@ PGSTAT_FETCH_CONSISTENCY_CACHE
Definition: pgstat.h:103
@ PGSTAT_FETCH_CONSISTENCY_SNAPSHOT
Definition: pgstat.h:104
@ TRACK_FUNC_PL
Definition: pgstat.h:96
@ TRACK_FUNC_ALL
Definition: pgstat.h:97
@ TRACK_FUNC_OFF
Definition: pgstat.h:95
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:57
#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
bool enable_distinct_reordering
Definition: planner.c:69
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:3558
void assign_restrict_nonsystem_relation_kind(const char *newval, void *extra)
Definition: postgres.c:3627
int PostAuthDelay
Definition: postgres.c:98
int client_connection_check_interval
Definition: postgres.c:101
bool check_log_stats(bool *newval, void **extra, GucSource source)
Definition: postgres.c:3543
bool check_client_connection_check_interval(int *newval, void **extra, GucSource source)
Definition: postgres.c:3508
bool check_restrict_nonsystem_relation_kind(char **newval, void **extra, GucSource source)
Definition: postgres.c:3577
bool Log_disconnections
Definition: postgres.c:93
bool check_stage_log_stats(bool *newval, void **extra, GucSource source)
Definition: postgres.c:3529
int PreAuthDelay
Definition: postmaster.c:232
bool send_abort_for_kill
Definition: postmaster.c:243
int PostPortNumber
Definition: postmaster.c:195
bool log_hostname
Definition: postmaster.c:235
bool remove_temp_files_after_crash
Definition: postmaster.c:241
bool enable_bonjour
Definition: postmaster.c:238
bool restart_after_crash
Definition: postmaster.c:240
bool Log_connections
Definition: postmaster.c:236
int ReservedConnections
Definition: postmaster.c:222
char * Unix_socket_directories
Definition: postmaster.c:198
bool send_abort_for_crash
Definition: postmaster.c:242
int AuthenticationTimeout
Definition: postmaster.c:233
bool EnableSSL
Definition: postmaster.c:230
char * ListenAddresses
Definition: postmaster.c:201
int SuperuserReservedConnections
Definition: postmaster.c:221
char * bonjour_name
Definition: postmaster.c:239
#define MAX_BACKENDS
Definition: postmaster.h:138
void assign_tcp_keepalives_count(int newval, void *extra)
Definition: pqcomm.c:2008
const char * show_tcp_keepalives_interval(void)
Definition: pqcomm.c:1995
int Unix_socket_permissions
Definition: pqcomm.c:106
const char * show_tcp_keepalives_count(void)
Definition: pqcomm.c:2018
char * Unix_socket_group
Definition: pqcomm.c:107
const char * show_tcp_keepalives_idle(void)
Definition: pqcomm.c:1972
void assign_tcp_keepalives_idle(int newval, void *extra)
Definition: pqcomm.c:1952
const char * show_tcp_user_timeout(void)
Definition: pqcomm.c:2041
void assign_tcp_user_timeout(int newval, void *extra)
Definition: pqcomm.c:2031
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:31
#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:34
@ DEBUG_LOGICAL_REP_STREAMING_BUFFERED
Definition: reorderbuffer.h:33
bool quote_all_identifiers
Definition: ruleutils.c:337
bool escape_string_warning
Definition: scan.l:69
int backslash_quote
Definition: scan.l:68
bool standard_conforming_strings
Definition: scan.l:70
#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:2557
bool check_synchronized_standby_slots(char **newval, void **extra, GucSource source)
Definition: slot.c:2503
int max_replication_slots
Definition: slot.c:141
bool sync_replication_slots
Definition: slotsync.c:107
#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
int max_stack_depth
Definition: stack_depth.c:26
bool check_max_stack_depth(int *newval, void **extra, GucSource source)
Definition: stack_depth.c:142
void assign_max_stack_depth(int newval, void *extra)
Definition: stack_depth.c:159
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:1056
void assign_synchronous_standby_names(const char *newval, void *extra)
Definition: syncrep.c:1050
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:33
@ LOGSTMT_MOD
Definition: tcopprot.h:35
@ LOGSTMT_DDL
Definition: tcopprot.h:34
@ LOGSTMT_ALL
Definition: tcopprot.h:36
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:6585
#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:124
int max_prepared_xacts
Definition: twophase.c:115
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
int vacuum_freeze_min_age
Definition: vacuum.c:66
bool check_vacuum_buffer_usage_limit(int *newval, void **extra, GucSource source)
Definition: vacuum.c:124
int vacuum_multixact_freeze_table_age
Definition: vacuum.c:69
int vacuum_freeze_table_age
Definition: vacuum.c:67
int vacuum_multixact_failsafe_age
Definition: vacuum.c:71
int vacuum_multixact_freeze_min_age
Definition: vacuum.c:68
int vacuum_failsafe_age
Definition: vacuum.c:70
#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:70
int WalWriterDelay
Definition: walwriter.c:69
#define DEFAULT_WAL_WRITER_FLUSH_AFTER
Definition: walwriter.h:15
int synchronous_commit
Definition: xact.c:86
bool XactDeferrable
Definition: xact.c:84
bool DefaultXactDeferrable
Definition: xact.c:83
bool XactReadOnly
Definition: xact.c:81
int XactIsoLevel
Definition: xact.c:78
int DefaultXactIsoLevel
Definition: xact.c:77
bool DefaultXactReadOnly
Definition: xact.c:80
#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:8641
int wal_decode_buffer_size
Definition: xlog.c:136
bool fullPageWrites
Definition: xlog.c:122
bool check_max_slot_wal_keep_size(int *newval, void **extra, GucSource source)
Definition: xlog.c:2223
char * XLogArchiveCommand
Definition: xlog.c:120
int wal_keep_size_mb
Definition: xlog.c:116
bool EnableHotStandby
Definition: xlog.c:121
void assign_wal_consistency_checking(const char *newval, void *extra)
Definition: xlog.c:4757
int CommitDelay
Definition: xlog.c:132
bool wal_init_zero
Definition: xlog.c:127
int XLogArchiveMode
Definition: xlog.c:119
int wal_level
Definition: xlog.c:131
void assign_checkpoint_completion_target(double newval, void *extra)
Definition: xlog.c:2198
int wal_segment_size
Definition: xlog.c:143
const char * show_archive_command(void)
Definition: xlog.c:4810
int max_wal_size_mb
Definition: xlog.c:114
int XLogArchiveTimeout
Definition: xlog.c:118
bool wal_recycle
Definition: xlog.c:128
char * wal_consistency_checking_string
Definition: xlog.c:125
int CommitSiblings
Definition: xlog.c:133
const char * show_in_hot_standby(void)
Definition: xlog.c:4822
bool wal_log_hints
Definition: xlog.c:123
int wal_sync_method
Definition: xlog.c:130
int max_slot_wal_keep_size_mb
Definition: xlog.c:135
bool log_checkpoints
Definition: xlog.c:129
void assign_max_wal_size(int newval, void *extra)
Definition: xlog.c:2191
int wal_compression
Definition: xlog.c:124
int wal_retrieve_retry_interval
Definition: xlog.c:134
int XLOGbuffers
Definition: xlog.c:117
bool track_wal_io_timing
Definition: xlog.c:137
bool check_wal_segment_size(int *newval, void **extra, GucSource source)
Definition: xlog.c:2205
bool check_wal_consistency_checking(char **newval, void **extra, GucSource source)
Definition: xlog.c:4672
int min_wal_size_mb
Definition: xlog.c:115
bool check_wal_buffers(int *newval, void **extra, GucSource source)
Definition: xlog.c:4637
@ 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