• R/O
  • HTTP
  • SSH
  • HTTPS

pg_hint_plan: List of commits

firtst release


RSS
修訂. 時間 作者
353c365 PG10 2022-03-09 12:18:44 Kyotaro Horiguchi

Ignore non-existent prepared statement in get_query_string.

CREATE FUNCTION of SQL function uses post_parse_analyze_hook during
validation. If the function contained EXECUTE <prepared statement>,
not only that statement may be nonexistent, but also there's no need
of the query string at that point.

Since execution of nonexistent prepared statement ends with failure
sooner or later, we can safely ignore that.

Backpatch to pg_hint_plan10 that are before the core's EOL.

904a4fc PG11 2022-03-09 12:18:23 Kyotaro Horiguchi

Ignore non-existent prepared statement in get_query_string.

CREATE FUNCTION of SQL function uses post_parse_analyze_hook during
validation. If the function contained EXECUTE <prepared statement>,
not only that statement may be nonexistent, but also there's no need
of the query string at that point.

Since execution of nonexistent prepared statement ends with failure
sooner or later, we can safely ignore that.

Backpatch to pg_hint_plan10 that are before the core's EOL.

2d5b8cd PG12 2022-03-09 12:18:04 Kyotaro Horiguchi

Ignore non-existent prepared statement in get_query_string.

CREATE FUNCTION of SQL function uses post_parse_analyze_hook during
validation. If the function contained EXECUTE <prepared statement>,
not only that statement may be nonexistent, but also there's no need
of the query string at that point.

Since execution of nonexistent prepared statement ends with failure
sooner or later, we can safely ignore that.

Backpatch to pg_hint_plan10 that are before the core's EOL.

041f948 PG13 2022-03-09 12:15:54 Kyotaro Horiguchi

Ignore non-existent prepared statement in get_query_string.

CREATE FUNCTION of SQL function uses post_parse_analyze_hook during
validation. If the function contained EXECUTE <prepared statement>,
not only that statement may be nonexistent, but also there's no need
of the query string at that point.

Since execution of nonexistent prepared statement ends with failure
sooner or later, we can safely ignore that.

Backpatch to pg_hint_plan10 that are before the core's EOL.

501fdfc master REL14_1_4_0 2022-01-19 15:12:22 Kyotaro Horiguchi

Add forgotten test files

9e2f8b6 forgot to contain the .sql and expected/.out files for
hints_anywhere feature. Add them.

7d53b12 2022-01-19 14:56:23 Kyotaro Horiguchi

Fix debug level check in restrict_indexes

The debug logging code blocks in the function are inconsistent about
debug level. Fix the conditions so that they work for the same debug
levels.

c23bb6a 2022-01-19 12:59:59 Kyotaro Horiguchi

Fix SEGV caused by duplicate memoize hints

HintTypeName was missing the item for the Memoize hint. This causes
SEGV or "(null)" printing by printf on erroring of duplicate memoize
hints.

Add the missing item and a static assertion to check the same kind of
fault.

Reported by ShangBenX <https://github.com/ShangBenX>

e6a9004 2022-01-19 11:37:57 褚华兴

Properly free all elements in a list

HintStateDelete tried to free the elements of hstate->all_hints[] but
actually it only freed part of them. Correct the code as it intended.

Some other palloced blocks are being hanged under the struct but we
don't bother trying to be perfect at cleaning up the whole struct
since it will be freed up at query end.

e771aa6 2022-01-19 10:37:00 Kyotaro Horiguchi

Fix many typos in doc

Many misspellings were left alone in the documentation. Rechecked the
whole documentation and fixed the misspellings.

Reported-by: qianglingjie <86580516+qianglingjie@users.noreply.github.com>

b28fc4a 2022-01-19 10:16:27 Maxim Orlov

Use standard way of deleteing list cell

When the list implementation was changed, pg_hint_plan followed that
change by modifying existing use-side code. Use instead
foreach_delete_current, which is the standard provided API to do the
same.

9e2f8b6 2022-01-18 17:40:35 Daniil Anisimov

Allow hints to be placed anywhere in query

Hints description is restriected to be placed before certain
characters. That is effectively at the beginning of a query, or after
EXPLAIN or PREPARE. This commit adds a new setting parameter
pg_hint_plan.hints_anywhere, which gets rid of that restriction. When
it is on, pg_hint_plan ignores SQL syntax at all while reading hints
so there's no restricion on where hint string is placed in a query
string. On the other hand it may lead to false reads from a non-hint
strings.

e5e2b19 2022-01-18 16:24:50 Alex Rattray

Create README.md

Add standard README.md file. This file is a simple conversion from
existing document as a starter.

e9e564a 2022-01-18 16:20:42 fengzh

Add LD option --build-id only at RPM-build time

That option harms not only SunOS but also BSDs. It is required by
rpmbuild so it is sensible to move the option from Makefile to SPEC
file.

0a27fc8 2022-01-18 16:03:03 mikecaat

Fix behavior for pg_hint_plan.debug_print

It was a kind of broken that some debug code paths are never visited
or that higher debug_level doesn't offer detailed messages.
Fix some debug messages' debug_level condition so that we can see the
proper messages for every debug_level.

687ced2 2022-01-18 15:45:40 Kyotaro Horiguchi

Fix versions and copyright year of doc

1218a26 2022-01-18 15:43:26 Kyotaro Horiguchi

[DOC] Fix default value for pg_hint_plan.message_level

The actual default value for the variable is LOG so that the messages
are emitted to server log. Fix the documentation.

Per the report from jianggq@cn.fujitsu.com.

857297a 2022-01-18 15:13:20 Robert Treat

Light-Weight spelling and grammar fixes

Fix some fixes of spelling and grammar in the doc.

cde640f 2022-01-14 17:51:08 Kyotaro Horiguchi

Followup change to support PG14

One improvement and on fix.

Ressurect post_parse_analysys_hook function to avoid redandunt
computation of jumble state if it is generated in-core.

Properly handle the case where compute_query_id is turned off while
pg_hint_plan.enable_hint_talbe is on. This operation lead to a crash.

d7296d7 2021-11-05 13:17:10 Tatsuro Yamada

Update copyright year of files

437a4fa 2021-10-06 11:57:29 Kyotaro Horiguchi

Allow run make check of PostgreSQL with loading pg_hint.plan

Automatically switch environment when pg_hint_plan is installed as a
part of "make check" of PostgreSQL. That test is executed with the
following command line in the top directory of PostgreSQL tree.

make check EXTRA_INSTALL=<this directory> EXTRA_REGRESS_OPTS="--temp-config <this directory>/pg_hint_plan.conf"

make check-world fails for test that requires extra modules.

3d8c7b8 2021-10-06 11:57:29 Kyotaro Horiguchi

Support "Memoize" Hint.

PostgreSQL 14 introduced the new optimization item "memoize", which
allows a join to memoize the inner result. Add a hint to control this
feature.

454f72a 2021-10-06 11:56:12 Kyotaro Horiguchi

Support PostgreSQL 14

In PostgreSQL 14, planner was restructured in regard to query string
passing. This change allows us to remove fair amount of lines and
complexity that had been added as a struggle for retrieving proper
query string.

Two callbacks, post_parse_analyze_hook and ProcessUtility_hook are no
longer used. get_query_string is removed altogether. Also
current_hint_retrieved juggling, which was complex and fragile,
disappears. Now pg_hint_plan_planner alone can retrieve hint string by
looking into the given string.

In PostgreSQL 14, a new optimization item "memoize" is added. It is
not handled in this commit and leave it for a later commit.

a60dec0 2020-10-29 21:20:30 Kyotaro Horiguchi

Fix bogus upgrade scripts.

306be8a 2020-10-29 21:20:30 Kyotaro Horiguchi

Update core.c and make_join_rel.c.

From this version core.c and make_join_rel.c are automatically
generated from core code. Adjust them to auto-generated content.

beb6a85 2020-10-29 21:20:30 Kyotaro Horiguchi

New tool to generate source files for copied functions

Previously core.c and make_join_rel.c are maintained by hand. This
tool generates the files from corresponding core source files.

c3634a9 2020-10-29 21:19:38 Kyotaro Horiguchi

Follow a behavioral change in core.

Commit e22e29c258 has changed the core's behavior of naming indexes.
Follow the changes. This is regression-result changes only.

a797bcf REL11_1_3_7 2020-10-29 21:12:16 Kyotaro Horiguchi

Change version to 1.3.7.

Fixed bogus upgrade scripts on the way changing version.

0fe2760 2020-10-29 21:12:16 Kyotaro Horiguchi

Make HashJoin hint more coercive.

Even with HashJoin hint, hash joins may be rejected by planner if hash
table for the inner-rel is estimated too large. Make HashJoin hint
more coercive by temporarily increasing work_mem. This change affects
only join-searching so no significant side-effects are expected.

01adeac 2020-10-29 21:12:16 Kyotaro Horiguchi

Fix tested OS version to CentOS 8.2

e600d83 2020-10-29 21:12:16 Kyotaro Horiguchi

Change copyright year of docs to 2020

Show on old repository browser