適度なPostgreSQLのインストールでは、かなりのストアドプロシージャ/関数とタイプが蓄積されました。PostgreSQL SProcsをリファクタリングする
最低レベルの複合型(つまり、3つの型が構築されており、無数の関数がこれらの型のいずれかを参照しています)型の要素の1つはです。間違った型それは同一であり、範囲のみが異なる。
- どのように私は(pg_catalog.pg_typeが 不十分と思われる) タイプに応じて、すべてのタイプを知っていますか?
- の機能はタイプによって異なります( 引数とローカルスコープのvars)。
- 複合タイプ (おそらくsmallintからbigintに変更することができます) 個々の機能ごとに削除する/再構築することなくすべて削除できますか?
- このようなリファクタリングには、どのような種類のオートメーション/ツール/ベストプラクティスがありますか?
私はその4つの質問を1つで知っていますが、atmこれは一種の欲求不満です。 多くのありがとう!
これは素晴らしいですが、タイプ階層そのものを教えてくれるのですよね?これは従属関数に拡張されませんか? – Martin
どの関数がどのユーザタイプ(refclassid = 'pg_proc' :: regclass)に依存するのかを知ることができますが、どの関数が他のどの関数を呼び出すのかは分かりません。あなたがローカル変数としてユーザー型を使用しているかどうかを調べるための関数の実装に入ることはないと思われます。私は、この情報がPostgreSQLの言語に依存しない部分によって管理されていると考えています。 – araqnid
plpsqlコードベースのリファクタリングが遭遇する問題でなければならないので、もっと知ることができるかどうか試してみてください。そこにはいくつかのソリューションやツールのサポートが必要です。 – Martin