public inbox for [email protected]  
help / color / mirror / Atom feed
From: Amit Langote <[email protected]>
To: jian he <[email protected]>
Cc: Vik Fearing <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: PG Bug reporting form <[email protected]>
Subject: Re: BUG #19418: SQL/JSON JSON_VALUE() does not conform to ISO/IEC 9075-2:2023(E) 6.34 <JSON value constructor>
Date: Mon, 20 Apr 2026 17:29:00 +0900
Message-ID: <CA+HiwqE1Co392qux47+DK31_HQMF9c-g1To+u1hxSOKwjzEN9g@mail.gmail.com> (raw)
In-Reply-To: <CACJufxFRtto3WCDLusTsWQZqSdBqc9_LEuA_3S4sjfU_-U7ROw@mail.gmail.com>
References: <[email protected]>
	<[email protected]>
	<CACJufxFRtto3WCDLusTsWQZqSdBqc9_LEuA_3S4sjfU_-U7ROw@mail.gmail.com>

On Tue, Mar 3, 2026 at 11:42 AM jian he <[email protected]> wrote:
> On Thu, Feb 26, 2026 at 10:20 PM Vik Fearing <[email protected]> wrote:
> > > Try this:
> > >
> > >    select json_array(select 1 where false);
> > >
> > > It produces NULL, not []
> >
> >
> > I can confirm that postgres violates the standard here.
> >
> > --
>
> Since the subject title mentioned JSON_VALUE.
>
> SELECT JSON_VALUE(((select NULL where false)), '$');
> SELECT JSON_QUERY(((select NULL where false)), '$');
> SELECT JSON_EXISTS(((select NULL where false)), '$');
>
> Should the above produce []?

AFAIK about the standard, no. The empty-set -> '[]' rule is specific
to JSON_ARRAY(<query>), whose job is to collect rows into an array.
JSON_VALUE, JSON_QUERY, and JSON_EXISTS return a scalar, a JSON value,
and a boolean, respectively, not array-shaped values, so there's no
empty-array concept to invoke; empty-input behavior is governed by ON
EMPTY / ON ERROR.

-- 
Thanks, Amit Langote






reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]
  Subject: Re: BUG #19418: SQL/JSON JSON_VALUE() does not conform to ISO/IEC 9075-2:2023(E) 6.34 <JSON value constructor>
  In-Reply-To: <CA+HiwqE1Co392qux47+DK31_HQMF9c-g1To+u1hxSOKwjzEN9g@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox