array_nulls (boolean)
#
Este parâmetro controla se o analisador de entrada de matriz
reconhece NULL sem aspas como especificando
um elemento de matriz nulo.
Por padrão, está on, permitindo que sejam
inseridos valores de matriz contendo valores nulos.
Entretanto, as versões do PostgreSQL
anteriores à 8.2 não oferecia suporte a valores nulos em matrizes
e, portanto, tratavam NULL como especificando
um elemento de matriz normal com o valor de cadeia de caracteres
“NULL”.
Para compatibilidade retroativa com aplicações que exigem o
comportamento antigo, esta variável pode ser tornada
off.
Note-se ser possível criar valores de matriz contendo valores
nulos mesmo quando esta variável está off.
backslash_quote (enum)
#
Este parâmetro controla se o apóstrofo pode ser representado por
\' em um literal cadeia de caracteres.
A maneira preferida, padrão SQL, de
representar apóstrofos é duplicando-os (''),
mas o PostgreSQL historicamente
também sempre aceitou \'.
Entretanto, o uso de \' cria riscos de
segurança, porque, em algumas codificações de conjuntos de
caracteres do cliente, existem caracteres multibyte nos quais
o último byte é numericamente equivalente a ASCII
\.
Se o código do lado cliente não colocar escapes de forma
correta, será possível um ataque de injeção de
SQL.
Este risco pode ser evitado fazendo com que o servidor rejeite
consultas onde os apóstrofos parecem receber escape de contrabarra.
Os valores permitidos de backslash_quote são
on (permite \' sempre),
off (rejeita sempre), e
safe_encoding (permite somente se a
codificação do cliente não permitir o caractere
ASCII \ em um caractere
multibyte).
O padrão é safe_encoding.
Note que em um literal cadeia de caracteres em conformidade com
o padrão SQL, \ significa
apenas \ de qualquer maneira.
Este parâmetro afeta apenas o tratamento de literais fora do
padrão, incluindo sintaxe de cadeia de caracteres com escape
(E'...').
escape_string_warning (boolean)
#
Quando ativo, será emitido um aviso se aparecer uma
contrabarra (\) em um literal cadeia de
caracteres comum (sintaxe '...'), e
standard_conforming_strings estiver
off.
O padrão é on.
As aplicações que desejam usar contrabarra como escape devem ser
modificadas para usar a sintaxe de cadeia de caracteres com escape
(E'...'), porque o comportamento padrão de
cadeia de caracteres comuns agora é tratar a contrabarra como
um caractere comum, em conformidade com o padrão
SQL.
Esta variável pode ser ativada para ajudar a localizar o código
que precisa ser alterado.
lo_compat_privileges (boolean)
#
Nas versões do PostgreSQL anteriores
à 9.0, os objetos grandes não tinham privilégios de acesso,
e podiam, portanto, serem sempre lidos e escritos por todos os
usuários.
Definir esta variável como on desativa as
novas verificações de privilégios, para manter a compatibilidade
com as versões anteriores.
O padrão é off.
Apenas superusuários e usuários com o privilégio
SET apropriado podem alterar esta
configuração.
Definir esta variável não desativa todas as verificações de segurança relacionadas a objetos grandes — apenas aquelas para as quais o comportamento padrão mudou no PostgreSQL 9.0.
quote_all_identifiers (boolean)
#
Quando o banco de dados gera SQL, força
a colocação de todos os identificadores entre aspas, mesmo que
não sejam palavras-chave (no momento).
Isto afeta a saída do comando EXPLAIN,
bem como os resultados de funções como
pg_get_viewdef.
Veja também a opção --quote-all-identifiers de
pg_dump e pg_dumpall.
standard_conforming_strings (boolean)
#
Este parâmetro controla se literais cadeia de caracteres comuns
('...') tratam as contrabarras literalmente,
conforme especificado no padrão SQL.
A partir do PostgreSQL 9.1, o padrão
se tornou on (as versões anteriores tinham
como padrão off).
As aplicações podem verificar este parâmetro para determinar
como os literais cadeia de caracteres são processados.
A presença desse parâmetro também pode ser tomada como
indicação de que a sintaxe da cadeia de caracteres com escape
(E'...') tem suporte.
Deverá ser usada a sintaxe de cadeia de caracteres de escape
(Constantes do tipo cadeia de caracteres com escapes no estilo-C), se a aplicação
desejar que a contrabarra seja tratada como caractere de escape.
synchronize_seqscans (boolean)
#
Este parâmetro permite que as varreduras sequenciais de tabelas
grandes sejam sincronizadas entre si, de modo que varreduras
simultâneas leiam o mesmo bloco quase ao mesmo tempo, e,
portanto, compartilhem a carga de trabalho de E/S.
Quando está ativo, uma varredura pode começar no meio da tabela
e então “contornar” o final para cobrir todas as
linhas, de modo a sincronizar com a atividade de varreduras
já em andamento.
Isto pode resultar em alterações imprevisíveis na ordem das
linhas retornadas por consultas que não possuem a cláusula
ORDER BY.
Definir este parâmetro como off garante
o comportamento anterior à versão 8.3, na qual a varredura
sequencial sempre começava no início da tabela.
O padrão é on.
transform_null_equals (boolean)
#
Quando este parâmetro está ativo, expressões da forma
(ou expr = NULLNULL = )
são tratadas como
expr,
ou seja, retornam verdade se expr IS NULLexpr
for avaliado como valor nulo, e falso caso contrário.
O comportamento correto em conformidade com o padrão
SQL para
é sempre retornar nulo (desconhecido).
Portanto, o padrão é expr = NULLoff.
Entretanto, os formulários filtrados no
Microsoft Access geram consultas
que parecem usar
para testar valores nulos, portanto, se for usada esta
interface para acessar o banco de dados, talvez seja bom ativar
esta opção.
Como as expressões da forma
expr = NULL
sempre retornam o valor nulo (usando a interpretação do padrão
SQL), elas não são muito úteis, e não
aparecem frequentemente em aplicações normais, então,
na prática, esta opção causa poucos danos.
Mas os novos usuários ficam frequentemente confusos sobre a
semântica de expressões que envolvem valores nulos, portanto
esta opção está desativada por padrão.
expr = NULL
Note-se que esta opção afeta apenas a forma exata
= NULL, e não outros operadores de comparação
ou outras expressões que sejam computacionalmente equivalentes
a alguma expressão envolvendo o operador igual
(como IN).
Portanto, esta opção não é uma correção geral para programação
ruim.
Veja Funções e operadores de comparação para obter informações relacionadas.
allow_alter_system (boolean)
#
Quando allow_alter_system está definido como
off, será retornado um erro se for executado
o comando ALTER SYSTEM.
Este parâmetro só pode ser definido no arquivo
postgresql.conf ou na linha de comando do servidor.
O padrão é on.
Note-se que esta configuração não deve ser considerada uma
funcionalidade de segurança.
Ela apenas desativa o comando ALTER SYSTEM.
Ela não impede que um superusuário altere a configuração usando
outros comandos SQL.
Um superusuário tem muitas maneiras de executar comandos d
interpretador de comandos no nível do sistema operacional e,
portanto, pode modificar postgresql.auto.conf
independentemente do valor dessa configuração.
Desativar esta configuração destina-se a ambientes onde a
configuração do PostgreSQL é
gerenciada por alguma ferramenta externa.
Nesses ambientes, um superusuário bem-intencionado pode
usar por engano o comando
ALTER SYSTEM para alterar a configuração
em vez de usar a ferramenta externa.
Isto pode resultar em comportamentos indesejados, como a
ferramenta externa sobrescrever a alteração posteriormente
ao atualizar a configuração.
Definir este parâmetro como off pode ajudar
a evitar estes erros.
Este parâmetro controla apenas o uso do comando
ALTER SYSTEM.
As configurações armazenadas em
postgresql.auto.conf entram em vigor mesmo
se allow_alter_system estiver definido como
off.