• R/O
  • HTTP
  • SSH

pg_hint_plan: コミット一覧

firtst release

Rev. 日時 作者
5d887c9 PG96 2017-11-06 15:39:31 Kyotaro Horiguchi

Move expected/ut-W.out to output/ut-W.source

ut-W.out contained an absolute path of my working directory. Moved the
file into output so that we can remove the path replacing with

7093908 2017-11-06 15:10:26 Kyotaro Horiguchi

Added and removed some entries in .gitignore

Removed core.c, that is not appropriate.
Added .deps and RPMS.

e40ba9a 2017-11-06 14:00:23 Arthur Zakirov

Use pg_strcasecmp instead of strcasecmp for the sake of portability

de15cdb 2017-10-10 12:35:22 Kyotaro Horiguchi

Added a notice in the manual.

Added an item that explains about letter case handling of object names
in hints.

70f2c6a REL96_1_2_2 2017-07-27 19:20:50 Kyotaro Horiguchi

Change version to 1.2.2

1.2.1 has an assertion failure bug raised by DECLARE CURSOR with
enabling table hint. Fixed it.

e59da6d 2017-07-27 19:20:42 Kyotaro Horiguchi

Fixed a crash bug by DECLARE CURSOR and enable_hint_table = on

The previous version causes assertion failure by DECLARE CURSOR syntax
when table hint is activated. The cause is that the version forgot the
fact that DelcareCursorStmt is in a bit strange shape. Add support of
DECLARE CURSOR and regression test for table hinting.

d9112d9 2017-07-27 19:20:31 Kyotaro Horiguchi

Make core.c to the right version.

core.c in 9e5b1753d00cb1071eb44570d3c7f9e18823ba67 seems to be
somewhat different version. Fixed it to right version.

7500037 REL96_1_2_1 2017-05-19 13:33:31 Kyotaro Horiguchi

Change version to 1.2.1

1.2.0 has a crash bug raised by queries in specific shape involving
complex views and/or SQL functions. Also it can crash when using
Parallel hint.

They are fixed in this version.

6e611f2 2017-05-19 11:12:14 Kyotaro Horiguchi

Fix a bug of target query retrieval

The previous patch leaves a bug that get_query_string returns a Query
that JumbleQuery doesn't accept. This fixes that bug.

89149ce 2017-05-18 19:51:48 Kyotaro Horiguchi

Fix a crash bug on complex views when enable_hint_table is on

The Query that planner receives sometimes irrelevant to
debug_query_string. If enable_hint_table is on, pg_hint_plan_planner
normalizes debug_query_string using query-jumble information created
from the irrelevant Query the can lead to crash. To avoid this
situation, retrieve hints in post_parse_analyze_hook, where
corresponding pairs of a query string and a parsed Query.

90e4bf1 2017-05-18 18:45:37 Kyotaro Horiguchi

Follow the behavioral change of parallel execution

The behavior of parallel planning is changed until 9.6.3, let
expected/ut-W.out to follow that.

ab89e33 2017-05-18 18:45:25 Kyotaro Horiguchi

Fix a bug of Parallel hint

During manipulation on pathlist of a GatherPath, foreach was mitakenly
used for a loop using list_delete_cell. This leads to a crash with

a5f9aa7 REL96_1_2_0 2017-02-21 09:34:20 Kyotaro Horiguchi

Provide upgrade path from 1.1.3

pg_hint_plan96-1.2.0 has an upgrade path from 1.1.3. This adds
requires installation sql file and puts pointers to the files in
Makefile and spec file. It is the only upgrade path of pg_hint_plan
1.2.0 since it works only on PG9.6 and versions earlier than 1.1.3
don't support PG9.6.

7dc46bf 2017-02-21 09:11:45 Kyotaro Horiguchi

Don't apply parallel hint on rels that planner considers unsafe.

pg_hint_plan considered had its own decision logic on whether
parallel-safe or not but it is dangerous and unnecessary. Just follow
planner's decision.

0073a06 2017-02-21 09:11:45 Kyotaro Horiguchi

Reconsider hinting process

I rethinked the steps of enforcement considering the parallel planning
code. pg_hint_plan_set_rel_pathlist() gets simpler and easier to read

As the result of this patch, some behaviors has been changed.

- False generation of gahter path caused by hinting on the other side
of joins.

- Scan hints work with Parallel hints. (It's useless for the moment,

7c0ace5 2017-02-21 09:11:44 Tatsuro Yamada

Fix a typo of documentation.

Author: Tatsuro Yamada <yamatattsu@gmail.com>

b5e8200 2017-02-21 09:11:44 Kyotaro Horiguchi

Don't set_plain_rel_pathlist for other than RTE_RELATION.

pg_hint_plan_set_rel_pathlist can call set_plain_rel_pathlist for
relations other than RTE_RELATION and this results in a crash.

1217a7c 2017-02-21 09:11:44 Kyotaro Horiguchi

Following a fix in PG9.6.1.

PG9.6.2 gets a fix on planning that affects on the result of
ut-S. ut-S follows that by this fix. As the result ut-S won't success
for 9.6.1 or ealier after this patch.

5da6c04 2017-02-21 09:11:44 Kyotaro Horiguchi

Fix parallel hint error handling.

Some kind of error of a parallel hint resulted confusing log
output. Addition to that, due to improper assumption of .conf file,
ordinary setup of max_worker_processes caused failure of ut-W. Fixed

3597f38 2017-02-21 09:11:44 Kyotaro Horiguchi

Refactor hint application mechamism next step

I removed useless code forgotten to be removed in
add_paths_to_joinrel_wrapper by the previous refactoring. Addition to
that, find_scan_method_hint and find_parallel_hint are found not to
require the third parameter rel, so removed it. Some inadequate tests
are fixed and changed according to change of unclear behaviors.

ee3d73e 2017-02-21 09:11:44 Kyotaro Horiguchi

Improve error handling of Parallel hint

Improve poor error report for Parallel hint.

071eb53 2017-02-21 09:11:44 Kyotaro Horiguchi

Fix wrongly lowering max_parallel_workers_per_gather

Number of parallel workers of non-hinted relations is wrongly forced
to be zero even if max_parallel_workers_per_gather is more than
zero. Non-hinted relations get to have max_parallel_workes_per_gather
as set by this fix.

4383fca 2017-02-21 09:11:44 Kyotaro Horiguchi

Refactor hint application mechamism

Before we have the new hook set_rel_pathlist_hook, plan enforcment is
performed in two steps, one works only for queries with one relation,
the other works only for joins. Now they are performed once and at
once in set_rel_pathlist_hook. As a byproduct of this refactoring,
index restriction no longer runs for indexes on constraint-excluded
relations and expected/ut-S.out changed a bit.

The major changes by this patch are the followings.

- Remove hook to get_relation_info_hook:
The function for the hook pg_hint_plan_get_relation_info is removed.

- pg_hint_plan_join_search no longer calls rebuild_scan_path. The
function and a copied function set_plain_rel_pathlist are removed.

- delete_indexes has been renamed to restrict_indexes, which
represents the functionality clearer. And the function was
refactored main for readablity.

- Added several regtests for parallel.

40e2860 2017-02-21 09:11:44 Kyotaro Horiguchi

Fix default_version of extension control file

default_version in pg_hint_plan.control was left unchanged on updating
version number. Fixed it.

477b358 2017-02-21 09:11:44 Kyotaro Horiguchi

Edit copyright year

79a51f8 2017-02-21 09:11:44 Kyotaro Horiguchi

Properly change the state of parallel hints.

The state member of parallel hint is forgotten to be chaned on usage.
This fixes it.

96bacb3 2017-02-21 09:11:44 Kyotaro Horiguchi

Rename some functions and refactor code.

Some functions had a bit confusing naming and inconvenient interfaces.
Renamed such functions and refactored the code.

3109b0d 2017-02-07 20:28:18 Kyotaro Horiguchi

Change version to 1.2.0.

Change version number to 1.2.0 and prepare RPM build envoronment.

d8c128a 2017-02-07 20:05:12 Kyotaro Horiguchi

Add description of Parallel hint to documentation

Addition to that, documents are refactored.

9e5b175 2017-02-07 20:03:13 Kyotaro Horiguchi

New hint "Parallel"

Added a new feature to control parallel query execution.