web-dev-qa-db-ja.com

PostgreSQLまたはGreenplumでビュー列の派生を取得する方法

ビュー内の列の派生式を取得したいのですが、ストアドプロシージャ内から動的に取得したいので、psql\d +やpgAdminは役に立ちません。

この情報はどこから取得できますか?全文はpg_viewsにありますが、この文字列をスライスして各列式を見つけようとはしません。

1
PhilHibbs

から ドキュメント

PostgreSQLのビューは、ルールシステムを使用して実装されます。

したがって、基本的に、それらは単にSELECTstatemetnsに書き直されます。カタログには、列式を格納するものはありません。内部的には、ビューで\dを実行すると、 pg_catalog.pg_get_viewdef が呼び出されます。システムカタログでは、それ以上のことはできません。おそらくlibpg_queryのようなものを使用して、列式に到達するために そのクエリを解析する する必要があります。

2
Evan Carroll