pg_plan_advice: DO_NOT_SCAN is a simple tag, not a generic one.

Generic tags allow sublists, e.g. MERGE_JOIN((x y)), but simple
tags do not, e.g. SEQ_SCAN(x) is valid but SEQ_SCAN((x)) is not.
DO_NOT_SCAN was intended to be simple tag, but was accidentally
implemented as a generic one. This could result in assertion
failures. Repair.

Reported-by: Nikita Kalinin <[email protected]>
Analyzed-by: Tender Wang <[email protected]>
Analyzed-by: Ayush Tiwari <[email protected]>
Discussion: http://postgr.es/m/[email protected]

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/b1901e2895e08f57a5fedfd27375babd6c633893

Modified Files
--------------
contrib/pg_plan_advice/expected/syntax.out | 3 +++
contrib/pg_plan_advice/pgpa_parser.y       | 2 ++
contrib/pg_plan_advice/pgpa_scanner.l      | 3 ++-
contrib/pg_plan_advice/sql/syntax.sql      | 1 +
4 files changed, 8 insertions(+), 1 deletion(-)

Reply via email to