38.4. 式

PL/pgSQL文で使用される式は全て、サーバの主SQLエクゼキュータを使用して処理されます。 例えば、以下のPL/pgSQL

IF expression THEN ...

が記述された時、PL/pgSQLは上式を評価して、次の問い合わせ

SELECT expression

を主 SQL エンジンに供給します。 項38.10.1において詳細を記述したように、SELECTコマンドの形成におけるPL/pgSQL変数名は、その都度パラメータによって置換されます。 これにより、SELECTの問い合わせ計画は一度だけ準備することができ、その後の評価で異なった変数値を代入して再利用されます。 すなわち、式の最初の使用においては、実質的にPREPAREコマンドと同等です。 例えば、2つの整数変数xyを宣言して、以下の条件式を記述し

IF x < y THEN ...

以下のプリペアドステートメントを記述すると

PREPARE statement_name(integer, integer) AS SELECT $1 < $2;

IF文が成立してこのプリペアドステートメントを実行する時、PL/pgSQLの最新の変数値がパラメータ値として供給されます。 項38.10.2に記述したように、こうして準備した問い合わせ計画は、データベースの接続時間を節約します。 通常この詳細は、PL/pgSQL利用者にとって重要ではありませんが、この知識は問題点の解析に有用です。

アダルトレンタルサーバー