Re: BUG #19418: SQL/JSON JSON_VALUE() does not conform to ISO/IEC 9075-2:2023(E) 6.34 <JSON value constructor>

From: Richard Guo <guofenglinux(at)gmail(dot)com>
To: Amit Langote <amitlangote09(at)gmail(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Vik Fearing <vik(at)postgresfriends(dot)org>, lukas(dot)eder(at)gmail(dot)com, pgsql-bugs(at)lists(dot)postgresql(dot)org, Álvaro Herrera <alvherre(at)kurilemu(dot)de>
Subject: Re: BUG #19418: SQL/JSON JSON_VALUE() does not conform to ISO/IEC 9075-2:2023(E) 6.34 <JSON value constructor>
Date: 2026-04-21 00:57:34
Message-ID: CAMbWs49tDE_niKLr4mzsa2BkX7fkWrorBzWheKTBziZ7z9-AuQ@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Mon, Apr 20, 2026 at 6:05 PM Amit Langote <amitlangote09(at)gmail(dot)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

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Richard Guo 2026-04-21 01:12:55 Re: BUG #19418: SQL/JSON JSON_VALUE() does not conform to ISO/IEC 9075-2:2023(E) 6.34 <JSON value constructor>
Previous Message Richard Guo 2026-04-20 23:04:29 Re: BUG #19460: FULL JOIN rewriting issue on empty queries