OSDN Git Service

Bug fix:EXECUTEコマンド中にエラー終了したあとにSELECTを実行すると
authorMitsuru Hasegawa <hasegawa@metrosystems.co.jp>
Thu, 9 Aug 2012 08:15:33 +0000 (17:15 +0900)
committerMitsuru Hasegawa <hasegawa@metrosystems.co.jp>
Thu, 9 Aug 2012 08:15:33 +0000 (17:15 +0900)
commit65fababa06227b6a2e2c6b1518412ed12e39aea4
tree61d6a45acf31acd905cb8b4849b5f3f13017af72
parentac1930b3afba16a04dc61b4dc27daee38c9ba731
Bug fix:EXECUTEコマンド中にエラー終了したあとにSELECTを実行すると
想定外の実行計画になる問題を修正した。

EXECUTEコマンド実行時に、ProcessUtility_hookの初期処理で外部変数に
ステートメント名を保存し、終了処理でNULLに戻すが、ProcessUtility_hook
の実行中にエラー終了した場合は、外部変数にステートメント名が設定
されたままだった。
このため、その後SELECT等の通常のクエリを発行すると、外部変数に
残っているステートメント名を使用して、プランキャッシュからクエリ
文字列を取得し、その文字列に指定されているヒントを使用していた。
expected/prepare-9.1.out
expected/prepare-9.2.out
pg_hint_plan.c
sql/prepare.sql