PostgreSQLはすべてのビューを表示するコマンド\ dvを提供しています。同様の方法で、すべてのユーザー定義関数をリストするか、特定のユーザーによって定義された関数だけをリストすることはできますか? \ sfでは、関数の名前を知る必要があり、関数の定義を提供します。 \ dfにはすべての関数がリストされています。私が定義した関数のリストを表示する方法が欲しい。ユーザ定義のPostgreSQL関数をリストする方法はありますか?
1
A
答えて
1
--echo-hidden
オプションを使用してpsql
を使用することをお勧めします。その後、psql
メタコマンドを実行すると、使用されているクエリが表示されます。 \df
については
これは次のとおりです。
SELECT n.nspname as "Schema",
p.proname as "Name",
pg_catalog.pg_get_function_result(p.oid) as "Result data type",
pg_catalog.pg_get_function_arguments(p.oid) as "Argument data types",
CASE
WHEN p.proisagg THEN 'agg'
WHEN p.proiswindow THEN 'window'
WHEN p.prorettype = 'pg_catalog.trigger'::pg_catalog.regtype THEN 'trigger'
ELSE 'normal'
END as "Type"
FROM pg_catalog.pg_proc p
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace
WHERE pg_catalog.pg_function_is_visible(p.oid)
AND n.nspname <> 'pg_catalog'
AND n.nspname <> 'information_schema'
ORDER BY 1, 2, 4;
あなたは、例えばによってそれを調整することができます変更条項にここで、あなたはあなたがまた、実行できるようproowner
列があることがわかりますthe documentation of pg_proc
チェックすると
AND n.nspname = 'public'
\df public.*
に相当する:
SELECT n.nspname as "Schema",
p.proname as "Name",
pg_catalog.pg_get_function_result(p.oid) as "Result data type",
pg_catalog.pg_get_function_arguments(p.oid) as "Argument data types"
FROM pg_catalog.pg_proc p
JOIN pg_catalog.pg_roles u ON u.oid = p.proowner
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace
WHERE pg_catalog.pg_function_is_visible(p.oid)
AND n.nspname = 'public'
AND u.rolname = current_user --<< this limits the functions to those that the current user owns.
0
このコマンドが完全に正確かどうかわかりませんが、特定の役割が所有するすべての機能を表示しているようです:
SELECT routine_name, grantee FROM information_schema.routine_privileges WHERE grantee = '<role>';
いずれにせよ、私には期待される結果が得られます。
関連する問題
- 1. PostgreSQLのユーザ定義関数とプロシージャをリストする方法
- 2. PostgreSQL - 動的パラメータを使用してユーザ定義関数を定義する方法は?
- 3. ユーザ定義の数式関数を作成する方法R
- 4. エンティティフレームワークにSQLユーザ定義関数を追加する方法は?
- 5. pysparkでspark SQLクエリからユーザ定義関数を呼び出す方法はありますか?
- 6. PostgreSQLサーバをリストする方法はありますか?
- 7. if文からユーザ定義関数を呼び出す方法
- 8. emacs lispで関数を定義解除する方法はありますか?
- 9. ユーザ定義関数
- 10. gdbユーザ定義関数:複雑な引数を渡す方法?
- 11. 可能、ホストインベントリのリストを定義する方法はありますか?
- 12. Vimのユーザ定義関数
- 13. MATLABのユーザ定義関数
- 14. Haskell:すべてのユーザ定義関数の表示/取得リスト
- 15. Cプリプロセッサ定義をすべてリストする方法はありますか?
- 16. mysqlはphpmyadminのユーザ定義関数のリストを表示します
- 17. ユーザ定義タイプPostgreSQL in C
- 18. AWS Redshiftでユーザ定義関数の定義を見つける方法
- 19. ラムダ.NETでユーザ定義関数を呼び出す方法
- 20. ユーザ定義パッケージのPythonからipyparallel関数をインポートする方法
- 21. KeyError:ユーザ定義関数
- 22. RcppArmadilloユーザ定義関数を渡す
- 23. オプションのパラメータのみを持つ関数に複数のオーバーロードを定義する方法はありますか?
- 24. あるユーザ定義関数のローカル変数を別のユーザ定義関数にどのように使用しますか?
- 25. Sparkビルドカスタム列関数、ユーザ定義関数
- 26. 関数であるenum値を定義する方法は?
- 27. MATLABのユーザー定義関数で現在の軸を設定する方法はありますか?
- 28. JPQLでユーザ定義関数を書いたり呼んだりしますか?
- 29. 関数の戻り値をPostgreSQLの変数に設定する方法は?
- 30. 関数内で定義された変数から情報を取得する方法はありますか?