• R/O
  • HTTP
  • SSH

pg_hint_plan: コミット一覧

firtst release

Rev. 日時 作者
c7888a1 master 2017-07-27 19:13:30 Kyotaro Horiguchi

Modify expected files.

At 10 beta2, planner seems to get some changes to affect plans used in
regression test. Tentatively modify it just to pass the regression.
Probably it is no problem but should be checked later.

b4c7cdf 2017-07-27 19:13:22 Kyotaro Horiguchi

Up to date with 10 beta 2

Make copied code to be up to date with the core as of 10 beta 2.

2a9e14e 2017-07-27 19:13:11 Kyotaro Horiguchi

Support DECLARE CURSOR syntax and added regression for table hinting.

Previous version forgets to treat DECLARE CURSOR. Added that.
Addition to that, regression test for table hinting is added.

f4e8b55 2017-06-06 20:07:39 Kyotaro Horiguchi

Support PostgreSQL 10 beta 1 step 2/2

Changed the logic to tweak parallel execution paths so that it handles
more wider (parallel index scans or gather merge, specifically) range
of parallel paths.

9382913 2017-06-06 20:04:59 Kyotaro Horiguchi

Support PostgreSQL 10 beta 1 step 1/2

The first half of the work to support PostgreSQL 10.

This just makes it can work with the version of PG. So partial index
paths are lost during Parallel hint processing. Regression tests are
heavily modified but most of them just comes from the change of
original planner behavior introduced at the point of Pg10.

d4f559d 2017-05-19 11:15:39 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.

c05bb31 2017-05-18 19:52:13 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.

3ea75ab 2017-05-18 10:40:48 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.

814d884 2017-05-18 10:28:49 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

d1a1695 2017-02-21 09:27:55 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.

e701eee 2017-02-16 19:08:54 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.

c43304d 2017-02-16 17:45:42 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,

c1bff87 2017-02-16 14:53:08 Tatsuro Yamada

Fix a typo of documentation.

Author: Tatsuro Yamada <yamatattsu@gmail.com>

beb6067 2017-02-13 17:01:49 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.

e787aad 2017-02-13 16:56: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.

cf64044 2017-02-13 16:52:45 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

5a72d7c 2017-02-10 17:19:43 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.

06593e2 2017-02-10 17:02:50 Kyotaro Horiguchi

Improve error handling of Parallel hint

Improve poor error report for Parallel hint.

c3e0e61 2017-02-10 17:02:40 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.

a5663e6 2017-02-09 10:50:29 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.

d7880eb 2017-02-09 09:07:14 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.

5e3cd05 2017-02-09 09:06:28 Kyotaro Horiguchi

Edit copyright year

f35596a 2017-02-08 10:41:40 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.

323db30 2017-02-08 10:41:40 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.

6771112 2017-02-07 20:46:56 Kyotaro Horiguchi

Change version to 1.2.0.

Change version number to 1.2.0 and prepare RPM build envoronment.

1194ef8 2017-02-07 20:46:56 Kyotaro Horiguchi

Add description of Parallel hint to documentation

Addition to that, documents are refactored.

5268ad9 2017-02-07 20:46:56 Kyotaro Horiguchi

New hint "Parallel"

Added a new feature to control parallel query execution.

be1a756 2017-02-07 12:55:54 Kyotaro Horiguchi

Rename current_hint to current_hint_state

The name current_hint is quite confusing so change the name to less
confusing one.

124a6be 2017-02-06 15:18:08 Kyotaro Horiguchi

Fix some syntax and comments.

Some following comma for the last element in enum definition and
incorrect comments are fixed.

46f2ada REL96_1_1_3 2016-09-05 18:12:50 Kyotaro Horiguchi

Remove an unnecessary Makefile entry for tar file

Remove mistakenly copy'n-pasted description from outside in Makefile.