それは誤解です。 Postgresは「フォーマットを変更」しません。元のSQL文字列はまったく保存されません。 。
クエリは解析および書き換えられ、クエリの種類に応じてアクションが実行されます。 たとえば 、ビューを作成するとき 、結果はシステムカタログに保存されます。ほとんどの場合、 pg_class
およびpg_rewrite
。
また、現在の search_path
および可視性を考慮に入れます(早期拘束)。同じクエリ文字列は、環境が何らかの形で変化した場合、後で何か違うことを意味する可能性があります。
後で表示されるのは、再設計された これらのエントリから構築されたバージョン。いくつかの
機能 例外です(部分的に)。関数本体は文字列として渡され、そのまま保存されます。 、渡されたとおりで、(現在)オブジェクトの表面的な構文テストと検証のみが行われます。 Postgres内のフォーマットを含むクエリをすばやく「保存」する方法が必要な場合は、たとえばPL/pgSQL関数を使用できます。
一般的なアプローチは、@Mikeがすでに提案している のような独立したコードリポジトリを持つことです。 -またはフォーマットをあまり気にしないでください。