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 <n.kalinin@postgrespro.ru>
Analyzed-by: Tender Wang <tndrwang@gmail.com>
Analyzed-by: Ayush Tiwari <ayushtiwari.slg01@gmail.com>
Discussion: http://postgr.es/m/19493-5878eac7a2525c23@postgresql.org
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(-)