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.