OSDN Git Service

Bug fix:EXECUTEコマンド中にエラー終了したあとにSELECTを実行すると
authorMitsuru Hasegawa <hasegawa@metrosystems.co.jp>
Wed, 8 Aug 2012 11:27:44 +0000 (20:27 +0900)
committerMitsuru Hasegawa <hasegawa@metrosystems.co.jp>
Wed, 8 Aug 2012 11:27:44 +0000 (20:27 +0900)
commit31b255318ded2547a9dbc0425768e9bb14427aaa
treea90ed22587cfe3ed7a424de6cc8840f44fe5ebbd
parent54b6b2fc8e668069763b9693833d621ddded7117
Bug fix:EXECUTEコマンド中にエラー終了したあとにSELECTを実行すると
想定外の実行計画になる問題を修正した。

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