my_function
PL/PGSQL 関数 ( ) の実行を、その引数 ( my_table.x
) が定義済みの間隔 ([100,1000] など) に属している場合にのみ許可したいと考えています。
次のクエリの例を見てみましょう。
(q) SELECT * FROM my_table WHERE my_function(mytable.x);
mytable.x
間隔 [100,1000] に属しているかどうかを確認するために、このクエリが自動的に書き換えられることを望みます。
(q') SELECT * FROM my_table WHERE (my_table.x BETWEEN 100 AND 1000) AND my_function(my_table.x);
このコマンドEXPLAIN ANALYSE
は、2 番目のクエリが最初のクエリよりも実際に高速であることを示しています。
クエリ書き換えのプロセスを自動化するためにクエリ実行プランを変更するにはどうすればよいですか (q から q')。に関連付けられた間隔 [100,1000] に関するメタデータをどこに適切に保存できmy_function
ますか?
よろしくお願いします。
トーマス・ジロー
私が必要とする助けは、ファジーロジックの PostgreSQL への統合に関するプロジェクトに役立ちます: [https://github.com/postgresqlf/PostgreSQL_f/][PostgreSQLf]