1
0
mirror of https://github.com/postgres/postgres.git synced 2025-05-28 05:21:27 +03:00

doc: clarify that jsonb_path_match() returns an SQL boolean

Not a JSON boolean.  Also clarify that other predicate check expressions
functions return a JSON boolean, not an SQL boolean.

Reported-by: jian he

Discussion: https://postgr.es/m/CACJufxH7tP1NXCHN1bUBXcEB=dv7-qE+ZjB3UxwK6Em+9Qzb9Q@mail.gmail.com

Backpatch-through: 17
This commit is contained in:
Bruce Momjian 2024-11-20 17:03:45 -05:00
parent fea81aee83
commit 7eff3138fc

View File

@ -17125,8 +17125,8 @@ ERROR: value too long for type character(2)
<returnvalue>boolean</returnvalue> <returnvalue>boolean</returnvalue>
</para> </para>
<para> <para>
Returns the result of a JSON path predicate check for the specified Returns the SQL boolean result of a JSON path predicate check
JSON value. for the specified JSON value.
(This is useful only (This is useful only
with <link linkend="functions-sqljson-check-expressions">predicate with <link linkend="functions-sqljson-check-expressions">predicate
check expressions</link>, not SQL-standard JSON path expressions, check expressions</link>, not SQL-standard JSON path expressions,
@ -17593,9 +17593,9 @@ SELECT '{
Boolean predicate, whereas the SQL standard allows predicates only within Boolean predicate, whereas the SQL standard allows predicates only within
filters. While SQL-standard path expressions return the relevant filters. While SQL-standard path expressions return the relevant
element(s) of the queried JSON value, predicate check expressions element(s) of the queried JSON value, predicate check expressions
return the single three-valued result of the return the single three-valued <type>jsonb</type> result of the
predicate: <literal>true</literal>, predicate: <literal>true</literal>,
<literal>false</literal>, or <literal>unknown</literal>. <literal>false</literal>, or <literal>null</literal>.
For example, we could write this SQL-standard filter expression: For example, we could write this SQL-standard filter expression:
<screen> <screen>
<prompt>=&gt;</prompt> <userinput>select jsonb_path_query(:'json', '$.track.segments ?(@[*].HR &gt; 130)');</userinput> <prompt>=&gt;</prompt> <userinput>select jsonb_path_query(:'json', '$.track.segments ?(@[*].HR &gt; 130)');</userinput>