OSDN Git Service
Ryohei OKADA [Wed, 5 Jun 2013 05:22:46 +0000 (14:22 +0900)]
ヒント用テーブルを検索する仕組みを実装した。
SPI関数を使って、SQL問い合わせを実行する。
Ryohei OKADA [Thu, 9 May 2013 08:01:53 +0000 (17:01 +0900)]
マニュアルを更新した。
ヒントコメント記述位置の制限を撤廃したので、それに併せてヒントの
記述方法と記述位置についての内容を更新した。
Shigeru HANADA [Wed, 8 May 2013 06:28:23 +0000 (15:28 +0900)]
Translate comments into English.
Ryohei OKADA [Thu, 25 Apr 2013 09:46:54 +0000 (18:46 +0900)]
「クエリ文字列の先頭」というヒントコメント記述位置の制限を撤廃した。
ヒントコメントより前に、空白文字、アルファベット(大文字/小文字)、数字、
アンダースコア、カンマ、括弧を記述できるようにした。
Takashi Suzuki [Mon, 1 Apr 2013 08:44:02 +0000 (17:44 +0900)]
COPYRIGHTの年代を更新し、リファレンスに副問い合わせに関する記述を追加した。
各ファイルのCOPYWRITEの年代を更新した。
副問い合わせの結果をヒントに指定する方法に関する記述を追加した。
Takashi Suzuki [Mon, 25 Mar 2013 09:25:46 +0000 (18:25 +0900)]
子テーブルindex指定の親index方式について、一致判定の条件をより厳密にした。
Takashi Suzuki [Wed, 13 Mar 2013 10:07:35 +0000 (19:07 +0900)]
継承テーブルに式インデックスを含めた場合に生じるバグを修正した。
Mitsuru Hasegawa [Mon, 11 Mar 2013 11:19:19 +0000 (20:19 +0900)]
子テーブルindex指定のPOSIX正規表現方式を実装した。
Takashi Suzuki [Wed, 6 Mar 2013 10:50:48 +0000 (19:50 +0900)]
子テーブルindex指定の親index方式を実装した。
Mitsuru Hasegawa [Wed, 6 Mar 2013 03:26:47 +0000 (12:26 +0900)]
ソースコードクリーンアップを行なった。
- コメント中で間違って単数形を使用していた箇所を複数形に修正した。
- パース関数の戻り値がNULLだった場合は、その関数もNULLを返すように
修正した。
- 開き括弧の読み飛ばしは、パース関数の先頭で行なうように共通化した。
- palloc()の呼び出しは、実際に必要な箇所で呼び出すように修正した。
- OuterInnerJoinCreate()から、不要な引数のnjoinrelsを除去した。
- 変数の宣言箇所のインデントをPostgreSQLのコーディング規約に合わせた。
Takashi Suzuki [Thu, 28 Feb 2013 10:37:47 +0000 (19:37 +0900)]
ソースコードのレビュー結果をもとにレビューバックを実施した。
Shigeru Hanada [Thu, 28 Feb 2013 07:52:43 +0000 (16:52 +0900)]
Treat opening parenthesis as need-to-be-quoted char.
This specification has already been described in document, but
implementation couldn't catch up it.
Shigeru Hanada [Thu, 28 Feb 2013 07:05:00 +0000 (16:05 +0900)]
Clarify functionality of function parse_quote_value by renaming.
This function parses tokens which might be quoted, so "quoted value"
seems better.
Shigeru Hanada [Thu, 28 Feb 2013 06:55:14 +0000 (15:55 +0900)]
ダンプ処理でない関数の名前を適切なものに変更した。
実際にサーバログに出力する部分でのみdumpという単語を使い、それ以外は
desc(ribe)やappendという単語を用いた。
Shigeru Hanada [Thu, 28 Feb 2013 06:14:30 +0000 (15:14 +0900)]
開き括弧も要引用符文字とした。
この仕様はLeadingヒントでのInner/Outer指定機能追加に伴って変更された
もので、ドキュメントには既に記載されていたが実装はそれとは違う内容に
なっていた。
Mitsuru Hasegawa [Wed, 27 Feb 2013 13:28:15 +0000 (22:28 +0900)]
LeadingHintから変換したJoinMethodHintについて格納する結合レベルを
間違っていたバグを修正した。
Mitsuru Hasegawa [Wed, 27 Feb 2013 09:56:41 +0000 (18:56 +0900)]
Inner/Outer指定機能の構文を明確にした。
Inner/Outerを制御するLeadingヒントでは、開き括弧は特殊文字として扱う
ように修正した。テーブル名に開き括弧を含む場合は二重引用符でくくる
必要がある。また、開き括弧の前後には空白はあってもなくてもよい。
Takashi Suzuki [Thu, 21 Feb 2013 02:23:32 +0000 (11:23 +0900)]
Inner/Outer指定機能を実装した。
・Leadingヒントを使って、テーブル結合にInner/Outerを指定できるよう
にした。
・リグレッションテスト(pg_hint_plan.sql)にInner/Outer機能確認のた
めのテストを追加した。
・Inner/Outer機能実装に伴って、Leadingヒントの仕様の変更内容をリフ
ァレンスに記述した。
Takashi Suzuki [Thu, 31 Jan 2013 04:41:03 +0000 (13:41 +0900)]
修正ミスの修正
誤って消した内容を元に戻した。
リグレッションテストの予測結果がpg_stat_statementsをインストールし
ていない時のものにだったため、インストール後のものに修正した。
Takashi Suzuki [Thu, 31 Jan 2013 01:45:34 +0000 (10:45 +0900)]
デバッグログに親テーブルが2回出力するというバグを修正した。
Takashi Suzuki [Thu, 31 Jan 2013 01:39:52 +0000 (10:39 +0900)]
デバッグログのテーブル名を示していた「"」を必要なときだけ付与するようにした。
Takashi Suzuki [Wed, 30 Jan 2013 02:47:03 +0000 (11:47 +0900)]
デバッグログメッセージとリグレッションテストの予想結果を再修正した
Takashi Suzuki [Tue, 29 Jan 2013 12:02:34 +0000 (21:02 +0900)]
デバッグログメッセージの修正に伴い、リグレッションテストの予想結果を修正した
Mitsuru Hasegawa [Mon, 28 Jan 2013 08:22:01 +0000 (17:22 +0900)]
変数のスコープが必要最小限の範囲となるように修正した。
Takashi Suzuki [Mon, 28 Jan 2013 08:04:09 +0000 (17:04 +0900)]
候補インデックスを持つテーブルを区別し易くするため、エイリアス名で出力するようにした。
・テーブルのエイリアス名を出力できるようにした。
・ログメッセージの内容が本体と異なっていて、ユーザに違和感を感じる
恐れがあったため修正した。
Takashi Suzuki [Mon, 28 Jan 2013 04:42:55 +0000 (13:42 +0900)]
候補インデックスのログ出力をよりわかりやすくした。
・継承テーブルのログ出力について、親テーブルには親インデックスを、
子テーブルには子インデックスをセットで出力するようにした。
・ログの意味をわかりやすくした。
Takashi Suzuki [Fri, 25 Jan 2013 08:24:16 +0000 (17:24 +0900)]
リグレッションテストに候補インデックスのログ出力の試験を追加した。
Takashi Suzuki [Fri, 25 Jan 2013 07:44:43 +0000 (16:44 +0900)]
候補インデックスのログ出力で、一部のインデックス名も正しく表示するようにした。
"で囲まなければならないインデックス名(名前に' ', ')', '"'を使用)
を、ヒントで指定できる形でログに出力していなかったため、ヒントで指
定できる形で出力するように修正した。
Takashi Suzuki [Fri, 25 Jan 2013 06:44:41 +0000 (15:44 +0900)]
候補インデックスのログに関する処理にdebug_printの値が影響するようにした。
変数定義を除き、デバッグログ用の文字列を格納するために必要な処理を
debug_printがonのときだけ実行するようにした。
Takashi Suzuki [Fri, 25 Jan 2013 05:46:03 +0000 (14:46 +0900)]
インデックスの候補をログ出力するようにした。
pg_hint_plan.debug_printをonにしたときに、インデックスを使用する
Scanヒントでインデックス名を指定した場合、候補となるインデックス名
をログで出力するようにした
Takashi Suzuki [Wed, 16 Jan 2013 09:07:42 +0000 (18:07 +0900)]
定義済みのヒント同士の比較について、文字列ではなく列挙型を使うようにした。
文字列を使う場合、比較を繰り返すと処理に時間がかかるため。
Takashi Suzuki [Fri, 11 Jan 2013 08:29:38 +0000 (17:29 +0900)]
Bug fix.
入力したヒント方式と定義済みヒントキーワードの比較は大文字小文字を
区別しないので、元に戻した。
Takashi Suzuki [Fri, 11 Jan 2013 08:09:53 +0000 (17:09 +0900)]
ヒントキーワード比較時に不必要な文字の大小の区別をしないようにした 。
Takashi Suzuki [Fri, 11 Jan 2013 06:53:49 +0000 (15:53 +0900)]
エラーメッセージの改定に伴い、リグレッションテストの予想結果を修正した。
Takashi Suzuki [Fri, 11 Jan 2013 06:47:06 +0000 (15:47 +0900)]
インデントのずれや行末のTABをPGのコーディング規約に従って修正した。
Shigeru Hanada [Fri, 11 Jan 2013 06:29:56 +0000 (15:29 +0900)]
Revise English comments and messages.
Takashi Suzuki [Fri, 11 Jan 2013 07:38:19 +0000 (16:38 +0900)]
処理内容が似ている関数(parse_*_parenthesis)を1つにまとめた。
Takashi Suzuki [Fri, 11 Jan 2013 07:29:37 +0000 (16:29 +0900)]
Hint構造体中の変数parser_funcを他の変数と同様に型名に合わせて変更した。
Takashi Suzuki [Fri, 11 Jan 2013 07:27:16 +0000 (16:27 +0900)]
エラーメッセージ出力関数の名前を、より適切なものに修正した。
パース処理限定でエラーメッセージを出力するような名前の関数だが、
実際にはパース処理以外の処理でも使用しているため。
Takashi Suzuki [Fri, 11 Jan 2013 07:25:33 +0000 (16:25 +0900)]
終了条件の異なる処理を分離した。
以下のような実行回数が異なる処理を1つのforループの中でまとめて
実行し、必ずbreakでループを終了していたので、処理ごとにループ分
けることでわかりやすくした。
・各ヒントグループのカウント処理
・ヒントの重複チェック処理
Takashi Suzuki [Fri, 11 Jan 2013 07:11:11 +0000 (16:11 +0900)]
全てのヒント方式に共通するパース処理を1つの関数にまとめた。
Takashi Suzuki [Wed, 9 Jan 2013 08:03:08 +0000 (17:03 +0900)]
エラーメッセージのクリーンアップに伴って使用しなくなった変数を削除した。
パース処理時にワードを切り出す関数parse_quote_valueの引数type_value
を削除した。
Takashi Suzuki [Wed, 9 Jan 2013 07:53:43 +0000 (16:53 +0900)]
PG本体に合わせてエラーメッセージを修正した。
elogのメッセージの先頭を小文字にした。
パース処理するときの文字列の字数制限に関するメッセージをPG本体に合
わせた。
Shigeru Hanada [Fri, 21 Dec 2012 02:42:20 +0000 (11:42 +0900)]
使用例セクションを追加しヒントグループごとにSQL文を記述
レビュー管理表No.9
Shigeru Hanada [Fri, 21 Dec 2012 01:32:23 +0000 (10:32 +0900)]
章構成をpg_dbms_statsに合わせた
レビュー管理表No.7
Shigeru Hanada [Wed, 19 Dec 2012 02:52:54 +0000 (11:52 +0900)]
ECPGの動的SQLの記述をSQLDAを使う場合と区別できる記述にした。
レビュー管理表No.3
Shigeru Hanada [Tue, 18 Dec 2012 03:51:45 +0000 (12:51 +0900)]
動作環境に9.2を追加
レビュー管理表No.8
Shigeru Hanada [Tue, 18 Dec 2012 03:50:08 +0000 (12:50 +0900)]
制約事項が多くなったのでグループに分割
併せて用語の統一も行った。
- VIEW、RULE→ビュー、ルール
- エイリアス→別名
レビュー管理表No.6
Shigeru Hanada [Tue, 18 Dec 2012 02:29:47 +0000 (11:29 +0900)]
<a>タグ内のパラメータ名記述忘れを修正
他の箇所と合わせて、リンクではなく通常の文字列とした。
また、message_levelという古いパラメータ名が残っていたので併せて修正した。
レビュー管理表No.5
Shigeru Hanada [Tue, 18 Dec 2012 02:24:16 +0000 (11:24 +0900)]
「クエリに明記されていないテーブルへのヒント適用」に例を追加
文章だけでは分かりづらい内容なので、具体的なクエリを挙げて説明した。
レビュー管理表No.4
Shigeru Hanada [Tue, 18 Dec 2012 01:18:36 +0000 (10:18 +0900)]
文章とEXPALIN例でヒント種別か異なっていたので修正
レビュー管理表No.2
Shigeru Hanada [Tue, 18 Dec 2012 00:59:04 +0000 (09:59 +0900)]
表記ゆれを統一(ダブルクォート→二重引用符)
レビュー管理表No.1
Takashi Suzuki [Tue, 11 Dec 2012 08:59:28 +0000 (17:59 +0900)]
core-9.2.c に余分な改行や改行不足を解消した。
Takashi Suzuki [Tue, 11 Dec 2012 08:32:14 +0000 (17:32 +0900)]
流用もとのファイルと当該ファイルでコピーライトが異なっていたため、一致させた。
Shigeru Hanada [Mon, 10 Dec 2012 09:46:12 +0000 (18:46 +0900)]
Merge branch 'master' into translate_comments
Takashi Suzuki [Fri, 7 Dec 2012 07:42:18 +0000 (16:42 +0900)]
実行していたクエリが試験の目的に沿っていなかったため、修正した。
Takashi Suzuki [Fri, 7 Dec 2012 07:26:43 +0000 (16:26 +0900)]
外部テーブルをヒント対象にしたときの各ヒント方式の試験を追加した。
既存の試験ファイル(fdw.source)を機能試験用のファイルに変更し、外部テ
ーブルを対象とする各ヒントの機能試験をこのファイルにまとめた。
Takashi Suzuki [Fri, 7 Dec 2012 06:50:17 +0000 (15:50 +0900)]
リグレッションテストのリファクタリングを実施した。
- 試験番号のずれを修正した。
- 余分なクエリを削除した。
- 試験の目的に合わせてクエリを修正した。
Takashi Suzuki [Thu, 6 Dec 2012 08:04:02 +0000 (17:04 +0900)]
CREATE TABLE AS EXECUTE の試験を【機能に依存しない】試験ファイル内に移動した。
Takashi Suzuki [Thu, 6 Dec 2012 06:31:09 +0000 (15:31 +0900)]
IndexOnlyScanヒントの試験を【スキャン方式】試験ファイル内に移動した。
Takashi Suzuki [Thu, 6 Dec 2012 06:01:55 +0000 (15:01 +0900)]
プランナを再帰的に呼び出す場合の試験を【機能に依存しない】試験のファイル内に移動した。
プランナを再帰的に呼び出す場合の試験(A-13-*-*)を追加試験として別フ
ァイルに分けていたが、試験の整理にあたり、機能試験として同じファイ
ルにまとめた。
Takashi Suzuki [Wed, 28 Nov 2012 08:15:42 +0000 (17:15 +0900)]
PREPARE/EXECUTEの試験で、ジェネリックプランを使うように修正した。
Shigeru Hanada [Tue, 27 Nov 2012 08:27:09 +0000 (17:27 +0900)]
Translate comments into English.
Takashi Suzuki [Thu, 22 Nov 2012 08:56:49 +0000 (17:56 +0900)]
リグレッションテストをDBクラスタのエンコードの影響を受けなくした。
Takashi Suzuki [Thu, 22 Nov 2012 08:56:17 +0000 (17:56 +0900)]
Makefileをリファクタリングした
Takashi Suzuki [Thu, 22 Nov 2012 05:40:43 +0000 (14:40 +0900)]
パラメータ名変更に伴いリグレッションテストを修正した。
Takashi Suzuki [Thu, 22 Nov 2012 05:40:27 +0000 (14:40 +0900)]
ドキュメントと同様に、ソースコードのパラメータ名を変更した。
Takashi Suzuki [Thu, 22 Nov 2012 04:10:00 +0000 (13:10 +0900)]
パラメータ名をよりわかりやすいものに変更した。
Takashi Suzuki [Wed, 21 Nov 2012 09:47:40 +0000 (18:47 +0900)]
クエリに明記されていないテーブルへのヒント適用についてマニュアルに追記した。
Takashi Suzuki [Mon, 19 Nov 2012 07:33:55 +0000 (16:33 +0900)]
Merge branch 'cvc_fix' of git://moomin/pg_hint_plan into IndexOnly
Takashi Suzuki [Mon, 19 Nov 2012 06:45:42 +0000 (15:45 +0900)]
IndexOnlyScanヒント用のテストを実装した。
Shigeru Hanada [Mon, 19 Nov 2012 05:59:53 +0000 (14:59 +0900)]
用語を統一(GUCパラメータ)
Shigeru Hanada [Mon, 19 Nov 2012 05:50:06 +0000 (14:50 +0900)]
9.2でのcustom_variable_classesの廃止に対応。
postgresql.confでpg_hint_plan独自パラメータを設定する際に、9.1でのみ
custom_variable_classes設定が必要であることを記述した。
Takashi Suzuki [Mon, 19 Nov 2012 00:21:46 +0000 (09:21 +0900)]
CREATE TABLE AS EXECUTE対応のために、ソースコードと試験を修正した。
Takashi Suzuki [Fri, 16 Nov 2012 01:56:15 +0000 (10:56 +0900)]
CREATE TABLE AS EXECUTE対応の準備として動作確認用の試験を追加した。
Takashi Suzuki [Thu, 15 Nov 2012 10:16:03 +0000 (19:16 +0900)]
IndexOnlyScanヒント用のテストを途中まで実装した。
クエリから考え直す項目がある。
その考え直す項目はexpected/indexonly-9.2.outの出力結果を空行にしている。
Takashi Suzuki [Wed, 14 Nov 2012 11:02:46 +0000 (20:02 +0900)]
IndexOnlyScanヒントのコードをScanヒントのグループの最後に移動した。
Takashi Suzuki [Wed, 14 Nov 2012 09:13:19 +0000 (18:13 +0900)]
[No]IndexOnlyScanヒントの試験パターンを追加し、目的コメントを加えた。
Takashi Suzuki [Wed, 14 Nov 2012 02:04:10 +0000 (11:04 +0900)]
IndexOnlyScanヒントの制限の説明をより誤解されにくい形に修正した。
Takashi Suzuki [Wed, 14 Nov 2012 01:58:01 +0000 (10:58 +0900)]
2つのヒントの説明をより誤解されにくい形に修正した。
Takashi Suzuki [Wed, 14 Nov 2012 01:19:33 +0000 (10:19 +0900)]
NoIndexScanヒントの制限の説明で冗長な部分を削除した。
Takashi Suzuki [Wed, 14 Nov 2012 01:15:45 +0000 (10:15 +0900)]
PostgreSQLのバージョン表記で余分な単語を省いた。
Takashi Suzuki [Wed, 14 Nov 2012 01:12:29 +0000 (10:12 +0900)]
IndexOnlyScanヒントの制限の説明文を読みやすい形に修正した。
Takashi Suzuki [Tue, 13 Nov 2012 08:04:38 +0000 (17:04 +0900)]
[No]IndexOnlyScan対応によって生じた注意書きをマニュアルに追記した。
Takashi Suzuki [Tue, 13 Nov 2012 08:03:37 +0000 (17:03 +0900)]
[No]IndexOnlyScanの説明をマニュアルに追記した。
Takashi Suzuki [Tue, 13 Nov 2012 04:04:25 +0000 (13:04 +0900)]
[No]IndexOnlyScanヒントの試験を追加した。
Takashi Suzuki [Mon, 12 Nov 2012 10:22:26 +0000 (19:22 +0900)]
[No]IndexOnlyScanヒントを追加した。
Takashi Suzuki [Thu, 8 Nov 2012 12:01:46 +0000 (21:01 +0900)]
ビルドなどでできる一時ファイルをgitで無視するようにした。
Takashi Suzuki [Thu, 8 Nov 2012 11:55:12 +0000 (20:55 +0900)]
PREPAREの試験を削除した。
PG9.1とPG9.2でそれぞれのPREPAREの挙動を確認するために加えられていた
ので削除した。
Takashi Suzuki [Thu, 8 Nov 2012 11:47:41 +0000 (20:47 +0900)]
初期のリグレッションをマルチバージョンに対応させた。
Takashi Suzuki [Thu, 8 Nov 2012 11:05:48 +0000 (20:05 +0900)]
スキャン方式の試験(ut-S)をマルチバージョンに対応させた。
Mitsuru Hasegawa [Thu, 8 Nov 2012 10:10:48 +0000 (19:10 +0900)]
結合方式の試験(ut-J)をマルチバージョンに対応させた。
Mitsuru Hasegawa [Thu, 8 Nov 2012 09:58:06 +0000 (18:58 +0900)]
結合順序の試験(ut-L)をマルチバージョンに対応させた。
Takashi Suzuki [Thu, 8 Nov 2012 09:51:45 +0000 (18:51 +0900)]
プランナ再帰呼び出しの試験(ut-A2)をマルチバージョンに対応させた。
Mitsuru Hasegawa [Thu, 8 Nov 2012 09:43:12 +0000 (18:43 +0900)]
GUCパラメータの試験(ut-G)をマルチバージョンに対応させた。
Takashi Suzuki [Thu, 8 Nov 2012 09:38:32 +0000 (18:38 +0900)]
機能に依存しない試験(ut-A)をマルチバージョンに対応させた。
Takashi Suzuki [Thu, 8 Nov 2012 06:17:12 +0000 (15:17 +0900)]
リグレッションテストのinitテストをマルチバージョンに対応させた。
Takashi Suzuki [Thu, 8 Nov 2012 05:53:15 +0000 (14:53 +0900)]
リグレッションテストのファイル構成をマルチバージョンに対応可能にした。
PG9.2でのリグレッションテストはまだ通らない。
Takashi Suzuki [Thu, 8 Nov 2012 05:06:56 +0000 (14:06 +0900)]
PG9.2版 RPM 作成用の SPECファイルを作成した。
Takashi Suzuki [Thu, 8 Nov 2012 05:06:35 +0000 (14:06 +0900)]
PG9.1、PG9.2の両方でビルド可能にした。