Re: BUG #19418: SQL/JSON JSON_VALUE() does not conform to ISO/IEC 9075-2:2023(E) 6.34 <JSON value constructor>
Richard Guo <guofenglinux@gmail.com>
From: Richard Guo <guofenglinux@gmail.com>
To: Amit Langote <amitlangote09@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Vik Fearing <vik@postgresfriends.org>, lukas.eder@gmail.com, pgsql-bugs@lists.postgresql.org, Álvaro Herrera <alvherre@kurilemu.de>
Date: 2026-04-21T00:57:34Z
Lists: pgsql-bugs
On Mon, Apr 20, 2026 at 6:05 PM Amit Langote <amitlangote09@gmail.com> wrote:
> Agreed that v4 is the better direction.
Thanks for review!
> The comment on orig_query could say "not walked" a bit more helpfully, e.g.
>
> Node *orig_query; /* for deparse only; not walked (func is) */
Sounds good.
> I also noticed that the comment for 'func' is incomplete as it is and
> this change warrants an update. Maybe a bit long, but how about:
>
> Expr *func; /* expression producing the result:
> * Aggref/WindowFunc for *AGG,
> * CoalesceExpr for ARRAY_QUERY,
> * json[b]_xxx() call for remaining types */
It seems that func is NULL for "remaining types". How about we go
with:
Expr *func; /* executable expression:
* Aggref/WindowFunc for *AGG,
* CoalesceExpr for ARRAY_QUERY,
* NULL for other types (executor calls
* underlying json[b]_xxx() functions) */
(maybe we should place the multi-line comment above the field.)
- Richard
Commits
-
Enforce RETURNING typmod for empty-set JSON_ARRAY(query)
- 9d124a14b3d4 19 (unreleased) landed
-
Fix JSON_ARRAY(query) empty set handling and view deparsing
- 8d829f5a0203 19 (unreleased) landed