PostgreSQL にはある特定の処理を「関数」として登録し、再利用する機能があります。
この記事ではその「関数」の定義内容を取得する SQL について解説します。
PostgreSQLで関数の定義(ソース)を取得する方法
PostgreSQLで関数の定義(ソース)を取得する SQL は pg_get_functiondef 関数を利用します。
実際の SQL は以下の通りです。
SELECT pg_get_functiondef( [取得する関数のoid] ) AS source
ここで注意が必要なのは PostgreSQL の関数はオーバライドが可能ということです。
つまり、同じ関数名で引数の違う関数を作成できるので、単純に「関数名」だけでは目的の関数のソースにアクセスできません。
ここでは PostgreSQL が管理している OID を利用して関数のソースを取得しています。
関数の OID の取得方法は以下の記事を参考にしてください。
PostgreSQLで関数の一覧を取得する
PostgreSQLでSQLを使って関数の一覧を取得するにはinformation_schema.routines,pg...
まとめ
PostgreSQLで関数の定義(ソース)を取得する SQL は pg_get_functiondef 関数を利用すればできます。
ただし、取得するためにはその関数の OID が必要です。