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