Re: ​jsonb @@ jsonpath operator doc: ​Only the first item of the result is taken into account

From: Erik Wienhold <ewie(at)ewie(dot)name>
To: jian he <jian(dot)universality(at)gmail(dot)com>
Cc: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>, pgsql-general list <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: ​jsonb @@ jsonpath operator doc: ​Only the first item of the result is taken into account
Date: 2023-04-04 09:01:46
Message-ID: 880194083.579916.1680598906819@office.mailbox.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

> On 04/04/2023 03:50 CEST jian he <jian(dot)universality(at)gmail(dot)com> wrote:
>
> > "Returns true if any JSON value at the given path matches the predicate.
> > Returns NULL when not a path predicate or comparing different types."
>
> in first sentence, should we add something "otherwise return false." ?

I omitted the "otherwise false" part because of the corner cases which I did
not want to gloss over. But the corner cases also apply if the predicate
matches some value, depending on strict mode, as I noticed later and wrote in
my previous message.

Suggestion:

"Returns true if any JSON value at the given path matches the predicate,
otherwise returns false. Unless the predicate compares different types
(depending on strict mode) or the jsonpath is not a path predicate, in
which case NULL is returned."

I guess it's best to document the corner cases in detail in the notes section
as Adrian pointed out and have the function doc refer to the notes.

> also, should it be "Return true"? (since only one value returned)?

The third-person singular "returns" is correct in this case. It does not refer
to the number of returned values.

--
Erik

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Dominique Devienne 2023-04-04 09:03:55 Re: DEFINER / INVOKER conundrum
Previous Message Erik Wienhold 2023-04-04 08:46:49 Re: DEFINER / INVOKER conundrum