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-2025, 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#ifdef HAVE_COPYFILE_H
24#include <copyfile.h>
25#endif
26#include <float.h>
27#include <limits.h>
28#ifdef HAVE_SYSLOG
29#include <syslog.h>
30#endif
31
32#include "access/commit_ts.h"
33#include "access/gin.h"
34#include "access/slru.h"
36#include "access/twophase.h"
39#include "access/xlogrecovery.h"
40#include "access/xlogutils.h"
42#include "catalog/namespace.h"
43#include "catalog/storage.h"
44#include "commands/async.h"
45#include "commands/extension.h"
47#include "commands/tablespace.h"
48#include "commands/trigger.h"
49#include "commands/user.h"
50#include "commands/vacuum.h"
51#include "common/file_utils.h"
52#include "common/scram-common.h"
53#include "jit/jit.h"
54#include "libpq/auth.h"
55#include "libpq/libpq.h"
56#include "libpq/oauth.h"
57#include "libpq/scram.h"
58#include "nodes/queryjumble.h"
59#include "optimizer/cost.h"
60#include "optimizer/geqo.h"
61#include "optimizer/optimizer.h"
62#include "optimizer/paths.h"
63#include "optimizer/planmain.h"
64#include "parser/parse_expr.h"
65#include "parser/parser.h"
66#include "pgstat.h"
69#include "postmaster/bgwriter.h"
71#include "postmaster/startup.h"
76#include "replication/slot.h"
78#include "replication/syncrep.h"
79#include "storage/aio.h"
80#include "storage/bufmgr.h"
81#include "storage/bufpage.h"
82#include "storage/copydir.h"
83#include "storage/io_worker.h"
85#include "storage/pg_shmem.h"
86#include "storage/predicate.h"
87#include "storage/procnumber.h"
88#include "storage/standby.h"
90#include "tcop/tcopprot.h"
91#include "tsearch/ts_cache.h"
92#include "utils/builtins.h"
93#include "utils/bytea.h"
94#include "utils/float.h"
95#include "utils/guc_hooks.h"
96#include "utils/guc_tables.h"
97#include "utils/inval.h"
98#include "utils/memutils.h"
99#include "utils/pg_locale.h"
100#include "utils/plancache.h"
101#include "utils/ps_status.h"
102#include "utils/rls.h"
103#include "utils/xml.h"
104
105#ifdef TRACE_SYNCSCAN
106#include "access/syncscan.h"
107#endif
108
109/* This value is normally passed in from the Makefile */
110#ifndef PG_KRB_SRVTAB
111#define PG_KRB_SRVTAB ""
112#endif
113
114/*
115 * Options for enum values defined in this module.
116 *
117 * NOTE! Option values may not contain double quotes!
118 */
119
121 {"escape", BYTEA_OUTPUT_ESCAPE, false},
122 {"hex", BYTEA_OUTPUT_HEX, false},
123 {NULL, 0, false}
124};
125
127 "array length mismatch");
128
129/*
130 * We have different sets for client and server message level options because
131 * they sort slightly different (see "log" level), and because "fatal"/"panic"
132 * aren't sensible for client_min_messages.
133 */
135 {"debug5", DEBUG5, false},
136 {"debug4", DEBUG4, false},
137 {"debug3", DEBUG3, false},
138 {"debug2", DEBUG2, false},
139 {"debug1", DEBUG1, false},
140 {"debug", DEBUG2, true},
141 {"log", LOG, false},
142 {"info", INFO, true},
143 {"notice", NOTICE, false},
144 {"warning", WARNING, false},
145 {"error", ERROR, false},
146 {NULL, 0, false}
147};
148
150 {"debug5", DEBUG5, false},
151 {"debug4", DEBUG4, false},
152 {"debug3", DEBUG3, false},
153 {"debug2", DEBUG2, false},
154 {"debug1", DEBUG1, false},
155 {"debug", DEBUG2, true},
156 {"info", INFO, false},
157 {"notice", NOTICE, false},
158 {"warning", WARNING, false},
159 {"error", ERROR, false},
160 {"log", LOG, false},
161 {"fatal", FATAL, false},
162 {"panic", PANIC, false},
163 {NULL, 0, false}
164};
165
167 {"postgres", INTSTYLE_POSTGRES, false},
168 {"postgres_verbose", INTSTYLE_POSTGRES_VERBOSE, false},
169 {"sql_standard", INTSTYLE_SQL_STANDARD, false},
170 {"iso_8601", INTSTYLE_ISO_8601, false},
171 {NULL, 0, false}
172};
173
175 {"disabled", -1, false},
176 {"debug5", DEBUG5, false},
177 {"debug4", DEBUG4, false},
178 {"debug3", DEBUG3, false},
179 {"debug2", DEBUG2, false},
180 {"debug1", DEBUG1, false},
181 {"debug", DEBUG2, true},
182 {"log", LOG, false},
183 {"info", INFO, true},
184 {"notice", NOTICE, false},
185 {"warning", WARNING, false},
186 {"error", ERROR, false},
187 {NULL, 0, false}
188};
189
191 "array length mismatch");
192
194 {"terse", PGERROR_TERSE, false},
195 {"default", PGERROR_DEFAULT, false},
196 {"verbose", PGERROR_VERBOSE, false},
197 {NULL, 0, false}
198};
199
201 "array length mismatch");
202
204 {"none", LOGSTMT_NONE, false},
205 {"ddl", LOGSTMT_DDL, false},
206 {"mod", LOGSTMT_MOD, false},
207 {"all", LOGSTMT_ALL, false},
208 {NULL, 0, false}
209};
210
212 "array length mismatch");
213
215 {"serializable", XACT_SERIALIZABLE, false},
216 {"repeatable read", XACT_REPEATABLE_READ, false},
217 {"read committed", XACT_READ_COMMITTED, false},
218 {"read uncommitted", XACT_READ_UNCOMMITTED, false},
219 {NULL, 0}
220};
221
223 {"origin", SESSION_REPLICATION_ROLE_ORIGIN, false},
224 {"replica", SESSION_REPLICATION_ROLE_REPLICA, false},
225 {"local", SESSION_REPLICATION_ROLE_LOCAL, false},
226 {NULL, 0, false}
227};
228
230 "array length mismatch");
231
233#ifdef HAVE_SYSLOG
234 {"local0", LOG_LOCAL0, false},
235 {"local1", LOG_LOCAL1, false},
236 {"local2", LOG_LOCAL2, false},
237 {"local3", LOG_LOCAL3, false},
238 {"local4", LOG_LOCAL4, false},
239 {"local5", LOG_LOCAL5, false},
240 {"local6", LOG_LOCAL6, false},
241 {"local7", LOG_LOCAL7, false},
242#else
243 {"none", 0, false},
244#endif
245 {NULL, 0}
246};
247
249 {"none", TRACK_FUNC_OFF, false},
250 {"pl", TRACK_FUNC_PL, false},
251 {"all", TRACK_FUNC_ALL, false},
252 {NULL, 0, false}
253};
254
256 "array length mismatch");
257
259 {"none", PGSTAT_FETCH_CONSISTENCY_NONE, false},
260 {"cache", PGSTAT_FETCH_CONSISTENCY_CACHE, false},
261 {"snapshot", PGSTAT_FETCH_CONSISTENCY_SNAPSHOT, false},
262 {NULL, 0, false}
263};
264
266 "array length mismatch");
267
268static const struct config_enum_entry xmlbinary_options[] = {
269 {"base64", XMLBINARY_BASE64, false},
270 {"hex", XMLBINARY_HEX, false},
271 {NULL, 0, false}
272};
273
275 "array length mismatch");
276
277static const struct config_enum_entry xmloption_options[] = {
278 {"content", XMLOPTION_CONTENT, false},
279 {"document", XMLOPTION_DOCUMENT, false},
280 {NULL, 0, false}
281};
282
284 "array length mismatch");
285
286/*
287 * Although only "on", "off", and "safe_encoding" are documented, we
288 * accept all the likely variants of "on" and "off".
289 */
291 {"safe_encoding", BACKSLASH_QUOTE_SAFE_ENCODING, false},
292 {"on", BACKSLASH_QUOTE_ON, false},
293 {"off", BACKSLASH_QUOTE_OFF, false},
294 {"true", BACKSLASH_QUOTE_ON, true},
295 {"false", BACKSLASH_QUOTE_OFF, true},
296 {"yes", BACKSLASH_QUOTE_ON, true},
297 {"no", BACKSLASH_QUOTE_OFF, true},
298 {"1", BACKSLASH_QUOTE_ON, true},
299 {"0", BACKSLASH_QUOTE_OFF, true},
300 {NULL, 0, false}
301};
302
303/*
304 * Although only "on", "off", and "auto" are documented, we accept
305 * all the likely variants of "on" and "off".
306 */
308 {"auto", COMPUTE_QUERY_ID_AUTO, false},
309 {"regress", COMPUTE_QUERY_ID_REGRESS, false},
310 {"on", COMPUTE_QUERY_ID_ON, false},
311 {"off", COMPUTE_QUERY_ID_OFF, false},
312 {"true", COMPUTE_QUERY_ID_ON, true},
313 {"false", COMPUTE_QUERY_ID_OFF, true},
314 {"yes", COMPUTE_QUERY_ID_ON, true},
315 {"no", COMPUTE_QUERY_ID_OFF, true},
316 {"1", COMPUTE_QUERY_ID_ON, true},
317 {"0", COMPUTE_QUERY_ID_OFF, true},
318 {NULL, 0, false}
319};
320
321/*
322 * Although only "on", "off", and "partition" are documented, we
323 * accept all the likely variants of "on" and "off".
324 */
326 {"partition", CONSTRAINT_EXCLUSION_PARTITION, false},
327 {"on", CONSTRAINT_EXCLUSION_ON, false},
328 {"off", CONSTRAINT_EXCLUSION_OFF, false},
329 {"true", CONSTRAINT_EXCLUSION_ON, true},
330 {"false", CONSTRAINT_EXCLUSION_OFF, true},
331 {"yes", CONSTRAINT_EXCLUSION_ON, true},
332 {"no", CONSTRAINT_EXCLUSION_OFF, true},
333 {"1", CONSTRAINT_EXCLUSION_ON, true},
334 {"0", CONSTRAINT_EXCLUSION_OFF, true},
335 {NULL, 0, false}
336};
337
338/*
339 * Although only "on", "off", "remote_apply", "remote_write", and "local" are
340 * documented, we accept all the likely variants of "on" and "off".
341 */
343 {"local", SYNCHRONOUS_COMMIT_LOCAL_FLUSH, false},
344 {"remote_write", SYNCHRONOUS_COMMIT_REMOTE_WRITE, false},
345 {"remote_apply", SYNCHRONOUS_COMMIT_REMOTE_APPLY, false},
346 {"on", SYNCHRONOUS_COMMIT_ON, false},
347 {"off", SYNCHRONOUS_COMMIT_OFF, false},
348 {"true", SYNCHRONOUS_COMMIT_ON, true},
349 {"false", SYNCHRONOUS_COMMIT_OFF, true},
350 {"yes", SYNCHRONOUS_COMMIT_ON, true},
351 {"no", SYNCHRONOUS_COMMIT_OFF, true},
352 {"1", SYNCHRONOUS_COMMIT_ON, true},
353 {"0", SYNCHRONOUS_COMMIT_OFF, true},
354 {NULL, 0, false}
355};
356
357/*
358 * Although only "on", "off", "try" are documented, we accept all the likely
359 * variants of "on" and "off".
360 */
361static const struct config_enum_entry huge_pages_options[] = {
362 {"off", HUGE_PAGES_OFF, false},
363 {"on", HUGE_PAGES_ON, false},
364 {"try", HUGE_PAGES_TRY, false},
365 {"true", HUGE_PAGES_ON, true},
366 {"false", HUGE_PAGES_OFF, true},
367 {"yes", HUGE_PAGES_ON, true},
368 {"no", HUGE_PAGES_OFF, true},
369 {"1", HUGE_PAGES_ON, true},
370 {"0", HUGE_PAGES_OFF, true},
371 {NULL, 0, false}
372};
373
375 {"off", HUGE_PAGES_OFF, false},
376 {"on", HUGE_PAGES_ON, false},
377 {"unknown", HUGE_PAGES_UNKNOWN, false},
378 {NULL, 0, false}
379};
380
382 {"off", RECOVERY_PREFETCH_OFF, false},
383 {"on", RECOVERY_PREFETCH_ON, false},
384 {"try", RECOVERY_PREFETCH_TRY, false},
385 {"true", RECOVERY_PREFETCH_ON, true},
386 {"false", RECOVERY_PREFETCH_OFF, true},
387 {"yes", RECOVERY_PREFETCH_ON, true},
388 {"no", RECOVERY_PREFETCH_OFF, true},
389 {"1", RECOVERY_PREFETCH_ON, true},
390 {"0", RECOVERY_PREFETCH_OFF, true},
391 {NULL, 0, false}
392};
393
395 {"off", DEBUG_PARALLEL_OFF, false},
396 {"on", DEBUG_PARALLEL_ON, false},
397 {"regress", DEBUG_PARALLEL_REGRESS, false},
398 {"true", DEBUG_PARALLEL_ON, true},
399 {"false", DEBUG_PARALLEL_OFF, true},
400 {"yes", DEBUG_PARALLEL_ON, true},
401 {"no", DEBUG_PARALLEL_OFF, true},
402 {"1", DEBUG_PARALLEL_ON, true},
403 {"0", DEBUG_PARALLEL_OFF, true},
404 {NULL, 0, false}
405};
406
408 {"auto", PLAN_CACHE_MODE_AUTO, false},
409 {"force_generic_plan", PLAN_CACHE_MODE_FORCE_GENERIC_PLAN, false},
410 {"force_custom_plan", PLAN_CACHE_MODE_FORCE_CUSTOM_PLAN, false},
411 {NULL, 0, false}
412};
413
415 {"md5", PASSWORD_TYPE_MD5, false},
416 {"scram-sha-256", PASSWORD_TYPE_SCRAM_SHA_256, false},
417 {NULL, 0, false}
418};
419
421 {"", PG_TLS_ANY, false},
422 {"TLSv1", PG_TLS1_VERSION, false},
423 {"TLSv1.1", PG_TLS1_1_VERSION, false},
424 {"TLSv1.2", PG_TLS1_2_VERSION, false},
425 {"TLSv1.3", PG_TLS1_3_VERSION, false},
426 {NULL, 0, false}
427};
428
430 {"buffered", DEBUG_LOGICAL_REP_STREAMING_BUFFERED, false},
431 {"immediate", DEBUG_LOGICAL_REP_STREAMING_IMMEDIATE, false},
432 {NULL, 0, false}
433};
434
436 "array length mismatch");
437
439 {"fsync", DATA_DIR_SYNC_METHOD_FSYNC, false},
440#ifdef HAVE_SYNCFS
441 {"syncfs", DATA_DIR_SYNC_METHOD_SYNCFS, false},
442#endif
443 {NULL, 0, false}
444};
445
447#ifndef WIN32
448 {"sysv", SHMEM_TYPE_SYSV, false},
449#endif
450#ifndef EXEC_BACKEND
451 {"mmap", SHMEM_TYPE_MMAP, false},
452#endif
453#ifdef WIN32
454 {"windows", SHMEM_TYPE_WINDOWS, false},
455#endif
456 {NULL, 0, false}
457};
458
460 {"pglz", TOAST_PGLZ_COMPRESSION, false},
461#ifdef USE_LZ4
462 {"lz4", TOAST_LZ4_COMPRESSION, false},
463#endif
464 {NULL, 0, false}
465};
466
468 {"pglz", WAL_COMPRESSION_PGLZ, false},
469#ifdef USE_LZ4
470 {"lz4", WAL_COMPRESSION_LZ4, false},
471#endif
472#ifdef USE_ZSTD
473 {"zstd", WAL_COMPRESSION_ZSTD, false},
474#endif
475 {"on", WAL_COMPRESSION_PGLZ, false},
476 {"off", WAL_COMPRESSION_NONE, false},
477 {"true", WAL_COMPRESSION_PGLZ, true},
478 {"false", WAL_COMPRESSION_NONE, true},
479 {"yes", WAL_COMPRESSION_PGLZ, true},
480 {"no", WAL_COMPRESSION_NONE, true},
481 {"1", WAL_COMPRESSION_PGLZ, true},
482 {"0", WAL_COMPRESSION_NONE, true},
483 {NULL, 0, false}
484};
485
487 {"copy", FILE_COPY_METHOD_COPY, false},
488#if defined(HAVE_COPYFILE) && defined(COPYFILE_CLONE_FORCE) || defined(HAVE_COPY_FILE_RANGE)
489 {"clone", FILE_COPY_METHOD_CLONE, false},
490#endif
491 {NULL, 0, false}
492};
493
494/*
495 * Options for enum values stored in other modules
496 */
497extern const struct config_enum_entry wal_level_options[];
498extern const struct config_enum_entry archive_mode_options[];
500extern const struct config_enum_entry wal_sync_method_options[];
502
503/*
504 * GUC option variables that are exported from this module
505 */
507bool log_duration = false;
508bool Debug_print_plan = false;
509bool Debug_print_parse = false;
512
513#ifdef DEBUG_NODE_TESTS_ENABLED
514bool Debug_copy_parse_plan_trees;
515bool Debug_write_read_parse_plan_trees;
516bool Debug_raw_expression_coverage_test;
517#endif
518
519bool log_parser_stats = false;
520bool log_planner_stats = false;
522bool log_statement_stats = false; /* this is sort of all three above
523 * together */
526
529
530/*
531 * This GUC exists solely for backward compatibility, check its definition for
532 * details.
533 */
534static bool default_with_oids = false;
535
537
549
551
553
554char *cluster_name = "";
559
561
566
567/*
568 * SSL renegotiation was been removed in PostgreSQL 9.5, but we tolerate it
569 * being set to zero (meaning never renegotiate) for backward compatibility.
570 * This avoids breaking compatibility with clients that have never supported
571 * renegotiation and therefore always try to zero it.
572 */
574
575/*
576 * This really belongs in pg_shmem.c, but is defined here so that it doesn't
577 * need to be duplicated in all the different implementations of pg_shmem.c.
578 */
582
583/*
584 * These variables are all dummies that don't do anything, except in some
585 * cases provide the value for SHOW to display. The real state is elsewhere
586 * and is kept in sync by assign_hooks.
587 */
588static char *syslog_ident_str;
589static double phony_random_seed;
591static char *datestyle_string;
597
598#ifdef HAVE_SYSLOG
599#define DEFAULT_SYSLOG_FACILITY LOG_LOCAL0
600#else
601#define DEFAULT_SYSLOG_FACILITY 0
602#endif
604
605static char *timezone_string;
608static char *data_directory;
611static int max_index_keys;
613static int block_size;
614static int segment_size;
617static int wal_block_size;
619static bool data_checksums;
621
622#ifdef USE_ASSERT_CHECKING
623#define DEFAULT_ASSERT_ENABLED true
624#else
625#define DEFAULT_ASSERT_ENABLED false
626#endif
628
634
635/* should be static, but commands/variable.c needs to get at this */
637
638/* should be static, but guc.c needs to get at this */
640
641
642/*
643 * Displayable names for context types (enum GucContext)
644 *
645 * Note: these strings are deliberately not localized.
646 */
647const char *const GucContext_Names[] =
648{
649 [PGC_INTERNAL] = "internal",
650 [PGC_POSTMASTER] = "postmaster",
651 [PGC_SIGHUP] = "sighup",
652 [PGC_SU_BACKEND] = "superuser-backend",
653 [PGC_BACKEND] = "backend",
654 [PGC_SUSET] = "superuser",
655 [PGC_USERSET] = "user",
656};
657
659 "array length mismatch");
660
661/*
662 * Displayable names for source types (enum GucSource)
663 *
664 * Note: these strings are deliberately not localized.
665 */
666const char *const GucSource_Names[] =
667{
668 [PGC_S_DEFAULT] = "default",
669 [PGC_S_DYNAMIC_DEFAULT] = "default",
670 [PGC_S_ENV_VAR] = "environment variable",
671 [PGC_S_FILE] = "configuration file",
672 [PGC_S_ARGV] = "command line",
673 [PGC_S_GLOBAL] = "global",
674 [PGC_S_DATABASE] = "database",
675 [PGC_S_USER] = "user",
676 [PGC_S_DATABASE_USER] = "database user",
677 [PGC_S_CLIENT] = "client",
678 [PGC_S_OVERRIDE] = "override",
679 [PGC_S_INTERACTIVE] = "interactive",
680 [PGC_S_TEST] = "test",
681 [PGC_S_SESSION] = "session",
682};
683
685 "array length mismatch");
686
687/*
688 * Displayable names for the groupings defined in enum config_group
689 */
690const char *const config_group_names[] =
691{
692 [UNGROUPED] = gettext_noop("Ungrouped"),
693 [FILE_LOCATIONS] = gettext_noop("File Locations"),
694 [CONN_AUTH_SETTINGS] = gettext_noop("Connections and Authentication / Connection Settings"),
695 [CONN_AUTH_TCP] = gettext_noop("Connections and Authentication / TCP Settings"),
696 [CONN_AUTH_AUTH] = gettext_noop("Connections and Authentication / Authentication"),
697 [CONN_AUTH_SSL] = gettext_noop("Connections and Authentication / SSL"),
698 [RESOURCES_MEM] = gettext_noop("Resource Usage / Memory"),
699 [RESOURCES_DISK] = gettext_noop("Resource Usage / Disk"),
700 [RESOURCES_KERNEL] = gettext_noop("Resource Usage / Kernel Resources"),
701 [RESOURCES_BGWRITER] = gettext_noop("Resource Usage / Background Writer"),
702 [RESOURCES_IO] = gettext_noop("Resource Usage / I/O"),
703 [RESOURCES_WORKER_PROCESSES] = gettext_noop("Resource Usage / Worker Processes"),
704 [WAL_SETTINGS] = gettext_noop("Write-Ahead Log / Settings"),
705 [WAL_CHECKPOINTS] = gettext_noop("Write-Ahead Log / Checkpoints"),
706 [WAL_ARCHIVING] = gettext_noop("Write-Ahead Log / Archiving"),
707 [WAL_RECOVERY] = gettext_noop("Write-Ahead Log / Recovery"),
708 [WAL_ARCHIVE_RECOVERY] = gettext_noop("Write-Ahead Log / Archive Recovery"),
709 [WAL_RECOVERY_TARGET] = gettext_noop("Write-Ahead Log / Recovery Target"),
710 [WAL_SUMMARIZATION] = gettext_noop("Write-Ahead Log / Summarization"),
711 [REPLICATION_SENDING] = gettext_noop("Replication / Sending Servers"),
712 [REPLICATION_PRIMARY] = gettext_noop("Replication / Primary Server"),
713 [REPLICATION_STANDBY] = gettext_noop("Replication / Standby Servers"),
714 [REPLICATION_SUBSCRIBERS] = gettext_noop("Replication / Subscribers"),
715 [QUERY_TUNING_METHOD] = gettext_noop("Query Tuning / Planner Method Configuration"),
716 [QUERY_TUNING_COST] = gettext_noop("Query Tuning / Planner Cost Constants"),
717 [QUERY_TUNING_GEQO] = gettext_noop("Query Tuning / Genetic Query Optimizer"),
718 [QUERY_TUNING_OTHER] = gettext_noop("Query Tuning / Other Planner Options"),
719 [LOGGING_WHERE] = gettext_noop("Reporting and Logging / Where to Log"),
720 [LOGGING_WHEN] = gettext_noop("Reporting and Logging / When to Log"),
721 [LOGGING_WHAT] = gettext_noop("Reporting and Logging / What to Log"),
722 [PROCESS_TITLE] = gettext_noop("Reporting and Logging / Process Title"),
723 [STATS_MONITORING] = gettext_noop("Statistics / Monitoring"),
724 [STATS_CUMULATIVE] = gettext_noop("Statistics / Cumulative Query and Index Statistics"),
725 [VACUUM_AUTOVACUUM] = gettext_noop("Vacuuming / Automatic Vacuuming"),
726 [VACUUM_COST_DELAY] = gettext_noop("Vacuuming / Cost-Based Vacuum Delay"),
727 [VACUUM_DEFAULT] = gettext_noop("Vacuuming / Default Behavior"),
728 [VACUUM_FREEZING] = gettext_noop("Vacuuming / Freezing"),
729 [CLIENT_CONN_STATEMENT] = gettext_noop("Client Connection Defaults / Statement Behavior"),
730 [CLIENT_CONN_LOCALE] = gettext_noop("Client Connection Defaults / Locale and Formatting"),
731 [CLIENT_CONN_PRELOAD] = gettext_noop("Client Connection Defaults / Shared Library Preloading"),
732 [CLIENT_CONN_OTHER] = gettext_noop("Client Connection Defaults / Other Defaults"),
733 [LOCK_MANAGEMENT] = gettext_noop("Lock Management"),
734 [COMPAT_OPTIONS_PREVIOUS] = gettext_noop("Version and Platform Compatibility / Previous PostgreSQL Versions"),
735 [COMPAT_OPTIONS_OTHER] = gettext_noop("Version and Platform Compatibility / Other Platforms and Clients"),
736 [ERROR_HANDLING_OPTIONS] = gettext_noop("Error Handling"),
737 [PRESET_OPTIONS] = gettext_noop("Preset Options"),
738 [CUSTOM_OPTIONS] = gettext_noop("Customized Options"),
739 [DEVELOPER_OPTIONS] = gettext_noop("Developer Options"),
740};
741
743 "array length mismatch");
744
745/*
746 * Displayable names for GUC variable types (enum config_type)
747 *
748 * Note: these strings are deliberately not localized.
749 */
750const char *const config_type_names[] =
751{
752 [PGC_BOOL] = "bool",
753 [PGC_INT] = "integer",
754 [PGC_REAL] = "real",
755 [PGC_STRING] = "string",
756 [PGC_ENUM] = "enum",
757};
758
760 "array length mismatch");
761
762
763/*
764 * Contents of GUC tables
765 *
766 * See src/backend/utils/misc/README for design notes.
767 *
768 * TO ADD AN OPTION:
769 *
770 * 1. Declare a global variable of type bool, int, double, or char*
771 * and make use of it.
772 *
773 * 2. Decide at what times it's safe to set the option. See guc.h for
774 * details.
775 *
776 * 3. Decide on a name, a default value, upper and lower bounds (if
777 * applicable), etc.
778 *
779 * 4. Add a record below.
780 *
781 * 5. Add it to src/backend/utils/misc/postgresql.conf.sample, if
782 * appropriate.
783 *
784 * 6. Don't forget to document the option (at least in config.sgml).
785 *
786 * 7. If it's a new GUC_LIST_QUOTE option, you must add it to
787 * variable_is_guc_list_quote() in src/bin/pg_dump/dumputils.c.
788 */
789
791{
792 {
793 {"enable_seqscan", PGC_USERSET, QUERY_TUNING_METHOD,
794 gettext_noop("Enables the planner's use of sequential-scan plans."),
795 NULL,
797 },
799 true,
800 NULL, NULL, NULL
801 },
802 {
803 {"enable_indexscan", PGC_USERSET, QUERY_TUNING_METHOD,
804 gettext_noop("Enables the planner's use of index-scan plans."),
805 NULL,
807 },
809 true,
810 NULL, NULL, NULL
811 },
812 {
813 {"enable_indexonlyscan", PGC_USERSET, QUERY_TUNING_METHOD,
814 gettext_noop("Enables the planner's use of index-only-scan plans."),
815 NULL,
817 },
819 true,
820 NULL, NULL, NULL
821 },
822 {
823 {"enable_bitmapscan", PGC_USERSET, QUERY_TUNING_METHOD,
824 gettext_noop("Enables the planner's use of bitmap-scan plans."),
825 NULL,
827 },
829 true,
830 NULL, NULL, NULL
831 },
832 {
833 {"enable_tidscan", PGC_USERSET, QUERY_TUNING_METHOD,
834 gettext_noop("Enables the planner's use of TID scan plans."),
835 NULL,
837 },
839 true,
840 NULL, NULL, NULL
841 },
842 {
843 {"enable_sort", PGC_USERSET, QUERY_TUNING_METHOD,
844 gettext_noop("Enables the planner's use of explicit sort steps."),
845 NULL,
847 },
849 true,
850 NULL, NULL, NULL
851 },
852 {
853 {"enable_incremental_sort", PGC_USERSET, QUERY_TUNING_METHOD,
854 gettext_noop("Enables the planner's use of incremental sort steps."),
855 NULL,
857 },
859 true,
860 NULL, NULL, NULL
861 },
862 {
863 {"enable_hashagg", PGC_USERSET, QUERY_TUNING_METHOD,
864 gettext_noop("Enables the planner's use of hashed aggregation plans."),
865 NULL,
867 },
869 true,
870 NULL, NULL, NULL
871 },
872 {
873 {"enable_material", PGC_USERSET, QUERY_TUNING_METHOD,
874 gettext_noop("Enables the planner's use of materialization."),
875 NULL,
877 },
879 true,
880 NULL, NULL, NULL
881 },
882 {
883 {"enable_memoize", PGC_USERSET, QUERY_TUNING_METHOD,
884 gettext_noop("Enables the planner's use of memoization."),
885 NULL,
887 },
889 true,
890 NULL, NULL, NULL
891 },
892 {
893 {"enable_nestloop", PGC_USERSET, QUERY_TUNING_METHOD,
894 gettext_noop("Enables the planner's use of nested-loop join plans."),
895 NULL,
897 },
899 true,
900 NULL, NULL, NULL
901 },
902 {
903 {"enable_mergejoin", PGC_USERSET, QUERY_TUNING_METHOD,
904 gettext_noop("Enables the planner's use of merge join plans."),
905 NULL,
907 },
909 true,
910 NULL, NULL, NULL
911 },
912 {
913 {"enable_hashjoin", PGC_USERSET, QUERY_TUNING_METHOD,
914 gettext_noop("Enables the planner's use of hash join plans."),
915 NULL,
917 },
919 true,
920 NULL, NULL, NULL
921 },
922 {
923 {"enable_gathermerge", PGC_USERSET, QUERY_TUNING_METHOD,
924 gettext_noop("Enables the planner's use of gather merge plans."),
925 NULL,
927 },
929 true,
930 NULL, NULL, NULL
931 },
932 {
933 {"enable_partitionwise_join", PGC_USERSET, QUERY_TUNING_METHOD,
934 gettext_noop("Enables partitionwise join."),
935 NULL,
937 },
939 false,
940 NULL, NULL, NULL
941 },
942 {
943 {"enable_partitionwise_aggregate", PGC_USERSET, QUERY_TUNING_METHOD,
944 gettext_noop("Enables partitionwise aggregation and grouping."),
945 NULL,
947 },
949 false,
950 NULL, NULL, NULL
951 },
952 {
953 {"enable_parallel_append", PGC_USERSET, QUERY_TUNING_METHOD,
954 gettext_noop("Enables the planner's use of parallel append plans."),
955 NULL,
957 },
959 true,
960 NULL, NULL, NULL
961 },
962 {
963 {"enable_parallel_hash", PGC_USERSET, QUERY_TUNING_METHOD,
964 gettext_noop("Enables the planner's use of parallel hash plans."),
965 NULL,
967 },
969 true,
970 NULL, NULL, NULL
971 },
972 {
973 {"enable_partition_pruning", PGC_USERSET, QUERY_TUNING_METHOD,
974 gettext_noop("Enables plan-time and execution-time partition pruning."),
975 gettext_noop("Allows the query planner and executor to compare partition "
976 "bounds to conditions in the query to determine which "
977 "partitions must be scanned."),
979 },
981 true,
982 NULL, NULL, NULL
983 },
984 {
985 {"enable_presorted_aggregate", PGC_USERSET, QUERY_TUNING_METHOD,
986 gettext_noop("Enables the planner's ability to produce plans that "
987 "provide presorted input for ORDER BY / DISTINCT aggregate "
988 "functions."),
989 gettext_noop("Allows the query planner to build plans that provide "
990 "presorted input for aggregate functions with an ORDER BY / "
991 "DISTINCT clause. When disabled, implicit sorts are always "
992 "performed during execution."),
994 },
996 true,
997 NULL, NULL, NULL
998 },
999 {
1000 {"enable_async_append", PGC_USERSET, QUERY_TUNING_METHOD,
1001 gettext_noop("Enables the planner's use of async append plans."),
1002 NULL,
1004 },
1006 true,
1007 NULL, NULL, NULL
1008 },
1009 {
1010 {"enable_self_join_elimination", PGC_USERSET, QUERY_TUNING_METHOD,
1011 gettext_noop("Enables removal of unique self-joins."),
1012 NULL,
1014 },
1016 true,
1017 NULL, NULL, NULL
1018 },
1019 {
1020 {"enable_group_by_reordering", PGC_USERSET, QUERY_TUNING_METHOD,
1021 gettext_noop("Enables reordering of GROUP BY keys."),
1022 NULL,
1024 },
1026 true,
1027 NULL, NULL, NULL
1028 },
1029 {
1030 {"enable_distinct_reordering", PGC_USERSET, QUERY_TUNING_METHOD,
1031 gettext_noop("Enables reordering of DISTINCT pathkeys."),
1032 NULL,
1034 },
1036 true,
1037 NULL, NULL, NULL
1038 },
1039 {
1041 gettext_noop("Enables genetic query optimization."),
1042 gettext_noop("This algorithm attempts to do planning without "
1043 "exhaustive searching."),
1045 },
1046 &enable_geqo,
1047 true,
1048 NULL, NULL, NULL
1049 },
1050 {
1051 /*
1052 * Not for general use --- used by SET SESSION AUTHORIZATION and SET
1053 * ROLE
1054 */
1055 {"is_superuser", PGC_INTERNAL, UNGROUPED,
1056 gettext_noop("Shows whether the current user is a superuser."),
1057 NULL,
1059 },
1061 false,
1062 NULL, NULL, NULL
1063 },
1064 {
1065 /*
1066 * This setting itself cannot be set by ALTER SYSTEM to avoid an
1067 * operator turning this setting off by using ALTER SYSTEM, without a
1068 * way to turn it back on.
1069 */
1070 {"allow_alter_system", PGC_SIGHUP, COMPAT_OPTIONS_OTHER,
1071 gettext_noop("Allows running the ALTER SYSTEM command."),
1072 gettext_noop("Can be set to off for environments where global configuration "
1073 "changes should be made using a different method."),
1075 },
1077 true,
1078 NULL, NULL, NULL
1079 },
1080 {
1082 gettext_noop("Enables advertising the server via Bonjour."),
1083 NULL
1084 },
1086 false,
1087 check_bonjour, NULL, NULL
1088 },
1089 {
1090 {"track_commit_timestamp", PGC_POSTMASTER, REPLICATION_SENDING,
1091 gettext_noop("Collects transaction commit time."),
1092 NULL
1093 },
1095 false,
1096 NULL, NULL, NULL
1097 },
1098 {
1099 {"ssl", PGC_SIGHUP, CONN_AUTH_SSL,
1100 gettext_noop("Enables SSL connections."),
1101 NULL
1102 },
1103 &EnableSSL,
1104 false,
1105 check_ssl, NULL, NULL
1106 },
1107 {
1108 {"ssl_passphrase_command_supports_reload", PGC_SIGHUP, CONN_AUTH_SSL,
1109 gettext_noop("Controls whether \"ssl_passphrase_command\" is called during server reload."),
1110 NULL
1111 },
1113 false,
1114 NULL, NULL, NULL
1115 },
1116 {
1117 {"ssl_prefer_server_ciphers", PGC_SIGHUP, CONN_AUTH_SSL,
1118 gettext_noop("Give priority to server ciphersuite order."),
1119 NULL
1120 },
1122 true,
1123 NULL, NULL, NULL
1124 },
1125 {
1126 {"fsync", PGC_SIGHUP, WAL_SETTINGS,
1127 gettext_noop("Forces synchronization of updates to disk."),
1128 gettext_noop("The server will use the fsync() system call in several places to make "
1129 "sure that updates are physically written to disk. This ensures "
1130 "that a database cluster will recover to a consistent state after "
1131 "an operating system or hardware crash.")
1132 },
1133 &enableFsync,
1134 true,
1135 NULL, NULL, NULL
1136 },
1137 {
1138 {"ignore_checksum_failure", PGC_SUSET, DEVELOPER_OPTIONS,
1139 gettext_noop("Continues processing after a checksum failure."),
1140 gettext_noop("Detection of a checksum failure normally causes PostgreSQL to "
1141 "report an error, aborting the current transaction. Setting "
1142 "ignore_checksum_failure to true causes the system to ignore the failure "
1143 "(but still report a warning), and continue processing. This "
1144 "behavior could cause crashes or other serious problems. Only "
1145 "has an effect if checksums are enabled."),
1147 },
1149 false,
1150 NULL, NULL, NULL
1151 },
1152 {
1153 {"zero_damaged_pages", PGC_SUSET, DEVELOPER_OPTIONS,
1154 gettext_noop("Continues processing past damaged page headers."),
1155 gettext_noop("Detection of a damaged page header normally causes PostgreSQL to "
1156 "report an error, aborting the current transaction. Setting "
1157 "\"zero_damaged_pages\" to true causes the system to instead report a "
1158 "warning, zero out the damaged page, and continue processing. This "
1159 "behavior will destroy data, namely all the rows on the damaged page."),
1161 },
1163 false,
1164 NULL, NULL, NULL
1165 },
1166 {
1167 {"ignore_invalid_pages", PGC_POSTMASTER, DEVELOPER_OPTIONS,
1168 gettext_noop("Continues recovery after an invalid pages failure."),
1169 gettext_noop("Detection of WAL records having references to "
1170 "invalid pages during recovery causes PostgreSQL to "
1171 "raise a PANIC-level error, aborting the recovery. "
1172 "Setting \"ignore_invalid_pages\" to true causes "
1173 "the system to ignore invalid page references "
1174 "in WAL records (but still report a warning), "
1175 "and continue recovery. This behavior may cause "
1176 "crashes, data loss, propagate or hide corruption, "
1177 "or other serious problems. Only has an effect "
1178 "during recovery or in standby mode."),
1180 },
1182 false,
1183 NULL, NULL, NULL
1184 },
1185 {
1186 {"full_page_writes", PGC_SIGHUP, WAL_SETTINGS,
1187 gettext_noop("Writes full pages to WAL when first modified after a checkpoint."),
1188 gettext_noop("A page write in process during an operating system crash might be "
1189 "only partially written to disk. During recovery, the row changes "
1190 "stored in WAL are not enough to recover. This option writes "
1191 "pages when first modified after a checkpoint to WAL so full recovery "
1192 "is possible.")
1193 },
1195 true,
1196 NULL, NULL, NULL
1197 },
1198
1199 {
1200 {"wal_log_hints", PGC_POSTMASTER, WAL_SETTINGS,
1201 gettext_noop("Writes full pages to WAL when first modified after a checkpoint, even for a non-critical modification."),
1202 NULL
1203 },
1205 false,
1206 NULL, NULL, NULL
1207 },
1208
1209 {
1210 {"wal_init_zero", PGC_SUSET, WAL_SETTINGS,
1211 gettext_noop("Writes zeroes to new WAL files before first use."),
1212 NULL
1213 },
1215 true,
1216 NULL, NULL, NULL
1217 },
1218
1219 {
1220 {"wal_recycle", PGC_SUSET, WAL_SETTINGS,
1221 gettext_noop("Recycles WAL files by renaming them."),
1222 NULL
1223 },
1224 &wal_recycle,
1225 true,
1226 NULL, NULL, NULL
1227 },
1228
1229 {
1230 {"log_checkpoints", PGC_SIGHUP, LOGGING_WHAT,
1231 gettext_noop("Logs each checkpoint."),
1232 NULL
1233 },
1235 true,
1236 NULL, NULL, NULL
1237 },
1238 {
1239 {"trace_connection_negotiation", PGC_POSTMASTER, DEVELOPER_OPTIONS,
1240 gettext_noop("Logs details of pre-authentication connection handshake."),
1241 NULL,
1243 },
1245 false,
1246 NULL, NULL, NULL
1247 },
1248 {
1249 {"log_disconnections", PGC_SU_BACKEND, LOGGING_WHAT,
1250 gettext_noop("Logs end of a session, including duration."),
1251 NULL
1252 },
1254 false,
1255 NULL, NULL, NULL
1256 },
1257 {
1258 {"log_replication_commands", PGC_SUSET, LOGGING_WHAT,
1259 gettext_noop("Logs each replication command."),
1260 NULL
1261 },
1263 false,
1264 NULL, NULL, NULL
1265 },
1266 {
1267 {"debug_assertions", PGC_INTERNAL, PRESET_OPTIONS,
1268 gettext_noop("Shows whether the running server has assertion checks enabled."),
1269 NULL,
1271 },
1274 NULL, NULL, NULL
1275 },
1276
1277 {
1278 {"exit_on_error", PGC_USERSET, ERROR_HANDLING_OPTIONS,
1279 gettext_noop("Terminate session on any error."),
1280 NULL
1281 },
1283 false,
1284 NULL, NULL, NULL
1285 },
1286 {
1287 {"restart_after_crash", PGC_SIGHUP, ERROR_HANDLING_OPTIONS,
1288 gettext_noop("Reinitialize server after backend crash."),
1289 NULL
1290 },
1292 true,
1293 NULL, NULL, NULL
1294 },
1295 {
1296 {"remove_temp_files_after_crash", PGC_SIGHUP, DEVELOPER_OPTIONS,
1297 gettext_noop("Remove temporary files after backend crash."),
1298 NULL,
1300 },
1302 true,
1303 NULL, NULL, NULL
1304 },
1305 {
1306 {"send_abort_for_crash", PGC_SIGHUP, DEVELOPER_OPTIONS,
1307 gettext_noop("Send SIGABRT not SIGQUIT to child processes after backend crash."),
1308 NULL,
1310 },
1312 false,
1313 NULL, NULL, NULL
1314 },
1315 {
1316 {"send_abort_for_kill", PGC_SIGHUP, DEVELOPER_OPTIONS,
1317 gettext_noop("Send SIGABRT not SIGKILL to stuck child processes."),
1318 NULL,
1320 },
1322 false,
1323 NULL, NULL, NULL
1324 },
1325
1326 {
1327 {"log_duration", PGC_SUSET, LOGGING_WHAT,
1328 gettext_noop("Logs the duration of each completed SQL statement."),
1329 NULL
1330 },
1331 &log_duration,
1332 false,
1333 NULL, NULL, NULL
1334 },
1335#ifdef DEBUG_NODE_TESTS_ENABLED
1336 {
1337 {"debug_copy_parse_plan_trees", PGC_SUSET, DEVELOPER_OPTIONS,
1338 gettext_noop("Set this to force all parse and plan trees to be passed through "
1339 "copyObject(), to facilitate catching errors and omissions in "
1340 "copyObject()."),
1341 NULL,
1343 },
1344 &Debug_copy_parse_plan_trees,
1345/* support for legacy compile-time setting */
1346#ifdef COPY_PARSE_PLAN_TREES
1347 true,
1348#else
1349 false,
1350#endif
1351 NULL, NULL, NULL
1352 },
1353 {
1354 {"debug_write_read_parse_plan_trees", PGC_SUSET, DEVELOPER_OPTIONS,
1355 gettext_noop("Set this to force all parse and plan trees to be passed through "
1356 "outfuncs.c/readfuncs.c, to facilitate catching errors and omissions in "
1357 "those modules."),
1358 NULL,
1360 },
1361 &Debug_write_read_parse_plan_trees,
1362/* support for legacy compile-time setting */
1363#ifdef WRITE_READ_PARSE_PLAN_TREES
1364 true,
1365#else
1366 false,
1367#endif
1368 NULL, NULL, NULL
1369 },
1370 {
1371 {"debug_raw_expression_coverage_test", PGC_SUSET, DEVELOPER_OPTIONS,
1372 gettext_noop("Set this to force all raw parse trees for DML statements to be scanned "
1373 "by raw_expression_tree_walker(), to facilitate catching errors and "
1374 "omissions in that function."),
1375 NULL,
1377 },
1378 &Debug_raw_expression_coverage_test,
1379/* support for legacy compile-time setting */
1380#ifdef RAW_EXPRESSION_COVERAGE_TEST
1381 true,
1382#else
1383 false,
1384#endif
1385 NULL, NULL, NULL
1386 },
1387#endif /* DEBUG_NODE_TESTS_ENABLED */
1388 {
1389 {"debug_print_parse", PGC_USERSET, LOGGING_WHAT,
1390 gettext_noop("Logs each query's parse tree."),
1391 NULL
1392 },
1394 false,
1395 NULL, NULL, NULL
1396 },
1397 {
1398 {"debug_print_rewritten", PGC_USERSET, LOGGING_WHAT,
1399 gettext_noop("Logs each query's rewritten parse tree."),
1400 NULL
1401 },
1403 false,
1404 NULL, NULL, NULL
1405 },
1406 {
1407 {"debug_print_plan", PGC_USERSET, LOGGING_WHAT,
1408 gettext_noop("Logs each query's execution plan."),
1409 NULL
1410 },
1412 false,
1413 NULL, NULL, NULL
1414 },
1415 {
1416 {"debug_pretty_print", PGC_USERSET, LOGGING_WHAT,
1417 gettext_noop("Indents parse and plan tree displays."),
1418 NULL
1419 },
1421 true,
1422 NULL, NULL, NULL
1423 },
1424 {
1425 {"log_parser_stats", PGC_SUSET, STATS_MONITORING,
1426 gettext_noop("Writes parser performance statistics to the server log."),
1427 NULL
1428 },
1430 false,
1431 check_stage_log_stats, NULL, NULL
1432 },
1433 {
1434 {"log_planner_stats", PGC_SUSET, STATS_MONITORING,
1435 gettext_noop("Writes planner performance statistics to the server log."),
1436 NULL
1437 },
1439 false,
1440 check_stage_log_stats, NULL, NULL
1441 },
1442 {
1443 {"log_executor_stats", PGC_SUSET, STATS_MONITORING,
1444 gettext_noop("Writes executor performance statistics to the server log."),
1445 NULL
1446 },
1448 false,
1449 check_stage_log_stats, NULL, NULL
1450 },
1451 {
1452 {"log_statement_stats", PGC_SUSET, STATS_MONITORING,
1453 gettext_noop("Writes cumulative performance statistics to the server log."),
1454 NULL
1455 },
1457 false,
1458 check_log_stats, NULL, NULL
1459 },
1460#ifdef BTREE_BUILD_STATS
1461 {
1462 {"log_btree_build_stats", PGC_SUSET, DEVELOPER_OPTIONS,
1463 gettext_noop("Logs system resource usage statistics (memory and CPU) on various B-tree operations."),
1464 NULL,
1466 },
1468 false,
1469 NULL, NULL, NULL
1470 },
1471#endif
1472
1473 {
1474 {"track_activities", PGC_SUSET, STATS_CUMULATIVE,
1475 gettext_noop("Collects information about executing commands."),
1476 gettext_noop("Enables the collection of information on the currently "
1477 "executing command of each session, along with "
1478 "the time at which that command began execution.")
1479 },
1481 true,
1482 NULL, NULL, NULL
1483 },
1484 {
1485 {"track_counts", PGC_SUSET, STATS_CUMULATIVE,
1486 gettext_noop("Collects statistics on database activity."),
1487 NULL
1488 },
1490 true,
1491 NULL, NULL, NULL
1492 },
1493 {
1494 {"track_cost_delay_timing", PGC_SUSET, STATS_CUMULATIVE,
1495 gettext_noop("Collects timing statistics for cost-based vacuum delay."),
1496 NULL
1497 },
1499 false,
1500 NULL, NULL, NULL
1501 },
1502 {
1503 {"track_io_timing", PGC_SUSET, STATS_CUMULATIVE,
1504 gettext_noop("Collects timing statistics for database I/O activity."),
1505 NULL
1506 },
1508 false,
1509 NULL, NULL, NULL
1510 },
1511 {
1512 {"track_wal_io_timing", PGC_SUSET, STATS_CUMULATIVE,
1513 gettext_noop("Collects timing statistics for WAL I/O activity."),
1514 NULL
1515 },
1517 false,
1518 NULL, NULL, NULL
1519 },
1520
1521 {
1522 {"update_process_title", PGC_SUSET, PROCESS_TITLE,
1523 gettext_noop("Updates the process title to show the active SQL command."),
1524 gettext_noop("Enables updating of the process title every time a new SQL command is received by the server.")
1525 },
1528 NULL, NULL, NULL
1529 },
1530
1531 {
1532 {"autovacuum", PGC_SIGHUP, VACUUM_AUTOVACUUM,
1533 gettext_noop("Starts the autovacuum subprocess."),
1534 NULL
1535 },
1537 true,
1538 NULL, NULL, NULL
1539 },
1540
1541 {
1542 {"trace_notify", PGC_USERSET, DEVELOPER_OPTIONS,
1543 gettext_noop("Generates debugging output for LISTEN and NOTIFY."),
1544 NULL,
1546 },
1547 &Trace_notify,
1548 false,
1549 NULL, NULL, NULL
1550 },
1551
1552#ifdef LOCK_DEBUG
1553 {
1554 {"trace_locks", PGC_SUSET, DEVELOPER_OPTIONS,
1555 gettext_noop("Emits information about lock usage."),
1556 NULL,
1558 },
1559 &Trace_locks,
1560 false,
1561 NULL, NULL, NULL
1562 },
1563 {
1564 {"trace_userlocks", PGC_SUSET, DEVELOPER_OPTIONS,
1565 gettext_noop("Emits information about user lock usage."),
1566 NULL,
1568 },
1569 &Trace_userlocks,
1570 false,
1571 NULL, NULL, NULL
1572 },
1573 {
1574 {"trace_lwlocks", PGC_SUSET, DEVELOPER_OPTIONS,
1575 gettext_noop("Emits information about lightweight lock usage."),
1576 NULL,
1578 },
1579 &Trace_lwlocks,
1580 false,
1581 NULL, NULL, NULL
1582 },
1583 {
1584 {"debug_deadlocks", PGC_SUSET, DEVELOPER_OPTIONS,
1585 gettext_noop("Dumps information about all current locks when a deadlock timeout occurs."),
1586 NULL,
1588 },
1589 &Debug_deadlocks,
1590 false,
1591 NULL, NULL, NULL
1592 },
1593#endif
1594
1595 {
1596 {"log_lock_waits", PGC_SUSET, LOGGING_WHAT,
1597 gettext_noop("Logs long lock waits."),
1598 NULL
1599 },
1601 false,
1602 NULL, NULL, NULL
1603 },
1604 {
1605 {"log_lock_failure", PGC_SUSET, LOGGING_WHAT,
1606 gettext_noop("Logs lock failures."),
1607 NULL
1608 },
1610 false,
1611 NULL, NULL, NULL
1612 },
1613 {
1614 {"log_recovery_conflict_waits", PGC_SIGHUP, LOGGING_WHAT,
1615 gettext_noop("Logs standby recovery conflict waits."),
1616 NULL
1617 },
1619 false,
1620 NULL, NULL, NULL
1621 },
1622 {
1623 {"log_hostname", PGC_SIGHUP, LOGGING_WHAT,
1624 gettext_noop("Logs the host name in the connection logs."),
1625 gettext_noop("By default, connection logs only show the IP address "
1626 "of the connecting host. If you want them to show the host name you "
1627 "can turn this on, but depending on your host name resolution "
1628 "setup it might impose a non-negligible performance penalty.")
1629 },
1630 &log_hostname,
1631 false,
1632 NULL, NULL, NULL
1633 },
1634 {
1635 {"transform_null_equals", PGC_USERSET, COMPAT_OPTIONS_OTHER,
1636 gettext_noop("Treats \"expr=NULL\" as \"expr IS NULL\"."),
1637 gettext_noop("When turned on, expressions of the form expr = NULL "
1638 "(or NULL = expr) are treated as expr IS NULL, that is, they "
1639 "return true if expr evaluates to the null value, and false "
1640 "otherwise. The correct behavior of expr = NULL is to always "
1641 "return null (unknown).")
1642 },
1644 false,
1645 NULL, NULL, NULL
1646 },
1647 {
1648 {"default_transaction_read_only", PGC_USERSET, CLIENT_CONN_STATEMENT,
1649 gettext_noop("Sets the default read-only status of new transactions."),
1650 NULL,
1652 },
1654 false,
1655 NULL, NULL, NULL
1656 },
1657 {
1658 {"transaction_read_only", PGC_USERSET, CLIENT_CONN_STATEMENT,
1659 gettext_noop("Sets the current transaction's read-only status."),
1660 NULL,
1662 },
1663 &XactReadOnly,
1664 false,
1665 check_transaction_read_only, NULL, NULL
1666 },
1667 {
1668 {"default_transaction_deferrable", PGC_USERSET, CLIENT_CONN_STATEMENT,
1669 gettext_noop("Sets the default deferrable status of new transactions."),
1670 NULL
1671 },
1673 false,
1674 NULL, NULL, NULL
1675 },
1676 {
1677 {"transaction_deferrable", PGC_USERSET, CLIENT_CONN_STATEMENT,
1678 gettext_noop("Whether to defer a read-only serializable transaction until it can be executed with no possible serialization failures."),
1679 NULL,
1681 },
1683 false,
1685 },
1686 {
1687 {"row_security", PGC_USERSET, CLIENT_CONN_STATEMENT,
1688 gettext_noop("Enables row security."),
1689 gettext_noop("When enabled, row security will be applied to all users.")
1690 },
1691 &row_security,
1692 true,
1693 NULL, NULL, NULL
1694 },
1695 {
1696 {"check_function_bodies", PGC_USERSET, CLIENT_CONN_STATEMENT,
1697 gettext_noop("Check routine bodies during CREATE FUNCTION and CREATE PROCEDURE."),
1698 NULL
1699 },
1701 true,
1702 NULL, NULL, NULL
1703 },
1704 {
1705 {"array_nulls", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
1706 gettext_noop("Enables input of NULL elements in arrays."),
1707 gettext_noop("When turned on, unquoted NULL in an array input "
1708 "value means a null value; "
1709 "otherwise it is taken literally.")
1710 },
1711 &Array_nulls,
1712 true,
1713 NULL, NULL, NULL
1714 },
1715
1716 /*
1717 * WITH OIDS support, and consequently default_with_oids, was removed in
1718 * PostgreSQL 12, but we tolerate the parameter being set to false to
1719 * avoid unnecessarily breaking older dump files.
1720 */
1721 {
1722 {"default_with_oids", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
1723 gettext_noop("WITH OIDS is no longer supported; this can only be false."),
1724 NULL,
1726 },
1728 false,
1729 check_default_with_oids, NULL, NULL
1730 },
1731 {
1732 {"logging_collector", PGC_POSTMASTER, LOGGING_WHERE,
1733 gettext_noop("Start a subprocess to capture stderr, csvlog and/or jsonlog into log files."),
1734 NULL
1735 },
1737 false,
1738 NULL, NULL, NULL
1739 },
1740 {
1741 {"log_truncate_on_rotation", PGC_SIGHUP, LOGGING_WHERE,
1742 gettext_noop("Truncate existing log files of same name during log rotation."),
1743 NULL
1744 },
1746 false,
1747 NULL, NULL, NULL
1748 },
1749
1750 {
1751 {"trace_sort", PGC_USERSET, DEVELOPER_OPTIONS,
1752 gettext_noop("Emit information about resource usage in sorting."),
1753 NULL,
1755 },
1756 &trace_sort,
1757 false,
1758 NULL, NULL, NULL
1759 },
1760
1761#ifdef TRACE_SYNCSCAN
1762 /* this is undocumented because not exposed in a standard build */
1763 {
1764 {"trace_syncscan", PGC_USERSET, DEVELOPER_OPTIONS,
1765 gettext_noop("Generate debugging output for synchronized scanning."),
1766 NULL,
1768 },
1769 &trace_syncscan,
1770 false,
1771 NULL, NULL, NULL
1772 },
1773#endif
1774
1775#ifdef DEBUG_BOUNDED_SORT
1776 /* this is undocumented because not exposed in a standard build */
1777 {
1778 {
1779 "optimize_bounded_sort", PGC_USERSET, QUERY_TUNING_METHOD,
1780 gettext_noop("Enables bounded sorting using heap sort."),
1781 NULL,
1783 },
1784 &optimize_bounded_sort,
1785 true,
1786 NULL, NULL, NULL
1787 },
1788#endif
1789
1790#ifdef WAL_DEBUG
1791 {
1792 {"wal_debug", PGC_SUSET, DEVELOPER_OPTIONS,
1793 gettext_noop("Emit WAL-related debugging output."),
1794 NULL,
1796 },
1797 &XLOG_DEBUG,
1798 false,
1799 NULL, NULL, NULL
1800 },
1801#endif
1802
1803 {
1804 {"integer_datetimes", PGC_INTERNAL, PRESET_OPTIONS,
1805 gettext_noop("Shows whether datetimes are integer based."),
1806 NULL,
1808 },
1810 true,
1811 NULL, NULL, NULL
1812 },
1813
1814 {
1815 {"krb_caseins_users", PGC_SIGHUP, CONN_AUTH_AUTH,
1816 gettext_noop("Sets whether Kerberos and GSSAPI user names should be treated as case-insensitive."),
1817 NULL
1818 },
1820 false,
1821 NULL, NULL, NULL
1822 },
1823
1824 {
1825 {"gss_accept_delegation", PGC_SIGHUP, CONN_AUTH_AUTH,
1826 gettext_noop("Sets whether GSSAPI delegation should be accepted from the client."),
1827 NULL
1828 },
1830 false,
1831 NULL, NULL, NULL
1832 },
1833
1834 {
1835 {"escape_string_warning", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
1836 gettext_noop("Warn about backslash escapes in ordinary string literals."),
1837 NULL
1838 },
1840 true,
1841 NULL, NULL, NULL
1842 },
1843
1844 {
1845 {"standard_conforming_strings", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
1846 gettext_noop("Causes '...' strings to treat backslashes literally."),
1847 NULL,
1849 },
1851 true,
1852 NULL, NULL, NULL
1853 },
1854
1855 {
1856 {"synchronize_seqscans", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
1857 gettext_noop("Enables synchronized sequential scans."),
1858 NULL
1859 },
1861 true,
1862 NULL, NULL, NULL
1863 },
1864
1865 {
1866 {"recovery_target_inclusive", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
1867 gettext_noop("Sets whether to include or exclude transaction with recovery target."),
1868 NULL
1869 },
1871 true,
1872 NULL, NULL, NULL
1873 },
1874
1875 {
1876 {"summarize_wal", PGC_SIGHUP, WAL_SUMMARIZATION,
1877 gettext_noop("Starts the WAL summarizer process to enable incremental backup."),
1878 NULL
1879 },
1881 false,
1882 NULL, NULL, NULL
1883 },
1884
1885 {
1886 {"hot_standby", PGC_POSTMASTER, REPLICATION_STANDBY,
1887 gettext_noop("Allows connections and queries during recovery."),
1888 NULL
1889 },
1891 true,
1892 NULL, NULL, NULL
1893 },
1894
1895 {
1896 {"hot_standby_feedback", PGC_SIGHUP, REPLICATION_STANDBY,
1897 gettext_noop("Allows feedback from a hot standby to the primary that will avoid query conflicts."),
1898 NULL
1899 },
1901 false,
1902 NULL, NULL, NULL
1903 },
1904
1905 {
1906 {"in_hot_standby", PGC_INTERNAL, PRESET_OPTIONS,
1907 gettext_noop("Shows whether hot standby is currently active."),
1908 NULL,
1910 },
1912 false,
1913 NULL, NULL, show_in_hot_standby
1914 },
1915
1916 {
1917 {"allow_system_table_mods", PGC_SUSET, DEVELOPER_OPTIONS,
1918 gettext_noop("Allows modifications of the structure of system tables."),
1919 NULL,
1921 },
1923 false,
1924 NULL, NULL, NULL
1925 },
1926
1927 {
1928 {"ignore_system_indexes", PGC_BACKEND, DEVELOPER_OPTIONS,
1929 gettext_noop("Disables reading from system indexes."),
1930 gettext_noop("It does not prevent updating the indexes, so it is safe "
1931 "to use. The worst consequence is slowness."),
1933 },
1935 false,
1936 NULL, NULL, NULL
1937 },
1938
1939 {
1940 {"allow_in_place_tablespaces", PGC_SUSET, DEVELOPER_OPTIONS,
1941 gettext_noop("Allows tablespaces directly inside pg_tblspc, for testing."),
1942 NULL,
1944 },
1946 false,
1947 NULL, NULL, NULL
1948 },
1949
1950 {
1951 {"lo_compat_privileges", PGC_SUSET, COMPAT_OPTIONS_PREVIOUS,
1952 gettext_noop("Enables backward compatibility mode for privilege checks on large objects."),
1953 gettext_noop("Skips privilege checks when reading or modifying large objects, "
1954 "for compatibility with PostgreSQL releases prior to 9.0.")
1955 },
1957 false,
1958 NULL, NULL, NULL
1959 },
1960
1961 {
1962 {"quote_all_identifiers", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
1963 gettext_noop("When generating SQL fragments, quote all identifiers."),
1964 NULL,
1965 },
1967 false,
1968 NULL, NULL, NULL
1969 },
1970
1971 {
1972 {"data_checksums", PGC_INTERNAL, PRESET_OPTIONS,
1973 gettext_noop("Shows whether data checksums are turned on for this cluster."),
1974 NULL,
1976 },
1978 false,
1979 NULL, NULL, NULL
1980 },
1981
1982 {
1983 {"syslog_sequence_numbers", PGC_SIGHUP, LOGGING_WHERE,
1984 gettext_noop("Add sequence number to syslog messages to avoid duplicate suppression."),
1985 NULL
1986 },
1988 true,
1989 NULL, NULL, NULL
1990 },
1991
1992 {
1993 {"syslog_split_messages", PGC_SIGHUP, LOGGING_WHERE,
1994 gettext_noop("Split messages sent to syslog by lines and to fit into 1024 bytes."),
1995 NULL
1996 },
1998 true,
1999 NULL, NULL, NULL
2000 },
2001
2002 {
2003 {"parallel_leader_participation", PGC_USERSET, RESOURCES_WORKER_PROCESSES,
2004 gettext_noop("Controls whether Gather and Gather Merge also run subplans."),
2005 gettext_noop("Should gather nodes also run subplans or just gather tuples?"),
2007 },
2009 true,
2010 NULL, NULL, NULL
2011 },
2012
2013 {
2015 gettext_noop("Allow JIT compilation."),
2016 NULL,
2018 },
2019 &jit_enabled,
2020 true,
2021 NULL, NULL, NULL
2022 },
2023
2024 {
2025 {"jit_debugging_support", PGC_SU_BACKEND, DEVELOPER_OPTIONS,
2026 gettext_noop("Register JIT-compiled functions with debugger."),
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_dump_bitcode", PGC_SUSET, DEVELOPER_OPTIONS,
2043 gettext_noop("Write out LLVM bitcode to facilitate JIT debugging."),
2044 NULL,
2046 },
2048 false,
2049 NULL, NULL, NULL
2050 },
2051
2052 {
2053 {"jit_expressions", PGC_USERSET, DEVELOPER_OPTIONS,
2054 gettext_noop("Allow JIT compilation of expressions."),
2055 NULL,
2057 },
2059 true,
2060 NULL, NULL, NULL
2061 },
2062
2063 {
2064 {"jit_profiling_support", PGC_SU_BACKEND, DEVELOPER_OPTIONS,
2065 gettext_noop("Register JIT-compiled functions with perf profiler."),
2066 NULL,
2068 },
2070 false,
2071
2072 /*
2073 * This is not guaranteed to be available, but given it's a developer
2074 * oriented option, it doesn't seem worth adding code checking
2075 * availability.
2076 */
2077 NULL, NULL, NULL
2078 },
2079
2080 {
2081 {"jit_tuple_deforming", PGC_USERSET, DEVELOPER_OPTIONS,
2082 gettext_noop("Allow JIT compilation of tuple deforming."),
2083 NULL,
2085 },
2087 true,
2088 NULL, NULL, NULL
2089 },
2090
2091 {
2092 {"data_sync_retry", PGC_POSTMASTER, ERROR_HANDLING_OPTIONS,
2093 gettext_noop("Whether to continue running after a failure to sync data files."),
2094 },
2096 false,
2097 NULL, NULL, NULL
2098 },
2099
2100 {
2101 {"wal_receiver_create_temp_slot", PGC_SIGHUP, REPLICATION_STANDBY,
2102 gettext_noop("Sets whether a WAL receiver should create a temporary replication slot if no permanent slot is configured."),
2103 },
2105 false,
2106 NULL, NULL, NULL
2107 },
2108
2109 {
2110 {"event_triggers", PGC_SUSET, CLIENT_CONN_STATEMENT,
2111 gettext_noop("Enables event triggers."),
2112 gettext_noop("When enabled, event triggers will fire for all applicable statements."),
2113 },
2115 true,
2116 NULL, NULL, NULL
2117 },
2118
2119 {
2120 {"sync_replication_slots", PGC_SIGHUP, REPLICATION_STANDBY,
2121 gettext_noop("Enables a physical standby to synchronize logical failover replication slots from the primary server."),
2122 },
2124 false,
2125 NULL, NULL, NULL
2126 },
2127
2128 {
2129 {"md5_password_warnings", PGC_USERSET, CONN_AUTH_AUTH,
2130 gettext_noop("Enables deprecation warnings for MD5 passwords."),
2131 },
2133 true,
2134 NULL, NULL, NULL
2135 },
2136
2137 {
2138 {"vacuum_truncate", PGC_USERSET, VACUUM_DEFAULT,
2139 gettext_noop("Enables vacuum to truncate empty pages at the end of the table."),
2140 },
2142 true,
2143 NULL, NULL, NULL
2144 },
2145
2146 /* End-of-list marker */
2147 {
2148 {NULL, 0, 0, NULL, NULL}, NULL, false, NULL, NULL, NULL
2149 }
2150};
2151
2152
2154{
2155 {
2156 {"archive_timeout", PGC_SIGHUP, WAL_ARCHIVING,
2157 gettext_noop("Sets the amount of time to wait before forcing a "
2158 "switch to the next WAL file."),
2159 gettext_noop("0 disables the timeout."),
2161 },
2163 0, 0, INT_MAX / 2,
2164 NULL, NULL, NULL
2165 },
2166 {
2167 {"post_auth_delay", PGC_BACKEND, DEVELOPER_OPTIONS,
2168 gettext_noop("Sets the amount of time to wait after "
2169 "authentication on connection startup."),
2170 gettext_noop("This allows attaching a debugger to the process."),
2172 },
2174 0, 0, INT_MAX / 1000000,
2175 NULL, NULL, NULL
2176 },
2177 {
2178 {"default_statistics_target", PGC_USERSET, QUERY_TUNING_OTHER,
2179 gettext_noop("Sets the default statistics target."),
2180 gettext_noop("This applies to table columns that have not had a "
2181 "column-specific target set via ALTER TABLE SET STATISTICS.")
2182 },
2184 100, 1, MAX_STATISTICS_TARGET,
2185 NULL, NULL, NULL
2186 },
2187 {
2188 {"from_collapse_limit", PGC_USERSET, QUERY_TUNING_OTHER,
2189 gettext_noop("Sets the FROM-list size beyond which subqueries "
2190 "are not collapsed."),
2191 gettext_noop("The planner will merge subqueries into upper "
2192 "queries if the resulting FROM list would have no more than "
2193 "this many items."),
2195 },
2197 8, 1, INT_MAX,
2198 NULL, NULL, NULL
2199 },
2200 {
2201 {"join_collapse_limit", PGC_USERSET, QUERY_TUNING_OTHER,
2202 gettext_noop("Sets the FROM-list size beyond which JOIN "
2203 "constructs are not flattened."),
2204 gettext_noop("The planner will flatten explicit JOIN "
2205 "constructs into lists of FROM items whenever a "
2206 "list of no more than this many items would result."),
2208 },
2210 8, 1, INT_MAX,
2211 NULL, NULL, NULL
2212 },
2213 {
2214 {"geqo_threshold", PGC_USERSET, QUERY_TUNING_GEQO,
2215 gettext_noop("Sets the threshold of FROM items beyond which GEQO is used."),
2216 NULL,
2218 },
2220 12, 2, INT_MAX,
2221 NULL, NULL, NULL
2222 },
2223 {
2224 {"geqo_effort", PGC_USERSET, QUERY_TUNING_GEQO,
2225 gettext_noop("GEQO: effort is used to set the default for other GEQO parameters."),
2226 NULL,
2228 },
2229 &Geqo_effort,
2231 NULL, NULL, NULL
2232 },
2233 {
2234 {"geqo_pool_size", PGC_USERSET, QUERY_TUNING_GEQO,
2235 gettext_noop("GEQO: number of individuals in the population."),
2236 gettext_noop("0 means use a suitable default value."),
2238 },
2240 0, 0, INT_MAX,
2241 NULL, NULL, NULL
2242 },
2243 {
2244 {"geqo_generations", PGC_USERSET, QUERY_TUNING_GEQO,
2245 gettext_noop("GEQO: number of iterations of the algorithm."),
2246 gettext_noop("0 means use a suitable default value."),
2248 },
2250 0, 0, INT_MAX,
2251 NULL, NULL, NULL
2252 },
2253
2254 {
2255 /* This is PGC_SUSET to prevent hiding from log_lock_waits. */
2256 {"deadlock_timeout", PGC_SUSET, LOCK_MANAGEMENT,
2257 gettext_noop("Sets the time to wait on a lock before checking for deadlock."),
2258 NULL,
2260 },
2262 1000, 1, INT_MAX,
2263 NULL, NULL, NULL
2264 },
2265
2266 {
2267 {"max_standby_archive_delay", PGC_SIGHUP, REPLICATION_STANDBY,
2268 gettext_noop("Sets the maximum delay before canceling queries when a hot standby server is processing archived WAL data."),
2269 gettext_noop("-1 means wait forever."),
2271 },
2273 30 * 1000, -1, INT_MAX,
2274 NULL, NULL, NULL
2275 },
2276
2277 {
2278 {"max_standby_streaming_delay", PGC_SIGHUP, REPLICATION_STANDBY,
2279 gettext_noop("Sets the maximum delay before canceling queries when a hot standby server is processing streamed WAL data."),
2280 gettext_noop("-1 means wait forever."),
2282 },
2284 30 * 1000, -1, INT_MAX,
2285 NULL, NULL, NULL
2286 },
2287
2288 {
2289 {"recovery_min_apply_delay", PGC_SIGHUP, REPLICATION_STANDBY,
2290 gettext_noop("Sets the minimum delay for applying changes during recovery."),
2291 NULL,
2293 },
2295 0, 0, INT_MAX,
2296 NULL, NULL, NULL
2297 },
2298
2299 {
2300 {"wal_receiver_status_interval", PGC_SIGHUP, REPLICATION_STANDBY,
2301 gettext_noop("Sets the maximum interval between WAL receiver status reports to the sending server."),
2302 NULL,
2304 },
2306 10, 0, INT_MAX / 1000,
2307 NULL, NULL, NULL
2308 },
2309
2310 {
2311 {"wal_receiver_timeout", PGC_SIGHUP, REPLICATION_STANDBY,
2312 gettext_noop("Sets the maximum wait time to receive data from the sending server."),
2313 gettext_noop("0 disables the timeout."),
2315 },
2317 60 * 1000, 0, INT_MAX,
2318 NULL, NULL, NULL
2319 },
2320
2321 {
2322 {"max_connections", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
2323 gettext_noop("Sets the maximum number of concurrent connections."),
2324 NULL
2325 },
2327 100, 1, MAX_BACKENDS,
2328 NULL, NULL, NULL
2329 },
2330
2331 {
2332 /* see max_connections */
2333 {"superuser_reserved_connections", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
2334 gettext_noop("Sets the number of connection slots reserved for superusers."),
2335 NULL
2336 },
2338 3, 0, MAX_BACKENDS,
2339 NULL, NULL, NULL
2340 },
2341
2342 {
2343 {"reserved_connections", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
2344 gettext_noop("Sets the number of connection slots reserved for roles "
2345 "with privileges of pg_use_reserved_connections."),
2346 NULL
2347 },
2349 0, 0, MAX_BACKENDS,
2350 NULL, NULL, NULL
2351 },
2352
2353 {
2354 {"min_dynamic_shared_memory", PGC_POSTMASTER, RESOURCES_MEM,
2355 gettext_noop("Amount of dynamic shared memory reserved at startup."),
2356 NULL,
2358 },
2360 0, 0, (int) Min((size_t) INT_MAX, SIZE_MAX / (1024 * 1024)),
2361 NULL, NULL, NULL
2362 },
2363
2364 /*
2365 * We sometimes multiply the number of shared buffers by two without
2366 * checking for overflow, so we mustn't allow more than INT_MAX / 2.
2367 */
2368 {
2369 {"shared_buffers", PGC_POSTMASTER, RESOURCES_MEM,
2370 gettext_noop("Sets the number of shared memory buffers used by the server."),
2371 NULL,
2373 },
2374 &NBuffers,
2375 16384, 16, INT_MAX / 2,
2376 NULL, NULL, NULL
2377 },
2378
2379 {
2380 {"vacuum_buffer_usage_limit", PGC_USERSET, RESOURCES_MEM,
2381 gettext_noop("Sets the buffer pool size for VACUUM, ANALYZE, and autovacuum."),
2382 NULL,
2384 },
2386 2048, 0, MAX_BAS_VAC_RING_SIZE_KB,
2388 },
2389
2390 {
2391 {"shared_memory_size", PGC_INTERNAL, PRESET_OPTIONS,
2392 gettext_noop("Shows the size of the server's main shared memory area (rounded up to the nearest MB)."),
2393 NULL,
2395 },
2397 0, 0, INT_MAX,
2398 NULL, NULL, NULL
2399 },
2400
2401 {
2402 {"shared_memory_size_in_huge_pages", PGC_INTERNAL, PRESET_OPTIONS,
2403 gettext_noop("Shows the number of huge pages needed for the main shared memory area."),
2404 gettext_noop("-1 means huge pages are not supported."),
2406 },
2408 -1, -1, INT_MAX,
2409 NULL, NULL, NULL
2410 },
2411
2412 {
2413 {"num_os_semaphores", PGC_INTERNAL, PRESET_OPTIONS,
2414 gettext_noop("Shows the number of semaphores required for the server."),
2415 NULL,
2417 },
2419 0, 0, INT_MAX,
2420 NULL, NULL, NULL
2421 },
2422
2423 {
2424 {"commit_timestamp_buffers", PGC_POSTMASTER, RESOURCES_MEM,
2425 gettext_noop("Sets the size of the dedicated buffer pool used for the commit timestamp cache."),
2426 gettext_noop("0 means use a fraction of \"shared_buffers\"."),
2428 },
2431 check_commit_ts_buffers, NULL, NULL
2432 },
2433
2434 {
2435 {"multixact_member_buffers", PGC_POSTMASTER, RESOURCES_MEM,
2436 gettext_noop("Sets the size of the dedicated buffer pool used for the MultiXact member cache."),
2437 NULL,
2439 },
2443 },
2444
2445 {
2446 {"multixact_offset_buffers", PGC_POSTMASTER, RESOURCES_MEM,
2447 gettext_noop("Sets the size of the dedicated buffer pool used for the MultiXact offset cache."),
2448 NULL,
2450 },
2454 },
2455
2456 {
2457 {"notify_buffers", PGC_POSTMASTER, RESOURCES_MEM,
2458 gettext_noop("Sets the size of the dedicated buffer pool used for the LISTEN/NOTIFY message cache."),
2459 NULL,
2461 },
2464 check_notify_buffers, NULL, NULL
2465 },
2466
2467 {
2468 {"serializable_buffers", PGC_POSTMASTER, RESOURCES_MEM,
2469 gettext_noop("Sets the size of the dedicated buffer pool used for the serializable transaction cache."),
2470 NULL,
2472 },
2475 check_serial_buffers, NULL, NULL
2476 },
2477
2478 {
2479 {"subtransaction_buffers", PGC_POSTMASTER, RESOURCES_MEM,
2480 gettext_noop("Sets the size of the dedicated buffer pool used for the subtransaction cache."),
2481 gettext_noop("0 means use a fraction of \"shared_buffers\"."),
2483 },
2486 check_subtrans_buffers, NULL, NULL
2487 },
2488
2489 {
2490 {"transaction_buffers", PGC_POSTMASTER, RESOURCES_MEM,
2491 gettext_noop("Sets the size of the dedicated buffer pool used for the transaction status cache."),
2492 gettext_noop("0 means use a fraction of \"shared_buffers\"."),
2494 },
2497 check_transaction_buffers, NULL, NULL
2498 },
2499
2500 {
2501 {"temp_buffers", PGC_USERSET, RESOURCES_MEM,
2502 gettext_noop("Sets the maximum number of temporary buffers used by each session."),
2503 NULL,
2505 },
2507 1024, 100, INT_MAX / 2,
2508 check_temp_buffers, NULL, NULL
2509 },
2510
2511 {
2513 gettext_noop("Sets the TCP port the server listens on."),
2514 NULL
2515 },
2517 DEF_PGPORT, 1, 65535,
2518 NULL, NULL, NULL
2519 },
2520
2521 {
2522 {"unix_socket_permissions", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
2523 gettext_noop("Sets the access permissions of the Unix-domain socket."),
2524 gettext_noop("Unix-domain sockets use the usual Unix file system "
2525 "permission set. The parameter value is expected "
2526 "to be a numeric mode specification in the form "
2527 "accepted by the chmod and umask system calls. "
2528 "(To use the customary octal format the number must "
2529 "start with a 0 (zero).)")
2530 },
2532 0777, 0000, 0777,
2534 },
2535
2536 {
2537 {"log_file_mode", PGC_SIGHUP, LOGGING_WHERE,
2538 gettext_noop("Sets the file permissions for log files."),
2539 gettext_noop("The parameter value is expected "
2540 "to be a numeric mode specification in the form "
2541 "accepted by the chmod and umask system calls. "
2542 "(To use the customary octal format the number must "
2543 "start with a 0 (zero).)")
2544 },
2546 0600, 0000, 0777,
2547 NULL, NULL, show_log_file_mode
2548 },
2549
2550
2551 {
2552 {"data_directory_mode", PGC_INTERNAL, PRESET_OPTIONS,
2553 gettext_noop("Shows the mode of the data directory."),
2554 gettext_noop("The parameter value is a numeric mode specification "
2555 "in the form accepted by the chmod and umask system "
2556 "calls. (To use the customary octal format the number "
2557 "must start with a 0 (zero).)"),
2559 },
2561 0700, 0000, 0777,
2562 NULL, NULL, show_data_directory_mode
2563 },
2564
2565 {
2566 {"work_mem", PGC_USERSET, RESOURCES_MEM,
2567 gettext_noop("Sets the maximum memory to be used for query workspaces."),
2568 gettext_noop("This much memory can be used by each internal "
2569 "sort operation and hash table before switching to "
2570 "temporary disk files."),
2572 },
2573 &work_mem,
2574 4096, 64, MAX_KILOBYTES,
2575 NULL, NULL, NULL
2576 },
2577
2578 /*
2579 * Dynamic shared memory has a higher overhead than local memory contexts,
2580 * so when testing low-memory scenarios that could use shared memory, the
2581 * recommended minimum is 1MB.
2582 */
2583 {
2584 {"maintenance_work_mem", PGC_USERSET, RESOURCES_MEM,
2585 gettext_noop("Sets the maximum memory to be used for maintenance operations."),
2586 gettext_noop("This includes operations such as VACUUM and CREATE INDEX."),
2588 },
2590 65536, 64, MAX_KILOBYTES,
2591 NULL, NULL, NULL
2592 },
2593
2594 {
2595 {"logical_decoding_work_mem", PGC_USERSET, RESOURCES_MEM,
2596 gettext_noop("Sets the maximum memory to be used for logical decoding."),
2597 gettext_noop("This much memory can be used by each internal "
2598 "reorder buffer before spilling to disk."),
2600 },
2602 65536, 64, MAX_KILOBYTES,
2603 NULL, NULL, NULL
2604 },
2605
2606 /*
2607 * We use the hopefully-safely-small value of 100kB as the compiled-in
2608 * default for max_stack_depth. InitializeGUCOptions will increase it if
2609 * possible, depending on the actual platform-specific stack limit.
2610 */
2611 {
2612 {"max_stack_depth", PGC_SUSET, RESOURCES_MEM,
2613 gettext_noop("Sets the maximum stack depth, in kilobytes."),
2614 NULL,
2616 },
2618 100, 100, MAX_KILOBYTES,
2620 },
2621
2622 {
2623 {"temp_file_limit", PGC_SUSET, RESOURCES_DISK,
2624 gettext_noop("Limits the total size of all temporary files used by each process."),
2625 gettext_noop("-1 means no limit."),
2627 },
2629 -1, -1, INT_MAX,
2630 NULL, NULL, NULL
2631 },
2632
2633 {
2634 {"vacuum_cost_page_hit", PGC_USERSET, VACUUM_COST_DELAY,
2635 gettext_noop("Vacuum cost for a page found in the buffer cache."),
2636 NULL
2637 },
2639 1, 0, 10000,
2640 NULL, NULL, NULL
2641 },
2642
2643 {
2644 {"vacuum_cost_page_miss", PGC_USERSET, VACUUM_COST_DELAY,
2645 gettext_noop("Vacuum cost for a page not found in the buffer cache."),
2646 NULL
2647 },
2649 2, 0, 10000,
2650 NULL, NULL, NULL
2651 },
2652
2653 {
2654 {"vacuum_cost_page_dirty", PGC_USERSET, VACUUM_COST_DELAY,
2655 gettext_noop("Vacuum cost for a page dirtied by vacuum."),
2656 NULL
2657 },
2659 20, 0, 10000,
2660 NULL, NULL, NULL
2661 },
2662
2663 {
2664 {"vacuum_cost_limit", PGC_USERSET, VACUUM_COST_DELAY,
2665 gettext_noop("Vacuum cost amount available before napping."),
2666 NULL
2667 },
2669 200, 1, 10000,
2670 NULL, NULL, NULL
2671 },
2672
2673 {
2674 {"autovacuum_vacuum_cost_limit", PGC_SIGHUP, VACUUM_AUTOVACUUM,
2675 gettext_noop("Vacuum cost amount available before napping, for autovacuum."),
2676 gettext_noop("-1 means use \"vacuum_cost_limit\".")
2677 },
2679 -1, -1, 10000,
2680 NULL, NULL, NULL
2681 },
2682
2683 {
2684 {"max_files_per_process", PGC_POSTMASTER, RESOURCES_KERNEL,
2685 gettext_noop("Sets the maximum number of files each server process is allowed to open simultaneously."),
2686 NULL
2687 },
2689 1000, 64, INT_MAX,
2690 NULL, NULL, NULL
2691 },
2692
2693 /*
2694 * See also CheckRequiredParameterValues() if this parameter changes
2695 */
2696 {
2697 {"max_prepared_transactions", PGC_POSTMASTER, RESOURCES_MEM,
2698 gettext_noop("Sets the maximum number of simultaneously prepared transactions."),
2699 NULL
2700 },
2702 0, 0, MAX_BACKENDS,
2703 NULL, NULL, NULL
2704 },
2705
2706#ifdef LOCK_DEBUG
2707 {
2708 {"trace_lock_oidmin", PGC_SUSET, DEVELOPER_OPTIONS,
2709 gettext_noop("Sets the minimum OID of tables for tracking locks."),
2710 gettext_noop("Is used to avoid output on system tables."),
2712 },
2713 &Trace_lock_oidmin,
2714 FirstNormalObjectId, 0, INT_MAX,
2715 NULL, NULL, NULL
2716 },
2717 {
2718 {"trace_lock_table", PGC_SUSET, DEVELOPER_OPTIONS,
2719 gettext_noop("Sets the OID of the table with unconditionally lock tracing."),
2720 NULL,
2722 },
2723 &Trace_lock_table,
2724 0, 0, INT_MAX,
2725 NULL, NULL, NULL
2726 },
2727#endif
2728
2729 {
2730 {"statement_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
2731 gettext_noop("Sets the maximum allowed duration of any statement."),
2732 gettext_noop("0 disables the timeout."),
2734 },
2736 0, 0, INT_MAX,
2737 NULL, NULL, NULL
2738 },
2739
2740 {
2741 {"lock_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
2742 gettext_noop("Sets the maximum allowed duration of any wait for a lock."),
2743 gettext_noop("0 disables the timeout."),
2745 },
2746 &LockTimeout,
2747 0, 0, INT_MAX,
2748 NULL, NULL, NULL
2749 },
2750
2751 {
2752 {"idle_in_transaction_session_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
2753 gettext_noop("Sets the maximum allowed idle time between queries, when in a transaction."),
2754 gettext_noop("0 disables the timeout."),
2756 },
2758 0, 0, INT_MAX,
2759 NULL, NULL, NULL
2760 },
2761
2762 {
2763 {"transaction_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
2764 gettext_noop("Sets the maximum allowed duration of any transaction within a session (not a prepared transaction)."),
2765 gettext_noop("0 disables the timeout."),
2767 },
2769 0, 0, INT_MAX,
2770 NULL, assign_transaction_timeout, NULL
2771 },
2772
2773 {
2774 {"idle_session_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
2775 gettext_noop("Sets the maximum allowed idle time between queries, when not in a transaction."),
2776 gettext_noop("0 disables the timeout."),
2778 },
2780 0, 0, INT_MAX,
2781 NULL, NULL, NULL
2782 },
2783
2784 {
2785 {"vacuum_freeze_min_age", PGC_USERSET, VACUUM_FREEZING,
2786 gettext_noop("Minimum age at which VACUUM should freeze a table row."),
2787 NULL
2788 },
2790 50000000, 0, 1000000000,
2791 NULL, NULL, NULL
2792 },
2793
2794 {
2795 {"vacuum_freeze_table_age", PGC_USERSET, VACUUM_FREEZING,
2796 gettext_noop("Age at which VACUUM should scan whole table to freeze tuples."),
2797 NULL
2798 },
2800 150000000, 0, 2000000000,
2801 NULL, NULL, NULL
2802 },
2803
2804 {
2805 {"vacuum_multixact_freeze_min_age", PGC_USERSET, VACUUM_FREEZING,
2806 gettext_noop("Minimum age at which VACUUM should freeze a MultiXactId in a table row."),
2807 NULL
2808 },
2810 5000000, 0, 1000000000,
2811 NULL, NULL, NULL
2812 },
2813
2814 {
2815 {"vacuum_multixact_freeze_table_age", PGC_USERSET, VACUUM_FREEZING,
2816 gettext_noop("Multixact age at which VACUUM should scan whole table to freeze tuples."),
2817 NULL
2818 },
2820 150000000, 0, 2000000000,
2821 NULL, NULL, NULL
2822 },
2823
2824 {
2825 {"vacuum_failsafe_age", PGC_USERSET, VACUUM_FREEZING,
2826 gettext_noop("Age at which VACUUM should trigger failsafe to avoid a wraparound outage."),
2827 NULL
2828 },
2830 1600000000, 0, 2100000000,
2831 NULL, NULL, NULL
2832 },
2833 {
2834 {"vacuum_multixact_failsafe_age", PGC_USERSET, VACUUM_FREEZING,
2835 gettext_noop("Multixact age at which VACUUM should trigger failsafe to avoid a wraparound outage."),
2836 NULL
2837 },
2839 1600000000, 0, 2100000000,
2840 NULL, NULL, NULL
2841 },
2842
2843 /*
2844 * See also CheckRequiredParameterValues() if this parameter changes
2845 */
2846 {
2847 {"max_locks_per_transaction", PGC_POSTMASTER, LOCK_MANAGEMENT,
2848 gettext_noop("Sets the maximum number of locks per transaction."),
2849 gettext_noop("The shared lock table is sized on the assumption that at most "
2850 "\"max_locks_per_transaction\" objects per server process or prepared "
2851 "transaction will need to be locked at any one time.")
2852 },
2854 64, 10, INT_MAX,
2855 NULL, NULL, NULL
2856 },
2857
2858 {
2859 {"max_pred_locks_per_transaction", PGC_POSTMASTER, LOCK_MANAGEMENT,
2860 gettext_noop("Sets the maximum number of predicate locks per transaction."),
2861 gettext_noop("The shared predicate lock table is sized on the assumption that "
2862 "at most \"max_pred_locks_per_transaction\" objects per server process "
2863 "or prepared transaction will need to be locked at any one time.")
2864 },
2866 64, 10, INT_MAX,
2867 NULL, NULL, NULL
2868 },
2869
2870 {
2871 {"max_pred_locks_per_relation", PGC_SIGHUP, LOCK_MANAGEMENT,
2872 gettext_noop("Sets the maximum number of predicate-locked pages and tuples per relation."),
2873 gettext_noop("If more than this total of pages and tuples in the same relation are locked "
2874 "by a connection, those locks are replaced by a relation-level lock.")
2875 },
2877 -2, INT_MIN, INT_MAX,
2878 NULL, NULL, NULL
2879 },
2880
2881 {
2882 {"max_pred_locks_per_page", PGC_SIGHUP, LOCK_MANAGEMENT,
2883 gettext_noop("Sets the maximum number of predicate-locked tuples per page."),
2884 gettext_noop("If more than this number of tuples on the same page are locked "
2885 "by a connection, those locks are replaced by a page-level lock.")
2886 },
2888 2, 0, INT_MAX,
2889 NULL, NULL, NULL
2890 },
2891
2892 {
2893 {"authentication_timeout", PGC_SIGHUP, CONN_AUTH_AUTH,
2894 gettext_noop("Sets the maximum allowed time to complete client authentication."),
2895 NULL,
2897 },
2899 60, 1, 600,
2900 NULL, NULL, NULL
2901 },
2902
2903 {
2904 /* Not for general use */
2905 {"pre_auth_delay", PGC_SIGHUP, DEVELOPER_OPTIONS,
2906 gettext_noop("Sets the amount of time to wait before "
2907 "authentication on connection startup."),
2908 gettext_noop("This allows attaching a debugger to the process."),
2910 },
2911 &PreAuthDelay,
2912 0, 0, 60,
2913 NULL, NULL, NULL
2914 },
2915
2916 {
2917 {"max_notify_queue_pages", PGC_POSTMASTER, RESOURCES_DISK,
2918 gettext_noop("Sets the maximum number of allocated pages for NOTIFY / LISTEN queue."),
2919 NULL,
2920 },
2922 1048576, 64, INT_MAX,
2923 NULL, NULL, NULL
2924 },
2925
2926 {
2927 {"wal_decode_buffer_size", PGC_POSTMASTER, WAL_RECOVERY,
2928 gettext_noop("Buffer size for reading ahead in the WAL during recovery."),
2929 gettext_noop("Maximum distance to read ahead in the WAL to prefetch referenced data blocks."),
2931 },
2933 512 * 1024, 64 * 1024, MaxAllocSize,
2934 NULL, NULL, NULL
2935 },
2936
2937 {
2938 {"wal_keep_size", PGC_SIGHUP, REPLICATION_SENDING,
2939 gettext_noop("Sets the size of WAL files held for standby servers."),
2940 NULL,
2942 },
2944 0, 0, MAX_KILOBYTES,
2945 NULL, NULL, NULL
2946 },
2947
2948 {
2949 {"min_wal_size", PGC_SIGHUP, WAL_CHECKPOINTS,
2950 gettext_noop("Sets the minimum size to shrink the WAL to."),
2951 NULL,
2953 },
2955 DEFAULT_MIN_WAL_SEGS * (DEFAULT_XLOG_SEG_SIZE / (1024 * 1024)),
2956 2, MAX_KILOBYTES,
2957 NULL, NULL, NULL
2958 },
2959
2960 {
2961 {"max_wal_size", PGC_SIGHUP, WAL_CHECKPOINTS,
2962 gettext_noop("Sets the WAL size that triggers a checkpoint."),
2963 NULL,
2965 },
2967 DEFAULT_MAX_WAL_SEGS * (DEFAULT_XLOG_SEG_SIZE / (1024 * 1024)),
2968 2, MAX_KILOBYTES,
2969 NULL, assign_max_wal_size, NULL
2970 },
2971
2972 {
2973 {"checkpoint_timeout", PGC_SIGHUP, WAL_CHECKPOINTS,
2974 gettext_noop("Sets the maximum time between automatic WAL checkpoints."),
2975 NULL,
2977 },
2979 300, 30, 86400,
2980 NULL, NULL, NULL
2981 },
2982
2983 {
2984 {"checkpoint_warning", PGC_SIGHUP, WAL_CHECKPOINTS,
2985 gettext_noop("Sets the maximum time before warning if checkpoints "
2986 "triggered by WAL volume happen too frequently."),
2987 gettext_noop("Write a message to the server log if checkpoints "
2988 "caused by the filling of WAL segment files happen more "
2989 "frequently than this amount of time. "
2990 "0 disables the warning."),
2992 },
2994 30, 0, INT_MAX,
2995 NULL, NULL, NULL
2996 },
2997
2998 {
2999 {"checkpoint_flush_after", PGC_SIGHUP, WAL_CHECKPOINTS,
3000 gettext_noop("Number of pages after which previously performed writes are flushed to disk."),
3001 gettext_noop("0 disables forced writeback."),
3003 },
3006 NULL, NULL, NULL
3007 },
3008
3009 {
3010 {"wal_buffers", PGC_POSTMASTER, WAL_SETTINGS,
3011 gettext_noop("Sets the number of disk-page buffers in shared memory for WAL."),
3012 gettext_noop("-1 means use a fraction of \"shared_buffers\"."),
3014 },
3015 &XLOGbuffers,
3016 -1, -1, (INT_MAX / XLOG_BLCKSZ),
3017 check_wal_buffers, NULL, NULL
3018 },
3019
3020 {
3021 {"wal_writer_delay", PGC_SIGHUP, WAL_SETTINGS,
3022 gettext_noop("Time between WAL flushes performed in the WAL writer."),
3023 NULL,
3025 },
3027 200, 1, 10000,
3028 NULL, NULL, NULL
3029 },
3030
3031 {
3032 {"wal_writer_flush_after", PGC_SIGHUP, WAL_SETTINGS,
3033 gettext_noop("Amount of WAL written out by WAL writer that triggers a flush."),
3034 NULL,
3036 },
3039 NULL, NULL, NULL
3040 },
3041
3042 {
3043 {"wal_skip_threshold", PGC_USERSET, WAL_SETTINGS,
3044 gettext_noop("Minimum size of new file to fsync instead of writing WAL."),
3045 NULL,
3047 },
3049 2048, 0, MAX_KILOBYTES,
3050 NULL, NULL, NULL
3051 },
3052
3053 {
3054 {"max_wal_senders", PGC_POSTMASTER, REPLICATION_SENDING,
3055 gettext_noop("Sets the maximum number of simultaneously running WAL sender processes."),
3056 NULL
3057 },
3059 10, 0, MAX_BACKENDS,
3060 NULL, NULL, NULL
3061 },
3062
3063 {
3064 /* see max_wal_senders */
3065 {"max_replication_slots", PGC_POSTMASTER, REPLICATION_SENDING,
3066 gettext_noop("Sets the maximum number of simultaneously defined replication slots."),
3067 NULL
3068 },
3070 10, 0, MAX_BACKENDS /* XXX? */ ,
3071 NULL, NULL, NULL
3072 },
3073
3074 {
3075 {"max_slot_wal_keep_size", PGC_SIGHUP, REPLICATION_SENDING,
3076 gettext_noop("Sets the maximum WAL size that can be reserved by replication slots."),
3077 gettext_noop("Replication slots will be marked as failed, and segments released "
3078 "for deletion or recycling, if this much space is occupied by WAL on disk. "
3079 "-1 means no maximum."),
3081 },
3083 -1, -1, MAX_KILOBYTES,
3085 },
3086
3087 {
3088 {"wal_sender_timeout", PGC_USERSET, REPLICATION_SENDING,
3089 gettext_noop("Sets the maximum time to wait for WAL replication."),
3090 NULL,
3092 },
3094 60 * 1000, 0, INT_MAX,
3095 NULL, NULL, NULL
3096 },
3097
3098 {
3099 {"idle_replication_slot_timeout", PGC_SIGHUP, REPLICATION_SENDING,
3100 gettext_noop("Sets the duration a replication slot can remain idle before "
3101 "it is invalidated."),
3102 NULL,
3104 },
3106 0, 0, INT_MAX / SECS_PER_MINUTE,
3108 },
3109
3110 {
3111 {"commit_delay", PGC_SUSET, WAL_SETTINGS,
3112 gettext_noop("Sets the delay in microseconds between transaction commit and "
3113 "flushing WAL to disk."),
3114 NULL
3115 /* we have no microseconds designation, so can't supply units here */
3116 },
3117 &CommitDelay,
3118 0, 0, 100000,
3119 NULL, NULL, NULL
3120 },
3121
3122 {
3123 {"commit_siblings", PGC_USERSET, WAL_SETTINGS,
3124 gettext_noop("Sets the minimum number of concurrent open transactions "
3125 "required before performing \"commit_delay\"."),
3126 NULL
3127 },
3129 5, 0, 1000,
3130 NULL, NULL, NULL
3131 },
3132
3133 {
3134 {"extra_float_digits", PGC_USERSET, CLIENT_CONN_LOCALE,
3135 gettext_noop("Sets the number of digits displayed for floating-point values."),
3136 gettext_noop("This affects real, double precision, and geometric data types. "
3137 "A zero or negative parameter value is added to the standard "
3138 "number of digits (FLT_DIG or DBL_DIG as appropriate). "
3139 "Any value greater than zero selects precise output mode.")
3140 },
3142 1, -15, 3,
3143 NULL, NULL, NULL
3144 },
3145
3146 {
3147 {"log_min_duration_sample", PGC_SUSET, LOGGING_WHEN,
3148 gettext_noop("Sets the minimum execution time above which "
3149 "a sample of statements will be logged."
3150 " Sampling is determined by \"log_statement_sample_rate\"."),
3151 gettext_noop("-1 disables sampling. 0 means sample all statements."),
3153 },
3155 -1, -1, INT_MAX,
3156 NULL, NULL, NULL
3157 },
3158
3159 {
3160 {"log_min_duration_statement", PGC_SUSET, LOGGING_WHEN,
3161 gettext_noop("Sets the minimum execution time above which "
3162 "all statements will be logged."),
3163 gettext_noop("-1 disables logging statement durations. 0 means log all statement durations."),
3165 },
3167 -1, -1, INT_MAX,
3168 NULL, NULL, NULL
3169 },
3170
3171 {
3172 {"log_autovacuum_min_duration", PGC_SIGHUP, LOGGING_WHAT,
3173 gettext_noop("Sets the minimum execution time above which "
3174 "autovacuum actions will be logged."),
3175 gettext_noop("-1 disables logging autovacuum actions. 0 means log all autovacuum actions."),
3177 },
3179 600000, -1, INT_MAX,
3180 NULL, NULL, NULL
3181 },
3182
3183 {
3184 {"log_parameter_max_length", PGC_SUSET, LOGGING_WHAT,
3185 gettext_noop("Sets the maximum length in bytes of data logged for bind "
3186 "parameter values when logging statements."),
3187 gettext_noop("-1 means log values in full."),
3189 },
3191 -1, -1, INT_MAX / 2,
3192 NULL, NULL, NULL
3193 },
3194
3195 {
3196 {"log_parameter_max_length_on_error", PGC_USERSET, LOGGING_WHAT,
3197 gettext_noop("Sets the maximum length in bytes of data logged for bind "
3198 "parameter values when logging statements, on error."),
3199 gettext_noop("-1 means log values in full."),
3201 },
3203 0, -1, INT_MAX / 2,
3204 NULL, NULL, NULL
3205 },
3206
3207 {
3208 {"bgwriter_delay", PGC_SIGHUP, RESOURCES_BGWRITER,
3209 gettext_noop("Background writer sleep time between rounds."),
3210 NULL,
3212 },
3214 200, 10, 10000,
3215 NULL, NULL, NULL
3216 },
3217
3218 {
3219 {"bgwriter_lru_maxpages", PGC_SIGHUP, RESOURCES_BGWRITER,
3220 gettext_noop("Background writer maximum number of LRU pages to flush per round."),
3221 gettext_noop("0 disables background writing.")
3222 },
3224 100, 0, INT_MAX / 2, /* Same upper limit as shared_buffers */
3225 NULL, NULL, NULL
3226 },
3227
3228 {
3229 {"bgwriter_flush_after", PGC_SIGHUP, RESOURCES_BGWRITER,
3230 gettext_noop("Number of pages after which previously performed writes are flushed to disk."),
3231 gettext_noop("0 disables forced writeback."),
3233 },
3236 NULL, NULL, NULL
3237 },
3238
3239 {
3240 {"effective_io_concurrency",
3243 gettext_noop("Number of simultaneous requests that can be handled efficiently by the disk subsystem."),
3244 gettext_noop("0 disables simultaneous requests."),
3246 },
3250 NULL, NULL, NULL
3251 },
3252
3253 {
3254 {"maintenance_io_concurrency",
3257 gettext_noop("A variant of \"effective_io_concurrency\" that is used for maintenance work."),
3258 gettext_noop("0 disables simultaneous requests."),
3260 },
3265 NULL
3266 },
3267
3268 {
3269 {"io_max_combine_limit",
3272 gettext_noop("Server-wide limit that clamps io_combine_limit."),
3273 NULL,
3275 },
3279 NULL, assign_io_max_combine_limit, NULL
3280 },
3281
3282 {
3283 {"io_combine_limit",
3286 gettext_noop("Limit on the size of data reads and writes."),
3287 NULL,
3289 },
3293 NULL, assign_io_combine_limit, NULL
3294 },
3295
3296 {
3297 {"io_max_concurrency",
3300 gettext_noop("Max number of IOs that one process can execute simultaneously."),
3301 NULL,
3302 },
3304 -1, -1, 1024,
3305 check_io_max_concurrency, NULL, NULL
3306 },
3307
3308 {
3309 {"io_workers",
3310 PGC_SIGHUP,
3312 gettext_noop("Number of IO worker processes, for io_method=worker."),
3313 NULL,
3314 },
3315 &io_workers,
3316 3, 1, MAX_IO_WORKERS,
3317 NULL, NULL, NULL
3318 },
3319
3320 {
3321 {"backend_flush_after", PGC_USERSET, RESOURCES_IO,
3322 gettext_noop("Number of pages after which previously performed writes are flushed to disk."),
3323 gettext_noop("0 disables forced writeback."),
3325 },
3328 NULL, NULL, NULL
3329 },
3330
3331 {
3332 {"max_worker_processes",
3335 gettext_noop("Maximum number of concurrent worker processes."),
3336 NULL,
3337 },
3339 8, 0, MAX_BACKENDS,
3340 NULL, NULL, NULL
3341 },
3342
3343 {
3344 {"max_logical_replication_workers",
3347 gettext_noop("Maximum number of logical replication worker processes."),
3348 NULL,
3349 },
3351 4, 0, MAX_BACKENDS,
3352 NULL, NULL, NULL
3353 },
3354
3355 {
3356 {"max_sync_workers_per_subscription",
3357 PGC_SIGHUP,
3359 gettext_noop("Maximum number of table synchronization workers per subscription."),
3360 NULL,
3361 },
3363 2, 0, MAX_BACKENDS,
3364 NULL, NULL, NULL
3365 },
3366
3367 {
3368 {"max_parallel_apply_workers_per_subscription",
3369 PGC_SIGHUP,
3371 gettext_noop("Maximum number of parallel apply workers per subscription."),
3372 NULL,
3373 },
3376 NULL, NULL, NULL
3377 },
3378
3379 {
3380 {"max_active_replication_origins",
3383 gettext_noop("Sets the maximum number of active replication origins."),
3384 NULL
3385 },
3387 10, 0, MAX_BACKENDS,
3388 NULL, NULL, NULL
3389 },
3390
3391 {
3392 {"log_rotation_age", PGC_SIGHUP, LOGGING_WHERE,
3393 gettext_noop("Sets the amount of time to wait before forcing "
3394 "log file rotation."),
3395 gettext_noop("0 disables time-based creation of new log files."),
3397 },
3400 NULL, NULL, NULL
3401 },
3402
3403 {
3404 {"log_rotation_size", PGC_SIGHUP, LOGGING_WHERE,
3405 gettext_noop("Sets the maximum size a log file can reach before "
3406 "being rotated."),
3407 gettext_noop("0 disables size-based creation of new log files."),
3409 },
3411 10 * 1024, 0, INT_MAX,
3412 NULL, NULL, NULL
3413 },
3414
3415 {
3416 {"max_function_args", PGC_INTERNAL, PRESET_OPTIONS,
3417 gettext_noop("Shows the maximum number of function arguments."),
3418 NULL,
3420 },
3423 NULL, NULL, NULL
3424 },
3425
3426 {
3427 {"max_index_keys", PGC_INTERNAL, PRESET_OPTIONS,
3428 gettext_noop("Shows the maximum number of index keys."),
3429 NULL,
3431 },
3434 NULL, NULL, NULL
3435 },
3436
3437 {
3438 {"max_identifier_length", PGC_INTERNAL, PRESET_OPTIONS,
3439 gettext_noop("Shows the maximum identifier length."),
3440 NULL,
3442 },
3444 NAMEDATALEN - 1, NAMEDATALEN - 1, NAMEDATALEN - 1,
3445 NULL, NULL, NULL
3446 },
3447
3448 {
3449 {"block_size", PGC_INTERNAL, PRESET_OPTIONS,
3450 gettext_noop("Shows the size of a disk block."),
3451 NULL,
3453 },
3454 &block_size,
3455 BLCKSZ, BLCKSZ, BLCKSZ,
3456 NULL, NULL, NULL
3457 },
3458
3459 {
3460 {"segment_size", PGC_INTERNAL, PRESET_OPTIONS,
3461 gettext_noop("Shows the number of pages per disk file."),
3462 NULL,
3464 },
3465 &segment_size,
3466 RELSEG_SIZE, RELSEG_SIZE, RELSEG_SIZE,
3467 NULL, NULL, NULL
3468 },
3469
3470 {
3471 {"wal_block_size", PGC_INTERNAL, PRESET_OPTIONS,
3472 gettext_noop("Shows the block size in the write ahead log."),
3473 NULL,
3475 },
3477 XLOG_BLCKSZ, XLOG_BLCKSZ, XLOG_BLCKSZ,
3478 NULL, NULL, NULL
3479 },
3480
3481 {
3482 {"wal_retrieve_retry_interval", PGC_SIGHUP, REPLICATION_STANDBY,
3483 gettext_noop("Sets the time to wait before retrying to retrieve WAL "
3484 "after a failed attempt."),
3485 NULL,
3487 },
3489 5000, 1, INT_MAX,
3490 NULL, NULL, NULL
3491 },
3492
3493 {
3494 {"wal_segment_size", PGC_INTERNAL, PRESET_OPTIONS,
3495 gettext_noop("Shows the size of write ahead log segments."),
3496 NULL,
3498 },
3503 check_wal_segment_size, NULL, NULL
3504 },
3505
3506 {
3507 {"wal_summary_keep_time", PGC_SIGHUP, WAL_SUMMARIZATION,
3508 gettext_noop("Time for which WAL summary files should be kept."),
3509 gettext_noop("0 disables automatic summary file deletion."),
3511 },
3513 10 * HOURS_PER_DAY * MINS_PER_HOUR, /* 10 days */
3514 0,
3515 INT_MAX / SECS_PER_MINUTE,
3516 NULL, NULL, NULL
3517 },
3518
3519 {
3520 {"autovacuum_naptime", PGC_SIGHUP, VACUUM_AUTOVACUUM,
3521 gettext_noop("Time to sleep between autovacuum runs."),
3522 NULL,
3524 },
3526 60, 1, INT_MAX / 1000,
3527 NULL, NULL, NULL
3528 },
3529 {
3530 {"autovacuum_vacuum_threshold", PGC_SIGHUP, VACUUM_AUTOVACUUM,
3531 gettext_noop("Minimum number of tuple updates or deletes prior to vacuum."),
3532 NULL
3533 },
3535 50, 0, INT_MAX,
3536 NULL, NULL, NULL
3537 },
3538 {
3539 {"autovacuum_vacuum_max_threshold", PGC_SIGHUP, VACUUM_AUTOVACUUM,
3540 gettext_noop("Maximum number of tuple updates or deletes prior to vacuum."),
3541 gettext_noop("-1 disables the maximum threshold.")
3542 },
3544 100000000, -1, INT_MAX,
3545 NULL, NULL, NULL
3546 },
3547 {
3548 {"autovacuum_vacuum_insert_threshold", PGC_SIGHUP, VACUUM_AUTOVACUUM,
3549 gettext_noop("Minimum number of tuple inserts prior to vacuum."),
3550 gettext_noop("-1 disables insert vacuums.")
3551 },
3553 1000, -1, INT_MAX,
3554 NULL, NULL, NULL
3555 },
3556 {
3557 {"autovacuum_analyze_threshold", PGC_SIGHUP, VACUUM_AUTOVACUUM,
3558 gettext_noop("Minimum number of tuple inserts, updates, or deletes prior to analyze."),
3559 NULL
3560 },
3562 50, 0, INT_MAX,
3563 NULL, NULL, NULL
3564 },
3565 {
3566 /* see varsup.c for why this is PGC_POSTMASTER not PGC_SIGHUP */
3567 {"autovacuum_freeze_max_age", PGC_POSTMASTER, VACUUM_AUTOVACUUM,
3568 gettext_noop("Age at which to autovacuum a table to prevent transaction ID wraparound."),
3569 NULL
3570 },
3572
3573 /* see vacuum_failsafe_age if you change the upper-limit value. */
3574 200000000, 100000, 2000000000,
3575 NULL, NULL, NULL
3576 },
3577 {
3578 /* see multixact.c for why this is PGC_POSTMASTER not PGC_SIGHUP */
3579 {"autovacuum_multixact_freeze_max_age", PGC_POSTMASTER, VACUUM_AUTOVACUUM,
3580 gettext_noop("Multixact age at which to autovacuum a table to prevent multixact wraparound."),
3581 NULL
3582 },
3584 400000000, 10000, 2000000000,
3585 NULL, NULL, NULL
3586 },
3587 {
3588 /* see max_connections */
3589 {"autovacuum_worker_slots", PGC_POSTMASTER, VACUUM_AUTOVACUUM,
3590 gettext_noop("Sets the number of backend slots to allocate for autovacuum workers."),
3591 NULL
3592 },
3594 16, 1, MAX_BACKENDS,
3595 NULL, NULL, NULL
3596 },
3597 {
3598 {"autovacuum_max_workers", PGC_SIGHUP, VACUUM_AUTOVACUUM,
3599 gettext_noop("Sets the maximum number of simultaneously running autovacuum worker processes."),
3600 NULL
3601 },
3603 3, 1, MAX_BACKENDS,
3604 NULL, NULL, NULL
3605 },
3606
3607 {
3608 {"max_parallel_maintenance_workers", PGC_USERSET, RESOURCES_WORKER_PROCESSES,
3609 gettext_noop("Sets the maximum number of parallel processes per maintenance operation."),
3610 NULL
3611 },
3614 NULL, NULL, NULL
3615 },
3616
3617 {
3618 {"max_parallel_workers_per_gather", PGC_USERSET, RESOURCES_WORKER_PROCESSES,
3619 gettext_noop("Sets the maximum number of parallel processes per executor node."),
3620 NULL,
3622 },
3625 NULL, NULL, NULL
3626 },
3627
3628 {
3629 {"max_parallel_workers", PGC_USERSET, RESOURCES_WORKER_PROCESSES,
3630 gettext_noop("Sets the maximum number of parallel workers that can be active at one time."),
3631 NULL,
3633 },
3636 NULL, NULL, NULL
3637 },
3638
3639 {
3640 {"autovacuum_work_mem", PGC_SIGHUP, RESOURCES_MEM,
3641 gettext_noop("Sets the maximum memory to be used by each autovacuum worker process."),
3642 gettext_noop("-1 means use \"maintenance_work_mem\"."),
3644 },
3646 -1, -1, MAX_KILOBYTES,
3647 check_autovacuum_work_mem, NULL, NULL
3648 },
3649
3650 {
3651 {"tcp_keepalives_idle", PGC_USERSET, CONN_AUTH_TCP,
3652 gettext_noop("Time between issuing TCP keepalives."),
3653 gettext_noop("0 means use the system default."),
3655 },
3657 0, 0, INT_MAX,
3659 },
3660
3661 {
3662 {"tcp_keepalives_interval", PGC_USERSET, CONN_AUTH_TCP,
3663 gettext_noop("Time between TCP keepalive retransmits."),
3664 gettext_noop("0 means use the system default."),
3666 },
3668 0, 0, INT_MAX,
3670 },
3671
3672 {
3673 {"ssl_renegotiation_limit", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
3674 gettext_noop("SSL renegotiation is no longer supported; this can only be 0."),
3675 NULL,
3677 },
3679 0, 0, 0,
3680 NULL, NULL, NULL
3681 },
3682
3683 {
3684 {"tcp_keepalives_count", PGC_USERSET, CONN_AUTH_TCP,
3685 gettext_noop("Maximum number of TCP keepalive retransmits."),
3686 gettext_noop("Number of consecutive keepalive retransmits that can be "
3687 "lost before a connection is considered dead. "
3688 "0 means use the system default."),
3689 },
3691 0, 0, INT_MAX,
3693 },
3694
3695 {
3696 {"gin_fuzzy_search_limit", PGC_USERSET, CLIENT_CONN_OTHER,
3697 gettext_noop("Sets the maximum allowed result for exact search by GIN."),
3698 gettext_noop("0 means no limit."),
3699 },
3701 0, 0, INT_MAX,
3702 NULL, NULL, NULL
3703 },
3704
3705 {
3706 {"effective_cache_size", PGC_USERSET, QUERY_TUNING_COST,
3707 gettext_noop("Sets the planner's assumption about the total size of the data caches."),
3708 gettext_noop("That is, the total size of the caches (kernel cache and shared buffers) used for PostgreSQL data files. "
3709 "This is measured in disk pages, which are normally 8 kB each."),
3711 },
3713 DEFAULT_EFFECTIVE_CACHE_SIZE, 1, INT_MAX,
3714 NULL, NULL, NULL
3715 },
3716
3717 {
3718 {"min_parallel_table_scan_size", PGC_USERSET, QUERY_TUNING_COST,
3719 gettext_noop("Sets the minimum amount of table data for a parallel scan."),
3720 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."),
3722 },
3724 (8 * 1024 * 1024) / BLCKSZ, 0, INT_MAX / 3,
3725 NULL, NULL, NULL
3726 },
3727
3728 {
3729 {"min_parallel_index_scan_size", PGC_USERSET, QUERY_TUNING_COST,
3730 gettext_noop("Sets the minimum amount of index data for a parallel scan."),
3731 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."),
3733 },
3735 (512 * 1024) / BLCKSZ, 0, INT_MAX / 3,
3736 NULL, NULL, NULL
3737 },
3738
3739 {
3740 /* Can't be set in postgresql.conf */
3741 {"server_version_num", PGC_INTERNAL, PRESET_OPTIONS,
3742 gettext_noop("Shows the server version as an integer."),
3743 NULL,
3745 },
3747 PG_VERSION_NUM, PG_VERSION_NUM, PG_VERSION_NUM,
3748 NULL, NULL, NULL
3749 },
3750
3751 {
3752 {"log_temp_files", PGC_SUSET, LOGGING_WHAT,
3753 gettext_noop("Log the use of temporary files larger than this number of kilobytes."),
3754 gettext_noop("-1 disables logging temporary files. 0 means log all temporary files."),
3756 },
3758 -1, -1, INT_MAX,
3759 NULL, NULL, NULL
3760 },
3761
3762 {
3763 {"track_activity_query_size", PGC_POSTMASTER, STATS_CUMULATIVE,
3764 gettext_noop("Sets the size reserved for pg_stat_activity.query, in bytes."),
3765 NULL,
3767 },
3769 1024, 100, 1048576,
3770 NULL, NULL, NULL
3771 },
3772
3773 {
3774 {"gin_pending_list_limit", PGC_USERSET, CLIENT_CONN_STATEMENT,
3775 gettext_noop("Sets the maximum size of the pending list for GIN index."),
3776 NULL,
3778 },
3780 4096, 64, MAX_KILOBYTES,
3781 NULL, NULL, NULL
3782 },
3783
3784 {
3785 {"tcp_user_timeout", PGC_USERSET, CONN_AUTH_TCP,
3786 gettext_noop("TCP user timeout."),
3787 gettext_noop("0 means use the system default."),
3789 },
3791 0, 0, INT_MAX,
3793 },
3794
3795 {
3796 {"huge_page_size", PGC_POSTMASTER, RESOURCES_MEM,
3797 gettext_noop("The size of huge page that should be requested."),
3798 gettext_noop("0 means use the system default."),
3800 },
3802 0, 0, INT_MAX,
3803 check_huge_page_size, NULL, NULL
3804 },
3805
3806 {
3807 {"debug_discard_caches", PGC_SUSET, DEVELOPER_OPTIONS,
3808 gettext_noop("Aggressively flush system caches for debugging purposes."),
3809 gettext_noop("0 means use normal caching behavior."),
3811 },
3813#ifdef DISCARD_CACHES_ENABLED
3814 /* Set default based on older compile-time-only cache clobber macros */
3815#if defined(CLOBBER_CACHE_RECURSIVELY)
3816 3,
3817#elif defined(CLOBBER_CACHE_ALWAYS)
3818 1,
3819#else
3820 0,
3821#endif
3822 0, 5,
3823#else /* not DISCARD_CACHES_ENABLED */
3824 0, 0, 0,
3825#endif /* not DISCARD_CACHES_ENABLED */
3826 NULL, NULL, NULL
3827 },
3828
3829 {
3830 {"client_connection_check_interval", PGC_USERSET, CONN_AUTH_TCP,
3831 gettext_noop("Sets the time interval between checks for disconnection while running queries."),
3832 gettext_noop("0 disables connection checks."),
3834 },
3836 0, 0, INT_MAX,
3838 },
3839
3840 {
3841 {"log_startup_progress_interval", PGC_SIGHUP, LOGGING_WHEN,
3842 gettext_noop("Time between progress updates for "
3843 "long-running startup operations."),
3844 gettext_noop("0 disables progress updates."),
3846 },
3848 10000, 0, INT_MAX,
3849 NULL, NULL, NULL
3850 },
3851
3852 {
3853 {"scram_iterations", PGC_USERSET, CONN_AUTH_AUTH,
3854 gettext_noop("Sets the iteration count for SCRAM secret generation."),
3855 NULL,
3857 },
3860 NULL, NULL, NULL
3861 },
3862
3863 /* End-of-list marker */
3864 {
3865 {NULL, 0, 0, NULL, NULL}, NULL, 0, 0, 0, NULL, NULL, NULL
3866 }
3867};
3868
3869
3871{
3872 {
3873 {"seq_page_cost", PGC_USERSET, QUERY_TUNING_COST,
3874 gettext_noop("Sets the planner's estimate of the cost of a "
3875 "sequentially fetched disk page."),
3876 NULL,
3878 },
3880 DEFAULT_SEQ_PAGE_COST, 0, DBL_MAX,
3881 NULL, NULL, NULL
3882 },
3883 {
3884 {"random_page_cost", PGC_USERSET, QUERY_TUNING_COST,
3885 gettext_noop("Sets the planner's estimate of the cost of a "
3886 "nonsequentially fetched disk page."),
3887 NULL,
3889 },
3891 DEFAULT_RANDOM_PAGE_COST, 0, DBL_MAX,
3892 NULL, NULL, NULL
3893 },
3894 {
3895 {"cpu_tuple_cost", PGC_USERSET, QUERY_TUNING_COST,
3896 gettext_noop("Sets the planner's estimate of the cost of "
3897 "processing each tuple (row)."),
3898 NULL,
3900 },
3902 DEFAULT_CPU_TUPLE_COST, 0, DBL_MAX,
3903 NULL, NULL, NULL
3904 },
3905 {
3906 {"cpu_index_tuple_cost", PGC_USERSET, QUERY_TUNING_COST,
3907 gettext_noop("Sets the planner's estimate of the cost of "
3908 "processing each index entry during an index scan."),
3909 NULL,
3911 },
3913 DEFAULT_CPU_INDEX_TUPLE_COST, 0, DBL_MAX,
3914 NULL, NULL, NULL
3915 },
3916 {
3917 {"cpu_operator_cost", PGC_USERSET, QUERY_TUNING_COST,
3918 gettext_noop("Sets the planner's estimate of the cost of "
3919 "processing each operator or function call."),
3920 NULL,
3922 },
3924 DEFAULT_CPU_OPERATOR_COST, 0, DBL_MAX,
3925 NULL, NULL, NULL
3926 },
3927 {
3928 {"parallel_tuple_cost", PGC_USERSET, QUERY_TUNING_COST,
3929 gettext_noop("Sets the planner's estimate of the cost of "
3930 "passing each tuple (row) from worker to leader backend."),
3931 NULL,
3933 },
3935 DEFAULT_PARALLEL_TUPLE_COST, 0, DBL_MAX,
3936 NULL, NULL, NULL
3937 },
3938 {
3939 {"parallel_setup_cost", PGC_USERSET, QUERY_TUNING_COST,
3940 gettext_noop("Sets the planner's estimate of the cost of "
3941 "starting up worker processes for parallel query."),
3942 NULL,
3944 },
3946 DEFAULT_PARALLEL_SETUP_COST, 0, DBL_MAX,
3947 NULL, NULL, NULL
3948 },
3949
3950 {
3951 {"jit_above_cost", PGC_USERSET, QUERY_TUNING_COST,
3952 gettext_noop("Perform JIT compilation if query is more expensive."),
3953 gettext_noop("-1 disables JIT compilation."),
3955 },
3957 100000, -1, DBL_MAX,
3958 NULL, NULL, NULL
3959 },
3960
3961 {
3962 {"jit_optimize_above_cost", PGC_USERSET, QUERY_TUNING_COST,
3963 gettext_noop("Optimize JIT-compiled functions if query is more expensive."),
3964 gettext_noop("-1 disables optimization."),
3966 },
3968 500000, -1, DBL_MAX,
3969 NULL, NULL, NULL
3970 },
3971
3972 {
3973 {"jit_inline_above_cost", PGC_USERSET, QUERY_TUNING_COST,
3974 gettext_noop("Perform JIT inlining if query is more expensive."),
3975 gettext_noop("-1 disables inlining."),
3977 },
3979 500000, -1, DBL_MAX,
3980 NULL, NULL, NULL
3981 },
3982
3983 {
3984 {"cursor_tuple_fraction", PGC_USERSET, QUERY_TUNING_OTHER,
3985 gettext_noop("Sets the planner's estimate of the fraction of "
3986 "a cursor's rows that will be retrieved."),
3987 NULL,
3989 },
3992 NULL, NULL, NULL
3993 },
3994
3995 {
3996 {"recursive_worktable_factor", PGC_USERSET, QUERY_TUNING_OTHER,
3997 gettext_noop("Sets the planner's estimate of the average size "
3998 "of a recursive query's working table."),
3999 NULL,
4001 },
4003 DEFAULT_RECURSIVE_WORKTABLE_FACTOR, 0.001, 1000000.0,
4004 NULL, NULL, NULL
4005 },
4006
4007 {
4008 {"geqo_selection_bias", PGC_USERSET, QUERY_TUNING_GEQO,
4009 gettext_noop("GEQO: selective pressure within the population."),
4010 NULL,
4012 },
4016 NULL, NULL, NULL
4017 },
4018 {
4019 {"geqo_seed", PGC_USERSET, QUERY_TUNING_GEQO,
4020 gettext_noop("GEQO: seed for random path selection."),
4021 NULL,
4023 },
4024 &Geqo_seed,
4025 0.0, 0.0, 1.0,
4026 NULL, NULL, NULL
4027 },
4028
4029 {
4030 {"hash_mem_multiplier", PGC_USERSET, RESOURCES_MEM,
4031 gettext_noop("Multiple of \"work_mem\" to use for hash tables."),
4032 NULL,
4034 },
4036 2.0, 1.0, 1000.0,
4037 NULL, NULL, NULL
4038 },
4039
4040 {
4041 {"bgwriter_lru_multiplier", PGC_SIGHUP, RESOURCES_BGWRITER,
4042 gettext_noop("Multiple of the average buffer usage to free per round."),
4043 NULL
4044 },
4046 2.0, 0.0, 10.0,
4047 NULL, NULL, NULL
4048 },
4049
4050 {
4051 {"seed", PGC_USERSET, UNGROUPED,
4052 gettext_noop("Sets the seed for random-number generation."),
4053 NULL,
4055 },
4057 0.0, -1.0, 1.0,
4059 },
4060
4061 {
4062 {"vacuum_cost_delay", PGC_USERSET, VACUUM_COST_DELAY,
4063 gettext_noop("Vacuum cost delay in milliseconds."),
4064 NULL,
4066 },
4068 0, 0, 100,
4069 NULL, NULL, NULL
4070 },
4071
4072 {
4073 {"autovacuum_vacuum_cost_delay", PGC_SIGHUP, VACUUM_AUTOVACUUM,
4074 gettext_noop("Vacuum cost delay in milliseconds, for autovacuum."),
4075 gettext_noop("-1 means use \"vacuum_cost_delay\"."),
4077 },
4079 2, -1, 100,
4080 NULL, NULL, NULL
4081 },
4082
4083 {
4084 {"autovacuum_vacuum_scale_factor", PGC_SIGHUP, VACUUM_AUTOVACUUM,
4085 gettext_noop("Number of tuple updates or deletes prior to vacuum as a fraction of reltuples."),
4086 NULL
4087 },
4089 0.2, 0.0, 100.0,
4090 NULL, NULL, NULL
4091 },
4092
4093 {
4094 {"autovacuum_vacuum_insert_scale_factor", PGC_SIGHUP, VACUUM_AUTOVACUUM,
4095 gettext_noop("Number of tuple inserts prior to vacuum as a fraction of reltuples."),
4096 NULL
4097 },
4099 0.2, 0.0, 100.0,
4100 NULL, NULL, NULL
4101 },
4102
4103 {
4104 {"autovacuum_analyze_scale_factor", PGC_SIGHUP, VACUUM_AUTOVACUUM,
4105 gettext_noop("Number of tuple inserts, updates, or deletes prior to analyze as a fraction of reltuples."),
4106 NULL
4107 },
4109 0.1, 0.0, 100.0,
4110 NULL, NULL, NULL
4111 },
4112
4113 {
4114 {"checkpoint_completion_target", PGC_SIGHUP, WAL_CHECKPOINTS,
4115 gettext_noop("Time spent flushing dirty buffers during checkpoint, as fraction of checkpoint interval."),
4116 NULL
4117 },
4119 0.9, 0.0, 1.0,
4121 },
4122
4123 {
4124 {"log_statement_sample_rate", PGC_SUSET, LOGGING_WHEN,
4125 gettext_noop("Fraction of statements exceeding \"log_min_duration_sample\" to be logged."),
4126 gettext_noop("Use a value between 0.0 (never log) and 1.0 (always log).")
4127 },
4129 1.0, 0.0, 1.0,
4130 NULL, NULL, NULL
4131 },
4132
4133 {
4134 {"log_transaction_sample_rate", PGC_SUSET, LOGGING_WHEN,
4135 gettext_noop("Sets the fraction of transactions from which to log all statements."),
4136 gettext_noop("Use a value between 0.0 (never log) and 1.0 (log all "
4137 "statements for all transactions).")
4138 },
4140 0.0, 0.0, 1.0,
4141 NULL, NULL, NULL
4142 },
4143
4144 {
4145 {"vacuum_max_eager_freeze_failure_rate", PGC_USERSET, VACUUM_FREEZING,
4146 gettext_noop("Fraction of pages in a relation vacuum can scan and fail to freeze before disabling eager scanning."),
4147 gettext_noop("A value of 0.0 disables eager scanning and a value of 1.0 will eagerly scan up to 100 percent of the all-visible pages in the relation. If vacuum successfully freezes these pages, the cap is lower than 100 percent, because the goal is to amortize page freezing across multiple vacuums.")
4148 },
4150 0.03, 0.0, 1.0,
4151 NULL, NULL, NULL
4152 },
4153
4154 /* End-of-list marker */
4155 {
4156 {NULL, 0, 0, NULL, NULL}, NULL, 0.0, 0.0, 0.0, NULL, NULL, NULL
4157 }
4158};
4159
4160
4162{
4163 {
4164 {"archive_command", PGC_SIGHUP, WAL_ARCHIVING,
4165 gettext_noop("Sets the shell command that will be called to archive a WAL file."),
4166 gettext_noop("An empty string means use \"archive_library\".")
4167 },
4169 "",
4170 NULL, NULL, show_archive_command
4171 },
4172
4173 {
4174 {"archive_library", PGC_SIGHUP, WAL_ARCHIVING,
4175 gettext_noop("Sets the library that will be called to archive a WAL file."),
4176 gettext_noop("An empty string means use \"archive_command\".")
4177 },
4179 "",
4180 NULL, NULL, NULL
4181 },
4182
4183 {
4184 {"restore_command", PGC_SIGHUP, WAL_ARCHIVE_RECOVERY,
4185 gettext_noop("Sets the shell command that will be called to retrieve an archived WAL file."),
4186 NULL
4187 },
4189 "",
4190 NULL, NULL, NULL
4191 },
4192
4193 {
4194 {"archive_cleanup_command", PGC_SIGHUP, WAL_ARCHIVE_RECOVERY,
4195 gettext_noop("Sets the shell command that will be executed at every restart point."),
4196 NULL
4197 },
4199 "",
4200 NULL, NULL, NULL
4201 },
4202
4203 {
4204 {"recovery_end_command", PGC_SIGHUP, WAL_ARCHIVE_RECOVERY,
4205 gettext_noop("Sets the shell command that will be executed once at the end of recovery."),
4206 NULL
4207 },
4209 "",
4210 NULL, NULL, NULL
4211 },
4212
4213 {
4214 {"recovery_target_timeline", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
4215 gettext_noop("Specifies the timeline to recover into."),
4216 NULL
4217 },
4219 "latest",
4221 },
4222
4223 {
4224 {"recovery_target", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
4225 gettext_noop("Set to \"immediate\" to end recovery as soon as a consistent state is reached."),
4226 NULL
4227 },
4229 "",
4231 },
4232 {
4233 {"recovery_target_xid", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
4234 gettext_noop("Sets the transaction ID up to which recovery will proceed."),
4235 NULL
4236 },
4238 "",
4240 },
4241 {
4242 {"recovery_target_time", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
4243 gettext_noop("Sets the time stamp up to which recovery will proceed."),
4244 NULL
4245 },
4247 "",
4249 },
4250 {
4251 {"recovery_target_name", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
4252 gettext_noop("Sets the named restore point up to which recovery will proceed."),
4253 NULL
4254 },
4256 "",
4258 },
4259 {
4260 {"recovery_target_lsn", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
4261 gettext_noop("Sets the LSN of the write-ahead log location up to which recovery will proceed."),
4262 NULL
4263 },
4265 "",
4267 },
4268
4269 {
4270 {"primary_conninfo", PGC_SIGHUP, REPLICATION_STANDBY,
4271 gettext_noop("Sets the connection string to be used to connect to the sending server."),
4272 NULL,
4274 },
4276 "",
4277 NULL, NULL, NULL
4278 },
4279
4280 {
4281 {"primary_slot_name", PGC_SIGHUP, REPLICATION_STANDBY,
4282 gettext_noop("Sets the name of the replication slot to use on the sending server."),
4283 NULL
4284 },
4286 "",
4287 check_primary_slot_name, NULL, NULL
4288 },
4289
4290 {
4291 {"client_encoding", PGC_USERSET, CLIENT_CONN_LOCALE,
4292 gettext_noop("Sets the client's character set encoding."),
4293 NULL,
4295 },
4297 "SQL_ASCII",
4299 },
4300
4301 {
4302 {"log_line_prefix", PGC_SIGHUP, LOGGING_WHAT,
4303 gettext_noop("Controls information prefixed to each log line."),
4304 gettext_noop("An empty string means no prefix.")
4305 },
4307 "%m [%p] ",
4308 NULL, NULL, NULL
4309 },
4310
4311 {
4312 {"log_timezone", PGC_SIGHUP, LOGGING_WHAT,
4313 gettext_noop("Sets the time zone to use in log messages."),
4314 NULL
4315 },
4317 "GMT",
4319 },
4320
4321 {
4322 {"DateStyle", PGC_USERSET, CLIENT_CONN_LOCALE,
4323 gettext_noop("Sets the display format for date and time values."),
4324 gettext_noop("Also controls interpretation of ambiguous "
4325 "date inputs."),
4327 },
4329 "ISO, MDY",
4331 },
4332
4333 {
4334 {"default_table_access_method", PGC_USERSET, CLIENT_CONN_STATEMENT,
4335 gettext_noop("Sets the default table access method for new tables."),
4336 NULL,
4338 },
4342 },
4343
4344 {
4345 {"default_tablespace", PGC_USERSET, CLIENT_CONN_STATEMENT,
4346 gettext_noop("Sets the default tablespace to create tables and indexes in."),
4347 gettext_noop("An empty string means use the database's default tablespace."),
4349 },
4351 "",
4352 check_default_tablespace, NULL, NULL
4353 },
4354
4355 {
4356 {"temp_tablespaces", PGC_USERSET, CLIENT_CONN_STATEMENT,
4357 gettext_noop("Sets the tablespace(s) to use for temporary tables and sort files."),
4358 gettext_noop("An empty string means use the database's default tablespace."),
4360 },
4362 "",
4364 },
4365
4366 {
4367 {"createrole_self_grant", PGC_USERSET, CLIENT_CONN_STATEMENT,
4368 gettext_noop("Sets whether a CREATEROLE user automatically grants "
4369 "the role to themselves, and with which options."),
4370 gettext_noop("An empty string disables automatic self grants."),
4372 },
4374 "",
4376 },
4377
4378 {
4379 {"dynamic_library_path", PGC_SUSET, CLIENT_CONN_OTHER,
4380 gettext_noop("Sets the path for dynamically loadable modules."),
4381 gettext_noop("If a dynamically loadable module needs to be opened and "
4382 "the specified name does not have a directory component (i.e., the "
4383 "name does not contain a slash), the system will search this path for "
4384 "the specified file."),
4386 },
4388 "$libdir",
4389 NULL, NULL, NULL
4390 },
4391
4392 {
4393 {"extension_control_path", PGC_SUSET, CLIENT_CONN_OTHER,
4394 gettext_noop("Sets the path for extension control files."),
4395 gettext_noop("The remaining extension script and secondary control files are then loaded "
4396 "from the same directory where the primary control file was found."),
4398 },
4400 "$system",
4401 NULL, NULL, NULL
4402 },
4403
4404 {
4405 {"krb_server_keyfile", PGC_SIGHUP, CONN_AUTH_AUTH,
4406 gettext_noop("Sets the location of the Kerberos server key file."),
4407 NULL,
4409 },
4412 NULL, NULL, NULL
4413 },
4414
4415 {
4416 {"bonjour_name", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
4417 gettext_noop("Sets the Bonjour service name."),
4418 gettext_noop("An empty string means use the computer name.")
4419 },
4420 &bonjour_name,
4421 "",
4422 NULL, NULL, NULL
4423 },
4424
4425 {
4426 {"lc_messages", PGC_SUSET, CLIENT_CONN_LOCALE,
4427 gettext_noop("Sets the language in which messages are displayed."),
4428 gettext_noop("An empty string means use the operating system setting.")
4429 },
4431 "",
4433 },
4434
4435 {
4436 {"lc_monetary", PGC_USERSET, CLIENT_CONN_LOCALE,
4437 gettext_noop("Sets the locale for formatting monetary amounts."),
4438 gettext_noop("An empty string means use the operating system setting.")
4439 },
4441 "C",
4443 },
4444
4445 {
4446 {"lc_numeric", PGC_USERSET, CLIENT_CONN_LOCALE,
4447 gettext_noop("Sets the locale for formatting numbers."),
4448 gettext_noop("An empty string means use the operating system setting.")
4449 },
4451 "C",
4453 },
4454
4455 {
4456 {"lc_time", PGC_USERSET, CLIENT_CONN_LOCALE,
4457 gettext_noop("Sets the locale for formatting date and time values."),
4458 gettext_noop("An empty string means use the operating system setting.")
4459 },
4460 &locale_time,
4461 "C",
4463 },
4464
4465 {
4466 {"session_preload_libraries", PGC_SUSET, CLIENT_CONN_PRELOAD,
4467 gettext_noop("Lists shared libraries to preload into each backend."),
4468 NULL,
4470 },
4472 "",
4473 NULL, NULL, NULL
4474 },
4475
4476 {
4477 {"shared_preload_libraries", PGC_POSTMASTER, CLIENT_CONN_PRELOAD,
4478 gettext_noop("Lists shared libraries to preload into server."),
4479 NULL,
4481 },
4483 "",
4484 NULL, NULL, NULL
4485 },
4486
4487 {
4488 {"local_preload_libraries", PGC_USERSET, CLIENT_CONN_PRELOAD,
4489 gettext_noop("Lists unprivileged shared libraries to preload into each backend."),
4490 NULL,
4492 },
4494 "",
4495 NULL, NULL, NULL
4496 },
4497
4498 {
4499 {"search_path", PGC_USERSET, CLIENT_CONN_STATEMENT,
4500 gettext_noop("Sets the schema search order for names that are not schema-qualified."),
4501 NULL,
4503 },
4505 "\"$user\", public",
4507 },
4508
4509 {
4510 /* Can't be set in postgresql.conf */
4511 {"server_encoding", PGC_INTERNAL, PRESET_OPTIONS,
4512 gettext_noop("Shows the server (database) character set encoding."),
4513 NULL,
4515 },
4517 "SQL_ASCII",
4518 NULL, NULL, NULL
4519 },
4520
4521 {
4522 /* Can't be set in postgresql.conf */
4523 {"server_version", PGC_INTERNAL, PRESET_OPTIONS,
4524 gettext_noop("Shows the server version."),
4525 NULL,
4527 },
4529 PG_VERSION,
4530 NULL, NULL, NULL
4531 },
4532
4533 {
4534 /* Not for general use --- used by SET ROLE */
4535 {"role", PGC_USERSET, UNGROUPED,
4536 gettext_noop("Sets the current role."),
4537 NULL,
4539 },
4540 &role_string,
4541 "none",
4543 },
4544
4545 {
4546 /* Not for general use --- used by SET SESSION AUTHORIZATION */
4547 {"session_authorization", PGC_USERSET, UNGROUPED,
4548 gettext_noop("Sets the session user name."),
4549 NULL,
4551 },
4553 NULL,
4555 },
4556
4557 {
4558 {"log_destination", PGC_SIGHUP, LOGGING_WHERE,
4559 gettext_noop("Sets the destination for server log output."),
4560 gettext_noop("Valid values are combinations of \"stderr\", "
4561 "\"syslog\", \"csvlog\", \"jsonlog\", and \"eventlog\", "
4562 "depending on the platform."),
4564 },
4566 "stderr",
4568 },
4569 {
4570 {"log_directory", PGC_SIGHUP, LOGGING_WHERE,
4571 gettext_noop("Sets the destination directory for log files."),
4572 gettext_noop("Can be specified as relative to the data directory "
4573 "or as absolute path."),
4575 },
4577 "log",
4578 check_canonical_path, NULL, NULL
4579 },
4580 {
4581 {"log_filename", PGC_SIGHUP, LOGGING_WHERE,
4582 gettext_noop("Sets the file name pattern for log files."),
4583 NULL,
4585 },
4586 &Log_filename,
4587 "postgresql-%Y-%m-%d_%H%M%S.log",
4588 NULL, NULL, NULL
4589 },
4590
4591 {
4592 {"syslog_ident", PGC_SIGHUP, LOGGING_WHERE,
4593 gettext_noop("Sets the program name used to identify PostgreSQL "
4594 "messages in syslog."),
4595 NULL
4596 },
4598 "postgres",
4599 NULL, assign_syslog_ident, NULL
4600 },
4601
4602 {
4603 {"event_source", PGC_POSTMASTER, LOGGING_WHERE,
4604 gettext_noop("Sets the application name used to identify "
4605 "PostgreSQL messages in the event log."),
4606 NULL
4607 },
4608 &event_source,
4610 NULL, NULL, NULL
4611 },
4612
4613 {
4614 {"TimeZone", PGC_USERSET, CLIENT_CONN_LOCALE,
4615 gettext_noop("Sets the time zone for displaying and interpreting time stamps."),
4616 NULL,
4618 },
4620 "GMT",
4622 },
4623 {
4624 {"timezone_abbreviations", PGC_USERSET, CLIENT_CONN_LOCALE,
4625 gettext_noop("Selects a file of time zone abbreviations."),
4626 NULL
4627 },
4629 NULL,
4631 },
4632
4633 {
4634 {"unix_socket_group", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
4635 gettext_noop("Sets the owning group of the Unix-domain socket."),
4636 gettext_noop("The owning user of the socket is always the user that starts the server. "
4637 "An empty string means use the user's default group.")
4638 },
4640 "",
4641 NULL, NULL, NULL
4642 },
4643
4644 {
4645 {"unix_socket_directories", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
4646 gettext_noop("Sets the directories where Unix-domain sockets will be created."),
4647 NULL,
4649 },
4652 NULL, NULL, NULL
4653 },
4654
4655 {
4656 {"listen_addresses", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
4657 gettext_noop("Sets the host name or IP address(es) to listen to."),
4658 NULL,
4660 },
4662 "localhost",
4663 NULL, NULL, NULL
4664 },
4665
4666 {
4667 /*
4668 * Can't be set by ALTER SYSTEM as it can lead to recursive definition
4669 * of data_directory.
4670 */
4671 {"data_directory", PGC_POSTMASTER, FILE_LOCATIONS,
4672 gettext_noop("Sets the server's data directory."),
4673 NULL,
4675 },
4677 NULL,
4678 NULL, NULL, NULL
4679 },
4680
4681 {
4682 {"config_file", PGC_POSTMASTER, FILE_LOCATIONS,
4683 gettext_noop("Sets the server's main configuration file."),
4684 NULL,
4686 },
4688 NULL,
4689 NULL, NULL, NULL
4690 },
4691
4692 {
4693 {"hba_file", PGC_POSTMASTER, FILE_LOCATIONS,
4694 gettext_noop("Sets the server's \"hba\" configuration file."),
4695 NULL,
4697 },
4698 &HbaFileName,
4699 NULL,
4700 NULL, NULL, NULL
4701 },
4702
4703 {
4704 {"ident_file", PGC_POSTMASTER, FILE_LOCATIONS,
4705 gettext_noop("Sets the server's \"ident\" configuration file."),
4706 NULL,
4708 },
4710 NULL,
4711 NULL, NULL, NULL
4712 },
4713
4714 {
4715 {"external_pid_file", PGC_POSTMASTER, FILE_LOCATIONS,
4716 gettext_noop("Writes the postmaster PID to the specified file."),
4717 NULL,
4719 },
4721 NULL,
4722 check_canonical_path, NULL, NULL
4723 },
4724
4725 {
4726 {"ssl_library", PGC_INTERNAL, PRESET_OPTIONS,
4727 gettext_noop("Shows the name of the SSL library."),
4728 NULL,
4730 },
4731 &ssl_library,
4732#ifdef USE_SSL
4733 "OpenSSL",
4734#else
4735 "",
4736#endif
4737 NULL, NULL, NULL
4738 },
4739
4740 {
4741 {"ssl_cert_file", PGC_SIGHUP, CONN_AUTH_SSL,
4742 gettext_noop("Location of the SSL server certificate file."),
4743 NULL
4744 },
4746 "server.crt",
4747 NULL, NULL, NULL
4748 },
4749
4750 {
4751 {"ssl_key_file", PGC_SIGHUP, CONN_AUTH_SSL,
4752 gettext_noop("Location of the SSL server private key file."),
4753 NULL
4754 },
4755 &ssl_key_file,
4756 "server.key",
4757 NULL, NULL, NULL
4758 },
4759
4760 {
4761 {"ssl_ca_file", PGC_SIGHUP, CONN_AUTH_SSL,
4762 gettext_noop("Location of the SSL certificate authority file."),
4763 NULL
4764 },
4765 &ssl_ca_file,
4766 "",
4767 NULL, NULL, NULL
4768 },
4769
4770 {
4771 {"ssl_crl_file", PGC_SIGHUP, CONN_AUTH_SSL,
4772 gettext_noop("Location of the SSL certificate revocation list file."),
4773 NULL
4774 },
4775 &ssl_crl_file,
4776 "",
4777 NULL, NULL, NULL
4778 },
4779
4780 {
4781 {"ssl_crl_dir", PGC_SIGHUP, CONN_AUTH_SSL,
4782 gettext_noop("Location of the SSL certificate revocation list directory."),
4783 NULL
4784 },
4785 &ssl_crl_dir,
4786 "",
4787 NULL, NULL, NULL
4788 },
4789
4790 {
4791 {"synchronous_standby_names", PGC_SIGHUP, REPLICATION_PRIMARY,
4792 gettext_noop("Number of synchronous standbys and list of names of potential synchronous ones."),
4793 NULL,
4795 },
4797 "",
4799 },
4800
4801 {
4802 {"default_text_search_config", PGC_USERSET, CLIENT_CONN_LOCALE,
4803 gettext_noop("Sets default text search configuration."),
4804 NULL
4805 },
4807 "pg_catalog.simple",
4809 },
4810
4811 {
4812 {"ssl_tls13_ciphers", PGC_SIGHUP, CONN_AUTH_SSL,
4813 gettext_noop("Sets the list of allowed TLSv1.3 cipher suites."),
4814 gettext_noop("An empty string means use the default cipher suites."),
4816 },
4818 "",
4819 NULL, NULL, NULL
4820 },
4821
4822 {
4823 {"ssl_ciphers", PGC_SIGHUP, CONN_AUTH_SSL,
4824 gettext_noop("Sets the list of allowed TLSv1.2 (and lower) ciphers."),
4825 NULL,
4827 },
4829#ifdef USE_OPENSSL
4830 "HIGH:MEDIUM:+3DES:!aNULL",
4831#else
4832 "none",
4833#endif
4834 NULL, NULL, NULL
4835 },
4836
4837 {
4838 {"ssl_groups", PGC_SIGHUP, CONN_AUTH_SSL,
4839 gettext_noop("Sets the group(s) to use for Diffie-Hellman key exchange."),
4840 gettext_noop("Multiple groups can be specified using colon-separated list."),
4842 },
4843 &SSLECDHCurve,
4844#ifdef USE_SSL
4845 "X25519:prime256v1",
4846#else
4847 "none",
4848#endif
4849 NULL, NULL, NULL
4850 },
4851
4852 {
4853 {"ssl_dh_params_file", PGC_SIGHUP, CONN_AUTH_SSL,
4854 gettext_noop("Location of the SSL DH parameters file."),
4855 gettext_noop("An empty string means use compiled-in default parameters."),
4857 },
4859 "",
4860 NULL, NULL, NULL
4861 },
4862
4863 {
4864 {"ssl_passphrase_command", PGC_SIGHUP, CONN_AUTH_SSL,
4865 gettext_noop("Command to obtain passphrases for SSL."),
4866 gettext_noop("An empty string means use the built-in prompting mechanism."),
4868 },
4870 "",
4871 NULL, NULL, NULL
4872 },
4873
4874 {
4875 {"application_name", PGC_USERSET, LOGGING_WHAT,
4876 gettext_noop("Sets the application name to be reported in statistics and logs."),
4877 NULL,
4879 },
4881 "",
4883 },
4884
4885 {
4886 {"cluster_name", PGC_POSTMASTER, PROCESS_TITLE,
4887 gettext_noop("Sets the name of the cluster, which is included in the process title."),
4888 NULL,
4890 },
4891 &cluster_name,
4892 "",
4893 check_cluster_name, NULL, NULL
4894 },
4895
4896 {
4897 {"wal_consistency_checking", PGC_SUSET, DEVELOPER_OPTIONS,
4898 gettext_noop("Sets the WAL resource managers for which WAL consistency checks are done."),
4899 gettext_noop("Full-page images will be logged for all data blocks and cross-checked against the results of WAL replay."),
4901 },
4903 "",
4905 },
4906
4907 {
4908 {"jit_provider", PGC_POSTMASTER, CLIENT_CONN_PRELOAD,
4909 gettext_noop("JIT provider to use."),
4910 NULL,
4912 },
4913 &jit_provider,
4914 "llvmjit",
4915 NULL, NULL, NULL
4916 },
4917
4918 {
4919 {"backtrace_functions", PGC_SUSET, DEVELOPER_OPTIONS,
4920 gettext_noop("Log backtrace for errors in these functions."),
4921 NULL,
4923 },
4925 "",
4927 },
4928
4929 {
4930 {"debug_io_direct", PGC_POSTMASTER, DEVELOPER_OPTIONS,
4931 gettext_noop("Use direct I/O for file access."),
4932 gettext_noop("An empty string disables direct I/O."),
4934 },
4936 "",
4938 },
4939
4940 {
4941 {"synchronized_standby_slots", PGC_SIGHUP, REPLICATION_PRIMARY,
4942 gettext_noop("Lists streaming replication standby server replication slot "
4943 "names that logical WAL sender processes will wait for."),
4944 gettext_noop("Logical WAL sender processes will send decoded "
4945 "changes to output plugins only after the specified "
4946 "replication slots have confirmed receiving WAL."),
4948 },
4950 "",
4952 },
4953
4954 {
4955 {"restrict_nonsystem_relation_kind", PGC_USERSET, CLIENT_CONN_STATEMENT,
4956 gettext_noop("Prohibits access to non-system relations of specified kinds."),
4957 NULL,
4959 },
4961 "",
4963 },
4964
4965 {
4966 {"oauth_validator_libraries", PGC_SIGHUP, CONN_AUTH_AUTH,
4967 gettext_noop("Lists libraries that may be called to validate OAuth v2 bearer tokens."),
4968 NULL,
4970 },
4972 "",
4973 NULL, NULL, NULL
4974 },
4975
4976 {
4977 {"log_connections", PGC_SU_BACKEND, LOGGING_WHAT,
4978 gettext_noop("Logs specified aspects of connection establishment and setup."),
4979 NULL,
4981 },
4983 "",
4985 },
4986
4987
4988 /* End-of-list marker */
4989 {
4990 {NULL, 0, 0, NULL, NULL}, NULL, NULL, NULL, NULL, NULL
4991 }
4992};
4993
4994
4996{
4997 {
4998 {"backslash_quote", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
4999 gettext_noop("Sets whether \"\\'\" is allowed in string literals."),
5000 NULL
5001 },
5004 NULL, NULL, NULL
5005 },
5006
5007 {
5008 {"bytea_output", PGC_USERSET, CLIENT_CONN_STATEMENT,
5009 gettext_noop("Sets the output format for bytea."),
5010 NULL
5011 },
5012 &bytea_output,
5014 NULL, NULL, NULL
5015 },
5016
5017 {
5018 {"client_min_messages", PGC_USERSET, CLIENT_CONN_STATEMENT,
5019 gettext_noop("Sets the message levels that are sent to the client."),
5020 gettext_noop("Each level includes all the levels that follow it. The later"
5021 " the level, the fewer messages are sent.")
5022 },
5025 NULL, NULL, NULL
5026 },
5027
5028 {
5029 {"compute_query_id", PGC_SUSET, STATS_MONITORING,
5030 gettext_noop("Enables in-core computation of query identifiers."),
5031 NULL
5032 },
5035 NULL, NULL, NULL
5036 },
5037
5038 {
5039 {"constraint_exclusion", PGC_USERSET, QUERY_TUNING_OTHER,
5040 gettext_noop("Enables the planner to use constraints to optimize queries."),
5041 gettext_noop("Table scans will be skipped if their constraints"
5042 " guarantee that no rows match the query."),
5044 },
5047 NULL, NULL, NULL
5048 },
5049
5050 {
5051 {"default_toast_compression", PGC_USERSET, CLIENT_CONN_STATEMENT,
5052 gettext_noop("Sets the default compression method for compressible values."),
5053 NULL
5054 },
5058 NULL, NULL, NULL
5059 },
5060
5061 {
5062 {"default_transaction_isolation", PGC_USERSET, CLIENT_CONN_STATEMENT,
5063 gettext_noop("Sets the transaction isolation level of each new transaction."),
5064 NULL
5065 },
5068 NULL, NULL, NULL
5069 },
5070
5071 {
5072 {"transaction_isolation", PGC_USERSET, CLIENT_CONN_STATEMENT,
5073 gettext_noop("Sets the current transaction's isolation level."),
5074 NULL,
5076 },
5077 &XactIsoLevel,
5079 check_transaction_isolation, NULL, NULL
5080 },
5081
5082 {
5083 {"IntervalStyle", PGC_USERSET, CLIENT_CONN_LOCALE,
5084 gettext_noop("Sets the display format for interval values."),
5085 NULL,
5087 },
5090 NULL, NULL, NULL
5091 },
5092
5093 {
5094 {"icu_validation_level", PGC_USERSET, CLIENT_CONN_LOCALE,
5095 gettext_noop("Log level for reporting invalid ICU locale strings."),
5096 NULL
5097 },
5100 NULL, NULL, NULL
5101 },
5102
5103 {
5104 {"log_error_verbosity", PGC_SUSET, LOGGING_WHAT,
5105 gettext_noop("Sets the verbosity of logged messages."),
5106 NULL
5107 },
5110 NULL, NULL, NULL
5111 },
5112
5113 {
5114 {"log_min_messages", PGC_SUSET, LOGGING_WHEN,
5115 gettext_noop("Sets the message levels that are logged."),
5116 gettext_noop("Each level includes all the levels that follow it. The later"
5117 " the level, the fewer messages are sent.")
5118 },
5121 NULL, NULL, NULL
5122 },
5123
5124 {
5125 {"log_min_error_statement", PGC_SUSET, LOGGING_WHEN,
5126 gettext_noop("Causes all statements generating error at or above this level to be logged."),
5127 gettext_noop("Each level includes all the levels that follow it. The later"
5128 " the level, the fewer messages are sent.")
5129 },
5132 NULL, NULL, NULL
5133 },
5134
5135 {
5136 {"log_statement", PGC_SUSET, LOGGING_WHAT,
5137 gettext_noop("Sets the type of statements logged."),
5138 NULL
5139 },
5142 NULL, NULL, NULL
5143 },
5144
5145 {
5146 {"syslog_facility", PGC_SIGHUP, LOGGING_WHERE,
5147 gettext_noop("Sets the syslog \"facility\" to be used when syslog enabled."),
5148 NULL
5149 },
5153 NULL, assign_syslog_facility, NULL
5154 },
5155
5156 {
5157 {"session_replication_role", PGC_SUSET, CLIENT_CONN_STATEMENT,
5158 gettext_noop("Sets the session's behavior for triggers and rewrite rules."),
5159 NULL
5160 },
5164 },
5165
5166 {
5167 {"synchronous_commit", PGC_USERSET, WAL_SETTINGS,
5168 gettext_noop("Sets the current transaction's synchronization level."),
5169 NULL
5170 },
5173 NULL, assign_synchronous_commit, NULL
5174 },
5175
5176 {
5177 {"archive_mode", PGC_POSTMASTER, WAL_ARCHIVING,
5178 gettext_noop("Allows archiving of WAL files using \"archive_command\"."),
5179 NULL
5180 },
5183 NULL, NULL, NULL
5184 },
5185
5186 {
5187 {"recovery_target_action", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
5188 gettext_noop("Sets the action to perform upon reaching the recovery target."),
5189 NULL
5190 },
5193 NULL, NULL, NULL
5194 },
5195
5196 {
5197 {"track_functions", PGC_SUSET, STATS_CUMULATIVE,
5198 gettext_noop("Collects function-level statistics on database activity."),
5199 NULL
5200 },
5203 NULL, NULL, NULL
5204 },
5205
5206
5207 {
5208 {"stats_fetch_consistency", PGC_USERSET, STATS_CUMULATIVE,
5209 gettext_noop("Sets the consistency of accesses to statistics data."),
5210 NULL
5211 },
5215 },
5216
5217 {
5218 {"wal_compression", PGC_SUSET, WAL_SETTINGS,
5219 gettext_noop("Compresses full-page writes written in WAL file with specified method."),
5220 NULL
5221 },
5224 NULL, NULL, NULL
5225 },
5226
5227 {
5228 {"wal_level", PGC_POSTMASTER, WAL_SETTINGS,
5229 gettext_noop("Sets the level of information written to the WAL."),
5230 NULL
5231 },
5232 &wal_level,
5234 NULL, NULL, NULL
5235 },
5236
5237 {
5238 {"dynamic_shared_memory_type", PGC_POSTMASTER, RESOURCES_MEM,
5239 gettext_noop("Selects the dynamic shared memory implementation used."),
5240 NULL
5241 },
5244 NULL, NULL, NULL
5245 },
5246
5247 {
5248 {"shared_memory_type", PGC_POSTMASTER, RESOURCES_MEM,
5249 gettext_noop("Selects the shared memory implementation used for the main shared memory region."),
5250 NULL
5251 },
5254 NULL, NULL, NULL
5255 },
5256
5257 {
5258 {"file_copy_method", PGC_USERSET, RESOURCES_DISK,
5259 gettext_noop("Selects the file copy method."),
5260 NULL
5261 },
5264 NULL, NULL, NULL
5265 },
5266
5267 {
5268 {"wal_sync_method", PGC_SIGHUP, WAL_SETTINGS,
5269 gettext_noop("Selects the method used for forcing WAL updates to disk."),
5270 NULL
5271 },
5274 NULL, assign_wal_sync_method, NULL
5275 },
5276
5277 {
5278 {"xmlbinary", PGC_USERSET, CLIENT_CONN_STATEMENT,
5279 gettext_noop("Sets how binary values are to be encoded in XML."),
5280 NULL
5281 },
5282 &xmlbinary,
5284 NULL, NULL, NULL
5285 },
5286
5287 {
5288 {"xmloption", PGC_USERSET, CLIENT_CONN_STATEMENT,
5289 gettext_noop("Sets whether XML data in implicit parsing and serialization "
5290 "operations is to be considered as documents or content fragments."),
5291 NULL
5292 },
5293 &xmloption,
5295 NULL, NULL, NULL
5296 },
5297
5298 {
5299 {"huge_pages", PGC_POSTMASTER, RESOURCES_MEM,
5300 gettext_noop("Use of huge pages on Linux or Windows."),
5301 NULL
5302 },
5303 &huge_pages,
5305 NULL, NULL, NULL
5306 },
5307
5308 {
5309 {"huge_pages_status", PGC_INTERNAL, PRESET_OPTIONS,
5310 gettext_noop("Indicates the status of huge pages."),
5311 NULL,
5313 },
5316 NULL, NULL, NULL
5317 },
5318
5319 {
5320 {"recovery_prefetch", PGC_SIGHUP, WAL_RECOVERY,
5321 gettext_noop("Prefetch referenced blocks during recovery."),
5322 gettext_noop("Look ahead in the WAL to find references to uncached data.")
5323 },
5327 },
5328
5329 {
5330 {"debug_parallel_query", PGC_USERSET, DEVELOPER_OPTIONS,
5331 gettext_noop("Forces the planner's use parallel query nodes."),
5332 gettext_noop("This can be useful for testing the parallel query infrastructure "
5333 "by forcing the planner to generate plans that contain nodes "
5334 "that perform tuple communication between workers and the main process."),
5336 },
5339 NULL, NULL, NULL
5340 },
5341
5342 {
5343 {"password_encryption", PGC_USERSET, CONN_AUTH_AUTH,
5344 gettext_noop("Chooses the algorithm for encrypting passwords."),
5345 NULL
5346 },
5349 NULL, NULL, NULL
5350 },
5351
5352 {
5353 {"plan_cache_mode", PGC_USERSET, QUERY_TUNING_OTHER,
5354 gettext_noop("Controls the planner's selection of custom or generic plan."),
5355 gettext_noop("Prepared statements can have custom and generic plans, and the planner "
5356 "will attempt to choose which is better. This can be set to override "
5357 "the default behavior."),
5359 },
5362 NULL, NULL, NULL
5363 },
5364
5365 {
5366 {"ssl_min_protocol_version", PGC_SIGHUP, CONN_AUTH_SSL,
5367 gettext_noop("Sets the minimum SSL/TLS protocol version to use."),
5368 NULL,
5370 },
5373 ssl_protocol_versions_info + 1, /* don't allow PG_TLS_ANY */
5374 NULL, NULL, NULL
5375 },
5376
5377 {
5378 {"ssl_max_protocol_version", PGC_SIGHUP, CONN_AUTH_SSL,
5379 gettext_noop("Sets the maximum SSL/TLS protocol version to use."),
5380 NULL,
5382 },
5384 PG_TLS_ANY,
5386 NULL, NULL, NULL
5387 },
5388
5389 {
5390 {"recovery_init_sync_method", PGC_SIGHUP, ERROR_HANDLING_OPTIONS,
5391 gettext_noop("Sets the method for synchronizing the data directory before crash recovery."),
5392 },
5395 NULL, NULL, NULL
5396 },
5397
5398 {
5399 {"debug_logical_replication_streaming", PGC_USERSET, DEVELOPER_OPTIONS,
5400 gettext_noop("Forces immediate streaming or serialization of changes in large transactions."),
5401 gettext_noop("On the publisher, it allows streaming or serializing each change in logical decoding. "
5402 "On the subscriber, it allows serialization of all changes to files and notifies the "
5403 "parallel apply workers to read and apply them at the end of the transaction."),
5405 },
5408 NULL, NULL, NULL
5409 },
5410
5411 {
5412 {"io_method", PGC_POSTMASTER, RESOURCES_IO,
5413 gettext_noop("Selects the method for executing asynchronous I/O."),
5414 NULL
5415 },
5416 &io_method,
5418 NULL, assign_io_method, NULL
5419 },
5420
5421 /* End-of-list marker */
5422 {
5423 {NULL, 0, 0, NULL, NULL}, NULL, 0, NULL, NULL, NULL, NULL
5424 }
5425};
int io_method
Definition: aio.c:77
void assign_io_method(int newval, void *extra)
Definition: aio.c:1201
int io_max_concurrency
Definition: aio.c:78
const struct config_enum_entry io_method_options[]
Definition: aio.c:67
bool check_io_max_concurrency(int *newval, void **extra, GucSource source)
Definition: aio.c:1210
#define DEFAULT_IO_METHOD
Definition: aio.h:42
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 enable_self_join_elimination
Definition: analyzejoins.c:53
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
char * oauth_validator_libraries_string
Definition: auth-oauth.c:34
int scram_sha_256_iterations
Definition: auth-scram.c:196
char * pg_krb_server_keyfile
Definition: auth.c:165
bool pg_krb_caseins_users
Definition: auth.c:166
bool pg_gss_accept_delegation
Definition: auth.c:167
int autovacuum_worker_slots
Definition: autovacuum.c:119
int autovacuum_multixact_freeze_max_age
Definition: autovacuum.c:131
int autovacuum_naptime
Definition: autovacuum.c:122
double autovacuum_vac_scale
Definition: autovacuum.c:125
int Log_autovacuum_min_duration
Definition: autovacuum.c:136
int autovacuum_anl_thresh
Definition: autovacuum.c:128
bool check_autovacuum_work_mem(int *newval, void **extra, GucSource source)
Definition: autovacuum.c:3387
int autovacuum_vac_cost_limit
Definition: autovacuum.c:134
int autovacuum_max_workers
Definition: autovacuum.c:120
int autovacuum_freeze_max_age
Definition: autovacuum.c:130
double autovacuum_vac_cost_delay
Definition: autovacuum.c:133
int autovacuum_vac_thresh
Definition: autovacuum.c:123
int autovacuum_work_mem
Definition: autovacuum.c:121
double autovacuum_anl_scale
Definition: autovacuum.c:129
int autovacuum_vac_ins_thresh
Definition: autovacuum.c:126
bool autovacuum_start_daemon
Definition: autovacuum.c:118
double autovacuum_vac_ins_scale
Definition: autovacuum.c:127
int autovacuum_vac_max_thresh
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:1108
bool check_bonjour(bool *newval, void **extra, GucSource source)
Definition: variable.c:1223
void assign_io_combine_limit(int newval, void *extra)
Definition: variable.c:1170
void assign_session_authorization(const char *newval, void *extra)
Definition: variable.c:912
bool check_transaction_deferrable(bool *newval, void **extra, GucSource source)
Definition: variable.c:624
bool check_canonical_path(char **newval, void **extra, GucSource source)
Definition: variable.c:1059
bool check_transaction_isolation(int *newval, void **extra, GucSource source)
Definition: variable.c:586
bool check_default_with_oids(bool *newval, void **extra, GucSource source)
Definition: variable.c:1236
void assign_timezone_abbreviations(const char *newval, void *extra)
Definition: variable.c:519
bool check_application_name(char **newval, void **extra, GucSource source)
Definition: variable.c:1080
void assign_timezone(const char *newval, void *extra)
Definition: variable.c:381
bool check_role(char **newval, void **extra, GucSource source)
Definition: variable.c:933
bool check_cluster_name(char **newval, void **extra, GucSource source)
Definition: variable.c:1118
const char * show_random_seed(void)
Definition: variable.c:677
void assign_io_max_combine_limit(int newval, void *extra)
Definition: variable.c:1164
bool check_session_authorization(char **newval, void **extra, GucSource source)
Definition: variable.c:815
const char * show_log_file_mode(void)
Definition: variable.c:1196
bool check_transaction_read_only(bool *newval, void **extra, GucSource source)
Definition: variable.c:546
void assign_maintenance_io_concurrency(int newval, void *extra)
Definition: variable.c:1146
bool check_timezone_abbreviations(char **newval, void **extra, GucSource source)
Definition: variable.c:487
const char * show_log_timezone(void)
Definition: variable.c:465
void assign_client_encoding(const char *newval, void *extra)
Definition: variable.c:786
void assign_role(const char *newval, void *extra)
Definition: variable.c:1026
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:1251
void assign_datestyle(const char *newval, void *extra)
Definition: variable.c:244
void assign_random_seed(double newval, void *extra)
Definition: variable.c:668
const char * show_role(void)
Definition: variable.c:1034
bool check_log_timezone(char **newval, void **extra, GucSource source)
Definition: variable.c:418
bool check_random_seed(double *newval, void **extra, GucSource source)
Definition: variable.c:656
const char * show_unix_socket_permissions(void)
Definition: variable.c:1208
const char * show_timezone(void)
Definition: variable.c:392
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:688
const char * show_data_directory_mode(void)
Definition: variable.c:1184
void assign_log_timezone(const char *newval, void *extra)
Definition: variable.c:456
int log_startup_progress_interval
Definition: startup.c:76
bool check_log_connections(char **newval, void **extra, GucSource source)
bool Trace_connection_negotiation
char * log_connections_string
void assign_log_connections(const char *newval, void *extra)
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:58
bool track_io_timing
Definition: bufmgr.c:144
int io_max_combine_limit
Definition: bufmgr.c:169
bool zero_damaged_pages
Definition: bufmgr.c:141
int bgwriter_flush_after
Definition: bufmgr.c:176
int checkpoint_flush_after
Definition: bufmgr.c:175
double bgwriter_lru_multiplier
Definition: bufmgr.c:143
int backend_flush_after
Definition: bufmgr.c:177
int maintenance_io_concurrency
Definition: bufmgr.c:159
int effective_io_concurrency
Definition: bufmgr.c:152
int io_combine_limit
Definition: bufmgr.c:167
int bgwriter_lru_maxpages
Definition: bufmgr.c:142
#define DEFAULT_IO_COMBINE_LIMIT
Definition: bufmgr.h:167
#define MAX_IO_COMBINE_LIMIT
Definition: bufmgr.h:166
#define MAX_IO_CONCURRENCY
Definition: bufmgr.h:188
#define DEFAULT_EFFECTIVE_IO_CONCURRENCY
Definition: bufmgr.h:161
#define DEFAULT_MAINTENANCE_IO_CONCURRENCY
Definition: bufmgr.h:162
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:975
#define gettext_noop(x)
Definition: c.h:1167
#define lengthof(array)
Definition: c.h:759
double CheckPointCompletionTarget
Definition: checkpointer.c:143
int CheckPointWarning
Definition: checkpointer.c:142
int CheckPointTimeout
Definition: checkpointer.c:141
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
int file_copy_method
Definition: copydir.c:34
@ FILE_COPY_METHOD_COPY
Definition: copydir.h:18
@ FILE_COPY_METHOD_CLONE
Definition: copydir.h:19
#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:69
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:2364
void assign_syslog_ident(const char *newval, void *extra)
Definition: elog.c:2332
bool syslog_split_messages
Definition: elog.c:114
void assign_backtrace_functions(const char *newval, void *extra)
Definition: elog.c:2250
int Log_error_verbosity
Definition: elog.c:109
bool check_backtrace_functions(char **newval, void **extra, GucSource source)
Definition: elog.c:2189
bool check_log_destination(char **newval, void **extra, GucSource source)
Definition: elog.c:2259
bool syslog_sequence_numbers
Definition: elog.c:113
char * Log_destination_string
Definition: elog.c:112
char * Log_line_prefix
Definition: elog.c:110
void assign_log_destination(const char *newval, void *extra)
Definition: elog.c:2323
@ PGERROR_VERBOSE
Definition: elog.h:474
@ PGERROR_DEFAULT
Definition: elog.h:473
@ PGERROR_TERSE
Definition: elog.h:472
#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
char * Extension_control_path
Definition: extension.c:74
int max_files_per_process
Definition: fd.c:146
int recovery_init_sync_method
Definition: fd.c:165
void assign_debug_io_direct(const char *newval, void *extra)
Definition: fd.c:4094
bool data_sync_retry
Definition: fd.c:162
bool check_debug_io_direct(char **newval, void **extra, GucSource source)
Definition: fd.c:4007
#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:164
double hash_mem_multiplier
Definition: globals.c:133
int VacuumCostLimit
Definition: globals.c:155
int max_parallel_maintenance_workers
Definition: globals.c:135
int NBuffers
Definition: globals.c:143
int transaction_buffers
Definition: globals.c:168
bool enableFsync
Definition: globals.c:130
int VacuumCostPageMiss
Definition: globals.c:153
int MaxConnections
Definition: globals.c:144
int multixact_member_buffers
Definition: globals.c:163
int data_directory_mode
Definition: globals.c:78
bool allowSystemTableMods
Definition: globals.c:131
int maintenance_work_mem
Definition: globals.c:134
int max_parallel_workers
Definition: globals.c:146
int VacuumCostPageDirty
Definition: globals.c:154
bool ExitOnAnyError
Definition: globals.c:124
int IntervalStyle
Definition: globals.c:128
int notify_buffers
Definition: globals.c:165
int work_mem
Definition: globals.c:132
int VacuumBufferUsageLimit
Definition: globals.c:150
int VacuumCostPageHit
Definition: globals.c:152
int commit_timestamp_buffers
Definition: globals.c:162
double VacuumCostDelay
Definition: globals.c:156
int subtransaction_buffers
Definition: globals.c:167
int max_worker_processes
Definition: globals.c:145
int serializable_buffers
Definition: globals.c:166
#define GUC_UNIT_MB
Definition: guc.h:235
#define GUC_EXPLAIN
Definition: guc.h:219
#define GUC_SUPERUSER_ONLY
Definition: guc.h:224
#define GUC_NO_RESET_ALL
Definition: guc.h:218
#define GUC_NO_RESET
Definition: guc.h:217
#define GUC_LIST_QUOTE
Definition: guc.h:215
#define GUC_UNIT_MS
Definition: guc.h:239
#define GUC_NOT_WHILE_SEC_REST
Definition: guc.h:226
#define GUC_UNIT_BLOCKS
Definition: guc.h:233
#define GUC_UNIT_XBLOCKS
Definition: guc.h:234
#define GUC_IS_NAME
Definition: guc.h:225
#define GUC_DISALLOW_IN_FILE
Definition: guc.h:222
#define GUC_LIST_INPUT
Definition: guc.h:214
#define GUC_RUNTIME_COMPUTED
Definition: guc.h:229
@ PGC_S_DEFAULT
Definition: guc.h:113
@ PGC_S_DYNAMIC_DEFAULT
Definition: guc.h:114
@ PGC_S_FILE
Definition: guc.h:116
@ PGC_S_GLOBAL
Definition: guc.h:118
@ PGC_S_DATABASE
Definition: guc.h:119
@ PGC_S_OVERRIDE
Definition: guc.h:123
@ PGC_S_ARGV
Definition: guc.h:117
@ PGC_S_SESSION
Definition: guc.h:126
@ PGC_S_CLIENT
Definition: guc.h:122
@ PGC_S_DATABASE_USER
Definition: guc.h:121
@ PGC_S_ENV_VAR
Definition: guc.h:115
@ PGC_S_USER
Definition: guc.h:120
@ PGC_S_TEST
Definition: guc.h:125
@ PGC_S_INTERACTIVE
Definition: guc.h:124
#define GUC_NO_SHOW_ALL
Definition: guc.h:216
#define GUC_DISALLOW_IN_AUTO_FILE
Definition: guc.h:227
#define GUC_ALLOW_IN_PARALLEL
Definition: guc.h:230
@ PGC_SUSET
Definition: guc.h:78
@ PGC_INTERNAL
Definition: guc.h:73
@ PGC_USERSET
Definition: guc.h:79
@ PGC_SU_BACKEND
Definition: guc.h:76
@ PGC_POSTMASTER
Definition: guc.h:74
@ PGC_SIGHUP
Definition: guc.h:75
@ PGC_BACKEND
Definition: guc.h:77
#define GUC_UNIT_BYTE
Definition: guc.h:236
#define GUC_NOT_IN_SAMPLE
Definition: guc.h:221
#define GUC_UNIT_S
Definition: guc.h:240
#define GUC_REPORT
Definition: guc.h:220
#define MAX_KILOBYTES
Definition: guc.h:29
#define GUC_UNIT_KB
Definition: guc.h:232
#define GUC_UNIT_MIN
Definition: guc.h:241
static char * recovery_target_lsn_string
Definition: guc_tables.c:633
bool log_statement_stats
Definition: guc_tables.c:522
static char * client_encoding_string
Definition: guc_tables.c:590
static int segment_size
Definition: guc_tables.c:614
static char * timezone_abbreviations_string
Definition: guc_tables.c:607
static const struct config_enum_entry stats_fetch_consistency[]
Definition: guc_tables.c:258
bool Debug_print_plan
Definition: guc_tables.c:508
char * event_source
Definition: guc_tables.c:525
bool check_function_bodies
Definition: guc_tables.c:528
int num_temp_buffers
Definition: guc_tables.c:552
int client_min_messages
Definition: guc_tables.c:540
static int max_identifier_length
Definition: guc_tables.c:612
static const struct config_enum_entry password_encryption_options[]
Definition: guc_tables.c:414
static const struct config_enum_entry ssl_protocol_versions_info[]
Definition: guc_tables.c:420
const struct config_enum_entry recovery_target_action_options[]
Definition: xlogrecovery.c:75
static bool default_with_oids
Definition: guc_tables.c:534
struct config_string ConfigureNamesString[]
Definition: guc_tables.c:4161
static char * timezone_string
Definition: guc_tables.c:605
#define PG_KRB_SRVTAB
Definition: guc_tables.c:111
static const struct config_enum_entry debug_parallel_query_options[]
Definition: guc_tables.c:394
static char * server_version_string
Definition: guc_tables.c:593
int log_min_error_statement
Definition: guc_tables.c:538
static bool data_checksums
Definition: guc_tables.c:619
static const struct config_enum_entry file_copy_method_options[]
Definition: guc_tables.c:486
static const struct config_enum_entry syslog_facility_options[]
Definition: guc_tables.c:232
static const struct config_enum_entry icu_validation_level_options[]
Definition: guc_tables.c:174
static const struct config_enum_entry recovery_prefetch_options[]
Definition: guc_tables.c:381
static const struct config_enum_entry recovery_init_sync_method_options[]
Definition: guc_tables.c:438
int tcp_keepalives_idle
Definition: guc_tables.c:562
char * HbaFileName
Definition: guc_tables.c:556
int temp_file_limit
Definition: guc_tables.c:550
const char *const GucContext_Names[]
Definition: guc_tables.c:647
static int ssl_renegotiation_limit
Definition: guc_tables.c:573
static int syslog_facility
Definition: guc_tables.c:603
static int max_function_args
Definition: guc_tables.c:610
int tcp_keepalives_interval
Definition: guc_tables.c:563
static int max_index_keys
Definition: guc_tables.c:611
static const struct config_enum_entry backslash_quote_options[]
Definition: guc_tables.c:290
static char * syslog_ident_str
Definition: guc_tables.c:588
#define DEFAULT_SYSLOG_FACILITY
Definition: guc_tables.c:601
const char *const GucSource_Names[]
Definition: guc_tables.c:666
char * ConfigFileName
Definition: guc_tables.c:555
bool log_parser_stats
Definition: guc_tables.c:519
static int block_size
Definition: guc_tables.c:613
int tcp_keepalives_count
Definition: guc_tables.c:564
double log_xact_sample_rate
Definition: guc_tables.c:547
#define DEFAULT_ASSERT_ENABLED
Definition: guc_tables.c:625
static const struct config_enum_entry shared_memory_options[]
Definition: guc_tables.c:446
struct config_int ConfigureNamesInt[]
Definition: guc_tables.c:2153
static const struct config_enum_entry huge_pages_status_options[]
Definition: guc_tables.c:374
const char *const config_type_names[]
Definition: guc_tables.c:750
bool Debug_pretty_print
Definition: guc_tables.c:511
char * role_string
Definition: guc_tables.c:636
static char * server_encoding_string
Definition: guc_tables.c:592
static int wal_block_size
Definition: guc_tables.c:617
static const struct config_enum_entry log_statement_options[]
Definition: guc_tables.c:203
static const struct config_enum_entry plan_cache_mode_options[]
Definition: guc_tables.c:407
int huge_pages
Definition: guc_tables.c:579
static const struct config_enum_entry wal_compression_options[]
Definition: guc_tables.c:467
static const struct config_enum_entry debug_logical_replication_streaming_options[]
Definition: guc_tables.c:429
static char * datestyle_string
Definition: guc_tables.c:591
static char * recovery_target_timeline_string
Definition: guc_tables.c:629
static char * restrict_nonsystem_relation_kind_string
Definition: guc_tables.c:596
int log_parameter_max_length_on_error
Definition: guc_tables.c:544
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:268
int log_min_duration_statement
Definition: guc_tables.c:542
static char * recovery_target_xid_string
Definition: guc_tables.c:631
bool AllowAlterSystem
Definition: guc_tables.c:506
int log_min_duration_sample
Definition: guc_tables.c:541
bool log_btree_build_stats
Definition: guc_tables.c:524
bool log_planner_stats
Definition: guc_tables.c:520
struct config_bool ConfigureNamesBool[]
Definition: guc_tables.c:790
static const struct config_enum_entry bytea_output_options[]
Definition: guc_tables.c:120
bool row_security
Definition: guc_tables.c:527
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:361
static const struct config_enum_entry synchronous_commit_options[]
Definition: guc_tables.c:342
static char * recovery_target_string
Definition: guc_tables.c:630
char * cluster_name
Definition: guc_tables.c:554
static bool assert_enabled
Definition: guc_tables.c:627
static const struct config_enum_entry default_toast_compression_options[]
Definition: guc_tables.c:459
static char * log_timezone_string
Definition: guc_tables.c:606
static char * session_authorization_string
Definition: guc_tables.c:609
bool in_hot_standby_guc
Definition: guc_tables.c:639
bool Debug_print_rewritten
Definition: guc_tables.c:510
static int shared_memory_size_in_huge_pages
Definition: guc_tables.c:616
static const struct config_enum_entry isolation_level_options[]
Definition: guc_tables.c:214
static const struct config_enum_entry log_error_verbosity_options[]
Definition: guc_tables.c:193
const struct config_enum_entry wal_sync_method_options[]
Definition: xlog.c:171
static int server_version_num
Definition: guc_tables.c:594
bool Debug_print_parse
Definition: guc_tables.c:509
char * application_name
Definition: guc_tables.c:560
static const struct config_enum_entry intervalstyle_options[]
Definition: guc_tables.c:166
int log_parameter_max_length
Definition: guc_tables.c:543
struct config_real ConfigureNamesReal[]
Definition: guc_tables.c:3870
char * IdentFileName
Definition: guc_tables.c:557
const struct config_enum_entry wal_level_options[]
Definition: xlogdesc.c:27
struct config_enum ConfigureNamesEnum[]
Definition: guc_tables.c:4995
static const struct config_enum_entry client_message_level_options[]
Definition: guc_tables.c:134
int tcp_user_timeout
Definition: guc_tables.c:565
bool current_role_is_superuser
Definition: guc_tables.c:536
static const struct config_enum_entry constraint_exclusion_options[]
Definition: guc_tables.c:325
static const struct config_enum_entry server_message_level_options[]
Definition: guc_tables.c:149
static const struct config_enum_entry compute_query_id_options[]
Definition: guc_tables.c:307
static char * recovery_target_name_string
Definition: guc_tables.c:632
int huge_page_size
Definition: guc_tables.c:580
static char * data_directory
Definition: guc_tables.c:608
StaticAssertDecl(lengthof(bytea_output_options)==(BYTEA_OUTPUT_HEX+2), "array length mismatch")
double log_statement_sample_rate
Definition: guc_tables.c:546
bool log_duration
Definition: guc_tables.c:507
const char *const config_group_names[]
Definition: guc_tables.c:690
static bool integer_datetimes
Definition: guc_tables.c:620
static double phony_random_seed
Definition: guc_tables.c:589
char * external_pid_file
Definition: guc_tables.c:558
int log_temp_files
Definition: guc_tables.c:545
static int num_os_semaphores
Definition: guc_tables.c:618
int log_min_messages
Definition: guc_tables.c:539
bool log_executor_stats
Definition: guc_tables.c:521
char * backtrace_functions
Definition: guc_tables.c:548
static int shared_memory_size_mb
Definition: guc_tables.c:615
static const struct config_enum_entry session_replication_role_options[]
Definition: guc_tables.c:222
static const struct config_enum_entry track_function_options[]
Definition: guc_tables.c:248
static const struct config_enum_entry xmloption_options[]
Definition: guc_tables.c:277
int huge_pages_status
Definition: guc_tables.c:581
static char * debug_io_direct_string
Definition: guc_tables.c:595
@ RESOURCES_KERNEL
Definition: guc_tables.h:65
@ CLIENT_CONN_LOCALE
Definition: guc_tables.h:95
@ WAL_ARCHIVE_RECOVERY
Definition: guc_tables.h:73
@ STATS_CUMULATIVE
Definition: guc_tables.h:89
@ CLIENT_CONN_PRELOAD
Definition: guc_tables.h:96
@ VACUUM_COST_DELAY
Definition: guc_tables.h:91
@ QUERY_TUNING_OTHER
Definition: guc_tables.h:83
@ LOGGING_WHERE
Definition: guc_tables.h:84
@ CONN_AUTH_AUTH
Definition: guc_tables.h:61
@ RESOURCES_WORKER_PROCESSES
Definition: guc_tables.h:68
@ VACUUM_FREEZING
Definition: guc_tables.h:93
@ ERROR_HANDLING_OPTIONS
Definition: guc_tables.h:101
@ PROCESS_TITLE
Definition: guc_tables.h:87
@ RESOURCES_DISK
Definition: guc_tables.h:64
@ REPLICATION_SENDING
Definition: guc_tables.h:76
@ RESOURCES_IO
Definition: guc_tables.h:67
@ LOCK_MANAGEMENT
Definition: guc_tables.h:98
@ CUSTOM_OPTIONS
Definition: guc_tables.h:103
@ 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:66
@ PRESET_OPTIONS
Definition: guc_tables.h:102
@ DEVELOPER_OPTIONS
Definition: guc_tables.h:104
@ QUERY_TUNING_METHOD
Definition: guc_tables.h:80
@ LOGGING_WHAT
Definition: guc_tables.h:86
@ VACUUM_DEFAULT
Definition: guc_tables.h:92
@ QUERY_TUNING_GEQO
Definition: guc_tables.h:82
@ WAL_SETTINGS
Definition: guc_tables.h:69
@ COMPAT_OPTIONS_OTHER
Definition: guc_tables.h:100
@ CLIENT_CONN_STATEMENT
Definition: guc_tables.h:94
@ 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:99
@ WAL_CHECKPOINTS
Definition: guc_tables.h:70
@ CLIENT_CONN_OTHER
Definition: guc_tables.h:97
@ 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
@ VACUUM_AUTOVACUUM
Definition: guc_tables.h:90
@ 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:260
int shared_memory_type
Definition: ipci.c:57
double jit_optimize_above_cost
Definition: jit.c:41
bool jit_dump_bitcode
Definition: jit.c:35
bool jit_enabled
Definition: jit.c:32
char * jit_provider
Definition: jit.c:33
bool jit_expressions
Definition: jit.c:36
bool jit_tuple_deforming
Definition: jit.c:38
double jit_above_cost
Definition: jit.c:39
double jit_inline_above_cost
Definition: jit.c:40
bool jit_profiling_support
Definition: jit.c:37
bool jit_debugging_support
Definition: jit.c:34
int max_logical_replication_workers
Definition: launcher.c:50
int max_sync_workers_per_subscription
Definition: launcher.c:51
int max_parallel_apply_workers_per_subscription
Definition: launcher.c:52
@ PG_TLS1_VERSION
Definition: libpq.h: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:868
int max_locks_per_xact
Definition: lock.c:53
bool log_lock_failure
Definition: lock.c:54
int io_workers
Definition: method_worker.c:93
#define INTSTYLE_SQL_STANDARD
Definition: miscadmin.h:259
#define INTSTYLE_POSTGRES_VERBOSE
Definition: miscadmin.h:258
#define MAX_BAS_VAC_RING_SIZE_KB
Definition: miscadmin.h:279
#define INTSTYLE_ISO_8601
Definition: miscadmin.h:260
#define INTSTYLE_POSTGRES
Definition: miscadmin.h:257
bool IgnoreSystemIndexes
Definition: miscinit.c:81
char * shared_preload_libraries_string
Definition: miscinit.c:1833
char * session_preload_libraries_string
Definition: miscinit.c:1832
char * local_preload_libraries_string
Definition: miscinit.c:1834
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
int max_active_replication_origins
Definition: origin.c:104
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:113
void assign_locale_time(const char *newval, void *extra)
Definition: pg_locale.c:388
bool check_locale_time(char **newval, void **extra, GucSource source)
Definition: pg_locale.c:382
char * locale_messages
Definition: pg_locale.c:108
char * locale_numeric
Definition: pg_locale.c:110
char * locale_time
Definition: pg_locale.c:111
bool check_locale_numeric(char **newval, void **extra, GucSource source)
Definition: pg_locale.c:370
void assign_locale_numeric(const char *newval, void *extra)
Definition: pg_locale.c:376
bool check_locale_messages(char **newval, void **extra, GucSource source)
Definition: pg_locale.c:404
void assign_locale_messages(const char *newval, void *extra)
Definition: pg_locale.c:427
void assign_locale_monetary(const char *newval, void *extra)
Definition: pg_locale.c:364
char * locale_monetary
Definition: pg_locale.c:109
bool check_locale_monetary(char **newval, void **extra, GucSource source)
Definition: pg_locale.c:358
@ HUGE_PAGES_UNKNOWN
Definition: pg_shmem.h:56
@ HUGE_PAGES_ON
Definition: pg_shmem.h:54
@ HUGE_PAGES_OFF
Definition: pg_shmem.h:53
@ HUGE_PAGES_TRY
Definition: pg_shmem.h:55
#define DEFAULT_SHARED_MEMORY_TYPE
Definition: pg_shmem.h:76
@ SHMEM_TYPE_MMAP
Definition: pg_shmem.h:64
@ SHMEM_TYPE_SYSV
Definition: pg_shmem.h:63
@ SHMEM_TYPE_WINDOWS
Definition: pg_shmem.h:62
char * XLogArchiveLibrary
Definition: pgarch.c:93
int pgstat_fetch_consistency
Definition: pgstat.c:204
bool pgstat_track_counts
Definition: pgstat.c:203
void assign_stats_fetch_consistency(int newval, void *extra)
Definition: pgstat.c:2064
@ PGSTAT_FETCH_CONSISTENCY_NONE
Definition: pgstat.h:46
@ PGSTAT_FETCH_CONSISTENCY_CACHE
Definition: pgstat.h:47
@ PGSTAT_FETCH_CONSISTENCY_SNAPSHOT
Definition: pgstat.h:48
@ TRACK_FUNC_PL
Definition: pgstat.h:40
@ TRACK_FUNC_ALL
Definition: pgstat.h:41
@ TRACK_FUNC_OFF
Definition: pgstat.h:39
int pgstat_track_functions
int plan_cache_mode
Definition: plancache.c:139
@ PLAN_CACHE_MODE_FORCE_CUSTOM_PLAN
Definition: plancache.h:37
@ PLAN_CACHE_MODE_FORCE_GENERIC_PLAN
Definition: plancache.h:36
@ PLAN_CACHE_MODE_AUTO
Definition: plancache.h:35
int constraint_exclusion
Definition: plancat.c:57
#define DEFAULT_CURSOR_TUPLE_FRACTION
Definition: planmain.h:21
double cursor_tuple_fraction
Definition: planner.c:67
bool parallel_leader_participation
Definition: planner.c:69
bool enable_distinct_reordering
Definition: planner.c:70
int debug_parallel_query
Definition: planner.c:68
int log_statement
Definition: postgres.c:96
void assign_transaction_timeout(int newval, void *extra)
Definition: postgres.c:3599
void assign_restrict_nonsystem_relation_kind(const char *newval, void *extra)
Definition: postgres.c:3670
int PostAuthDelay
Definition: postgres.c:99
int client_connection_check_interval
Definition: postgres.c:102
bool check_log_stats(bool *newval, void **extra, GucSource source)
Definition: postgres.c:3584
bool check_client_connection_check_interval(int *newval, void **extra, GucSource source)
Definition: postgres.c:3549
bool check_restrict_nonsystem_relation_kind(char **newval, void **extra, GucSource source)
Definition: postgres.c:3618
bool Log_disconnections
Definition: postgres.c:94
bool check_stage_log_stats(bool *newval, void **extra, GucSource source)
Definition: postgres.c:3570
int PreAuthDelay
Definition: postmaster.c:240
bool send_abort_for_kill
Definition: postmaster.c:257
int PostPortNumber
Definition: postmaster.c:203
bool log_hostname
Definition: postmaster.c:243
bool remove_temp_files_after_crash
Definition: postmaster.c:248
bool enable_bonjour
Definition: postmaster.c:245
bool restart_after_crash
Definition: postmaster.c:247
int ReservedConnections
Definition: postmaster.c:230
char * Unix_socket_directories
Definition: postmaster.c:206
bool send_abort_for_crash
Definition: postmaster.c:256
int AuthenticationTimeout
Definition: postmaster.c:241
bool EnableSSL
Definition: postmaster.c:238
char * ListenAddresses
Definition: postmaster.c:209
int SuperuserReservedConnections
Definition: postmaster.c:229
char * bonjour_name
Definition: postmaster.c:246
void assign_tcp_keepalives_count(int newval, void *extra)
Definition: pqcomm.c:2011
const char * show_tcp_keepalives_interval(void)
Definition: pqcomm.c:1998
int Unix_socket_permissions
Definition: pqcomm.c:106
const char * show_tcp_keepalives_count(void)
Definition: pqcomm.c:2021
char * Unix_socket_group
Definition: pqcomm.c:107
const char * show_tcp_keepalives_idle(void)
Definition: pqcomm.c:1975
void assign_tcp_keepalives_idle(int newval, void *extra)
Definition: pqcomm.c:1955
const char * show_tcp_user_timeout(void)
Definition: pqcomm.c:2044
void assign_tcp_user_timeout(int newval, void *extra)
Definition: pqcomm.c:2034
void assign_tcp_keepalives_interval(int newval, void *extra)
Definition: pqcomm.c:1988
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:1598
@ XMLOPTION_DOCUMENT
Definition: primnodes.h:1597
#define MAX_IO_WORKERS
Definition: proc.h:446
#define MAX_BACKENDS
Definition: procnumber.h:39
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:76
@ COMPUTE_QUERY_ID_REGRESS
Definition: queryjumble.h:77
@ COMPUTE_QUERY_ID_ON
Definition: queryjumble.h:75
@ COMPUTE_QUERY_ID_OFF
Definition: queryjumble.h:74
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:339
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:163
void assign_synchronized_standby_slots(const char *newval, void *extra)
Definition: slot.c:2757
int idle_replication_slot_timeout_mins
Definition: slot.c:157
bool check_synchronized_standby_slots(char **newval, void **extra, GucSource source)
Definition: slot.c:2701
int max_replication_slots
Definition: slot.c:150
bool check_idle_replication_slot_timeout(int *newval, void **extra, GucSource source)
Definition: slot.c:3004
bool sync_replication_slots
Definition: slotsync.c:107
#define SLRU_MAX_ALLOWED_BUFFERS
Definition: slru.h:24
bool log_lock_waits
Definition: proc.c:64
int IdleSessionTimeout
Definition: proc.c:63
int StatementTimeout
Definition: proc.c:59
int IdleInTransactionSessionTimeout
Definition: proc.c:61
int DeadlockTimeout
Definition: proc.c:58
int TransactionTimeout
Definition: proc.c:62
int LockTimeout
Definition: proc.c:60
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:42
int max_standby_archive_delay
Definition: standby.c:40
int max_standby_streaming_delay
Definition: standby.c:41
int wal_skip_threshold
Definition: storage.c:40
Definition: guc.h:174
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:1123
void assign_synchronous_standby_names(const char *newval, void *extra)
Definition: syncrep.c:1117
char * SyncRepStandbyNames
Definition: syncrep.c:90
bool check_synchronous_standby_names(char **newval, void **extra, GucSource source)
Definition: syncrep.c:1058
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:49
bool synchronize_seqscans
Definition: tableam.c:50
#define DEFAULT_TABLE_ACCESS_METHOD
Definition: tableam.h:29
bool check_default_table_access_method(char **newval, void **extra, GucSource source)
Definition: tableamapi.c:102
@ 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:64
void assign_session_replication_role(int newval, void *extra)
Definition: trigger.c:6630
#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:86
bool check_createrole_self_grant(char **newval, void **extra, GucSource source)
Definition: user.c:2528
void assign_createrole_self_grant(const char *newval, void *extra)
Definition: user.c:2581
char * createrole_self_grant
Definition: user.c:87
int vacuum_freeze_min_age
Definition: vacuum.c:73
double vacuum_max_eager_freeze_failure_rate
Definition: vacuum.c:79
bool track_cost_delay_timing
Definition: vacuum.c:80
bool check_vacuum_buffer_usage_limit(int *newval, void **extra, GucSource source)
Definition: vacuum.c:137
int vacuum_multixact_freeze_table_age
Definition: vacuum.c:76
int vacuum_freeze_table_age
Definition: vacuum.c:74
int vacuum_multixact_failsafe_age
Definition: vacuum.c:78
int vacuum_multixact_freeze_min_age
Definition: vacuum.c:75
int vacuum_failsafe_age
Definition: vacuum.c:77
bool vacuum_truncate
Definition: vacuum.c:81
#define MAX_STATISTICS_TARGET
Definition: vacuum.h:324
int bytea_output
Definition: varlena.c:48
bool hot_standby_feedback
Definition: walreceiver.c:90
int wal_receiver_status_interval
Definition: walreceiver.c:88
int wal_receiver_timeout
Definition: walreceiver.c:89
int max_wal_senders
Definition: walsender.c:126
bool log_replication_commands
Definition: walsender.c:130
int wal_sender_timeout
Definition: walsender.c:128
bool summarize_wal
int wal_summary_keep_time
int WalWriterFlushAfter
Definition: walwriter.c:71
int WalWriterDelay
Definition: walwriter.c:70
#define DEFAULT_WAL_WRITER_FLUSH_AFTER
Definition: walwriter.h:15
int synchronous_commit
Definition: xact.c:87
bool XactDeferrable
Definition: xact.c:85
bool DefaultXactDeferrable
Definition: xact.c:84
bool XactReadOnly
Definition: xact.c:82
int XactIsoLevel
Definition: xact.c:79
int DefaultXactIsoLevel
Definition: xact.c:78
bool DefaultXactReadOnly
Definition: xact.c:81
#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:8829
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:2356
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:4938
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:2331
int wal_segment_size
Definition: xlog.c:143
const char * show_archive_command(void)
Definition: xlog.c:4991
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:5003
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:2324
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:2338
bool check_wal_consistency_checking(char **newval, void **extra, GucSource source)
Definition: xlog.c:4851
int min_wal_size_mb
Definition: xlog.c:115
bool check_wal_buffers(int *newval, void **extra, GucSource source)
Definition: xlog.c:4816
@ 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:94
bool check_recovery_target(char **newval, void **extra, GucSource source)
int recoveryTargetAction
Definition: xlogrecovery.c:88
bool check_recovery_target_timeline(char **newval, void **extra, GucSource source)
char * PrimarySlotName
Definition: xlogrecovery.c:98
char * recoveryRestoreCommand
Definition: xlogrecovery.c:83
void assign_recovery_target(const char *newval, void *extra)
char * archiveCleanupCommand
Definition: xlogrecovery.c:85
char * recovery_target_time_string
Definition: xlogrecovery.c:90
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:99
char * recoveryEndCommand
Definition: xlogrecovery.c:84
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:97
bool check_recovery_target_name(char **newval, void **extra, GucSource source)
bool recoveryTargetInclusive
Definition: xlogrecovery.c:87
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