| From: | Amit Langote <amitlan(at)postgresql(dot)org> |
|---|---|
| To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
| Subject: | pgsql: Fix JSON_TABLE with sublinks in PASSING arguments |
| Date: | 2026-10-29 01:39:15 |
| Message-ID: | E1xMF6p-00000001BpU-2xhZ@gemulon.postgresql.org |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-committers |
Fix JSON_TABLE with sublinks in PASSING arguments
transformJsonTable() handed the raw PASSING argument list both to the
JsonFuncExpr built for the row pattern and, via
transformJsonTableColumn(), to the JsonFuncExpr built for each column
other than FOR ORDINALITY, so the same raw expressions were run through
transformExpr() once for the row pattern and again for every such
column. That doesn't work for sublinks: transformSubLink() replaces
the SubLink's raw subselect with the analyzed Query, so the second
pass failed with "unexpected non-SELECT command in SubLink". Other
nodes that are transformed in place, such as NullTest, failed with
"unrecognized node type". Any such PASSING argument therefore made
JSON_TABLE fail unless all of its columns were FOR ORDINALITY.
Fix by giving each transformation its own copy of the raw PASSING
arguments.
Bug: #19786
Reported-by: Alperen Keles <alpkeles99(at)gmail(dot)com>
Author: Ayush Tiwari <ayushtiwari(dot)slg01(at)gmail(dot)com>
Co-authored-by: Amit Langote <amitlangote09(at)gmail(dot)com>
Discussion: https://postgr.es/m/19786-70758103a4b2bff2@postgresql.org
Backpatch-through: 17
Branch
------
REL_17_STABLE
Details
-------
https://git.postgresql.org/pg/commitdiff/8793978e30accc730b31f6557afb2c8469e48250
Modified Files
--------------
src/backend/parser/parse_jsontable.c | 11 +++-
src/test/regress/expected/sqljson_jsontable.out | 80 +++++++++++++++++++++++++
src/test/regress/sql/sqljson_jsontable.sql | 49 +++++++++++++++
3 files changed, 138 insertions(+), 2 deletions(-)
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Amit Langote | 2026-10-29 01:39:29 | pgsql: Fix JSON_TABLE with sublinks in PASSING arguments |
| Previous Message | Amit Langote | 2026-10-29 01:01:58 | pgsql: SQL/JSON: fix error handling when coercing to a domain fails sof |