On Thu, Oct 17, 2024 at 9:59 PM Bruce Momjian <br...@momjian.us> wrote:
>
>
> > > > >> the predicate: true, false, or unknown."
> > > > >> "unknown" is wrong, because `select 'unknown'::jsonb;` will fail.
> > > > >> here "unknown" should be "null"? see jsonb_path_query doc entry also.
> > > > >>
> >
> > doc 
> > (https://www.postgresql.org/docs/devel/functions-json.html#FUNCTIONS-SQLJSON-CHECK-EXPRESSIONS)
> > <<QUOTE>>
> > While SQL-standard path expressions return the relevant element(s) of
> > the queried JSON value, predicate check expressions return the single
> > three-valued result of the predicate: true, false, or unknown.
> > <<END OF QUOTE>>
> >
> > https://www.postgresql.org/docs/current/datatype-boolean.html
> > says
> > "The boolean type can have several states: “true”, “false”, and a
> > third state, “unknown”, which is represented by the SQL null value."
> >
> > but here
> > select jsonb_path_query('1', '$ == "a"');
> > return JSON null value, not SQL null value.
> >
> > however.
> > select jsonb_path_match('1', '$ == "a"');
> > return SQL null value.
> >
> >
> > maybe we can change to
> > "predicate check expressions return the single three-valued result of
> > the predicate: true, false, or null"
>
> Yes, done in the attached patch.
>

-     <literal>false</literal>, or <literal>unknown</literal>.
+     <literal>false</literal>, or <literal>NULL</literal>.

nearby are all examples related to  jsonb_path_query.
As mentioned before, jsonb_path_query returns JSON null.
so change to
+     <literal>false</literal>, or <literal>null</literal>
would be better.

since we can select 'null'::jsonb;
but cannot
select 'NULL'::jsonb;


Reply via email to