Перейти к основному содержимому

Параметры подключения клиента

примечание

Эта страница переведена при помощи нейросети GigaChat.

Поведение оператора

client_min_messages (enum)

Контролирует, какие уровни сообщений отправляются клиенту. Допустимые значения - это DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, LOG, NOTICE, WARNING и ERROR. Каждый уровень включает все уровни, которые следуют за ним. Чем позже уровень, тем меньше сообщений отправляется. По умолчанию используется значение NOTICE. Обратите внимание, что LOG имеет здесь другой ранг, чем в log_min_messages.

Сообщения уровня INFO всегда отправляются клиенту.

search_path (string)

Эта переменная определяет порядок поиска схем при ссылке на объект (таблицу, тип данных, функцию и т.д.) простым именем без указания схемы. Когда есть объекты с одинаковыми именами в разных схемах, используется тот, который находится первым в пути поиска. Объект, который не содержится ни в одной из схем в пути поиска, может быть указан только путем указания содержащей его схемы с квалифицированным (точечным) именем.

Значение для search_path должно быть списком имен схем, разделенных запятыми. Любое имя, которое не является существующей схемой или является схемой, для которой у пользователя нет разрешения USAGE, игнорируется молча.

Если один из элементов списка является специальным именем $user, то схема с именем, возвращаемым CURRENT_USER, заменяется, если существует такая схема и у пользователя есть разрешение USAGE для нее. (В противном случае $user игнорируется.)

Системная каталог-схема, pg_catalog, всегда ищется, упоминается ли она в пути или нет. Если она упомянута в пути, то будет искаться в указанном порядке. Если pg_catalog отсутствует в пути, он будет искаться перед поиском любого из элементов пути.

Точно так же текущая временная таблица схемы сеанса, pg_temp_nnn, всегда ищется, если она существует. Она может быть явно указана в пути, используя псевдоним pg_temp. Если она не указана в пути, то поиск начинается с нее (даже перед pg_catalog). Однако временная схема ищется только для имен отношений (таблица, представление, последовательность и т.д.) и типов данных. Никогда не ищутся имена функций или операторов.

Когда объекты создаются без указания конкретной целевой схемы, они будут помещены в первую допустимую схему, указанную в search_path. Сообщается об ошибке, если путь поиска пуст.

Значение по умолчанию для этого параметра равно "$user", public. Эта настройка поддерживает совместное использование базы данных (где у пользователей нет личных схем, и все используют public), личные схемы для каждого пользователя и комбинации этих вариантов. Другие эффекты могут быть достигнуты путем изменения настройки пути поиска по умолчанию, либо глобально, либо для каждого пользователя.

Для получения дополнительной информации о работе со схемами см. раздел Схемы. В частности, конфигурация по умолчанию подходит только тогда, когда база данных имеет одного пользователя или несколько взаимно доверяющих пользователей.

Текущее эффективное значение пути поиска можно проверить с помощью функции SQL current_schemas (см. Системные информационные функции и операторы). Это не совсем то же самое, что проверка значения search_path, поскольку current_schemas показывает, как были разрешены элементы, появляющиеся в search_path.

row_security (boolean)

Эта переменная контролирует, следует ли выдавать ошибку вместо применения политики безопасности строки. Когда установлено значение on, политики применяются нормально. Когда установлено значение off, запросы терпят неудачу, которые в противном случае применили бы хотя бы одну политику. По умолчанию используется значение on. Измените его на off, если ограниченная видимость строк может привести к неправильным результатам; например, pg_dump делает это изменение по умолчанию. Эта переменная не влияет на роли, которые обходят каждую политику безопасности строк, а именно, суперпользователи и роли с атрибутом BYPASSRLS.

default_table_access_method (string)

Этот параметр указывает метод доступа к таблицам по умолчанию, который следует использовать при создании таблиц или материализованных представлений, если команда CREATE явно не указывает метод доступа, или когда используется SELECT ... INTO, что не позволяет указать метод доступа к таблице. По умолчанию используется heap.

default_tablespace (string)

Эта переменная определяет рабочее пространство по умолчанию, в котором создаются объекты (таблицы и индексы), когда команда CREATE явно не указывает рабочее пространство.

Значение представляет собой имя рабочего пространства или пустую строку для указания использования рабочего пространства по умолчанию текущей базы данных. Если значение не соответствует имени какого-либо существующего рабочего пространства, PostgreSQL автоматически будет использовать рабочее пространство по умолчанию текущей базы данных. Если указано нестандартное рабочее пространство, пользователь должен иметь привилегию CREATE для него, иначе попытки создания завершатся неудачно.

Эта переменная не используется для временных таблиц; для них вместо этого используется temp_tablespaces .

Эта переменная также не используется при создании баз данных. По умолчанию новая база данных наследует свою настройку табличного пространства от шаблонной базы данных, с которой она копируется.

Если этот параметр установлен на значение, отличное от пустой строки при создании разнесенной таблицы, пространство таблиц для разнесенной таблицы будет установлено на это значение, которое будет использоваться в качестве пространства таблиц по умолчанию для разделов, созданных в будущем, даже если default_tablespace изменилось с тех пор.

Для получения дополнительной информации о пространствах таблиц см. Раздел Пространства таблиц.

default_toast_compression (enum)

Эта переменная устанавливает метод сжатия TOAST по умолчанию для значений сжимаемых столбцов. (Это можно переопределить для отдельных столбцов путем установки параметра столбца в или .) Поддерживаемые методы сжатия включают и (если PostgreSQL был скомпилирован с ). По умолчанию используется .

temp_tablespaces (string)

Эта переменная указывает табличные пространства, в которых следует создавать временные объекты (временные таблицы и индексы временных таблиц), когда команда не явно указывает табличное пространство. Временные файлы для таких целей, как сортировка больших наборов данных, также создаются в этих табличных пространствах.

Значение представляет собой список имен табличных пространств. Когда в списке более одного имени, PostgreSQL выбирает случайный элемент списка каждый раз при создании временного объекта; за исключением того, что внутри транзакции последовательно создаваемые временные объекты размещаются в последовательных табличных пространствах из списка. Если выбранный элемент списка является пустой строкой, PostgreSQL автоматически будет использовать табличное пространство по умолчанию текущей базы данных.

Когда temp_tablespaces устанавливается интерактивно, указание несуществующего табличного пространства является ошибкой, так же как и указание табличного пространства, для которого у пользователя нет привилегии CREATE. Однако при использовании ранее установленного значения несуществующие табличные пространства игнорируются, как и табличные пространства, для которых пользователю не хватает привилегий CREATE. В частности, это правило применяется при использовании значения, заданного в postgresql.conf.

Значение по умолчанию - пустая строка, что приводит к созданию всех временных объектов в табличном пространстве по умолчанию текущей базы данных.

См. также default_tablespace.

check_function_bodies (boolean)

Этот параметр обычно включен. Когда он установлен на off, он отключает проверку строки основного тела процедуры во время выполнения команд CREATE PROCEDURE. Отключение проверки позволяет избежать побочных эффектов процесса проверки, особенно предотвращая ложные срабатывания из-за таких проблем, как ссылки вперед. Установите этот параметр на off перед загрузкой функций от имени других пользователей; pg_dump делает это автоматически.

default_transaction_isolation (enum)

Каждая транзакция SQL имеет уровень изоляции, который может быть либо «незафиксированное чтение», «фиксированное чтение», «повторяемое чтение» или «последовательное выполнение». Этот параметр управляет уровнем изоляции по умолчанию для каждой новой транзакции. По умолчанию используется значение «фиксированное чтение».

default_transaction_read_only (boolean)

Только для чтения транзакция SQL не может изменять нетабличные временные таблицы. Этот параметр контролирует состояние только для чтения каждого нового действия по умолчанию. По умолчанию используется режим чтения/записи.

default_transaction_deferrable (boolean)

При выполнении на уровне изоляции serializable, откладываемая транзакция только для чтения SQL может быть отложена перед тем, как ей будет разрешено продолжить выполнение. Однако, как только она начинает выполняться, она не несет никаких накладных расходов, необходимых для обеспечения сериализуемости; поэтому код сериализации не имеет оснований принудительно прерывать его из-за одновременного обновления, что делает этот параметр подходящим для длительных транзакций только для чтения.

Этот параметр контролирует статус откладывания по умолчанию для каждой новой транзакции. В настоящее время он не влияет на транзакции чтения-записи или те, которые работают на уровнях изоляции ниже serializable. По умолчанию установлено значение off.

transaction_isolation (enum)

Этот параметр отражает уровень изоляции текущей транзакции. В начале каждой транзакции он устанавливается равным текущему значению default_transaction_isolation. Любая последующая попытка изменить его эквивалентна команде SET TRANSACTION.

transaction_read_only (boolean)

Этот параметр отражает текущий статус только для чтения транзакции. В начале каждой транзакции она устанавливается на текущее значение default_transaction_read_only. Любая последующая попытка изменить его эквивалентна команде SET TRANSACTION.

transaction_deferrable (boolean)

Этот параметр отражает текущий статус откладываемости транзакции. В начале каждой транзакции он устанавливается на текущее значение default_transaction_deferrable. Любая последующая попытка изменить его эквивалентна команде SET TRANSACTION.

session_replication_role (enum)

Управляет запуском триггеров и правил, связанных с репликацией, для текущего сеанса. Возможные значения включают origin (по умолчанию), replica и local. Установка этого параметра приводит к удалению любых ранее кешированных планов запросов. Только суперпользователи и пользователи с соответствующим привилегией SET могут изменять этот параметр.

Предполагается, что системы логической репликации будут устанавливать этот параметр на значение replica, когда они применяют реплицированные изменения. В результате этого триггеры и правила (которые не были изменены из их конфигурации по умолчанию) не будут срабатывать на реплике. См. разделы ALTER TABLE для получения дополнительной информации.

PostgreSQL рассматривает параметры origin и local одинаково внутренне. Системы репликации сторонних производителей могут использовать эти два значения для своих внутренних целей, например, используя local для обозначения сеанса, изменения которого не должны быть реплицированы.

Поскольку внешние ключи реализованы как триггеры, установка этого параметра на значение replica также отключает все проверки внешних ключей, что может привести к состоянию данных, если оно используется неправильно.

statement_timeout (integer)

Прервать любое утверждение, которое занимает больше указанного времени. Если log_min_error_statement установлен на ERROR или ниже, то утверждение, время ожидания которого истекло, также будет зарегистрировано. Если это значение указано без единиц измерения, оно принимается за миллисекунды. Значение нуля (по умолчанию) отключает тайм-аут.

Таймер обратного отсчета начинается с момента поступления команды на сервер и до ее завершения сервером. Если в одном простом сообщении-запросе появляется несколько операторов SQL, тайм-аут применяется к каждому оператору отдельно. (PostgreSQL версии до 13 обычно рассматривали тайм-аут как применимый ко всей строке запроса.) В расширенном протоколе запросов таймер начинает работать при поступлении любого сообщения, связанного с запросом (Parse, Bind, Execute, Describe), и он отменяется завершением сообщения Execute или Sync.

Установка statement_timeout в postgresql.conf не рекомендуется, так как она повлияет на все сеансы.

transaction_timeout (integer)

Завершать любые сеансы, длящиеся дольше заданного времени в транзакции. Ограничение применяется как к явным транзакциям (начинающимся с BEGIN), так и к неявно запущенным транзакциям, состоящим из одного оператора. Если это значение задается без единиц измерения, оно считается заданным в миллисекундах. При значении, равном нулю (по умолчанию), этот контроль длительности отключается.

Если transaction_timeout меньше или равен idle_in_transaction_session_timeout или statement_timeout, игнорируется более длительный тайм-аут.

Не рекомендуется устанавливать значение transaction_timeout в postgresql.conf, так как это повлияет на все сеансы.

Этот тайм-аут не влияет на подготовленные транзакции.

lock_timeout (integer)

Прервите любое утверждение, которое ожидает дольше указанного времени при попытке получить блокировку таблицы, индекса, строки или другого объекта базы данных. Ограничение по времени применяется отдельно для каждой попытки получения блокировки. Предел распространяется как на явные запросы блокировки (например, LOCK TABLE, или SELECT FOR UPDATE без NOWAIT), так и на блокировки, полученные неявно. Если это значение указано без единиц измерения, оно принимается за миллисекунды. Значение нуля (по умолчанию) отключает тайм-аут.

В отличие от statement_timeout, это время ожидания может произойти только при ожидании блокировок. Обратите внимание, что если statement_timeout не равен нулю, то довольно бессмысленно устанавливать lock_timeout на такое же или большее значение, поскольку тайм-аут оператора всегда будет срабатывать первым. Если log_min_error_statement установлен на ERROR или ниже, оператор, который истекает, будет зарегистрирован.

Установка lock_timeout в postgresql.conf не рекомендуется, так как она повлияет на все сеансы.

idle_in_transaction_session_timeout (integer)

Завершите любой сеанс, который простаивал (то есть ожидал запроса клиента) в открытой транзакции дольше указанного времени. Если это значение указано без единиц измерения, оно принимается за миллисекунды. Значение нуля (по умолчанию) отключает тайм-аут.

Этот параметр можно использовать для того, чтобы гарантировать, что неактивные сеансы не удерживают блокировки в течение неразумного времени. Даже если нет значительных блокировок, открытая транзакция предотвращает удаление недавно умерших кортежей, которые могут быть видны только этой транзакции; поэтому длительное бездействие может способствовать раздуванию таблицы. См. раздел Регулярная очистка для получения более подробной информации.

idle_session_timeout (integer)

Завершите любой сеанс, который был неактивен (то есть ожидал запроса клиента), но не находился внутри открытой транзакции, дольше указанного периода времени. Если это значение указано без единиц измерения, оно принимается за миллисекунды. Значение нуля (по умолчанию) отключает тайм-аут.

В отличие от случая с открытой транзакцией, неактивный сеанс без транзакции не накладывает больших затрат на сервер, так что необходимость включения этого тайм-аута меньше, чем idle_in_transaction_session_timeout.

Будьте осторожны при принудительном применении этого тайм-аута к соединениям, установленным через программное обеспечение для управления пулом соединений или другое промежуточное ПО, поскольку такой уровень может не реагировать должным образом на неожиданное закрытие соединения. Возможно, будет полезно включить этот тайм-аут только для интерактивных сеансов, возможно, применяя его только к определенным пользователям.

vacuum_freeze_table_age (integer)

VACUUM выполняет агрессивное сканирование, если поле pg_class.relfrozenxid таблицы достигло возраста, указанного этим параметром. Агрессивное сканирование отличается от обычного VACUUM тем, что оно посещает каждую страницу, которая может содержать незамерзаемые XIDs или MXIDs, а не только те, которые могут содержать мертвые кортежи. По умолчанию это 150 миллионов транзакций. Хотя пользователи могут установить это значение где угодно от нуля до двух миллиардов, VACUUM будет молча ограничивать эффективное значение до 95% от autovacuum_freeze_max_age, чтобы периодическая ручная VACUUM имела шанс запуститься перед запуском антиобертки autovacuum для этой таблицы. Для получения дополнительной информации см. раздел Предотвращение отказов из-за оборачивания идентификаторов транзакций.

vacuum_freeze_min_age (integer)

Задает возраст отсечения (в транзакциях), который VACUUM должен использовать для определения того, следует ли замораживать версии строк при сканировании таблицы. По умолчанию это 50 миллионов транзакций. Хотя пользователи могут установить это значение где угодно от нуля до одного миллиарда, VACUUM будет молча ограничивать эффективное значение половиной значения autovacuum_freeze_max_age , чтобы не было неразумно короткого времени между принудительными автоочистками. Для получения дополнительной информации см. раздел Предотвращение отказов из-за оборачивания идентификаторов транзакций.

vacuum_failsafe_age (integer)

Задает максимальный возраст (в транзакциях), которого может достичь поле pg_class.relfrozenxid таблицы, прежде чем VACUUM примет чрезвычайные меры для предотвращения системного отказа из-за оборачивания идентификатора транзакции. Это VACUUM'а стратегия последнего средства. Обычно предохранитель срабатывает, когда автоочистка для предотвращения оборачивания идентификаторов транзакций уже работает некоторое время, хотя возможно, что предохранитель сработает во время любой VACUUM.

Когда срабатывает защита от повреждений, любое задерживающее действие на основе затрат, которое находится в силе, больше не применяется, и дальнейшие несущественные задачи обслуживания (такие как вакуумная очистка индексов) пропускаются.

По умолчанию 1,6 миллиарда транзакций. Хотя пользователи могут установить это значение где угодно от нуля до 2,1 миллиарда, VACUUM будет молча корректировать эффективное значение не менее чем на 105% от autovacuum_freeze_max_age.

vacuum_multixact_freeze_table_age (integer)

VACUUM выполняет агрессивное сканирование, если поле pg_class.relminmxid таблицы достигло возраста, указанного этим параметром. Агрессивное сканирование отличается от регулярного VACUUM тем, что оно посещает каждую страницу, которая может содержать незамерзающие XID или MXID, а не только те, которые могут содержать мертвые кортежи. По умолчанию 150 миллионов мультитранзакций. Хотя пользователи могут установить это значение где угодно от нуля до двух миллиардов, VACUUM будет молча ограничивать эффективное значение до 95% от autovacuum_multixact_freeze_max_age, чтобы периодическое ручное VACUUM имело шанс запуститься перед запуском анти-циклического обхода для таблицы. Для получения дополнительной информации см. раздел Multixacts и Wraparound.

vacuum_multixact_freeze_min_age (integer)

Задает возраст отсечения (в мультитранзакциях), который VACUUM должен использовать для определения того, следует ли заменять идентификаторы мультитранзакции новым идентификатором транзакции или идентификатором мультитранзакции при сканировании таблицы. По умолчанию используется пять миллионов мультитранзакций. Хотя пользователи могут установить это значение где угодно от нуля до одного миллиарда, VACUUM будет молча ограничивать эффективное значение половиной значения autovacuum_multixact_freeze_max_age , чтобы не было неразумно короткого времени между принудительными автоочистками. Для получения дополнительной информации см. раздел Multixacts и Wraparound.

vacuum_multixact_failsafe_age (integer)

Задает максимальный возраст (в multixacts), которого поле pg_class.relminmxid таблицы может достичь перед тем, как VACUUM примет чрезвычайные меры для предотвращения системного повреждения идентификатора multixact. Это стратегия последнего средства VACUUM. Обычно предохранитель срабатывает, когда уже некоторое время работает автоочистка для предотвращения оборачивания идентификаторов транзакций, хотя возможно, что предохранитель сработает во время любого VACUUM.

Когда срабатывает защита от повреждений, любое задерживающее действие на основе затрат, которое находится в силе, больше не применяется, и дальнейшие несущественные задачи обслуживания (такие как вакуумная очистка индексов) пропускаются.

По умолчанию используется 1,6 миллиарда мультитранзакций. Хотя пользователи могут задать это значение где угодно от нуля до 2,1 миллиарда, VACUUM будет незаметно корректировать эффективное значение до уровня не менее 105% от autovacuum_multixact_freeze_max_age.

bytea_output (enum)

Устанавливает формат вывода для значений типа bytea. Допустимые значения - это hex (по умолчанию) и escape (традиционный формат PostgreSQL). Тип bytea всегда принимает оба формата ввода независимо от этой настройки.

xmlbinary (enum)

Задает способ кодирования двоичных значений в XML. Это применяется, например, когда значения bytea преобразуются в XML с помощью функций xmlelement или xmlforest. Возможные значения - base64 и hex, которые определены в стандарте XML-схемы. По умолчанию используется значение base64. Дополнительную информацию о функциях, связанных с XML.

Фактический выбор здесь в основном дело вкуса, ограниченное только возможными ограничениями в клиентских приложениях. Оба метода поддерживают все возможные значения, хотя кодировка в шестнадцатеричном формате будет несколько больше, чем кодировка base64.

xmloption (enum)

Устанавливает, является ли DOCUMENT или CONTENT неявным при преобразовании между значениями XML и строковыми значениями. Допустимые значения - DOCUMENT и CONTENT. По умолчанию используется CONTENT.

Согласно стандарту SQL, команда для установки этой опции следующая:

SET XML OPTION { DOCUMENT | CONTENT };

Этот синтаксис также доступен в PostgreSQL.

gin_pending_list_limit (integer)

Устанавливает максимальный размер списка ожидания индекса GIN, который используется при включении fastupdate . Если список становится больше этого максимального размера, он очищается путем перемещения записей в него в основную структуру данных GIN оптом. Если это значение указано без единиц измерения, оно принимается за килобайты. По умолчанию четыре мегабайта (4MB). Это настройка может быть переопределена для отдельных индексов GIN путем изменения параметров хранения индекса. См. «Советы и хитрости GIN» для получения дополнительной информации.

Локаль и форматирование

DateStyle (string)

Устанавливает формат отображения значений даты и времени, а также правила интерпретации неоднозначных входных значений даты. По историческим причинам эта переменная содержит два независимых компонента: спецификацию формата вывода (ISO, Postgres, SQL, или German) и спецификацию ввода-вывода для порядка год/месяц/день (DMY, MDY, или YMD). Эти компоненты могут быть установлены отдельно или вместе. Ключевые слова Euro и European являются синонимами для DMY; ключевые слова US, NonEuro, и NonEuropean являются синонимами для MDY. Встроенное значение по умолчанию --- ISO, MDY, но initdb инициализирует файл конфигурации с настройкой, соответствующей поведению выбранного lc_time локали.

IntervalStyle (enum)

Устанавливает формат отображения интервалов. Значение sql_standard будет производить вывод, соответствующий стандартным литералам интервала SQL. Значение postgres (которое является значением по умолчанию) будет производить вывод, соответствующий выпускам PostgreSQL до версии 8.4, когда параметр DateStyle был установлен на ISO. Значение postgres_verbose будет производить вывод, соответствующий выпускам PostgreSQL до версии 8.4, когда параметр DateStyle был установлен на не-ISO вывод. Значение iso_8601 будет производить вывод, соответствующий временному интервалу «формат с обозначениями», определенному в разделе 4.4.3.2 стандарта ISO 8601.

Параметр IntervalStyle также влияет на интерпретацию неоднозначного ввода интервала.

TimeZone (string)

Устанавливает часовой пояс для отображения и интерпретации временных меток. Встроенная настройка по умолчанию - GMT, но обычно она переопределяется в postgresql.conf; initdb установит там настройку, соответствующую его системной среде. См. раздел Типы даты и времени для получения дополнительной информации.

timezone_abbreviations (string)

Задает набор сокращений часовых поясов, которые будут приниматься сервером для ввода даты и времени. По умолчанию используется 'Default', который является набором, работающим в большинстве стран мира; также существуют 'Australia' и 'India', а также могут быть определены другие наборы для конкретной установки. См. раздел «Файлы конфигурации даты/времени» для получения дополнительной информации.

extra_float_digits (integer)

Этот параметр регулирует количество цифр, используемых для текстового вывода значений с плавающей запятой, включая float4, float8, и геометрические типы данных.

Если значение равно 1 (по умолчанию) или выше, значения с плавающей запятой выводятся в формате кратчайшего точного формата. Фактическое количество генерируемых цифр зависит только от выводимого значения, а не от значения этого параметра. Для значений float8 требуется максимум 17 цифр, а для значений float4 --- 9. Этот формат является одновременно быстрым и точным, точно сохраняя исходное двоичное значение с плавающей запятой при правильном чтении. Для обеспечения исторической совместимости допускаются значения до 3.

Если значение равно нулю или отрицательному числу, то вывод округляется до заданной десятичной точности. Используемая точность представляет собой стандартное количество цифр для типа (FLT_DIG или DBL_DIG соответственно), уменьшенное в соответствии со значением этого параметра. (Например, указание -1 приведет к выводу значений float4 округленных до 5 значимых цифр, а значений float8 округленных до 14 цифр). Этот формат медленнее и не сохраняет все биты двоичного значения с плавающей запятой, но может быть более удобным для чтения человеком.

Примечание

Значение этого параметра и его значение по умолчанию изменились в PostgreSQL 12; см. раздел Типы с плавающей точкой для дальнейшего обсуждения.

client_encoding (string)

Устанавливает кодировку на стороне клиента (набор символов). По умолчанию используется кодировка базы данных. Наборы символов, поддерживаемые сервером PostgreSQL, описаны в разделе Поддерживаемые наборы символов.

lc_messages (string)

Задает язык, на котором отображаются сообщения. Допустимые значения зависят от системы; см. раздел Поддержка локали для получения дополнительной информации. Если эта переменная установлена в пустую строку (что является значением по умолчанию), то значение наследуется из среды выполнения сервера зависимым от системы образом.

В некоторых системах эта категория локализации не существует. Установка этой переменной все равно будет работать, но эффекта не будет. Также есть вероятность, что переведенные сообщения на желаемый язык отсутствуют. В этом случае сообщения будут на английском языке.

Только суперпользователи и пользователи с соответствующим SET привилегией могут изменить этот параметр.

lc_monetary (string)

Устанавливает локаль для форматирования денежных сумм, например, с использованием семейства функций to_char. Допустимые значения зависят от системы; см. раздел Поддержка локали для получения дополнительной информации. Если эта переменная установлена в пустую строку (что является значением по умолчанию), то значение наследуется из среды выполнения сервера зависимым от системы образом.

lc_numeric (string)

Устанавливает локаль для форматирования чисел, например с использованием функций семейства to_char. Допустимые значения зависят от системы; см. раздел Поддержка локали для получения дополнительной информации. Если эта переменная установлена в пустую строку (что является значением по умолчанию), то значение наследуется из среды выполнения сервера зависимым от системы образом.

lc_time (string)

Устанавливает локаль для форматирования дат и времени, например с использованием функций семейства to_char. Допустимые значения зависят от системы; см. раздел Поддержка локали для получения дополнительной информации. Если эта переменная установлена в пустую строку (что является значением по умолчанию), то значение наследуется из среды выполнения сервера зависимым от системы образом.

default_text_search_config (string)

Выбирает конфигурацию поиска текста, которая используется теми вариантами функций поиска текста, явно не указывающими конфигурацию. См. Полный текстовый поиск для получения дополнительной информации. Встроенное значение по умолчанию - pg_catalog.simple, но initdb инициализирует файл конфигурации настройкой, соответствующей выбранной lc_ctype локализации, если может быть идентифицирована конфигурация, соответствующая этой локализации.

Предварительная загрузка общей библиотеки

Доступно несколько настроек для предварительной загрузки общих библиотек в сервер с целью загрузки дополнительной функциональности или достижения преимуществ в производительности. Например, настройка '$libdir/mylib' приведет к предварительной загрузке mylib.so (или на некоторых платформах, mylib.sl) из стандартного каталога библиотек установки. Различия между настройками заключаются во времени их вступления в силу и в том, какие привилегии требуются для их изменения.

Библиотеки процедурных языков PostgreSQL могут быть предварительно загружены таким образом, обычно путем использования синтаксиса '$libdir/plXXX', где XXX является pgsql, perl, tcl или python.

Таким способом можно загружать только общие библиотеки, специально предназначенные для использования с PostgreSQL. Каждая библиотека, поддерживаемая PostgreSQL, имеет «магический блок», который проверяется для гарантии совместимости. По этой причине библиотеки, не относящиеся к PostgreSQL, нельзя загружать таким образом. Возможно, можно использовать средства операционной системы, такие как LD_PRELOAD для этого.

В общем случае обратитесь к документации конкретного модуля для рекомендуемого способа загрузки этого модуля.

local_preload_libraries (string)

Эта переменная указывает одну или несколько общих библиотек, которые должны быть предварительно загружены при запуске соединения. Она содержит список имен библиотек, разделенных запятыми, где каждое имя интерпретируется так же, как и для команды LOAD. Пробелы между элементами игнорируются; заключите имя библиотеки в двойные кавычки, если нужно включить пробелы или запятые в имени. Значение параметра вступает в силу только в начале подключения. Последующие изменения не имеют значения. Если указанная библиотека не найдена, попытка подключения завершится неудачно.

Этот параметр может быть установлен любым пользователем. Из-за этого библиотеки, которые могут быть загружены, ограничиваются теми, которые появляются в подкаталоге plugins стандартного каталога библиотек установки. (Ответственность администратора базы данных заключается в том, чтобы убедиться, что там установлены только «безопасные» библиотеки). В записи local_preload_libraries можно указать этот каталог явно, например $libdir/plugins/mylib, или просто указать имя библиотеки --- mylib будет иметь тот же эффект, что и $libdir/plugins/mylib.

Цель этой функции - разрешить непривилегированным пользователям загружать отладочные библиотеки или библиотеки для измерения производительности в определенные сеансы без необходимости явной команды LOAD. Для этого обычно устанавливают этот параметр с помощью переменной окружения PGOPTIONS на клиенте или используя ALTER ROLE SET.

Однако, если модуль специально не предназначен для использования таким образом непривилегированными пользователями, это обычно не правильный параметр для использования. Посмотрите на session_preload_libraries вместо этого.

session_preload_libraries (string)

Эта переменная указывает одну или несколько общих библиотек, которые должны быть предварительно загружены при запуске соединения. Она содержит список имен библиотек, разделенных запятыми, где каждое имя интерпретируется так же, как и для команды LOAD. Пробелы между элементами игнорируются; заключите имя библиотеки в двойные кавычки, если нужно включить пробелы или запятые в имени. Значение параметра вступает в силу только в начале подключения. Последующие изменения не имеют эффекта. Если указанная библиотека не найдена, попытка подключения завершится неудачно. Только суперпользователи и пользователи с соответствующим привилегией SET могут изменить эту настройку.

Целью этой функции является разрешение отладочных библиотек или библиотек для измерения производительности загружаться в определенные сеансы без явной команды LOAD. Например, auto_explain может быть включен для всех сессий под определенным именем пользователя путем установки этого параметра с помощью ALTER ROLE SET. Кроме того, этот параметр можно изменить без перезапуска сервера (но изменения вступают в силу только при запуске нового сеанса), поэтому так легче добавлять новые модули, даже если они должны применяться ко всем сессиям.

В отличие от shared_preload_libraries, нет большого преимущества в производительности при загрузке библиотеки при запуске сессии вместо ее первого использования. Однако есть некоторое преимущество, когда используется пул соединений.

shared_preload_libraries (string)

Эта переменная указывает одну или несколько общих библиотек, которые должны быть предварительно загружены при запуске сервера. Она содержит список имен библиотек, разделенных запятыми, где каждое имя интерпретируется так же, как и для команды LOAD. Пробелы между элементами игнорируются; заключите имя библиотеки в двойные кавычки, если нужно включить пробелы или запятые в имени. Этот параметр можно установить только при запуске сервера. Если указанная библиотека не найдена, сервер не сможет запуститься.

Некоторые библиотеки должны выполнять определенные операции, которые могут быть выполнены только при запуске постмастера, такие как выделение общей памяти, резервирование легких замков или запуск фоновых рабочих процессов. Эти библиотеки должны загружаться при запуске сервера через этот параметр. См. документацию каждой библиотеки для получения подробной информации.

Также могут быть предварительно загружены другие библиотеки. Загружая общую библиотеку, время запуска библиотеки при первом ее использовании избегается. Однако время запуска каждого нового процесса сервера может немного увеличиться, даже если этот процесс никогда не использует библиотеку. Поэтому этот параметр рекомендуется использовать только для тех библиотек, которые будут использоваться в большинстве сессий. Кроме того, изменение этого параметра требует перезапуска сервера, поэтому это не та настройка, которую следует использовать для краткосрочных задач отладки, скажем. Вместо этого используйте session_preload_libraries.

Примечание

На хостах Windows предварительная загрузка библиотеки при запуске сервера не уменьшит время, необходимое для запуска каждого нового серверного процесса; каждый серверный процесс будет повторно загружать все предварительно загруженные библиотеки. Однако shared_preload_libraries по-прежнему полезно на хостах Windows для библиотек, которым необходимо выполнять операции во время запуска постмастера.

jit_provider (string)

Эта переменная является именем библиотеки поставщика JIT, которая должна использоваться (см. Раздел Поставщики Pluggable JIT). По умолчанию используется llvmjit. Этот параметр можно установить только при запуске сервера.

Если установлено значение несуществующей библиотеки, JIT недоступен, но ошибка не возникнет. Это позволяет устанавливать поддержку JIT отдельно от основного пакета PostgreSQL.

Другие значения по умолчанию

dynamic_library_path (string)

Если модуль, который загружается динамически, необходимо открыть и имя файла, указанное в команде CREATE FUNCTION или LOAD, не содержит компонента каталога (т.е. имя не содержит слэш), система будет искать этот путь для требуемого файла.

Значение для dynamic_library_path должно быть списком абсолютных путей к каталогам, разделенных двоеточиями (или точками с запятой в Windows). Если элемент списка начинается со специальной строки $libdir, вместо нее подставляется встроенный каталог библиотеки пакетов PostgreSQL; это то место, где установлены модули стандартной поставки PostgreSQL. (Используйте pg_config --pkglibdir чтобы узнать название этого каталога.) Например:

dynamic_library_path = '/usr/local/lib/postgresql:/home/my_project/lib:$libdir'

или в среде Windows:

dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir'

Значение по умолчанию для этого параметра равно '$libdir'. Если значение установлено в пустую строку, автоматический поиск пути отключается.

Этот параметр может быть изменен во время выполнения суперпользователями и пользователями с соответствующим привилегией SET, но настройка, выполненная таким образом, будет сохраняться только до конца соединения клиента, поэтому этот метод следует зарезервировать для целей разработки. Рекомендуемый способ установки этого параметра - в файле конфигурации postgresql.conf.

gin_fuzzy_search_limit (integer)

Мягкое ограничение сверху размера набора, возвращаемого сканированием индекса GIN. Дополнительную информацию см. в разделе Советы и хитрости GIN.