client_min_messages (enum)
#
Controla quais níveis de mensagem são enviados ao cliente.
Os valores válidos são DEBUG5,
DEBUG4, DEBUG3,
DEBUG2, DEBUG1,
LOG, NOTICE,
WARNING e ERROR.
Cada nível inclui todos os níveis que o seguem.
Quanto mais alto for o nível, menos mensagens são enviadas.
O padrão é NOTICE.
Note-se que LOG tem uma classificação
diferente aqui do que em log_min_messages.
As mensagens no nível INFO são sempre
enviadas ao cliente.
search_path (string)
#Esta variável especifica a ordem pela qual os esquemas são procurados quando um objeto (tabela, tipo de dados, função, etc.) é referenciado por um nome simples sem nenhum esquema especificado. Quando existem objetos com nomes idênticos em esquemas diferentes, é utilizado aquele encontrado primeiro no caminho de procura. Um objeto que não está em nenhum dos esquemas no caminho de procura só pode ser referenciado especificando o esquema que o contém com o nome qualificado (com ponto).
O valor para search_path deve ser uma lista
de nomes de esquemas separados por vírgula.
Qualquer nome que não seja um esquema existente, ou seja, um
esquema para o qual o usuário não tenha a permissão
USAGE, será ignorado silenciosamente.
Se um dos itens da lista for o nome especial
$user, então o esquema com o nome
retornado por CURRENT_USER será
substituído, se este esquema existir, e o usuário tiver a
permissão USAGE para este esquema.
(Caso contrário, $user será ignorado.)
O esquema do catálogo do sistema, pg_catalog,
é sempre procurado, seja mencionado no caminho ou não.
Se for mencionado no caminho, será procurado na ordem especificada.
Se pg_catalog não estiver no caminho, então
será procurado antes de procurar em
qualquer um dos itens do caminho.
Da mesma forma, o esquema de tabela temporária da sessão corrente,
pg_temp_,
é sempre procurado se existir.
Pode ser listado explicitamente no caminho usando o alias
nnnpg_temp.
Se não estiver listado no caminho, então será procurado primeiro
(mesmo antes de pg_catalog).
Entretanto, o esquema temporário é procurado apenas para relações
(tabela, visão, sequência, etc.), e nomes de tipos de dados.
Nunca é procurado para nomes de funções ou operadores.
Quando são criados objetos sem especificar um esquema de
destino específico, estes são colocados no primeiro esquema
válido incluído em search_path.
Será relatado um erro se o caminho de procura estiver vazio.
O padrão para este parâmetro é
"$user", public.
Esta configuração oferece suporte ao uso compartilhado do
banco de dados (onde nenhum usuário possui esquemas privados,
e todos compartilham o uso de public),
esquemas privados por usuário, e combinações desses.
Podem ser obtidos outros efeitos alterando a configuração do
caminho de procura padrão, globalmente ou por usuário.
Para obter mais informações sobre o tratamento de esquema, veja Esquemas. Em particular, a configuração padrão é adequada apenas quando o banco de dados tem um único usuário, ou alguns usuários que confiam uns nos outros.
O valor corrente do caminho de procura pode ser
examinado através da função SQL
current_schemas
(veja Funções e operadores de informação do sistema).
Não é o mesmo que examinar o valor de
search_path, já que a função
current_schemas mostra como os itens que
aparecem em search_path foram resolvidos.
row_security (boolean)
#
Esta variável controla se deve ser gerado um erro, em vez de
aplicar a política de segurança de linha.
Quando definido como on, as políticas são
aplicadas normalmente.
Quando definido como off as consultas falham,
quando de outra forma aplicaria pelo menos uma política.
O padrão é on.
Deve-se mudar para off onde a visibilidade
limitada da linha pode causar resultados incorretos;
por exemplo, o utilitário pg_dump
faz esta alteração por padrão.
Esta variável não tem efeito em funções de banco de dados
(roles) que ignoram a política
de segurança de cada linha, ou seja, superusuários e funções
de banco de dados com o atributo BYPASSRLS.
Para obter mais informações sobre políticas de segurança de linha, veja CREATE POLICY.
default_table_access_method (string)
#
Este parâmetro especifica o método de acesso padrão à tabela,
a ser usado ao criar tabelas ou visões materializadas, se o
comando CREATE não especificar explicitamente
o método de acesso, ou quando é utilizado
SELECT ... INTO, que não permite especificar
o método de acesso à tabela.
O padrão é heap.
default_tablespace (string)
#
Esta variável especifica o espaço de tabelas padrão, no qual
criar objetos (tabelas e índices), quando o comando
CREATE não especifica explicitamente o
espaço de tabelas.
O valor é o nome de um espaço de tabelas, ou uma cadeia de
caracteres vazia para especificar o uso do espaço de tabelas
padrão do banco de dados corrente.
Se o valor não corresponder a nenhum nome de espaço de tabelas
existente, o PostgreSQL irá usar
automaticamente o espaço de tabelas padrão do banco de dados
corrente.
Se for especificado um espaço de tabelas não-padrão, o usuário
deverá ter o privilégio CREATE para este
espaço de tabelas, ou as tentativas de criação vão falhar.
Esta variável não é usada para tabelas temporárias; para estas, é consultado temp_tablespaces.
Esta variável também não é usada ao criar bancos de dados. Por padrão, o novo banco de dados herda sua configuração de espaço de tabelas do banco de dados modelo do qual foi copiado.
Se este parâmetro estiver definido com um valor diferente da cadeia
de caracteres vazia quando for criada uma tabela particionada,
o espaço de tabelas da tabela particionada será definido com
este valor, que será usado como espaço de tabelas padrão para
as partições criadas no futuro, mesmo que
default_tablespace tenha mudado desde então.
Veja Espaços de tabelas para obter mais informações sobre espaços de tabela.
default_toast_compression (enum)
#
Esta variável define o método de compressão
TOAST padrão para os valores das
colunas comprimíveis.
(Pode ser alterado por coluna separadamente, definindo a
opção de coluna COMPRESSION nos comandos
CREATE TABLE ou ALTER TABLE.)
Os métodos de compressão com suporte são pglz,
e (se o PostgreSQL foi construído com
a opção --with-lz4) lz4.
O padrão é pglz.
temp_tablespaces (string)
#
Esta variável especifica os espaços de tabelas nos quais serão
criados objetos temporários (tabelas temporárias e índices em
tabelas temporárias), quando o comando CREATE
não especifica explicitamente o espaço de tabelas.
Os arquivos temporários para fins como, classificação de grandes
conjuntos de dados, também são criados nesses espaços de tabelas.
O valor é uma lista de nomes de espaços de tabelas. Quando há mais de um nome na lista, o PostgreSQL escolhe um membro aleatório da lista cada vez que um objeto temporário deve ser criado; exceto que, em uma transação, os objetos temporários criados são sucessivamente colocados em espaços de tabelas sucessivos da lista. Se o elemento selecionado da lista for uma cadeia de caracteres vazia, o PostgreSQL irá usar automaticamente o espaço de tabelas padrão do banco de dados corrente.
Quando temp_tablespaces é definido
interativamente, especificar um espaço de tabelas inexistente
é um erro, assim como especificar um espaço de tabelas para o
qual o usuário não possui o privilégio CREATE.
Entretanto, ao usar um valor definido anteriormente, os espaços
de tabelas inexistentes são ignorados, assim como os espaços de
tabelas para os quais o usuário não possui o privilégio
CREATE.
Em particular, esta regra se aplica ao usar um valor definido
no arquivo postgresql.conf.
O padrão é uma cadeia de caracteres vazia, que resulta na criação de todos os objetos temporários no espaço de tabelas padrão do banco de dados corrente.
Veja também default_tablespace.
check_function_bodies (boolean)
#
Este parâmetro normalmente está ativo.
Quando definido como off, desativa a validação
da cadeia de caracteres do corpo da rotina durante os comandos
CREATE FUNCTION e
CREATE PROCEDURE.
Desativar a validação evita efeitos colaterais do processo de
validação, em particular evita falsos positivos devido a
problemas como referências futuras.
Deve-se definir este parâmetro como off
antes de carregar funções em nome de outros usuários;
o utilitário pg_dump faz isto
automaticamente.
default_transaction_isolation (enum)
#Cada transação SQL possui um nível de isolamento, que pode ser tanto “READ UNCOMMITTED”, “READ COMMITTED”, “REPEATABLE READ” ou “SERIALIZABLE”. Este parâmetro controla o nível de isolamento padrão de cada nova transação. O padrão é “READ COMMITTED”.
Veja Controle de concorrência e SET TRANSACTION para obter mais informações.
default_transaction_read_only (boolean)
#
Uma transação SQL de leitura-apenas não pode
alterar tabelas não temporárias.
Este parâmetro controla o status de leitura-apenas padrão
de cada nova transação.
O padrão é off (leitura/escrita).
Veja SET TRANSACTION para obter mais informações.
default_transaction_deferrable (boolean)
#
Ao executar no nível de isolamento SERIALIZABLE,
uma transação SQL de leitura-apenas postergável
pode ser atrasada antes de poder prosseguir.
Entretanto, uma vez iniciada a execução, não irá incidir
nenhuma sobrecarga necessária para garantir a serialização;
portanto, o código de serialização não terá motivos para
forçá-la a interromper devido a atualizações simultâneas,
tornando esta opção adequada para transações de leitura-apenas
de longa duração.
Este parâmetro controla o status de postergável padrão de cada
nova transação.
No momento, não tem efeito sobre transações de leitura e escrita,
ou naquelas que operam em níveis de isolamento inferiores a
SERIALIZABLE.
O padrão é off.
Veja SET TRANSACTION para obter mais informações.
transaction_isolation (enum)
#Este parâmetro reflete o nível de isolamento da transação corrente. É definido com o valor corrente de default_transaction_isolation no início de cada transação. Qualquer tentativa subsequente de alterá-lo equivale a um comando SET TRANSACTION.
transaction_read_only (boolean)
#Este parâmetro reflete o status de leitura-apenas da transação corrente. No início de cada transação, é definido com o valor corrente de default_transaction_read_only. Qualquer tentativa subsequente de alterá-lo equivale a um comando SET TRANSACTION.
transaction_deferrable (boolean)
#Este parâmetro reflete o status de postergável da transação corrente. No início de cada transação, é definido com o valor corrente de default_transaction_deferrable. Qualquer tentativa subsequente de alterá-lo equivale ao comando SET TRANSACTION.
session_replication_role (enum)
#
Controla a execução de gatilhos e regras relacionados à
replicação para a sessão corrente.
Definir esta variável requer privilégios de superusuário e
resulta no descarte de quaisquer planos de consulta armazenados
em cache anteriormente.
Os valores possíveis são origin (o padrão),
replica e local.
O uso pretendido dessa configuração é que os sistemas de
replicação lógica a configurem como replica
quando estiverem aplicando alterações replicadas.
O efeito dessa configuração será que os gatilhos e regras
(que não foram alterados em sua configuração padrão)
não serão disparados na réplica.
Veja as cláusulas ENABLE TRIGGER e
ENABLE RULE do comando
ALTER TABLE para obter mais informações.
O PostgreSQL trata as configurações
origin e local da mesma
forma internamente.
Os sistemas de replicação de terceiros podem usar estes dois valores
para fins internos como, por exemplo, usando local
para designar uma sessão cujas alterações não devem ser replicadas.
Como as chaves estrangeiras são implementadas como gatilhos,
definir este parâmetro como replica também
desativa todas as verificações de chaves estrangeiras,
o que pode deixar os dados em um estado inconsistente se usado
indevidamente.
statement_timeout (integer)
#
Interrompe qualquer instrução que demore mais do que o tempo
especificado.
Se log_min_error_statement estiver definido
como ERROR ou inferior, a instrução que
esgotou o tempo também será registrada.
Se o valor for especificado sem unidades, será considerado
milissegundos.
O valor zero (o padrão) desativa o tempo limite.
O tempo limite é medido a partir do momento em que o comando chega ao servidor até ser concluído pelo servidor. Se estiverem presentes várias instruções SQL em uma única mensagem de consulta simples, o tempo limite será aplicado a cada instrução separadamente. (As versões do PostgreSQL anteriores a 13 tratavam geralmente o tempo limite como aplicado a toda cadeia de caracteres da consulta.) No protocolo de consulta estendido, o tempo limite começa a ser contado quando qualquer mensagem relacionada à consulta (Analisar, Vincular, Executar, Descrever) chega, sendo cancelado pela conclusão de uma mensagem Executar ou Sincronizar.
Definir statement_timeout no arquivo
postgresql.conf não é recomendado,
porque afeta todas as sessões.
transaction_timeout (integer)
#
Termina qualquer sessão que ultrapasse em uma transação o
período de tempo especificado.
O limite aplica-se tanto a transações explícitas (iniciadas com
BEGIN) quanto a uma transação iniciada
implicitamente que corresponda a um único comando.
Se este valor for especificado sem unidades, será considerado
sendo milissegundos. Um valor zero (o padrão) desativa o tempo
limite.
Se transaction_timeout for menor ou igual a
idle_in_transaction_session_timeout ou
statement_timeout, então será ignorado
o tempo limite maior.
Definir transaction_timeout no arquivo
postgresql.conf não é recomendado,
porque isto afetaria todas as sessões.
As transações preparadas não estão sujeitas a este tempo limite.
lock_timeout (integer)
#
Interrompe qualquer instrução que espere mais do que o tempo
especificado ao tentar adquirir um bloqueio em uma tabela,
índice, linha, ou outro objeto de banco de dados.
O limite de tempo é aplicado separadamente a cada tentativa
de aquisição de bloqueio.
O limite é aplicado tanto a solicitações de bloqueio explícitas
(tais como LOCK TABLE, ou SELECT
FOR UPDATE sem NOWAIT.)
quanto para bloqueios adquiridos implicitamente.
Se o valor for especificado sem unidades, será considerado
milissegundos.
O valor zero (o padrão) desativa o tempo limite.
Ao contrário de statement_timeout, este
tempo limite só pode ocorrer durante a espera por bloqueios.
Note-se que se statement_timeout for diferente
de zero, é inútil definir lock_timeout
com o mesmo valor ou um valor maior, já que o tempo limite
da instrução sempre seria acionado primeiro.
Se log_min_error_statement estiver definido
como ERROR ou inferior, a instrução que
atingiu o tempo limite será registrada.
Definir lock_timeout no arquivo
postgresql.conf não é recomendado,
porque afeta todas as sessões.
idle_in_transaction_session_timeout (integer)
#Termina qualquer sessão que esteja ociosa (ou seja, aguardando uma consulta do cliente) em uma transação aberta por mais tempo que o especificado. Se o valor for especificado sem unidades, será considerado milissegundos. O valor zero (o padrão) desativa o tempo limite.
Esta opção pode ser usada para garantir que sessões ociosas não mantenham bloqueios por um intervalo de tempo excessivo. Mesmo quando não é mantido nenhum bloqueio significativo, uma transação aberta impede a eliminação de tuplas mortas recentemente, que podem estar visíveis apenas para esta transação; portanto, permanecer ocioso por muito tempo pode contribuir para o inchaço da tabela. Veja Limpeza de rotina para obter mais informações.
idle_session_timeout (integer)
#Termina qualquer sessão que esteja ociosa (ou seja, aguardando uma consulta do cliente), mas não com uma transação aberta, por mais tempo que o especificado. Se o valor for especificado sem unidades, será considerado milissegundos. O valor zero (o padrão) desativa o tempo limite.
Ao contrário do caso de uma transação aberta, uma sessão ociosa
sem transação não impõe grandes custos ao servidor, portanto há
menos necessidade de ativar este tempo limite do que
idle_in_transaction_session_timeout.
Deve-se ter cuidado ao impor este tempo limite em conexões feitas por meio de software de pooling de conexões, ou outro middleware, porque esta camada pode não reagir bem ao fechamento inesperado da conexão. Pode ser útil ativar este tempo limite apenas para sessões interativas, talvez o aplicando apenas a determinados usuários.
bytea_output (enum)
#
Define o formato de saída para valores do tipo de dados
bytea.
Os valores válidos são hex (o padrão),
e escape (o formato tradicional do
PostgreSQL).
Veja Tipo de dados binário para obter mais
informações.
O tipo de dados bytea sempre aceita os dois
formatos na entrada, independentemente dessa configuração.
xmlbinary (enum)
#
Define como os valores binários são codificados em
XML.
Se aplica, por exemplo, quando valores do tipo de dados
bytea são convertidos para XML
pelas funções xmlelement e
xmlforest.
Os valores possíveis são base64 e
hex, que são ambos definidos no
XML Schema.
O padrão é base64.
Veja Funções para XML para obter mais informações
sobre funções relacionadas a XML.
A escolha real aqui é principalmente uma questão de gosto,
limitada apenas por possíveis restrições nas aplicações cliente.
Os dois métodos dão suporte a todos os valores possíveis, embora
a codificação hexadecimal seja um pouco maior que a codificação
base64.
xmloption (enum)
#
Define se DOCUMENT ou CONTENT
está implícito ao converter entre XML
e valores de cadeia de caracteres.
Veja Tipo de dados XML para obter mais informações.
Os valores válidos são DOCUMENT e
CONTENT.
O padrão é CONTENT.
Segundo o padrão SQL, o comando para definir esta opção é
SET XML OPTION { DOCUMENT | CONTENT };
Esta sintaxe também está disponível no PostgreSQL.
gin_pending_list_limit (integer)
#
Define o tamanho máximo da lista pendente de um índice
GIN, usado quando
fastupdate está ativo.
Se a lista crescer além desse tamanho máximo, ela será limpa
movendo em massa as entradas da lista para a estrutura de dados
GIN principal do índice.
Se o valor for especificado sem unidades, será considerado
quilobytes.
O padrão é quatro megabytes (4MB).
Esta configuração pode ser sobreposta em índices
GIN separadamente, alterando os parâmetros
de armazenamento do índice.
Veja Técnica de atualização rápida do GIN e
Dicas e truques sobre o GIN para obter mais informações.
createrole_self_grant (string)
#
Se um usuário com o privilégio CREATEROLE,
mas sem o privilégio SUPERUSER, criar
uma função de banco de dados (role),
e se este valor não estiver vazio, a função de banco de dados
recém-criada será concedida ao usuário que a criou com as opções
especificadas.
O valor deve ser set, inherit,
ou uma lista desses valores separada por vírgulas.
O padrão é uma cadeia de caracteres vazia, o que desativa
a funcionalidade.
A finalidade desta opção é permitir que um usuário com o
privilégio CREATEROLE — que não seja
um superusuário — herde automaticamente, ou adquira
automaticamente a capacidade de executar SET ROLE
para, quaisquer usuários criados.
Como um usuário com o privilégio CREATEROLE
sempre recebe implicitamente ADMIN OPTION nas
funções de banco de dados criadas, este usuário poderia sempre
executar uma instrução GRANT que teria o
mesmo efeito que esta configuração.
Entretanto, pode ser conveniente, por motivos de facilidade,
que a concessão ocorra automaticamente.
Um superusuário herda automaticamente os privilégios de todas
as funções de banco de dados e pode sempre definir a
função de banco de dados com o comando SET ROLE,
e esta configuração pode ser usada para produzir um comportamento
semelhante para usuários com o privilégio
CREATEROLE em relação aos usuários
criados por eles.
event_triggers (boolean)
#
Permite desativar temporariamente a execução de gatilhos de
evento para diagnosticar e corrigir gatilhos de evento defeituosos.
Todos os gatilhos de evento serão desativados ao definir esta
opção como false.
Definir esta opção como true permite que todos
os gatilhos de evento sejam disparados; este é o padrão.
Apenas superusuários e usuários com o privilégio
SET apropriado podem alterar esta
configuração.
restrict_nonsystem_relation_kind (string)
#
Define os tipos de relação para as quais é proibido acessar
relações que não sejam do sistema.
O valor assume a forma de uma lista de tipos de relação
separados por vírgulas.
No momento, os tipos de relação com suporte são:
view e foreign-table.
DateStyle (string)
#
Define o formato de exibição para valores de data e hora,
bem como as regras para interpretar valores de entrada de data
ambíguos.
Por razões históricas, esta variável contém dois componentes
independentes:
a especificação do formato de saída (ISO,
Postgres, SQL, ou
German),
e a especificação de entrada/saída para ordenação de ano/mês/dia
(DMY, MDY, ou
YMD).
Podem ser definidos separadamente ou em conjunto.
As palavras-chave Euro e
European são sinônimos de DMY;
as palavras-chave US, NonEuro,
e NonEuropean, são sinônimos de
MDY.
Veja Tipos de dados de data e hora para obter mais
informações.
O padrão nativo é ISO, MDY, mas o
initdb irá inicializar o arquivo
de configuração com a configuração correspondente ao
comportamento da localidade lc_time escolhida.
IntervalStyle (enum)
#
Define o formato de exibição para valores de intervalo.
O valor sql_standard irá produzir uma saída
correspondente aos literais de intervalo do padrão
SQL.
O valor postgres (o padrão) irá
produzir uma saída correspondente às versões do
PostgreSQL anteriores à 8.4, quando
o parâmetro DateStyle for definido como
ISO.
O valor postgres_verbose irá produzir uma
saída correspondente às versões do
PostgreSQL anteriores à 8.4, quando
o parâmetro DateStyle for definido como uma
saída diferente de ISO.
O valor iso_8601 irá produzir uma saída
correspondente ao formato do intervalo de tempo
“com designadores de zona horária”, definidos na
seção 4.4.3.2 da norma
ISO 8601.
O parâmetro IntervalStyle também afeta a
interpretação de entradas de intervalo ambíguas.
Veja Entrada de intervalo para obter mais
informações.
TimeZone (string)
#
Define a zona horária para exibição e interpretação de carimbos
de data e hora.
O padrão interno é GMT, mas é normalmente
sobreposto no arquivo postgresql.conf;
O utilitário initdb irá instalar uma
configuração correspondente ao ambiente do sistema operacional.
Veja Zonas horárias para obter mais informações.
timezone_abbreviations (string)
#
Define a coleção de abreviaturas de zona horária adicionais
aceitas pelo servidor para a entrada de dados de data e hora
(além de quaisquer abreviaturas definidas pela configuração
corrente de TimeZone).
O padrão é 'Default',
que é uma coleção que funciona na maior parte do mundo;
há também 'Australia', 'India'
e outras coleções que podem ser definidas para uma instalação
específica.
Veja Arquivos de configuração de data e hora para obter mais
informações.
extra_float_digits (integer)
#
Este parâmetro ajusta o número de dígitos usados para saída
textual de valores de ponto flutuante, incluindo os tipos de
dados float4, float8, e tipos de dados
geométricos.
Se o valor for 1 (o padrão), ou superior, os valores de ponto
flutuante serão gerados no formato mais curto e preciso;
veja Tipos de dados de ponto flutuante.
O número real de dígitos gerados depende apenas do valor que
está sendo gerado, e não do valor desse parâmetro.
Podem ser requeridos no máximo 17 dígitos para valores do
tipo de dados float8, e 9 para float4.
Este formato é rápido e preciso, preservando o valor
de ponto flutuante binário original quando lido corretamente.
Para manter compatibilidade histórica, são permitidos valores
até 3.
Se o valor for zero ou negativo, a saída será arredondada para
uma determinada precisão decimal.
A precisão usada é o número padrão de dígitos do tipo de dados
(FLT_DIG ou DBL_DIG,
conforme o caso), reduzido segundo o valor desse parâmetro.
(Por exemplo, especificar -1 faz com que os valores
float4 sejam arredondados para 5 dígitos
significativos, e os valores float8 sejam
arredondados para 14 dígitos.)
Este formato é mais lento e não preserva todos os bits do valor
de ponto flutuante binário, mas pode ser mais legível por humanos.
O significado desse parâmetro e seu valor padrão foram alterados no PostgreSQL 12; veja Tipos de dados de ponto flutuante para obter mais informações.
client_encoding (string)
#Define a codificação (conjunto de caracteres) do lado cliente. O padrão é usar a codificação do banco de dados. Os conjuntos de caracteres com suporte pelo servidor PostgreSQL são descritos em Conjuntos de caracteres com suporte.
lc_messages (string)
#Define o idioma em que as mensagens são mostradas. Os valores aceitáveis dependem do sistema operacional; veja Suporte a localidade para obter mais informações. Se esta variável estiver definida como uma cadeia de caracteres vazia (o padrão), então o valor será herdado do ambiente de execução do servidor de maneira dependente do sistema operacional.
Em alguns sistemas operacionais, não existe a categoria localidade. Definir esta variável ainda irá funcionar, mas não terá efeito. Além disso, existe a possibilidade de não existirem mensagens traduzidas para o idioma desejado. Neste caso, continuarão sendo vistas mensagens em inglês.
Apenas superusuários e usuários com o privilégio
SET apropriado podem alterar esta
configuração.
lc_monetary (string)
#
Define a localidade a ser usada para formatar valores monetários,
por exemplo, com a família de funções to_char.
Os valores aceitáveis dependem do sistema operacional;
veja Suporte a localidade para obter mais informações.
Se esta variável for definida como uma cadeia de caracteres vazia
(o padrão), então o valor será herdado do ambiente de
execução do servidor de maneira dependente do sistema operacional.
lc_numeric (string)
#
Define a localidade a ser usada para formatar números, por
exemplo, com a família de funções to_char.
Os valores aceitáveis dependem do sistema operacional;
veja Suporte a localidade para obter mais informações.
Se esta variável for definida como uma cadeia de caracteres vazia
(o padrão), então o valor será herdado do ambiente de
execução do servidor de maneira dependente do sistema operacional.
lc_time (string)
#
Define a localidade a ser usada para formatar datas e horas, por
exemplo, com a família de funções to_char.
Os valores aceitáveis dependem do sistema operacional;
veja Suporte a localidade para obter mais informações.
Se esta variável for definida como uma cadeia de caracteres vazia
(o padrão), então o valor será herdado do ambiente de
execução do servidor de maneira dependente do sistema operacional.
icu_validation_level (enum)
#
Quando são encontrados problemas de validação de localidade
ICU, controla qual
nível de mensagem
é usado para relatar o problema.
Os valores válidos são
DISABLED, DEBUG5,
DEBUG4, DEBUG3,
DEBUG2, DEBUG1,
INFO, NOTICE,
WARNING, ERROR e
LOG.
Se definido como DISABLED, não relata
problemas de validação.
Caso contrário, relata problemas no nível de mensagem especificado.
O padrão é WARNING.
default_text_search_config (string)
#
Seleciona a configuração de procura de texto usada pelas
variantes das funções de procura de texto que não possuem um
argumento explícito especificando a configuração.
Veja Procura de texto completo para obter mais informações.
O padrão integrado é pg_catalog.simple,
mas o utilitário initdb irá
inicializar o arquivo de configuração com uma configuração que
corresponda ao local lc_ctype escolhido,
se puder ser identificada uma configuração correspondente
a esta localidade.
Estão disponíveis várias configurações para pré-carregar
bibliotecas compartilhadas no servidor, a fim de carregar
funcionalidades adicionais ou obter benefícios de desempenho.
Por exemplo, uma configuração de '$libdir/mylib'
causa o pré-carregamento de mylib.so
(ou, em algumas plataformas, mylib.sl)
a partir do diretório de biblioteca padrão da instalação.
As diferenças entre as configurações são o momento em que elas são
aplicadas, e quais privilégios são necessários para alterá-las.
As bibliotecas de linguagem procedural do
PostgreSQL podem ser pré-carregadas
dessa forma, usando tipicamente a sintaxe
'$libdir/plXXX', onde XXX
pode ser pgsql, perl,
tcl ou python.
Somente as bibliotecas compartilhadas especificamente destinadas
ao uso com PostgreSQL podem ser
carregadas dessa forma.
Toda biblioteca com suporte pelo
PostgreSQL possui um
“bloco mágico”, verificado para garantir a
compatibilidade.
Por esta razão, bibliotecas
não-PostgreSQL não podem ser carregadas
dessa forma.
Pode-se usar recursos do sistema operacional, como
LD_PRELOAD, para esta finalidade.
Em geral, deve-se consultar a documentação específica do módulo para conhecer a forma recomendada de carregar este módulo.
local_preload_libraries (string)
#Esta variável especifica uma ou mais bibliotecas compartilhadas a serem pré-carregadas no início da conexão. Contém uma lista de nomes de bibliotecas separados por vírgula, onde cada nome é interpretado como um parâmetro para o comando LOAD. Os espaços em branco entre as entradas são ignorados; deve-se colocar o nome da biblioteca entre aspas, se for necessário incluir espaços em branco ou vírgulas no nome. O valor do parâmetro só tem efeito no início da conexão. As alterações subsequentes não têm efeito. Se não for encontrada a biblioteca especificada, a tentativa de conexão irá falhar.
Esta opção pode ser definida por qualquer usuário.
Por este motivo, as bibliotecas que podem ser carregadas são
restritas àquelas que aparecem no subdiretório
plugins do diretório de biblioteca padrão
da instalação.
(É responsabilidade do administrador do banco de dados garantir
que sejam instaladas apenas bibliotecas “seguras”
neste diretório.)
As entradas em local_preload_libraries podem
especificar este diretório explicitamente, por exemplo,
$libdir/plugins/mylib, ou apenas especificar
o nome da biblioteca — mylib teria
o mesmo efeito que $libdir/plugins/mylib.
O propósito desse recurso é permitir que usuários sem privilégios
carreguem bibliotecas de depuração ou medição de desempenho
em sessões específicas, sem exigir um comando
LOAD explícito.
Para esta finalidade, seria típico definir este parâmetro usando
a variável de ambiente PGOPTIONS no cliente,
ou usando ALTER ROLE SET.
Entretanto, a menos que o módulo seja projetado especificamente para ser usado dessa forma por não-superusuários, esta não é geralmente a configuração correta a ser usada. Veja session_preload_libraries em vez disso.
session_preload_libraries (string)
#
Esta variável especifica uma ou mais bibliotecas compartilhadas
a serem pré-carregadas no início da conexão.
Contém uma lista de nomes de bibliotecas separados por vírgula,
onde cada nome é interpretado como um parâmetro para o comando
LOAD.
Os espaços em branco entre as entradas são ignorados; deve-se
colocar o nome da biblioteca entre aspas, se for necessário
incluir espaços em branco ou vírgulas no nome.
O valor do parâmetro só tem efeito no início da conexão.
As alterações subsequentes não têm efeito.
Se não for encontrada a biblioteca especificada, a tentativa
de conexão irá falhar.
Apenas superusuários e usuários com o privilégio
SET apropriado podem alterar esta
configuração.
O propósito dessa funcionalidade é permitir que sejam carregadas
bibliotecas de depuração ou medição de desempenho em sessões
específicas, sem que seja fornecido um comando
LOAD explícito.
Por exemplo, poderia ser ativado auto_explain
para todas as sessões sob um determinado nome de usuário,
definindo este parâmetro com ALTER ROLE SET.
Além disso, este parâmetro pode ser alterado sem reiniciar
o servidor (mas as alterações só terão efeito quando for iniciada
uma nova sessão), portanto é mais fácil adicionar novos módulos
dessa forma, mesmo que devam ser aplicados a todas as sessões.
Ao contrário de shared_preload_libraries, não há grande vantagem de desempenho em carregar a biblioteca no início da sessão e não quando for usada pela primeira vez. Há alguma vantagem, entretanto, quando é usado pool de conexões.
shared_preload_libraries (string)
#Esta variável especifica uma ou mais bibliotecas compartilhadas a serem pré-carregadas na ativação do servidor. Contém uma lista de nomes de bibliotecas separados por vírgula, onde cada nome é interpretado como um parâmetro para o comando LOAD. Os espaços em branco entre as entradas são ignorados; deve-se colocar o nome da biblioteca entre aspas, se for necessário incluir espaços em branco ou vírgulas no nome. Este parâmetro só pode ser definido na ativação do servidor. Se não for encontrada uma biblioteca especificada, o servidor não será carregado.
Algumas bibliotecas precisam realizar certas operações que só podem ocorrer na ativação do postmaster, como alocar memória compartilhada, reservar bloqueios leves, ou iniciar trabalhos em segundo plano. Estas bibliotecas devem ser carregadas na ativação do servidor através desse parâmetro. Veja a documentação de cada biblioteca para obter detalhes.
Outras bibliotecas também podem ser pré-carregadas. Ao pré-carregar uma biblioteca compartilhada, o tempo de carga da biblioteca é evitado quando a biblioteca é usada pela primeira vez. Entretanto, o tempo para carregar cada novo processo servidor pode aumentar ligeiramente, mesmo que este processo nunca utilize a biblioteca. Portanto, este parâmetro é recomendado apenas para bibliotecas utilizadas na maioria das sessões. Além disso, alterar este parâmetro requer a reativação do servidor, por isto esta não é a configuração correta para usar em tarefas de depuração de curto prazo, por exemplo. Deve-se usar session_preload_libraries para isto.
Nos hospedeiros Windows,
pré-carregar uma biblioteca na inicialização do servidor não irá
reduzir o tempo necessário para iniciar cada novo processo
servidor; cada processo servidor irá recarregar todas as
bibliotecas de pré-carga.
Entretanto, shared_preload_libraries ainda é
útil em hospedeiros Windows
para bibliotecas que precisam executar operações na hora da
ativação do postmaster.
jit_provider (string)
#
Esta variável contém o nome da biblioteca do provedor de
JIT a ser usada
(veja Provedores de JIT conectáveis).
O padrão é llvmjit.
Este parâmetro só pode ser definido na ativação do servidor.
Se definido como uma biblioteca não existente, o JIT não estará disponível, mas nenhum erro será gerado. Isto permite que o suporte a JIT seja instalado em separado do pacote principal do PostgreSQL.
dynamic_library_path (string)
#
Se um módulo carregável dinamicamente precisar ser aberto,
e o nome do arquivo especificado no comando
CREATE FUNCTION ou LOAD
não tiver o componente de diretório (ou seja, o nome não
contém uma barra), o sistema irá procurar neste caminho o
arquivo requerido.
O valor para dynamic_library_path deve ser
uma lista de caminhos absolutos de diretório separados por
dois pontos (ou ponto e vírgula, no
Windows).
Se um elemento da lista começar com a cadeia de caracteres
especial $libdir, será substituído o
diretório compilado de biblioteca de pacotes do
PostgreSQL por
$libdir; é neste diretório que são instalados
os módulos fornecidos pela distribuição padrão do
PostgreSQL.
(Deve-se usar pg_config --pkglibdir para
descobrir o nome desse diretório.) Por exemplo:
dynamic_library_path = '/usr/local/lib/postgresql:/home/my_project/lib:$libdir'
ou, em um ambiente Windows:
dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir'
O padrão para este parâmetro é '$libdir'.
Se o valor for definido como uma cadeia de caracteres vazia,
será desativada a procura automática de caminho.
Este parâmetro pode ser alterado em tempo de execução pelos
superusuários, e pelos usuários com o privilégio
SET apropriado, mas uma configuração feita
dessa forma só irá persistir até o final da conexão do cliente,
portanto este método deve ser reservado para fins de
desenvolvimento.
A forma recomendada para definir este parâmetro é no arquivo de
configuração postgresql.conf.
extension_control_path (string)
#
Caminho para procurar extensões, especificamente arquivos
de controle de extensão
().
O script de extensão restante e os arquivos de controle
secundários são então carregados a partir do mesmo diretório
onde o arquivo de controle primário foi encontrado.
Veja Arquivos da extensão para obter mais
informações.
nome.control
O valor para extension_control_path deve ser
uma lista de caminhos absolutos de diretório separados por
dois-pontos (ou ponto e vírgula no
Windows).
Se a lista começar pela cadeia de caracteres especial
$system, o diretório de extensões do
PostgreSQL compilado internamente
será substituído por $system; onde são
instaladas as extensões fornecidas pela distribuição padrão do
PostgreSQL.
(Deve-se usar pg_config --sharedir para
descobrir o nome deste diretório.)
Por exemplo:
extension_control_path = '/usr/local/share/postgresql:/home/my_project/share:$system'
ou, em um ambiente Windows:
extension_control_path = 'C:\tools\postgresql;H:\my_project\share;$system'
Note-se que é esperado que os elementos dos caminhos especificados
possuam um subdiretório extension, o qual
conterá os arquivos .control e
.sql; o sufixo extension
é anexado automaticamente a cada elemento do caminho.
O padrão para este parâmetro é '$system'.
Se o valor for definido como uma cadeia de caracteres vazia,
também será assumido o padrão '$system'.
Se estiverem presentes extensões com nomes iguais em vários diretórios no caminho configurado, será utilizada apenas a instância encontrada primeiro no caminho.
Este parâmetro pode ser alterado em tempo de execução por
superusuários e usuários com o privilégio SET
apropriado, mas uma configuração feita dessa forma persistirá
apenas até o fim da conexão do cliente; portanto, este método
deve ser reservado para fins de desenvolvimento.
A maneira recomendada de definir este parâmetro é no arquivo de
configuração postgresql.conf.
Note-se que, se este parâmetro for definido para poder carregar extensões de locais não-padrão, provavelmente também será necessário definir dynamic_library_path para um local correspondente como, por exemplo,
extension_control_path = '/usr/local/share/postgresql:$system' dynamic_library_path = '/usr/local/lib/postgresql:$libdir'
gin_fuzzy_search_limit (integer)
#Limite superior flexível do tamanho do conjunto retornado pelas varreduras de índice GIN. Veja Dicas e truques sobre o GIN para obter mais informações.