{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/kontinuous-values-yaml/_shared/latest--parameters.json",
  "title": "List of PostgreSQL server parameters. see https://www.postgresql.org/docs/current/runtime-config.html and https://postgresqlco.nf",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/SocialGouv/json-schemas/main/postgres/parameters.json",
    "sourceSha256": "62060176d5985496c9b837bf272f2d1698c409fafef70b31e6588d7623c5eee0"
  },
  "type": "object",
  "properties": {
    "allow_in_place_tablespaces": {
      "title": "allow_in_place_tablespaces",
      "description": "Allows tablespaces directly inside pg_tblspc, for testing.\n\nsee <https://postgresqlco.nf/doc/en/param/allow_in_place_tablespaces/>",
      "markdownDescription": "Allows tablespaces directly inside pg_tblspc, for testing.\n\nsee [allow_in_place_tablespaces documentation](https://postgresqlco.nf/doc/en/param/allow_in_place_tablespaces/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "allow_system_table_mods": {
      "title": "allow_system_table_mods",
      "description": "Allows modifications of the structure of system tables.\n\nOnly available in single-user mode; this setting is for initdb and may be used in the future for upgrade-in-place.\n\nsee <https://postgresqlco.nf/doc/en/param/allow_system_table_mods/>",
      "markdownDescription": "Allows modifications of the structure of system tables.\n\nOnly available in single-user mode; this setting is for initdb and may be used in the future for upgrade-in-place.\n\nsee [allow_system_table_mods documentation](https://postgresqlco.nf/doc/en/param/allow_system_table_mods/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "application_name": {
      "title": "application_name",
      "description": "Sets the application name to be reported in statistics and logs.\n\nSet this to a reasonable default for most user sessions; if in the middle of working over your application to support application names, this might be \"unknown\".\n\nsee <https://postgresqlco.nf/doc/en/param/application_name/>",
      "markdownDescription": "Sets the application name to be reported in statistics and logs.\n\nSet this to a reasonable default for most user sessions; if in the middle of working over your application to support application names, this might be \"unknown\".\n\nsee [application_name documentation](https://postgresqlco.nf/doc/en/param/application_name/)",
      "type": "string",
      "examples": [
        "psql"
      ]
    },
    "archive_cleanup_command": {
      "title": "archive_cleanup_command",
      "description": "Sets the shell command that will be executed at every restart point.\n\nsee <https://postgresqlco.nf/doc/en/param/archive_cleanup_command/>",
      "markdownDescription": "Sets the shell command that will be executed at every restart point.\n\nsee [archive_cleanup_command documentation](https://postgresqlco.nf/doc/en/param/archive_cleanup_command/)",
      "type": "string"
    },
    "archive_command": {
      "title": "archive_command",
      "description": "Sets the shell command that will be called to archive a WAL file.\n\nAll of the Archiving settings are part of a Point In Time Recovery or Warm Standby configuration.\nPlease see the Backup and Restore section for more information.\n\nsee <https://postgresqlco.nf/doc/en/param/archive_command/>",
      "markdownDescription": "Sets the shell command that will be called to archive a WAL file.\n\nAll of the Archiving settings are part of a Point In Time Recovery or Warm Standby configuration.\nPlease see the Backup and Restore section for more information.\n\nsee [archive_command documentation](https://postgresqlco.nf/doc/en/param/archive_command/)",
      "type": "string",
      "examples": [
        "/controller/manager wal-archive --log-destination /controller/log/postgres.json %p"
      ]
    },
    "archive_mode": {
      "title": "archive_mode",
      "description": "Allows archiving of WAL files using archive_command.\n\nRequires a restart to change, so if you want to turn archiving on and off, set this to 'on' and change archive_command instead.\nEven better, set archive_command to a script which can be disabled by trigger or ENV variable.\n\nsee <https://postgresqlco.nf/doc/en/param/archive_mode/>",
      "markdownDescription": "Allows archiving of WAL files using archive_command.\n\nRequires a restart to change, so if you want to turn archiving on and off, set this to 'on' and change archive_command instead.\nEven better, set archive_command to a script which can be disabled by trigger or ENV variable.\n\nsee [archive_mode documentation](https://postgresqlco.nf/doc/en/param/archive_mode/)",
      "type": "string",
      "examples": [
        "on"
      ],
      "enum": [
        "always",
        "on",
        "off"
      ]
    },
    "archive_timeout": {
      "title": "archive_timeout",
      "description": "Forces a switch to the next WAL file if a new file has not been started within N seconds.\n\nMinimum: 0\n\nMaximum: 1073741823\n\nDependant on your tradeoff between disk space and letting the standby get behind.\n\nsee <https://postgresqlco.nf/doc/en/param/archive_timeout/>",
      "markdownDescription": "Forces a switch to the next WAL file if a new file has not been started within N seconds.\n\nMinimum: 0\n\nMaximum: 1073741823\n\nDependant on your tradeoff between disk space and letting the standby get behind.\n\nsee [archive_timeout documentation](https://postgresqlco.nf/doc/en/param/archive_timeout/)",
      "type": "string",
      "examples": [
        "300"
      ]
    },
    "array_nulls": {
      "title": "array_nulls",
      "description": "Enable input of NULL elements in arrays.\n\nProvided for compatibility with 7.4 behavior.\n\nsee <https://postgresqlco.nf/doc/en/param/array_nulls/>",
      "markdownDescription": "Enable input of NULL elements in arrays.\n\nProvided for compatibility with 7.4 behavior.\n\nsee [array_nulls documentation](https://postgresqlco.nf/doc/en/param/array_nulls/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "authentication_timeout": {
      "title": "authentication_timeout",
      "description": "Sets the maximum allowed time to complete client authentication.\n\nMinimum: 1\n\nMaximum: 600\n\nFor production databases, it's important that this value be synchronized with the timeout on the application server side.\nMost web applications will want a shorter timeout, like 20s.\n\nsee <https://postgresqlco.nf/doc/en/param/authentication_timeout/>",
      "markdownDescription": "Sets the maximum allowed time to complete client authentication.\n\nMinimum: 1\n\nMaximum: 600\n\nFor production databases, it's important that this value be synchronized with the timeout on the application server side.\nMost web applications will want a shorter timeout, like 20s.\n\nsee [authentication_timeout documentation](https://postgresqlco.nf/doc/en/param/authentication_timeout/)",
      "type": "string",
      "examples": [
        "60"
      ]
    },
    "autovacuum": {
      "title": "autovacuum",
      "description": "Starts the autovacuum subprocess.\n\nStarts the daemon which cleans up your tables and indexes, preventing bloat and poor response times. The only reason to set it to \"off\" is for databases which regularly do large batch operations like ETL.\nNote that you can adjust the frequency or stop autovacuum on individual tables by adding rows to the pg_autovacuum system table.\n\nsee <https://postgresqlco.nf/doc/en/param/autovacuum/>",
      "markdownDescription": "Starts the autovacuum subprocess.\n\nStarts the daemon which cleans up your tables and indexes, preventing bloat and poor response times. The only reason to set it to \"off\" is for databases which regularly do large batch operations like ETL.\nNote that you can adjust the frequency or stop autovacuum on individual tables by adding rows to the pg_autovacuum system table.\n\nsee [autovacuum documentation](https://postgresqlco.nf/doc/en/param/autovacuum/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "autovacuum_analyze_scale_factor": {
      "title": "autovacuum_analyze_scale_factor",
      "description": "Number of tuple inserts, updates, or deletes prior to analyze as a fraction of reltuples.\n\nMinimum: 0\n\nMaximum: 100\n\nThis setting should be optimal for most databases.\nHowever, very large tables (1m rows or more) in which rows are added in a skewed fashion may need to be autoanalyzed at a lower percentage, such as 5% or even 1%.\n\nsee <https://postgresqlco.nf/doc/en/param/autovacuum_analyze_scale_factor/>",
      "markdownDescription": "Number of tuple inserts, updates, or deletes prior to analyze as a fraction of reltuples.\n\nMinimum: 0\n\nMaximum: 100\n\nThis setting should be optimal for most databases.\nHowever, very large tables (1m rows or more) in which rows are added in a skewed fashion may need to be autoanalyzed at a lower percentage, such as 5% or even 1%.\n\nsee [autovacuum_analyze_scale_factor documentation](https://postgresqlco.nf/doc/en/param/autovacuum_analyze_scale_factor/)",
      "type": "string",
      "examples": [
        "0.1"
      ]
    },
    "autovacuum_analyze_threshold": {
      "title": "autovacuum_analyze_threshold",
      "description": "Minimum number of tuple inserts, updates, or deletes prior to analyze.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee <https://postgresqlco.nf/doc/en/param/autovacuum_analyze_threshold/>",
      "markdownDescription": "Minimum number of tuple inserts, updates, or deletes prior to analyze.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee [autovacuum_analyze_threshold documentation](https://postgresqlco.nf/doc/en/param/autovacuum_analyze_threshold/)",
      "type": "string",
      "examples": [
        "50"
      ]
    },
    "autovacuum_freeze_max_age": {
      "title": "autovacuum_freeze_max_age",
      "description": "Age at which to autovacuum a table to prevent transaction ID wraparound.\n\nMinimum: 100000\n\nMaximum: 2000000000\n\nTriggers autovacuum automatically if a table is about to suffer from XID rollover. The setting is very conservative, and should probably be increased to 500million, but not higher.\n\nsee <https://postgresqlco.nf/doc/en/param/autovacuum_freeze_max_age/>",
      "markdownDescription": "Age at which to autovacuum a table to prevent transaction ID wraparound.\n\nMinimum: 100000\n\nMaximum: 2000000000\n\nTriggers autovacuum automatically if a table is about to suffer from XID rollover. The setting is very conservative, and should probably be increased to 500million, but not higher.\n\nsee [autovacuum_freeze_max_age documentation](https://postgresqlco.nf/doc/en/param/autovacuum_freeze_max_age/)",
      "type": "string",
      "examples": [
        "200000000"
      ]
    },
    "autovacuum_max_workers": {
      "title": "autovacuum_max_workers",
      "description": "Sets the maximum number of simultaneously running autovacuum worker processes.\n\nMinimum: 1\n\nMaximum: 262143\n\nIf you have an installation with many tables (100's to 1000's) or with some tables which autovacuum takes hours to process, you may want to add additional autovacuum workers so that multiple tables can be vacuumed at once.\nBe conservative, though, as each autovacuum worker will utilize a separate CPU core, memory and I/O.\n\nsee <https://postgresqlco.nf/doc/en/param/autovacuum_max_workers/>",
      "markdownDescription": "Sets the maximum number of simultaneously running autovacuum worker processes.\n\nMinimum: 1\n\nMaximum: 262143\n\nIf you have an installation with many tables (100's to 1000's) or with some tables which autovacuum takes hours to process, you may want to add additional autovacuum workers so that multiple tables can be vacuumed at once.\nBe conservative, though, as each autovacuum worker will utilize a separate CPU core, memory and I/O.\n\nsee [autovacuum_max_workers documentation](https://postgresqlco.nf/doc/en/param/autovacuum_max_workers/)",
      "type": "string",
      "examples": [
        "3"
      ]
    },
    "autovacuum_multixact_freeze_max_age": {
      "title": "autovacuum_multixact_freeze_max_age",
      "description": "Multixact age at which to autovacuum a table to prevent multixact wraparound.\n\nMinimum: 10000\n\nMaximum: 2000000000\n\nTriggers autovacuum automatically when the oldest \"multixact\" (a kind of lock transaction) is more than this old.\nDo not raise past 1billion.\n\nsee <https://postgresqlco.nf/doc/en/param/autovacuum_multixact_freeze_max_age/>",
      "markdownDescription": "Multixact age at which to autovacuum a table to prevent multixact wraparound.\n\nMinimum: 10000\n\nMaximum: 2000000000\n\nTriggers autovacuum automatically when the oldest \"multixact\" (a kind of lock transaction) is more than this old.\nDo not raise past 1billion.\n\nsee [autovacuum_multixact_freeze_max_age documentation](https://postgresqlco.nf/doc/en/param/autovacuum_multixact_freeze_max_age/)",
      "type": "string",
      "examples": [
        "400000000"
      ]
    },
    "autovacuum_naptime": {
      "title": "autovacuum_naptime",
      "description": "Time to sleep between autovacuum runs.\n\nMinimum: 1\n\nMaximum: 2147483\n\nDecrease this to 30s or 15s if you have a large number (100's) of tables, or if you otherwise see from pg_stat_user_tables that autovacuum is not keeping up.\n\nsee <https://postgresqlco.nf/doc/en/param/autovacuum_naptime/>",
      "markdownDescription": "Time to sleep between autovacuum runs.\n\nMinimum: 1\n\nMaximum: 2147483\n\nDecrease this to 30s or 15s if you have a large number (100's) of tables, or if you otherwise see from pg_stat_user_tables that autovacuum is not keeping up.\n\nsee [autovacuum_naptime documentation](https://postgresqlco.nf/doc/en/param/autovacuum_naptime/)",
      "type": "string",
      "examples": [
        "60"
      ]
    },
    "autovacuum_vacuum_cost_delay": {
      "title": "autovacuum_vacuum_cost_delay",
      "description": "Vacuum cost delay in milliseconds, for autovacuum.\n\nMinimum: -1\n\nMaximum: 100\n\nIf autovacuum is having too much of a performance impact on running queries, you might want to increase this setting to 50ms.\nHowever, this will also cause individual vacuum tasks to take longer.\n\nsee <https://postgresqlco.nf/doc/en/param/autovacuum_vacuum_cost_delay/>",
      "markdownDescription": "Vacuum cost delay in milliseconds, for autovacuum.\n\nMinimum: -1\n\nMaximum: 100\n\nIf autovacuum is having too much of a performance impact on running queries, you might want to increase this setting to 50ms.\nHowever, this will also cause individual vacuum tasks to take longer.\n\nsee [autovacuum_vacuum_cost_delay documentation](https://postgresqlco.nf/doc/en/param/autovacuum_vacuum_cost_delay/)",
      "type": "string",
      "examples": [
        "2"
      ]
    },
    "autovacuum_vacuum_cost_limit": {
      "title": "autovacuum_vacuum_cost_limit",
      "description": "Vacuum cost amount available before napping, for autovacuum.\n\nMinimum: -1\n\nMaximum: 10000\n\nsee <https://postgresqlco.nf/doc/en/param/autovacuum_vacuum_cost_limit/>",
      "markdownDescription": "Vacuum cost amount available before napping, for autovacuum.\n\nMinimum: -1\n\nMaximum: 10000\n\nsee [autovacuum_vacuum_cost_limit documentation](https://postgresqlco.nf/doc/en/param/autovacuum_vacuum_cost_limit/)",
      "type": "string",
      "examples": [
        "-1"
      ]
    },
    "autovacuum_vacuum_insert_scale_factor": {
      "title": "autovacuum_vacuum_insert_scale_factor",
      "description": "Number of tuple inserts prior to vacuum as a fraction of reltuples.\n\nMinimum: 0\n\nMaximum: 100\n\nsee <https://postgresqlco.nf/doc/en/param/autovacuum_vacuum_insert_scale_factor/>",
      "markdownDescription": "Number of tuple inserts prior to vacuum as a fraction of reltuples.\n\nMinimum: 0\n\nMaximum: 100\n\nsee [autovacuum_vacuum_insert_scale_factor documentation](https://postgresqlco.nf/doc/en/param/autovacuum_vacuum_insert_scale_factor/)",
      "type": "string",
      "examples": [
        "0.2"
      ]
    },
    "autovacuum_vacuum_insert_threshold": {
      "title": "autovacuum_vacuum_insert_threshold",
      "description": "Minimum number of tuple inserts prior to vacuum, or -1 to disable insert vacuums.\n\nMinimum: -1\n\nMaximum: 2147483647\n\nsee <https://postgresqlco.nf/doc/en/param/autovacuum_vacuum_insert_threshold/>",
      "markdownDescription": "Minimum number of tuple inserts prior to vacuum, or -1 to disable insert vacuums.\n\nMinimum: -1\n\nMaximum: 2147483647\n\nsee [autovacuum_vacuum_insert_threshold documentation](https://postgresqlco.nf/doc/en/param/autovacuum_vacuum_insert_threshold/)",
      "type": "string",
      "examples": [
        "1000"
      ]
    },
    "autovacuum_vacuum_scale_factor": {
      "title": "autovacuum_vacuum_scale_factor",
      "description": "Number of tuple updates or deletes prior to vacuum as a fraction of reltuples.\n\nMinimum: 0\n\nMaximum: 100\n\nsee <https://postgresqlco.nf/doc/en/param/autovacuum_vacuum_scale_factor/>",
      "markdownDescription": "Number of tuple updates or deletes prior to vacuum as a fraction of reltuples.\n\nMinimum: 0\n\nMaximum: 100\n\nsee [autovacuum_vacuum_scale_factor documentation](https://postgresqlco.nf/doc/en/param/autovacuum_vacuum_scale_factor/)",
      "type": "string",
      "examples": [
        "0.2"
      ]
    },
    "autovacuum_vacuum_threshold": {
      "title": "autovacuum_vacuum_threshold",
      "description": "Minimum number of tuple updates or deletes prior to vacuum.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee <https://postgresqlco.nf/doc/en/param/autovacuum_vacuum_threshold/>",
      "markdownDescription": "Minimum number of tuple updates or deletes prior to vacuum.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee [autovacuum_vacuum_threshold documentation](https://postgresqlco.nf/doc/en/param/autovacuum_vacuum_threshold/)",
      "type": "string",
      "examples": [
        "50"
      ]
    },
    "autovacuum_work_mem": {
      "title": "autovacuum_work_mem",
      "description": "Sets the maximum memory to be used by each autovacuum worker process.\n\nMinimum: -1\n\nMaximum: 2147483647\n\nSet a limit on this which is based on the number of autovac workers you expect to have running.\n\nsee <https://postgresqlco.nf/doc/en/param/autovacuum_work_mem/>",
      "markdownDescription": "Sets the maximum memory to be used by each autovacuum worker process.\n\nMinimum: -1\n\nMaximum: 2147483647\n\nSet a limit on this which is based on the number of autovac workers you expect to have running.\n\nsee [autovacuum_work_mem documentation](https://postgresqlco.nf/doc/en/param/autovacuum_work_mem/)",
      "type": "string",
      "examples": [
        "-1"
      ]
    },
    "backend_flush_after": {
      "title": "backend_flush_after",
      "description": "Number of pages after which previously performed writes are flushed to disk.\n\nMinimum: 0\n\nMaximum: 256\n\nUnless you have time to tune memory flushing behavior and test for improvements/regressions\n\nsee <https://postgresqlco.nf/doc/en/param/backend_flush_after/>",
      "markdownDescription": "Number of pages after which previously performed writes are flushed to disk.\n\nMinimum: 0\n\nMaximum: 256\n\nUnless you have time to tune memory flushing behavior and test for improvements/regressions\n\nsee [backend_flush_after documentation](https://postgresqlco.nf/doc/en/param/backend_flush_after/)",
      "type": "string",
      "examples": [
        "0"
      ]
    },
    "backslash_quote": {
      "title": "backslash_quote",
      "description": "Sets whether \"'\" is allowed in string literals.\n\nIf you have cleaned up your application code, you can set this to 'off' to help lock down the database.\nOlder PHP applications will require the insecure setting of 'on'.\n\nsee <https://postgresqlco.nf/doc/en/param/backslash_quote/>",
      "markdownDescription": "Sets whether \"'\" is allowed in string literals.\n\nIf you have cleaned up your application code, you can set this to 'off' to help lock down the database.\nOlder PHP applications will require the insecure setting of 'on'.\n\nsee [backslash_quote documentation](https://postgresqlco.nf/doc/en/param/backslash_quote/)",
      "type": "string",
      "examples": [
        "safe_encoding"
      ],
      "enum": [
        "safe_encoding",
        "on",
        "off"
      ]
    },
    "backtrace_functions": {
      "title": "backtrace_functions",
      "description": "Log backtrace for errors in these functions.\n\nsee <https://postgresqlco.nf/doc/en/param/backtrace_functions/>",
      "markdownDescription": "Log backtrace for errors in these functions.\n\nsee [backtrace_functions documentation](https://postgresqlco.nf/doc/en/param/backtrace_functions/)",
      "type": "string"
    },
    "bgwriter_delay": {
      "title": "bgwriter_delay",
      "description": "Background writer sleep time between rounds.\n\nMinimum: 10\n\nMaximum: 10000\n\nThanks to bgwriter autotuning, it should no longer be necessary for most users to touch the bgwriter settings.\nOnly modify these if you have a demonstrated issue shown by checkpoint spikes and monitoring pg_stat_bgwriter.  Laptop PostgreSQL users may want to increase bgwriter_delay to 60s to decrease I/O activity, since it is no longer possible to turn the bgwriter off.\n\nsee <https://postgresqlco.nf/doc/en/param/bgwriter_delay/>",
      "markdownDescription": "Background writer sleep time between rounds.\n\nMinimum: 10\n\nMaximum: 10000\n\nThanks to bgwriter autotuning, it should no longer be necessary for most users to touch the bgwriter settings.\nOnly modify these if you have a demonstrated issue shown by checkpoint spikes and monitoring pg_stat_bgwriter.  Laptop PostgreSQL users may want to increase bgwriter_delay to 60s to decrease I/O activity, since it is no longer possible to turn the bgwriter off.\n\nsee [bgwriter_delay documentation](https://postgresqlco.nf/doc/en/param/bgwriter_delay/)",
      "type": "string",
      "examples": [
        "200"
      ]
    },
    "bgwriter_flush_after": {
      "title": "bgwriter_flush_after",
      "description": "Number of pages after which previously performed writes are flushed to disk.\n\nMinimum: 0\n\nMaximum: 256\n\nUnless you have time to tune memory flushing behavior and test for improvements/regressions\n\nsee <https://postgresqlco.nf/doc/en/param/bgwriter_flush_after/>",
      "markdownDescription": "Number of pages after which previously performed writes are flushed to disk.\n\nMinimum: 0\n\nMaximum: 256\n\nUnless you have time to tune memory flushing behavior and test for improvements/regressions\n\nsee [bgwriter_flush_after documentation](https://postgresqlco.nf/doc/en/param/bgwriter_flush_after/)",
      "type": "string",
      "examples": [
        "64"
      ]
    },
    "bgwriter_lru_maxpages": {
      "title": "bgwriter_lru_maxpages",
      "description": "Background writer maximum number of LRU pages to flush per round.\n\nMinimum: 0\n\nMaximum: 1073741823\n\nsee <https://postgresqlco.nf/doc/en/param/bgwriter_lru_maxpages/>",
      "markdownDescription": "Background writer maximum number of LRU pages to flush per round.\n\nMinimum: 0\n\nMaximum: 1073741823\n\nsee [bgwriter_lru_maxpages documentation](https://postgresqlco.nf/doc/en/param/bgwriter_lru_maxpages/)",
      "type": "string",
      "examples": [
        "100"
      ]
    },
    "bgwriter_lru_multiplier": {
      "title": "bgwriter_lru_multiplier",
      "description": "Multiple of the average buffer usage to free per round.\n\nMinimum: 0\n\nMaximum: 10\n\nsee <https://postgresqlco.nf/doc/en/param/bgwriter_lru_multiplier/>",
      "markdownDescription": "Multiple of the average buffer usage to free per round.\n\nMinimum: 0\n\nMaximum: 10\n\nsee [bgwriter_lru_multiplier documentation](https://postgresqlco.nf/doc/en/param/bgwriter_lru_multiplier/)",
      "type": "string",
      "examples": [
        "2"
      ]
    },
    "block_size": {
      "title": "block_size",
      "description": "Shows the size of a disk block.\n\nMinimum: 8192\n\nMaximum: 8192\n\nInformational: lets you know of non-standard installation or compile options.\n\nsee <https://postgresqlco.nf/doc/en/param/block_size/>",
      "markdownDescription": "Shows the size of a disk block.\n\nMinimum: 8192\n\nMaximum: 8192\n\nInformational: lets you know of non-standard installation or compile options.\n\nsee [block_size documentation](https://postgresqlco.nf/doc/en/param/block_size/)",
      "type": "string",
      "examples": [
        "8192"
      ]
    },
    "bonjour": {
      "title": "bonjour",
      "description": "Enables advertising the server via Bonjour.\n\nSet to \"on\" if you've compiled in Bonjour support and have an application which works by autodiscovery of Postgres.\nOtherwise, leave off.\n\nsee <https://postgresqlco.nf/doc/en/param/bonjour/>",
      "markdownDescription": "Enables advertising the server via Bonjour.\n\nSet to \"on\" if you've compiled in Bonjour support and have an application which works by autodiscovery of Postgres.\nOtherwise, leave off.\n\nsee [bonjour documentation](https://postgresqlco.nf/doc/en/param/bonjour/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "bonjour_name": {
      "title": "bonjour_name",
      "description": "Sets the Bonjour service name.\n\nBonjour support must be compiled in and activated on the host machine to be live.\nYou'll want alternate names if you have several instances of PostgreSQL on the same machine.\n\nsee <https://postgresqlco.nf/doc/en/param/bonjour_name/>",
      "markdownDescription": "Sets the Bonjour service name.\n\nBonjour support must be compiled in and activated on the host machine to be live.\nYou'll want alternate names if you have several instances of PostgreSQL on the same machine.\n\nsee [bonjour_name documentation](https://postgresqlco.nf/doc/en/param/bonjour_name/)",
      "type": "string"
    },
    "bytea_output": {
      "title": "bytea_output",
      "description": "Sets the output format for bytea.\n\nsee <https://postgresqlco.nf/doc/en/param/bytea_output/>",
      "markdownDescription": "Sets the output format for bytea.\n\nsee [bytea_output documentation](https://postgresqlco.nf/doc/en/param/bytea_output/)",
      "type": "string",
      "examples": [
        "hex"
      ],
      "enum": [
        "escape",
        "hex"
      ]
    },
    "check_function_bodies": {
      "title": "check_function_bodies",
      "description": "Check routine bodies during CREATE FUNCTION and CREATE PROCEDURE.\n\nYou only really want to turn this off to resolve circular dependancies, and that can be done on a per-session basis.\nIn general, checking for syntax errors in PL/pgSQL functions is a very good idea.\n\nsee <https://postgresqlco.nf/doc/en/param/check_function_bodies/>",
      "markdownDescription": "Check routine bodies during CREATE FUNCTION and CREATE PROCEDURE.\n\nYou only really want to turn this off to resolve circular dependancies, and that can be done on a per-session basis.\nIn general, checking for syntax errors in PL/pgSQL functions is a very good idea.\n\nsee [check_function_bodies documentation](https://postgresqlco.nf/doc/en/param/check_function_bodies/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "checkpoint_completion_target": {
      "title": "checkpoint_completion_target",
      "description": "Time spent flushing dirty buffers during checkpoint, as fraction of checkpoint interval.\n\nMinimum: 0\n\nMaximum: 1\n\nDefines the fraction of one checkpoint_interval over which to spread checkpoints. The default value works for most users.\n\nsee <https://postgresqlco.nf/doc/en/param/checkpoint_completion_target/>",
      "markdownDescription": "Time spent flushing dirty buffers during checkpoint, as fraction of checkpoint interval.\n\nMinimum: 0\n\nMaximum: 1\n\nDefines the fraction of one checkpoint_interval over which to spread checkpoints. The default value works for most users.\n\nsee [checkpoint_completion_target documentation](https://postgresqlco.nf/doc/en/param/checkpoint_completion_target/)",
      "type": "string",
      "examples": [
        "0.9"
      ]
    },
    "checkpoint_flush_after": {
      "title": "checkpoint_flush_after",
      "description": "Number of pages after which previously performed writes are flushed to disk.\n\nMinimum: 0\n\nMaximum: 256\n\nUnless you have time to tune memory flushing behavior and test for improvements/regressions\n\nsee <https://postgresqlco.nf/doc/en/param/checkpoint_flush_after/>",
      "markdownDescription": "Number of pages after which previously performed writes are flushed to disk.\n\nMinimum: 0\n\nMaximum: 256\n\nUnless you have time to tune memory flushing behavior and test for improvements/regressions\n\nsee [checkpoint_flush_after documentation](https://postgresqlco.nf/doc/en/param/checkpoint_flush_after/)",
      "type": "string",
      "examples": [
        "32"
      ]
    },
    "checkpoint_timeout": {
      "title": "checkpoint_timeout",
      "description": "Sets the maximum time between automatic WAL checkpoints.\n\nMinimum: 30\n\nMaximum: 86400\n\nIf you do really large ETL batches, you may want to increase this setting to the maximum length of a batch run.\n\nsee <https://postgresqlco.nf/doc/en/param/checkpoint_timeout/>",
      "markdownDescription": "Sets the maximum time between automatic WAL checkpoints.\n\nMinimum: 30\n\nMaximum: 86400\n\nIf you do really large ETL batches, you may want to increase this setting to the maximum length of a batch run.\n\nsee [checkpoint_timeout documentation](https://postgresqlco.nf/doc/en/param/checkpoint_timeout/)",
      "type": "string",
      "examples": [
        "300"
      ]
    },
    "checkpoint_warning": {
      "title": "checkpoint_warning",
      "description": "Enables warnings if checkpoint segments are filled more frequently than this.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee <https://postgresqlco.nf/doc/en/param/checkpoint_warning/>",
      "markdownDescription": "Enables warnings if checkpoint segments are filled more frequently than this.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee [checkpoint_warning documentation](https://postgresqlco.nf/doc/en/param/checkpoint_warning/)",
      "type": "string",
      "examples": [
        "30"
      ]
    },
    "client_connection_check_interval": {
      "title": "client_connection_check_interval",
      "description": "Sets the time interval between checks for disconnection while running queries.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee <https://postgresqlco.nf/doc/en/param/client_connection_check_interval/>",
      "markdownDescription": "Sets the time interval between checks for disconnection while running queries.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee [client_connection_check_interval documentation](https://postgresqlco.nf/doc/en/param/client_connection_check_interval/)",
      "type": "string",
      "examples": [
        "0"
      ]
    },
    "client_encoding": {
      "title": "client_encoding",
      "description": "Sets the client's character set encoding.\n\nShould match server_encoding unless you have a really good reason why not.\n\nsee <https://postgresqlco.nf/doc/en/param/client_encoding/>",
      "markdownDescription": "Sets the client's character set encoding.\n\nShould match server_encoding unless you have a really good reason why not.\n\nsee [client_encoding documentation](https://postgresqlco.nf/doc/en/param/client_encoding/)",
      "type": "string",
      "examples": [
        "UTF8"
      ]
    },
    "client_min_messages": {
      "title": "client_min_messages",
      "description": "Sets the message levels that are sent to the client.\n\nUnless doing interactive debugging, then you want it set to DEBUG1-5.\nIf you have a client application which is confused by some of PostgreSQL's WARNINGs then you may want to set this to ERROR.\n\nsee <https://postgresqlco.nf/doc/en/param/client_min_messages/>",
      "markdownDescription": "Sets the message levels that are sent to the client.\n\nUnless doing interactive debugging, then you want it set to DEBUG1-5.\nIf you have a client application which is confused by some of PostgreSQL's WARNINGs then you may want to set this to ERROR.\n\nsee [client_min_messages documentation](https://postgresqlco.nf/doc/en/param/client_min_messages/)",
      "type": "string",
      "examples": [
        "notice"
      ],
      "enum": [
        "debug5",
        "debug4",
        "debug3",
        "debug2",
        "debug1",
        "log",
        "notice",
        "warning",
        "error"
      ]
    },
    "cluster_name": {
      "title": "cluster_name",
      "description": "Sets the name of the cluster, which is included in the process title.\n\nShould be \"postgres-1\" or something else identifiable as this specific postmaster.\n\nsee <https://postgresqlco.nf/doc/en/param/cluster_name/>",
      "markdownDescription": "Sets the name of the cluster, which is included in the process title.\n\nShould be \"postgres-1\" or something else identifiable as this specific postmaster.\n\nsee [cluster_name documentation](https://postgresqlco.nf/doc/en/param/cluster_name/)",
      "type": "string",
      "examples": [
        "pg"
      ]
    },
    "commit_delay": {
      "title": "commit_delay",
      "description": "Sets the delay in microseconds between transaction commit and flushing WAL to disk.\n\nMinimum: 0\n\nMaximum: 100000\n\nA primitive form of group commit without asynchronicity.\nPerformance testing of this is very mixed; only set to non-zero if you have time to test the specific performance impact on your workload.  Reasonable values are 200 to 1000.\n\nsee <https://postgresqlco.nf/doc/en/param/commit_delay/>",
      "markdownDescription": "Sets the delay in microseconds between transaction commit and flushing WAL to disk.\n\nMinimum: 0\n\nMaximum: 100000\n\nA primitive form of group commit without asynchronicity.\nPerformance testing of this is very mixed; only set to non-zero if you have time to test the specific performance impact on your workload.  Reasonable values are 200 to 1000.\n\nsee [commit_delay documentation](https://postgresqlco.nf/doc/en/param/commit_delay/)",
      "type": "string",
      "examples": [
        "0"
      ]
    },
    "commit_siblings": {
      "title": "commit_siblings",
      "description": "Sets the minimum concurrent open transactions before performing commit_delay.\n\nMinimum: 0\n\nMaximum: 1000\n\nSee commit_delay.\nReasonable values are 3 to 8\n\nsee <https://postgresqlco.nf/doc/en/param/commit_siblings/>",
      "markdownDescription": "Sets the minimum concurrent open transactions before performing commit_delay.\n\nMinimum: 0\n\nMaximum: 1000\n\nSee commit_delay.\nReasonable values are 3 to 8\n\nsee [commit_siblings documentation](https://postgresqlco.nf/doc/en/param/commit_siblings/)",
      "type": "string",
      "examples": [
        "5"
      ]
    },
    "compute_query_id": {
      "title": "compute_query_id",
      "description": "Compute query identifiers.\n\nsee <https://postgresqlco.nf/doc/en/param/compute_query_id/>",
      "markdownDescription": "Compute query identifiers.\n\nsee [compute_query_id documentation](https://postgresqlco.nf/doc/en/param/compute_query_id/)",
      "type": "string",
      "examples": [
        "auto"
      ],
      "enum": [
        "auto",
        "regress",
        "on",
        "off"
      ]
    },
    "config_file": {
      "title": "config_file",
      "description": "Sets the server's main configuration file.\n\nCan only be changed via command-line switch for obvious reasons.\nUseful primarily for testing different configuration options, or for automated restart with different configuration options.\n\nsee <https://postgresqlco.nf/doc/en/param/config_file/>",
      "markdownDescription": "Sets the server's main configuration file.\n\nCan only be changed via command-line switch for obvious reasons.\nUseful primarily for testing different configuration options, or for automated restart with different configuration options.\n\nsee [config_file documentation](https://postgresqlco.nf/doc/en/param/config_file/)",
      "type": "string",
      "examples": [
        "/var/lib/postgresql/data/pgdata/postgresql.conf"
      ]
    },
    "constraint_exclusion": {
      "title": "constraint_exclusion",
      "description": "Enables the planner to use constraints to optimize queries.\n\nDefault of \"partition\" is fine for most users.\nSetting it to \"on\" can allow optimization of UNION queries as well, but deserves testing before production deployment.\n\nsee <https://postgresqlco.nf/doc/en/param/constraint_exclusion/>",
      "markdownDescription": "Enables the planner to use constraints to optimize queries.\n\nDefault of \"partition\" is fine for most users.\nSetting it to \"on\" can allow optimization of UNION queries as well, but deserves testing before production deployment.\n\nsee [constraint_exclusion documentation](https://postgresqlco.nf/doc/en/param/constraint_exclusion/)",
      "type": "string",
      "examples": [
        "partition"
      ],
      "enum": [
        "partition",
        "on",
        "off"
      ]
    },
    "cpu_index_tuple_cost": {
      "title": "cpu_index_tuple_cost",
      "description": "Sets the planner's estimate of the cost of processing each index entry during an index scan.\n\nMinimum: 0\n\nMaximum: 1.79769e+308\n\nDecrease this slightly to make your database favor indexes slightly more.\n\nsee <https://postgresqlco.nf/doc/en/param/cpu_index_tuple_cost/>",
      "markdownDescription": "Sets the planner's estimate of the cost of processing each index entry during an index scan.\n\nMinimum: 0\n\nMaximum: 1.79769e+308\n\nDecrease this slightly to make your database favor indexes slightly more.\n\nsee [cpu_index_tuple_cost documentation](https://postgresqlco.nf/doc/en/param/cpu_index_tuple_cost/)",
      "type": "string",
      "examples": [
        "0.005"
      ]
    },
    "cpu_operator_cost": {
      "title": "cpu_operator_cost",
      "description": "Sets the planner's estimate of the cost of processing each operator or function call.\n\nMinimum: 0\n\nMaximum: 1.79769e+308\n\nDecrease this slightly to make your database favor indexes slightly more.\n\nsee <https://postgresqlco.nf/doc/en/param/cpu_operator_cost/>",
      "markdownDescription": "Sets the planner's estimate of the cost of processing each operator or function call.\n\nMinimum: 0\n\nMaximum: 1.79769e+308\n\nDecrease this slightly to make your database favor indexes slightly more.\n\nsee [cpu_operator_cost documentation](https://postgresqlco.nf/doc/en/param/cpu_operator_cost/)",
      "type": "string",
      "examples": [
        "0.0025"
      ]
    },
    "cpu_tuple_cost": {
      "title": "cpu_tuple_cost",
      "description": "Sets the planner's estimate of the cost of processing each tuple (row).\n\nMinimum: 0\n\nMaximum: 1.79769e+308\n\nsee <https://postgresqlco.nf/doc/en/param/cpu_tuple_cost/>",
      "markdownDescription": "Sets the planner's estimate of the cost of processing each tuple (row).\n\nMinimum: 0\n\nMaximum: 1.79769e+308\n\nsee [cpu_tuple_cost documentation](https://postgresqlco.nf/doc/en/param/cpu_tuple_cost/)",
      "type": "string",
      "examples": [
        "0.01"
      ]
    },
    "cursor_tuple_fraction": {
      "title": "cursor_tuple_fraction",
      "description": "Sets the planner's estimate of the fraction of a cursor's rows that will be retrieved.\n\nMinimum: 0\n\nMaximum: 1\n\nIncrease this to 0.9 if most of the time you're using cursors to step through all of the rows of a query result.\n\nsee <https://postgresqlco.nf/doc/en/param/cursor_tuple_fraction/>",
      "markdownDescription": "Sets the planner's estimate of the fraction of a cursor's rows that will be retrieved.\n\nMinimum: 0\n\nMaximum: 1\n\nIncrease this to 0.9 if most of the time you're using cursors to step through all of the rows of a query result.\n\nsee [cursor_tuple_fraction documentation](https://postgresqlco.nf/doc/en/param/cursor_tuple_fraction/)",
      "type": "string",
      "examples": [
        "0.1"
      ]
    },
    "data_checksums": {
      "title": "data_checksums",
      "description": "Shows whether data checksums are turned on for this cluster.\n\nThis has to be set at initdb time, and does create a significant amount of extra I/O.\nHowever, it will save you from a corrupt database down the line, so if you're not performance-constrained, always use it.\n\nsee <https://postgresqlco.nf/doc/en/param/data_checksums/>",
      "markdownDescription": "Shows whether data checksums are turned on for this cluster.\n\nThis has to be set at initdb time, and does create a significant amount of extra I/O.\nHowever, it will save you from a corrupt database down the line, so if you're not performance-constrained, always use it.\n\nsee [data_checksums documentation](https://postgresqlco.nf/doc/en/param/data_checksums/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "data_directory": {
      "title": "data_directory",
      "description": "Sets the server's data directory.\n\nSupports the ability to distribute files according to sysadmin or operating system defined schemes, or for launching multiple restart instances using the same binaries.\nMost of the time, it's better to use configuration options to define these locations so that all PostgreSQL binaries default to the correct paths.\n\nsee <https://postgresqlco.nf/doc/en/param/data_directory/>",
      "markdownDescription": "Sets the server's data directory.\n\nSupports the ability to distribute files according to sysadmin or operating system defined schemes, or for launching multiple restart instances using the same binaries.\nMost of the time, it's better to use configuration options to define these locations so that all PostgreSQL binaries default to the correct paths.\n\nsee [data_directory documentation](https://postgresqlco.nf/doc/en/param/data_directory/)",
      "type": "string",
      "examples": [
        "/var/lib/postgresql/data/pgdata"
      ]
    },
    "data_directory_mode": {
      "title": "data_directory_mode",
      "description": "Shows the mode of the data directory.\n\nMinimum: 0\n\nMaximum: 511\n\nsee <https://postgresqlco.nf/doc/en/param/data_directory_mode/>",
      "markdownDescription": "Shows the mode of the data directory.\n\nMinimum: 0\n\nMaximum: 511\n\nsee [data_directory_mode documentation](https://postgresqlco.nf/doc/en/param/data_directory_mode/)",
      "type": "string",
      "examples": [
        "0700"
      ]
    },
    "data_sync_retry": {
      "title": "data_sync_retry",
      "description": "Whether to continue running after a failure to sync data files.\n\nsee <https://postgresqlco.nf/doc/en/param/data_sync_retry/>",
      "markdownDescription": "Whether to continue running after a failure to sync data files.\n\nsee [data_sync_retry documentation](https://postgresqlco.nf/doc/en/param/data_sync_retry/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "DateStyle": {
      "title": "DateStyle",
      "description": "Sets the display format for date and time values.\n\nShould be set according to the format in which you expect to receive date information.\n\nsee <https://postgresqlco.nf/doc/en/param/DateStyle/>",
      "markdownDescription": "Sets the display format for date and time values.\n\nShould be set according to the format in which you expect to receive date information.\n\nsee [DateStyle documentation](https://postgresqlco.nf/doc/en/param/DateStyle/)",
      "type": "string",
      "examples": [
        "ISO, MDY"
      ]
    },
    "db_user_namespace": {
      "title": "db_user_namespace",
      "description": "Enables per-database user names.\n\nThis setting is a hack to work around the lack of per-database users in PostgreSQL.\nUnless you desperately need it, avoid this setting as it will eventually be replaced by something more maintainable.\n\nsee <https://postgresqlco.nf/doc/en/param/db_user_namespace/>",
      "markdownDescription": "Enables per-database user names.\n\nThis setting is a hack to work around the lack of per-database users in PostgreSQL.\nUnless you desperately need it, avoid this setting as it will eventually be replaced by something more maintainable.\n\nsee [db_user_namespace documentation](https://postgresqlco.nf/doc/en/param/db_user_namespace/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "deadlock_timeout": {
      "title": "deadlock_timeout",
      "description": "Sets the time to wait on a lock before checking for deadlock.\n\nMinimum: 1\n\nMaximum: 2147483647\n\nDefault is fine, except when you are troubleshooting/monitoring locks.\nIn that case, you may want to lower it to as little as 50ms.\n\nsee <https://postgresqlco.nf/doc/en/param/deadlock_timeout/>",
      "markdownDescription": "Sets the time to wait on a lock before checking for deadlock.\n\nMinimum: 1\n\nMaximum: 2147483647\n\nDefault is fine, except when you are troubleshooting/monitoring locks.\nIn that case, you may want to lower it to as little as 50ms.\n\nsee [deadlock_timeout documentation](https://postgresqlco.nf/doc/en/param/deadlock_timeout/)",
      "type": "string",
      "examples": [
        "1000"
      ]
    },
    "debug_assertions": {
      "title": "debug_assertions",
      "description": "Shows whether the running server has assertion checks enabled.\n\nUsed for debugging PostgreSQL code problems; not for production use.\nRequires compile options.\n\nsee <https://postgresqlco.nf/doc/en/param/debug_assertions/>",
      "markdownDescription": "Shows whether the running server has assertion checks enabled.\n\nUsed for debugging PostgreSQL code problems; not for production use.\nRequires compile options.\n\nsee [debug_assertions documentation](https://postgresqlco.nf/doc/en/param/debug_assertions/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "debug_discard_caches": {
      "title": "debug_discard_caches",
      "description": "Aggressively flush system caches for debugging purposes.\n\nMinimum: 0\n\nMaximum: 0\n\nsee <https://postgresqlco.nf/doc/en/param/debug_discard_caches/>",
      "markdownDescription": "Aggressively flush system caches for debugging purposes.\n\nMinimum: 0\n\nMaximum: 0\n\nsee [debug_discard_caches documentation](https://postgresqlco.nf/doc/en/param/debug_discard_caches/)",
      "type": "string",
      "examples": [
        "0"
      ]
    },
    "debug_pretty_print": {
      "title": "debug_pretty_print",
      "description": "Indents parse and plan tree displays.\n\nFor debugging a testing machine.\nDo not set in production.\n\nsee <https://postgresqlco.nf/doc/en/param/debug_pretty_print/>",
      "markdownDescription": "Indents parse and plan tree displays.\n\nFor debugging a testing machine.\nDo not set in production.\n\nsee [debug_pretty_print documentation](https://postgresqlco.nf/doc/en/param/debug_pretty_print/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "debug_print_parse": {
      "title": "debug_print_parse",
      "description": "Logs each query's parse tree.\n\nFor debugging a testing machine.\nDo not set in production.\n\nsee <https://postgresqlco.nf/doc/en/param/debug_print_parse/>",
      "markdownDescription": "Logs each query's parse tree.\n\nFor debugging a testing machine.\nDo not set in production.\n\nsee [debug_print_parse documentation](https://postgresqlco.nf/doc/en/param/debug_print_parse/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "debug_print_plan": {
      "title": "debug_print_plan",
      "description": "Logs each query's execution plan.\n\nFor debugging a testing machine.\nDo not set in production.\n\nsee <https://postgresqlco.nf/doc/en/param/debug_print_plan/>",
      "markdownDescription": "Logs each query's execution plan.\n\nFor debugging a testing machine.\nDo not set in production.\n\nsee [debug_print_plan documentation](https://postgresqlco.nf/doc/en/param/debug_print_plan/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "debug_print_rewritten": {
      "title": "debug_print_rewritten",
      "description": "Logs each query's rewritten parse tree.\n\nFor debugging a testing machine.\nDo not set in production.\n\nsee <https://postgresqlco.nf/doc/en/param/debug_print_rewritten/>",
      "markdownDescription": "Logs each query's rewritten parse tree.\n\nFor debugging a testing machine.\nDo not set in production.\n\nsee [debug_print_rewritten documentation](https://postgresqlco.nf/doc/en/param/debug_print_rewritten/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "default_statistics_target": {
      "title": "default_statistics_target",
      "description": "Sets the default statistics target.\n\nMinimum: 1\n\nMaximum: 10000\n\nMost applications can use the default of 100.\n  For very small/simple databases, decrease to 10 or 50.  Data warehousing applications generally need to use 500 to 1000.  Otherwise, increase statistics targets on a per-column basis.\n\nsee <https://postgresqlco.nf/doc/en/param/default_statistics_target/>",
      "markdownDescription": "Sets the default statistics target.\n\nMinimum: 1\n\nMaximum: 10000\n\nMost applications can use the default of 100.\n  For very small/simple databases, decrease to 10 or 50.  Data warehousing applications generally need to use 500 to 1000.  Otherwise, increase statistics targets on a per-column basis.\n\nsee [default_statistics_target documentation](https://postgresqlco.nf/doc/en/param/default_statistics_target/)",
      "type": "string",
      "examples": [
        "100"
      ]
    },
    "default_table_access_method": {
      "title": "default_table_access_method",
      "description": "Sets the default table access method for new tables.\n\nsee <https://postgresqlco.nf/doc/en/param/default_table_access_method/>",
      "markdownDescription": "Sets the default table access method for new tables.\n\nsee [default_table_access_method documentation](https://postgresqlco.nf/doc/en/param/default_table_access_method/)",
      "type": "string",
      "examples": [
        "heap"
      ]
    },
    "default_tablespace": {
      "title": "default_tablespace",
      "description": "Sets the default tablespace to create tables and indexes in.\n\nChange this if you want a different tablespace for user-created tables.\nGenerally, better set on a ROLE or session basis.\n\nsee <https://postgresqlco.nf/doc/en/param/default_tablespace/>",
      "markdownDescription": "Sets the default tablespace to create tables and indexes in.\n\nChange this if you want a different tablespace for user-created tables.\nGenerally, better set on a ROLE or session basis.\n\nsee [default_tablespace documentation](https://postgresqlco.nf/doc/en/param/default_tablespace/)",
      "type": "string"
    },
    "default_text_search_config": {
      "title": "default_text_search_config",
      "description": "Sets default text search configuration.\n\nSet to the most common language used by the users, so that they don't have to pass the language parameter when calling TSearch functions.\n\nsee <https://postgresqlco.nf/doc/en/param/default_text_search_config/>",
      "markdownDescription": "Sets default text search configuration.\n\nSet to the most common language used by the users, so that they don't have to pass the language parameter when calling TSearch functions.\n\nsee [default_text_search_config documentation](https://postgresqlco.nf/doc/en/param/default_text_search_config/)",
      "type": "string",
      "examples": [
        "pg_catalog.english"
      ]
    },
    "default_toast_compression": {
      "title": "default_toast_compression",
      "description": "Sets the default compression method for compressible values.\n\nsee <https://postgresqlco.nf/doc/en/param/default_toast_compression/>",
      "markdownDescription": "Sets the default compression method for compressible values.\n\nsee [default_toast_compression documentation](https://postgresqlco.nf/doc/en/param/default_toast_compression/)",
      "type": "string",
      "examples": [
        "pglz"
      ],
      "enum": [
        "pglz",
        "lz4"
      ]
    },
    "default_transaction_deferrable": {
      "title": "default_transaction_deferrable",
      "description": "Sets the default deferrable status of new transactions.\n\nIf you use serializable transactions by default, it may be also useful to set this in order to decrease the overhead of long-running transactions.\n\nsee <https://postgresqlco.nf/doc/en/param/default_transaction_deferrable/>",
      "markdownDescription": "Sets the default deferrable status of new transactions.\n\nIf you use serializable transactions by default, it may be also useful to set this in order to decrease the overhead of long-running transactions.\n\nsee [default_transaction_deferrable documentation](https://postgresqlco.nf/doc/en/param/default_transaction_deferrable/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "default_transaction_isolation": {
      "title": "default_transaction_isolation",
      "description": "Sets the transaction isolation level of each new transaction.\n\nRelates to transaction_isolation.\nBetter set on a session or transaction basis as transaction_isolation in order to support specific types of transaction conflict resolution.\n\nsee <https://postgresqlco.nf/doc/en/param/default_transaction_isolation/>",
      "markdownDescription": "Sets the transaction isolation level of each new transaction.\n\nRelates to transaction_isolation.\nBetter set on a session or transaction basis as transaction_isolation in order to support specific types of transaction conflict resolution.\n\nsee [default_transaction_isolation documentation](https://postgresqlco.nf/doc/en/param/default_transaction_isolation/)",
      "type": "string",
      "examples": [
        "read committed"
      ],
      "enum": [
        "serializable",
        "\"repeatable read\"",
        "\"read committed\"",
        "\"read uncommitted\""
      ]
    },
    "default_transaction_read_only": {
      "title": "default_transaction_read_only",
      "description": "Sets the default read-only status of new transactions.\n\nThis setting is mainly useful for preventing yourself from accidentally changing data.\nIt is not really a security setting, as anyone can revoke it on their own session.  Better set on a session or ROLE level.  Will show up as TRUE if you are on a replication standby.\n\nsee <https://postgresqlco.nf/doc/en/param/default_transaction_read_only/>",
      "markdownDescription": "Sets the default read-only status of new transactions.\n\nThis setting is mainly useful for preventing yourself from accidentally changing data.\nIt is not really a security setting, as anyone can revoke it on their own session.  Better set on a session or ROLE level.  Will show up as TRUE if you are on a replication standby.\n\nsee [default_transaction_read_only documentation](https://postgresqlco.nf/doc/en/param/default_transaction_read_only/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "dynamic_library_path": {
      "title": "dynamic_library_path",
      "description": "Sets the path for dynamically loadable modules.\n\nPrimarily useful if you've written lots of custom C libraries for your installation and want to organize them into custom directories.\n\nsee <https://postgresqlco.nf/doc/en/param/dynamic_library_path/>",
      "markdownDescription": "Sets the path for dynamically loadable modules.\n\nPrimarily useful if you've written lots of custom C libraries for your installation and want to organize them into custom directories.\n\nsee [dynamic_library_path documentation](https://postgresqlco.nf/doc/en/param/dynamic_library_path/)",
      "type": "string",
      "examples": [
        "$libdir"
      ]
    },
    "dynamic_shared_memory_type": {
      "title": "dynamic_shared_memory_type",
      "description": "Selects the dynamic shared memory implementation used.\n\nsee <https://postgresqlco.nf/doc/en/param/dynamic_shared_memory_type/>",
      "markdownDescription": "Selects the dynamic shared memory implementation used.\n\nsee [dynamic_shared_memory_type documentation](https://postgresqlco.nf/doc/en/param/dynamic_shared_memory_type/)",
      "type": "string",
      "examples": [
        "posix"
      ],
      "enum": [
        "posix",
        "sysv",
        "mmap"
      ]
    },
    "effective_cache_size": {
      "title": "effective_cache_size",
      "description": "Sets the planner's assumption about the total size of the data caches.\n\nMinimum: 1\n\nMaximum: 2147483647\n\nTells the PostgreSQL query planner how much RAM is estimated to be available for caching data, in both shared_buffers and in the filesystem cache. This setting just helps the planner make good cost estimates; it does not actually allocate the memory.\n\nsee <https://postgresqlco.nf/doc/en/param/effective_cache_size/>",
      "markdownDescription": "Sets the planner's assumption about the total size of the data caches.\n\nMinimum: 1\n\nMaximum: 2147483647\n\nTells the PostgreSQL query planner how much RAM is estimated to be available for caching data, in both shared_buffers and in the filesystem cache. This setting just helps the planner make good cost estimates; it does not actually allocate the memory.\n\nsee [effective_cache_size documentation](https://postgresqlco.nf/doc/en/param/effective_cache_size/)",
      "type": "string",
      "examples": [
        "524288"
      ]
    },
    "effective_io_concurrency": {
      "title": "effective_io_concurrency",
      "description": "Number of simultaneous requests that can be handled efficiently by the disk subsystem.\n\nMinimum: 0\n\nMaximum: 1000\n\nSet to the number of disks in your RAID array or number of I/O channels.\nAvailable only for platforms with posix_fadvise support (i.e. Linux).  Currently only affects the execution of parallel bitmapscan, but might affect other I/O operations in future versions.\n\nsee <https://postgresqlco.nf/doc/en/param/effective_io_concurrency/>",
      "markdownDescription": "Number of simultaneous requests that can be handled efficiently by the disk subsystem.\n\nMinimum: 0\n\nMaximum: 1000\n\nSet to the number of disks in your RAID array or number of I/O channels.\nAvailable only for platforms with posix_fadvise support (i.e. Linux).  Currently only affects the execution of parallel bitmapscan, but might affect other I/O operations in future versions.\n\nsee [effective_io_concurrency documentation](https://postgresqlco.nf/doc/en/param/effective_io_concurrency/)",
      "type": "string",
      "examples": [
        "1"
      ]
    },
    "enable_async_append": {
      "title": "enable_async_append",
      "description": "Enables the planner's use of async append plans.\n\nsee <https://postgresqlco.nf/doc/en/param/enable_async_append/>",
      "markdownDescription": "Enables the planner's use of async append plans.\n\nsee [enable_async_append documentation](https://postgresqlco.nf/doc/en/param/enable_async_append/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "enable_bitmapscan": {
      "title": "enable_bitmapscan",
      "description": "Enables the planner's use of bitmap-scan plans.\n\nFor interactive session use only when troubleshooting queries.\n\nsee <https://postgresqlco.nf/doc/en/param/enable_bitmapscan/>",
      "markdownDescription": "Enables the planner's use of bitmap-scan plans.\n\nFor interactive session use only when troubleshooting queries.\n\nsee [enable_bitmapscan documentation](https://postgresqlco.nf/doc/en/param/enable_bitmapscan/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "enable_gathermerge": {
      "title": "enable_gathermerge",
      "description": "Enables the planner's use of gather merge plans.\n\nsee <https://postgresqlco.nf/doc/en/param/enable_gathermerge/>",
      "markdownDescription": "Enables the planner's use of gather merge plans.\n\nsee [enable_gathermerge documentation](https://postgresqlco.nf/doc/en/param/enable_gathermerge/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "enable_hashagg": {
      "title": "enable_hashagg",
      "description": "Enables the planner's use of hashed aggregation plans.\n\nFor interactive session use only when troubleshooting queries.\n\nsee <https://postgresqlco.nf/doc/en/param/enable_hashagg/>",
      "markdownDescription": "Enables the planner's use of hashed aggregation plans.\n\nFor interactive session use only when troubleshooting queries.\n\nsee [enable_hashagg documentation](https://postgresqlco.nf/doc/en/param/enable_hashagg/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "enable_hashjoin": {
      "title": "enable_hashjoin",
      "description": "Enables the planner's use of hash join plans.\n\nFor interactive session use only when troubleshooting queries.\n\nsee <https://postgresqlco.nf/doc/en/param/enable_hashjoin/>",
      "markdownDescription": "Enables the planner's use of hash join plans.\n\nFor interactive session use only when troubleshooting queries.\n\nsee [enable_hashjoin documentation](https://postgresqlco.nf/doc/en/param/enable_hashjoin/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "enable_incremental_sort": {
      "title": "enable_incremental_sort",
      "description": "Enables the planner's use of incremental sort steps.\n\nsee <https://postgresqlco.nf/doc/en/param/enable_incremental_sort/>",
      "markdownDescription": "Enables the planner's use of incremental sort steps.\n\nsee [enable_incremental_sort documentation](https://postgresqlco.nf/doc/en/param/enable_incremental_sort/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "enable_indexonlyscan": {
      "title": "enable_indexonlyscan",
      "description": "Enables the planner's use of index-only-scan plans.\n\nsee <https://postgresqlco.nf/doc/en/param/enable_indexonlyscan/>",
      "markdownDescription": "Enables the planner's use of index-only-scan plans.\n\nsee [enable_indexonlyscan documentation](https://postgresqlco.nf/doc/en/param/enable_indexonlyscan/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "enable_indexscan": {
      "title": "enable_indexscan",
      "description": "Enables the planner's use of index-scan plans.\n\nFor interactive session use only when troubleshooting queries.\n\nsee <https://postgresqlco.nf/doc/en/param/enable_indexscan/>",
      "markdownDescription": "Enables the planner's use of index-scan plans.\n\nFor interactive session use only when troubleshooting queries.\n\nsee [enable_indexscan documentation](https://postgresqlco.nf/doc/en/param/enable_indexscan/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "enable_material": {
      "title": "enable_material",
      "description": "Enables the planner's use of materialization.\n\nFor interactive session use only when troubleshooting queries.\n\nsee <https://postgresqlco.nf/doc/en/param/enable_material/>",
      "markdownDescription": "Enables the planner's use of materialization.\n\nFor interactive session use only when troubleshooting queries.\n\nsee [enable_material documentation](https://postgresqlco.nf/doc/en/param/enable_material/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "enable_memoize": {
      "title": "enable_memoize",
      "description": "Enables the planner's use of memoization.\n\nsee <https://postgresqlco.nf/doc/en/param/enable_memoize/>",
      "markdownDescription": "Enables the planner's use of memoization.\n\nsee [enable_memoize documentation](https://postgresqlco.nf/doc/en/param/enable_memoize/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "enable_mergejoin": {
      "title": "enable_mergejoin",
      "description": "Enables the planner's use of merge join plans.\n\nFor interactive session use only when troubleshooting queries.\n\nsee <https://postgresqlco.nf/doc/en/param/enable_mergejoin/>",
      "markdownDescription": "Enables the planner's use of merge join plans.\n\nFor interactive session use only when troubleshooting queries.\n\nsee [enable_mergejoin documentation](https://postgresqlco.nf/doc/en/param/enable_mergejoin/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "enable_nestloop": {
      "title": "enable_nestloop",
      "description": "Enables the planner's use of nested-loop join plans.\n\nFor interactive session use only when troubleshooting queries.\n\nsee <https://postgresqlco.nf/doc/en/param/enable_nestloop/>",
      "markdownDescription": "Enables the planner's use of nested-loop join plans.\n\nFor interactive session use only when troubleshooting queries.\n\nsee [enable_nestloop documentation](https://postgresqlco.nf/doc/en/param/enable_nestloop/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "enable_parallel_append": {
      "title": "enable_parallel_append",
      "description": "Enables the planner's use of parallel append plans.\n\nsee <https://postgresqlco.nf/doc/en/param/enable_parallel_append/>",
      "markdownDescription": "Enables the planner's use of parallel append plans.\n\nsee [enable_parallel_append documentation](https://postgresqlco.nf/doc/en/param/enable_parallel_append/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "enable_parallel_hash": {
      "title": "enable_parallel_hash",
      "description": "Enables the planner's use of parallel hash plans.\n\nsee <https://postgresqlco.nf/doc/en/param/enable_parallel_hash/>",
      "markdownDescription": "Enables the planner's use of parallel hash plans.\n\nsee [enable_parallel_hash documentation](https://postgresqlco.nf/doc/en/param/enable_parallel_hash/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "enable_partition_pruning": {
      "title": "enable_partition_pruning",
      "description": "Enables plan-time and execution-time partition pruning.\n\nsee <https://postgresqlco.nf/doc/en/param/enable_partition_pruning/>",
      "markdownDescription": "Enables plan-time and execution-time partition pruning.\n\nsee [enable_partition_pruning documentation](https://postgresqlco.nf/doc/en/param/enable_partition_pruning/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "enable_partitionwise_aggregate": {
      "title": "enable_partitionwise_aggregate",
      "description": "Enables partitionwise aggregation and grouping.\n\nsee <https://postgresqlco.nf/doc/en/param/enable_partitionwise_aggregate/>",
      "markdownDescription": "Enables partitionwise aggregation and grouping.\n\nsee [enable_partitionwise_aggregate documentation](https://postgresqlco.nf/doc/en/param/enable_partitionwise_aggregate/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "enable_partitionwise_join": {
      "title": "enable_partitionwise_join",
      "description": "Enables partitionwise join.\n\nsee <https://postgresqlco.nf/doc/en/param/enable_partitionwise_join/>",
      "markdownDescription": "Enables partitionwise join.\n\nsee [enable_partitionwise_join documentation](https://postgresqlco.nf/doc/en/param/enable_partitionwise_join/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "enable_seqscan": {
      "title": "enable_seqscan",
      "description": "Enables the planner's use of sequential-scan plans.\n\nFor interactive session use only when troubleshooting queries.\n\nsee <https://postgresqlco.nf/doc/en/param/enable_seqscan/>",
      "markdownDescription": "Enables the planner's use of sequential-scan plans.\n\nFor interactive session use only when troubleshooting queries.\n\nsee [enable_seqscan documentation](https://postgresqlco.nf/doc/en/param/enable_seqscan/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "enable_sort": {
      "title": "enable_sort",
      "description": "Enables the planner's use of explicit sort steps.\n\nFor interactive session use only when troubleshooting queries.\n\nsee <https://postgresqlco.nf/doc/en/param/enable_sort/>",
      "markdownDescription": "Enables the planner's use of explicit sort steps.\n\nFor interactive session use only when troubleshooting queries.\n\nsee [enable_sort documentation](https://postgresqlco.nf/doc/en/param/enable_sort/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "enable_tidscan": {
      "title": "enable_tidscan",
      "description": "Enables the planner's use of TID scan plans.\n\nFor interactive session use only when troubleshooting queries.\n\nsee <https://postgresqlco.nf/doc/en/param/enable_tidscan/>",
      "markdownDescription": "Enables the planner's use of TID scan plans.\n\nFor interactive session use only when troubleshooting queries.\n\nsee [enable_tidscan documentation](https://postgresqlco.nf/doc/en/param/enable_tidscan/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "escape_string_warning": {
      "title": "escape_string_warning",
      "description": "Warn about backslash escapes in ordinary string literals.\n\nUseful for providing warnings for interpreted-language applications which may be engaging in unsafe string escape behavior.\nUnless you are currently porting or upgrading such an application, though, these warnings are not useful and should be turned off.\n\nsee <https://postgresqlco.nf/doc/en/param/escape_string_warning/>",
      "markdownDescription": "Warn about backslash escapes in ordinary string literals.\n\nUseful for providing warnings for interpreted-language applications which may be engaging in unsafe string escape behavior.\nUnless you are currently porting or upgrading such an application, though, these warnings are not useful and should be turned off.\n\nsee [escape_string_warning documentation](https://postgresqlco.nf/doc/en/param/escape_string_warning/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "event_source": {
      "title": "event_source",
      "description": "Sets the application name used to identify PostgreSQL messages in the event log.\n\nShould be \"postgres-1\" or something else identifiable as this specific postmaster.\n\nsee <https://postgresqlco.nf/doc/en/param/event_source/>",
      "markdownDescription": "Sets the application name used to identify PostgreSQL messages in the event log.\n\nShould be \"postgres-1\" or something else identifiable as this specific postmaster.\n\nsee [event_source documentation](https://postgresqlco.nf/doc/en/param/event_source/)",
      "type": "string",
      "examples": [
        "PostgreSQL"
      ]
    },
    "exit_on_error": {
      "title": "exit_on_error",
      "description": "Terminate session on any error.\n\nsee <https://postgresqlco.nf/doc/en/param/exit_on_error/>",
      "markdownDescription": "Terminate session on any error.\n\nsee [exit_on_error documentation](https://postgresqlco.nf/doc/en/param/exit_on_error/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "extension_destdir": {
      "title": "extension_destdir",
      "description": "Path to prepend for extension loading\n\nsee <https://postgresqlco.nf/doc/en/param/extension_destdir/>",
      "markdownDescription": "Path to prepend for extension loading\n\nsee [extension_destdir documentation](https://postgresqlco.nf/doc/en/param/extension_destdir/)",
      "type": "string"
    },
    "external_pid_file": {
      "title": "external_pid_file",
      "description": "Writes the postmaster PID to the specified file.\n\nCreates an extra copy of the process ID.\nUsed for server administration tools which need a copy of the process ID in a specific directory.\n\nsee <https://postgresqlco.nf/doc/en/param/external_pid_file/>",
      "markdownDescription": "Writes the postmaster PID to the specified file.\n\nCreates an extra copy of the process ID.\nUsed for server administration tools which need a copy of the process ID in a specific directory.\n\nsee [external_pid_file documentation](https://postgresqlco.nf/doc/en/param/external_pid_file/)",
      "type": "string"
    },
    "extra_float_digits": {
      "title": "extra_float_digits",
      "description": "Sets the number of digits displayed for floating-point values.\n\nMinimum: -15\n\nMaximum: 3\n\nOnly significant for applications which do a lot of float calculations, like scientific databases.\n\nsee <https://postgresqlco.nf/doc/en/param/extra_float_digits/>",
      "markdownDescription": "Sets the number of digits displayed for floating-point values.\n\nMinimum: -15\n\nMaximum: 3\n\nOnly significant for applications which do a lot of float calculations, like scientific databases.\n\nsee [extra_float_digits documentation](https://postgresqlco.nf/doc/en/param/extra_float_digits/)",
      "type": "string",
      "examples": [
        "1"
      ]
    },
    "force_parallel_mode": {
      "title": "force_parallel_mode",
      "description": "Forces use of parallel query facilities.\n\nsee <https://postgresqlco.nf/doc/en/param/force_parallel_mode/>",
      "markdownDescription": "Forces use of parallel query facilities.\n\nsee [force_parallel_mode documentation](https://postgresqlco.nf/doc/en/param/force_parallel_mode/)",
      "type": "string",
      "examples": [
        "off"
      ],
      "enum": [
        "off",
        "on",
        "regress"
      ]
    },
    "from_collapse_limit": {
      "title": "from_collapse_limit",
      "description": "Sets the FROM-list size beyond which subqueries are not collapsed.\n\nMinimum: 1\n\nMaximum: 2147483647\n\nWhile it's probably true that newer CPUs could support higher collapse_limits, there's not much incremental benefit to just raising either collapse_limit to 10 or 11.\n\nsee <https://postgresqlco.nf/doc/en/param/from_collapse_limit/>",
      "markdownDescription": "Sets the FROM-list size beyond which subqueries are not collapsed.\n\nMinimum: 1\n\nMaximum: 2147483647\n\nWhile it's probably true that newer CPUs could support higher collapse_limits, there's not much incremental benefit to just raising either collapse_limit to 10 or 11.\n\nsee [from_collapse_limit documentation](https://postgresqlco.nf/doc/en/param/from_collapse_limit/)",
      "type": "string",
      "examples": [
        "8"
      ]
    },
    "fsync": {
      "title": "fsync",
      "description": "Forces synchronization of updates to disk.\n\nNever turn off unless your data is entirely disposable.\nSetting fsync=off is the equivalent of saying \" don't care about my data, I can recreate the database from scratch if I have to...  If synch activity is a performance concern, see synchronous_commit.\n\nsee <https://postgresqlco.nf/doc/en/param/fsync/>",
      "markdownDescription": "Forces synchronization of updates to disk.\n\nNever turn off unless your data is entirely disposable.\nSetting fsync=off is the equivalent of saying \" don't care about my data, I can recreate the database from scratch if I have to...  If synch activity is a performance concern, see synchronous_commit.\n\nsee [fsync documentation](https://postgresqlco.nf/doc/en/param/fsync/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "full_page_writes": {
      "title": "full_page_writes",
      "description": "Writes full pages to WAL when first modified after a checkpoint.\n\nThis is PostgreSQL's triple-check on transaction log integrity.\nLeave it on unless you have enough in-depth knowledge of your filesystem and hardware to be certain that torn page writes of log segments are completely prevented.  Solaris/ZFS users claim to be able to turn this off, but that has not been destruction-tested.\n\nsee <https://postgresqlco.nf/doc/en/param/full_page_writes/>",
      "markdownDescription": "Writes full pages to WAL when first modified after a checkpoint.\n\nThis is PostgreSQL's triple-check on transaction log integrity.\nLeave it on unless you have enough in-depth knowledge of your filesystem and hardware to be certain that torn page writes of log segments are completely prevented.  Solaris/ZFS users claim to be able to turn this off, but that has not been destruction-tested.\n\nsee [full_page_writes documentation](https://postgresqlco.nf/doc/en/param/full_page_writes/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "geqo": {
      "title": "geqo",
      "description": "Enables genetic query optimization.\n\nsee <https://postgresqlco.nf/doc/en/param/geqo/>",
      "markdownDescription": "Enables genetic query optimization.\n\nsee [geqo documentation](https://postgresqlco.nf/doc/en/param/geqo/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "geqo_effort": {
      "title": "geqo_effort",
      "description": "GEQO: effort is used to set the default for other GEQO parameters.\n\nMinimum: 1\n\nMaximum: 10\n\nsee <https://postgresqlco.nf/doc/en/param/geqo_effort/>",
      "markdownDescription": "GEQO: effort is used to set the default for other GEQO parameters.\n\nMinimum: 1\n\nMaximum: 10\n\nsee [geqo_effort documentation](https://postgresqlco.nf/doc/en/param/geqo_effort/)",
      "type": "string",
      "examples": [
        "5"
      ]
    },
    "geqo_generations": {
      "title": "geqo_generations",
      "description": "GEQO: number of iterations of the algorithm.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee <https://postgresqlco.nf/doc/en/param/geqo_generations/>",
      "markdownDescription": "GEQO: number of iterations of the algorithm.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee [geqo_generations documentation](https://postgresqlco.nf/doc/en/param/geqo_generations/)",
      "type": "string",
      "examples": [
        "0"
      ]
    },
    "geqo_pool_size": {
      "title": "geqo_pool_size",
      "description": "GEQO: number of individuals in the population.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee <https://postgresqlco.nf/doc/en/param/geqo_pool_size/>",
      "markdownDescription": "GEQO: number of individuals in the population.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee [geqo_pool_size documentation](https://postgresqlco.nf/doc/en/param/geqo_pool_size/)",
      "type": "string",
      "examples": [
        "0"
      ]
    },
    "geqo_seed": {
      "title": "geqo_seed",
      "description": "GEQO: seed for random path selection.\n\nMinimum: 0\n\nMaximum: 1\n\nIf you set this manually, you can force repeatable execution paths for GEQO queries.\n\nsee <https://postgresqlco.nf/doc/en/param/geqo_seed/>",
      "markdownDescription": "GEQO: seed for random path selection.\n\nMinimum: 0\n\nMaximum: 1\n\nIf you set this manually, you can force repeatable execution paths for GEQO queries.\n\nsee [geqo_seed documentation](https://postgresqlco.nf/doc/en/param/geqo_seed/)",
      "type": "string",
      "examples": [
        "0"
      ]
    },
    "geqo_selection_bias": {
      "title": "geqo_selection_bias",
      "description": "GEQO: selective pressure within the population.\n\nMinimum: 1.5\n\nMaximum: 2\n\nsee <https://postgresqlco.nf/doc/en/param/geqo_selection_bias/>",
      "markdownDescription": "GEQO: selective pressure within the population.\n\nMinimum: 1.5\n\nMaximum: 2\n\nsee [geqo_selection_bias documentation](https://postgresqlco.nf/doc/en/param/geqo_selection_bias/)",
      "type": "string",
      "examples": [
        "2"
      ]
    },
    "geqo_threshold": {
      "title": "geqo_threshold",
      "description": "Sets the threshold of FROM items beyond which GEQO is used.\n\nMinimum: 2\n\nMaximum: 2147483647\n\nWith new, faster processors it's tempting to raise the geqo_threshold a little, such as to 16 or 18.\nIncreasing more than that is unwise as query planning time goes up geometrically.\n\nsee <https://postgresqlco.nf/doc/en/param/geqo_threshold/>",
      "markdownDescription": "Sets the threshold of FROM items beyond which GEQO is used.\n\nMinimum: 2\n\nMaximum: 2147483647\n\nWith new, faster processors it's tempting to raise the geqo_threshold a little, such as to 16 or 18.\nIncreasing more than that is unwise as query planning time goes up geometrically.\n\nsee [geqo_threshold documentation](https://postgresqlco.nf/doc/en/param/geqo_threshold/)",
      "type": "string",
      "examples": [
        "12"
      ]
    },
    "gin_fuzzy_search_limit": {
      "title": "gin_fuzzy_search_limit",
      "description": "Sets the maximum allowed result for exact search by GIN.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nIf you're going to use GIN queries in a web application, it's generally useful to set a limit on how many rows can be returned from the index just for response times.\nHowever, the maximum number needs to depend on your application; what do users see as an acceptable expression of \"many\"?\n\nsee <https://postgresqlco.nf/doc/en/param/gin_fuzzy_search_limit/>",
      "markdownDescription": "Sets the maximum allowed result for exact search by GIN.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nIf you're going to use GIN queries in a web application, it's generally useful to set a limit on how many rows can be returned from the index just for response times.\nHowever, the maximum number needs to depend on your application; what do users see as an acceptable expression of \"many\"?\n\nsee [gin_fuzzy_search_limit documentation](https://postgresqlco.nf/doc/en/param/gin_fuzzy_search_limit/)",
      "type": "string",
      "examples": [
        "0"
      ]
    },
    "gin_pending_list_limit": {
      "title": "gin_pending_list_limit",
      "description": "Sets the maximum size of the pending list for GIN index.\n\nMinimum: 64\n\nMaximum: 2147483647\n\nUnless you have a lot of GIN indexed data and have time to test the performance of fastupdate.\nEven then, it's probably better to set it on individual indexes.\n\nsee <https://postgresqlco.nf/doc/en/param/gin_pending_list_limit/>",
      "markdownDescription": "Sets the maximum size of the pending list for GIN index.\n\nMinimum: 64\n\nMaximum: 2147483647\n\nUnless you have a lot of GIN indexed data and have time to test the performance of fastupdate.\nEven then, it's probably better to set it on individual indexes.\n\nsee [gin_pending_list_limit documentation](https://postgresqlco.nf/doc/en/param/gin_pending_list_limit/)",
      "type": "string",
      "examples": [
        "4096"
      ]
    },
    "hash_mem_multiplier": {
      "title": "hash_mem_multiplier",
      "description": "Multiple of work_mem to use for hash tables.\n\nMinimum: 1\n\nMaximum: 1000\n\nsee <https://postgresqlco.nf/doc/en/param/hash_mem_multiplier/>",
      "markdownDescription": "Multiple of work_mem to use for hash tables.\n\nMinimum: 1\n\nMaximum: 1000\n\nsee [hash_mem_multiplier documentation](https://postgresqlco.nf/doc/en/param/hash_mem_multiplier/)",
      "type": "string",
      "examples": [
        "1"
      ]
    },
    "hba_file": {
      "title": "hba_file",
      "description": "Sets the server's \"hba\" configuration file.\n\nAllows you to move the pg_hba file to a sysadmin-specified location.\n\nsee <https://postgresqlco.nf/doc/en/param/hba_file/>",
      "markdownDescription": "Sets the server's \"hba\" configuration file.\n\nAllows you to move the pg_hba file to a sysadmin-specified location.\n\nsee [hba_file documentation](https://postgresqlco.nf/doc/en/param/hba_file/)",
      "type": "string",
      "examples": [
        "/var/lib/postgresql/data/pgdata/pg_hba.conf"
      ]
    },
    "hot_standby": {
      "title": "hot_standby",
      "description": "Allows connections and queries during recovery.\n\nSet to \"on\", unless you want to specifically prohibit people from running queries on a standby server.\n\nsee <https://postgresqlco.nf/doc/en/param/hot_standby/>",
      "markdownDescription": "Allows connections and queries during recovery.\n\nSet to \"on\", unless you want to specifically prohibit people from running queries on a standby server.\n\nsee [hot_standby documentation](https://postgresqlco.nf/doc/en/param/hot_standby/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "hot_standby_feedback": {
      "title": "hot_standby_feedback",
      "description": "Allows feedback from a hot standby to the primary that will avoid query conflicts.\n\nHelps avoid query cancel on the replicas in most cases.\nTurn it off for a replica which does long-running reports and is allowed to lag.\n\nsee <https://postgresqlco.nf/doc/en/param/hot_standby_feedback/>",
      "markdownDescription": "Allows feedback from a hot standby to the primary that will avoid query conflicts.\n\nHelps avoid query cancel on the replicas in most cases.\nTurn it off for a replica which does long-running reports and is allowed to lag.\n\nsee [hot_standby_feedback documentation](https://postgresqlco.nf/doc/en/param/hot_standby_feedback/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "huge_page_size": {
      "title": "huge_page_size",
      "description": "The size of huge page that should be requested.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee <https://postgresqlco.nf/doc/en/param/huge_page_size/>",
      "markdownDescription": "The size of huge page that should be requested.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee [huge_page_size documentation](https://postgresqlco.nf/doc/en/param/huge_page_size/)",
      "type": "string",
      "examples": [
        "0"
      ]
    },
    "huge_pages": {
      "title": "huge_pages",
      "description": "Use of huge pages on Linux or Windows.\n\nHowever, for small systems (< 2GB of RAM) may be beneficial to set to \"off\".\n\nsee <https://postgresqlco.nf/doc/en/param/huge_pages/>",
      "markdownDescription": "Use of huge pages on Linux or Windows.\n\nHowever, for small systems (< 2GB of RAM) may be beneficial to set to \"off\".\n\nsee [huge_pages documentation](https://postgresqlco.nf/doc/en/param/huge_pages/)",
      "type": "string",
      "examples": [
        "try"
      ],
      "enum": [
        "off",
        "on",
        "try"
      ]
    },
    "ident_file": {
      "title": "ident_file",
      "description": "Sets the server's \"ident\" configuration file.\n\nAllows you to move the pg_ident file to a sysadmin-specified location.\n\nsee <https://postgresqlco.nf/doc/en/param/ident_file/>",
      "markdownDescription": "Sets the server's \"ident\" configuration file.\n\nAllows you to move the pg_ident file to a sysadmin-specified location.\n\nsee [ident_file documentation](https://postgresqlco.nf/doc/en/param/ident_file/)",
      "type": "string",
      "examples": [
        "/var/lib/postgresql/data/pgdata/pg_ident.conf"
      ]
    },
    "idle_in_transaction_session_timeout": {
      "title": "idle_in_transaction_session_timeout",
      "description": "Sets the maximum allowed idle time between queries, when in a transaction.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nSet to 1 hour maximum, or as low as 1 minute if you know your query load well.\nIdle transactions are bad news.\n\nsee <https://postgresqlco.nf/doc/en/param/idle_in_transaction_session_timeout/>",
      "markdownDescription": "Sets the maximum allowed idle time between queries, when in a transaction.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nSet to 1 hour maximum, or as low as 1 minute if you know your query load well.\nIdle transactions are bad news.\n\nsee [idle_in_transaction_session_timeout documentation](https://postgresqlco.nf/doc/en/param/idle_in_transaction_session_timeout/)",
      "type": "string",
      "examples": [
        "240000"
      ]
    },
    "idle_session_timeout": {
      "title": "idle_session_timeout",
      "description": "Sets the maximum allowed idle time between queries, when not in a transaction.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee <https://postgresqlco.nf/doc/en/param/idle_session_timeout/>",
      "markdownDescription": "Sets the maximum allowed idle time between queries, when not in a transaction.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee [idle_session_timeout documentation](https://postgresqlco.nf/doc/en/param/idle_session_timeout/)",
      "type": "string",
      "examples": [
        "0"
      ]
    },
    "ignore_checksum_failure": {
      "title": "ignore_checksum_failure",
      "description": "Continues processing after a checksum failure.\n\nFor rescuing a corrupt DB\n\nsee <https://postgresqlco.nf/doc/en/param/ignore_checksum_failure/>",
      "markdownDescription": "Continues processing after a checksum failure.\n\nFor rescuing a corrupt DB\n\nsee [ignore_checksum_failure documentation](https://postgresqlco.nf/doc/en/param/ignore_checksum_failure/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "ignore_invalid_pages": {
      "title": "ignore_invalid_pages",
      "description": "Continues recovery after an invalid pages failure.\n\nsee <https://postgresqlco.nf/doc/en/param/ignore_invalid_pages/>",
      "markdownDescription": "Continues recovery after an invalid pages failure.\n\nsee [ignore_invalid_pages documentation](https://postgresqlco.nf/doc/en/param/ignore_invalid_pages/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "ignore_system_indexes": {
      "title": "ignore_system_indexes",
      "description": "Disables reading from system indexes.\n\nUseful for salvaging data from a corrupted database.\n\nsee <https://postgresqlco.nf/doc/en/param/ignore_system_indexes/>",
      "markdownDescription": "Disables reading from system indexes.\n\nUseful for salvaging data from a corrupted database.\n\nsee [ignore_system_indexes documentation](https://postgresqlco.nf/doc/en/param/ignore_system_indexes/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "in_hot_standby": {
      "title": "in_hot_standby",
      "description": "Shows whether hot standby is currently active.\n\nsee <https://postgresqlco.nf/doc/en/param/in_hot_standby/>",
      "markdownDescription": "Shows whether hot standby is currently active.\n\nsee [in_hot_standby documentation](https://postgresqlco.nf/doc/en/param/in_hot_standby/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "integer_datetimes": {
      "title": "integer_datetimes",
      "description": "Shows whether datetimes are integer based.\n\nInformational: lets you know of non-standard installation or compile options.\n\nsee <https://postgresqlco.nf/doc/en/param/integer_datetimes/>",
      "markdownDescription": "Shows whether datetimes are integer based.\n\nInformational: lets you know of non-standard installation or compile options.\n\nsee [integer_datetimes documentation](https://postgresqlco.nf/doc/en/param/integer_datetimes/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "IntervalStyle": {
      "title": "IntervalStyle",
      "description": "Sets the display format for interval values.\n\nThis is just in case your applications are expecting something specific in how INTERVAL strings are output.\n\nsee <https://postgresqlco.nf/doc/en/param/IntervalStyle/>",
      "markdownDescription": "Sets the display format for interval values.\n\nThis is just in case your applications are expecting something specific in how INTERVAL strings are output.\n\nsee [IntervalStyle documentation](https://postgresqlco.nf/doc/en/param/IntervalStyle/)",
      "type": "string",
      "examples": [
        "postgres"
      ],
      "enum": [
        "postgres",
        "postgres_verbose",
        "sql_standard",
        "iso_8601"
      ]
    },
    "jit": {
      "title": "jit",
      "description": "Allow JIT compilation.\n\nsee <https://postgresqlco.nf/doc/en/param/jit/>",
      "markdownDescription": "Allow JIT compilation.\n\nsee [jit documentation](https://postgresqlco.nf/doc/en/param/jit/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "jit_above_cost": {
      "title": "jit_above_cost",
      "description": "Perform JIT compilation if query is more expensive.\n\nMinimum: -1\n\nMaximum: 1.79769e+308\n\nsee <https://postgresqlco.nf/doc/en/param/jit_above_cost/>",
      "markdownDescription": "Perform JIT compilation if query is more expensive.\n\nMinimum: -1\n\nMaximum: 1.79769e+308\n\nsee [jit_above_cost documentation](https://postgresqlco.nf/doc/en/param/jit_above_cost/)",
      "type": "string",
      "examples": [
        "100000"
      ]
    },
    "jit_debugging_support": {
      "title": "jit_debugging_support",
      "description": "Register JIT-compiled functions with debugger.\n\nsee <https://postgresqlco.nf/doc/en/param/jit_debugging_support/>",
      "markdownDescription": "Register JIT-compiled functions with debugger.\n\nsee [jit_debugging_support documentation](https://postgresqlco.nf/doc/en/param/jit_debugging_support/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "jit_dump_bitcode": {
      "title": "jit_dump_bitcode",
      "description": "Write out LLVM bitcode to facilitate JIT debugging.\n\nsee <https://postgresqlco.nf/doc/en/param/jit_dump_bitcode/>",
      "markdownDescription": "Write out LLVM bitcode to facilitate JIT debugging.\n\nsee [jit_dump_bitcode documentation](https://postgresqlco.nf/doc/en/param/jit_dump_bitcode/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "jit_expressions": {
      "title": "jit_expressions",
      "description": "Allow JIT compilation of expressions.\n\nsee <https://postgresqlco.nf/doc/en/param/jit_expressions/>",
      "markdownDescription": "Allow JIT compilation of expressions.\n\nsee [jit_expressions documentation](https://postgresqlco.nf/doc/en/param/jit_expressions/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "jit_inline_above_cost": {
      "title": "jit_inline_above_cost",
      "description": "Perform JIT inlining if query is more expensive.\n\nMinimum: -1\n\nMaximum: 1.79769e+308\n\nsee <https://postgresqlco.nf/doc/en/param/jit_inline_above_cost/>",
      "markdownDescription": "Perform JIT inlining if query is more expensive.\n\nMinimum: -1\n\nMaximum: 1.79769e+308\n\nsee [jit_inline_above_cost documentation](https://postgresqlco.nf/doc/en/param/jit_inline_above_cost/)",
      "type": "string",
      "examples": [
        "500000"
      ]
    },
    "jit_optimize_above_cost": {
      "title": "jit_optimize_above_cost",
      "description": "Optimize JIT-compiled functions if query is more expensive.\n\nMinimum: -1\n\nMaximum: 1.79769e+308\n\nsee <https://postgresqlco.nf/doc/en/param/jit_optimize_above_cost/>",
      "markdownDescription": "Optimize JIT-compiled functions if query is more expensive.\n\nMinimum: -1\n\nMaximum: 1.79769e+308\n\nsee [jit_optimize_above_cost documentation](https://postgresqlco.nf/doc/en/param/jit_optimize_above_cost/)",
      "type": "string",
      "examples": [
        "500000"
      ]
    },
    "jit_profiling_support": {
      "title": "jit_profiling_support",
      "description": "Register JIT-compiled functions with perf profiler.\n\nsee <https://postgresqlco.nf/doc/en/param/jit_profiling_support/>",
      "markdownDescription": "Register JIT-compiled functions with perf profiler.\n\nsee [jit_profiling_support documentation](https://postgresqlco.nf/doc/en/param/jit_profiling_support/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "jit_provider": {
      "title": "jit_provider",
      "description": "JIT provider to use.\n\nsee <https://postgresqlco.nf/doc/en/param/jit_provider/>",
      "markdownDescription": "JIT provider to use.\n\nsee [jit_provider documentation](https://postgresqlco.nf/doc/en/param/jit_provider/)",
      "type": "string",
      "examples": [
        "llvmjit"
      ]
    },
    "jit_tuple_deforming": {
      "title": "jit_tuple_deforming",
      "description": "Allow JIT compilation of tuple deforming.\n\nsee <https://postgresqlco.nf/doc/en/param/jit_tuple_deforming/>",
      "markdownDescription": "Allow JIT compilation of tuple deforming.\n\nsee [jit_tuple_deforming documentation](https://postgresqlco.nf/doc/en/param/jit_tuple_deforming/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "join_collapse_limit": {
      "title": "join_collapse_limit",
      "description": "Sets the FROM-list size beyond which JOIN constructs are not flattened.\n\nMinimum: 1\n\nMaximum: 2147483647\n\nIf for some reason you wanted to explicitly declare the join order for all of your queries, you could set this to 1.\nThat is not recommended, though.\n\nsee <https://postgresqlco.nf/doc/en/param/join_collapse_limit/>",
      "markdownDescription": "Sets the FROM-list size beyond which JOIN constructs are not flattened.\n\nMinimum: 1\n\nMaximum: 2147483647\n\nIf for some reason you wanted to explicitly declare the join order for all of your queries, you could set this to 1.\nThat is not recommended, though.\n\nsee [join_collapse_limit documentation](https://postgresqlco.nf/doc/en/param/join_collapse_limit/)",
      "type": "string",
      "examples": [
        "8"
      ]
    },
    "krb_caseins_users": {
      "title": "krb_caseins_users",
      "description": "Sets whether Kerberos and GSSAPI user names should be treated as case-insensitive.\n\nSpeak with your sysadmin or network security about how to set the various kerberos settings to match your local kerberos setup.\nKerberos support must be compiled in to PostgreSQL, and set in pg_hba.conf.\n\nsee <https://postgresqlco.nf/doc/en/param/krb_caseins_users/>",
      "markdownDescription": "Sets whether Kerberos and GSSAPI user names should be treated as case-insensitive.\n\nSpeak with your sysadmin or network security about how to set the various kerberos settings to match your local kerberos setup.\nKerberos support must be compiled in to PostgreSQL, and set in pg_hba.conf.\n\nsee [krb_caseins_users documentation](https://postgresqlco.nf/doc/en/param/krb_caseins_users/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "krb_server_keyfile": {
      "title": "krb_server_keyfile",
      "description": "Sets the location of the Kerberos server key file.\n\nsee <https://postgresqlco.nf/doc/en/param/krb_server_keyfile/>",
      "markdownDescription": "Sets the location of the Kerberos server key file.\n\nsee [krb_server_keyfile documentation](https://postgresqlco.nf/doc/en/param/krb_server_keyfile/)",
      "type": "string",
      "examples": [
        "FILE:/etc/postgresql-common/krb5.keytab"
      ]
    },
    "lc_collate": {
      "title": "lc_collate",
      "description": "Shows the collation order locale.\n\nSet at initdb time.\nDisplayed for information only.\n\nsee <https://postgresqlco.nf/doc/en/param/lc_collate/>",
      "markdownDescription": "Shows the collation order locale.\n\nSet at initdb time.\nDisplayed for information only.\n\nsee [lc_collate documentation](https://postgresqlco.nf/doc/en/param/lc_collate/)",
      "type": "string",
      "examples": [
        "C"
      ]
    },
    "lc_ctype": {
      "title": "lc_ctype",
      "description": "Shows the character classification and case conversion locale.\n\nSet at initdb time.\nDisplayed for information only.\n\nsee <https://postgresqlco.nf/doc/en/param/lc_ctype/>",
      "markdownDescription": "Shows the character classification and case conversion locale.\n\nSet at initdb time.\nDisplayed for information only.\n\nsee [lc_ctype documentation](https://postgresqlco.nf/doc/en/param/lc_ctype/)",
      "type": "string",
      "examples": [
        "C"
      ]
    },
    "lc_messages": {
      "title": "lc_messages",
      "description": "Sets the language in which messages are displayed.\n\nsee <https://postgresqlco.nf/doc/en/param/lc_messages/>",
      "markdownDescription": "Sets the language in which messages are displayed.\n\nsee [lc_messages documentation](https://postgresqlco.nf/doc/en/param/lc_messages/)",
      "type": "string",
      "examples": [
        "en_US.utf8"
      ]
    },
    "lc_monetary": {
      "title": "lc_monetary",
      "description": "Sets the locale for formatting monetary amounts.\n\nsee <https://postgresqlco.nf/doc/en/param/lc_monetary/>",
      "markdownDescription": "Sets the locale for formatting monetary amounts.\n\nsee [lc_monetary documentation](https://postgresqlco.nf/doc/en/param/lc_monetary/)",
      "type": "string",
      "examples": [
        "en_US.utf8"
      ]
    },
    "lc_numeric": {
      "title": "lc_numeric",
      "description": "Sets the locale for formatting numbers.\n\nsee <https://postgresqlco.nf/doc/en/param/lc_numeric/>",
      "markdownDescription": "Sets the locale for formatting numbers.\n\nsee [lc_numeric documentation](https://postgresqlco.nf/doc/en/param/lc_numeric/)",
      "type": "string",
      "examples": [
        "en_US.utf8"
      ]
    },
    "lc_time": {
      "title": "lc_time",
      "description": "Sets the locale for formatting date and time values.\n\nsee <https://postgresqlco.nf/doc/en/param/lc_time/>",
      "markdownDescription": "Sets the locale for formatting date and time values.\n\nsee [lc_time documentation](https://postgresqlco.nf/doc/en/param/lc_time/)",
      "type": "string",
      "examples": [
        "en_US.utf8"
      ]
    },
    "listen_addresses": {
      "title": "listen_addresses",
      "description": "Sets the host name or IP address(es) to listen to.\n\nSet your listen_address as restrictively as possible; '*' should only be used for development machines\n\nsee <https://postgresqlco.nf/doc/en/param/listen_addresses/>",
      "markdownDescription": "Sets the host name or IP address(es) to listen to.\n\nSet your listen_address as restrictively as possible; '*' should only be used for development machines\n\nsee [listen_addresses documentation](https://postgresqlco.nf/doc/en/param/listen_addresses/)",
      "type": "string",
      "examples": [
        "*"
      ]
    },
    "lo_compat_privileges": {
      "title": "lo_compat_privileges",
      "description": "Enables backward compatibility mode for privilege checks on large objects.\n\nsee <https://postgresqlco.nf/doc/en/param/lo_compat_privileges/>",
      "markdownDescription": "Enables backward compatibility mode for privilege checks on large objects.\n\nsee [lo_compat_privileges documentation](https://postgresqlco.nf/doc/en/param/lo_compat_privileges/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "local_preload_libraries": {
      "title": "local_preload_libraries",
      "description": "Lists unprivileged shared libraries to preload into each backend.\n\nThis is largely a convenience setting, automatically loading libraries listed without needing an explicit load command.\nHas no effect on performance.\n\nsee <https://postgresqlco.nf/doc/en/param/local_preload_libraries/>",
      "markdownDescription": "Lists unprivileged shared libraries to preload into each backend.\n\nThis is largely a convenience setting, automatically loading libraries listed without needing an explicit load command.\nHas no effect on performance.\n\nsee [local_preload_libraries documentation](https://postgresqlco.nf/doc/en/param/local_preload_libraries/)",
      "type": "string"
    },
    "lock_timeout": {
      "title": "lock_timeout",
      "description": "Sets the maximum allowed duration of any wait for a lock.\n\nMinimum: 0\n\nMaximum: 2147483647\n\n... but consider setting this per application or per query for any explicit locking attempts.\n\nsee <https://postgresqlco.nf/doc/en/param/lock_timeout/>",
      "markdownDescription": "Sets the maximum allowed duration of any wait for a lock.\n\nMinimum: 0\n\nMaximum: 2147483647\n\n... but consider setting this per application or per query for any explicit locking attempts.\n\nsee [lock_timeout documentation](https://postgresqlco.nf/doc/en/param/lock_timeout/)",
      "type": "string",
      "examples": [
        "0"
      ]
    },
    "log_autovacuum_min_duration": {
      "title": "log_autovacuum_min_duration",
      "description": "Sets the minimum execution time above which autovacuum actions will be logged.\n\nMinimum: -1\n\nMaximum: 2147483647\n\nLogs all autovacuum actions which take more than the specified time.\nUseful for figuring out if autovacuum is bogging down your system or blocking.\n\nsee <https://postgresqlco.nf/doc/en/param/log_autovacuum_min_duration/>",
      "markdownDescription": "Sets the minimum execution time above which autovacuum actions will be logged.\n\nMinimum: -1\n\nMaximum: 2147483647\n\nLogs all autovacuum actions which take more than the specified time.\nUseful for figuring out if autovacuum is bogging down your system or blocking.\n\nsee [log_autovacuum_min_duration documentation](https://postgresqlco.nf/doc/en/param/log_autovacuum_min_duration/)",
      "type": "string",
      "examples": [
        "-1"
      ]
    },
    "log_checkpoints": {
      "title": "log_checkpoints",
      "description": "Logs each checkpoint.\n\nWhen doing performance analysis, it's often a good idea to turn on most of the logging options and log them to a CSVlog.\n\n\nsee <https://postgresqlco.nf/doc/en/param/log_checkpoints/>",
      "markdownDescription": "Logs each checkpoint.\n\nWhen doing performance analysis, it's often a good idea to turn on most of the logging options and log them to a CSVlog.\n\n\nsee [log_checkpoints documentation](https://postgresqlco.nf/doc/en/param/log_checkpoints/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "log_connections": {
      "title": "log_connections",
      "description": "Logs each successful connection.\n\nUseful for performance analysis.\n\nsee <https://postgresqlco.nf/doc/en/param/log_connections/>",
      "markdownDescription": "Logs each successful connection.\n\nUseful for performance analysis.\n\nsee [log_connections documentation](https://postgresqlco.nf/doc/en/param/log_connections/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "log_destination": {
      "title": "log_destination",
      "description": "Sets the destination for server log output.\n\nYour choice of log destination depends on your system administration plans and the status of your server.\n\"syslog\" or \"eventlog\" (Windows) are good choices for most development servers, because they can support centralized log monitors.  For development and testing, however, \"csvlog\" is probably the most useful, as it allows you to run queries against the log contents.\n\nsee <https://postgresqlco.nf/doc/en/param/log_destination/>",
      "markdownDescription": "Sets the destination for server log output.\n\nYour choice of log destination depends on your system administration plans and the status of your server.\n\"syslog\" or \"eventlog\" (Windows) are good choices for most development servers, because they can support centralized log monitors.  For development and testing, however, \"csvlog\" is probably the most useful, as it allows you to run queries against the log contents.\n\nsee [log_destination documentation](https://postgresqlco.nf/doc/en/param/log_destination/)",
      "type": "string",
      "examples": [
        "csvlog"
      ]
    },
    "log_directory": {
      "title": "log_directory",
      "description": "Sets the destination directory for log files.\n\nIf you are having PostgreSQL keep its own activity logs on a production server, it's probably a good idea to locate them on separate storage from the database and transaction log.\n\nsee <https://postgresqlco.nf/doc/en/param/log_directory/>",
      "markdownDescription": "Sets the destination directory for log files.\n\nIf you are having PostgreSQL keep its own activity logs on a production server, it's probably a good idea to locate them on separate storage from the database and transaction log.\n\nsee [log_directory documentation](https://postgresqlco.nf/doc/en/param/log_directory/)",
      "type": "string",
      "examples": [
        "/controller/log"
      ]
    },
    "log_disconnections": {
      "title": "log_disconnections",
      "description": "Logs end of a session, including duration.\n\nUseful for performance analysis.\n\nsee <https://postgresqlco.nf/doc/en/param/log_disconnections/>",
      "markdownDescription": "Logs end of a session, including duration.\n\nUseful for performance analysis.\n\nsee [log_disconnections documentation](https://postgresqlco.nf/doc/en/param/log_disconnections/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "log_duration": {
      "title": "log_duration",
      "description": "Logs the duration of each completed SQL statement.\n\nUseful for performance analysis.\n\nsee <https://postgresqlco.nf/doc/en/param/log_duration/>",
      "markdownDescription": "Logs the duration of each completed SQL statement.\n\nUseful for performance analysis.\n\nsee [log_duration documentation](https://postgresqlco.nf/doc/en/param/log_duration/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "log_error_verbosity": {
      "title": "log_error_verbosity",
      "description": "Sets the verbosity of logged messages.\n\nUnless doing intensive debugging.\nAlternately, set to TERSE if managing log volume is becoming a problem.\n\nsee <https://postgresqlco.nf/doc/en/param/log_error_verbosity/>",
      "markdownDescription": "Sets the verbosity of logged messages.\n\nUnless doing intensive debugging.\nAlternately, set to TERSE if managing log volume is becoming a problem.\n\nsee [log_error_verbosity documentation](https://postgresqlco.nf/doc/en/param/log_error_verbosity/)",
      "type": "string",
      "examples": [
        "default"
      ],
      "enum": [
        "terse",
        "default",
        "verbose"
      ]
    },
    "log_executor_stats": {
      "title": "log_executor_stats",
      "description": "Writes executor performance statistics to the server log.\n\nUsed for profiling the query executor.\n\nsee <https://postgresqlco.nf/doc/en/param/log_executor_stats/>",
      "markdownDescription": "Writes executor performance statistics to the server log.\n\nUsed for profiling the query executor.\n\nsee [log_executor_stats documentation](https://postgresqlco.nf/doc/en/param/log_executor_stats/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "log_file_mode": {
      "title": "log_file_mode",
      "description": "Sets the file permissions for log files.\n\nMinimum: 0\n\nMaximum: 511\n\n... unless you need to share the log with Postgres' unix group, in which case set it to 660.\n\nsee <https://postgresqlco.nf/doc/en/param/log_file_mode/>",
      "markdownDescription": "Sets the file permissions for log files.\n\nMinimum: 0\n\nMaximum: 511\n\n... unless you need to share the log with Postgres' unix group, in which case set it to 660.\n\nsee [log_file_mode documentation](https://postgresqlco.nf/doc/en/param/log_file_mode/)",
      "type": "string",
      "examples": [
        "0600"
      ]
    },
    "log_filename": {
      "title": "log_filename",
      "description": "Sets the file name pattern for log files.\n\nIf you want your logs to rotate automatically without needing a cron job to delete old logs, try naming them after the days of the week or the month so they overwrite automatically (i.e. 'postgresql-%a' or 'postgresql-%d').\nThis also helps with log analysis.\n\nsee <https://postgresqlco.nf/doc/en/param/log_filename/>",
      "markdownDescription": "Sets the file name pattern for log files.\n\nIf you want your logs to rotate automatically without needing a cron job to delete old logs, try naming them after the days of the week or the month so they overwrite automatically (i.e. 'postgresql-%a' or 'postgresql-%d').\nThis also helps with log analysis.\n\nsee [log_filename documentation](https://postgresqlco.nf/doc/en/param/log_filename/)",
      "type": "string",
      "examples": [
        "postgres"
      ]
    },
    "log_hostname": {
      "title": "log_hostname",
      "description": "Logs the host name in the connection logs.\n\nAs this setting requires resolution of each connecting hostname, it's pretty much always too expensive to have on, even when troubleshooting.\n\nsee <https://postgresqlco.nf/doc/en/param/log_hostname/>",
      "markdownDescription": "Logs the host name in the connection logs.\n\nAs this setting requires resolution of each connecting hostname, it's pretty much always too expensive to have on, even when troubleshooting.\n\nsee [log_hostname documentation](https://postgresqlco.nf/doc/en/param/log_hostname/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "log_line_prefix": {
      "title": "log_line_prefix",
      "description": "Controls information prefixed to each log line.\n\nPrimarily useful for providing extra information when logging to syslog or eventlog.\nTry \"%h:%d:%u:%c  %t\" for this.\n\nsee <https://postgresqlco.nf/doc/en/param/log_line_prefix/>",
      "markdownDescription": "Controls information prefixed to each log line.\n\nPrimarily useful for providing extra information when logging to syslog or eventlog.\nTry \"%h:%d:%u:%c  %t\" for this.\n\nsee [log_line_prefix documentation](https://postgresqlco.nf/doc/en/param/log_line_prefix/)",
      "type": "string",
      "examples": [
        "%m [%p]"
      ]
    },
    "log_lock_waits": {
      "title": "log_lock_waits",
      "description": "Logs long lock waits.\n\nUseful for performance analysis.\n\nsee <https://postgresqlco.nf/doc/en/param/log_lock_waits/>",
      "markdownDescription": "Logs long lock waits.\n\nUseful for performance analysis.\n\nsee [log_lock_waits documentation](https://postgresqlco.nf/doc/en/param/log_lock_waits/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "log_min_duration_sample": {
      "title": "log_min_duration_sample",
      "description": "Sets the minimum execution time above which a sample of statements will be logged. Sampling is determined by log_statement_sample_rate.\n\nMinimum: -1\n\nMaximum: 2147483647\n\nsee <https://postgresqlco.nf/doc/en/param/log_min_duration_sample/>",
      "markdownDescription": "Sets the minimum execution time above which a sample of statements will be logged. Sampling is determined by log_statement_sample_rate.\n\nMinimum: -1\n\nMaximum: 2147483647\n\nsee [log_min_duration_sample documentation](https://postgresqlco.nf/doc/en/param/log_min_duration_sample/)",
      "type": "string",
      "examples": [
        "-1"
      ]
    },
    "log_min_duration_statement": {
      "title": "log_min_duration_statement",
      "description": "Sets the minimum execution time above which all statements will be logged.\n\nMinimum: -1\n\nMaximum: 2147483647\n\nPossibly the most generally useful log setting for troubleshooting performance, especially on a production server.\nRecords only long-running queries for analysis; since these are often your \"problem\" queries, these are the most useful ones to know about.  Used for pg_fouine.\n\nsee <https://postgresqlco.nf/doc/en/param/log_min_duration_statement/>",
      "markdownDescription": "Sets the minimum execution time above which all statements will be logged.\n\nMinimum: -1\n\nMaximum: 2147483647\n\nPossibly the most generally useful log setting for troubleshooting performance, especially on a production server.\nRecords only long-running queries for analysis; since these are often your \"problem\" queries, these are the most useful ones to know about.  Used for pg_fouine.\n\nsee [log_min_duration_statement documentation](https://postgresqlco.nf/doc/en/param/log_min_duration_statement/)",
      "type": "string",
      "examples": [
        "-1"
      ]
    },
    "log_min_error_statement": {
      "title": "log_min_error_statement",
      "description": "Causes all statements generating error at or above this level to be logged.\n\nLogs SQL statements which error.\nIf you have an application which routinely generates errors and can't fix it, then raise the level to FATAL or PANIC.\n\nsee <https://postgresqlco.nf/doc/en/param/log_min_error_statement/>",
      "markdownDescription": "Causes all statements generating error at or above this level to be logged.\n\nLogs SQL statements which error.\nIf you have an application which routinely generates errors and can't fix it, then raise the level to FATAL or PANIC.\n\nsee [log_min_error_statement documentation](https://postgresqlco.nf/doc/en/param/log_min_error_statement/)",
      "type": "string",
      "examples": [
        "error"
      ],
      "enum": [
        "debug5",
        "debug4",
        "debug3",
        "debug2",
        "debug1",
        "info",
        "notice",
        "warning",
        "error",
        "log",
        "fatal",
        "panic"
      ]
    },
    "log_min_messages": {
      "title": "log_min_messages",
      "description": "Sets the message levels that are logged.\n\nUnless doing serious troubleshooting.\nIf you want to output parses and plans, set to DEBUG1.\n\nsee <https://postgresqlco.nf/doc/en/param/log_min_messages/>",
      "markdownDescription": "Sets the message levels that are logged.\n\nUnless doing serious troubleshooting.\nIf you want to output parses and plans, set to DEBUG1.\n\nsee [log_min_messages documentation](https://postgresqlco.nf/doc/en/param/log_min_messages/)",
      "type": "string",
      "examples": [
        "warning"
      ],
      "enum": [
        "debug5",
        "debug4",
        "debug3",
        "debug2",
        "debug1",
        "info",
        "notice",
        "warning",
        "error",
        "log",
        "fatal",
        "panic"
      ]
    },
    "log_parameter_max_length": {
      "title": "log_parameter_max_length",
      "description": "When logging statements, limit logged parameter values to first N bytes.\n\nMinimum: -1\n\nMaximum: 1073741823\n\nsee <https://postgresqlco.nf/doc/en/param/log_parameter_max_length/>",
      "markdownDescription": "When logging statements, limit logged parameter values to first N bytes.\n\nMinimum: -1\n\nMaximum: 1073741823\n\nsee [log_parameter_max_length documentation](https://postgresqlco.nf/doc/en/param/log_parameter_max_length/)",
      "type": "string",
      "examples": [
        "-1"
      ]
    },
    "log_parameter_max_length_on_error": {
      "title": "log_parameter_max_length_on_error",
      "description": "When reporting an error, limit logged parameter values to first N bytes.\n\nMinimum: -1\n\nMaximum: 1073741823\n\nsee <https://postgresqlco.nf/doc/en/param/log_parameter_max_length_on_error/>",
      "markdownDescription": "When reporting an error, limit logged parameter values to first N bytes.\n\nMinimum: -1\n\nMaximum: 1073741823\n\nsee [log_parameter_max_length_on_error documentation](https://postgresqlco.nf/doc/en/param/log_parameter_max_length_on_error/)",
      "type": "string",
      "examples": [
        "0"
      ]
    },
    "log_parser_stats": {
      "title": "log_parser_stats",
      "description": "Writes parser performance statistics to the server log.\n\nUsed for profiling the query parser.\n\nsee <https://postgresqlco.nf/doc/en/param/log_parser_stats/>",
      "markdownDescription": "Writes parser performance statistics to the server log.\n\nUsed for profiling the query parser.\n\nsee [log_parser_stats documentation](https://postgresqlco.nf/doc/en/param/log_parser_stats/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "log_planner_stats": {
      "title": "log_planner_stats",
      "description": "Writes planner performance statistics to the server log.\n\nUsed for profiling the query planner.\n\nsee <https://postgresqlco.nf/doc/en/param/log_planner_stats/>",
      "markdownDescription": "Writes planner performance statistics to the server log.\n\nUsed for profiling the query planner.\n\nsee [log_planner_stats documentation](https://postgresqlco.nf/doc/en/param/log_planner_stats/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "log_recovery_conflict_waits": {
      "title": "log_recovery_conflict_waits",
      "description": "Logs standby recovery conflict waits.\n\nsee <https://postgresqlco.nf/doc/en/param/log_recovery_conflict_waits/>",
      "markdownDescription": "Logs standby recovery conflict waits.\n\nsee [log_recovery_conflict_waits documentation](https://postgresqlco.nf/doc/en/param/log_recovery_conflict_waits/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "log_replication_commands": {
      "title": "log_replication_commands",
      "description": "Logs each replication command.\n\n... assuming you're monitoring replication status, which you should.\n\nsee <https://postgresqlco.nf/doc/en/param/log_replication_commands/>",
      "markdownDescription": "Logs each replication command.\n\n... assuming you're monitoring replication status, which you should.\n\nsee [log_replication_commands documentation](https://postgresqlco.nf/doc/en/param/log_replication_commands/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "log_rotation_age": {
      "title": "log_rotation_age",
      "description": "Automatic log file rotation will occur after N minutes.\n\nMinimum: 0\n\nMaximum: 35791394\n\n1d is generally good for production.\nSet to 1h to rotate logs hourly when doing performance analysis.\n\nsee <https://postgresqlco.nf/doc/en/param/log_rotation_age/>",
      "markdownDescription": "Automatic log file rotation will occur after N minutes.\n\nMinimum: 0\n\nMaximum: 35791394\n\n1d is generally good for production.\nSet to 1h to rotate logs hourly when doing performance analysis.\n\nsee [log_rotation_age documentation](https://postgresqlco.nf/doc/en/param/log_rotation_age/)",
      "type": "string",
      "examples": [
        "0"
      ]
    },
    "log_rotation_size": {
      "title": "log_rotation_size",
      "description": "Automatic log file rotation will occur after N kilobytes.\n\nMinimum: 0\n\nMaximum: 2097151\n\nDefault is quite small if you have any extra logging turned on at all.\nIncrease to avoid the creation of additional log segments with hard-to-predict names.\n\nsee <https://postgresqlco.nf/doc/en/param/log_rotation_size/>",
      "markdownDescription": "Automatic log file rotation will occur after N kilobytes.\n\nMinimum: 0\n\nMaximum: 2097151\n\nDefault is quite small if you have any extra logging turned on at all.\nIncrease to avoid the creation of additional log segments with hard-to-predict names.\n\nsee [log_rotation_size documentation](https://postgresqlco.nf/doc/en/param/log_rotation_size/)",
      "type": "string",
      "examples": [
        "0"
      ]
    },
    "log_statement": {
      "title": "log_statement",
      "description": "Sets the type of statements logged.\n\nFor exhaustive performance analysis on test systems, set to 'all'.\nMost production setups will just want to use 'ddl' to make sure to record database-altering actions, but very secure setups may want to use 'mod' or even 'all'.  Can produce a lot of log volume.\n\nsee <https://postgresqlco.nf/doc/en/param/log_statement/>",
      "markdownDescription": "Sets the type of statements logged.\n\nFor exhaustive performance analysis on test systems, set to 'all'.\nMost production setups will just want to use 'ddl' to make sure to record database-altering actions, but very secure setups may want to use 'mod' or even 'all'.  Can produce a lot of log volume.\n\nsee [log_statement documentation](https://postgresqlco.nf/doc/en/param/log_statement/)",
      "type": "string",
      "examples": [
        "none"
      ],
      "enum": [
        "none",
        "ddl",
        "mod",
        "all"
      ]
    },
    "log_statement_sample_rate": {
      "title": "log_statement_sample_rate",
      "description": "Fraction of statements exceeding log_min_duration_sample to be logged.\n\nMinimum: 0\n\nMaximum: 1\n\nsee <https://postgresqlco.nf/doc/en/param/log_statement_sample_rate/>",
      "markdownDescription": "Fraction of statements exceeding log_min_duration_sample to be logged.\n\nMinimum: 0\n\nMaximum: 1\n\nsee [log_statement_sample_rate documentation](https://postgresqlco.nf/doc/en/param/log_statement_sample_rate/)",
      "type": "string",
      "examples": [
        "1"
      ]
    },
    "log_statement_stats": {
      "title": "log_statement_stats",
      "description": "Writes cumulative performance statistics to the server log.\n\nUsed for full query path profiling.\nExclusive of the other three options.\n\nsee <https://postgresqlco.nf/doc/en/param/log_statement_stats/>",
      "markdownDescription": "Writes cumulative performance statistics to the server log.\n\nUsed for full query path profiling.\nExclusive of the other three options.\n\nsee [log_statement_stats documentation](https://postgresqlco.nf/doc/en/param/log_statement_stats/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "log_temp_files": {
      "title": "log_temp_files",
      "description": "Log the use of temporary files larger than this number of kilobytes.\n\nMinimum: -1\n\nMaximum: 2147483647\n\nThis logger is used for troubleshooting sorts and other activities which are spilling to disk.\nIf you use it at all, it's probably good to set it a something low like 1kB so that you know each query that spilled to disk, since any disk spill at all causes a dramatic slowdown in the query.  Can be used to see if you need more work_mem, temp_mem or maintenance_work_mem.\n\nsee <https://postgresqlco.nf/doc/en/param/log_temp_files/>",
      "markdownDescription": "Log the use of temporary files larger than this number of kilobytes.\n\nMinimum: -1\n\nMaximum: 2147483647\n\nThis logger is used for troubleshooting sorts and other activities which are spilling to disk.\nIf you use it at all, it's probably good to set it a something low like 1kB so that you know each query that spilled to disk, since any disk spill at all causes a dramatic slowdown in the query.  Can be used to see if you need more work_mem, temp_mem or maintenance_work_mem.\n\nsee [log_temp_files documentation](https://postgresqlco.nf/doc/en/param/log_temp_files/)",
      "type": "string",
      "examples": [
        "-1"
      ]
    },
    "log_timezone": {
      "title": "log_timezone",
      "description": "Sets the time zone to use in log messages.\n\nTo avoid confusion, it's often useful to log to the timezone where the DBA or sysadmin lives.\n\nsee <https://postgresqlco.nf/doc/en/param/log_timezone/>",
      "markdownDescription": "Sets the time zone to use in log messages.\n\nTo avoid confusion, it's often useful to log to the timezone where the DBA or sysadmin lives.\n\nsee [log_timezone documentation](https://postgresqlco.nf/doc/en/param/log_timezone/)",
      "type": "string",
      "examples": [
        "Etc/UTC"
      ]
    },
    "log_transaction_sample_rate": {
      "title": "log_transaction_sample_rate",
      "description": "Sets the fraction of transactions from which to log all statements.\n\nMinimum: 0\n\nMaximum: 1\n\nsee <https://postgresqlco.nf/doc/en/param/log_transaction_sample_rate/>",
      "markdownDescription": "Sets the fraction of transactions from which to log all statements.\n\nMinimum: 0\n\nMaximum: 1\n\nsee [log_transaction_sample_rate documentation](https://postgresqlco.nf/doc/en/param/log_transaction_sample_rate/)",
      "type": "string",
      "examples": [
        "0"
      ]
    },
    "log_truncate_on_rotation": {
      "title": "log_truncate_on_rotation",
      "description": "Truncate existing log files of same name during log rotation.\n\nSet to \"on\" for production with a reusable logfile name to limit log accumulation if you don't have a sysadmin script to do so.\n\nsee <https://postgresqlco.nf/doc/en/param/log_truncate_on_rotation/>",
      "markdownDescription": "Truncate existing log files of same name during log rotation.\n\nSet to \"on\" for production with a reusable logfile name to limit log accumulation if you don't have a sysadmin script to do so.\n\nsee [log_truncate_on_rotation documentation](https://postgresqlco.nf/doc/en/param/log_truncate_on_rotation/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "logging_collector": {
      "title": "logging_collector",
      "description": "Start a subprocess to capture stderr output and/or csvlogs into log files.\n\nOnly relevant for \"csvlog\" and \"stderr\".\n\nsee <https://postgresqlco.nf/doc/en/param/logging_collector/>",
      "markdownDescription": "Start a subprocess to capture stderr output and/or csvlogs into log files.\n\nOnly relevant for \"csvlog\" and \"stderr\".\n\nsee [logging_collector documentation](https://postgresqlco.nf/doc/en/param/logging_collector/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "logical_decoding_work_mem": {
      "title": "logical_decoding_work_mem",
      "description": "Sets the maximum memory to be used for logical decoding.\n\nMinimum: 64\n\nMaximum: 2147483647\n\nsee <https://postgresqlco.nf/doc/en/param/logical_decoding_work_mem/>",
      "markdownDescription": "Sets the maximum memory to be used for logical decoding.\n\nMinimum: 64\n\nMaximum: 2147483647\n\nsee [logical_decoding_work_mem documentation](https://postgresqlco.nf/doc/en/param/logical_decoding_work_mem/)",
      "type": "string",
      "examples": [
        "65536"
      ]
    },
    "maintenance_io_concurrency": {
      "title": "maintenance_io_concurrency",
      "description": "A variant of effective_io_concurrency that is used for maintenance work.\n\nMinimum: 0\n\nMaximum: 1000\n\nsee <https://postgresqlco.nf/doc/en/param/maintenance_io_concurrency/>",
      "markdownDescription": "A variant of effective_io_concurrency that is used for maintenance work.\n\nMinimum: 0\n\nMaximum: 1000\n\nsee [maintenance_io_concurrency documentation](https://postgresqlco.nf/doc/en/param/maintenance_io_concurrency/)",
      "type": "string",
      "examples": [
        "10"
      ]
    },
    "maintenance_work_mem": {
      "title": "maintenance_work_mem",
      "description": "Sets the maximum memory to be used for maintenance operations.\n\nMinimum: 1024\n\nMaximum: 2147483647\n\nSets the limit for the amount that autovacuum, manual vacuum, bulk index build and other maintenance routines are permitted to use.\nSetting it to a moderately high value will increase the efficiency of vacuum and other operations.  Applications which perform large ETL operations may need to allocate up to 1/4 of RAM to support large bulk vacuums.  Note that each autovacuum worker may use this much, so if using multiple autovacuum workers you may want to decrease this value so that they can't claim over 1/8 or 1/4 of available RAM.\n\nsee <https://postgresqlco.nf/doc/en/param/maintenance_work_mem/>",
      "markdownDescription": "Sets the maximum memory to be used for maintenance operations.\n\nMinimum: 1024\n\nMaximum: 2147483647\n\nSets the limit for the amount that autovacuum, manual vacuum, bulk index build and other maintenance routines are permitted to use.\nSetting it to a moderately high value will increase the efficiency of vacuum and other operations.  Applications which perform large ETL operations may need to allocate up to 1/4 of RAM to support large bulk vacuums.  Note that each autovacuum worker may use this much, so if using multiple autovacuum workers you may want to decrease this value so that they can't claim over 1/8 or 1/4 of available RAM.\n\nsee [maintenance_work_mem documentation](https://postgresqlco.nf/doc/en/param/maintenance_work_mem/)",
      "type": "string",
      "examples": [
        "65536"
      ]
    },
    "max_connections": {
      "title": "max_connections",
      "description": "Sets the maximum number of concurrent connections.\n\nMinimum: 1\n\nMaximum: 262143\n\nShould be set to the maximum number of connections which you expect to need at peak load.\nNote that each connection uses shared_buffer memory, as well as additional non-shared memory, so be careful not to run the system out of memory.  In general, if you need more than 200 connections, you should probably be making more use of connection pooling.\n\nsee <https://postgresqlco.nf/doc/en/param/max_connections/>",
      "markdownDescription": "Sets the maximum number of concurrent connections.\n\nMinimum: 1\n\nMaximum: 262143\n\nShould be set to the maximum number of connections which you expect to need at peak load.\nNote that each connection uses shared_buffer memory, as well as additional non-shared memory, so be careful not to run the system out of memory.  In general, if you need more than 200 connections, you should probably be making more use of connection pooling.\n\nsee [max_connections documentation](https://postgresqlco.nf/doc/en/param/max_connections/)",
      "type": "string",
      "examples": [
        "100"
      ]
    },
    "max_files_per_process": {
      "title": "max_files_per_process",
      "description": "Sets the maximum number of simultaneously open files for each server process.\n\nMinimum: 64\n\nMaximum: 2147483647\n\nIf you have a large database with many partitioned tables, you may want to increase this.\nNote that you will probably have to increase ulimits for the postgres user or system as well.\n\nsee <https://postgresqlco.nf/doc/en/param/max_files_per_process/>",
      "markdownDescription": "Sets the maximum number of simultaneously open files for each server process.\n\nMinimum: 64\n\nMaximum: 2147483647\n\nIf you have a large database with many partitioned tables, you may want to increase this.\nNote that you will probably have to increase ulimits for the postgres user or system as well.\n\nsee [max_files_per_process documentation](https://postgresqlco.nf/doc/en/param/max_files_per_process/)",
      "type": "string",
      "examples": [
        "1000"
      ]
    },
    "max_function_args": {
      "title": "max_function_args",
      "description": "Shows the maximum number of function arguments.\n\nMinimum: 100\n\nMaximum: 100\n\nInformational: lets you know of non-standard installation or compile options.\n\nsee <https://postgresqlco.nf/doc/en/param/max_function_args/>",
      "markdownDescription": "Shows the maximum number of function arguments.\n\nMinimum: 100\n\nMaximum: 100\n\nInformational: lets you know of non-standard installation or compile options.\n\nsee [max_function_args documentation](https://postgresqlco.nf/doc/en/param/max_function_args/)",
      "type": "string",
      "examples": [
        "100"
      ]
    },
    "max_identifier_length": {
      "title": "max_identifier_length",
      "description": "Shows the maximum identifier length.\n\nMinimum: 63\n\nMaximum: 63\n\nInformational: lets you know of non-standard installation or compile options.\n\nsee <https://postgresqlco.nf/doc/en/param/max_identifier_length/>",
      "markdownDescription": "Shows the maximum identifier length.\n\nMinimum: 63\n\nMaximum: 63\n\nInformational: lets you know of non-standard installation or compile options.\n\nsee [max_identifier_length documentation](https://postgresqlco.nf/doc/en/param/max_identifier_length/)",
      "type": "string",
      "examples": [
        "63"
      ]
    },
    "max_index_keys": {
      "title": "max_index_keys",
      "description": "Shows the maximum number of index keys.\n\nMinimum: 32\n\nMaximum: 32\n\nInformational: lets you know of non-standard installation or compile options.\n\nsee <https://postgresqlco.nf/doc/en/param/max_index_keys/>",
      "markdownDescription": "Shows the maximum number of index keys.\n\nMinimum: 32\n\nMaximum: 32\n\nInformational: lets you know of non-standard installation or compile options.\n\nsee [max_index_keys documentation](https://postgresqlco.nf/doc/en/param/max_index_keys/)",
      "type": "string",
      "examples": [
        "32"
      ]
    },
    "max_locks_per_transaction": {
      "title": "max_locks_per_transaction",
      "description": "Sets the maximum number of locks per transaction.\n\nMinimum: 10\n\nMaximum: 2147483647\n\nSome databases with very complex schema or with many long-running tranactions need a higher amount.\nThis is rare though.\n\nsee <https://postgresqlco.nf/doc/en/param/max_locks_per_transaction/>",
      "markdownDescription": "Sets the maximum number of locks per transaction.\n\nMinimum: 10\n\nMaximum: 2147483647\n\nSome databases with very complex schema or with many long-running tranactions need a higher amount.\nThis is rare though.\n\nsee [max_locks_per_transaction documentation](https://postgresqlco.nf/doc/en/param/max_locks_per_transaction/)",
      "type": "string",
      "examples": [
        "64"
      ]
    },
    "max_logical_replication_workers": {
      "title": "max_logical_replication_workers",
      "description": "Maximum number of logical replication worker processes.\n\nMinimum: 0\n\nMaximum: 262143\n\n... unless logical replication is falling behind and the replica isn't handling other traffic\n\nsee <https://postgresqlco.nf/doc/en/param/max_logical_replication_workers/>",
      "markdownDescription": "Maximum number of logical replication worker processes.\n\nMinimum: 0\n\nMaximum: 262143\n\n... unless logical replication is falling behind and the replica isn't handling other traffic\n\nsee [max_logical_replication_workers documentation](https://postgresqlco.nf/doc/en/param/max_logical_replication_workers/)",
      "type": "string",
      "examples": [
        "4"
      ]
    },
    "max_parallel_maintenance_workers": {
      "title": "max_parallel_maintenance_workers",
      "description": "Sets the maximum number of parallel processes per maintenance operation.\n\nMinimum: 0\n\nMaximum: 1024\n\nsee <https://postgresqlco.nf/doc/en/param/max_parallel_maintenance_workers/>",
      "markdownDescription": "Sets the maximum number of parallel processes per maintenance operation.\n\nMinimum: 0\n\nMaximum: 1024\n\nsee [max_parallel_maintenance_workers documentation](https://postgresqlco.nf/doc/en/param/max_parallel_maintenance_workers/)",
      "type": "string",
      "examples": [
        "2"
      ]
    },
    "max_parallel_workers": {
      "title": "max_parallel_workers",
      "description": "Sets the maximum number of parallel workers that can be active at one time.\n\nMinimum: 0\n\nMaximum: 1024\n\n...\nif you think you can benefit from parallel query, and even cores/1 for DW systems.\n\nsee <https://postgresqlco.nf/doc/en/param/max_parallel_workers/>",
      "markdownDescription": "Sets the maximum number of parallel workers that can be active at one time.\n\nMinimum: 0\n\nMaximum: 1024\n\n...\nif you think you can benefit from parallel query, and even cores/1 for DW systems.\n\nsee [max_parallel_workers documentation](https://postgresqlco.nf/doc/en/param/max_parallel_workers/)",
      "type": "string",
      "examples": [
        "32"
      ]
    },
    "max_parallel_workers_per_gather": {
      "title": "max_parallel_workers_per_gather",
      "description": "Sets the maximum number of parallel processes per executor node.\n\nMinimum: 0\n\nMaximum: 1024\n\nIncrease if you plan to use parallel query to 4 or 8, depending on cores/concurrent sessions. \n\nsee <https://postgresqlco.nf/doc/en/param/max_parallel_workers_per_gather/>",
      "markdownDescription": "Sets the maximum number of parallel processes per executor node.\n\nMinimum: 0\n\nMaximum: 1024\n\nIncrease if you plan to use parallel query to 4 or 8, depending on cores/concurrent sessions. \n\nsee [max_parallel_workers_per_gather documentation](https://postgresqlco.nf/doc/en/param/max_parallel_workers_per_gather/)",
      "type": "string",
      "examples": [
        "2"
      ]
    },
    "max_pred_locks_per_page": {
      "title": "max_pred_locks_per_page",
      "description": "Sets the maximum number of predicate-locked tuples per page.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee <https://postgresqlco.nf/doc/en/param/max_pred_locks_per_page/>",
      "markdownDescription": "Sets the maximum number of predicate-locked tuples per page.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee [max_pred_locks_per_page documentation](https://postgresqlco.nf/doc/en/param/max_pred_locks_per_page/)",
      "type": "string",
      "examples": [
        "2"
      ]
    },
    "max_pred_locks_per_relation": {
      "title": "max_pred_locks_per_relation",
      "description": "Sets the maximum number of predicate-locked pages and tuples per relation.\n\nMinimum: -2147483648\n\nMaximum: 2147483647\n\nsee <https://postgresqlco.nf/doc/en/param/max_pred_locks_per_relation/>",
      "markdownDescription": "Sets the maximum number of predicate-locked pages and tuples per relation.\n\nMinimum: -2147483648\n\nMaximum: 2147483647\n\nsee [max_pred_locks_per_relation documentation](https://postgresqlco.nf/doc/en/param/max_pred_locks_per_relation/)",
      "type": "string",
      "examples": [
        "-2"
      ]
    },
    "max_pred_locks_per_transaction": {
      "title": "max_pred_locks_per_transaction",
      "description": "Sets the maximum number of predicate locks per transaction.\n\nMinimum: 10\n\nMaximum: 2147483647\n\nRaise if you have a lot of tables and are seeing some transactions fail, but modestly as a larger transaction table is expensive.\n\nsee <https://postgresqlco.nf/doc/en/param/max_pred_locks_per_transaction/>",
      "markdownDescription": "Sets the maximum number of predicate locks per transaction.\n\nMinimum: 10\n\nMaximum: 2147483647\n\nRaise if you have a lot of tables and are seeing some transactions fail, but modestly as a larger transaction table is expensive.\n\nsee [max_pred_locks_per_transaction documentation](https://postgresqlco.nf/doc/en/param/max_pred_locks_per_transaction/)",
      "type": "string",
      "examples": [
        "64"
      ]
    },
    "max_prepared_transactions": {
      "title": "max_prepared_transactions",
      "description": "Sets the maximum number of simultaneously prepared transactions.\n\nMinimum: 0\n\nMaximum: 262143\n\nMost applications do not use XA prepared transactions, so should set this parameter to 0.\nIf you do require prepared transactions, you should set this equal to max_connections to avoid blocking.  May require increasing kernel memory parameters.\n\nsee <https://postgresqlco.nf/doc/en/param/max_prepared_transactions/>",
      "markdownDescription": "Sets the maximum number of simultaneously prepared transactions.\n\nMinimum: 0\n\nMaximum: 262143\n\nMost applications do not use XA prepared transactions, so should set this parameter to 0.\nIf you do require prepared transactions, you should set this equal to max_connections to avoid blocking.  May require increasing kernel memory parameters.\n\nsee [max_prepared_transactions documentation](https://postgresqlco.nf/doc/en/param/max_prepared_transactions/)",
      "type": "string",
      "examples": [
        "0"
      ]
    },
    "max_replication_slots": {
      "title": "max_replication_slots",
      "description": "Sets the maximum number of simultaneously defined replication slots.\n\nMinimum: 0\n\nMaximum: 262143\n\nSet to twice as many replicas as you ever expect to have.\n\nsee <https://postgresqlco.nf/doc/en/param/max_replication_slots/>",
      "markdownDescription": "Sets the maximum number of simultaneously defined replication slots.\n\nMinimum: 0\n\nMaximum: 262143\n\nSet to twice as many replicas as you ever expect to have.\n\nsee [max_replication_slots documentation](https://postgresqlco.nf/doc/en/param/max_replication_slots/)",
      "type": "string",
      "examples": [
        "32"
      ]
    },
    "max_slot_wal_keep_size": {
      "title": "max_slot_wal_keep_size",
      "description": "Sets the maximum WAL size that can be reserved by replication slots.\n\nMinimum: -1\n\nMaximum: 2147483647\n\nsee <https://postgresqlco.nf/doc/en/param/max_slot_wal_keep_size/>",
      "markdownDescription": "Sets the maximum WAL size that can be reserved by replication slots.\n\nMinimum: -1\n\nMaximum: 2147483647\n\nsee [max_slot_wal_keep_size documentation](https://postgresqlco.nf/doc/en/param/max_slot_wal_keep_size/)",
      "type": "string",
      "examples": [
        "-1"
      ]
    },
    "max_stack_depth": {
      "title": "max_stack_depth",
      "description": "Sets the maximum stack depth, in kilobytes.\n\nMinimum: 100\n\nMaximum: 2147483647\n\nIncrease this if you have experienced the relevant error.\n\nsee <https://postgresqlco.nf/doc/en/param/max_stack_depth/>",
      "markdownDescription": "Sets the maximum stack depth, in kilobytes.\n\nMinimum: 100\n\nMaximum: 2147483647\n\nIncrease this if you have experienced the relevant error.\n\nsee [max_stack_depth documentation](https://postgresqlco.nf/doc/en/param/max_stack_depth/)",
      "type": "string",
      "examples": [
        "2048"
      ]
    },
    "max_standby_archive_delay": {
      "title": "max_standby_archive_delay",
      "description": "Sets the maximum delay before canceling queries when a hot standby server is processing archived WAL data.\n\nMinimum: -1\n\nMaximum: 2147483647\n\nIf you are replicating primarily for failover, set this to a very low value (like 0) in order to keep the standby as up to date as possible.\nIf this standby is running queries as its primary role, set to the length of time of the longest-running query you want to allow.\n\nsee <https://postgresqlco.nf/doc/en/param/max_standby_archive_delay/>",
      "markdownDescription": "Sets the maximum delay before canceling queries when a hot standby server is processing archived WAL data.\n\nMinimum: -1\n\nMaximum: 2147483647\n\nIf you are replicating primarily for failover, set this to a very low value (like 0) in order to keep the standby as up to date as possible.\nIf this standby is running queries as its primary role, set to the length of time of the longest-running query you want to allow.\n\nsee [max_standby_archive_delay documentation](https://postgresqlco.nf/doc/en/param/max_standby_archive_delay/)",
      "type": "string",
      "examples": [
        "30000"
      ]
    },
    "max_standby_streaming_delay": {
      "title": "max_standby_streaming_delay",
      "description": "Sets the maximum delay before canceling queries when a hot standby server is processing streamed WAL data.\n\nMinimum: -1\n\nMaximum: 2147483647\n\nIf you are replicating primarily for failover, set this to a very low value (like 0) in order to keep the standby as up to date as possible.\nIf this standby is running queries as its primary role, set to the length of time of the longest-running query you want to allow.\n\nsee <https://postgresqlco.nf/doc/en/param/max_standby_streaming_delay/>",
      "markdownDescription": "Sets the maximum delay before canceling queries when a hot standby server is processing streamed WAL data.\n\nMinimum: -1\n\nMaximum: 2147483647\n\nIf you are replicating primarily for failover, set this to a very low value (like 0) in order to keep the standby as up to date as possible.\nIf this standby is running queries as its primary role, set to the length of time of the longest-running query you want to allow.\n\nsee [max_standby_streaming_delay documentation](https://postgresqlco.nf/doc/en/param/max_standby_streaming_delay/)",
      "type": "string",
      "examples": [
        "30000"
      ]
    },
    "max_sync_workers_per_subscription": {
      "title": "max_sync_workers_per_subscription",
      "description": "Maximum number of table synchronization workers per subscription.\n\nMinimum: 0\n\nMaximum: 262143\n\nConsider raising to cores/2 when initially synchronizing logical replication for a new replica.\n\nsee <https://postgresqlco.nf/doc/en/param/max_sync_workers_per_subscription/>",
      "markdownDescription": "Maximum number of table synchronization workers per subscription.\n\nMinimum: 0\n\nMaximum: 262143\n\nConsider raising to cores/2 when initially synchronizing logical replication for a new replica.\n\nsee [max_sync_workers_per_subscription documentation](https://postgresqlco.nf/doc/en/param/max_sync_workers_per_subscription/)",
      "type": "string",
      "examples": [
        "2"
      ]
    },
    "max_wal_senders": {
      "title": "max_wal_senders",
      "description": "Sets the maximum number of simultaneously running WAL sender processes.\n\nMinimum: 0\n\nMaximum: 262143\n\nIf you are replicating, you want to set this to the maximum number of standby servers you might possibly have.\nPerformance impact when set above zero, but no additional penalty for setting it higher.\n\nsee <https://postgresqlco.nf/doc/en/param/max_wal_senders/>",
      "markdownDescription": "Sets the maximum number of simultaneously running WAL sender processes.\n\nMinimum: 0\n\nMaximum: 262143\n\nIf you are replicating, you want to set this to the maximum number of standby servers you might possibly have.\nPerformance impact when set above zero, but no additional penalty for setting it higher.\n\nsee [max_wal_senders documentation](https://postgresqlco.nf/doc/en/param/max_wal_senders/)",
      "type": "string",
      "examples": [
        "10"
      ]
    },
    "max_wal_size": {
      "title": "max_wal_size",
      "description": "Sets the WAL size that triggers a checkpoint.\n\nMinimum: 2\n\nMaximum: 2147483647\n\n... except for databases that write more than 1GB/hour of data, in which case increase the size of the log so that it's at least an hour worth of logs\n\nsee <https://postgresqlco.nf/doc/en/param/max_wal_size/>",
      "markdownDescription": "Sets the WAL size that triggers a checkpoint.\n\nMinimum: 2\n\nMaximum: 2147483647\n\n... except for databases that write more than 1GB/hour of data, in which case increase the size of the log so that it's at least an hour worth of logs\n\nsee [max_wal_size documentation](https://postgresqlco.nf/doc/en/param/max_wal_size/)",
      "type": "string",
      "examples": [
        "1024"
      ]
    },
    "max_worker_processes": {
      "title": "max_worker_processes",
      "description": "Maximum number of concurrent worker processes.\n\nMinimum: 0\n\nMaximum: 262143\n\nIncrease to max_parallel_workers + other workers, such as workers for logical replication and custom background workers.\nNot more than your number of cores, though.\n\nsee <https://postgresqlco.nf/doc/en/param/max_worker_processes/>",
      "markdownDescription": "Maximum number of concurrent worker processes.\n\nMinimum: 0\n\nMaximum: 262143\n\nIncrease to max_parallel_workers + other workers, such as workers for logical replication and custom background workers.\nNot more than your number of cores, though.\n\nsee [max_worker_processes documentation](https://postgresqlco.nf/doc/en/param/max_worker_processes/)",
      "type": "string",
      "examples": [
        "32"
      ]
    },
    "min_dynamic_shared_memory": {
      "title": "min_dynamic_shared_memory",
      "description": "Amount of dynamic shared memory reserved at startup.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee <https://postgresqlco.nf/doc/en/param/min_dynamic_shared_memory/>",
      "markdownDescription": "Amount of dynamic shared memory reserved at startup.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee [min_dynamic_shared_memory documentation](https://postgresqlco.nf/doc/en/param/min_dynamic_shared_memory/)",
      "type": "string",
      "examples": [
        "0"
      ]
    },
    "min_parallel_index_scan_size": {
      "title": "min_parallel_index_scan_size",
      "description": "Sets the minimum amount of index data for a parallel scan.\n\nMinimum: 0\n\nMaximum: 715827882\n\nsee <https://postgresqlco.nf/doc/en/param/min_parallel_index_scan_size/>",
      "markdownDescription": "Sets the minimum amount of index data for a parallel scan.\n\nMinimum: 0\n\nMaximum: 715827882\n\nsee [min_parallel_index_scan_size documentation](https://postgresqlco.nf/doc/en/param/min_parallel_index_scan_size/)",
      "type": "string",
      "examples": [
        "64"
      ]
    },
    "min_parallel_table_scan_size": {
      "title": "min_parallel_table_scan_size",
      "description": "Sets the minimum amount of table data for a parallel scan.\n\nMinimum: 0\n\nMaximum: 715827882\n\n... , unless doing IoT or a read-only database.\nRaise to 100MB or so if your traffic on the database is very bursty, to prevent the WAL from shrinking too much.\n\nsee <https://postgresqlco.nf/doc/en/param/min_parallel_table_scan_size/>",
      "markdownDescription": "Sets the minimum amount of table data for a parallel scan.\n\nMinimum: 0\n\nMaximum: 715827882\n\n... , unless doing IoT or a read-only database.\nRaise to 100MB or so if your traffic on the database is very bursty, to prevent the WAL from shrinking too much.\n\nsee [min_parallel_table_scan_size documentation](https://postgresqlco.nf/doc/en/param/min_parallel_table_scan_size/)",
      "type": "string",
      "examples": [
        "1024"
      ]
    },
    "min_wal_size": {
      "title": "min_wal_size",
      "description": "Sets the minimum size to shrink the WAL to.\n\nMinimum: 2\n\nMaximum: 2147483647\n\nsee <https://postgresqlco.nf/doc/en/param/min_wal_size/>",
      "markdownDescription": "Sets the minimum size to shrink the WAL to.\n\nMinimum: 2\n\nMaximum: 2147483647\n\nsee [min_wal_size documentation](https://postgresqlco.nf/doc/en/param/min_wal_size/)",
      "type": "string",
      "examples": [
        "80"
      ]
    },
    "old_snapshot_threshold": {
      "title": "old_snapshot_threshold",
      "description": "Time before a snapshot is too old to read pages changed after the snapshot was taken.\n\nMinimum: -1\n\nMaximum: 86400\n\n... or the length of the longest transaction you expect to run + 1 hour.\n\nsee <https://postgresqlco.nf/doc/en/param/old_snapshot_threshold/>",
      "markdownDescription": "Time before a snapshot is too old to read pages changed after the snapshot was taken.\n\nMinimum: -1\n\nMaximum: 86400\n\n... or the length of the longest transaction you expect to run + 1 hour.\n\nsee [old_snapshot_threshold documentation](https://postgresqlco.nf/doc/en/param/old_snapshot_threshold/)",
      "type": "string",
      "examples": [
        "-1"
      ]
    },
    "parallel_leader_participation": {
      "title": "parallel_leader_participation",
      "description": "Controls whether Gather and Gather Merge also run subplans.\n\nsee <https://postgresqlco.nf/doc/en/param/parallel_leader_participation/>",
      "markdownDescription": "Controls whether Gather and Gather Merge also run subplans.\n\nsee [parallel_leader_participation documentation](https://postgresqlco.nf/doc/en/param/parallel_leader_participation/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "parallel_setup_cost": {
      "title": "parallel_setup_cost",
      "description": "Sets the planner's estimate of the cost of starting up worker processes for parallel query.\n\nMinimum: 0\n\nMaximum: 1.79769e+308\n\nsee <https://postgresqlco.nf/doc/en/param/parallel_setup_cost/>",
      "markdownDescription": "Sets the planner's estimate of the cost of starting up worker processes for parallel query.\n\nMinimum: 0\n\nMaximum: 1.79769e+308\n\nsee [parallel_setup_cost documentation](https://postgresqlco.nf/doc/en/param/parallel_setup_cost/)",
      "type": "string",
      "examples": [
        "1000"
      ]
    },
    "parallel_tuple_cost": {
      "title": "parallel_tuple_cost",
      "description": "Sets the planner's estimate of the cost of passing each tuple (row) from worker to leader backend.\n\nMinimum: 0\n\nMaximum: 1.79769e+308\n\nsee <https://postgresqlco.nf/doc/en/param/parallel_tuple_cost/>",
      "markdownDescription": "Sets the planner's estimate of the cost of passing each tuple (row) from worker to leader backend.\n\nMinimum: 0\n\nMaximum: 1.79769e+308\n\nsee [parallel_tuple_cost documentation](https://postgresqlco.nf/doc/en/param/parallel_tuple_cost/)",
      "type": "string",
      "examples": [
        "0.1"
      ]
    },
    "password_encryption": {
      "title": "password_encryption",
      "description": "Chooses the algorithm for encrypting passwords.\n\nThere is no good reason for this to be set to \"off\".\n\nsee <https://postgresqlco.nf/doc/en/param/password_encryption/>",
      "markdownDescription": "Chooses the algorithm for encrypting passwords.\n\nThere is no good reason for this to be set to \"off\".\n\nsee [password_encryption documentation](https://postgresqlco.nf/doc/en/param/password_encryption/)",
      "type": "string",
      "examples": [
        "scram-sha-256"
      ],
      "enum": [
        "md5",
        "scram-sha-256"
      ]
    },
    "pg_stat_statements.max": {
      "title": "pg_stat_statements.max",
      "description": "Sets the maximum number of statements tracked by pg_stat_statements.\n\nMinimum: 100\n\nMaximum: 1073741823\n\nsee <https://postgresqlco.nf/doc/en/param/pg_stat_statements.max/>",
      "markdownDescription": "Sets the maximum number of statements tracked by pg_stat_statements.\n\nMinimum: 100\n\nMaximum: 1073741823\n\nsee [pg_stat_statements.max documentation](https://postgresqlco.nf/doc/en/param/pg_stat_statements.max/)",
      "type": "string",
      "examples": [
        "10000"
      ]
    },
    "pg_stat_statements.save": {
      "title": "pg_stat_statements.save",
      "description": "Save pg_stat_statements statistics across server shutdowns.\n\nsee <https://postgresqlco.nf/doc/en/param/pg_stat_statements.save/>",
      "markdownDescription": "Save pg_stat_statements statistics across server shutdowns.\n\nsee [pg_stat_statements.save documentation](https://postgresqlco.nf/doc/en/param/pg_stat_statements.save/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "pg_stat_statements.track": {
      "title": "pg_stat_statements.track",
      "description": "Selects which statements are tracked by pg_stat_statements.\n\nsee <https://postgresqlco.nf/doc/en/param/pg_stat_statements.track/>",
      "markdownDescription": "Selects which statements are tracked by pg_stat_statements.\n\nsee [pg_stat_statements.track documentation](https://postgresqlco.nf/doc/en/param/pg_stat_statements.track/)",
      "type": "string",
      "examples": [
        "all"
      ],
      "enum": [
        "none",
        "top",
        "all"
      ]
    },
    "pg_stat_statements.track_planning": {
      "title": "pg_stat_statements.track_planning",
      "description": "Selects whether planning duration is tracked by pg_stat_statements.\n\nsee <https://postgresqlco.nf/doc/en/param/pg_stat_statements.track_planning/>",
      "markdownDescription": "Selects whether planning duration is tracked by pg_stat_statements.\n\nsee [pg_stat_statements.track_planning documentation](https://postgresqlco.nf/doc/en/param/pg_stat_statements.track_planning/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "pg_stat_statements.track_utility": {
      "title": "pg_stat_statements.track_utility",
      "description": "Selects whether utility commands are tracked by pg_stat_statements.\n\nsee <https://postgresqlco.nf/doc/en/param/pg_stat_statements.track_utility/>",
      "markdownDescription": "Selects whether utility commands are tracked by pg_stat_statements.\n\nsee [pg_stat_statements.track_utility documentation](https://postgresqlco.nf/doc/en/param/pg_stat_statements.track_utility/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "plan_cache_mode": {
      "title": "plan_cache_mode",
      "description": "Controls the planner's selection of custom or generic plan.\n\nsee <https://postgresqlco.nf/doc/en/param/plan_cache_mode/>",
      "markdownDescription": "Controls the planner's selection of custom or generic plan.\n\nsee [plan_cache_mode documentation](https://postgresqlco.nf/doc/en/param/plan_cache_mode/)",
      "type": "string",
      "examples": [
        "auto"
      ],
      "enum": [
        "auto",
        "force_generic_plan",
        "force_custom_plan"
      ]
    },
    "port": {
      "title": "port",
      "description": "Sets the TCP port the server listens on.\n\nMinimum: 1\n\nMaximum: 65535\n\nAlternate ports are primarily useful for running several versions, or instances, of PostgreSQL on one machine.\nHowever, if you're using an alternate port to support several versions, it's often better to compile in the port number.\n\nsee <https://postgresqlco.nf/doc/en/param/port/>",
      "markdownDescription": "Sets the TCP port the server listens on.\n\nMinimum: 1\n\nMaximum: 65535\n\nAlternate ports are primarily useful for running several versions, or instances, of PostgreSQL on one machine.\nHowever, if you're using an alternate port to support several versions, it's often better to compile in the port number.\n\nsee [port documentation](https://postgresqlco.nf/doc/en/param/port/)",
      "type": "string",
      "examples": [
        "5432"
      ]
    },
    "post_auth_delay": {
      "title": "post_auth_delay",
      "description": "Waits N seconds on connection startup after authentication.\n\nMinimum: 0\n\nMaximum: 2147\n\nPrimarily used for attaching debuggers to sessions.\n\nsee <https://postgresqlco.nf/doc/en/param/post_auth_delay/>",
      "markdownDescription": "Waits N seconds on connection startup after authentication.\n\nMinimum: 0\n\nMaximum: 2147\n\nPrimarily used for attaching debuggers to sessions.\n\nsee [post_auth_delay documentation](https://postgresqlco.nf/doc/en/param/post_auth_delay/)",
      "type": "string",
      "examples": [
        "0"
      ]
    },
    "pre_auth_delay": {
      "title": "pre_auth_delay",
      "description": "Waits N seconds on connection startup before authentication.\n\nMinimum: 0\n\nMaximum: 60\n\nPrimarily used for attaching debuggers to sessions.\n\nsee <https://postgresqlco.nf/doc/en/param/pre_auth_delay/>",
      "markdownDescription": "Waits N seconds on connection startup before authentication.\n\nMinimum: 0\n\nMaximum: 60\n\nPrimarily used for attaching debuggers to sessions.\n\nsee [pre_auth_delay documentation](https://postgresqlco.nf/doc/en/param/pre_auth_delay/)",
      "type": "string",
      "examples": [
        "0"
      ]
    },
    "primary_conninfo": {
      "title": "primary_conninfo",
      "description": "Sets the connection string to be used to connect to the sending server.\n\nsee <https://postgresqlco.nf/doc/en/param/primary_conninfo/>",
      "markdownDescription": "Sets the connection string to be used to connect to the sending server.\n\nsee [primary_conninfo documentation](https://postgresqlco.nf/doc/en/param/primary_conninfo/)",
      "type": "string",
      "examples": [
        "host=pg-rw user=streaming_replica port=5432 sslkey=/controller/certificates/streaming_replica.key sslcert=/controller/certificates/streaming_replica.crt sslrootcert=/controller/certificates/server-ca.crt application_name=pg-2 sslmode=verify-ca"
      ]
    },
    "primary_slot_name": {
      "title": "primary_slot_name",
      "description": "Sets the name of the replication slot to use on the sending server.\n\nsee <https://postgresqlco.nf/doc/en/param/primary_slot_name/>",
      "markdownDescription": "Sets the name of the replication slot to use on the sending server.\n\nsee [primary_slot_name documentation](https://postgresqlco.nf/doc/en/param/primary_slot_name/)",
      "type": "string"
    },
    "promote_trigger_file": {
      "title": "promote_trigger_file",
      "description": "Specifies a file name whose presence ends recovery in the standby.\n\nsee <https://postgresqlco.nf/doc/en/param/promote_trigger_file/>",
      "markdownDescription": "Specifies a file name whose presence ends recovery in the standby.\n\nsee [promote_trigger_file documentation](https://postgresqlco.nf/doc/en/param/promote_trigger_file/)",
      "type": "string"
    },
    "quote_all_identifiers": {
      "title": "quote_all_identifiers",
      "description": "When generating SQL fragments, quote all identifiers.\n\nsee <https://postgresqlco.nf/doc/en/param/quote_all_identifiers/>",
      "markdownDescription": "When generating SQL fragments, quote all identifiers.\n\nsee [quote_all_identifiers documentation](https://postgresqlco.nf/doc/en/param/quote_all_identifiers/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "random_page_cost": {
      "title": "random_page_cost",
      "description": "Sets the planner's estimate of the cost of a nonsequentially fetched disk page.\n\nMinimum: 0\n\nMaximum: 1.79769e+308\n\nSets the ratio of seek to scan time for your database storage.\nShould not be altered unless you're using special storage (SSDs, high end SANs, etc.) where seek/scan ratios are actually different.  If you need the database to favor indexes more, tune effective_cache_size and some of the cpu_* costs instead.\n\nsee <https://postgresqlco.nf/doc/en/param/random_page_cost/>",
      "markdownDescription": "Sets the planner's estimate of the cost of a nonsequentially fetched disk page.\n\nMinimum: 0\n\nMaximum: 1.79769e+308\n\nSets the ratio of seek to scan time for your database storage.\nShould not be altered unless you're using special storage (SSDs, high end SANs, etc.) where seek/scan ratios are actually different.  If you need the database to favor indexes more, tune effective_cache_size and some of the cpu_* costs instead.\n\nsee [random_page_cost documentation](https://postgresqlco.nf/doc/en/param/random_page_cost/)",
      "type": "string",
      "examples": [
        "4"
      ]
    },
    "recovery_end_command": {
      "title": "recovery_end_command",
      "description": "Sets the shell command that will be executed once at the end of recovery.\n\nsee <https://postgresqlco.nf/doc/en/param/recovery_end_command/>",
      "markdownDescription": "Sets the shell command that will be executed once at the end of recovery.\n\nsee [recovery_end_command documentation](https://postgresqlco.nf/doc/en/param/recovery_end_command/)",
      "type": "string"
    },
    "recovery_init_sync_method": {
      "title": "recovery_init_sync_method",
      "description": "Sets the method for synchronizing the data directory before crash recovery.\n\nsee <https://postgresqlco.nf/doc/en/param/recovery_init_sync_method/>",
      "markdownDescription": "Sets the method for synchronizing the data directory before crash recovery.\n\nsee [recovery_init_sync_method documentation](https://postgresqlco.nf/doc/en/param/recovery_init_sync_method/)",
      "type": "string",
      "examples": [
        "fsync"
      ],
      "enum": [
        "fsync",
        "syncfs"
      ]
    },
    "recovery_min_apply_delay": {
      "title": "recovery_min_apply_delay",
      "description": "Sets the minimum delay for applying changes during recovery.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee <https://postgresqlco.nf/doc/en/param/recovery_min_apply_delay/>",
      "markdownDescription": "Sets the minimum delay for applying changes during recovery.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee [recovery_min_apply_delay documentation](https://postgresqlco.nf/doc/en/param/recovery_min_apply_delay/)",
      "type": "string",
      "examples": [
        "0"
      ]
    },
    "recovery_target": {
      "title": "recovery_target",
      "description": "Set to \"immediate\" to end recovery as soon as a consistent state is reached.\n\nsee <https://postgresqlco.nf/doc/en/param/recovery_target/>",
      "markdownDescription": "Set to \"immediate\" to end recovery as soon as a consistent state is reached.\n\nsee [recovery_target documentation](https://postgresqlco.nf/doc/en/param/recovery_target/)",
      "type": "string"
    },
    "recovery_target_action": {
      "title": "recovery_target_action",
      "description": "Sets the action to perform upon reaching the recovery target.\n\nsee <https://postgresqlco.nf/doc/en/param/recovery_target_action/>",
      "markdownDescription": "Sets the action to perform upon reaching the recovery target.\n\nsee [recovery_target_action documentation](https://postgresqlco.nf/doc/en/param/recovery_target_action/)",
      "type": "string",
      "examples": [
        "pause"
      ],
      "enum": [
        "pause",
        "promote",
        "shutdown"
      ]
    },
    "recovery_target_inclusive": {
      "title": "recovery_target_inclusive",
      "description": "Sets whether to include or exclude transaction with recovery target.\n\nsee <https://postgresqlco.nf/doc/en/param/recovery_target_inclusive/>",
      "markdownDescription": "Sets whether to include or exclude transaction with recovery target.\n\nsee [recovery_target_inclusive documentation](https://postgresqlco.nf/doc/en/param/recovery_target_inclusive/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "recovery_target_lsn": {
      "title": "recovery_target_lsn",
      "description": "Sets the LSN of the write-ahead log location up to which recovery will proceed.\n\nsee <https://postgresqlco.nf/doc/en/param/recovery_target_lsn/>",
      "markdownDescription": "Sets the LSN of the write-ahead log location up to which recovery will proceed.\n\nsee [recovery_target_lsn documentation](https://postgresqlco.nf/doc/en/param/recovery_target_lsn/)",
      "type": "string"
    },
    "recovery_target_name": {
      "title": "recovery_target_name",
      "description": "Sets the named restore point up to which recovery will proceed.\n\nsee <https://postgresqlco.nf/doc/en/param/recovery_target_name/>",
      "markdownDescription": "Sets the named restore point up to which recovery will proceed.\n\nsee [recovery_target_name documentation](https://postgresqlco.nf/doc/en/param/recovery_target_name/)",
      "type": "string"
    },
    "recovery_target_time": {
      "title": "recovery_target_time",
      "description": "Sets the time stamp up to which recovery will proceed.\n\nsee <https://postgresqlco.nf/doc/en/param/recovery_target_time/>",
      "markdownDescription": "Sets the time stamp up to which recovery will proceed.\n\nsee [recovery_target_time documentation](https://postgresqlco.nf/doc/en/param/recovery_target_time/)",
      "type": "string"
    },
    "recovery_target_timeline": {
      "title": "recovery_target_timeline",
      "description": "Specifies the timeline to recover into.\n\nsee <https://postgresqlco.nf/doc/en/param/recovery_target_timeline/>",
      "markdownDescription": "Specifies the timeline to recover into.\n\nsee [recovery_target_timeline documentation](https://postgresqlco.nf/doc/en/param/recovery_target_timeline/)",
      "type": "string",
      "examples": [
        "latest"
      ]
    },
    "recovery_target_xid": {
      "title": "recovery_target_xid",
      "description": "Sets the transaction ID up to which recovery will proceed.\n\nsee <https://postgresqlco.nf/doc/en/param/recovery_target_xid/>",
      "markdownDescription": "Sets the transaction ID up to which recovery will proceed.\n\nsee [recovery_target_xid documentation](https://postgresqlco.nf/doc/en/param/recovery_target_xid/)",
      "type": "string"
    },
    "remove_temp_files_after_crash": {
      "title": "remove_temp_files_after_crash",
      "description": "Remove temporary files after backend crash.\n\nsee <https://postgresqlco.nf/doc/en/param/remove_temp_files_after_crash/>",
      "markdownDescription": "Remove temporary files after backend crash.\n\nsee [remove_temp_files_after_crash documentation](https://postgresqlco.nf/doc/en/param/remove_temp_files_after_crash/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "restart_after_crash": {
      "title": "restart_after_crash",
      "description": "Reinitialize server after backend crash.\n\n...\nunless deliberately running postgres in \"ephemral\" mode\n\nsee <https://postgresqlco.nf/doc/en/param/restart_after_crash/>",
      "markdownDescription": "Reinitialize server after backend crash.\n\n...\nunless deliberately running postgres in \"ephemral\" mode\n\nsee [restart_after_crash documentation](https://postgresqlco.nf/doc/en/param/restart_after_crash/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "restore_command": {
      "title": "restore_command",
      "description": "Sets the shell command that will be called to retrieve an archived WAL file.\n\nsee <https://postgresqlco.nf/doc/en/param/restore_command/>",
      "markdownDescription": "Sets the shell command that will be called to retrieve an archived WAL file.\n\nsee [restore_command documentation](https://postgresqlco.nf/doc/en/param/restore_command/)",
      "type": "string",
      "examples": [
        "/controller/manager wal-restore --log-destination /controller/log/postgres.json %f %p"
      ]
    },
    "row_security": {
      "title": "row_security",
      "description": "Enable row security.\n\n...\nexcept when testing row security policies.\n\nsee <https://postgresqlco.nf/doc/en/param/row_security/>",
      "markdownDescription": "Enable row security.\n\n...\nexcept when testing row security policies.\n\nsee [row_security documentation](https://postgresqlco.nf/doc/en/param/row_security/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "search_path": {
      "title": "search_path",
      "description": "Sets the schema search order for names that are not schema-qualified.\n\nMost DBAs either use the default or set search_path on a ROLE or database object basis.\nThe one reason to set it in postgresql.conf is if you are taking the security step of removing the special \"public\" schema in order to lock down your database.\n\nsee <https://postgresqlco.nf/doc/en/param/search_path/>",
      "markdownDescription": "Sets the schema search order for names that are not schema-qualified.\n\nMost DBAs either use the default or set search_path on a ROLE or database object basis.\nThe one reason to set it in postgresql.conf is if you are taking the security step of removing the special \"public\" schema in order to lock down your database.\n\nsee [search_path documentation](https://postgresqlco.nf/doc/en/param/search_path/)",
      "type": "string",
      "examples": [
        "\"$user\", public"
      ]
    },
    "segment_size": {
      "title": "segment_size",
      "description": "Shows the number of pages per disk file.\n\nMinimum: 131072\n\nMaximum: 131072\n\nInformational: lets you know of non-standard installation or compile options.\n\nsee <https://postgresqlco.nf/doc/en/param/segment_size/>",
      "markdownDescription": "Shows the number of pages per disk file.\n\nMinimum: 131072\n\nMaximum: 131072\n\nInformational: lets you know of non-standard installation or compile options.\n\nsee [segment_size documentation](https://postgresqlco.nf/doc/en/param/segment_size/)",
      "type": "string",
      "examples": [
        "131072"
      ]
    },
    "seq_page_cost": {
      "title": "seq_page_cost",
      "description": "Sets the planner's estimate of the cost of a sequentially fetched disk page.\n\nMinimum: 0\n\nMaximum: 1.79769e+308\n\nThe main reason to modify seq_page_cost is to try to get planner costs to more-or-less indicate execution times in milleseconds.\nAll other costs change relative to this cost automatically.\n\nsee <https://postgresqlco.nf/doc/en/param/seq_page_cost/>",
      "markdownDescription": "Sets the planner's estimate of the cost of a sequentially fetched disk page.\n\nMinimum: 0\n\nMaximum: 1.79769e+308\n\nThe main reason to modify seq_page_cost is to try to get planner costs to more-or-less indicate execution times in milleseconds.\nAll other costs change relative to this cost automatically.\n\nsee [seq_page_cost documentation](https://postgresqlco.nf/doc/en/param/seq_page_cost/)",
      "type": "string",
      "examples": [
        "1"
      ]
    },
    "server_encoding": {
      "title": "server_encoding",
      "description": "Shows the server (database) character set encoding.\n\nSet at initdb time.\nDisplayed for information only.\n\nsee <https://postgresqlco.nf/doc/en/param/server_encoding/>",
      "markdownDescription": "Shows the server (database) character set encoding.\n\nSet at initdb time.\nDisplayed for information only.\n\nsee [server_encoding documentation](https://postgresqlco.nf/doc/en/param/server_encoding/)",
      "type": "string",
      "examples": [
        "UTF8"
      ]
    },
    "server_version": {
      "title": "server_version",
      "description": "Shows the server version.\n\nInformational: lets you know of non-standard installation or compile options.\n\nsee <https://postgresqlco.nf/doc/en/param/server_version/>",
      "markdownDescription": "Shows the server version.\n\nInformational: lets you know of non-standard installation or compile options.\n\nsee [server_version documentation](https://postgresqlco.nf/doc/en/param/server_version/)",
      "type": "string",
      "examples": [
        "14.9 (Debian 14.9-1.pgdg110+1)"
      ]
    },
    "server_version_num": {
      "title": "server_version_num",
      "description": "Shows the server version as an integer.\n\nMinimum: 140009\n\nMaximum: 140009\n\nInformational: lets you know of non-standard installation or compile options.\n\nsee <https://postgresqlco.nf/doc/en/param/server_version_num/>",
      "markdownDescription": "Shows the server version as an integer.\n\nMinimum: 140009\n\nMaximum: 140009\n\nInformational: lets you know of non-standard installation or compile options.\n\nsee [server_version_num documentation](https://postgresqlco.nf/doc/en/param/server_version_num/)",
      "type": "string",
      "examples": [
        "140009"
      ]
    },
    "session_preload_libraries": {
      "title": "session_preload_libraries",
      "description": "Lists shared libraries to preload into each backend.\n\nSpecial uses for debugging or for loading application-specific extensions.\n\nsee <https://postgresqlco.nf/doc/en/param/session_preload_libraries/>",
      "markdownDescription": "Lists shared libraries to preload into each backend.\n\nSpecial uses for debugging or for loading application-specific extensions.\n\nsee [session_preload_libraries documentation](https://postgresqlco.nf/doc/en/param/session_preload_libraries/)",
      "type": "string"
    },
    "session_replication_role": {
      "title": "session_replication_role",
      "description": "Sets the session's behavior for triggers and rewrite rules.\n\nOnly gets changed for databases which are taking part in a replication chain.\nIn that case, \"origin\" servers fire replication (and other) triggers, and \"replica\" do not.  Part of the generic replication hooks which are used by Slony and Bucardo.\n\nsee <https://postgresqlco.nf/doc/en/param/session_replication_role/>",
      "markdownDescription": "Sets the session's behavior for triggers and rewrite rules.\n\nOnly gets changed for databases which are taking part in a replication chain.\nIn that case, \"origin\" servers fire replication (and other) triggers, and \"replica\" do not.  Part of the generic replication hooks which are used by Slony and Bucardo.\n\nsee [session_replication_role documentation](https://postgresqlco.nf/doc/en/param/session_replication_role/)",
      "type": "string",
      "examples": [
        "origin"
      ],
      "enum": [
        "origin",
        "replica",
        "local"
      ]
    },
    "shared_buffers": {
      "title": "shared_buffers",
      "description": "Sets the number of shared memory buffers used by the server.\n\nMinimum: 16\n\nMaximum: 1073741823\n\nA memory quantity defining PostgreSQL's \"dedicated\" RAM, which is used for connection control, active operations, and more.\nHowever, since PostgreSQL also needs free RAM for file system buffers, sorts and maintenance operations, it is not advisable to set shared_buffers to a majority of RAM.   Note that increasing shared_buffers often requires you to increase some  system kernel parameters, most notably SHMMAX and SHMALL.  See  Operating System Environment: Managing Kernel Resources in the PostgreSQL documentation for more details.  Also note that shared_buffers over 2GB is  only supported on 64-bit systems.\n\nsee <https://postgresqlco.nf/doc/en/param/shared_buffers/>",
      "markdownDescription": "Sets the number of shared memory buffers used by the server.\n\nMinimum: 16\n\nMaximum: 1073741823\n\nA memory quantity defining PostgreSQL's \"dedicated\" RAM, which is used for connection control, active operations, and more.\nHowever, since PostgreSQL also needs free RAM for file system buffers, sorts and maintenance operations, it is not advisable to set shared_buffers to a majority of RAM.   Note that increasing shared_buffers often requires you to increase some  system kernel parameters, most notably SHMMAX and SHMALL.  See  Operating System Environment: Managing Kernel Resources in the PostgreSQL documentation for more details.  Also note that shared_buffers over 2GB is  only supported on 64-bit systems.\n\nsee [shared_buffers documentation](https://postgresqlco.nf/doc/en/param/shared_buffers/)",
      "type": "string",
      "examples": [
        "16384"
      ]
    },
    "shared_memory_type": {
      "title": "shared_memory_type",
      "description": "Selects the shared memory implementation used for the main shared memory region.\n\nsee <https://postgresqlco.nf/doc/en/param/shared_memory_type/>",
      "markdownDescription": "Selects the shared memory implementation used for the main shared memory region.\n\nsee [shared_memory_type documentation](https://postgresqlco.nf/doc/en/param/shared_memory_type/)",
      "type": "string",
      "examples": [
        "mmap"
      ],
      "enum": [
        "sysv",
        "mmap"
      ]
    },
    "shared_preload_libraries": {
      "title": "shared_preload_libraries",
      "description": "Lists shared libraries to preload into server.\n\nPrimarily used for custom C libraries (data types, stored procedures) which you expect your application to use heavily.\nTrades memory overhead for these libraries against load time, so really should only be used for libraries you expect most queries to require.\n\nsee <https://postgresqlco.nf/doc/en/param/shared_preload_libraries/>",
      "markdownDescription": "Lists shared libraries to preload into server.\n\nPrimarily used for custom C libraries (data types, stored procedures) which you expect your application to use heavily.\nTrades memory overhead for these libraries against load time, so really should only be used for libraries you expect most queries to require.\n\nsee [shared_preload_libraries documentation](https://postgresqlco.nf/doc/en/param/shared_preload_libraries/)",
      "type": "string",
      "examples": [
        "pg_stat_statements"
      ]
    },
    "ssl": {
      "title": "ssl",
      "description": "Enables SSL connections.\n\nOne of several different settings to turn on SSL connections for PostgreSQL.\nSSL is a very good idea for highly secure setups.  In addition, you must compile in SSL support and set SSL connections in pg_hba.conf, as well as configuring SSL itself.\n\nsee <https://postgresqlco.nf/doc/en/param/ssl/>",
      "markdownDescription": "Enables SSL connections.\n\nOne of several different settings to turn on SSL connections for PostgreSQL.\nSSL is a very good idea for highly secure setups.  In addition, you must compile in SSL support and set SSL connections in pg_hba.conf, as well as configuring SSL itself.\n\nsee [ssl documentation](https://postgresqlco.nf/doc/en/param/ssl/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "ssl_ca_file": {
      "title": "ssl_ca_file",
      "description": "Location of the SSL certificate authority file.\n\nYou should always use SSL connections if you can.\nHowever, this does require setting up SSL.\n\nsee <https://postgresqlco.nf/doc/en/param/ssl_ca_file/>",
      "markdownDescription": "Location of the SSL certificate authority file.\n\nYou should always use SSL connections if you can.\nHowever, this does require setting up SSL.\n\nsee [ssl_ca_file documentation](https://postgresqlco.nf/doc/en/param/ssl_ca_file/)",
      "type": "string",
      "examples": [
        "/controller/certificates/client-ca.crt"
      ]
    },
    "ssl_cert_file": {
      "title": "ssl_cert_file",
      "description": "Location of the SSL server certificate file.\n\nAccording to your SSL configuration, which maybe provided by your installer.\n\nsee <https://postgresqlco.nf/doc/en/param/ssl_cert_file/>",
      "markdownDescription": "Location of the SSL server certificate file.\n\nAccording to your SSL configuration, which maybe provided by your installer.\n\nsee [ssl_cert_file documentation](https://postgresqlco.nf/doc/en/param/ssl_cert_file/)",
      "type": "string",
      "examples": [
        "/controller/certificates/server.crt"
      ]
    },
    "ssl_ciphers": {
      "title": "ssl_ciphers",
      "description": "Sets the list of allowed SSL ciphers.\n\nAllows DBAs to require \"str\" enough or preset ciphers for SSL connections.\nIf you have not compiled SSL support, this parameter will not be available.\n\nsee <https://postgresqlco.nf/doc/en/param/ssl_ciphers/>",
      "markdownDescription": "Sets the list of allowed SSL ciphers.\n\nAllows DBAs to require \"str\" enough or preset ciphers for SSL connections.\nIf you have not compiled SSL support, this parameter will not be available.\n\nsee [ssl_ciphers documentation](https://postgresqlco.nf/doc/en/param/ssl_ciphers/)",
      "type": "string",
      "examples": [
        "HIGH:MEDIUM:+3DES:!aNULL"
      ]
    },
    "ssl_crl_dir": {
      "title": "ssl_crl_dir",
      "description": "Location of the SSL certificate revocation list directory.\n\nsee <https://postgresqlco.nf/doc/en/param/ssl_crl_dir/>",
      "markdownDescription": "Location of the SSL certificate revocation list directory.\n\nsee [ssl_crl_dir documentation](https://postgresqlco.nf/doc/en/param/ssl_crl_dir/)",
      "type": "string"
    },
    "ssl_crl_file": {
      "title": "ssl_crl_file",
      "description": "Location of the SSL certificate revocation list file.\n\nAccording to your SSL configuration, which maybe provided by your installer.\n\nsee <https://postgresqlco.nf/doc/en/param/ssl_crl_file/>",
      "markdownDescription": "Location of the SSL certificate revocation list file.\n\nAccording to your SSL configuration, which maybe provided by your installer.\n\nsee [ssl_crl_file documentation](https://postgresqlco.nf/doc/en/param/ssl_crl_file/)",
      "type": "string"
    },
    "ssl_dh_params_file": {
      "title": "ssl_dh_params_file",
      "description": "Location of the SSL DH parameters file.\n\nAccording to your SSL configuration, which maybe provided by your installer.\n\nsee <https://postgresqlco.nf/doc/en/param/ssl_dh_params_file/>",
      "markdownDescription": "Location of the SSL DH parameters file.\n\nAccording to your SSL configuration, which maybe provided by your installer.\n\nsee [ssl_dh_params_file documentation](https://postgresqlco.nf/doc/en/param/ssl_dh_params_file/)",
      "type": "string"
    },
    "ssl_ecdh_curve": {
      "title": "ssl_ecdh_curve",
      "description": "Sets the curve to use for ECDH.\n\nAccording to your SSL configuration, which maybe provided by your installer.\n\nsee <https://postgresqlco.nf/doc/en/param/ssl_ecdh_curve/>",
      "markdownDescription": "Sets the curve to use for ECDH.\n\nAccording to your SSL configuration, which maybe provided by your installer.\n\nsee [ssl_ecdh_curve documentation](https://postgresqlco.nf/doc/en/param/ssl_ecdh_curve/)",
      "type": "string",
      "examples": [
        "prime256v1"
      ]
    },
    "ssl_key_file": {
      "title": "ssl_key_file",
      "description": "Location of the SSL server private key file.\n\nAccording to your SSL configuration, which maybe provided by your installer.\n\nsee <https://postgresqlco.nf/doc/en/param/ssl_key_file/>",
      "markdownDescription": "Location of the SSL server private key file.\n\nAccording to your SSL configuration, which maybe provided by your installer.\n\nsee [ssl_key_file documentation](https://postgresqlco.nf/doc/en/param/ssl_key_file/)",
      "type": "string",
      "examples": [
        "/controller/certificates/server.key"
      ]
    },
    "ssl_library": {
      "title": "ssl_library",
      "description": "Shows the name of the SSL library.\n\nsee <https://postgresqlco.nf/doc/en/param/ssl_library/>",
      "markdownDescription": "Shows the name of the SSL library.\n\nsee [ssl_library documentation](https://postgresqlco.nf/doc/en/param/ssl_library/)",
      "type": "string",
      "examples": [
        "OpenSSL"
      ]
    },
    "ssl_max_protocol_version": {
      "title": "ssl_max_protocol_version",
      "description": "Sets the maximum SSL/TLS protocol version to use.\n\nsee <https://postgresqlco.nf/doc/en/param/ssl_max_protocol_version/>",
      "markdownDescription": "Sets the maximum SSL/TLS protocol version to use.\n\nsee [ssl_max_protocol_version documentation](https://postgresqlco.nf/doc/en/param/ssl_max_protocol_version/)",
      "type": "string",
      "enum": [
        "\"\"",
        "TLSv1",
        "TLSv1.1",
        "TLSv1.2",
        "TLSv1.3"
      ]
    },
    "ssl_min_protocol_version": {
      "title": "ssl_min_protocol_version",
      "description": "Sets the minimum SSL/TLS protocol version to use.\n\nsee <https://postgresqlco.nf/doc/en/param/ssl_min_protocol_version/>",
      "markdownDescription": "Sets the minimum SSL/TLS protocol version to use.\n\nsee [ssl_min_protocol_version documentation](https://postgresqlco.nf/doc/en/param/ssl_min_protocol_version/)",
      "type": "string",
      "examples": [
        "TLSv1.2"
      ],
      "enum": [
        "TLSv1",
        "TLSv1.1",
        "TLSv1.2",
        "TLSv1.3"
      ]
    },
    "ssl_passphrase_command": {
      "title": "ssl_passphrase_command",
      "description": "Command to obtain passphrases for SSL.\n\nsee <https://postgresqlco.nf/doc/en/param/ssl_passphrase_command/>",
      "markdownDescription": "Command to obtain passphrases for SSL.\n\nsee [ssl_passphrase_command documentation](https://postgresqlco.nf/doc/en/param/ssl_passphrase_command/)",
      "type": "string"
    },
    "ssl_passphrase_command_supports_reload": {
      "title": "ssl_passphrase_command_supports_reload",
      "description": "Also use ssl_passphrase_command during server reload.\n\nsee <https://postgresqlco.nf/doc/en/param/ssl_passphrase_command_supports_reload/>",
      "markdownDescription": "Also use ssl_passphrase_command during server reload.\n\nsee [ssl_passphrase_command_supports_reload documentation](https://postgresqlco.nf/doc/en/param/ssl_passphrase_command_supports_reload/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "ssl_prefer_server_ciphers": {
      "title": "ssl_prefer_server_ciphers",
      "description": "Give priority to server ciphersuite order.\n\nAccording to your SSL configuration, which maybe provided by your installer.\n\nsee <https://postgresqlco.nf/doc/en/param/ssl_prefer_server_ciphers/>",
      "markdownDescription": "Give priority to server ciphersuite order.\n\nAccording to your SSL configuration, which maybe provided by your installer.\n\nsee [ssl_prefer_server_ciphers documentation](https://postgresqlco.nf/doc/en/param/ssl_prefer_server_ciphers/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "standard_conforming_strings": {
      "title": "standard_conforming_strings",
      "description": "Causes '...' strings to treat backslashes literally.\n\nIf you can clean up your application code, this disables use of\nas an escape character except in escaped (E' ') strings.  This is both safer, and less likely to result in unexpected output for things like Windows filepaths.\n\nsee <https://postgresqlco.nf/doc/en/param/standard_conforming_strings/>",
      "markdownDescription": "Causes '...' strings to treat backslashes literally.\n\nIf you can clean up your application code, this disables use of\nas an escape character except in escaped (E' ') strings.  This is both safer, and less likely to result in unexpected output for things like Windows filepaths.\n\nsee [standard_conforming_strings documentation](https://postgresqlco.nf/doc/en/param/standard_conforming_strings/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "statement_timeout": {
      "title": "statement_timeout",
      "description": "Sets the maximum allowed duration of any statement.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nDefaults to 0, meaning no timeout.\nFor most web applications, it's a good idea to set a default timeout, such as 60s to prevent runaway queries from bogging the server.  If set, though, you need to remember to set (at the ROLE or session level) a higher statement_timeout for expected long-running maintenance or batch operations.\n\nsee <https://postgresqlco.nf/doc/en/param/statement_timeout/>",
      "markdownDescription": "Sets the maximum allowed duration of any statement.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nDefaults to 0, meaning no timeout.\nFor most web applications, it's a good idea to set a default timeout, such as 60s to prevent runaway queries from bogging the server.  If set, though, you need to remember to set (at the ROLE or session level) a higher statement_timeout for expected long-running maintenance or batch operations.\n\nsee [statement_timeout documentation](https://postgresqlco.nf/doc/en/param/statement_timeout/)",
      "type": "string",
      "examples": [
        "0"
      ]
    },
    "stats_temp_directory": {
      "title": "stats_temp_directory",
      "description": "Writes temporary statistics files to the specified directory.\n\nUseful for extremely high-volume databases; the stats temp directory could be set to a RAMdisk or other high-speed resource (at the cost of potentially losing some stats) as this file gets updated hundreds of times per second.\n\n\nsee <https://postgresqlco.nf/doc/en/param/stats_temp_directory/>",
      "markdownDescription": "Writes temporary statistics files to the specified directory.\n\nUseful for extremely high-volume databases; the stats temp directory could be set to a RAMdisk or other high-speed resource (at the cost of potentially losing some stats) as this file gets updated hundreds of times per second.\n\n\nsee [stats_temp_directory documentation](https://postgresqlco.nf/doc/en/param/stats_temp_directory/)",
      "type": "string",
      "examples": [
        "pg_stat_tmp"
      ]
    },
    "superuser_reserved_connections": {
      "title": "superuser_reserved_connections",
      "description": "Sets the number of connection slots reserved for superusers.\n\nMinimum: 0\n\nMaximum: 262143\n\nYou should have at least one superuser connection open for troubleshooting at all times.\nSo if you run more than two concurrent regular administrative tasks, you'll need more reserved connections.  Note that this number is taken from max_connections, not in addition to it.\n\nsee <https://postgresqlco.nf/doc/en/param/superuser_reserved_connections/>",
      "markdownDescription": "Sets the number of connection slots reserved for superusers.\n\nMinimum: 0\n\nMaximum: 262143\n\nYou should have at least one superuser connection open for troubleshooting at all times.\nSo if you run more than two concurrent regular administrative tasks, you'll need more reserved connections.  Note that this number is taken from max_connections, not in addition to it.\n\nsee [superuser_reserved_connections documentation](https://postgresqlco.nf/doc/en/param/superuser_reserved_connections/)",
      "type": "string",
      "examples": [
        "3"
      ]
    },
    "synchronize_seqscans": {
      "title": "synchronize_seqscans",
      "description": "Enable synchronized sequential scans.\n\nThis new peformance enhancment can also cause rows to be returned in an order other than physical storage order.\nFor poorly-written older applications, this may break application code; turn it off to disable.\n\nsee <https://postgresqlco.nf/doc/en/param/synchronize_seqscans/>",
      "markdownDescription": "Enable synchronized sequential scans.\n\nThis new peformance enhancment can also cause rows to be returned in an order other than physical storage order.\nFor poorly-written older applications, this may break application code; turn it off to disable.\n\nsee [synchronize_seqscans documentation](https://postgresqlco.nf/doc/en/param/synchronize_seqscans/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "synchronous_commit": {
      "title": "synchronous_commit",
      "description": "Sets the current transaction's synchronization level.\n\nIf data integrity is less important to you than response times (for example, if you are running a social networking application or processing logs) you can turn this off, making your transaction logs asynchronous.\nThis can result in up to wal_buffers or wal_writer_delay * 2 worth of data in an unexpected shutdown, but your database will not be corrupted.  Note that you can also set this on a per-session basis, allowing you to mix \"lossy\" and \"safe\" transactions, which is a better approach for most applications.\n\nsee <https://postgresqlco.nf/doc/en/param/synchronous_commit/>",
      "markdownDescription": "Sets the current transaction's synchronization level.\n\nIf data integrity is less important to you than response times (for example, if you are running a social networking application or processing logs) you can turn this off, making your transaction logs asynchronous.\nThis can result in up to wal_buffers or wal_writer_delay * 2 worth of data in an unexpected shutdown, but your database will not be corrupted.  Note that you can also set this on a per-session basis, allowing you to mix \"lossy\" and \"safe\" transactions, which is a better approach for most applications.\n\nsee [synchronous_commit documentation](https://postgresqlco.nf/doc/en/param/synchronous_commit/)",
      "type": "string",
      "examples": [
        "on"
      ],
      "enum": [
        "local",
        "remote_write",
        "remote_apply",
        "on",
        "off"
      ]
    },
    "synchronous_standby_names": {
      "title": "synchronous_standby_names",
      "description": "Number of synchronous standbys and list of names of potential synchronous ones.\n\nSpecial, see syntax for sync standby config.\nDon't get into this if you're not sure what you're doing.\n\nsee <https://postgresqlco.nf/doc/en/param/synchronous_standby_names/>",
      "markdownDescription": "Number of synchronous standbys and list of names of potential synchronous ones.\n\nSpecial, see syntax for sync standby config.\nDon't get into this if you're not sure what you're doing.\n\nsee [synchronous_standby_names documentation](https://postgresqlco.nf/doc/en/param/synchronous_standby_names/)",
      "type": "string",
      "examples": [
        "ANY 1 (\"pg-1\",\"pg-3\")"
      ]
    },
    "syslog_facility": {
      "title": "syslog_facility",
      "description": "Sets the syslog \"facility\" to be used when syslog enabled.\n\nChange the logserver facility if you are having a conflict with other applications.\n\nsee <https://postgresqlco.nf/doc/en/param/syslog_facility/>",
      "markdownDescription": "Sets the syslog \"facility\" to be used when syslog enabled.\n\nChange the logserver facility if you are having a conflict with other applications.\n\nsee [syslog_facility documentation](https://postgresqlco.nf/doc/en/param/syslog_facility/)",
      "type": "string",
      "examples": [
        "local0"
      ],
      "enum": [
        "local0",
        "local1",
        "local2",
        "local3",
        "local4",
        "local5",
        "local6",
        "local7"
      ]
    },
    "syslog_ident": {
      "title": "syslog_ident",
      "description": "Sets the program name used to identify PostgreSQL messages in syslog.\n\nIf using a centralized logserver or if you have multiple Postgres instances, you probably want to identify your postgresql instance by hostname.\n\nsee <https://postgresqlco.nf/doc/en/param/syslog_ident/>",
      "markdownDescription": "Sets the program name used to identify PostgreSQL messages in syslog.\n\nIf using a centralized logserver or if you have multiple Postgres instances, you probably want to identify your postgresql instance by hostname.\n\nsee [syslog_ident documentation](https://postgresqlco.nf/doc/en/param/syslog_ident/)",
      "type": "string",
      "examples": [
        "postgres"
      ]
    },
    "syslog_sequence_numbers": {
      "title": "syslog_sequence_numbers",
      "description": "Add sequence number to syslog messages to avoid duplicate suppression.\n\nsee <https://postgresqlco.nf/doc/en/param/syslog_sequence_numbers/>",
      "markdownDescription": "Add sequence number to syslog messages to avoid duplicate suppression.\n\nsee [syslog_sequence_numbers documentation](https://postgresqlco.nf/doc/en/param/syslog_sequence_numbers/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "syslog_split_messages": {
      "title": "syslog_split_messages",
      "description": "Split messages sent to syslog by lines and to fit into 1024 bytes.\n\nsee <https://postgresqlco.nf/doc/en/param/syslog_split_messages/>",
      "markdownDescription": "Split messages sent to syslog by lines and to fit into 1024 bytes.\n\nsee [syslog_split_messages documentation](https://postgresqlco.nf/doc/en/param/syslog_split_messages/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "tcp_keepalives_count": {
      "title": "tcp_keepalives_count",
      "description": "Maximum number of TCP keepalive retransmits.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nThe three tcp_keepalive settings help manage a system which tends to have \"undead\" connection/query processes.\nFor systems which support them, you can regulate checking that connections are still \"live\" end-to-end to kill them off.  Not needed if you're not having a problem.  Should be synchronized with the new TCP keepalive support in libpq on the client side.\n\nsee <https://postgresqlco.nf/doc/en/param/tcp_keepalives_count/>",
      "markdownDescription": "Maximum number of TCP keepalive retransmits.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nThe three tcp_keepalive settings help manage a system which tends to have \"undead\" connection/query processes.\nFor systems which support them, you can regulate checking that connections are still \"live\" end-to-end to kill them off.  Not needed if you're not having a problem.  Should be synchronized with the new TCP keepalive support in libpq on the client side.\n\nsee [tcp_keepalives_count documentation](https://postgresqlco.nf/doc/en/param/tcp_keepalives_count/)",
      "type": "string",
      "examples": [
        "0"
      ]
    },
    "tcp_keepalives_idle": {
      "title": "tcp_keepalives_idle",
      "description": "Time between issuing TCP keepalives.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee <https://postgresqlco.nf/doc/en/param/tcp_keepalives_idle/>",
      "markdownDescription": "Time between issuing TCP keepalives.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee [tcp_keepalives_idle documentation](https://postgresqlco.nf/doc/en/param/tcp_keepalives_idle/)",
      "type": "string",
      "examples": [
        "0"
      ]
    },
    "tcp_keepalives_interval": {
      "title": "tcp_keepalives_interval",
      "description": "Time between TCP keepalive retransmits.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee <https://postgresqlco.nf/doc/en/param/tcp_keepalives_interval/>",
      "markdownDescription": "Time between TCP keepalive retransmits.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee [tcp_keepalives_interval documentation](https://postgresqlco.nf/doc/en/param/tcp_keepalives_interval/)",
      "type": "string",
      "examples": [
        "0"
      ]
    },
    "tcp_user_timeout": {
      "title": "tcp_user_timeout",
      "description": "TCP user timeout.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee <https://postgresqlco.nf/doc/en/param/tcp_user_timeout/>",
      "markdownDescription": "TCP user timeout.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee [tcp_user_timeout documentation](https://postgresqlco.nf/doc/en/param/tcp_user_timeout/)",
      "type": "string",
      "examples": [
        "0"
      ]
    },
    "temp_buffers": {
      "title": "temp_buffers",
      "description": "Sets the maximum number of temporary buffers used by each session.\n\nMinimum: 100\n\nMaximum: 1073741823\n\nCurrently used only for holding temporary tables in memory.\nIf your application requires heavy use of temporary tables (many proprietary reporting engines do) then you might want to increase this substantially.  However, be careful because this is non-shared RAM which is allocated per session.  Otherwise, the default is fine.\n\nsee <https://postgresqlco.nf/doc/en/param/temp_buffers/>",
      "markdownDescription": "Sets the maximum number of temporary buffers used by each session.\n\nMinimum: 100\n\nMaximum: 1073741823\n\nCurrently used only for holding temporary tables in memory.\nIf your application requires heavy use of temporary tables (many proprietary reporting engines do) then you might want to increase this substantially.  However, be careful because this is non-shared RAM which is allocated per session.  Otherwise, the default is fine.\n\nsee [temp_buffers documentation](https://postgresqlco.nf/doc/en/param/temp_buffers/)",
      "type": "string",
      "examples": [
        "1024"
      ]
    },
    "temp_file_limit": {
      "title": "temp_file_limit",
      "description": "Limits the total size of all temporary files used by each process.\n\nMinimum: -1\n\nMaximum: 2147483647\n\n... or something which is bigger than your largest possible sort, but not big enough to run you out of disk space.\n\nsee <https://postgresqlco.nf/doc/en/param/temp_file_limit/>",
      "markdownDescription": "Limits the total size of all temporary files used by each process.\n\nMinimum: -1\n\nMaximum: 2147483647\n\n... or something which is bigger than your largest possible sort, but not big enough to run you out of disk space.\n\nsee [temp_file_limit documentation](https://postgresqlco.nf/doc/en/param/temp_file_limit/)",
      "type": "string",
      "examples": [
        "-1"
      ]
    },
    "temp_tablespaces": {
      "title": "temp_tablespaces",
      "description": "Sets the tablespace(s) to use for temporary tables and sort files.\n\nFor applications which create lots of temporary objects, this setting can be used to put the temp space on a faster/separate device, or even a ramdisk.\nBecause it accepts a list, it can even be used to load balance temp object creation among several tablespaces.\n\nsee <https://postgresqlco.nf/doc/en/param/temp_tablespaces/>",
      "markdownDescription": "Sets the tablespace(s) to use for temporary tables and sort files.\n\nFor applications which create lots of temporary objects, this setting can be used to put the temp space on a faster/separate device, or even a ramdisk.\nBecause it accepts a list, it can even be used to load balance temp object creation among several tablespaces.\n\nsee [temp_tablespaces documentation](https://postgresqlco.nf/doc/en/param/temp_tablespaces/)",
      "type": "string"
    },
    "TimeZone": {
      "title": "TimeZone",
      "description": "Sets the time zone for displaying and interpreting time stamps.\n\nTo avoid a lot of confusion, make sure this is set to your local timeszone.\nIf the server covers multiple time zones, then this should be set on a ROLE or connection basis.\n\nsee <https://postgresqlco.nf/doc/en/param/TimeZone/>",
      "markdownDescription": "Sets the time zone for displaying and interpreting time stamps.\n\nTo avoid a lot of confusion, make sure this is set to your local timeszone.\nIf the server covers multiple time zones, then this should be set on a ROLE or connection basis.\n\nsee [TimeZone documentation](https://postgresqlco.nf/doc/en/param/TimeZone/)",
      "type": "string",
      "examples": [
        "Europe/Paris"
      ]
    },
    "timezone_abbreviations": {
      "title": "timezone_abbreviations",
      "description": "Selects a file of time zone abbreviations.\n\nSee appendencies for alternatives.\n\nsee <https://postgresqlco.nf/doc/en/param/timezone_abbreviations/>",
      "markdownDescription": "Selects a file of time zone abbreviations.\n\nSee appendencies for alternatives.\n\nsee [timezone_abbreviations documentation](https://postgresqlco.nf/doc/en/param/timezone_abbreviations/)",
      "type": "string",
      "examples": [
        "Default"
      ]
    },
    "trace_notify": {
      "title": "trace_notify",
      "description": "Generates debugging output for LISTEN and NOTIFY.\n\nThe various TRACE options are for debugging specific behaviors interactively. Many of them require compile-time options. trace_notice is for debugging listen/notice.\n\nsee <https://postgresqlco.nf/doc/en/param/trace_notify/>",
      "markdownDescription": "Generates debugging output for LISTEN and NOTIFY.\n\nThe various TRACE options are for debugging specific behaviors interactively. Many of them require compile-time options. trace_notice is for debugging listen/notice.\n\nsee [trace_notify documentation](https://postgresqlco.nf/doc/en/param/trace_notify/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "trace_recovery_messages": {
      "title": "trace_recovery_messages",
      "description": "Enables logging of recovery-related debugging information.\n\nFor troubleshooting replication/PITR failures.\n\nsee <https://postgresqlco.nf/doc/en/param/trace_recovery_messages/>",
      "markdownDescription": "Enables logging of recovery-related debugging information.\n\nFor troubleshooting replication/PITR failures.\n\nsee [trace_recovery_messages documentation](https://postgresqlco.nf/doc/en/param/trace_recovery_messages/)",
      "type": "string",
      "examples": [
        "log"
      ],
      "enum": [
        "debug5",
        "debug4",
        "debug3",
        "debug2",
        "debug1",
        "log",
        "notice",
        "warning",
        "error"
      ]
    },
    "trace_sort": {
      "title": "trace_sort",
      "description": "Emit information about resource usage in sorting.\n\nFor debugging sorts.\n\nsee <https://postgresqlco.nf/doc/en/param/trace_sort/>",
      "markdownDescription": "Emit information about resource usage in sorting.\n\nFor debugging sorts.\n\nsee [trace_sort documentation](https://postgresqlco.nf/doc/en/param/trace_sort/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "track_activities": {
      "title": "track_activities",
      "description": "Collects information about executing commands.\n\nsee <https://postgresqlco.nf/doc/en/param/track_activities/>",
      "markdownDescription": "Collects information about executing commands.\n\nsee [track_activities documentation](https://postgresqlco.nf/doc/en/param/track_activities/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "track_activity_query_size": {
      "title": "track_activity_query_size",
      "description": "Sets the size reserved for pg_stat_activity.query, in bytes.\n\nMinimum: 100\n\nMaximum: 1048576\n\nSets the truncation threshold of queries in pg_stat_activity (and pg_stat_statements).\nIncrease it if you have really long queries which are being cut off, but there is significant extra memory usage for keeping longer queries.\n\nsee <https://postgresqlco.nf/doc/en/param/track_activity_query_size/>",
      "markdownDescription": "Sets the size reserved for pg_stat_activity.query, in bytes.\n\nMinimum: 100\n\nMaximum: 1048576\n\nSets the truncation threshold of queries in pg_stat_activity (and pg_stat_statements).\nIncrease it if you have really long queries which are being cut off, but there is significant extra memory usage for keeping longer queries.\n\nsee [track_activity_query_size documentation](https://postgresqlco.nf/doc/en/param/track_activity_query_size/)",
      "type": "string",
      "examples": [
        "1024"
      ]
    },
    "track_commit_timestamp": {
      "title": "track_commit_timestamp",
      "description": "Collects transaction commit time.\n\nsee <https://postgresqlco.nf/doc/en/param/track_commit_timestamp/>",
      "markdownDescription": "Collects transaction commit time.\n\nsee [track_commit_timestamp documentation](https://postgresqlco.nf/doc/en/param/track_commit_timestamp/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "track_counts": {
      "title": "track_counts",
      "description": "Collects statistics on database activity.\n\nNeeded for autovacuum to work properly.\nDo not turn off.\n\nsee <https://postgresqlco.nf/doc/en/param/track_counts/>",
      "markdownDescription": "Collects statistics on database activity.\n\nNeeded for autovacuum to work properly.\nDo not turn off.\n\nsee [track_counts documentation](https://postgresqlco.nf/doc/en/param/track_counts/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "track_functions": {
      "title": "track_functions",
      "description": "Collects function-level statistics on database activity.\n\nSet it to 'pl' to collect stats on user-defined functions.\nVery useful for stored procedure performance profiling and troubleshooting.\n\nsee <https://postgresqlco.nf/doc/en/param/track_functions/>",
      "markdownDescription": "Collects function-level statistics on database activity.\n\nSet it to 'pl' to collect stats on user-defined functions.\nVery useful for stored procedure performance profiling and troubleshooting.\n\nsee [track_functions documentation](https://postgresqlco.nf/doc/en/param/track_functions/)",
      "type": "string",
      "examples": [
        "none"
      ],
      "enum": [
        "none",
        "pl",
        "all"
      ]
    },
    "track_io_timing": {
      "title": "track_io_timing",
      "description": "Collects timing statistics for database I/O activity.\n\nTurn it on if you're monitoring disk usage per request.\n\nsee <https://postgresqlco.nf/doc/en/param/track_io_timing/>",
      "markdownDescription": "Collects timing statistics for database I/O activity.\n\nTurn it on if you're monitoring disk usage per request.\n\nsee [track_io_timing documentation](https://postgresqlco.nf/doc/en/param/track_io_timing/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "track_wal_io_timing": {
      "title": "track_wal_io_timing",
      "description": "Collects timing statistics for WAL I/O activity.\n\nsee <https://postgresqlco.nf/doc/en/param/track_wal_io_timing/>",
      "markdownDescription": "Collects timing statistics for WAL I/O activity.\n\nsee [track_wal_io_timing documentation](https://postgresqlco.nf/doc/en/param/track_wal_io_timing/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "transaction_deferrable": {
      "title": "transaction_deferrable",
      "description": "Whether to defer a read-only serializable transaction until it can be executed with no possible serialization failures.\n\nsee <https://postgresqlco.nf/doc/en/param/transaction_deferrable/>",
      "markdownDescription": "Whether to defer a read-only serializable transaction until it can be executed with no possible serialization failures.\n\nsee [transaction_deferrable documentation](https://postgresqlco.nf/doc/en/param/transaction_deferrable/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "transaction_isolation": {
      "title": "transaction_isolation",
      "description": "Sets the current transaction's isolation level.\n\nSet per session if you need, for example, SERIALIZABLE semantics to prevent data conflicts for multi-step transactions.\n\nsee <https://postgresqlco.nf/doc/en/param/transaction_isolation/>",
      "markdownDescription": "Sets the current transaction's isolation level.\n\nSet per session if you need, for example, SERIALIZABLE semantics to prevent data conflicts for multi-step transactions.\n\nsee [transaction_isolation documentation](https://postgresqlco.nf/doc/en/param/transaction_isolation/)",
      "type": "string",
      "examples": [
        "read committed"
      ],
      "enum": [
        "serializable",
        "\"repeatable read\"",
        "\"read committed\"",
        "\"read uncommitted\""
      ]
    },
    "transaction_read_only": {
      "title": "transaction_read_only",
      "description": "Sets the current transaction's read-only status.\n\nSets the current transaction to read only.\nUseful as part of a SQL injection prevention program.  Shows as TRUE on replication standbys.\n\nsee <https://postgresqlco.nf/doc/en/param/transaction_read_only/>",
      "markdownDescription": "Sets the current transaction's read-only status.\n\nSets the current transaction to read only.\nUseful as part of a SQL injection prevention program.  Shows as TRUE on replication standbys.\n\nsee [transaction_read_only documentation](https://postgresqlco.nf/doc/en/param/transaction_read_only/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "transform_null_equals": {
      "title": "transform_null_equals",
      "description": "Treats \"expr=NULL\" as \"expr IS NULL\".\n\nProvided for compatibility with Microsoft Access and similar broken applications which treat \"= NULL\" as the same as \"IS NULL\".\n\n\nsee <https://postgresqlco.nf/doc/en/param/transform_null_equals/>",
      "markdownDescription": "Treats \"expr=NULL\" as \"expr IS NULL\".\n\nProvided for compatibility with Microsoft Access and similar broken applications which treat \"= NULL\" as the same as \"IS NULL\".\n\n\nsee [transform_null_equals documentation](https://postgresqlco.nf/doc/en/param/transform_null_equals/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "unix_socket_directories": {
      "title": "unix_socket_directories",
      "description": "Sets the directories where Unix-domain sockets will be created.\n\nChange to a more secure directory, which many installers do for you.\n\nsee <https://postgresqlco.nf/doc/en/param/unix_socket_directories/>",
      "markdownDescription": "Sets the directories where Unix-domain sockets will be created.\n\nChange to a more secure directory, which many installers do for you.\n\nsee [unix_socket_directories documentation](https://postgresqlco.nf/doc/en/param/unix_socket_directories/)",
      "type": "string",
      "examples": [
        "/controller/run"
      ]
    },
    "unix_socket_group": {
      "title": "unix_socket_group",
      "description": "Sets the owning group of the Unix-domain socket.\n\nsee <https://postgresqlco.nf/doc/en/param/unix_socket_group/>",
      "markdownDescription": "Sets the owning group of the Unix-domain socket.\n\nsee [unix_socket_group documentation](https://postgresqlco.nf/doc/en/param/unix_socket_group/)",
      "type": "string"
    },
    "unix_socket_permissions": {
      "title": "unix_socket_permissions",
      "description": "Sets the access permissions of the Unix-domain socket.\n\nMinimum: 0\n\nMaximum: 511\n\nsee <https://postgresqlco.nf/doc/en/param/unix_socket_permissions/>",
      "markdownDescription": "Sets the access permissions of the Unix-domain socket.\n\nMinimum: 0\n\nMaximum: 511\n\nsee [unix_socket_permissions documentation](https://postgresqlco.nf/doc/en/param/unix_socket_permissions/)",
      "type": "string",
      "examples": [
        "0777"
      ]
    },
    "update_process_title": {
      "title": "update_process_title",
      "description": "Updates the process title to show the active SQL command.\n\nUpdates the process title on OSes which support this.\nVery useful for checking resource usage by currently running queries.\n\nsee <https://postgresqlco.nf/doc/en/param/update_process_title/>",
      "markdownDescription": "Updates the process title to show the active SQL command.\n\nUpdates the process title on OSes which support this.\nVery useful for checking resource usage by currently running queries.\n\nsee [update_process_title documentation](https://postgresqlco.nf/doc/en/param/update_process_title/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "vacuum_cost_delay": {
      "title": "vacuum_cost_delay",
      "description": "Vacuum cost delay in milliseconds.\n\nMinimum: 0\n\nMaximum: 100\n\nMost of the time, you will want manual vacuum to execute without vacuum_delay, especially if you're using it as part of ETL.\nIf for some reason you can't use autovacuum on an OLTP database, however, you may want to increase this to 20ms to decrease the impact vacuum has on currently running queries.  Will cause vacuum to take up to twice as long to complete.\n\nsee <https://postgresqlco.nf/doc/en/param/vacuum_cost_delay/>",
      "markdownDescription": "Vacuum cost delay in milliseconds.\n\nMinimum: 0\n\nMaximum: 100\n\nMost of the time, you will want manual vacuum to execute without vacuum_delay, especially if you're using it as part of ETL.\nIf for some reason you can't use autovacuum on an OLTP database, however, you may want to increase this to 20ms to decrease the impact vacuum has on currently running queries.  Will cause vacuum to take up to twice as long to complete.\n\nsee [vacuum_cost_delay documentation](https://postgresqlco.nf/doc/en/param/vacuum_cost_delay/)",
      "type": "string",
      "examples": [
        "0"
      ]
    },
    "vacuum_cost_limit": {
      "title": "vacuum_cost_limit",
      "description": "Vacuum cost amount available before napping.\n\nMinimum: 1\n\nMaximum: 10000\n\nsee <https://postgresqlco.nf/doc/en/param/vacuum_cost_limit/>",
      "markdownDescription": "Vacuum cost amount available before napping.\n\nMinimum: 1\n\nMaximum: 10000\n\nsee [vacuum_cost_limit documentation](https://postgresqlco.nf/doc/en/param/vacuum_cost_limit/)",
      "type": "string",
      "examples": [
        "200"
      ]
    },
    "vacuum_cost_page_dirty": {
      "title": "vacuum_cost_page_dirty",
      "description": "Vacuum cost for a page dirtied by vacuum.\n\nMinimum: 0\n\nMaximum: 10000\n\nsee <https://postgresqlco.nf/doc/en/param/vacuum_cost_page_dirty/>",
      "markdownDescription": "Vacuum cost for a page dirtied by vacuum.\n\nMinimum: 0\n\nMaximum: 10000\n\nsee [vacuum_cost_page_dirty documentation](https://postgresqlco.nf/doc/en/param/vacuum_cost_page_dirty/)",
      "type": "string",
      "examples": [
        "20"
      ]
    },
    "vacuum_cost_page_hit": {
      "title": "vacuum_cost_page_hit",
      "description": "Vacuum cost for a page found in the buffer cache.\n\nMinimum: 0\n\nMaximum: 10000\n\nsee <https://postgresqlco.nf/doc/en/param/vacuum_cost_page_hit/>",
      "markdownDescription": "Vacuum cost for a page found in the buffer cache.\n\nMinimum: 0\n\nMaximum: 10000\n\nsee [vacuum_cost_page_hit documentation](https://postgresqlco.nf/doc/en/param/vacuum_cost_page_hit/)",
      "type": "string",
      "examples": [
        "1"
      ]
    },
    "vacuum_cost_page_miss": {
      "title": "vacuum_cost_page_miss",
      "description": "Vacuum cost for a page not found in the buffer cache.\n\nMinimum: 0\n\nMaximum: 10000\n\nsee <https://postgresqlco.nf/doc/en/param/vacuum_cost_page_miss/>",
      "markdownDescription": "Vacuum cost for a page not found in the buffer cache.\n\nMinimum: 0\n\nMaximum: 10000\n\nsee [vacuum_cost_page_miss documentation](https://postgresqlco.nf/doc/en/param/vacuum_cost_page_miss/)",
      "type": "string",
      "examples": [
        "2"
      ]
    },
    "vacuum_defer_cleanup_age": {
      "title": "vacuum_defer_cleanup_age",
      "description": "Number of transactions by which VACUUM and HOT cleanup should be deferred, if any.\n\nMinimum: 0\n\nMaximum: 1000000\n\nNo longer effective thanks to hot_standby_feedback.\n\nsee <https://postgresqlco.nf/doc/en/param/vacuum_defer_cleanup_age/>",
      "markdownDescription": "Number of transactions by which VACUUM and HOT cleanup should be deferred, if any.\n\nMinimum: 0\n\nMaximum: 1000000\n\nNo longer effective thanks to hot_standby_feedback.\n\nsee [vacuum_defer_cleanup_age documentation](https://postgresqlco.nf/doc/en/param/vacuum_defer_cleanup_age/)",
      "type": "string",
      "examples": [
        "0"
      ]
    },
    "vacuum_failsafe_age": {
      "title": "vacuum_failsafe_age",
      "description": "Age at which VACUUM should trigger failsafe to avoid a wraparound outage.\n\nMinimum: 0\n\nMaximum: 2100000000\n\nsee <https://postgresqlco.nf/doc/en/param/vacuum_failsafe_age/>",
      "markdownDescription": "Age at which VACUUM should trigger failsafe to avoid a wraparound outage.\n\nMinimum: 0\n\nMaximum: 2100000000\n\nsee [vacuum_failsafe_age documentation](https://postgresqlco.nf/doc/en/param/vacuum_failsafe_age/)",
      "type": "string",
      "examples": [
        "1600000000"
      ]
    },
    "vacuum_freeze_min_age": {
      "title": "vacuum_freeze_min_age",
      "description": "Minimum age at which VACUUM should freeze a table row.\n\nMinimum: 0\n\nMaximum: 1000000000\n\nMost users will want to decrease this so that rows which have been cold for a long time get frozen earlier, and avoid an autovacuum_freeze.\nThe suggestion of 500000 is for a moderately busy database; do not set to less than a few hours worth of XIDs.  Maximum setting is 1/2 of autovaccuum_max_freeze_age.\n\nsee <https://postgresqlco.nf/doc/en/param/vacuum_freeze_min_age/>",
      "markdownDescription": "Minimum age at which VACUUM should freeze a table row.\n\nMinimum: 0\n\nMaximum: 1000000000\n\nMost users will want to decrease this so that rows which have been cold for a long time get frozen earlier, and avoid an autovacuum_freeze.\nThe suggestion of 500000 is for a moderately busy database; do not set to less than a few hours worth of XIDs.  Maximum setting is 1/2 of autovaccuum_max_freeze_age.\n\nsee [vacuum_freeze_min_age documentation](https://postgresqlco.nf/doc/en/param/vacuum_freeze_min_age/)",
      "type": "string",
      "examples": [
        "50000000"
      ]
    },
    "vacuum_freeze_table_age": {
      "title": "vacuum_freeze_table_age",
      "description": "Age at which VACUUM should scan whole table to freeze tuples.\n\nMinimum: 0\n\nMaximum: 2000000000\n\nGenerally set to 80% of autovacuum_max_freeze age to preempt a full vacuum freeze.\nIf you can schedule cron vacuums during application slow periods, it might be valuable to lower this value in order to encourage vacuum freezing of tables before they are triggered by autovacuum.\n\nsee <https://postgresqlco.nf/doc/en/param/vacuum_freeze_table_age/>",
      "markdownDescription": "Age at which VACUUM should scan whole table to freeze tuples.\n\nMinimum: 0\n\nMaximum: 2000000000\n\nGenerally set to 80% of autovacuum_max_freeze age to preempt a full vacuum freeze.\nIf you can schedule cron vacuums during application slow periods, it might be valuable to lower this value in order to encourage vacuum freezing of tables before they are triggered by autovacuum.\n\nsee [vacuum_freeze_table_age documentation](https://postgresqlco.nf/doc/en/param/vacuum_freeze_table_age/)",
      "type": "string",
      "examples": [
        "150000000"
      ]
    },
    "vacuum_multixact_failsafe_age": {
      "title": "vacuum_multixact_failsafe_age",
      "description": "Multixact age at which VACUUM should trigger failsafe to avoid a wraparound outage.\n\nMinimum: 0\n\nMaximum: 2100000000\n\nsee <https://postgresqlco.nf/doc/en/param/vacuum_multixact_failsafe_age/>",
      "markdownDescription": "Multixact age at which VACUUM should trigger failsafe to avoid a wraparound outage.\n\nMinimum: 0\n\nMaximum: 2100000000\n\nsee [vacuum_multixact_failsafe_age documentation](https://postgresqlco.nf/doc/en/param/vacuum_multixact_failsafe_age/)",
      "type": "string",
      "examples": [
        "1600000000"
      ]
    },
    "vacuum_multixact_freeze_min_age": {
      "title": "vacuum_multixact_freeze_min_age",
      "description": "Minimum age at which VACUUM should freeze a MultiXactId in a table row.\n\nMinimum: 0\n\nMaximum: 1000000000\n\nLike freeze_min_age, lower this to somewhere around an hour of XID burn.\nTry starting with 500000.\n\nsee <https://postgresqlco.nf/doc/en/param/vacuum_multixact_freeze_min_age/>",
      "markdownDescription": "Minimum age at which VACUUM should freeze a MultiXactId in a table row.\n\nMinimum: 0\n\nMaximum: 1000000000\n\nLike freeze_min_age, lower this to somewhere around an hour of XID burn.\nTry starting with 500000.\n\nsee [vacuum_multixact_freeze_min_age documentation](https://postgresqlco.nf/doc/en/param/vacuum_multixact_freeze_min_age/)",
      "type": "string",
      "examples": [
        "5000000"
      ]
    },
    "vacuum_multixact_freeze_table_age": {
      "title": "vacuum_multixact_freeze_table_age",
      "description": "Multixact age at which VACUUM should scan whole table to freeze tuples.\n\nMinimum: 0\n\nMaximum: 2000000000\n\nSet to 80% of autovaccum_multixact_freeze_max_age\n\nsee <https://postgresqlco.nf/doc/en/param/vacuum_multixact_freeze_table_age/>",
      "markdownDescription": "Multixact age at which VACUUM should scan whole table to freeze tuples.\n\nMinimum: 0\n\nMaximum: 2000000000\n\nSet to 80% of autovaccum_multixact_freeze_max_age\n\nsee [vacuum_multixact_freeze_table_age documentation](https://postgresqlco.nf/doc/en/param/vacuum_multixact_freeze_table_age/)",
      "type": "string",
      "examples": [
        "150000000"
      ]
    },
    "wal_block_size": {
      "title": "wal_block_size",
      "description": "Shows the block size in the write ahead log.\n\nMinimum: 8192\n\nMaximum: 8192\n\nInformational: lets you know of non-standard installation or compile options.\n\nsee <https://postgresqlco.nf/doc/en/param/wal_block_size/>",
      "markdownDescription": "Shows the block size in the write ahead log.\n\nMinimum: 8192\n\nMaximum: 8192\n\nInformational: lets you know of non-standard installation or compile options.\n\nsee [wal_block_size documentation](https://postgresqlco.nf/doc/en/param/wal_block_size/)",
      "type": "string",
      "examples": [
        "8192"
      ]
    },
    "wal_buffers": {
      "title": "wal_buffers",
      "description": "Sets the number of disk-page buffers in shared memory for WAL.\n\nMinimum: -1\n\nMaximum: 262143\n\nOn very busy, high-core machines it can be useful to raise this to as much as 128MB.\n\nsee <https://postgresqlco.nf/doc/en/param/wal_buffers/>",
      "markdownDescription": "Sets the number of disk-page buffers in shared memory for WAL.\n\nMinimum: -1\n\nMaximum: 262143\n\nOn very busy, high-core machines it can be useful to raise this to as much as 128MB.\n\nsee [wal_buffers documentation](https://postgresqlco.nf/doc/en/param/wal_buffers/)",
      "type": "string",
      "examples": [
        "512"
      ]
    },
    "wal_compression": {
      "title": "wal_compression",
      "description": "Compresses full-page writes written in WAL file.\n\n... unless your storage is less constrained than your CPU.\n\nsee <https://postgresqlco.nf/doc/en/param/wal_compression/>",
      "markdownDescription": "Compresses full-page writes written in WAL file.\n\n... unless your storage is less constrained than your CPU.\n\nsee [wal_compression documentation](https://postgresqlco.nf/doc/en/param/wal_compression/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "wal_consistency_checking": {
      "title": "wal_consistency_checking",
      "description": "Sets the WAL resource managers for which WAL consistency checks are done.\n\nsee <https://postgresqlco.nf/doc/en/param/wal_consistency_checking/>",
      "markdownDescription": "Sets the WAL resource managers for which WAL consistency checks are done.\n\nsee [wal_consistency_checking documentation](https://postgresqlco.nf/doc/en/param/wal_consistency_checking/)",
      "type": "string"
    },
    "wal_init_zero": {
      "title": "wal_init_zero",
      "description": "Writes zeroes to new WAL files before first use.\n\nsee <https://postgresqlco.nf/doc/en/param/wal_init_zero/>",
      "markdownDescription": "Writes zeroes to new WAL files before first use.\n\nsee [wal_init_zero documentation](https://postgresqlco.nf/doc/en/param/wal_init_zero/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "wal_keep_size": {
      "title": "wal_keep_size",
      "description": "Sets the size of WAL files held for standby servers.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee <https://postgresqlco.nf/doc/en/param/wal_keep_size/>",
      "markdownDescription": "Sets the size of WAL files held for standby servers.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee [wal_keep_size documentation](https://postgresqlco.nf/doc/en/param/wal_keep_size/)",
      "type": "string",
      "examples": [
        "512"
      ]
    },
    "wal_level": {
      "title": "wal_level",
      "description": "Sets the level of information written to the WAL.\n\nLevel replica is required for binary replication, and level logical is required for logical replication.\nThis is a setting because raising the level adds more writes to the WAL, so if you're not doing replication or archiving at all, set it to minimal.\n\nsee <https://postgresqlco.nf/doc/en/param/wal_level/>",
      "markdownDescription": "Sets the level of information written to the WAL.\n\nLevel replica is required for binary replication, and level logical is required for logical replication.\nThis is a setting because raising the level adds more writes to the WAL, so if you're not doing replication or archiving at all, set it to minimal.\n\nsee [wal_level documentation](https://postgresqlco.nf/doc/en/param/wal_level/)",
      "type": "string",
      "examples": [
        "logical"
      ],
      "enum": [
        "minimal",
        "replica",
        "logical"
      ]
    },
    "wal_log_hints": {
      "title": "wal_log_hints",
      "description": "Writes full pages to WAL when first modified after a checkpoint, even for a non-critical modification.\n\nsee <https://postgresqlco.nf/doc/en/param/wal_log_hints/>",
      "markdownDescription": "Writes full pages to WAL when first modified after a checkpoint, even for a non-critical modification.\n\nsee [wal_log_hints documentation](https://postgresqlco.nf/doc/en/param/wal_log_hints/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "wal_receiver_create_temp_slot": {
      "title": "wal_receiver_create_temp_slot",
      "description": "Sets whether a WAL receiver should create a temporary replication slot if no permanent slot is configured.\n\nsee <https://postgresqlco.nf/doc/en/param/wal_receiver_create_temp_slot/>",
      "markdownDescription": "Sets whether a WAL receiver should create a temporary replication slot if no permanent slot is configured.\n\nsee [wal_receiver_create_temp_slot documentation](https://postgresqlco.nf/doc/en/param/wal_receiver_create_temp_slot/)",
      "type": "string",
      "examples": [
        "off"
      ]
    },
    "wal_receiver_status_interval": {
      "title": "wal_receiver_status_interval",
      "description": "Sets the maximum interval between WAL receiver status reports to the sending server.\n\nMinimum: 0\n\nMaximum: 2147483\n\nsee <https://postgresqlco.nf/doc/en/param/wal_receiver_status_interval/>",
      "markdownDescription": "Sets the maximum interval between WAL receiver status reports to the sending server.\n\nMinimum: 0\n\nMaximum: 2147483\n\nsee [wal_receiver_status_interval documentation](https://postgresqlco.nf/doc/en/param/wal_receiver_status_interval/)",
      "type": "string",
      "examples": [
        "10"
      ]
    },
    "wal_receiver_timeout": {
      "title": "wal_receiver_timeout",
      "description": "Sets the maximum wait time to receive data from the sending server.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee <https://postgresqlco.nf/doc/en/param/wal_receiver_timeout/>",
      "markdownDescription": "Sets the maximum wait time to receive data from the sending server.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee [wal_receiver_timeout documentation](https://postgresqlco.nf/doc/en/param/wal_receiver_timeout/)",
      "type": "string",
      "examples": [
        "5000"
      ]
    },
    "wal_recycle": {
      "title": "wal_recycle",
      "description": "Recycles WAL files by renaming them.\n\nsee <https://postgresqlco.nf/doc/en/param/wal_recycle/>",
      "markdownDescription": "Recycles WAL files by renaming them.\n\nsee [wal_recycle documentation](https://postgresqlco.nf/doc/en/param/wal_recycle/)",
      "type": "string",
      "examples": [
        "on"
      ]
    },
    "wal_retrieve_retry_interval": {
      "title": "wal_retrieve_retry_interval",
      "description": "Sets the time to wait before retrying to retrieve WAL after a failed attempt.\n\nMinimum: 1\n\nMaximum: 2147483647\n\nsee <https://postgresqlco.nf/doc/en/param/wal_retrieve_retry_interval/>",
      "markdownDescription": "Sets the time to wait before retrying to retrieve WAL after a failed attempt.\n\nMinimum: 1\n\nMaximum: 2147483647\n\nsee [wal_retrieve_retry_interval documentation](https://postgresqlco.nf/doc/en/param/wal_retrieve_retry_interval/)",
      "type": "string",
      "examples": [
        "5000"
      ]
    },
    "wal_segment_size": {
      "title": "wal_segment_size",
      "description": "Shows the size of write ahead log segments.\n\nMinimum: 1048576\n\nMaximum: 1073741824\n\nInformational: lets you know of non-standard installation or compile options.\n\nsee <https://postgresqlco.nf/doc/en/param/wal_segment_size/>",
      "markdownDescription": "Shows the size of write ahead log segments.\n\nMinimum: 1048576\n\nMaximum: 1073741824\n\nInformational: lets you know of non-standard installation or compile options.\n\nsee [wal_segment_size documentation](https://postgresqlco.nf/doc/en/param/wal_segment_size/)",
      "type": "string",
      "examples": [
        "16777216"
      ]
    },
    "wal_sender_timeout": {
      "title": "wal_sender_timeout",
      "description": "Sets the maximum time to wait for WAL replication.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee <https://postgresqlco.nf/doc/en/param/wal_sender_timeout/>",
      "markdownDescription": "Sets the maximum time to wait for WAL replication.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee [wal_sender_timeout documentation](https://postgresqlco.nf/doc/en/param/wal_sender_timeout/)",
      "type": "string",
      "examples": [
        "5000"
      ]
    },
    "wal_skip_threshold": {
      "title": "wal_skip_threshold",
      "description": "Minimum size of new file to fsync instead of writing WAL.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee <https://postgresqlco.nf/doc/en/param/wal_skip_threshold/>",
      "markdownDescription": "Minimum size of new file to fsync instead of writing WAL.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee [wal_skip_threshold documentation](https://postgresqlco.nf/doc/en/param/wal_skip_threshold/)",
      "type": "string",
      "examples": [
        "2048"
      ]
    },
    "wal_sync_method": {
      "title": "wal_sync_method",
      "description": "Selects the method used for forcing WAL updates to disk.\n\nOn install, PostgreSQL figures out the best method for your OS.\nIt's pretty good at this point; don't change the default.  Note that the value of \"fsync\" shown in your postgresql.conf file is not necessarily the setting the server is using; try SHOW instead.\n\nsee <https://postgresqlco.nf/doc/en/param/wal_sync_method/>",
      "markdownDescription": "Selects the method used for forcing WAL updates to disk.\n\nOn install, PostgreSQL figures out the best method for your OS.\nIt's pretty good at this point; don't change the default.  Note that the value of \"fsync\" shown in your postgresql.conf file is not necessarily the setting the server is using; try SHOW instead.\n\nsee [wal_sync_method documentation](https://postgresqlco.nf/doc/en/param/wal_sync_method/)",
      "type": "string",
      "examples": [
        "fdatasync"
      ],
      "enum": [
        "fsync",
        "fdatasync",
        "open_sync",
        "open_datasync"
      ]
    },
    "wal_writer_delay": {
      "title": "wal_writer_delay",
      "description": "Time between WAL flushes performed in the WAL writer.\n\nMinimum: 1\n\nMaximum: 10000\n\nDefines the maximum data (in time) that can be lost if synchronous_commit=off and the database shuts down.\nBecause of long transactions, actual data lost can be up to twice this time.  Has no effect if synchronous_commit=on.  If you are going to turn synchronous_commit=off server-wide, you should probably lower this to prevent too much data loss.\n\nsee <https://postgresqlco.nf/doc/en/param/wal_writer_delay/>",
      "markdownDescription": "Time between WAL flushes performed in the WAL writer.\n\nMinimum: 1\n\nMaximum: 10000\n\nDefines the maximum data (in time) that can be lost if synchronous_commit=off and the database shuts down.\nBecause of long transactions, actual data lost can be up to twice this time.  Has no effect if synchronous_commit=on.  If you are going to turn synchronous_commit=off server-wide, you should probably lower this to prevent too much data loss.\n\nsee [wal_writer_delay documentation](https://postgresqlco.nf/doc/en/param/wal_writer_delay/)",
      "type": "string",
      "examples": [
        "200"
      ]
    },
    "wal_writer_flush_after": {
      "title": "wal_writer_flush_after",
      "description": "Amount of WAL written out by WAL writer that triggers a flush.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee <https://postgresqlco.nf/doc/en/param/wal_writer_flush_after/>",
      "markdownDescription": "Amount of WAL written out by WAL writer that triggers a flush.\n\nMinimum: 0\n\nMaximum: 2147483647\n\nsee [wal_writer_flush_after documentation](https://postgresqlco.nf/doc/en/param/wal_writer_flush_after/)",
      "type": "string",
      "examples": [
        "128"
      ]
    },
    "work_mem": {
      "title": "work_mem",
      "description": "Sets the maximum memory to be used for query workspaces.\n\nMinimum: 64\n\nMaximum: 2147483647\n\nSets the limit for the amount of non-shared RAM available for each query operation, including sorts and hashes.\nThis limit acts as a primitive resource control, preventing the server from going into swap due to overallocation.  Note that this is non-shared RAM per operation, which means large complex queries can use multple times this amount.  Also, work_mem is allocated by powers of two, so round to the nearest binary step.  The second formula is for reporting and DW servers which run a lot of complex queries.\n\nsee <https://postgresqlco.nf/doc/en/param/work_mem/>",
      "markdownDescription": "Sets the maximum memory to be used for query workspaces.\n\nMinimum: 64\n\nMaximum: 2147483647\n\nSets the limit for the amount of non-shared RAM available for each query operation, including sorts and hashes.\nThis limit acts as a primitive resource control, preventing the server from going into swap due to overallocation.  Note that this is non-shared RAM per operation, which means large complex queries can use multple times this amount.  Also, work_mem is allocated by powers of two, so round to the nearest binary step.  The second formula is for reporting and DW servers which run a lot of complex queries.\n\nsee [work_mem documentation](https://postgresqlco.nf/doc/en/param/work_mem/)",
      "type": "string",
      "examples": [
        "32768"
      ]
    },
    "xmlbinary": {
      "title": "xmlbinary",
      "description": "Sets how binary values are to be encoded in XML.\n\nSet to whatever your client application supports.\n\nsee <https://postgresqlco.nf/doc/en/param/xmlbinary/>",
      "markdownDescription": "Sets how binary values are to be encoded in XML.\n\nSet to whatever your client application supports.\n\nsee [xmlbinary documentation](https://postgresqlco.nf/doc/en/param/xmlbinary/)",
      "type": "string",
      "examples": [
        "base64"
      ],
      "enum": [
        "base64",
        "hex"
      ]
    },
    "xmloption": {
      "title": "xmloption",
      "description": "Sets whether XML data in implicit parsing and serialization operations is to be considered as documents or content fragments.\n\nsee <https://postgresqlco.nf/doc/en/param/xmloption/>",
      "markdownDescription": "Sets whether XML data in implicit parsing and serialization operations is to be considered as documents or content fragments.\n\nsee [xmloption documentation](https://postgresqlco.nf/doc/en/param/xmloption/)",
      "type": "string",
      "examples": [
        "content"
      ],
      "enum": [
        "content",
        "document"
      ]
    },
    "zero_damaged_pages": {
      "title": "zero_damaged_pages",
      "description": "Continues processing past damaged page headers.\n\nUsed for salvaging data from a known-bad database.\nYou should always make a binary backup before using this option, and it should not be used while users are allowed to connect.  After damaged pages are erased, other kinds of data intergrity errors may persist (like broken PKs and FKs).  ZDP should generally be used to get your DB to a stage where the data can be dumped and loaded into a new database.\n\nsee <https://postgresqlco.nf/doc/en/param/zero_damaged_pages/>",
      "markdownDescription": "Continues processing past damaged page headers.\n\nUsed for salvaging data from a known-bad database.\nYou should always make a binary backup before using this option, and it should not be used while users are allowed to connect.  After damaged pages are erased, other kinds of data intergrity errors may persist (like broken PKs and FKs).  ZDP should generally be used to get your DB to a stage where the data can be dumped and loaded into a new database.\n\nsee [zero_damaged_pages documentation](https://postgresqlco.nf/doc/en/param/zero_damaged_pages/)",
      "type": "string",
      "examples": [
        "off"
      ]
    }
  },
  "additionalProperties": false
}
