Files
2026-07-13 12:32:25 +08:00

4220 lines
162 KiB
Go

// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package config
import (
"fmt"
"math"
"strings"
"time"
"github.com/dolthub/go-mysql-server/sql"
"github.com/dolthub/go-mysql-server/sql/types"
)
// IsValidPostgresConfigParameter returns true if the given parameter name is a valid postgres configuration parameter.
func IsValidPostgresConfigParameter(name string) bool {
_, ok := postgresConfigParameters[strings.ToLower(name)]
return ok
}
// IsValidDoltConfigParameter returns true if the given parameter name is a valid Dolt configuration parameter.
func IsValidDoltConfigParameter(name string) bool {
_, ok := doltConfigParameters[strings.ToLower(name)]
return ok
}
// postgresConfigParameters is a list of configuration parameters that can be used in SET statement.
var postgresConfigParameters = map[string]sql.SystemVariable{
"allow_in_place_tablespaces": &Parameter{
Name: "allow_in_place_tablespaces",
Default: int8(0),
Category: "Developer Options",
ShortDesc: "Allows tablespaces directly inside pg_tblspc, for testing.",
Context: ParameterContextSuperUser,
Type: types.NewSystemBoolType("allow_in_place_tablespaces"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"allow_system_table_mods": &Parameter{
Name: "allow_system_table_mods",
Default: int8(0),
Category: "Developer Options",
ShortDesc: "Allows modifications of the structure of system tables.",
Context: ParameterContextSuperUser,
Type: types.NewSystemBoolType("allow_system_table_mods"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"application_name": &Parameter{
Name: "application_name",
Default: "psql",
Category: "Reporting and Logging / What to Log",
ShortDesc: "Sets the application name to be reported in statistics and logs.",
Context: ParameterContextUser,
Type: types.NewSystemStringType("application_name"),
Source: ParameterSourceClient,
ResetVal: "psql",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"archive_cleanup_command": &Parameter{
Name: "archive_cleanup_command",
Default: "",
Category: "Write-Ahead Log / Archive Recovery",
ShortDesc: "Sets the shell command that will be executed at every restart point.",
Context: ParameterContextSighup,
Type: types.NewSystemStringType("archive_cleanup_command"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"archive_command": &Parameter{
Name: "archive_command",
Default: "(disabled)",
Category: "Write-Ahead Log / Archiving",
ShortDesc: "Sets the shell command that will be called to archive a WAL file.",
Context: ParameterContextSighup,
Type: types.NewSystemStringType("archive_command"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"archive_library": &Parameter{
Name: "archive_library",
Default: "",
Category: "Write-Ahead Log / Archiving",
ShortDesc: "Sets the library that will be called to archive a WAL file.",
Context: ParameterContextSighup,
Type: types.NewSystemStringType("archive_library"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"archive_mode": &Parameter{
Name: "archive_mode",
Default: "off",
Category: "Write-Ahead Log / Archiving",
ShortDesc: "Allows archiving of WAL files using archive_command.",
Context: ParameterContextPostmaster,
Type: types.NewSystemEnumType("archive_mode", "always", "on", "off"),
Source: ParameterSourceDefault,
ResetVal: "off",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"archive_timeout": &Parameter{
Name: "archive_timeout",
Default: int64(0),
// Unit: "s",
Category: "Write-Ahead Log / Archiving",
ShortDesc: "Sets the amount of time to wait before forcing a switch to the next WAL file.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("archive_timeout", 0, 1073741823, false),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"array_nulls": &Parameter{
Name: "array_nulls",
Default: int8(1),
Category: "Version and Platform Compatibility / Previous PostgreSQL Versions",
ShortDesc: "Enable input of NULL elements in arrays.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("array_nulls"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"authentication_timeout": &Parameter{
Name: "authentication_timeout",
Default: int64(60),
// Unit: "s",
Category: "Connections and Authentication / Authentication",
ShortDesc: "Sets the maximum allowed time to complete client authentication.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("authentication_timeout", 1, 600, false),
Source: ParameterSourceDefault,
ResetVal: int64(60),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"autovacuum": &Parameter{
Name: "autovacuum",
Default: int8(1),
Category: "Autovacuum",
ShortDesc: "Starts the autovacuum subprocess.",
Context: ParameterContextSighup,
Type: types.NewSystemBoolType("autovacuum"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"autovacuum_analyze_scale_factor": &Parameter{
Name: "autovacuum_analyze_scale_factor",
Default: 0.1,
Category: "Autovacuum",
ShortDesc: "Number of tuple inserts, updates, or deletes prior to analyze as a fraction of reltuples.",
Context: ParameterContextSighup,
Type: types.NewSystemDoubleType("autovacuum_analyze_scale_factor", 0, 100),
Source: ParameterSourceDefault,
ResetVal: 0.1,
Scope: GetPgsqlScope(PsqlScopeSession),
},
"autovacuum_analyze_threshold": &Parameter{
Name: "autovacuum_analyze_threshold",
Default: int64(50),
Category: "Autovacuum",
ShortDesc: "Minimum number of tuple inserts, updates, or deletes prior to analyze.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("autovacuum_analyze_threshold", 0, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(50),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"autovacuum_freeze_max_age": &Parameter{
Name: "autovacuum_freeze_max_age",
Default: int64(2000000000),
Category: "Autovacuum",
ShortDesc: "Age at which to autovacuum a table to prevent transaction ID wraparound.",
Context: ParameterContextPostmaster,
Type: types.NewSystemIntType("autovacuum_freeze_max_age", 100000, 2000000000, false),
Source: ParameterSourceDefault,
ResetVal: int64(2000000000),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"autovacuum_max_workers": &Parameter{
Name: "autovacuum_max_workers",
Default: int64(3),
Category: "Autovacuum",
ShortDesc: "Sets the maximum number of simultaneously running autovacuum worker processes.",
Context: ParameterContextPostmaster,
Type: types.NewSystemIntType("autovacuum_max_workers", 1, 262143, false),
Source: ParameterSourceDefault,
ResetVal: int64(3),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"autovacuum_multixact_freeze_max_age": &Parameter{
Name: "autovacuum_multixact_freeze_max_age",
Default: int64(400000000),
Category: "Autovacuum",
ShortDesc: "Multixact age at which to autovacuum a table to prevent multixact wraparound.",
Context: ParameterContextPostmaster,
Type: types.NewSystemIntType("autovacuum_multixact_freeze_max_age", 10000, 2000000000, false),
Source: ParameterSourceDefault,
ResetVal: int64(400000000),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"autovacuum_naptime": &Parameter{
Name: "autovacuum_naptime",
Default: int64(60),
// Unit: "s",
Category: "Autovacuum",
ShortDesc: "Time to sleep between autovacuum runs.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("autovacuum_naptime", 1, 2147483, false),
Source: ParameterSourceDefault,
ResetVal: int64(60),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"autovacuum_vacuum_cost_delay": &Parameter{
Name: "autovacuum_vacuum_cost_delay",
Default: float64(2),
// Unit: "ms",
Category: "Autovacuum",
ShortDesc: "Vacuum cost delay in milliseconds, for autovacuum.",
Context: ParameterContextSighup,
Type: types.NewSystemDoubleType("autovacuum_vacuum_cost_delay", -1, 100),
Source: ParameterSourceDefault,
ResetVal: float64(2),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"autovacuum_vacuum_cost_limit": &Parameter{
Name: "autovacuum_vacuum_cost_limit",
Default: int64(-1),
Category: "Autovacuum",
ShortDesc: "Vacuum cost amount available before napping, for autovacuum.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("autovacuum_vacuum_cost_limit", -1, 10000, true),
Source: ParameterSourceDefault,
ResetVal: int64(-1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"autovacuum_vacuum_insert_scale_factor": &Parameter{
Name: "autovacuum_vacuum_insert_scale_factor",
Default: float64(0.2),
Category: "Autovacuum",
ShortDesc: "Number of tuple inserts prior to vacuum as a fraction of reltuples.",
Context: ParameterContextSighup,
Type: types.NewSystemDoubleType("autovacuum_vacuum_insert_scale_factor", 0, 100),
Source: ParameterSourceDefault,
ResetVal: float64(0.2),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"autovacuum_vacuum_insert_threshold": &Parameter{
Name: "autovacuum_vacuum_insert_threshold",
Default: int64(1000),
Category: "Autovacuum",
ShortDesc: "SMinimum number of tuple inserts prior to vacuum, or -1 to disable insert vacuums.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("autovacuum_vacuum_insert_threshold", -1, math.MaxInt32, true),
Source: ParameterSourceDefault,
ResetVal: int64(1000),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"autovacuum_vacuum_scale_factor": &Parameter{
Name: "autovacuum_vacuum_scale_factor",
Default: float64(0.2),
Category: "Autovacuum",
ShortDesc: "Number of tuple updates or deletes prior to vacuum as a fraction of reltuples.",
Context: ParameterContextSighup,
Type: types.NewSystemDoubleType("autovacuum_vacuum_scale_factor", 0, 100),
Source: ParameterSourceDefault,
ResetVal: float64(0.2),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"autovacuum_vacuum_threshold": &Parameter{
Name: "autovacuum_vacuum_threshold",
Default: int64(50),
Category: "Autovacuum",
ShortDesc: "Minimum number of tuple updates or deletes prior to vacuum.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("autovacuum_vacuum_threshold", 0, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(50),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"autovacuum_work_mem": &Parameter{
Name: "autovacuum_work_mem",
Default: int64(-1),
// Unit: "kB",
Category: "Resource Usage / Memory",
ShortDesc: "Sets the maximum memory to be used by each autovacuum worker process.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("autovacuum_work_mem", -1, math.MaxInt32, true),
Source: ParameterSourceDefault,
ResetVal: int64(-1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"backend_flush_after": &Parameter{
Name: "backend_flush_after",
Default: int64(0),
// Unit: "8kB",
Category: "Resource Usage / Asynchronous Behavior",
ShortDesc: "Number of pages after which previously performed writes are flushed to disk.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("backend_flush_after", 0, 256, false),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"backslash_quote": &Parameter{
Name: "backslash_quote",
Default: "safe_encoding",
Category: "Version and Platform Compatibility / Previous PostgreSQL Versions",
ShortDesc: "Sets whether \"\\'\" is allowed in string literals.",
Context: ParameterContextUser,
Type: types.NewSystemEnumType("backslash_quote", "safe_encoding", "on", "ff"),
Source: ParameterSourceDefault,
ResetVal: "safe_encoding",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"backtrace_functions": &Parameter{
Name: "backtrace_functions",
Default: "",
Category: "Developer Options",
ShortDesc: "Log backtrace for errors in these functions.",
Context: ParameterContextSuperUser,
Type: types.NewSystemStringType("backtrace_functions"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"bgwriter_delay": &Parameter{
Name: "bgwriter_delay",
Default: int64(200),
Category: "Resource Usage / Background Writer",
ShortDesc: "Background writer sleep time between rounds.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("bgwriter_delay", 10, 10000, false),
Source: ParameterSourceDefault,
ResetVal: int64(200),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"bgwriter_flush_after": &Parameter{
Name: "bgwriter_flush_after",
Default: int64(0),
// Unit: "8kB",
Category: "Resource Usage / Background Writer",
ShortDesc: "Number of pages after which previously performed writes are flushed to disk.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("bgwriter_flush_after", 0, 256, false),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"bgwriter_lru_maxpages": &Parameter{
Name: "bgwriter_lru_maxpages",
Default: int64(100),
Category: "Resource Usage / Background Writer",
ShortDesc: "Background writer maximum number of LRU pages to flush per round.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("bgwriter_lru_maxpages", 0, 1073741823, false),
Source: ParameterSourceDefault,
ResetVal: int64(100),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"bgwriter_lru_multiplier": &Parameter{
Name: "bgwriter_lru_multiplier",
Default: float64(2),
Category: "Resource Usage / Background Writer",
ShortDesc: "Multiple of the average buffer usage to free per round.",
Context: ParameterContextSighup,
Type: types.NewSystemDoubleType("bgwriter_lru_multiplier", 0, 10),
Source: ParameterSourceDefault,
ResetVal: float64(2),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"block_size": &Parameter{
Name: "block_size",
Default: int64(8192),
Category: "Preset Options",
ShortDesc: "Shows the size of a disk block.",
Context: ParameterContextInternal,
Type: types.NewSystemIntType("block_size", 8192, 8192, false),
Source: ParameterSourceDefault,
ResetVal: int64(8192),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"bonjour": &Parameter{
Name: "bonjour",
Default: int8(0),
Category: "Connections and Authentication / Connection Settings",
ShortDesc: "Enables advertising the server via Bonjour.",
Context: ParameterContextPostmaster,
Type: types.NewSystemBoolType("bonjour"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"bonjour_name": &Parameter{
Name: "bonjour_name",
Default: "",
Category: "Connections and Authentication / Connection Settings",
ShortDesc: "Sets the Bonjour service name.",
Context: ParameterContextPostmaster,
Type: types.NewSystemStringType("bonjour_name"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"bytea_output": &Parameter{
Name: "bytea_output",
Default: "hex",
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Sets the output format for bytea.",
Context: ParameterContextUser,
Type: types.NewSystemEnumType("bytea_output", "escape", "hex"),
Source: ParameterSourceDefault,
ResetVal: "hex",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"check_function_bodies": &Parameter{
Name: "check_function_bodies",
Default: int8(1),
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Check routine bodies during CREATE FUNCTION and CREATE PROCEDURE.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("check_function_bodies"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"checkpoint_completion_target": &Parameter{
Name: "checkpoint_completion_target",
Default: float64(0.9),
Category: "Write-Ahead Log / Checkpoints",
ShortDesc: "Time spent flushing dirty buffers during checkpoint, as fraction of checkpoint interval.",
Context: ParameterContextSighup,
Type: types.NewSystemDoubleType("checkpoint_completion_target", 0, 1),
Source: ParameterSourceDefault,
ResetVal: float64(0.9),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"checkpoint_flush_after": &Parameter{
Name: "checkpoint_flush_after",
Default: int64(0),
// Unit: "8kB",
Category: "Write-Ahead Log / Checkpoints",
ShortDesc: "Number of pages after which previously performed writes are flushed to disk.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("checkpoint_flush_after", 0, 256, false),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"checkpoint_timeout": &Parameter{
Name: "checkpoint_timeout",
Default: int64(300),
// Unit: "s",
Category: "Write-Ahead Log / Checkpoints",
ShortDesc: "Sets the maximum time between automatic WAL checkpoints.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("checkpoint_timeout", 30, 86400, false),
Source: ParameterSourceDefault,
ResetVal: int64(300),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"checkpoint_warning": &Parameter{
Name: "checkpoint_warning",
Default: int64(30),
// Unit: "s",
Category: "Write-Ahead Log / Checkpoints",
ShortDesc: "Sets the maximum time before warning if checkpoints triggered by WAL volume happen too frequently.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("checkpoint_warning", 0, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(30),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"client_connection_check_interval": &Parameter{
Name: "client_connection_check_interval",
Default: int64(0),
// Unit: "ms",
Category: "Connections and Authentication / TCP Settings",
ShortDesc: "Sets the time interval between checks for disconnection while running queries.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("client_connection_check_interval", 0, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"client_encoding": &Parameter{
Name: "client_encoding",
Default: "UTF8",
Category: "Client Connection Defaults / Locale and Formatting",
ShortDesc: "Sets the client's character set encoding.",
Context: ParameterContextUser,
Type: types.NewSystemStringType("client_encoding"),
Source: ParameterSourceClient,
// BootVal: "SQL_ASCII",
ResetVal: "UTF8",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"client_min_messages": &Parameter{
Name: "client_min_messages",
Default: "notice",
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Sets the message levels that are sent to the client.",
Context: ParameterContextUser,
Type: types.NewSystemEnumType("client_min_messages", "debug5", "debug4", "debug3", "debug2", "debug1", "log", "notice", "warning", "error"),
Source: ParameterSourceDefault,
ResetVal: "notice",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"cluster_name": &Parameter{
Name: "cluster_name",
Default: "",
Category: "Reporting and Logging / Process Title",
ShortDesc: "Sets the name of the cluster, which is included in the process title.",
Context: ParameterContextPostmaster,
Type: types.NewSystemStringType("cluster_name"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"commit_delay": &Parameter{
Name: "commit_delay",
Default: int64(0),
Category: "Write-Ahead Log / Settings",
ShortDesc: "Sets the delay in microseconds between transaction commit and flushing WAL to disk.",
Context: ParameterContextSuperUser,
Type: types.NewSystemIntType("commit_delay", 0, 100000, false),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"commit_siblings": &Parameter{
Name: "commit_siblings",
Default: int64(5),
Category: "Write-Ahead Log / Settings",
ShortDesc: "Sets the minimum number of concurrent open transactions required before performing commit_delay.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("commit_siblings", 0, 1000, false),
Source: ParameterSourceDefault,
ResetVal: int64(5),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"compute_query_id": &Parameter{
Name: "compute_query_id",
Default: "auto",
Category: "Statistics / Monitoring",
ShortDesc: "Enables in-core computation of query identifiers.",
Context: ParameterContextSuperUser,
Type: types.NewSystemEnumType("compute_query_id", "auto", "regress", "on", "off"),
Source: ParameterSourceDefault,
ResetVal: "auto",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"config_file": &Parameter{
Name: "config_file",
Default: "postgresql.conf",
Category: "File Locations",
ShortDesc: "Sets the server's main configuration file.",
Context: ParameterContextPostmaster,
Type: types.NewSystemStringType("config_file"),
Source: ParameterSourceOverride,
ResetVal: "postgresql.conf",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"constraint_exclusion": &Parameter{
Name: "constraint_exclusion",
Default: "partition",
Category: "Query Tuning / Other Planner Options",
ShortDesc: "Enables the planner to use constraints to optimize queries.",
Context: ParameterContextUser,
Type: types.NewSystemEnumType("constraint_exclusion", "partition", "on", "off"),
Source: ParameterSourceDefault,
ResetVal: "partition",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"cpu_index_tuple_cost": &Parameter{
Name: "cpu_index_tuple_cost",
Default: float64(0.005),
Category: "Query Tuning / Planner Cost Constants",
ShortDesc: "Sets the planner's estimate of the cost of processing each index entry during an index scan.",
Context: ParameterContextUser,
Type: types.NewSystemDoubleType("cpu_index_tuple_cost", 0, math.MaxFloat64),
Source: ParameterSourceDefault,
ResetVal: float64(0.005),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"cpu_operator_cost": &Parameter{
Name: "cpu_operator_cost",
Default: float64(0.0025),
Category: "Query Tuning / Planner Cost Constants",
ShortDesc: "Sets the planner's estimate of the cost of processing each operator or function call.",
Context: ParameterContextUser,
Type: types.NewSystemDoubleType("cpu_operator_cost", 0, math.MaxFloat64),
Source: ParameterSourceDefault,
ResetVal: float64(0.0025),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"cpu_tuple_cost": &Parameter{
Name: "cpu_tuple_cost",
Default: float64(0.01),
Category: "Query Tuning / Planner Cost Constants",
ShortDesc: "Sets the planner's estimate of the cost of processing each tuple (row).",
Context: ParameterContextUser,
Type: types.NewSystemDoubleType("cpu_tuple_cost", 0, math.MaxFloat64),
Source: ParameterSourceDefault,
ResetVal: float64(0.01),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"createrole_self_grant": &Parameter{
Name: "createrole_self_grant",
Default: "",
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Sets whether a CREATEROLE user automatically grants the role to themselves, and with which options.",
Context: ParameterContextUser,
Type: types.NewSystemStringType("createrole_self_grant"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
// The value must be `set`, `inherit`, or a comma-separated list of these. The default value is an empty string, which disables the feature.
},
"cursor_tuple_fraction": &Parameter{
Name: "cursor_tuple_fraction",
Default: float64(0.1),
Category: "Query Tuning / Other Planner Options",
ShortDesc: "Sets the planner's estimate of the fraction of a cursor's rows that will be retrieved.",
Context: ParameterContextUser,
Type: types.NewSystemDoubleType("cursor_tuple_fraction", 0, 1),
Source: ParameterSourceDefault,
ResetVal: float64(0.1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"data_checksums": &Parameter{
Name: "data_checksums",
Default: int8(0),
Category: "Preset Options",
ShortDesc: "Shows whether data checksums are turned on for this cluster.",
Context: ParameterContextInternal,
Type: types.NewSystemBoolType("data_checksums"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"data_directory": &Parameter{
Name: "data_directory",
Default: "postgres",
Category: "File Locations",
ShortDesc: "Sets the server's data directory.",
Context: ParameterContextPostmaster,
Type: types.NewSystemStringType("data_directory"),
Source: ParameterSourceOverride,
ResetVal: "postgres",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"data_directory_mode": &Parameter{
Name: "data_directory_mode",
Default: int64(448), // TODO: displays in octal, which is 0700
Category: "Preset Options",
ShortDesc: "Shows the mode of the data directory.",
Context: ParameterContextInternal,
Type: types.NewSystemIntType("data_directory_mode", 0, 511, false),
Source: ParameterSourceDefault,
ResetVal: int64(448),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"data_sync_retry": &Parameter{
Name: "data_sync_retry",
Default: int8(0),
Category: "Error Handling",
ShortDesc: "Whether to continue running after a failure to sync data files.",
Context: ParameterContextPostmaster,
Type: types.NewSystemBoolType("data_sync_retry"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"datestyle": &Parameter{
Name: "DateStyle",
Default: "ISO, MDY",
Category: "Client Connection Defaults / Locale and Formatting",
ShortDesc: "Sets the display format for date and time values.",
Context: ParameterContextUser,
Type: types.NewSystemStringType("datestyle"),
Source: ParameterSourceConfigurationFile,
ResetVal: "ISO, MDY",
// Sourcefile: postgresql.conf
Scope: GetPgsqlScope(PsqlScopeSession),
ValidateFunc: func(curr, new any) (any, bool) {
ds := "ISO"
do := "MDY"
if oldVal, ok := curr.(string); ok {
currentVal := strings.Split(strings.ReplaceAll(oldVal, " ", ""), ",")
if len(currentVal) == 2 {
// the first must be date style and second must be date ordering
ds = currentVal[0]
do = currentVal[1]
}
}
newVal, ok := new.(string)
if !ok {
return "", false
}
var dsSet, doSet bool
values := strings.Split(strings.ReplaceAll(strings.ToLower(newVal), " ", ""), ",")
for _, value := range values {
switch value {
case "iso":
if dsSet {
return "", false
}
ds = "ISO"
dsSet = true
case "sql":
if dsSet {
return "", false
}
ds = "SQL"
dsSet = true
case "postgres":
if dsSet {
return "", false
}
ds = "Postgres"
dsSet = true
case "german":
if dsSet {
return "", false
}
ds = "German"
dsSet = true
if !doSet {
do = "DMY"
}
case "us", "noneuropean", "mdy":
// MDY
if doSet {
return "", false
}
do = "MDY"
doSet = true
case "european", "dmy":
// DMY
if doSet {
return "", false
}
do = "DMY"
doSet = true
case "ymd":
if doSet {
return "", false
}
do = "YMD"
doSet = true
default:
return "", false
}
}
return fmt.Sprintf(`%s, %s`, ds, do), true
},
},
"db_user_namespace": &Parameter{
Name: "db_user_namespace",
Default: int8(0),
Category: "Connections and Authentication / Authentication",
ShortDesc: "Enables per-database user names.",
Context: ParameterContextSighup,
Type: types.NewSystemBoolType("db_user_namespace"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"deadlock_timeout": &Parameter{
Name: "deadlock_timeout",
Default: int64(1000),
// Unit: "ms",
Category: "Lock Management",
ShortDesc: "Sets the time to wait on a lock before checking for deadlock.",
Context: ParameterContextSuperUser,
Type: types.NewSystemIntType("deadlock_timeout", 1, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(1000),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"debug_assertions": &Parameter{
Name: "debug_assertions",
Default: int8(0),
Category: "Preset Options",
ShortDesc: "Shows whether the running server has assertion checks enabled.",
Context: ParameterContextInternal,
Type: types.NewSystemBoolType("debug_assertions"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"debug_discard_caches": &Parameter{
Name: "debug_discard_caches",
Default: int64(0),
Category: "Developer Options",
ShortDesc: "Aggressively flush system caches for debugging purposes.",
Context: ParameterContextSuperUser,
Type: types.NewSystemIntType("debug_discard_caches", 0, 0, false),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"debug_io_direct": &Parameter{
Name: "debug_io_direct",
Default: "",
Category: "Developer Options",
ShortDesc: "Use direct I/O for file access.",
Context: ParameterContextPostmaster,
Type: types.NewSystemStringType("debug_io_direct"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"debug_logical_replication_streaming": &Parameter{
Name: "debug_logical_replication_streaming",
Default: "buffered",
Category: "Developer Options",
ShortDesc: "Forces immediate streaming or serialization of changes in large transactions.",
Context: ParameterContextUser,
Type: types.NewSystemEnumType("debug_logical_replication_streaming", "buffered", "immediate"),
Source: ParameterSourceDefault,
ResetVal: "buffered",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"debug_parallel_query": &Parameter{
Name: "debug_parallel_query",
Default: "off",
Category: "Developer Options",
ShortDesc: "Forces the planner's use parallel query nodes.",
Context: ParameterContextUser,
Type: types.NewSystemEnumType("debug_parallel_query", "off", "on", "regress"),
Source: ParameterSourceDefault,
ResetVal: "off",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"debug_pretty_print": &Parameter{
Name: "debug_pretty_print",
Default: int8(1),
Category: "Reporting and Logging / What to Log",
ShortDesc: "Indents parse and plan tree displays.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("debug_pretty_print"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"debug_print_parse": &Parameter{
Name: "debug_print_parse",
Default: int8(0),
Category: "Reporting and Logging / What to Log",
ShortDesc: "Logs each query's parse tree.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("debug_print_parse"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"debug_print_plan": &Parameter{
Name: "debug_print_plan",
Default: int8(0),
Category: "Reporting and Logging / What to Log",
ShortDesc: "Sets the shell command that will be executed at every restart point.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("debug_print_plan"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"debug_print_rewritten": &Parameter{
Name: "debug_print_rewritten",
Default: int8(0),
Category: "Reporting and Logging / What to Log",
ShortDesc: "Logs each query's rewritten parse tree.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("debug_print_rewritten"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"default_statistics_target": &Parameter{
Name: "default_statistics_target",
Default: int64(100),
Category: "Query Tuning / Other Planner Options",
ShortDesc: "Sets the default statistics target.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("default_statistics_target", 1, 10000, false),
Source: ParameterSourceDefault,
ResetVal: int64(100),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"default_table_access_method": &Parameter{
Name: "default_table_access_method",
Default: "heap",
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Sets the default table access method for new tables.",
Context: ParameterContextUser,
Type: types.NewSystemStringType("default_table_access_method"),
Source: ParameterSourceDefault,
ResetVal: "heap",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"default_tablespace": &Parameter{
Name: "default_tablespace",
Default: "",
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Sets the default tablespace to create tables and indexes in.",
Context: ParameterContextUser,
Type: types.NewSystemStringType("default_tablespace"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"default_text_search_config": &Parameter{
Name: "default_text_search_config",
Default: "pg_catalog.english",
Category: "Client Connection Defaults / Locale and Formatting",
ShortDesc: "Sets default text search configuration.",
Context: ParameterContextUser,
Type: types.NewSystemStringType("default_text_search_config"),
Source: ParameterSourceConfigurationFile,
// BootVal: "pg_catalog.simple",
ResetVal: "pg_catalog.english",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"default_toast_compression": &Parameter{
Name: "default_toast_compression",
Default: "pglz",
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Sets the default compression method for compressible values.",
Context: ParameterContextUser,
Type: types.NewSystemEnumType("default_toast_compression", "pglz", "lz4"),
Source: ParameterSourceDefault,
ResetVal: "pglz",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"default_transaction_deferrable": &Parameter{
Name: "default_transaction_deferrable",
Default: int8(0),
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Sets the default deferrable status of new transactions.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("default_transaction_deferrable"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"default_transaction_isolation": &Parameter{
Name: "default_transaction_isolation",
Default: "read committed",
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Sets the transaction isolation level of each new transaction.",
Context: ParameterContextUser,
Type: types.NewSystemEnumType("default_transaction_isolation", "serializable", "repeatable read", "read committed", "read uncommitted"),
Source: ParameterSourceDefault,
ResetVal: "read committed",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"default_transaction_read_only": &Parameter{
Name: "default_transaction_read_only",
Default: int8(0),
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Sets the default read-only status of new transactions.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("default_transaction_read_only"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"default_with_oids": &Parameter{
Name: "default_with_oids",
Default: int8(0),
Category: "Version and Platform Compatibility / Previous PostgreSQL Versions",
ShortDesc: "Provided for backwards compatibility; Doltgres does not support OID columns, even if this parameter is enabled.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("default_with_oids"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"dynamic_library_path": &Parameter{
Name: "dynamic_library_path",
Default: "$libdir",
Category: "Client Connection Defaults / Other Defaults",
ShortDesc: "Sets the path for dynamically loadable modules.",
Context: ParameterContextSuperUser,
Type: types.NewSystemStringType("dynamic_library_path"),
Source: ParameterSourceDefault,
ResetVal: "$libdir",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"dynamic_shared_memory_type": &Parameter{
Name: "dynamic_shared_memory_type",
Default: "posix",
Category: "Resource Usage / Memory",
ShortDesc: "Selects the dynamic shared memory implementation used.",
Context: ParameterContextPostmaster,
Type: types.NewSystemEnumType("dynamic_shared_memory_type", "posix", "sysv", "mmap"),
Source: ParameterSourceConfigurationFile,
ResetVal: "posix",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"effective_cache_size": &Parameter{
Name: "effective_cache_size",
Default: int64(524288),
// Unit: "8kB",
Category: "Query Tuning / Planner Cost Constants",
ShortDesc: "Sets the planner's assumption about the total size of the data caches.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("effective_cache_size", 1, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(524288),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"effective_io_concurrency": &Parameter{
Name: "effective_io_concurrency",
Default: int64(0),
Category: "Resource Usage / Asynchronous Behavior",
ShortDesc: "Number of simultaneous requests that can be handled efficiently by the disk subsystem.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("effective_io_concurrency", 0, 1000, false),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"enable_async_append": &Parameter{
Name: "enable_async_append",
Default: int8(1),
Category: "Query Tuning / Planner Method Configuration",
ShortDesc: "Enables the planner's use of async append plans.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("enable_async_append"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"enable_bitmapscan": &Parameter{
Name: "enable_bitmapscan",
Default: int8(1),
Category: "Query Tuning / Planner Method Configuration",
ShortDesc: "Enables the planner's use of bitmap-scan plans.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("enable_bitmapscan"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"enable_gathermerge": &Parameter{
Name: "enable_gathermerge",
Default: int8(1),
Category: "Query Tuning / Planner Method Configuration",
ShortDesc: "Enables the planner's use of gather merge plans.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("enable_gathermerge"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"enable_hashagg": &Parameter{
Name: "enable_hashagg",
Default: int8(1),
Category: "Query Tuning / Planner Method Configuration",
ShortDesc: "Enables the planner's use of hashed aggregation plans.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("enable_hashagg"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"enable_hashjoin": &Parameter{
Name: "enable_hashjoin",
Default: int8(1),
Category: "Query Tuning / Planner Method Configuration",
ShortDesc: "Enables the planner's use of hash join plans.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("enable_hashjoin"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"enable_incremental_sort": &Parameter{
Name: "enable_incremental_sort",
Default: int8(1),
Category: "Query Tuning / Planner Method Configuration",
ShortDesc: "Enables the planner's use of incremental sort steps.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("enable_incremental_sort"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"enable_indexonlyscan": &Parameter{
Name: "enable_indexonlyscan",
Default: int8(1),
Category: "Query Tuning / Planner Method Configuration",
ShortDesc: "Enables the planner's use of index-only-scan plans.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("enable_indexonlyscan"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"enable_indexscan": &Parameter{
Name: "enable_indexscan",
Default: int8(1),
Category: "Query Tuning / Planner Method Configuration",
ShortDesc: "Enables the planner's use of index-scan plans.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("enable_indexscan"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"enable_material": &Parameter{
Name: "enable_material",
Default: int8(1),
Category: "Query Tuning / Planner Method Configuration",
ShortDesc: "Enables the planner's use of materialization.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("enable_material"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"enable_memoize": &Parameter{
Name: "enable_memoize",
Default: int8(1),
Category: "Query Tuning / Planner Method Configuration",
ShortDesc: "Enables the planner's use of memoization.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("enable_memoize"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"enable_mergejoin": &Parameter{
Name: "enable_mergejoin",
Default: int8(1),
Category: "Query Tuning / Planner Method Configuration",
ShortDesc: "Enables the planner's use of merge join plans.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("enable_mergejoin"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"enable_nestloop": &Parameter{
Name: "enable_nestloop",
Default: int8(1),
Category: "Query Tuning / Planner Method Configuration",
ShortDesc: "Enables the planner's use of nested-loop join plans.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("enable_nestloop"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"enable_parallel_append": &Parameter{
Name: "enable_parallel_append",
Default: int8(1),
Category: "Query Tuning / Planner Method Configuration",
ShortDesc: "Enables the planner's use of parallel append plans.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("enable_parallel_append"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"enable_parallel_hash": &Parameter{
Name: "enable_parallel_hash",
Default: int8(1),
Category: "Query Tuning / Planner Method Configuration",
ShortDesc: "Enables the planner's use of parallel hash plans.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("enable_parallel_hash"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"enable_partition_pruning": &Parameter{
Name: "enable_partition_pruning",
Default: int8(1),
Category: "Query Tuning / Planner Method Configuration",
ShortDesc: "Enables plan-time and execution-time partition pruning.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("enable_partition_pruning"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"enable_partitionwise_aggregate": &Parameter{
Name: "enable_partitionwise_aggregate",
Default: int8(0),
Category: "Query Tuning / Planner Method Configuration",
ShortDesc: "Enables partitionwise aggregation and grouping.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("enable_partitionwise_aggregate"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"enable_partitionwise_join": &Parameter{
Name: "enable_partitionwise_join",
Default: int8(0),
Category: "Query Tuning / Planner Method Configuration",
ShortDesc: "Enables partitionwise join.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("enable_partitionwise_join"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"enable_presorted_aggregate": &Parameter{
Name: "enable_presorted_aggregate",
Default: int8(1),
Category: "Query Tuning / Planner Method Configuration",
ShortDesc: "Enables the planner's ability to produce plans that provide presorted input for ORDER BY / DISTINCT aggregate functions.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("enable_presorted_aggregate"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"enable_seqscan": &Parameter{
Name: "enable_seqscan",
Default: int8(1),
Category: "Query Tuning / Planner Method Configuration",
ShortDesc: "Enables the planner's use of sequential-scan plans.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("enable_seqscan"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"enable_sort": &Parameter{
Name: "enable_sort",
Default: int8(1),
Category: "Query Tuning / Planner Method Configuration",
ShortDesc: "Enables the planner's use of explicit sort steps.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("enable_sort"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"enable_tidscan": &Parameter{
Name: "enable_tidscan",
Default: int8(1),
Category: "Query Tuning / Planner Method Configuration",
ShortDesc: "Enables the planner's use of TID scan plans.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("enable_tidscan"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"escape_string_warning": &Parameter{
Name: "escape_string_warning",
Default: int8(1),
Category: "Version and Platform Compatibility / Previous PostgreSQL Versions",
ShortDesc: "Warn about backslash escapes in ordinary string literals.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("escape_string_warning"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"event_source": &Parameter{
Name: "event_source",
Default: "PostgreSQL",
Category: "Reporting and Logging / Where to Log",
ShortDesc: "Sets the application name used to identify PostgreSQL messages in the event log.",
Context: ParameterContextPostmaster,
Type: types.NewSystemStringType("event_source"),
Source: ParameterSourceDefault,
ResetVal: "PostgreSQL",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"exit_on_error": &Parameter{
Name: "exit_on_error",
Default: int8(0),
Category: "Error Handling",
ShortDesc: "Terminate session on any error.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("exit_on_error"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"external_pid_file": &Parameter{
Name: "external_pid_file",
Default: "",
Category: "File Locations",
ShortDesc: "Writes the postmaster PID to the specified file.",
Context: ParameterContextPostmaster,
Type: types.NewSystemStringType("external_pid_file"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"extra_float_digits": &Parameter{
Name: "extra_float_digits",
Default: int64(1),
Category: "Client Connection Defaults / Locale and Formatting",
ShortDesc: "Sets the number of digits displayed for floating-point values.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("extra_float_digits", -15, 3, false),
Source: ParameterSourceDefault,
ResetVal: int64(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"from_collapse_limit": &Parameter{
Name: "from_collapse_limit",
Default: int64(8),
Category: "Query Tuning / Other Planner Options",
ShortDesc: "Sets the FROM-list size beyond which subqueries are not collapsed.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("from_collapse_limit", 1, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(8),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"fsync": &Parameter{
Name: "fsync",
Default: int8(1),
Category: "Write-Ahead Log / Settings",
ShortDesc: "Forces synchronization of updates to disk.",
Context: ParameterContextSighup,
Type: types.NewSystemBoolType("fsync"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"full_page_writes": &Parameter{
Name: "full_page_writes",
Default: int8(1),
Category: "Write-Ahead Log / Settings",
ShortDesc: "Writes full pages to WAL when first modified after a checkpoint.",
Context: ParameterContextSighup,
Type: types.NewSystemBoolType("full_page_writes"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"geqo": &Parameter{
Name: "geqo",
Default: int8(1),
Category: "Query Tuning / Genetic Query Optimizer",
ShortDesc: "Enables genetic query optimization.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("geqo"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"geqo_effort": &Parameter{
Name: "geqo_effort",
Default: int64(5),
Category: "Query Tuning / Genetic Query Optimizer",
ShortDesc: "GEQO: effort is used to set the default for other GEQO parameters.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("geqo_effort", 1, 10, false),
Source: ParameterSourceDefault,
ResetVal: int64(5),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"geqo_generations": &Parameter{
Name: "geqo_generations",
Default: int64(0),
Category: "Query Tuning / Genetic Query Optimizer",
ShortDesc: "GEQO: number of iterations of the algorithm.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("geqo_generations", 0, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"geqo_pool_size": &Parameter{
Name: "geqo_pool_size",
Default: int64(0),
Category: "Query Tuning / Genetic Query Optimizer",
ShortDesc: "GEQO: number of individuals in the population.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("geqo_pool_size", 0, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"geqo_seed": &Parameter{
Name: "geqo_seed",
Default: float64(0),
Category: "Query Tuning / Genetic Query Optimizer",
ShortDesc: "GEQO: seed for random path selection.",
Context: ParameterContextUser,
Type: types.NewSystemDoubleType("geqo_seed", 0, 1),
Source: ParameterSourceDefault,
ResetVal: float64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"geqo_selection_bias": &Parameter{
Name: "geqo_selection_bias",
Default: float64(2),
Category: "Query Tuning / Genetic Query Optimizer",
ShortDesc: "GEQO: selective pressure within the population.",
Context: ParameterContextUser,
Type: types.NewSystemDoubleType("geqo_selection_bias", 1.5, 2),
Source: ParameterSourceDefault,
ResetVal: float64(2),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"geqo_threshold": &Parameter{
Name: "geqo_threshold",
Default: int64(12),
Category: "Query Tuning / Genetic Query Optimizer",
ShortDesc: "Sets the shell command that will be executed at every restart point.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("geqo_threshold", 2, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(12),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"gin_fuzzy_search_limit": &Parameter{
Name: "gin_fuzzy_search_limit",
Default: int64(0),
Category: "Client Connection Defaults / Other Defaults",
ShortDesc: "Sets the maximum allowed result for exact search by GIN.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("gin_fuzzy_search_limit", 0, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"gin_pending_list_limit": &Parameter{
Name: "gin_pending_list_limit",
Default: int64(4096),
// Unit: "kB",
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Sets the maximum size of the pending list for GIN index.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("gin_pending_list_limit", 64, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(4096),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"gss_accept_delegation": &Parameter{
Name: "gss_accept_delegation",
Default: int8(0),
Category: "Connections and Authentication / Authentication",
ShortDesc: "Sets whether GSSAPI delegation should be accepted from the client.",
Context: ParameterContextSighup,
Type: types.NewSystemBoolType("gss_accept_delegation"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"hash_mem_multiplier": &Parameter{
Name: "hash_mem_multiplier",
Default: float64(2),
Category: "Resource Usage / Memory",
ShortDesc: "Multiple of work_mem to use for hash tables.",
Context: ParameterContextUser,
Type: types.NewSystemDoubleType("hash_mem_multiplier", 1, 1000),
Source: ParameterSourceDefault,
ResetVal: float64(2),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"hba_file": &Parameter{
Name: "hba_file",
Default: "pg_hba.conf",
Category: "File Locations",
ShortDesc: "Sets the server's \"hba\" configuration file.",
Context: ParameterContextPostmaster,
Type: types.NewSystemStringType("hba_file"),
Source: ParameterSourceOverride,
ResetVal: "pg_hba.conf",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"hot_standby": &Parameter{
Name: "hot_standby",
Default: int8(1),
Category: "Replication / Standby Servers",
ShortDesc: "Allows connections and queries during recovery.",
Context: ParameterContextPostmaster,
Type: types.NewSystemBoolType("hot_standby"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"hot_standby_feedback": &Parameter{
Name: "hot_standby_feedback",
Default: int8(0),
Category: "Replication / Standby Servers",
ShortDesc: "Allows feedback from a hot standby to the primary that will avoid query conflicts.",
Context: ParameterContextSighup,
Type: types.NewSystemBoolType("hot_standby_feedback"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"huge_page_size": &Parameter{
Name: "huge_page_size",
Default: int64(0),
// Unit: "kB",
Category: "Resource Usage / Memory",
ShortDesc: "The size of huge page that should be requested.",
Context: ParameterContextPostmaster,
Type: types.NewSystemIntType("huge_page_size", 0, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"huge_pages": &Parameter{
Name: "huge_pages",
Default: "try",
Category: "Resource Usage / Memory",
ShortDesc: "Use of huge pages on Linux or Windows.",
Context: ParameterContextPostmaster,
Type: types.NewSystemEnumType("huge_pages", "off", "on", "try"),
Source: ParameterSourceDefault,
ResetVal: "try",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"icu_validation_level": &Parameter{
Name: "icu_validation_level",
Default: "warning",
Category: "Client Connection Defaults / Locale and Formatting",
ShortDesc: "Log level for reporting invalid ICU locale strings.",
Context: ParameterContextUser,
Type: types.NewSystemEnumType("icu_validation_level", "disabled", "debug5", "debug4", "debug3", "debug2", "debug1", "log", "notice", "warning", "error"),
Source: ParameterSourceDefault,
ResetVal: "warning",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"ident_file": &Parameter{
Name: "ident_file",
Default: "pg_ident.conf",
Category: "File Locations",
ShortDesc: "Sets the server's \"ident\" configuration file.",
Context: ParameterContextPostmaster,
Type: types.NewSystemStringType("ident_file"),
Source: ParameterSourceOverride,
ResetVal: "pg_ident.conf",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"idle_in_transaction_session_timeout": &Parameter{
Name: "idle_in_transaction_session_timeout",
Default: int64(0),
// Unit: "ms",
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Sets the maximum allowed idle time between queries, when in a transaction.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("idle_in_transaction_session_timeout", 0, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"idle_session_timeout": &Parameter{
Name: "idle_session_timeout",
Default: int64(0),
// Unit: "ms",
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Sets the maximum allowed idle time between queries, when not in a transaction.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("idle_session_timeout", 0, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"ignore_checksum_failure": &Parameter{
Name: "ignore_checksum_failure",
Default: int8(0),
Category: "Developer Options",
ShortDesc: "Continues processing after a checksum failure.",
Context: ParameterContextSuperUser,
Type: types.NewSystemBoolType("ignore_checksum_failure"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"ignore_invalid_pages": &Parameter{
Name: "ignore_invalid_pages",
Default: int8(0),
Category: "Developer Options",
ShortDesc: "Continues recovery after an invalid pages failure.",
Context: ParameterContextPostmaster,
Type: types.NewSystemBoolType("ignore_invalid_pages"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"ignore_system_indexes": &Parameter{
Name: "ignore_system_indexes",
Default: int8(0),
Category: "Developer Options",
ShortDesc: "Disables reading from system indexes.",
Context: ParameterContextBackend,
Type: types.NewSystemBoolType("ignore_system_indexes"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"in_hot_standby": &Parameter{
Name: "in_hot_standby",
Default: int8(0),
Category: "Preset Options",
ShortDesc: "Shows whether hot standby is currently active.",
Context: ParameterContextInternal,
Type: types.NewSystemBoolType("in_hot_standby"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"integer_datetimes": &Parameter{
Name: "integer_datetimes",
Default: int8(1),
Category: "Preset Options",
ShortDesc: "Shows whether datetimes are integer based.",
Context: ParameterContextInternal,
Type: types.NewSystemBoolType("integer_datetimes"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"intervalstyle": &Parameter{
Name: "IntervalStyle",
Default: "postgres",
Category: "Client Connection Defaults / Locale and Formatting",
ShortDesc: "Sets the display format for interval values.",
Context: ParameterContextUser,
Type: types.NewSystemEnumType("intervalstyle", "postgres", "postgres_verbose", "sql_standard", "iso_8601"),
Source: ParameterSourceDefault,
ResetVal: "postgres",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"jit": &Parameter{
Name: "jit",
Default: int8(1),
Category: "Query Tuning / Other Planner Options",
ShortDesc: "Allow JIT compilation.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("jit"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"jit_above_cost": &Parameter{
Name: "jit_above_cost",
Default: float64(100000),
Category: "Write-Ahead Log / Archive Recovery",
ShortDesc: "Sets the shell command that will be executed at every restart point.",
Context: ParameterContextUser,
Type: types.NewSystemDoubleType("jit_above_cost", -1, math.MaxFloat64),
Source: ParameterSourceDefault,
ResetVal: float64(100000),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"jit_debugging_support": &Parameter{
Name: "jit_debugging_support",
Default: int8(0),
Category: "Developer Options",
ShortDesc: "Register JIT-compiled functions with debugger.",
Context: ParameterContextSuperUserBackend,
Type: types.NewSystemBoolType("jit_debugging_support"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"jit_dump_bitcode": &Parameter{
Name: "jit_dump_bitcode",
Default: int8(0),
Category: "Developer Options",
ShortDesc: "Write out LLVM bitcode to facilitate JIT debugging.",
Context: ParameterContextSuperUser,
Type: types.NewSystemBoolType("jit_dump_bitcode"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"jit_expressions": &Parameter{
Name: "jit_expressions",
Default: int8(1),
Category: "Developer Options",
ShortDesc: "Allow JIT compilation of expressions.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("jit_expressions"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"jit_inline_above_cost": &Parameter{
Name: "jit_inline_above_cost",
Default: float64(500000),
Category: "Query Tuning / Planner Cost Constants",
ShortDesc: "Perform JIT inlining if query is more expensive.",
Context: ParameterContextUser,
Type: types.NewSystemDoubleType("jit_inline_above_cost", -1, math.MaxFloat64),
Source: ParameterSourceDefault,
ResetVal: float64(500000),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"jit_optimize_above_cost": &Parameter{
Name: "jit_optimize_above_cost",
Default: float64(500000),
Category: "Query Tuning / Planner Cost Constants",
ShortDesc: "Optimize JIT-compiled functions if query is more expensive.",
Context: ParameterContextUser,
Type: types.NewSystemDoubleType("jit_optimize_above_cost", -1, math.MaxFloat64),
Source: ParameterSourceDefault,
ResetVal: float64(500000),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"jit_profiling_support": &Parameter{
Name: "jit_profiling_support",
Default: int8(0),
Category: "Developer Options",
ShortDesc: "Register JIT-compiled functions with perf profiler.",
Context: ParameterContextSuperUserBackend,
Type: types.NewSystemBoolType("jit_profiling_support"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"jit_provider": &Parameter{
Name: "jit_provider",
Default: "llvmjit",
Category: "Client Connection Defaults / Shared Library Preloading",
ShortDesc: "JIT provider to use.",
Context: ParameterContextPostmaster,
Type: types.NewSystemStringType("jit_provider"),
Source: ParameterSourceDefault,
ResetVal: "llvmjit",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"jit_tuple_deforming": &Parameter{
Name: "jit_tuple_deforming",
Default: int8(1),
Category: "Developer Options",
ShortDesc: "Allow JIT compilation of tuple deforming.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("jit_tuple_deforming"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"join_collapse_limit": &Parameter{
Name: "join_collapse_limit",
Default: int64(8),
Category: "Query Tuning / Other Planner Options",
ShortDesc: "Sets the FROM-list size beyond which JOIN constructs are not flattened.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("join_collapse_limit", 1, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(8),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"krb_caseins_users": &Parameter{
Name: "krb_caseins_users",
Default: int8(0),
Category: "Connections and Authentication / Authentication",
ShortDesc: "Sets whether Kerberos and GSSAPI user names should be treated as case-insensitive.",
Context: ParameterContextSighup,
Type: types.NewSystemBoolType("krb_caseins_users"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"krb_server_keyfile": &Parameter{
Name: "krb_server_keyfile",
Default: "FILE:/usr/local/etc/postgresql/krb5.keytab",
Category: "Connections and Authentication / Authentication",
ShortDesc: "Sets the location of the Kerberos server key file.",
Context: ParameterContextSighup,
Type: types.NewSystemStringType("krb_server_keyfile"),
Source: ParameterSourceDefault,
ResetVal: "FILE:/usr/local/etc/postgresql/krb5.keytab",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"lc_messages": &Parameter{
Name: "lc_messages",
Default: "en_US.UTF-8",
Category: "Client Connection Defaults / Locale and Formatting",
ShortDesc: "Sets the language in which messages are displayed.",
Context: ParameterContextSuperUser,
Type: types.NewSystemStringType("lc_messages"),
Source: ParameterSourceConfigurationFile,
ResetVal: "en_US.UTF-8",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"lc_monetary": &Parameter{
Name: "lc_monetary",
Default: "en_US.UTF-8",
Category: "Client Connection Defaults / Locale and Formatting",
ShortDesc: "Sets the locale for formatting monetary amounts.",
Context: ParameterContextUser,
Type: types.NewSystemStringType("lc_monetary"),
Source: ParameterSourceConfigurationFile,
// BootVal: "C",
ResetVal: "en_US.UTF-8",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"lc_numeric": &Parameter{
Name: "lc_numeric",
Default: "en_US.UTF-8",
Category: "Client Connection Defaults / Locale and Formatting",
ShortDesc: "Sets the locale for formatting numbers.",
Context: ParameterContextUser,
Type: types.NewSystemStringType("lc_numeric"),
Source: ParameterSourceConfigurationFile,
// BootVal: "C",
ResetVal: "en_US.UTF-8",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"lc_time": &Parameter{
Name: "lc_time",
Default: "en_US.UTF-8",
Category: "Client Connection Defaults / Locale and Formatting",
ShortDesc: "Sets the locale for formatting date and time values.",
Context: ParameterContextUser,
Type: types.NewSystemStringType("lc_time"),
Source: ParameterSourceConfigurationFile,
// BootVal: "C",
ResetVal: "en_US.UTF-8",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"listen_addresses": &Parameter{
Name: "listen_addresses",
Default: "localhost",
Category: "Connections and Authentication / Connection Settings",
ShortDesc: "Sets the host name or IP address(es) to listen to.",
Context: ParameterContextPostmaster,
Type: types.NewSystemStringType("listen_addresses"),
Source: ParameterSourceDefault,
ResetVal: "localhost",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"lo_compat_privileges": &Parameter{
Name: "lo_compat_privileges",
Default: int8(0),
Category: "Version and Platform Compatibility / Previous PostgreSQL Versions",
ShortDesc: "Enables backward compatibility mode for privilege checks on large objects.",
Context: ParameterContextSuperUser,
Type: types.NewSystemBoolType("lo_compat_privileges"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"local_preload_libraries": &Parameter{
Name: "local_preload_libraries",
Default: "",
Category: "Client Connection Defaults / Shared Library Preloading",
ShortDesc: "Lists unprivileged shared libraries to preload into each backend.",
Context: ParameterContextUser,
Type: types.NewSystemStringType("local_preload_libraries"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"lock_timeout": &Parameter{
Name: "lock_timeout",
Default: int64(0),
// Unit: "ms",
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Sets the maximum allowed duration of any wait for a lock.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("lock_timeout", 0, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_autovacuum_min_duration": &Parameter{
Name: "log_autovacuum_min_duration",
Default: int64(-1),
Category: "Reporting and Logging / What to Log",
ShortDesc: "Sets the minimum execution time above which autovacuum actions will be logged.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("log_autovacuum_min_duration", -1, math.MaxInt32, true),
Source: ParameterSourceDefault,
ResetVal: int64(-1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_checkpoints": &Parameter{
Name: "log_checkpoints",
Default: int8(1),
Category: "Reporting and Logging / What to Log",
ShortDesc: "Logs each checkpoint.",
Context: ParameterContextSighup,
Type: types.NewSystemBoolType("log_checkpoints"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_connections": &Parameter{
Name: "log_connections",
Default: int8(0),
Category: "Reporting and Logging / What to Log",
ShortDesc: "Logs each successful connection.",
Context: ParameterContextSuperUserBackend,
Type: types.NewSystemBoolType("log_connections"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_destination": &Parameter{
Name: "log_destination",
Default: "stderr",
Category: "Reporting and Logging / Where to Log",
ShortDesc: "Sets the destination for server log output.",
// LongDesc: "Valid values are combinations of "stderr", "syslog", "csvlog", "jsonlog", and "eventlog", depending on the platform.",
Context: ParameterContextSighup,
Type: types.NewSystemStringType("log_destination"),
Source: ParameterSourceDefault,
ResetVal: "stderr",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_directory": &Parameter{
Name: "log_directory",
Default: "log",
Category: "Reporting and Logging / Where to Log",
ShortDesc: "Sets the destination directory for log files.",
Context: ParameterContextSighup,
Type: types.NewSystemStringType("log_directory"),
Source: ParameterSourceDefault,
ResetVal: "log",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_disconnections": &Parameter{
Name: "log_disconnections",
Default: int8(0),
Category: "Reporting and Logging / What to Log",
ShortDesc: "Logs end of a session, including duration.",
Context: ParameterContextSuperUserBackend,
Type: types.NewSystemBoolType("log_disconnections"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_duration": &Parameter{
Name: "log_duration",
Default: int8(0),
Category: "Reporting and Logging / What to Log",
ShortDesc: "Logs the duration of each completed SQL statement.",
Context: ParameterContextSuperUser,
Type: types.NewSystemBoolType("log_duration"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_error_verbosity": &Parameter{
Name: "log_error_verbosity",
Default: "default",
Category: "Reporting and Logging / What to Log",
ShortDesc: "Sets the verbosity of logged messages.",
Context: ParameterContextSuperUser,
Type: types.NewSystemEnumType("log_error_verbosity", "terse", "default", "verbose"),
Source: ParameterSourceDefault,
ResetVal: "default",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_executor_stats": &Parameter{
Name: "log_executor_stats",
Default: int8(0),
Category: "Statistics / Monitoring",
ShortDesc: "Writes executor performance statistics to the server log.",
Context: ParameterContextSuperUser,
Type: types.NewSystemBoolType("log_executor_stats"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_file_mode": &Parameter{
Name: "log_file_mode",
Default: int64(384), // displays in octal, which is 0600
Category: "Reporting and Logging / Where to Log",
ShortDesc: "Sets the file permissions for log files.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("log_file_mode", 0, 511, false),
Source: ParameterSourceDefault,
ResetVal: int64(384),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_filename": &Parameter{
Name: "log_filename",
Default: "postgresql-%Y-%m-%d_%H%M%S.log",
Category: "Reporting and Logging / Where to Log",
ShortDesc: "Sets the file name pattern for log files.",
Context: ParameterContextSighup,
Type: types.NewSystemStringType("log_filename"),
Source: ParameterSourceDefault,
ResetVal: "postgresql-%Y-%m-%d_%H%M%S.log",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_hostname": &Parameter{
Name: "log_hostname",
Default: int8(0),
Category: "Reporting and Logging / What to Log",
ShortDesc: "Logs the host name in the connection logs.",
Context: ParameterContextSighup,
Type: types.NewSystemBoolType("log_hostname"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_line_prefix": &Parameter{
Name: "log_line_prefix",
Default: "%m [%p]",
Category: "Reporting and Logging / What to Log",
ShortDesc: "Controls information prefixed to each log line.",
Context: ParameterContextSighup,
Type: types.NewSystemStringType("log_line_prefix"),
Source: ParameterSourceDefault,
ResetVal: "%m [%p]",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_lock_waits": &Parameter{
Name: "log_lock_waits",
Default: int8(0),
Category: "Reporting and Logging / What to Log",
ShortDesc: "Logs long lock waits.",
Context: ParameterContextSuperUser,
Type: types.NewSystemBoolType("log_lock_waits"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_min_duration_sample": &Parameter{
Name: "log_min_duration_sample",
Default: int64(-1),
// Unit: "ms",
Category: "Reporting and Logging / When to Log",
ShortDesc: "Sets the minimum execution time above which a sample of statements will be logged. Sampling is determined by log_statement_sample_rate.",
Context: ParameterContextSuperUser,
Type: types.NewSystemIntType("log_min_duration_sample", -1, math.MaxInt32, true),
Source: ParameterSourceDefault,
ResetVal: int64(-1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_min_duration_statement": &Parameter{
Name: "log_min_duration_statement",
Default: int64(-1),
// Unit: "ms",
Category: "Reporting and Logging / When to Log",
ShortDesc: "Sets the minimum execution time above which all statements will be logged.",
Context: ParameterContextSuperUser,
Type: types.NewSystemIntType("log_min_duration_statement", -1, math.MaxInt32, true),
Source: ParameterSourceDefault,
ResetVal: int64(-1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_min_error_statement": &Parameter{
Name: "log_min_error_statement",
Default: "error",
Category: "Reporting and Logging / When to Log",
ShortDesc: "Causes all statements generating error at or above this level to be logged.",
Context: ParameterContextSuperUser,
Type: types.NewSystemEnumType("log_min_error_statement", "debug5", "debug4", "debug3", "debug2", "debug1", "info", "notice", "warning", "error", "log", "fatal", "panic"),
Source: ParameterSourceDefault,
ResetVal: "error",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_min_messages": &Parameter{
Name: "log_min_messages",
Default: "warning",
Category: "Reporting and Logging / When to Log",
ShortDesc: "Sets the message levels that are logged.",
Context: ParameterContextSuperUser,
Type: types.NewSystemEnumType("log_min_messages", "debug5", "debug4", "debug3", "debug2", "debug1", "info", "notice", "warning", "error", "log", "fatal", "panic"),
Source: ParameterSourceDefault,
ResetVal: "warning",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_parameter_max_length": &Parameter{
Name: "log_parameter_max_length",
Default: int64(-1),
// Unit: "B",
Category: "Reporting and Logging / What to Log",
ShortDesc: "Sets the maximum length in bytes of data logged for bind parameter values when logging statements.",
Context: ParameterContextSuperUser,
Type: types.NewSystemIntType("log_parameter_max_length", -1, 1073741823, true),
Source: ParameterSourceDefault,
ResetVal: int64(-1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_parameter_max_length_on_error": &Parameter{
Name: "log_parameter_max_length_on_error",
Default: int64(0),
// Unit: "B",
Category: "Reporting and Logging / What to Log",
ShortDesc: "Sets the maximum length in bytes of data logged for bind parameter values when logging statements, on error.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("log_parameter_max_length_on_error", -1, 1073741823, true),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_parser_stats": &Parameter{
Name: "log_parser_stats",
Default: int8(0),
Category: "Statistics / Monitoring",
ShortDesc: "Writes parser performance statistics to the server log.",
Context: ParameterContextSuperUser,
Type: types.NewSystemBoolType("log_parser_stats"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_planner_stats": &Parameter{
Name: "log_planner_stats",
Default: int8(0),
Category: "Statistics / Monitoring",
ShortDesc: "Writes planner performance statistics to the server log.",
Context: ParameterContextSuperUser,
Type: types.NewSystemBoolType("log_planner_stats"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_recovery_conflict_waits": &Parameter{
Name: "log_recovery_conflict_waits",
Default: int8(0),
Category: "Reporting and Logging / What to Log",
ShortDesc: "Logs standby recovery conflict waits.",
Context: ParameterContextSighup,
Type: types.NewSystemBoolType("log_recovery_conflict_waits"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_replication_commands": &Parameter{
Name: "log_replication_commands",
Default: int8(0),
Category: "Reporting and Logging / What to Log",
ShortDesc: "Logs each replication command.",
Context: ParameterContextSuperUser,
Type: types.NewSystemBoolType("log_replication_commands"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_rotation_age": &Parameter{
Name: "log_rotation_age",
Default: int64(1440),
// Unit: "min",
Category: "Reporting and Logging / Where to Log",
ShortDesc: "Sets the amount of time to wait before forcing log file rotation.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("log_rotation_age", 0, 35791394, false),
Source: ParameterSourceDefault,
ResetVal: int64(1440),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_rotation_size": &Parameter{
Name: "log_rotation_size",
Default: int64(10240),
// Unit: "kB",
Category: "Reporting and Logging / Where to Log",
ShortDesc: "Sets the maximum size a log file can reach before being rotated.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("log_rotation_size", 0, 2097151, false),
Source: ParameterSourceDefault,
ResetVal: int64(10240),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_startup_progress_interval": &Parameter{
Name: "log_startup_progress_interval",
Default: int64(10000),
Category: "Reporting and Logging / When to Log",
ShortDesc: "Time between progress updates for long-running startup operations.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("log_startup_progress_interval", 1, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(10000),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_statement": &Parameter{
Name: "log_statement",
Default: "none",
Category: "Reporting and Logging / When to Log",
ShortDesc: "Sets the type of statements logged.",
Context: ParameterContextSuperUser,
Type: types.NewSystemEnumType("log_statement", "none", "ddl", "mod", "all"),
Source: ParameterSourceDefault,
ResetVal: "none",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_statement_sample_rate": &Parameter{
Name: "log_statement_sample_rate",
Default: float64(1),
Category: "Reporting and Logging / When to Log",
ShortDesc: "Fraction of statements exceeding log_min_duration_sample to be logged.",
Context: ParameterContextSuperUser,
Type: types.NewSystemDoubleType("log_statement_sample_rate", 0, 1),
Source: ParameterSourceDefault,
ResetVal: float64(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_statement_stats": &Parameter{
Name: "log_statement_stats",
Default: int8(0),
Category: "Statistics / Monitoring",
ShortDesc: "Writes cumulative performance statistics to the server log.",
Context: ParameterContextSuperUser,
Type: types.NewSystemBoolType("log_statement_stats"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_temp_files": &Parameter{
Name: "log_temp_files",
Default: int64(-1),
// Unit: "kB",
Category: "Reporting and Logging / What to Log",
ShortDesc: "Log the use of temporary files larger than this number of kilobytes.",
Context: ParameterContextSuperUser,
Type: types.NewSystemIntType("log_temp_files", -1, math.MaxInt32, true),
Source: ParameterSourceDefault,
ResetVal: int64(-1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_timezone": &Parameter{
Name: "log_timezone",
Default: "America/Los_Angeles",
Category: "Reporting and Logging / What to Log",
ShortDesc: "Sets the time zone to use in log messages.",
Context: ParameterContextSighup,
Type: types.NewSystemStringType("log_timezone"),
Source: ParameterSourceConfigurationFile,
// BootVal: "GMT",
ResetVal: "America/Los_Angeles",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_transaction_sample_rate": &Parameter{
Name: "log_transaction_sample_rate",
Default: float64(0),
Category: "Reporting and Logging / When to Log",
ShortDesc: "Sets the fraction of transactions from which to log all statements.",
Context: ParameterContextSuperUser,
Type: types.NewSystemDoubleType("log_transaction_sample_rate", 0, 1),
Source: ParameterSourceDefault,
ResetVal: float64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"log_truncate_on_rotation": &Parameter{
Name: "log_truncate_on_rotation",
Default: int8(0),
Category: "Reporting and Logging / Where to Log",
ShortDesc: "Truncate existing log files of same name during log rotation.",
Context: ParameterContextSighup,
Type: types.NewSystemBoolType("log_truncate_on_rotation"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"logging_collector": &Parameter{
Name: "logging_collector",
Default: int8(0),
Category: "Reporting and Logging / Where to Log",
ShortDesc: "Start a subprocess to capture stderr output and/or csvlogs into log files.",
Context: ParameterContextPostmaster,
Type: types.NewSystemBoolType("logging_collector"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"logical_decoding_work_mem": &Parameter{
Name: "logical_decoding_work_mem",
Default: int64(65536),
// Unit: "kB",
Category: "Resource Usage / Memory",
ShortDesc: "Sets the maximum memory to be used for logical decoding.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("logical_decoding_work_mem", 64, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(65536),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"maintenance_io_concurrency": &Parameter{
Name: "maintenance_io_concurrency",
Default: int64(0),
Category: "Resource Usage / Asynchronous Behavior",
ShortDesc: "A variant of effective_io_concurrency that is used for maintenance work.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("maintenance_io_concurrency", 0, 1000, false),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"maintenance_work_mem": &Parameter{
Name: "maintenance_work_mem",
Default: int64(65536),
// Unit: "kB",
Category: "Resource Usage / Memory",
ShortDesc: "Sets the maximum memory to be used for maintenance operations.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("maintenance_work_mem", 1024, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(65536),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"max_connections": &Parameter{
Name: "max_connections",
Default: int64(100),
Category: "Connections and Authentication / Connection Settings",
ShortDesc: "Sets the maximum number of concurrent connections.",
Context: ParameterContextPostmaster,
Type: types.NewSystemIntType("max_connections", 64, math.MaxInt32, false),
Source: ParameterSourceConfigurationFile,
ResetVal: int64(100),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"max_files_per_process": &Parameter{
Name: "max_files_per_process",
Default: int64(1000),
Category: "Resource Usage / Kernel Resources",
ShortDesc: "Sets the maximum number of simultaneously open files for each server process.",
Context: ParameterContextPostmaster,
Type: types.NewSystemIntType("max_files_per_process", 64, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(1000),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"max_function_args": &Parameter{
Name: "max_function_args",
Default: int64(100),
Category: "Preset Options",
ShortDesc: "Shows the maximum number of function arguments.",
Context: ParameterContextInternal,
Type: types.NewSystemIntType("max_function_args", 100, 100, false),
Source: ParameterSourceDefault,
ResetVal: int64(100),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"max_identifier_length": &Parameter{
Name: "max_identifier_length",
Default: int64(63),
Category: "Preset Options",
ShortDesc: "Shows the maximum identifier length.",
Context: ParameterContextInternal,
Type: types.NewSystemIntType("max_identifier_length", 63, 63, false),
Source: ParameterSourceDefault,
ResetVal: int64(63),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"max_index_keys": &Parameter{
Name: "max_index_keys",
Default: int64(32),
Category: "Preset Options",
ShortDesc: "Shows the maximum number of index keys.",
Context: ParameterContextInternal,
Type: types.NewSystemIntType("max_index_keys", 32, 32, false),
Source: ParameterSourceDefault,
ResetVal: int64(32),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"max_locks_per_transaction": &Parameter{
Name: "max_locks_per_transaction",
Default: int64(64),
Category: "Lock Management",
ShortDesc: "Sets the maximum number of locks per transaction.",
Context: ParameterContextPostmaster,
Type: types.NewSystemIntType("max_locks_per_transaction", 10, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(64),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"max_logical_replication_workers": &Parameter{
Name: "max_logical_replication_workers",
Default: int64(4),
Category: "Replication / Subscribers",
ShortDesc: "Maximum number of logical replication worker processes.",
Context: ParameterContextPostmaster,
Type: types.NewSystemIntType("max_logical_replication_workers", 0, 262143, false),
Source: ParameterSourceDefault,
ResetVal: int64(4),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"max_parallel_apply_workers_per_subscription": &Parameter{
Name: "max_parallel_apply_workers_per_subscription",
Default: int64(2),
Category: "Replication / Subscribers",
ShortDesc: "Maximum number of parallel apply workers per subscription.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("max_parallel_apply_workers_per_subscription", 0, 1024, false),
Source: ParameterSourceDefault,
ResetVal: int64(2),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"max_parallel_maintenance_workers": &Parameter{
Name: "max_parallel_maintenance_workers",
Default: int64(2),
Category: "Resource Usage / Asynchronous Behavior",
ShortDesc: "Sets the maximum number of parallel processes per maintenance operation.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("max_parallel_maintenance_workers", 0, 1024, false),
Source: ParameterSourceDefault,
ResetVal: int64(2),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"max_parallel_workers": &Parameter{
Name: "max_parallel_workers",
Default: int64(8),
Category: "Resource Usage / Asynchronous Behavior",
ShortDesc: "Sets the maximum number of parallel workers that can be active at one time.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("max_parallel_workers", 0, 1024, false),
Source: ParameterSourceDefault,
ResetVal: int64(8),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"max_parallel_workers_per_gather": &Parameter{
Name: "max_parallel_workers_per_gather",
Default: int64(2),
Category: "Resource Usage / Asynchronous Behavior",
ShortDesc: "Sets the maximum number of parallel processes per executor node.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("max_parallel_workers_per_gather", 0, 1024, false),
Source: ParameterSourceDefault,
ResetVal: int64(2),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"max_pred_locks_per_page": &Parameter{
Name: "max_pred_locks_per_page",
Default: int64(2),
Category: "Lock Management",
ShortDesc: "Sets the maximum number of predicate-locked tuples per page.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("max_pred_locks_per_page", 0, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(2),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"max_pred_locks_per_relation": &Parameter{
Name: "max_pred_locks_per_relation",
Default: int64(-2),
Category: "Lock Management",
ShortDesc: "Sets the maximum number of predicate-locked pages and tuples per relation.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("max_pred_locks_per_relation", math.MinInt32, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(-2),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"max_pred_locks_per_transaction": &Parameter{
Name: "max_pred_locks_per_transaction",
Default: int64(64),
Category: "Lock Management",
ShortDesc: "Sets the maximum number of predicate locks per transaction.",
Context: ParameterContextPostmaster,
Type: types.NewSystemIntType("max_pred_locks_per_transaction", 10, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(64),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"max_prepared_transactions": &Parameter{
Name: "max_prepared_transactions",
Default: int64(0),
Category: "Resource Usage / Memory",
ShortDesc: "Sets the maximum number of simultaneously prepared transactions.",
Context: ParameterContextPostmaster,
Type: types.NewSystemIntType("max_prepared_transactions", 0, 262143, false),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"max_replication_slots": &Parameter{
Name: "max_replication_slots",
Default: int64(10),
Category: "Replication / Sending Servers",
ShortDesc: "Sets the maximum number of simultaneously defined replication slots.",
Context: ParameterContextPostmaster,
Type: types.NewSystemIntType("max_replication_slots", 0, 262143, false),
Source: ParameterSourceDefault,
ResetVal: int64(10),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"max_slot_wal_keep_size": &Parameter{
Name: "max_slot_wal_keep_size",
Default: int64(-1),
// Unit: "MB",
Category: "Replication / Sending Servers",
ShortDesc: "Sets the maximum WAL size that can be reserved by replication slots.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("max_slot_wal_keep_size", -1, math.MaxInt32, true),
Source: ParameterSourceDefault,
ResetVal: int64(-1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"max_stack_depth": &Parameter{
Name: "max_stack_depth",
Default: int64(2048),
// Unit: "kB",
Category: "Resource Usage / Memory",
ShortDesc: "Sets the maximum stack depth, in kilobytes.",
Context: ParameterContextSuperUser,
Type: types.NewSystemIntType("max_stack_depth", 100, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(2048),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"max_standby_archive_delay": &Parameter{
Name: "max_standby_archive_delay",
Default: int64(30000),
// Unit: "ms",
Category: "Replication / Sending Servers",
ShortDesc: "Sets the maximum delay before canceling queries when a hot standby server is processing archived WAL data.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("max_standby_archive_delay", -1, math.MaxInt32, true),
Source: ParameterSourceDefault,
ResetVal: int64(30000),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"max_standby_streaming_delay": &Parameter{
Name: "max_standby_streaming_delay",
Default: int64(30000),
// Unit: "ms",
Category: "Replication / Standby Servers",
ShortDesc: "Sets the maximum delay before canceling queries when a hot standby server is processing streamed WAL data.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("max_standby_streaming_delay", -1, math.MaxInt32, true),
Source: ParameterSourceDefault,
ResetVal: int64(30000),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"max_sync_workers_per_subscription": &Parameter{
Name: "max_sync_workers_per_subscription",
Default: int64(2),
Category: "Replication / Subscribers",
ShortDesc: "Maximum number of table synchronization workers per subscription.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("max_sync_workers_per_subscription", 0, 262143, false),
Source: ParameterSourceDefault,
ResetVal: int64(2),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"max_wal_senders": &Parameter{
Name: "max_wal_senders",
Default: int64(10),
Category: "Replication / Sending Servers",
ShortDesc: "Sets the maximum number of simultaneously running WAL sender processes.",
Context: ParameterContextPostmaster,
Type: types.NewSystemIntType("max_wal_senders", 0, 262143, false),
Source: ParameterSourceDefault,
ResetVal: int64(10),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"max_wal_size": &Parameter{
Name: "max_wal_size",
Default: int64(1024),
// Unit: "MB",
Category: "Write-Ahead Log / Checkpoints",
ShortDesc: "Sets the WAL size that triggers a checkpoint.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("max_wal_size", 2, math.MaxInt32, false),
Source: ParameterSourceConfigurationFile,
ResetVal: int64(1024),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"max_worker_processes": &Parameter{
Name: "max_worker_processes",
Default: int64(8),
Category: "Resource Usage / Asynchronous Behavior",
ShortDesc: "Maximum number of concurrent worker processes.",
Context: ParameterContextPostmaster,
Type: types.NewSystemIntType("max_worker_processes", 0, 262143, false),
Source: ParameterSourceDefault,
ResetVal: int64(8),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"min_dynamic_shared_memory": &Parameter{
Name: "min_dynamic_shared_memory",
Default: int64(0),
Category: "Resource Usage / Memory",
ShortDesc: "Amount of dynamic shared memory reserved at startup.",
Context: ParameterContextPostmaster,
Type: types.NewSystemIntType("min_dynamic_shared_memory", 0, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"min_parallel_index_scan_size": &Parameter{
Name: "min_parallel_index_scan_size",
Default: int64(1024),
// Unit: "8kB",
Category: "Query Tuning / Planner Cost Constants",
ShortDesc: "Sets the minimum amount of table data for a parallel scan.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("min_parallel_index_scan_size", 0, 715827882, false),
Source: ParameterSourceDefault,
ResetVal: int64(1024),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"min_parallel_table_scan_size": &Parameter{
Name: "min_parallel_table_scan_size",
Default: int64(1024),
// Unit: "8kB",
Category: "Query Tuning / Planner Cost Constants",
ShortDesc: "Sets the minimum amount of table data for a parallel scan.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("min_parallel_table_scan_size", 0, 715827882, false),
Source: ParameterSourceDefault,
ResetVal: int64(1024),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"min_wal_size": &Parameter{
Name: "min_wal_size",
Default: int64(80),
// Unit: "MB",
Category: "Write-Ahead Log / Checkpoints",
ShortDesc: "Sets the minimum size to shrink the WAL to.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("min_wal_size", 2, math.MaxInt32, false),
Source: ParameterSourceConfigurationFile,
ResetVal: int64(80),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"old_snapshot_threshold": &Parameter{
Name: "old_snapshot_threshold",
Default: int64(-1),
Category: "Resource Usage / Asynchronous Behavior",
ShortDesc: "Time before a snapshot is too old to read pages changed after the snapshot was taken.",
Context: ParameterContextPostmaster,
Type: types.NewSystemIntType("old_snapshot_threshold", -1, 86400, true),
Source: ParameterSourceDefault,
ResetVal: int64(-1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"parallel_leader_participation": &Parameter{
Name: "parallel_leader_participation",
Default: int8(1),
Category: "Resource Usage / Asynchronous Behavior",
ShortDesc: "Controls whether Gather and Gather Merge also run subplans.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("parallel_leader_participation"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"parallel_setup_cost": &Parameter{
Name: "parallel_setup_cost",
Default: float64(1000),
Category: "Query Tuning / Planner Cost Constants",
ShortDesc: "Sets the planner's estimate of the cost of starting up worker processes for parallel query.",
Context: ParameterContextUser,
Type: types.NewSystemDoubleType("parallel_setup_cost", 0, math.MaxFloat64),
Source: ParameterSourceDefault,
ResetVal: float64(1000),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"parallel_tuple_cost": &Parameter{
Name: "parallel_tuple_cost",
Default: float64(0.1),
Category: "Query Tuning / Planner Cost Constants",
ShortDesc: "Sets the planner's estimate of the cost of passing each tuple (row) from worker to leader backend.",
Context: ParameterContextUser,
Type: types.NewSystemDoubleType("parallel_tuple_cost", 0, math.MaxFloat64),
Source: ParameterSourceDefault,
ResetVal: float64(0.1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"password_encryption": &Parameter{
Name: "password_encryption",
Default: "scram-sha-256",
Category: "Connections and Authentication / Authentication",
ShortDesc: "Chooses the algorithm for encrypting passwords.",
Context: ParameterContextUser,
Type: types.NewSystemEnumType("password_encryption", "md5", "scram-sha-256"),
Source: ParameterSourceDefault,
ResetVal: "scram-sha-256",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"plan_cache_mode": &Parameter{
Name: "plan_cache_mode",
Default: "auto",
Category: "Query Tuning / Other Planner Options",
ShortDesc: "Controls the planner's selection of custom or generic plan.",
Context: ParameterContextUser,
Type: types.NewSystemEnumType("plan_cache_mode", "auto", "force_generic_plan", "force_custom_plan"),
Source: ParameterSourceDefault,
ResetVal: "auto",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"port": &Parameter{
Name: "port",
Default: int64(5432),
Category: "Connections and Authentication / Connection Settings",
ShortDesc: "Sets the TCP port the server listens on.",
Context: ParameterContextPostmaster,
Type: types.NewSystemIntType("port", 1, 65535, false),
Source: ParameterSourceDefault,
ResetVal: int64(5432),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"post_auth_delay": &Parameter{
Name: "post_auth_delay",
Default: int64(0),
// Unit: "s",
Category: "Developer Options",
ShortDesc: "Sets the amount of time to wait after authentication on connection startup.",
Context: ParameterContextBackend,
Type: types.NewSystemIntType("post_auth_delay", 0, 2147, false),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"pre_auth_delay": &Parameter{
Name: "pre_auth_delay",
Default: int64(0),
// Unit: "s",
Category: "Developer Options",
ShortDesc: "Sets the amount of time to wait before authentication on connection startup.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("pre_auth_delay", 0, 60, false),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"primary_conninfo": &Parameter{
Name: "primary_conninfo",
Default: "",
Category: "Replication / Standby Servers",
ShortDesc: "Sets the connection string to be used to connect to the sending server.",
Context: ParameterContextSighup,
Type: types.NewSystemStringType("primary_conninfo"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"primary_slot_name": &Parameter{
Name: "primary_slot_name",
Default: "",
Category: "Replication / Standby Servers",
ShortDesc: "Sets the name of the replication slot to use on the sending server.",
Context: ParameterContextSighup,
Type: types.NewSystemStringType("primary_slot_name"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"quote_all_identifiers": &Parameter{
Name: "quote_all_identifiers",
Default: int8(0),
Category: "Version and Platform Compatibility / Previous PostgreSQL Versions",
ShortDesc: "When generating SQL fragments, quote all identifiers.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("quote_all_identifiers"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"random_page_cost": &Parameter{
Name: "random_page_cost",
Default: float64(4),
Category: "Query Tuning / Planner Cost Constants",
ShortDesc: "Sets the planner's estimate of the cost of a nonsequentially fetched disk page.",
Context: ParameterContextUser,
Type: types.NewSystemDoubleType("random_page_cost", 0, math.MaxFloat64),
Source: ParameterSourceDefault,
ResetVal: float64(4),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"recovery_end_command": &Parameter{
Name: "recovery_end_command",
Default: "",
Category: "Write-Ahead Log / Archive Recovery",
ShortDesc: "Sets the shell command that will be executed once at the end of recovery.",
Context: ParameterContextSighup,
Type: types.NewSystemStringType("recovery_end_command"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"recovery_init_sync_method": &Parameter{
Name: "recovery_init_sync_method",
Default: "fsync",
Category: "Error Handling",
ShortDesc: "Sets the method for synchronizing the data directory before crash recovery.",
Context: ParameterContextSighup,
Type: types.NewSystemEnumType("recovery_init_sync_method", "fsync"),
Source: ParameterSourceDefault,
ResetVal: "fsync",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"recovery_min_apply_delay": &Parameter{
Name: "recovery_min_apply_delay",
Default: int64(0),
// Unit: "ms",
Category: "Replication / Standby Servers",
ShortDesc: "Sets the minimum delay for applying changes during recovery.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("recovery_min_apply_delay", 0, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"recovery_prefetch": &Parameter{
Name: "recovery_prefetch",
Default: "try",
Category: "Write-Ahead Log / Recovery",
ShortDesc: "Prefetch referenced blocks during recovery.",
Context: ParameterContextSighup,
Type: types.NewSystemEnumType("recovery_prefetch", "off", "on", "try"),
Source: ParameterSourceDefault,
ResetVal: "try",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"recovery_target": &Parameter{
Name: "recovery_target",
Default: "",
Category: "Write-Ahead Log / Recovery Target",
ShortDesc: "Set to \"immediate\" to end recovery as soon as a consistent state is reached.",
Context: ParameterContextPostmaster,
Type: types.NewSystemStringType("recovery_target"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"recovery_target_action": &Parameter{
Name: "recovery_target_action",
Default: "pause",
Category: "Write-Ahead Log / Recovery Target",
ShortDesc: "Sets the action to perform upon reaching the recovery target.",
Context: ParameterContextPostmaster,
Type: types.NewSystemEnumType("recovery_target_action", "pause", "promote", "shutdown"),
Source: ParameterSourceDefault,
ResetVal: "pause",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"recovery_target_inclusive": &Parameter{
Name: "recovery_target_inclusive",
Default: int8(1),
Category: "Write-Ahead Log / Recovery Target",
ShortDesc: "Sets whether to include or exclude transaction with recovery target.",
Context: ParameterContextPostmaster,
Type: types.NewSystemBoolType("recovery_target_inclusive"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"recovery_target_lsn": &Parameter{
Name: "recovery_target_lsn",
Default: "",
Category: "Write-Ahead Log / Recovery Target",
ShortDesc: "Sets the LSN of the write-ahead log location up to which recovery will proceed.",
Context: ParameterContextPostmaster,
Type: types.NewSystemStringType("recovery_target_lsn"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"recovery_target_name": &Parameter{
Name: "recovery_target_name",
Default: "",
Category: "Write-Ahead Log / Recovery Target",
ShortDesc: "Sets the named restore point up to which recovery will proceed.",
Context: ParameterContextPostmaster,
Type: types.NewSystemStringType("recovery_target_name"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"recovery_target_time": &Parameter{
Name: "recovery_target_time",
Default: "",
Category: "Write-Ahead Log / Recovery Target",
ShortDesc: "Sets the time stamp up to which recovery will proceed.",
Context: ParameterContextPostmaster,
Type: types.NewSystemStringType("recovery_target_time"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"recovery_target_timeline": &Parameter{
Name: "recovery_target_timeline",
Default: "latest",
Category: "Write-Ahead Log / Recovery Target",
ShortDesc: "Specifies the timeline to recover into.",
Context: ParameterContextPostmaster,
Type: types.NewSystemStringType("recovery_target_timeline"),
Source: ParameterSourceDefault,
ResetVal: "latest",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"recovery_target_xid": &Parameter{
Name: "recovery_target_xid",
Default: "",
Category: "Write-Ahead Log / Recovery Target",
ShortDesc: "Sets the transaction ID up to which recovery will proceed.",
Context: ParameterContextPostmaster,
Type: types.NewSystemStringType("recovery_target_xid"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"recursive_worktable_factor": &Parameter{
Name: "recursive_worktable_factor",
Default: float64(10),
Category: "Query Tuning / Other Planner Options",
ShortDesc: "Sets the planner's estimate of the average size of a recursive query's working table.",
Context: ParameterContextUser,
Type: types.NewSystemDoubleType("recursive_worktable_factor", 0.001, 1000000),
Source: ParameterSourceDefault,
ResetVal: float64(10),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"remove_temp_files_after_crash": &Parameter{
Name: "remove_temp_files_after_crash",
Default: int8(0),
Category: "Developer Options",
ShortDesc: "Remove temporary files after backend crash.",
Context: ParameterContextSighup,
Type: types.NewSystemBoolType("remove_temp_files_after_crash"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"reserved_connections": &Parameter{
Name: "reserved_connections",
Default: int64(0),
Category: "Connections and Authentication / Connection Settings",
ShortDesc: "Sets the number of connection slots reserved for roles with privileges of pg_use_reserved_connections.",
Context: ParameterContextPostmaster,
Type: types.NewSystemIntType("reserved_connections", 0, 262143, false),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"restart_after_crash": &Parameter{
Name: "restart_after_crash",
Default: int8(1),
Category: "Error Handling",
ShortDesc: "Reinitialize server after backend crash.",
Context: ParameterContextSighup,
Type: types.NewSystemBoolType("restart_after_crash"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"restore_command": &Parameter{
Name: "restore_command",
Default: "",
Category: "Write-Ahead Log / Archive Recovery",
ShortDesc: "Sets the shell command that will be called to retrieve an archived WAL file.",
Context: ParameterContextSighup,
Type: types.NewSystemStringType("restore_command"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"row_security": &Parameter{
Name: "row_security",
Default: int8(1),
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Enable row security.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("row_security"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"scram_iterations": &Parameter{
Name: "scram_iterations",
Default: int64(4096),
Category: "Connections and Authentication / Authentication",
ShortDesc: "Sets the iteration count for SCRAM secret generation.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("scram_iterations", 1, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(4096),
Scope: GetPgsqlScope(PsqlScopeSession),
},
// search_path has a hack currently: user-space dolt tables are stored with no schema, so to find them on the search
// path we need an empty schema path element. Instead, we should store them in the `dolt` schema and put the `dolt`
// schema on the path here.
"search_path": &Parameter{
Name: "search_path",
Default: "\"$user\", public",
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Sets the schema search order for names that are not schema-qualified.",
Context: ParameterContextUser,
Type: types.NewSystemStringType("search_path"),
Source: ParameterSourceDefault,
ResetVal: "\"$user\", public",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"segment_size": &Parameter{
Name: "segment_size",
Default: int64(131072),
// Unit: "8kB",
Category: "Preset Options",
ShortDesc: "Shows the number of pages per disk file.",
Context: ParameterContextInternal,
Type: types.NewSystemIntType("segment_size", 131072, 131072, false),
Source: ParameterSourceDefault,
ResetVal: int64(131072),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"send_abort_for_crash": &Parameter{
Name: "send_abort_for_crash",
Default: int8(0),
Category: "Developer Options",
ShortDesc: "Send SIGABRT not SIGQUIT to child processes after backend crash.",
Context: ParameterContextSighup,
Type: types.NewSystemBoolType("send_abort_for_crash"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"send_abort_for_kill": &Parameter{
Name: "send_abort_for_kill",
Default: int8(0),
Category: "Developer Options",
ShortDesc: "Send SIGABRT not SIGKILL to stuck child processes.",
Context: ParameterContextSighup,
Type: types.NewSystemBoolType("send_abort_for_kill"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"seq_page_cost": &Parameter{
Name: "seq_page_cost",
Default: float64(1),
Category: "Query Tuning / Planner Cost Constants",
ShortDesc: "Sets the planner's estimate of the cost of a sequentially fetched disk page.",
Context: ParameterContextSighup,
Type: types.NewSystemDoubleType("seq_page_cost", 0, math.MaxFloat64),
Source: ParameterSourceDefault,
ResetVal: float64(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"server_encoding": &Parameter{
Name: "server_encoding",
Default: "UTF8",
Category: "Preset Options",
ShortDesc: "Shows the server (database) character set encoding.",
Context: ParameterContextInternal,
Type: types.NewSystemStringType("server_encoding"),
Source: ParameterSourceDefault,
// BootVal: "SQL_ASCII",
ResetVal: "UTF8",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"server_version": &Parameter{
Name: "server_version",
Default: "15.17 (Homebrew)",
Category: "Preset Options",
ShortDesc: "Shows the server version.",
Context: ParameterContextInternal,
Type: types.NewSystemStringType("server_version"),
Source: ParameterSourceDefault,
ResetVal: "15.17 (Homebrew)",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"server_version_num": &Parameter{
Name: "server_version_num",
Default: int64(150017),
Category: "Preset Options",
ShortDesc: "Shows the server version as an integer.",
Context: ParameterContextInternal,
Type: types.NewSystemIntType("server_version_num", 150017, 150017, false),
Source: ParameterSourceDefault,
ResetVal: int64(150017),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"session_preload_libraries": &Parameter{
Name: "session_preload_libraries",
Default: "",
Category: "Client Connection Defaults / Shared Library Preloading",
ShortDesc: "Lists shared libraries to preload into each backend.",
Context: ParameterContextSuperUser,
Type: types.NewSystemStringType("session_preload_libraries"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"session_replication_role": &Parameter{
Name: "session_replication_role",
Default: "origin",
Category: "Write-Ahead Log / Archive Recovery",
ShortDesc: "Sets the session's behavior for triggers and rewrite rules.",
Context: ParameterContextSuperUser,
Type: types.NewSystemEnumType("session_replication_role", "origin", "replica", "local"),
Source: ParameterSourceDefault,
ResetVal: "origin",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"shared_buffers": &Parameter{
Name: "shared_buffers",
Default: int64(16384),
// Unit: "8kB",
Category: "Resource Usage / Memory",
ShortDesc: "Sets the number of shared memory buffers used by the server.",
Context: ParameterContextPostmaster,
Type: types.NewSystemIntType("shared_buffers", 16, 1073741823, false),
Source: ParameterSourceConfigurationFile,
ResetVal: int64(16384),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"shared_memory_size": &Parameter{
Name: "shared_memory_size",
Default: int64(143),
// Unit: "MB",
Category: "Preset Options",
ShortDesc: "Shows the size of the server's main shared memory area (rounded up to the nearest MB).",
Context: ParameterContextInternal,
Type: types.NewSystemIntType("shared_memory_size", 0, math.MaxInt32, false),
Source: ParameterSourceDefault,
// BootVal: int64(0);
ResetVal: int64(143),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"shared_memory_size_in_huge_pages": &Parameter{
Name: "shared_memory_size_in_huge_pages",
Default: int64(-1),
Category: "Preset Options",
ShortDesc: "Shows the number of huge pages needed for the main shared memory area.",
Context: ParameterContextInternal,
Type: types.NewSystemIntType("shared_memory_size_in_huge_pages", -1, math.MaxInt32, true),
Source: ParameterSourceDefault,
ResetVal: int64(-1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"shared_memory_type": &Parameter{
Name: "shared_memory_type",
Default: "mmap",
Category: "Resource Usage / Memory",
ShortDesc: "Selects the shared memory implementation used for the main shared memory region.",
Context: ParameterContextPostmaster,
Type: types.NewSystemEnumType("shared_memory_type", "sysv", "mmap"),
Source: ParameterSourceDefault,
ResetVal: "mmap",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"shared_preload_libraries": &Parameter{
Name: "shared_preload_libraries",
Default: "",
Category: "Client Connection Defaults / Shared Library Preloading",
ShortDesc: "Lists shared libraries to preload into server.",
Context: ParameterContextPostmaster,
Type: types.NewSystemStringType("shared_preload_libraries"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"ssl": &Parameter{
Name: "ssl",
Default: int8(0),
Category: "Connections and Authentication / SSL",
ShortDesc: "Enables SSL connections.",
Context: ParameterContextSighup,
Type: types.NewSystemBoolType("ssl"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"ssl_ca_file": &Parameter{
Name: "ssl_ca_file",
Default: "",
Category: "Connections and Authentication / SSL",
ShortDesc: "Location of the SSL certificate authority file.",
Context: ParameterContextSighup,
Type: types.NewSystemStringType("ssl_ca_file"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"ssl_cert_file": &Parameter{
Name: "ssl_cert_file",
Default: "server.crt",
Category: "Connections and Authentication / SSL",
ShortDesc: "Location of the SSL server certificate file.",
Context: ParameterContextSighup,
Type: types.NewSystemStringType("ssl_cert_file"),
Source: ParameterSourceDefault,
ResetVal: "server.crt",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"ssl_ciphers": &Parameter{
Name: "ssl_ciphers",
Default: "HIGH:MEDIUM:+3DES:!aNULL",
Category: "Connections and Authentication / SSL",
ShortDesc: "Sets the list of allowed SSL ciphers.",
Context: ParameterContextSighup,
Type: types.NewSystemStringType("ssl_ciphers"),
Source: ParameterSourceDefault,
ResetVal: "HIGH:MEDIUM:+3DES:!aNULL",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"ssl_crl_dir": &Parameter{
Name: "ssl_crl_dir",
Default: "",
Category: "Connections and Authentication / SSL",
ShortDesc: "Location of the SSL certificate revocation list directory.",
Context: ParameterContextSighup,
Type: types.NewSystemStringType("ssl_crl_dir"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"ssl_crl_file": &Parameter{
Name: "ssl_crl_file",
Default: "",
Category: "Connections and Authentication / SSL",
ShortDesc: "Location of the SSL certificate revocation list file.",
Context: ParameterContextSighup,
Type: types.NewSystemStringType("ssl_crl_file"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"ssl_dh_params_file": &Parameter{
Name: "ssl_dh_params_file",
Default: "",
Category: "Connections and Authentication / SSL",
ShortDesc: "Location of the SSL DH parameters file.",
Context: ParameterContextSighup,
Type: types.NewSystemStringType("ssl_dh_params_file"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"ssl_ecdh_curve": &Parameter{
Name: "ssl_ecdh_curve",
Default: "prime256v1",
Category: "Connections and Authentication / SSL",
ShortDesc: "Sets the curve to use for ECDH.",
Context: ParameterContextSighup,
Type: types.NewSystemStringType("ssl_ecdh_curve"),
Source: ParameterSourceDefault,
ResetVal: "prime256v1",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"ssl_key_file": &Parameter{
Name: "ssl_key_file",
Default: "server.key",
Category: "Connections and Authentication / SSL",
ShortDesc: "Location of the SSL server private key file.",
Context: ParameterContextSighup,
Type: types.NewSystemStringType("ssl_key_file"),
Source: ParameterSourceDefault,
ResetVal: "server.key",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"ssl_library": &Parameter{
Name: "ssl_library",
Default: "OpenSSL",
Category: "Preset Options",
ShortDesc: "Shows the name of the SSL library.",
Context: ParameterContextInternal,
Type: types.NewSystemStringType("ssl_library"),
Source: ParameterSourceDefault,
ResetVal: "OpenSSL",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"ssl_max_protocol_version": &Parameter{
Name: "ssl_max_protocol_version",
Default: "",
Category: "Connections and Authentication / SSL",
ShortDesc: "Sets the maximum SSL/TLS protocol version to use.",
Context: ParameterContextSighup,
Type: types.NewSystemEnumType("ssl_max_protocol_version", "", "TLSv1", "TLSv1.1", "TLSv1.2", "TLSv1.3"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"ssl_min_protocol_version": &Parameter{
Name: "ssl_min_protocol_version",
Default: "TLSv1.2",
Category: "Connections and Authentication / SSL",
ShortDesc: "Sets the minimum SSL/TLS protocol version to use.",
Context: ParameterContextSighup,
Type: types.NewSystemEnumType("ssl_min_protocol_version", "TLSv1", "TLSv1.1", "TLSv1.2", "TLSv1.3"),
Source: ParameterSourceDefault,
ResetVal: "TLSv1.2",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"ssl_passphrase_command": &Parameter{
Name: "ssl_passphrase_command",
Default: "",
Category: "Connections and Authentication / SSL",
ShortDesc: "Command to obtain passphrases for SSL.",
Context: ParameterContextSighup,
Type: types.NewSystemStringType("ssl_passphrase_command"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"ssl_passphrase_command_supports_reload": &Parameter{
Name: "ssl_passphrase_command_supports_reload",
Default: int8(0),
Category: "Connections and Authentication / SSL",
ShortDesc: "Controls whether ssl_passphrase_command is called during server reload.",
Context: ParameterContextSighup,
Type: types.NewSystemBoolType("ssl_passphrase_command_supports_reload"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"ssl_prefer_server_ciphers": &Parameter{
Name: "ssl_prefer_server_ciphers",
Default: int8(1),
Category: "Connections and Authentication / SSL",
ShortDesc: "Give priority to server ciphersuite order.",
Context: ParameterContextSighup,
Type: types.NewSystemBoolType("ssl_prefer_server_ciphers"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"standard_conforming_strings": &Parameter{
Name: "standard_conforming_strings",
Default: int8(1),
Category: "Version and Platform Compatibility / Previous PostgreSQL Versions",
ShortDesc: "Causes '...' strings to treat backslashes literally.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("standard_conforming_strings"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"statement_timeout": &Parameter{
Name: "statement_timeout",
Default: int64(0),
// Unit: "ms",
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Sets the maximum allowed duration of any statement.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("statement_timeout", 0, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"stats_fetch_consistency": &Parameter{
Name: "stats_fetch_consistency",
Default: "cache",
Category: "Statistics / Cumulative Query and Index Statistics",
ShortDesc: "Sets the consistency of accesses to statistics data.",
Context: ParameterContextUser,
Type: types.NewSystemEnumType("stats_fetch_consistency", "none", "cache", "snapshot"),
Source: ParameterSourceDefault,
ResetVal: "cache",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"superuser_reserved_connections": &Parameter{
Name: "superuser_reserved_connections",
Default: int64(3),
Category: "Connections and Authentication / Connection Settings",
ShortDesc: "Sets the number of connection slots reserved for superusers.",
Context: ParameterContextPostmaster,
Type: types.NewSystemIntType("superuser_reserved_connections", 0, 262143, false),
Source: ParameterSourceDefault,
ResetVal: int64(3),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"synchronize_seqscans": &Parameter{
Name: "synchronize_seqscans",
Default: int8(1),
Category: "Version and Platform Compatibility / Previous PostgreSQL Versions",
ShortDesc: "Enable synchronized sequential scans.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("synchronize_seqscans"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"synchronous_commit": &Parameter{
Name: "synchronous_commit",
Default: "on",
Category: "Write-Ahead Log / Settings",
ShortDesc: "Sets the current transaction's synchronization level.",
Context: ParameterContextUser,
Type: types.NewSystemEnumType("synchronous_commit", "local", "remote_write", "remote_apply", "on", "off"),
Source: ParameterSourceDefault,
ResetVal: "on",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"synchronous_standby_names": &Parameter{
Name: "synchronous_standby_names",
Default: "",
Category: "Replication / Primary Server",
ShortDesc: "Number of synchronous standbys and list of names of potential synchronous ones.",
Context: ParameterContextSighup,
Type: types.NewSystemStringType("synchronous_standby_names"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"syslog_facility": &Parameter{
Name: "syslog_facility",
Default: "local0",
Category: "Reporting and Logging / Where to Log",
ShortDesc: "Sets the syslog \"facility\" to be used when syslog enabled.",
Context: ParameterContextSighup,
Type: types.NewSystemEnumType("syslog_facility", "local0", "local1", "local2", "local3", "local4", "local5", "local6", "local7"),
Source: ParameterSourceDefault,
ResetVal: "local0",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"syslog_ident": &Parameter{
Name: "syslog_ident",
Default: "postgres",
Category: "Reporting and Logging / Where to Log",
ShortDesc: "Sets the program name used to identify PostgreSQL messages in syslog.",
Context: ParameterContextSighup,
Type: types.NewSystemStringType("syslog_ident"),
Source: ParameterSourceDefault,
ResetVal: "postgres",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"syslog_sequence_numbers": &Parameter{
Name: "syslog_sequence_numbers",
Default: int8(1),
Category: "Reporting and Logging / Where to Log",
ShortDesc: "Add sequence number to syslog messages to avoid duplicate suppression.",
Context: ParameterContextSighup,
Type: types.NewSystemBoolType("syslog_sequence_numbers"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"syslog_split_messages": &Parameter{
Name: "syslog_split_messages",
Default: int8(1),
Category: "Reporting and Logging / Where to Log",
ShortDesc: "Split messages sent to syslog by lines and to fit into 1024 bytes.",
Context: ParameterContextSighup,
Type: types.NewSystemBoolType("syslog_split_messages"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"tcp_keepalives_count": &Parameter{
Name: "tcp_keepalives_count",
Default: int64(0),
Category: "Connections and Authentication / TCP Settings",
ShortDesc: "Maximum number of TCP keepalive retransmits.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("tcp_keepalives_count", 0, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"tcp_keepalives_idle": &Parameter{
Name: "tcp_keepalives_idle",
Default: int64(0),
// Unit: "s",
Category: "Connections and Authentication / TCP Settings",
ShortDesc: "Time between issuing TCP keepalives.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("tcp_keepalives_idle", 0, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"tcp_keepalives_interval": &Parameter{
Name: "tcp_keepalives_interval",
Default: int64(0),
// Unit: "s",
Category: "Connections and Authentication / TCP Settings",
ShortDesc: "Time between TCP keepalive retransmits.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("tcp_keepalives_interval", 0, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"tcp_user_timeout": &Parameter{
Name: "tcp_user_timeout",
Default: int64(0),
// Unit: "ms",
Category: "Connections and Authentication / TCP Settings",
ShortDesc: "TCP user timeout.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("tcp_user_timeout", 0, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"temp_buffers": &Parameter{
Name: "temp_buffers",
Default: int64(1024),
// Unit: "8kB",
Category: "Resource Usage / Memory",
ShortDesc: "Sets the maximum number of temporary buffers used by each session.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("temp_buffers", 100, 1073741823, false),
Source: ParameterSourceDefault,
ResetVal: int64(1024),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"temp_file_limit": &Parameter{
Name: "temp_file_limit",
Default: int64(-1),
// Unit: "kB",
Category: "Resource Usage / Disk",
ShortDesc: "Limits the total size of all temporary files used by each process.",
Context: ParameterContextSuperUser,
Type: types.NewSystemIntType("temp_file_limit", -1, math.MaxInt32, true),
Source: ParameterSourceDefault,
ResetVal: int64(-1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"temp_tablespaces": &Parameter{
Name: "temp_tablespaces",
Default: "",
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Sets the tablespace(s) to use for temporary tables and sort files.",
Context: ParameterContextUser,
Type: types.NewSystemStringType("temp_tablespaces"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"timezone": &Parameter{
Name: "TimeZone",
Default: time.Local.String(),
Category: "Client Connection Defaults / Locale and Formatting",
ShortDesc: "Sets the time zone for displaying and interpreting time stamps.",
Context: ParameterContextUser,
Type: types.NewSystemStringType("timezone"),
Source: ParameterSourceConfigurationFile,
ResetVal: time.Local.String(),
Scope: GetPgsqlScope(PsqlScopeSession),
ValidateFunc: func(_, new any) (any, bool) {
switch v := new.(type) {
case string:
v = strings.TrimSpace(v)
vplus := "+" + v // This allows for 10:00:00 to match since we'd expect +10:00:00 for a time zone
if strings.ToLower(v) == "local" {
// TODO: this should be the IANA name, not whatever Go decides to use
// https://pkg.go.dev/github.com/thlib/go-timezone-local/tzlocal seems useful in this case.
return time.Local.String(), true
} else {
if strings.ToLower(v) == "utc" {
v = "UTC"
}
loc, err := time.LoadLocation(v)
if err == nil {
return loc.String(), true
}
_, err = TzOffsetToDuration(v)
if err == nil {
return v, true
}
for _, layout := range []string{
"-07",
"-0700",
"-070000",
"-07:00",
"-07:00:00",
"UTC-07",
"UTC-0700",
"UTC-070000",
"UTC-07:00",
"UTC-07:00:00",
"MST",
} {
parsed, err := time.Parse(layout, v)
if err == nil {
return parsed.Format("-07:00:00"), true
}
parsed, err = time.Parse(layout, vplus)
if err == nil {
return parsed.Format("-07:00:00"), true
}
}
return nil, false
}
}
return new, true
},
},
"timezone_abbreviations": &Parameter{
Name: "timezone_abbreviations",
Default: "Default",
Category: "Client Connection Defaults / Locale and Formatting",
ShortDesc: "Selects a file of time zone abbreviations.",
Context: ParameterContextUser,
Type: types.NewSystemStringType("timezone_abbreviations"),
Source: ParameterSourceDefault,
ResetVal: "Default",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"trace_notify": &Parameter{
Name: "trace_notify",
Default: int8(0),
Category: "Developer Options",
ShortDesc: "Generates debugging output for LISTEN and NOTIFY.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("trace_notify"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"trace_recovery_messages": &Parameter{
Name: "trace_recovery_messages",
Default: "log",
Category: "Developer Options",
ShortDesc: "Enables logging of recovery-related debugging information.",
Context: ParameterContextSighup,
Type: types.NewSystemEnumType("trace_recovery_messages", "debug5", "debug4", "debug3", "debug2", "debug1", "log", "notice", "warning", "error"),
Source: ParameterSourceDefault,
ResetVal: "log",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"trace_sort": &Parameter{
Name: "trace_sort",
Default: int8(0),
Category: "Developer Options",
ShortDesc: "Emit information about resource usage in sorting.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("trace_sort"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"track_activities": &Parameter{
Name: "track_activities",
Default: int8(1),
Category: "Statistics / Cumulative Query and Index Statistics",
ShortDesc: "Collects information about executing commands.",
Context: ParameterContextSuperUser,
Type: types.NewSystemBoolType("track_activities"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"track_activity_query_size": &Parameter{
Name: "track_activity_query_size",
Default: int64(1024),
// Unit: "B",
Category: "Statistics / Cumulative Query and Index Statistics",
ShortDesc: "Sets the size reserved for pg_stat_activity.query, in bytes.",
Context: ParameterContextPostmaster,
Type: types.NewSystemIntType("track_activity_query_size", 100, 1048576, false),
Source: ParameterSourceDefault,
ResetVal: int64(1024),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"track_commit_timestamp": &Parameter{
Name: "track_commit_timestamp",
Default: int8(0),
Category: "Replication / Sending Servers",
ShortDesc: "Collects transaction commit time.",
Context: ParameterContextPostmaster,
Type: types.NewSystemBoolType("track_commit_timestamp"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"track_counts": &Parameter{
Name: "track_counts",
Default: int8(1),
Category: "Statistics / Cumulative Query and Index Statistics",
ShortDesc: "Collects statistics on database activity.",
Context: ParameterContextSuperUser,
Type: types.NewSystemBoolType("track_counts"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"track_functions": &Parameter{
Name: "track_functions",
Default: "none",
Category: "Statistics / Cumulative Query and Index Statistics",
ShortDesc: "Collects function-level statistics on database activity.",
Context: ParameterContextSuperUser,
Type: types.NewSystemEnumType("track_functions", "none", "pl", "all"),
Source: ParameterSourceDefault,
ResetVal: "none",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"track_io_timing": &Parameter{
Name: "track_io_timing",
Default: int8(0),
Category: "Statistics / Cumulative Query and Index Statistics",
ShortDesc: "Collects timing statistics for database I/O activity.",
Context: ParameterContextSuperUser,
Type: types.NewSystemBoolType("track_io_timing"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"track_wal_io_timing": &Parameter{
Name: "track_wal_io_timing",
Default: int8(0),
Category: "Statistics / Cumulative Query and Index Statistics",
ShortDesc: "Collects timing statistics for WAL I/O activity.",
Context: ParameterContextSuperUser,
Type: types.NewSystemBoolType("track_wal_io_timing"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"transaction_deferrable": &Parameter{
Name: "transaction_deferrable",
Default: int8(0),
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Whether to defer a read-only serializable transaction until it can be executed with no possible serialization failures.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("transaction_deferrable"),
Source: ParameterSourceOverride,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"transaction_isolation": &Parameter{
Name: "transaction_isolation",
Default: "read committed",
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Sets the current transaction's isolation level.",
Context: ParameterContextUser,
Type: types.NewSystemEnumType("transaction_isolation", "serializable", "repeatable read", "read committed", "read uncommitted"),
Source: ParameterSourceOverride,
ResetVal: "read committed",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"transaction_read_only": &Parameter{
Name: "transaction_read_only",
Default: int8(0),
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Sets the current transaction's read-only status.",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("transaction_read_only"),
Source: ParameterSourceOverride,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"transaction_timeout": &Parameter{
Name: "transaction_timeout",
Default: int64(0), // Unit: "ms"
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Sets the maximum allowed duration of any transaction within a session (not a prepared transaction).",
Context: ParameterContextUser,
Type: types.NewSystemIntType("transaction_timeout", 0, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"transform_null_equals": &Parameter{
Name: "transform_null_equals",
Default: int8(0),
Category: "Version and Platform Compatibility / Other Platforms and Clients",
ShortDesc: "Treats \"expr=NULL\" as \"expr IS NULL\".",
Context: ParameterContextUser,
Type: types.NewSystemBoolType("transform_null_equals"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"unix_socket_directories": &Parameter{
Name: "unix_socket_directories",
Default: "/tmp",
Category: "Connections and Authentication / Connection Settings",
ShortDesc: "Sets the directories where Unix-domain sockets will be created.",
Context: ParameterContextPostmaster,
Type: types.NewSystemStringType("unix_socket_directories"),
Source: ParameterSourceDefault,
ResetVal: "/tmp",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"unix_socket_group": &Parameter{
Name: "unix_socket_group",
Default: "",
Category: "Connections and Authentication / Connection Settings",
ShortDesc: "Sets the owning group of the Unix-domain socket.",
Context: ParameterContextPostmaster,
Type: types.NewSystemStringType("unix_socket_group"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"unix_socket_permissions": &Parameter{
Name: "unix_socket_permissions",
Default: int64(511), // displays in octal, which is 0777
Category: "Connections and Authentication / Connection Settings",
ShortDesc: "Sets the access permissions of the Unix-domain socket.",
Context: ParameterContextPostmaster,
Type: types.NewSystemIntType("unix_socket_permissions", 0, 511, false),
Source: ParameterSourceDefault,
ResetVal: int64(511),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"update_process_title": &Parameter{
Name: "update_process_title",
Default: int8(1),
Category: "Reporting and Logging / Process Title",
ShortDesc: "Updates the process title to show the active SQL command.",
Context: ParameterContextSuperUser,
Type: types.NewSystemBoolType("update_process_title"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"vacuum_buffer_usage_limit": &Parameter{
Name: "vacuum_buffer_usage_limit",
Default: int64(256),
// Unit: "kB",
Category: "Resource Usage / Memory",
ShortDesc: "Sets the buffer pool size for VACUUM, ANALYZE, and autovacuum.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("vacuum_buffer_usage_limit", 0, 16777216, false),
Source: ParameterSourceDefault,
ResetVal: int64(256),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"vacuum_cost_delay": &Parameter{
Name: "vacuum_cost_delay",
Default: float64(0),
// Unit: "ms",
Category: "Resource Usage / Cost-Based Vacuum Delay",
ShortDesc: "Vacuum cost delay in milliseconds.",
Context: ParameterContextUser,
Type: types.NewSystemDoubleType("vacuum_cost_delay", 0, 100),
Source: ParameterSourceDefault,
ResetVal: float64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"vacuum_cost_limit": &Parameter{
Name: "vacuum_cost_limit",
Default: int64(200),
Category: "Resource Usage / Cost-Based Vacuum Delay",
ShortDesc: "Vacuum cost amount available before napping.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("vacuum_cost_limit", 1, 10000, false),
Source: ParameterSourceDefault,
ResetVal: int64(200),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"vacuum_cost_page_dirty": &Parameter{
Name: "vacuum_cost_page_dirty",
Default: int64(20),
Category: "Resource Usage / Cost-Based Vacuum Delay",
ShortDesc: "Vacuum cost for a page dirtied by vacuum.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("vacuum_cost_page_dirty", 0, 10000, false),
Source: ParameterSourceDefault,
ResetVal: int64(20),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"vacuum_cost_page_hit": &Parameter{
Name: "vacuum_cost_page_hit",
Default: int64(1),
Category: "Resource Usage / Cost-Based Vacuum Delay",
ShortDesc: "Vacuum cost for a page found in the buffer cache.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("vacuum_cost_page_hit", 0, 10000, false),
Source: ParameterSourceDefault,
ResetVal: int64(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"vacuum_cost_page_miss": &Parameter{
Name: "vacuum_cost_page_miss",
Default: int64(2),
Category: "Resource Usage / Cost-Based Vacuum Delay",
ShortDesc: "Vacuum cost for a page not found in the buffer cache.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("vacuum_cost_page_miss", 0, 10000, false),
Source: ParameterSourceDefault,
ResetVal: int64(2),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"vacuum_failsafe_age": &Parameter{
Name: "vacuum_failsafe_age",
Default: int64(1600000000),
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Age at which VACUUM should trigger failsafe to avoid a wraparound outage.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("vacuum_failsafe_age", 0, 2100000000, false),
Source: ParameterSourceDefault,
ResetVal: int64(1600000000),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"vacuum_freeze_min_age": &Parameter{
Name: "vacuum_freeze_min_age",
Default: int64(50000000),
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Minimum age at which VACUUM should freeze a table row.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("vacuum_freeze_min_age", 0, 1000000000, false),
Source: ParameterSourceDefault,
ResetVal: int64(50000000),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"vacuum_freeze_table_age": &Parameter{
Name: "vacuum_freeze_table_age",
Default: int64(150000000),
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Age at which VACUUM should scan whole table to freeze tuples.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("vacuum_freeze_table_age", 0, 2000000000, false),
Source: ParameterSourceDefault,
ResetVal: int64(150000000),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"vacuum_multixact_failsafe_age": &Parameter{
Name: "vacuum_multixact_failsafe_age",
Default: int64(1600000000),
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Multixact age at which VACUUM should trigger failsafe to avoid a wraparound outage.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("vacuum_multixact_failsafe_age", 0, 2100000000, false),
Source: ParameterSourceDefault,
ResetVal: int64(1600000000),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"vacuum_multixact_freeze_min_age": &Parameter{
Name: "vacuum_multixact_freeze_min_age",
Default: int64(5000000),
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Minimum age at which VACUUM should freeze a MultiXactId in a table row.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("vacuum_multixact_freeze_min_age", 0, 1000000000, false),
Source: ParameterSourceDefault,
ResetVal: int64(5000000),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"vacuum_multixact_freeze_table_age": &Parameter{
Name: "vacuum_multixact_freeze_table_age",
Default: int64(150000000),
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Multixact age at which VACUUM should scan whole table to freeze tuples.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("vacuum_multixact_freeze_table_age", 0, 2000000000, false),
Source: ParameterSourceDefault,
ResetVal: int64(150000000),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"wal_block_size": &Parameter{
Name: "wal_block_size",
Default: int64(8192),
Category: "Preset Options",
ShortDesc: "Shows the block size in the write ahead log.",
Context: ParameterContextInternal,
Type: types.NewSystemIntType("wal_block_size", 8192, 8192, false),
Source: ParameterSourceDefault,
ResetVal: int64(8192),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"wal_buffers": &Parameter{
Name: "wal_buffers",
Default: int64(512),
// Unit: "8kB",
Category: "Write-Ahead Log / Settings",
ShortDesc: "Sets the number of disk-page buffers in shared memory for WAL.",
Context: ParameterContextPostmaster,
Type: types.NewSystemIntType("wal_buffers", -1, 262143, true),
Source: ParameterSourceDefault,
// BootVal: int64(-1),
ResetVal: int64(512),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"wal_compression": &Parameter{
Name: "wal_compression",
Default: "off",
Category: "Write-Ahead Log / Settings",
ShortDesc: "Compresses full-page writes written in WAL file with specified method.",
Context: ParameterContextSuperUser,
Type: types.NewSystemEnumType("wal_compression", "pglz", "lz4", "on", "off"),
Source: ParameterSourceDefault,
ResetVal: "off",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"wal_consistency_checking": &Parameter{
Name: "wal_consistency_checking",
Default: "",
Category: "Developer Options",
ShortDesc: "Sets the WAL resource managers for which WAL consistency checks are done.",
Context: ParameterContextSuperUser,
Type: types.NewSystemStringType("wal_consistency_checking"),
Source: ParameterSourceDefault,
ResetVal: "",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"wal_decode_buffer_size": &Parameter{
Name: "wal_decode_buffer_size",
Default: int64(524288),
// Unit: "B",
Category: "Write-Ahead Log / Recovery",
ShortDesc: "Buffer size for reading ahead in the WAL during recovery.",
Context: ParameterContextPostmaster,
Type: types.NewSystemIntType("wal_decode_buffer_size", math.MaxUint16, 1073741823, false),
Source: ParameterSourceDefault,
ResetVal: int64(524288),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"wal_init_zero": &Parameter{
Name: "wal_init_zero",
Default: int8(1),
Category: "Write-Ahead Log / Settings",
ShortDesc: "Writes zeroes to new WAL files before first use.",
Context: ParameterContextSuperUser,
Type: types.NewSystemBoolType("wal_init_zero"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"wal_keep_size": &Parameter{
Name: "wal_keep_size",
Default: int64(0),
// Unit: "MB",
Category: "Replication / Sending Servers",
ShortDesc: "Sets the size of WAL files held for standby servers.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("wal_keep_size", 0, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"wal_level": &Parameter{
Name: "wal_level",
Default: "replica",
Category: "Write-Ahead Log / Settings",
ShortDesc: "Sets the level of information written to the WAL.",
Context: ParameterContextPostmaster,
Type: types.NewSystemEnumType("wal_level", "minimal", "replica", "logical"),
Source: ParameterSourceDefault,
ResetVal: "replica",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"wal_log_hints": &Parameter{
Name: "wal_log_hints",
Default: int8(0),
Category: "Write-Ahead Log / Settings",
ShortDesc: "Writes full pages to WAL when first modified after a checkpoint, even for a non-critical modification.",
Context: ParameterContextPostmaster,
Type: types.NewSystemBoolType("wal_log_hints"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"wal_receiver_create_temp_slot": &Parameter{
Name: "wal_receiver_create_temp_slot",
Default: int8(0),
Category: "Replication / Standby Servers",
ShortDesc: "Sets whether a WAL receiver should create a temporary replication slot if no permanent slot is configured.",
Context: ParameterContextSighup,
Type: types.NewSystemBoolType("wal_receiver_create_temp_slot"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"wal_receiver_status_interval": &Parameter{
Name: "wal_receiver_status_interval",
Default: int64(10),
// Unit: "s",
Category: "Replication / Standby Servers",
ShortDesc: "Sets the maximum interval between WAL receiver status reports to the sending server.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("wal_receiver_status_interval", 0, 2147483, false),
Source: ParameterSourceDefault,
ResetVal: int64(10),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"wal_receiver_timeout": &Parameter{
Name: "wal_receiver_timeout",
Default: int64(60000),
Category: "Replication / Standby Servers",
ShortDesc: "Sets the maximum wait time to receive data from the sending server.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("wal_receiver_timeout", 0, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(60000),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"wal_recycle": &Parameter{
Name: "wal_recycle",
Default: int8(1),
Category: "Write-Ahead Log / Settings",
ShortDesc: "Recycles WAL files by renaming them.",
Context: ParameterContextSuperUser,
Type: types.NewSystemBoolType("wal_recycle"),
Source: ParameterSourceDefault,
ResetVal: int8(1),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"wal_retrieve_retry_interval": &Parameter{
Name: "wal_retrieve_retry_interval",
Default: int64(5000),
Category: "Replication / Standby Servers",
ShortDesc: "Sets the time to wait before retrying to retrieve WAL after a failed attempt.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("wal_retrieve_retry_interval", 1, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(5000),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"wal_segment_size": &Parameter{
Name: "wal_segment_size",
Default: int64(16777216),
// Unit: "B",
Category: "Preset Options",
ShortDesc: "Shows the size of write ahead log segments.",
Context: ParameterContextInternal,
Type: types.NewSystemIntType("wal_segment_size", 1048576, 1073741824, false),
Source: ParameterSourceDefault,
ResetVal: int64(16777216),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"wal_sender_timeout": &Parameter{
Name: "wal_sender_timeout",
Default: int64(60000),
// Unit: "ms",
Category: "Replication / Sending Servers",
ShortDesc: "Sets the maximum time to wait for WAL replication.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("wal_sender_timeout", 0, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(60000),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"wal_skip_threshold": &Parameter{
Name: "wal_skip_threshold",
Default: int64(2048),
// Unit: "kB",
Category: "Write-Ahead Log / Settings",
ShortDesc: "Minimum size of new file to fsync instead of writing WAL.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("wal_skip_threshold", 0, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(2048),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"wal_sync_method": &Parameter{
Name: "wal_sync_method",
Default: "open_datasync",
Category: "Write-Ahead Log / Settings",
ShortDesc: "Selects the method used for forcing WAL updates to disk.",
Context: ParameterContextSighup,
Type: types.NewSystemEnumType("wal_sync_method", "fsync", "fsync_writethrough", "fdatasync", "open_sync", "open_datasync"),
Source: ParameterSourceDefault,
ResetVal: "open_datasync",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"wal_writer_delay": &Parameter{
Name: "wal_writer_delay",
Default: int64(200),
// Unit: "ms",
Category: "Write-Ahead Log / Settings",
ShortDesc: "Time between WAL flushes performed in the WAL writer.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("wal_writer_delay", 1, 10000, false),
Source: ParameterSourceDefault,
ResetVal: int64(200),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"wal_writer_flush_after": &Parameter{
Name: "wal_writer_flush_after",
Default: int64(128),
// Unit: "8kB",
Category: "Write-Ahead Log / Settings",
ShortDesc: "Amount of WAL written out by WAL writer that triggers a flush.",
Context: ParameterContextSighup,
Type: types.NewSystemIntType("wal_writer_flush_after", 0, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(128),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"work_mem": &Parameter{
Name: "work_mem",
Default: int64(4096),
// Unit: "kB",
Category: "Resource Usage / Memory",
ShortDesc: "Sets the maximum memory to be used for query workspaces.",
Context: ParameterContextUser,
Type: types.NewSystemIntType("work_mem", 64, math.MaxInt32, false),
Source: ParameterSourceDefault,
ResetVal: int64(4096),
Scope: GetPgsqlScope(PsqlScopeSession),
},
"xmlbinary": &Parameter{
Name: "xmlbinary",
Default: "base64",
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Sets how binary values are to be encoded in XML.",
Context: ParameterContextUser,
Type: types.NewSystemEnumType("xmlbinary", "base64", "hex"),
Source: ParameterSourceDefault,
ResetVal: "base64",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"xmloption": &Parameter{
Name: "xmloption",
Default: "content",
Category: "Client Connection Defaults / Statement Behavior",
ShortDesc: "Sets whether XML data in implicit parsing and serialization operations is to be considered as documents or content fragments.",
Context: ParameterContextUser,
Type: types.NewSystemEnumType("xmloption", "content", "document"),
Source: ParameterSourceDefault,
ResetVal: "content",
Scope: GetPgsqlScope(PsqlScopeSession),
},
"zero_damaged_pages": &Parameter{
Name: "zero_damaged_pages",
Default: int8(0),
Category: "Developer Options",
ShortDesc: "Continues processing past damaged page headers.",
Context: ParameterContextSuperUser,
Type: types.NewSystemBoolType("zero_damaged_pages"),
Source: ParameterSourceDefault,
ResetVal: int8(0),
Scope: GetPgsqlScope(PsqlScopeSession),
},
}