• R/O
  • HTTP
  • SSH

pg_hint_plan: List of commits

firtst release

Rev. Time Author
9d0d4e2 master 2020-02-17 21:07:20 Kyotaro Horiguchi

Restore current hint state when returned from non-hinted query planning.

If no hint is given for the current level query, pg_hint_plan_planner
calls the next level of planner after erasing the
current_hint_state. But it forgot to restore the state before the
planning of the rest part of the current-level query. It is
(a-kind-of) broken by the commit d422966 but overlooked as an
inevitable side-effect of the fix. Get back the behavior by restoring
current_hint_state after returned from the lower level planner with
unhinted query.

Issue: https://github.com/ossc-db/pg_hint_plan/issues/30
Reported-by: higuchi-daisuke

7dcc96f 2020-02-17 16:55:02 Kyotaro Horiguchi

Use proper type for non-integer GUC options.

pg_hint_plan internally preserved numeric options into integer
variable regardless of their types, which leads to unintentional
change of the values. Handle double values in the proper way.

dd5ea96 2020-02-17 15:05:09 Kyotaro Horiguchi

Fix Rows hint parsing

This is a long standing bug that Rows hint with no parameter causees a
crash. Fixed the Rows hint parser.

de7600e 2020-02-17 13:43:13 Kyotaro Horiguchi

Give correct query location to generate_normalized_query.

There was a thinko about query_loc of generate_normalized_query which
causes a crash. For example a query is following a sequence of
semicolons (by \; in psql input) longer than the length after the last
placeholder to the end of the query, the function causes assertion
failure. Anyway prepared statements lose that value so we just pass 0
as the query_loc for consistent behavior.

ecf1a03 2020-02-14 16:44:28 Kyotaro Horiguchi

Fix behavior of nested planning

Issue: https://github.com/ossc-db/pg_hint_plan/issues/39

When planning is nested by function call, the hints in the function
should affect the corresponding query. Maybe 9599067 introduced
that. Fix the nested planning behavior.

0576a94 2020-02-14 13:00:01 Kyotaro Horiguchi

Fix crash bug caused by plancache invalidation


After plancache is invalidated then revaliated, get_query_string
accesses query_list of invalid plansource then crash. Ignore invalid
plancache and get the correct hint string and Query node at the next
planning time during revalidation.

On the way fixing this, a bug related to planner reentrance is
fixed. That fix causes behavioral change for nested
planning. Previously outer-level hint (wrongly) overrides inner-level
query but currenlty outer-level hint no longer affects inner-level

85e9782 2020-02-13 20:00:54 LittleWuCoding

Fix compiling error on Solaris

The 'LDFLAGS+=-Wl,--build-id' option is for rpm building in Linux like
OS. The SunOS is not native support the option
'LDFLAGS+=-Wl,--build-id' . So, we disable this option in SunOS while

Committed a bit tweaked version from the orignal.

bd5dcc3 2020-02-13 14:57:07 Kyotaro Horiguchi

Fix the previous commit.

The previous commit left a line to be removed. Remove it.

b920371 2020-02-13 14:53:38 Kyotaro Horiguchi

Do null-check of error_context_stack before use

The variable is accessed without null checking when planner is called
in the context of pl/pgsql. Fix it. Back-patched up to pg_hint_plan94.

Reporter: egashira-yusuke
Issue: https://github.com/ossc-db/pg_hint_plan/issues/42
Original-Author: sun-wei <30999182+Dagouhan@users.noreply.github.com>
Original-patch: https://github.com/ossc-db/pg_hint_plan/pull/45/commits/8fe092ef73a9af6cfb41e20717d7cb35aa74fce2

22a770c 2019-10-29 18:49:22 Kyotaro Horiguchi

Fix regression tests.

Fix regression tests to work for PG12.

96588f8 2019-10-29 18:47:17 Kyotaro Horiguchi

Follow the change in PG12.

Commit 428b260f87 breaks the prior assumptions by adding one more
planning cycle for updates on partitioned tables. Follow the change.

08e5c94 2019-10-29 18:24:38 Kyotaro Horiguchi

Update core.c based on PG12.0

The following commits changes the original functions in core.c as of
REL_12_0. Took in the changes.


c945c7b 2019-08-29 17:27:30 Jignesh Shah

Fix definition of is_dummy_rel based on changes in community

cf22a23 2019-08-29 16:57:23 LittleWuCoding

fix spelling mistakes in file pg_hint_plan.html

f1837d3 2019-08-29 16:12:58 Arthur Zakirov

Use ParallelHint in ParallelHintCreate()

6a58835 2019-03-08 13:58:52 Kyotaro Horiguchi

Silence some compilers

Some compilers seem to complain about the previous patch, that
prev_hint_str is used uninitialized. Actually it is not but move the
initialization code out of the PG_TRY() section so that such compilers
would be quiet.

000c325 2019-02-26 20:09:40 Kyotaro Horiguchi

Correctly handle planner nesting

pg_hint_plan assumed that plpgsql is the only source of nested planner
calls. Actually nested call can be made in any shapes. Most of the
cases doesn't harm but in a special case where pg_dbms_stats makes a
SPI call during query planning, that affects subsequent planner
work. Hints lose effect when pg_dbms_stats searches "locked
statistics" tables while planning the target query.

9.5 is not affected. Back patched back to 9.6.

8241ef0 2019-02-26 19:25:08 Kyotaro Horiguchi

Follow core's cobe/havor chages

Take in some changes took place in core code.

Commit 608b167f9f has largely changed the behavior around
CTE. Although I didn't confirmed that the all changes are valid as the
test for pg_hint_plan, just took in all plan differences.

2b86c66 2019-01-17 18:59:20 Kyotaro Horiguchi

Change version to 1.3.4.

Fixed a minor bug of 1.3.3.

63570f9 2019-01-17 18:32:57 Kyotaro Horiguchi

Fix condition to regenerate gather paths

Core has additional condition to determine whether to generate gather
paths and pg_hint_plan forgot it. Fix it.

92e779a 2019-01-17 17:14:19 Kyotaro Horiguchi

Change version to 1.3.3

Version bumped to 1.3.3. SPEC file is updated.

eaafe60 2019-01-17 17:14:19 Kyotaro Horiguchi

Fix reverse link of hint_list.html

pg_hint_plan.html and hint_list.html pointed to the Japanese version
of main document. Fixed it.

baa9589 2019-01-17 17:14:19 Kyotaro Horiguchi

Fix documentation.

Fixed wrong or stale descriptions, and poor or broken styles of
the documentation.

31b4a22 2019-01-17 17:14:19 Kyotaro Horiguchi

Include all pg_hint_plan--*.sql files in installation

make install didn't install upgrade scripts. Fix it.

b9a65e3 2019-01-17 17:14:19 Kyotaro Horiguchi

Change copyright year to 2019

948f066 2019-01-17 12:54:37 Kyotaro Horiguchi

Fix content of llvmjit package

The previous release is missing index.bc file and mislocating .bc file
in the llvmjit subpackage. The former is created at make install time
so use the standard make file to rpm-build.

c1c3c56 2019-01-17 12:52:56 Kyotaro Horiguchi

Catch up with the latest master

Some refactoring of header files and commits afb0d0712f and 1db5667bac
of core hit this. Catch up with them.

5f4e855 2019-01-09 09:35:41 Kyotaro Horiguchi

Call standrad_ProcessUtility when no hook is set

The last commit d5ec243 forgot the case of no previous hook function
in the ProcessUtility hook function. Fix it.

d5ec243 2019-01-07 19:08:30 Kyotaro Horiguchi

Support prepared statements on extended protocol

However pg_hint_plan doesn't fully consider the extended protocol,
commit c05bb31 accidentially broke the case where an analyzed prepared
statement is executed on extended protocol. This patch fixes that only
for the hints-in-comment case. Hint-table still doesn't work in the
case since query-normalization needs Query, which is not available in

000d836 2019-01-07 19:08:30 Kyotaro Horiguchi

Remove an useless variable

commit c05bb31 made the variable stmt_name useless. Remove it.

Show on old repository browser