OSDN Git Service
Kyotaro Horiguchi [Wed, 8 Feb 2017 01:34:09 +0000 (10:34 +0900)]
Properly change the state of parallel hints.
The state member of parallel hint is forgotten to be chaned on usage.
This fixes it.
Kyotaro Horiguchi [Wed, 8 Feb 2017 01:16:01 +0000 (10:16 +0900)]
Rename some functions and refactor code.
Some functions had a bit confusing naming and inconvenient interfaces.
Renamed such functions and refactored the code.
Kyotaro Horiguchi [Tue, 7 Feb 2017 11:28:18 +0000 (20:28 +0900)]
Change version to 1.2.0.
Change version number to 1.2.0 and prepare RPM build envoronment.
Kyotaro Horiguchi [Tue, 7 Feb 2017 11:05:12 +0000 (20:05 +0900)]
Add description of Parallel hint to documentation
Addition to that, documents are refactored.
Kyotaro Horiguchi [Tue, 7 Feb 2017 11:03:13 +0000 (20:03 +0900)]
New hint "Parallel"
Added a new feature to control parallel query execution.
Kyotaro Horiguchi [Tue, 7 Feb 2017 03:54:05 +0000 (12:54 +0900)]
Rename current_hint to current_hint_state
The name current_hint is quite confusing so change the name to less
confusing one.
Kyotaro Horiguchi [Mon, 6 Feb 2017 06:18:08 +0000 (15:18 +0900)]
Fix some syntax and comments.
Some following comma for the last element in enum definition and
incorrect comments are fixed.
Kyotaro Horiguchi [Mon, 5 Sep 2016 07:18:13 +0000 (16:18 +0900)]
Remove an unnecessary Makefile entry for tar file
Remove mistakenly copy'n-pasted description from outside in Makefile.
Kyotaro Horiguchi [Mon, 5 Sep 2016 07:11:30 +0000 (16:11 +0900)]
Edit copyright notices
Kyotaro Horiguchi [Thu, 1 Sep 2016 04:57:30 +0000 (13:57 +0900)]
Support PostgreSQL 9.6 RC1
Edited Makefile and renamed and edited RPM spec file.
Copied functions are updated and follow the changes of internal API.
Modified regressions to pass with 9.6 RC1.
Kyotaro Horiguchi [Fri, 13 May 2016 06:42:45 +0000 (15:42 +0900)]
Add RPM spec file forgotten in the previous commit.
Kyotaro HORIGUCHI [Tue, 26 Apr 2016 08:44:48 +0000 (17:44 +0900)]
Merge pull request #36272 (fujii_masao/pg_hint_plan/master into master).
MasaoFujii [Fri, 22 Apr 2016 04:38:42 +0000 (13:38 +0900)]
Use pg_reload_conf() to reload the configuration file in regression test.
Previously the regression test ran pg_ctl reload command for that purpose.
However in the environment where the path to PostgreSQL binaries is not set,
the regression test always failed because pg_ctl could not be found.
To reload the configuration file even in that environment, this commit
changes the regression test so that it uses pg_reload_conf function, instead.
Kyotaro Horiguchi [Fri, 15 Jan 2016 02:48:52 +0000 (11:48 +0900)]
Prepare for 1.1.3/PG95.
The pg_hint_plan version of master branch is left as 1.1.2. This
commit corrects the pg_hint_plan version, and edits RPM building
environment for PostgreSQL 9.5.
Kyotaro Horiguchi [Fri, 15 Jan 2016 02:47:17 +0000 (11:47 +0900)]
Edit copyright years.
Kyotaro Horiguchi [Fri, 15 Jan 2016 02:44:37 +0000 (11:44 +0900)]
Change for new syntax items in 9.5.
Some syntactical elements are added in 9.5. This change reflects it.
Addition to that, deleted unused parts in pg_stat_statements, which
are previously invalidated with #ifdef directives.
Kyotaro Horiguchi [Fri, 15 Jan 2016 00:27:24 +0000 (09:27 +0900)]
Follow a change of error message.
Context message of PL/pgSQL is changed so this commit refrects it to
exted/pg_hint_plan.out.
Kyotaro Horiguchi [Fri, 15 Jan 2016 00:28:29 +0000 (09:28 +0900)]
Followed the changes of 9.5.0 release.
There was some changes in 9.5.0 release affect
pg_hint_plan. set_append_rel_pathlist() no longer sets cheapest path
and it became a business of the caller. So rebuild_scan_path() does
so. core.c gets changed from changing lateral join infrastracture
(
acfcd45cacb6df23edba4cb3753a2be594238a99) and a change related to custom path(
c2ea2285e978d9289084846a3343cef7d261d880).
Kyotaro Horiguchi [Mon, 17 Aug 2015 09:33:38 +0000 (18:33 +0900)]
Made compatible with 9.5a1
Make make_join_rel.c to catch up to REL9_5_ALPHA2. Change regtests to
reflect some differences of PostgreSQL's behavior in such like
collapsing of simple VALUES clause, rows estimation and explain
representation of join filter.
Kyotaro Horiguchi [Mon, 22 Dec 2014 08:34:15 +0000 (17:34 +0900)]
Fixed a bug related to SQL statements in PL/pgSQL functions.
At least since 9.1, true query strings of SQL statements executed in
PL/pgSQL functions were found that were not obtained correctly by the
previous implement, it is because that PLpgSQL_stmt variable did not
have proper query string to be read for hints. Instead, it is changed
to read them from the top of error_context_stack in
pg_hint_plan_planner(). This change made a slight difference in
behavior which doesn't affect its work so a part of the regtest was
also changed. And added some regression tests for it.
Kyotaro Horiguchi [Mon, 22 Dec 2014 02:07:09 +0000 (11:07 +0900)]
Catch up the changes of pg_stat_statements.c
The change has nothing to do with pg_hint_plan but it's necessary to
catch it up in order to keep the difference minimal for the ease of
maintenance.
Kyotaro Horiguchi [Tue, 16 Dec 2014 10:00:50 +0000 (19:00 +0900)]
Set additional parameter of set_config_option().
9.5dev added new parameter to set_config_option(). This paramter
should be false in set_config_option_wrapper.
Kyotaro Horiguchi [Tue, 16 Dec 2014 10:12:59 +0000 (19:12 +0900)]
Fix regression test according to the changes of PostgreSQL.
PostgreSQL became to give WARNING for usage of hash indexes. This
change is to follow it.
Kyotaro Horiguchi [Wed, 17 Dec 2014 02:20:21 +0000 (11:20 +0900)]
Prepare for 1.1.2
Kyotaro Horiguchi [Fri, 19 Dec 2014 07:10:46 +0000 (16:10 +0900)]
Remove unnecessary tracker code from documentations.
Kyotaro Horiguchi [Fri, 19 Dec 2014 06:43:36 +0000 (15:43 +0900)]
Added English documentation.
Kyotaro Horiguchi [Fri, 19 Dec 2014 06:05:58 +0000 (15:05 +0900)]
Some fix and addition to the japaneses document.
It lacked the description about joni direction enforcement so added
it. Addition to it, added html language specification and updated
target PostgreSQL versions and OS version.
Kyotaro Horiguchi [Tue, 16 Dec 2014 10:12:59 +0000 (19:12 +0900)]
Fix regression test according to the changes of PostgreSQL.
Row countings of EXPLAIN results seems to be changed. This follows the
change.
Kyotaro Horiguchi [Tue, 16 Dec 2014 09:45:22 +0000 (18:45 +0900)]
Removed a stale comment.
Kyotaro Horiguchi [Tue, 16 Dec 2014 05:45:13 +0000 (14:45 +0900)]
Fix to remove plpgsql query string on non-local exit.
Pl/pgsql query string stored internally squatted after an execution
error then pg_hint_plan afterward read it for hints and ignores really
given ones. This commit makes it erased at the end of transaction.
Kyotaro Horiguchi [Tue, 16 Dec 2014 04:20:02 +0000 (13:20 +0900)]
Fix about unexpectedly living plpgsql query string.
pg_hint_plan forgot to erase plpgsql query strings when it is NOT a
static statement, so it continued to read hints from the remenbered
wrong query string after using dynamic execution of a statement. This
commit makes it to be erased for any types of pl/pgsql statement.
Kyotaro Horiguchi [Tue, 16 Dec 2014 09:31:12 +0000 (18:31 +0900)]
Enhance debug output.
Added new debug output levels detailed and verbose. These let you see
more verbose information about what pg_hint_plan does internally.
Kyotaro Horiguchi [Wed, 17 Dec 2014 01:09:32 +0000 (10:09 +0900)]
Revert "Add new join method hint "NestLoop_NM" which means force nested loop"
This reverts commit
7f6e3ce1326751c36676653ef1e81893296860b6.
Kyotaro Horiguchi [Thu, 18 Sep 2014 05:23:15 +0000 (14:23 +0900)]
Add new join method hint "NestLoop_NM" which means force nested loop
but inhibit materialize of the inner relation.
Kyotaro Horiguchi [Wed, 17 Sep 2014 08:13:57 +0000 (17:13 +0900)]
Fix a bug that index restriction by name doesn't work for UPDATEs on
inheritance parent.
Inheritance planner doesn't claim for the inheritance parent relation,
so pg_hint_plan_get_relation_info cannot have the chance to prepare
the index spec information for chlid relations. This change make the
function to try to find parent relation even if it is called for the
children with inhparent == false from the first.
Kyotaro Horiguchi [Wed, 17 Sep 2014 08:10:18 +0000 (17:10 +0900)]
Remove unused struct member.
Kyotaro Horiguchi [Fri, 5 Sep 2014 04:35:55 +0000 (13:35 +0900)]
RPM automation
Kyotaro Horiguchi [Thu, 4 Sep 2014 09:04:56 +0000 (18:04 +0900)]
Change verision to 1.1.1. Change target version to 9.4.
Kyotaro Horiguchi [Thu, 4 Sep 2014 08:55:38 +0000 (17:55 +0900)]
Make codes copied from PostgreSQL catch up to 9.4
Kyotaro Horiguchi [Thu, 4 Sep 2014 02:03:08 +0000 (11:03 +0900)]
Interim support for 9.4beta2. pg_stat_statements.c is replaced with the latest version. Regtests are rearranged and stabilized.
Kyotaro Horiguchi [Fri, 5 Sep 2014 03:34:28 +0000 (12:34 +0900)]
Merge branch 'master' into PG93
Takashi Suzuki [Fri, 24 Jan 2014 04:07:00 +0000 (13:07 +0900)]
リグレッションテストを出力メッセージの変更に対応させた。
Takashi Suzuki [Fri, 24 Jan 2014 02:18:04 +0000 (11:18 +0900)]
hint_reportの出力メッセージを大文字始まりで統一した。
Takashi Suzuki [Tue, 21 Jan 2014 02:43:05 +0000 (11:43 +0900)]
コメントやメッセージを修正した。
Takashi Suzuki [Fri, 17 Jan 2014 02:49:38 +0000 (11:49 +0900)]
コピーライトを更新した
Takashi Suzuki [Fri, 17 Jan 2014 02:29:44 +0000 (11:29 +0900)]
Rowsで外部ファイルを扱う試験を環境に依存しないようにした。
外部ファイルのアドレスを特定の文字列に置き換えることで、環境に依存
しないようにした。
Takashi Suzuki [Fri, 17 Jan 2014 01:59:42 +0000 (10:59 +0900)]
Rows関連試験の予測結果を、全試験を流した場合のものに変更した。
Takashi Suzuki [Fri, 17 Jan 2014 01:52:44 +0000 (10:52 +0900)]
Rowsヒント句のメッセージ出力(R-3-6-*)の試験を追加した。
Takashi Suzuki [Fri, 17 Jan 2014 01:38:30 +0000 (10:38 +0900)]
Rowsヒント句の同じテーブル組合せ(R-3-5-*)の試験を追加した。
Takashi Suzuki [Fri, 17 Jan 2014 01:27:22 +0000 (10:27 +0900)]
Rowsヒント句の継承テーブル関連(R-3-4-*)の試験を追加した。
Takashi Suzuki [Fri, 17 Jan 2014 01:15:56 +0000 (10:15 +0900)]
Rowsヒント句の比率指定(R-3-3-*)の試験を追加した。
Takashi Suzuki [Thu, 16 Jan 2014 08:12:42 +0000 (17:12 +0900)]
Rowsヒント句の増減値指定(R-3-2-*)の試験を追加した。
Takashi Suzuki [Thu, 16 Jan 2014 07:44:21 +0000 (16:44 +0900)]
Rowsヒント句の絶対値指定(R-3-1-*)の試験を追加した。
Takashi Suzuki [Thu, 16 Jan 2014 07:43:38 +0000 (16:43 +0900)]
bug fix #3
Takashi Suzuki [Thu, 16 Jan 2014 06:57:30 +0000 (15:57 +0900)]
R-2-4-*の試験とR-2-5-*の試験を追加した。
Takashi Suzuki [Thu, 16 Jan 2014 06:52:16 +0000 (15:52 +0900)]
Rowsヒント句のRULEまたはVIEWの試験(R-2-3-*)を追加した。
Takashi Suzuki [Thu, 16 Jan 2014 05:08:55 +0000 (14:08 +0900)]
バグ修正にそって試験および予想結果を修正した。
Takashi Suzuki [Thu, 16 Jan 2014 05:02:23 +0000 (14:02 +0900)]
bug fix #2
件数補正のときに、全ての結合パスにおいて部分集合となってしまい、他
のRowsヒント句適用後に見積もり件数を再計算してしまった。。
理由
Rowsヒント句に存在しないテーブル組合せを指定すると、pg_hint_plan
内部で空のテーブル集合として扱っていたため。
Takashi Suzuki [Wed, 15 Jan 2014 09:41:04 +0000 (18:41 +0900)]
Rowsヒント句の件数の書式に関する記述を事実から要請に変更した。
Takashi Suzuki [Wed, 15 Jan 2014 08:43:52 +0000 (17:43 +0900)]
試験R-1-6-7の予測結果を正しい形に修正した。
Takashi Suzuki [Wed, 15 Jan 2014 08:42:11 +0000 (17:42 +0900)]
1ブロックあたりのテーブル数(R-2-2-*)の試験を追加した。
ただし、不合格
Takashi Suzuki [Wed, 15 Jan 2014 08:21:18 +0000 (17:21 +0900)]
複数の問合せブロックに関する試験(R-2-1-*)を追加した。
ただし、不合格
Takashi Suzuki [Wed, 15 Jan 2014 08:11:02 +0000 (17:11 +0900)]
core.cの各関数をPG93向けに更新した。
Takashi Suzuki [Wed, 15 Jan 2014 06:47:35 +0000 (15:47 +0900)]
マニュアルにRowsヒント句の仕様の一部と具体例を挿入した。
記入内容
・Rowsヒント句の補正の件数や倍率をstrtodで補正していること。
理由
・16進数でも指定可能なため。
Takashi Suzuki [Tue, 14 Jan 2014 02:02:30 +0000 (11:02 +0900)]
Rowsヒント句の引数の条件(R-1-*)の試験を追加した。
Takashi Suzuki [Thu, 9 Jan 2014 04:58:37 +0000 (13:58 +0900)]
機能試験表との試験番号のずれをなおした。
Takashi Suzuki [Tue, 24 Dec 2013 07:17:04 +0000 (16:17 +0900)]
スキャン方式試験の予測結果がSQLの変更に沿っていなかったため修正した
Takashi Suzuki [Tue, 24 Dec 2013 07:05:03 +0000 (16:05 +0900)]
スキャン方式試験のコメントが一部不適切だったため修正した。
Takashi Suzuki [Tue, 24 Dec 2013 07:00:56 +0000 (16:00 +0900)]
スキャン方式試験の番号のずれを修正した。
Shigeru HANADA [Tue, 24 Dec 2013 05:02:40 +0000 (14:02 +0900)]
Fix test numbers.
Shigeru HANADA [Mon, 9 Dec 2013 08:23:49 +0000 (17:23 +0900)]
PG9.3でのコスト値の変動を反映。
Shigeru HANADA [Mon, 9 Dec 2013 07:43:26 +0000 (16:43 +0900)]
PG92ブランチで追加したコメントに追従。
Shigeru HANADA [Mon, 9 Dec 2013 07:41:34 +0000 (16:41 +0900)]
Rowsヒントの追加に伴いリグレッションテスト項目の予想結果を追加。
9.2版からのコピーなので、細かいコスト値は正確ではない。
Shigeru HANADA [Mon, 9 Dec 2013 07:35:02 +0000 (16:35 +0900)]
PG92との差分から生成したパッチを適用。
ただし、PG9.3対応として加えた修正はそのまま残した。
Shigeru HANADA [Mon, 9 Dec 2013 05:19:48 +0000 (14:19 +0900)]
Add *.o to ignore file list.
Takashi Suzuki [Tue, 12 Nov 2013 07:43:05 +0000 (16:43 +0900)]
specファイル中の依存ファイル名を修正した。
RPM版インストール時の依存ファイル名に誤りがあったため
Takashi Suzuki [Thu, 7 Nov 2013 05:00:40 +0000 (14:00 +0900)]
Copyrightの未更新部分を更新した。
Takashi Suzuki [Thu, 31 Oct 2013 08:44:34 +0000 (17:44 +0900)]
コピーライトと一部の流用関数に更新漏れがあったため、修正した。
Takashi Suzuki [Thu, 31 Oct 2013 07:35:33 +0000 (16:35 +0900)]
スキャン方式の試験番号やタイトルが不適切だったため修正した。
Takashi Suzuki [Fri, 18 Oct 2013 06:50:59 +0000 (15:50 +0900)]
元のクエリの実行計画の変化に伴い、結合順序の試験の予測結果を修正した。
Takashi Suzuki [Fri, 18 Oct 2013 01:45:56 +0000 (10:45 +0900)]
元のクエリの実行計画の変化に伴い、結合方式の試験の予測結果を修正した。
Takashi Suzuki [Fri, 18 Oct 2013 01:24:00 +0000 (10:24 +0900)]
pg_hint_plan動作確認試験の予測結果をPG93の動作に合わせて変更した。
Takashi Suzuki [Thu, 17 Oct 2013 06:41:52 +0000 (15:41 +0900)]
スキャン方式の試験番号のずれを修正した。
Takashi Suzuki [Thu, 17 Oct 2013 06:36:21 +0000 (15:36 +0900)]
元のクエリの実行計画の変化に伴い、スキャン方式の試験の予測結果を修正した。
Takashi Suzuki [Thu, 17 Oct 2013 02:38:31 +0000 (11:38 +0900)]
A-13-3-3の試験の目的にしたがって、試験関連のファイルを修正した。
PG/pgSQLの簡単な式のプランをキャッシュするようになったため。
Takashi Suzuki [Wed, 16 Oct 2013 07:42:39 +0000 (16:42 +0900)]
エイリアスの自動付与に関する変更漏れ箇所を変更した。
Takashi Suzuki [Wed, 16 Oct 2013 07:38:48 +0000 (16:38 +0900)]
親テーブル名の除去のもれを修正した。
Takashi Suzuki [Wed, 16 Oct 2013 07:25:53 +0000 (16:25 +0900)]
自動で付与されるエイリアスに合わせて試験予測ファイルを変更した。
Takashi Suzuki [Wed, 16 Oct 2013 05:54:59 +0000 (14:54 +0900)]
EXPLAIN結果でスキーマ修飾が非表示になったため、試験予測結果内容を変更した。
レンジテーブルでエイリアスを扱うためにruleutil.cのヒューリスティッ
クを向上する一環として、必要に応じてスキーマ修飾の名前にもユニーク
な非修飾のエイリアスを付与するようになったため。
Takashi Suzuki [Wed, 16 Oct 2013 05:40:20 +0000 (14:40 +0900)]
子テーブルに付与されていた親テーブル名を試験予測結果ファイルから除去した。
PG9.2まで、子テーブルに親テーブル名がエイリアスとして付与されていた。
しかし、PG9.3から、SQLを実行した結果がRULEやVIEWに指定されたテーブ
ル名や列名が一意になっていない場合にエイリアスを自動付与するように
なった影響で、親テーブルにエイリアスを指定しなかった場合は子テー
ブルに親テーブル名が付与されなくなった。
Takashi Suzuki [Wed, 16 Oct 2013 05:29:34 +0000 (14:29 +0900)]
PG本体のResultノード出力抑制に伴い、試験予測結果ファイルを修正した。
PG93の実行計画生成でResultノードの出力が抑制されたので、それにそっ
て試験予測ファイルの内容を修正した。
Takashi Suzuki [Wed, 16 Oct 2013 04:38:14 +0000 (13:38 +0900)]
PG93のCREATE TABLE文の仕様変更により試験予測結果ファイルを修正した。
PG93ではメッセージレベルをDEBUG1にしなければ、CREATE TABLEでINDEX
も生成する時のメッセージが出力されなくなった。
Takashi Suzuki [Thu, 10 Oct 2013 07:40:26 +0000 (16:40 +0900)]
フック関数の引数や流用関数をPG92用からPG93用に更新した。
Takashi Suzuki [Thu, 10 Oct 2013 00:51:03 +0000 (09:51 +0900)]
specファイルをPG92用からPG93用に変更した。
Takashi Suzuki [Thu, 10 Oct 2013 00:49:09 +0000 (09:49 +0900)]
PG93対応に必要なヘッダファイルを追加した。
Takashi Suzuki [Thu, 10 Oct 2013 00:43:50 +0000 (09:43 +0900)]
マクロで分岐していた処理をPG92用の処理に絞った。
Takashi Suzuki [Thu, 10 Oct 2013 00:30:32 +0000 (09:30 +0900)]
PG92のみで動作するようにファイル構成を変更した。
Takashi Suzuki [Tue, 17 Sep 2013 06:01:00 +0000 (15:01 +0900)]
A-13-4の試験の内容を項目表にあうように変更した。
Takashi Suzuki [Tue, 17 Sep 2013 02:04:23 +0000 (11:04 +0900)]
PL/pgSQLのカーソルFORループ文で指定ヒントが適用されないバグを修正した。
PL/pgSQLのカーソルFORループのときに、カーソルのクエリ文字列ではな
くカーソルの引数の代入用クエリ文字列を取得していたため、ヒントが適
用されなかった。
Takashi Suzuki [Fri, 13 Sep 2013 06:46:41 +0000 (15:46 +0900)]
PL/pgSQL文に関する仕様変更にそってリグレッションテストの内容を変更した。