OSDN Git Service
Takashi Suzuki [Fri, 2 Nov 2012 08:24:22 +0000 (17:24 +0900)]
ヒント使用の確認試験(追加試験項目A-13-2-*)を追加した。
Takashi Suzuki [Fri, 2 Nov 2012 06:48:52 +0000 (15:48 +0900)]
プランナを再帰的に呼び出す場合の試験用ファイルを作成した
Shigeru HANADA [Fri, 26 Oct 2012 08:54:50 +0000 (17:54 +0900)]
Refactor parse_head_comment; simplified code.
Shigeru HANADA [Fri, 26 Oct 2012 08:44:59 +0000 (17:44 +0900)]
Enhance comments.
Shigeru HANADA [Fri, 26 Oct 2012 08:39:22 +0000 (17:39 +0900)]
Move name constatnts near by enum.
This would improve maintenancebility.
Shigeru HANADA [Fri, 26 Oct 2012 08:27:33 +0000 (17:27 +0900)]
Refactor function name.
Shigeru HANADA [Fri, 26 Oct 2012 08:25:43 +0000 (17:25 +0900)]
Don't use the term AllHint.
Also refactored interface of HintCmp so that it doesn't require boolean
parameter "order".
Shigeru HANADA [Thu, 25 Oct 2012 05:13:24 +0000 (14:13 +0900)]
ヒント情報の構造体名を実態を表すものに変更した。
併せて、その構造体型の変数名/引数名も変更した。
Shigeru HANADA [Thu, 25 Oct 2012 02:46:51 +0000 (11:46 +0900)]
pop_hint の説明のコメントを記述した。
Shigeru HANADA [Thu, 25 Oct 2012 02:21:48 +0000 (11:21 +0900)]
PGのコーディング規約に従ってコードを整理した。
Takashi Suzuki [Wed, 24 Oct 2012 09:34:47 +0000 (18:34 +0900)]
PlanHint構造で使用する変数名をわかりやすい名前で統一した。
Takashi Suzuki [Wed, 24 Oct 2012 09:04:19 +0000 (18:04 +0900)]
現在のヒントを指すポインタをスタックからではなく直接得るようにした。
Takashi Suzuki [Wed, 24 Oct 2012 08:41:58 +0000 (17:41 +0900)]
push_hint の説明のコメントを記述した。
また、ヒント用スタックの実装にリストを使用しているが、ヒント用スタ
ックの上下とリストのデータ順の紐付けについて記述した。
Takashi Suzuki [Wed, 24 Oct 2012 08:22:59 +0000 (17:22 +0900)]
PGのコーディング規約に従ってコードを整理した。
Takashi Suzuki [Wed, 24 Oct 2012 08:02:10 +0000 (17:02 +0900)]
ヒント用スタック構造の関数名をわかりやすい名前に変更した。
Takashi Suzuki [Wed, 24 Oct 2012 07:32:26 +0000 (16:32 +0900)]
2行以上連続した空行を、空行1行に修正した。
Shigeru HANADA [Wed, 24 Oct 2012 06:36:20 +0000 (15:36 +0900)]
pg_hint_plan_plannerのクリーンアップ処理を連続で実行するように修正
併せてコメントを追加した。
Shigeru HANADA [Wed, 24 Oct 2012 06:23:10 +0000 (15:23 +0900)]
pop_stack内で中途半端な状態になる期間を短縮した。
Takashi Suzuki [Thu, 11 Oct 2012 09:05:07 +0000 (18:05 +0900)]
無駄なヒントパースの抑止
pg_hint_plan が無効の場合も常にヒント句をパースしてヒント情報を生成
していたので、pg_hint_plan が有効な場合にのみヒント句をパースするよ
うに修正した。
Takashi Suzuki [Thu, 11 Oct 2012 08:29:53 +0000 (17:29 +0900)]
ヒント用スタックが無効になる処理フローを有効となるように修正した。
pg_hint_plan.parse_messagesをerrorに設定した状態でヒントがエラーと
なると、ヒント用スタックのメモリが開放されて無効のままだった。この
状態でヒント句付きクエリを実行すると、無効状態のヒント用スタックを
使おうとしてエラーとなり、サーバが落ちてしまうため、ヒントがエラー
となってもヒント用スタックが有効となるように修正した。
Takashi Suzuki [Wed, 10 Oct 2012 09:38:16 +0000 (18:38 +0900)]
ヒント保存のスタックについてコメントを追加し、余分なものを削除した。
Takashi Suzuki [Wed, 10 Oct 2012 09:34:35 +0000 (18:34 +0900)]
ヒントのメモリの開放を、ヒントをポップする処理の中に含めた。
Takashi Suzuki [Wed, 10 Oct 2012 09:12:52 +0000 (18:12 +0900)]
ヒント保存用に使っていた構造をPG本体のリスト構造に修正した。
Takashi Suzuki [Wed, 10 Oct 2012 06:34:10 +0000 (15:34 +0900)]
現在のヒントを保存する変数の名前を適切なものに変更した。
Takashi Suzuki [Wed, 10 Oct 2012 06:22:49 +0000 (15:22 +0900)]
関数呼び出しをif文の条件部から外し、処理内容をわかりやすくした。
Takashi Suzuki [Wed, 10 Oct 2012 06:10:54 +0000 (15:10 +0900)]
pg_dbms_statsとの同時実行バグに関する修正案の仮実装
ヒント情報の保存の構造をスタック構造にした。
Shigeru HANADA [Mon, 24 Sep 2012 10:16:56 +0000 (19:16 +0900)]
メッセージスタイル修正に伴い、予想結果を修正。
Shigeru HANADA [Mon, 24 Sep 2012 10:14:18 +0000 (19:14 +0900)]
メッセージスタイルの修正漏れを修正。
Shigeru HANADA [Mon, 24 Sep 2012 10:05:40 +0000 (19:05 +0900)]
メッセージスタイルを統一した。
Mitsuru Hasegawa [Mon, 24 Sep 2012 09:43:36 +0000 (18:43 +0900)]
fix bug operation test No.10
planner_hookが再帰的に呼ばれる場合に、プランが部分的にのみ制御
されてしまう問題について、使用上の注意と制約としてドキュメントに
追加した。
Shigeru Hanada [Mon, 24 Sep 2012 02:00:21 +0000 (11:00 +0900)]
Add spec file to support RPM package distribution.
Mitsuru Hasegawa [Mon, 24 Sep 2012 02:22:06 +0000 (11:22 +0900)]
fix bug operation test No.9
PG_CATCH()を抜ける直前のErrorContextにスイッチする処理を削除した。
※PG_RE_THROW()しない場合は、ErrorContextに戻さなくても良い。
Mitsuru Hasegawa [Fri, 21 Sep 2012 08:14:28 +0000 (17:14 +0900)]
fix bug operation test No.8
識別子を切り詰める関数を、本体の関数をcopy & pasteしていたが、直接
関数を呼び出すように修整した。
また、メッセージの出力方針が他と異なるため、ユーザーズマニュアルに
注意として記述した。
Mitsuru Hasegawa [Fri, 21 Sep 2012 07:42:27 +0000 (16:42 +0900)]
fix bug operation test No.5,6,7
pg_hint_plan独自のGUCパラメータをSetヒントに指定した場合の挙動が
ユーザの想定する挙動でないと考えられるため、ユーザーズマニュアルに
制限事項として記述した。
Mitsuru Hasegawa [Fri, 21 Sep 2012 05:34:48 +0000 (14:34 +0900)]
fix bug operation test No.4
geqoアルゴリズムが使用される場合は、結合順序のヒントと結合方式のヒント
が使用されることをドキュメントに記述した。
Mitsuru Hasegawa [Mon, 10 Sep 2012 07:55:37 +0000 (16:55 +0900)]
fix bug No.3.
NAMEDATALENバイト以上のGUCパラメータをヒントに指定された場合も、
NAMEDATALEN - 1バイトに切り詰める対象に追加した。
Mitsuru Hasegawa [Mon, 10 Sep 2012 07:36:14 +0000 (16:36 +0900)]
fix bug No.2.
NAMEDATALENバイト以上のオブジェクト名を指定された場合は、
NAMEDATALEN - 1バイトに切り詰めた上で使用するように修正した。
Mitsuru Hasegawa [Thu, 6 Sep 2012 02:32:41 +0000 (11:32 +0900)]
add COPYRIGHT file.
Mitsuru Hasegawa [Thu, 6 Sep 2012 01:18:34 +0000 (10:18 +0900)]
複雑なクエリに対するSetヒントに関する試験(G-1-1-*)を追加した。
Mitsuru Hasegawa [Thu, 6 Sep 2012 00:54:17 +0000 (09:54 +0900)]
Merge branch 'ut_suzuki'
Takashi Suzuki [Mon, 27 Aug 2012 08:55:17 +0000 (17:55 +0900)]
デバッグログの出力メッセージ確認試験(G-2-4-*)を追加した。
Takashi Suzuki [Mon, 27 Aug 2012 08:26:47 +0000 (17:26 +0900)]
SetヒントとGUCパラメータの重複に関する試験(G-2-3-*)を追加した。
Shigeru HANADA [Mon, 27 Aug 2012 06:36:36 +0000 (15:36 +0900)]
Get rid of code for 9.2 features.
At the moment we support only 9.1, so removed code for 9.2 features such
as Index-only scan. This change can be reverted once we have decided to
support 9.2 or higher.
Shigeru HANADA [Mon, 27 Aug 2012 06:31:35 +0000 (15:31 +0900)]
Remove too-much optimization.
There was optimization to avoid overhead of error message construction,
but it seems overkill at the moment.
Shigeru HANADA [Mon, 27 Aug 2012 06:27:24 +0000 (15:27 +0900)]
Fix bug #0011, which crushes server on repeated Set hint failures.
Old implementation copies ErrorData and calls ereport again, but doesn't
flush error state at all. This sequence causes ErrorData stack overflow
and PostgreSQL panics in such situation.
Shigeru HANADA [Mon, 27 Aug 2012 06:36:36 +0000 (15:36 +0900)]
Get rid of code for 9.2 features.
At the moment we support only 9.1, so removed code for 9.2 features such
as Index-only scan. This change can be reverted once we have decided to
support 9.2 or higher.
Shigeru HANADA [Mon, 27 Aug 2012 06:31:35 +0000 (15:31 +0900)]
Remove too-much optimization.
There was optimization to avoid overhead of error message construction,
but it seems overkill at the moment.
Shigeru HANADA [Mon, 27 Aug 2012 06:27:24 +0000 (15:27 +0900)]
Fix bug #0011, which crushes server on repeated Set hint failures.
Old implementation copies ErrorData and calls ereport again, but doesn't
flush error state at all. This sequence causes ErrorData stack overflow
and PostgreSQL panics in such situation.
Shigeru HANADA [Mon, 27 Aug 2012 06:26:12 +0000 (15:26 +0900)]
Fix expected results for test group G.
Takashi Suzuki [Mon, 27 Aug 2012 05:53:07 +0000 (14:53 +0900)]
GUCパラメータの種別と権限に関する試験(G-2-2-*)を追加した。
Mitsuru Hasegawa [Fri, 24 Aug 2012 12:48:24 +0000 (21:48 +0900)]
A-11-1-4,5 A-12-4:-*の試験を追加した。
Mitsuru Hasegawa [Fri, 24 Aug 2012 11:36:42 +0000 (20:36 +0900)]
A-10-*の試験を追加した。
Mitsuru Hasegawa [Fri, 24 Aug 2012 11:32:11 +0000 (20:32 +0900)]
使用上の注意と制約章を最新の状態に更新した。
Takashi Suzuki [Fri, 24 Aug 2012 09:16:01 +0000 (18:16 +0900)]
Merge branch 'ut_suzuki' of git://moomin/pg_hint_plan into ut_suzuki
Takashi Suzuki [Fri, 24 Aug 2012 09:10:15 +0000 (18:10 +0900)]
Leadingヒントのデバッグログ出力試験(L-3-5-*)を追加した。
Takashi Suzuki [Fri, 24 Aug 2012 08:33:16 +0000 (17:33 +0900)]
Leadingヒントの重複に関する試験(L-3-4-*)を追加した。
Takashi Suzuki [Fri, 24 Aug 2012 08:20:27 +0000 (17:20 +0900)]
結合順序ヒントの対象を親同士や子同士とする試験(L-3-3-*)を追加した。
Takashi Suzuki [Fri, 24 Aug 2012 07:47:26 +0000 (16:47 +0900)]
ヒントを無効にするGUCパラメータに関する試験(L-3-2-*)を追加した。
Takashi Suzuki [Fri, 24 Aug 2012 04:53:28 +0000 (13:53 +0900)]
テーブルの結合順序を指定する試験(L-3-1-*)を追加した。
Takashi Suzuki [Fri, 24 Aug 2012 04:10:51 +0000 (13:10 +0900)]
複数の結合方式に同じテーブル名を指定する試験(J-3-3-*)を追加した。
Mitsuru Hasegawa [Fri, 24 Aug 2012 05:32:27 +0000 (14:32 +0900)]
否定形の結合方式のバグ修正によって正しい予想結果となった内容を
反映した。
Mitsuru Hasegawa [Fri, 24 Aug 2012 05:31:54 +0000 (14:31 +0900)]
否定形の結合方式のヒントを指定した場合に、結合方式関連のGUCパラメ
ータの初期値を考慮すべきところを、スキャン方式関連のGUCパラメータ
の初期値を考慮していたバグを修正した。
Takashi Suzuki [Fri, 24 Aug 2012 04:10:51 +0000 (13:10 +0900)]
複数の結合方式に同じテーブル名を指定する試験(J-3-3-*)を追加した。
Shigeru HANADA [Fri, 24 Aug 2012 01:29:20 +0000 (10:29 +0900)]
Fix expected results so that they fit new specification.
Shigeru HANADA [Fri, 24 Aug 2012 01:24:37 +0000 (10:24 +0900)]
Merge branch 'ut' into ut_suzuki
Conflicts:
expected/ut-J.out
sql/ut-J.sql
Mitsuru Hasegawa [Thu, 23 Aug 2012 13:05:19 +0000 (22:05 +0900)]
Merge branch 'master' into ut
Mitsuru Hasegawa [Thu, 23 Aug 2012 13:04:42 +0000 (22:04 +0900)]
否定形のヒントを指定した場合に、ヒントで指定した以外のenable_*
パラメータをonにしていたために、GUC設定で無効化されているプランが
選択されてしまう場合があるバグを修正した。
Mitsuru Hasegawa [Thu, 23 Aug 2012 01:30:36 +0000 (10:30 +0900)]
J-3-1-1の試験を追加した。
Takashi Suzuki [Thu, 23 Aug 2012 09:44:16 +0000 (18:44 +0900)]
結合方式ヒントの対象を親同士や子同士とする試験を追加した。
Takashi Suzuki [Thu, 23 Aug 2012 09:09:12 +0000 (18:09 +0900)]
結合方式のヒントのデバッグログ出力試験(J-3-4-*)を追加した。
結合方式のヒントのデバッグログ出力試験(J-3-4-*)を追加した。
このとき、項目J-3-4-7を試験Aのファイルから結合試験のファイル移動し
た。
Takashi Suzuki [Thu, 23 Aug 2012 07:48:21 +0000 (16:48 +0900)]
結合方式のヒントの挙動確認試験(J-3-1-*)を追加した。
Mitsuru Hasegawa [Thu, 23 Aug 2012 01:30:36 +0000 (10:30 +0900)]
J-3-1-1の試験を追加した。
Mitsuru Hasegawa [Wed, 22 Aug 2012 12:38:44 +0000 (21:38 +0900)]
8月22日消化分の試験を追加した。
Mitsuru Hasegawa [Wed, 22 Aug 2012 00:47:45 +0000 (09:47 +0900)]
8月21日の試験の初期処理に影響して変化した予想結果を正しく修正した。
バグNo.6の修正に伴う予想結果の変化を反映した。
Mitsuru Hasegawa [Wed, 22 Aug 2012 00:41:02 +0000 (09:41 +0900)]
Merge branch 'master' into ut
Mitsuru Hasegawa [Wed, 22 Aug 2012 00:38:15 +0000 (09:38 +0900)]
EXECUTEコマンドに存在しないステートメント名を指定することによって
エラー終了した後に、SELECTコマンドを発行すると以下のメッセージを
出力してエラー終了する問題を修正した。
Mitsuru Hasegawa [Wed, 22 Aug 2012 00:34:05 +0000 (09:34 +0900)]
8月21日消化分の試験を追加した。
Mitsuru Hasegawa [Mon, 20 Aug 2012 12:26:52 +0000 (21:26 +0900)]
8月20日追加消化分の試験を追加した。
Mitsuru Hasegawa [Mon, 20 Aug 2012 10:30:35 +0000 (19:30 +0900)]
ファイルの命名規則を統一した。
Mitsuru Hasegawa [Mon, 20 Aug 2012 10:02:56 +0000 (19:02 +0900)]
故障処理表No.8の修正の影響による変更を反映した。
Mitsuru Hasegawa [Mon, 20 Aug 2012 09:57:17 +0000 (18:57 +0900)]
Merge branch 'master' into ut
Mitsuru Hasegawa [Mon, 20 Aug 2012 09:52:50 +0000 (18:52 +0900)]
bugfix: 故障処理表No.8
関数の戻り値として、負の値がありうるにもかかわらず、unsigned の変数
を使用して戻り値を受け取っていた。また、関数の戻り値もunsigned の
変数で定義していた。
その結果、エラーチェックをすり抜け、負の値を受け取るとエラーとなる
PG本体の関数(bms_is_member())に負の値を渡していた。
Mitsuru Hasegawa [Mon, 20 Aug 2012 09:40:27 +0000 (18:40 +0900)]
8月20日消化分の試験を追加した。
Mitsuru Hasegawa [Fri, 10 Aug 2012 09:44:16 +0000 (18:44 +0900)]
8月10日午後消化分の試験を追加した。
Mitsuru Hasegawa [Fri, 10 Aug 2012 05:09:33 +0000 (14:09 +0900)]
8月10日午前消化分の試験を追加した。
Mitsuru Hasegawa [Thu, 9 Aug 2012 09:36:49 +0000 (18:36 +0900)]
Merge branch 'master' into ut
Mitsuru Hasegawa [Thu, 9 Aug 2012 09:19:40 +0000 (18:19 +0900)]
Bug fix:EXECUTEコマンド中にエラー終了したあとにSELECTを実行すると
想定外の実行計画になる問題を修正した。
EXECUTEコマンド実行時に、ProcessUtility_hookの初期処理で外部変数に
ステートメント名を保存し、終了処理でNULLに戻すが、ProcessUtility_hook
の実行中にエラー終了した場合は、外部変数にステートメント名が設定
されたままだった。
このため、その後SELECT等の通常のクエリを発行すると、外部変数に
残っているステートメント名を使用して、プランキャッシュからクエリ
文字列を取得し、その文字列に指定されているヒントを使用していた。
Mitsuru Hasegawa [Thu, 9 Aug 2012 09:17:24 +0000 (18:17 +0900)]
Revert "Bug fix:EXECUTEコマンド中にエラー終了したあとにSELECTを実行すると"
This reverts commit
65fababa06227b6a2e2c6b1518412ed12e39aea4.
元に戻したcommitと同じ内容でcommitしてしまった。
Mitsuru Hasegawa [Thu, 9 Aug 2012 08:15:33 +0000 (17:15 +0900)]
Bug fix:EXECUTEコマンド中にエラー終了したあとにSELECTを実行すると
想定外の実行計画になる問題を修正した。
EXECUTEコマンド実行時に、ProcessUtility_hookの初期処理で外部変数に
ステートメント名を保存し、終了処理でNULLに戻すが、ProcessUtility_hook
の実行中にエラー終了した場合は、外部変数にステートメント名が設定
されたままだった。
このため、その後SELECT等の通常のクエリを発行すると、外部変数に
残っているステートメント名を使用して、プランキャッシュからクエリ
文字列を取得し、その文字列に指定されているヒントを使用していた。
Mitsuru Hasegawa [Thu, 9 Aug 2012 08:02:56 +0000 (17:02 +0900)]
Revert "Bug fix:EXECUTEコマンド中にエラー終了したあとにSELECTを実行すると"
This reverts commit
31b255318ded2547a9dbc0425768e9bb14427aaa.
使用したコールバックは、エラーメッセージにCONTEXTを追加するためのもの
だったため、エラー時のみでなく、INFOなどのほかのレベルでも呼び出される
ため、planner_hook呼び出しまでの間にメッセージ出力がある場合は、stmt_name
がNULLに初期化されてしまう。
Mitsuru Hasegawa [Thu, 9 Aug 2012 06:52:15 +0000 (15:52 +0900)]
8月9日午前中消化分の試験を追加した。
Mitsuru Hasegawa [Wed, 8 Aug 2012 11:34:48 +0000 (20:34 +0900)]
Merge branch 'master' into ut
Mitsuru Hasegawa [Wed, 8 Aug 2012 11:33:16 +0000 (20:33 +0900)]
Revert "単体試験においてgdbを使用するために、gccの最適化オプションを"
This reverts commit
205bc7b34238e0f0fd60da24c2adee7452f7ef33.
PostgreSQL本体のconfigureオプションでgccの最適化オプションを変更
できる事が分かったため、変更を元に戻す。
Mitsuru Hasegawa [Wed, 8 Aug 2012 11:31:38 +0000 (20:31 +0900)]
Merge branch 'master' of git://moomin/pg_hint_plan
Mitsuru Hasegawa [Wed, 8 Aug 2012 11:27:44 +0000 (20:27 +0900)]
Bug fix:EXECUTEコマンド中にエラー終了したあとにSELECTを実行すると
想定外の実行計画になる問題を修正した。
EXECUTEコマンド実行時に、ProcessUtility_hookの初期処理で外部変数に
ステートメント名を保存し、終了処理でNULLに戻すが、ProcessUtility_hook
の実行中にエラー終了した場合は、外部変数にステートメント名が設定
されたままだった。
このため、その後SELECT等の通常のクエリを発行すると、外部変数に
残っているステートメント名を使用して、プランキャッシュからクエリ
文字列を取得し、その文字列に指定されているヒントを使用していた。
Mitsuru Hasegawa [Wed, 8 Aug 2012 11:23:02 +0000 (20:23 +0900)]
8月8日消化分の試験を追加した。
Mitsuru Hasegawa [Tue, 7 Aug 2012 09:07:41 +0000 (18:07 +0900)]
Merge branch 'master' into ut
Mitsuru Hasegawa [Tue, 7 Aug 2012 09:03:40 +0000 (18:03 +0900)]
単体試験においてgdbを使用するために、gccの最適化オプションを
無効化した。
Mitsuru Hasegawa [Mon, 6 Aug 2012 11:13:01 +0000 (20:13 +0900)]
8月6日消化分の試験を追加した。
Mitsuru Hasegawa [Mon, 6 Aug 2012 05:33:42 +0000 (14:33 +0900)]
utを機能ごとに分割するためにファイル名を変更した。