PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como evitar que o PostgreSQL altere minhas definições SQL bem formatadas


Isso é um mal-entendido. O Postgres não "altera o formato". A string SQL original simplesmente não é armazenada de forma alguma .

A consulta é analisada e reescrita e, dependendo do tipo de consulta, a ação é executada. Por exemplo , quando você cria visualização , os resultados são armazenados em catálogos do sistema, principalmente pg_class e pg_rewrite .

Você também deve estar ciente de que todos os identificadores são resolvidos no momento da criação de um objeto de banco de dados, tomando o atual search_path e visibilidade em conta (ligação antecipada). A mesma string de consulta pode significar algo diferente posteriormente, se o ambiente mudar de alguma forma.

O que você vê depois é um reprojetado versão criada a partir dessas entradas. Existem algumas funções internas para ajudar com isso, mas depende em grande parte do cliente como formatar o código SQL de engenharia reversa.

Funções são uma exceção (em parte). O corpo da função é passado como string e salvo como está , exatamente como passado, com (atualmente) apenas testes superficiais de sintaxe e validação de objetos. Se você quiser uma maneira rápida de "salvar" uma consulta incluindo seu formato dentro do Postgres, você pode usar uma função PL/pgSQL, por exemplo.

A abordagem geral é ter um repositório de código independente como @Mike já sugerido - ou não se importar muito com o formato.