Como posso consultar a codificação de um cluster postgresql?

6

Quando você cria um novo cluster postgresql, pode especificar uma codificação para o cluster, mas não tenho certeza de como recuperá-lo depois que o cluster tiver sido criado.

Eu vi que com \encoding você pode ver uma codificação, mas não sei se é a codificação do cluster ou a codificação do cliente.

Eu também vi que com \l eu posso ver a codificação usada por cada banco de dados.

E SHOW server_encoding mostra outra codificação.

Qual é a maneira correta de consultar o valor usando durante a inicialização?

    
por Jaime Soriano 19.01.2011 / 13:54

2 respostas

7

Cada banco de dados em um cluster pode ter sua própria codificação, embora isso provavelmente não seja útil para a maioria das pessoas.

Quando você cria o cluster, a codificação especificada é usada para os bancos de dados template1 e postgres, por isso é o padrão para todos os novos. Você pode criar um novo banco de dados a partir de template0 em uma codificação diferente.

\encoding mostra a codificação usada para o protocolo de comunicação do servidor cliente < - > e é equivalente a show client_encoding . server_encoding mostra a codificação usada para o banco de dados ao qual você está conectado atualmente. Ele deve mostrar a codificação usada para criar o cluster se você estiver conectado ao template1. A codificação de cada banco de dados está listada em pg_database , por exemplo: deveria

select datname, pg_encoding_to_char(encoding) from pg_database
    
por 19.01.2011 / 19:14
-1

Você pode usar pg_controldata: pg_controldata <path/to/cluster> |grep LC_ , onde o caminho é onde seu cluster está localizado.

Isso produzirá algo parecido com isto:

LC_COLLATE: en_US.UTF-8

LC_CTYPE: en_US.UTF-8

    
por 19.01.2011 / 14:38