Това е недоразумение. Postgres не "променя формата". Оригиналният SQL низ просто не се съхранява въобще .
Заявката се анализира и пренаписва и в зависимост от вида на заявката се предприемат действия. Например , когато създавате изглед , резултатите се съхраняват в системни каталози, най-вече pg_class
и pg_rewrite
.
Също така трябва да сте наясно, че всички идентификатори се разрешават по време на създаване на обект на база данни, като се взема текущият search_path
и предвид видимостта (ранно обвързване). Същият низ на заявка може да означава нещо различно по-късно, ако средата се промени по някакъв начин.
Това, което виждате по-късно, е преработено версия, създадена от тези записи. Има някои вградени функции да помогне с това, но до голяма степен зависи от клиента как да форматира SQL код с обратно проектиране.
Функции са изключение (частично). Тялото на функцията се предава като низ и се запазва както е , точно както е преминато, с (в момента) само повърхностно тестване на синтаксиса и валидиране на обекти. Ако искате бърз начин да "запазите" заявка, включително нейния формат в Postgres, можете да използвате функция PL/pgSQL, например.
Общият подход е да имате независимо хранилище на кодове като @Mike вече предложи - или да не се интересувате твърде много от формата.