]> granicus.if.org Git - postgresql/commitdiff
docs: clarify JSONB operator descriptions
authorBruce Momjian <bruce@momjian.us>
Wed, 7 Oct 2015 13:06:49 +0000 (09:06 -0400)
committerBruce Momjian <bruce@momjian.us>
Wed, 7 Oct 2015 13:06:49 +0000 (09:06 -0400)
No catalog bump as the catalog changes are for SQL operator comments.

Backpatch through 9.5

doc/src/sgml/func.sgml
doc/src/sgml/json.sgml
src/include/catalog/pg_operator.h

index f8d9e460937b3294880bb65327f6264085705c17..37e37672d428502f06d06f14e3abd8e55dc67e6f 100644 (file)
@@ -10333,32 +10333,36 @@ table2-mapping
        <row>
         <entry><literal>@&gt;</literal></entry>
         <entry><type>jsonb</type></entry>
-        <entry>Does the left JSON value contain within it the right value?</entry>
+        <entry>Does the left JSON value contain the right JSON
+        path/value entries at the top level?</entry>
         <entry><literal>'{"a":1, "b":2}'::jsonb &#64;&gt; '{"b":2}'::jsonb</literal></entry>
        </row>
        <row>
         <entry><literal>&lt;@</literal></entry>
         <entry><type>jsonb</type></entry>
-        <entry>Is the left JSON value contained within the right value?</entry>
+        <entry>Are the left JSON path/value entries contained at the top level within
+        the right JSON value?</entry>
         <entry><literal>'{"b":2}'::jsonb &lt;@ '{"a":1, "b":2}'::jsonb</literal></entry>
        </row>
        <row>
         <entry><literal>?</literal></entry>
         <entry><type>text</type></entry>
-        <entry>Does the key/element <emphasis>string</emphasis> exist within
-        the JSON value?</entry>
+        <entry>Does the <emphasis>string</emphasis> exist as a top-level
+        key within the JSON value?</entry>
         <entry><literal>'{"a":1, "b":2}'::jsonb ? 'b'</literal></entry>
        </row>
        <row>
         <entry><literal>?|</literal></entry>
         <entry><type>text[]</type></entry>
-        <entry>Do any of these key/element <emphasis>strings</emphasis> exist?</entry>
+        <entry>Do any of these array <emphasis>strings</emphasis>
+        exist as top-level keys?</entry>
         <entry><literal>'{"a":1, "b":2, "c":3}'::jsonb ?| array['b', 'c']</literal></entry>
        </row>
        <row>
         <entry><literal>?&amp;</literal></entry>
         <entry><type>text[]</type></entry>
-        <entry>Do all of these key/element <emphasis>strings</emphasis> exist?</entry>
+        <entry>Do all of these array <emphasis>strings</emphasis> exist
+        as top-level keys?</entry>
         <entry><literal>'["a", "b"]'::jsonb ?&amp; array['a', 'b']</literal></entry>
        </row>
        <row>
index 1e78558e27ac390a5669ba682996ab2035df0f20..b4b390b23eb150bf550f8d74f6bb90b9cf17a239 100644 (file)
@@ -369,8 +369,9 @@ SELECT '"foo"'::jsonb ? 'foo';
   </para>
   <para>
     The default GIN operator class for <type>jsonb</> supports queries with
-    the <literal>@&gt;</>, <literal>?</>, <literal>?&amp;</>
-    and <literal>?|</> operators.
+    top-level key-exists operators <literal>?</>, <literal>?&amp;</>
+    and <literal>?|</> operators and path/value-exists operator
+    <literal>@&gt;</>.
     (For details of the semantics that these operators
     implement, see <xref linkend="functions-jsonb-op-table">.)
     An example of creating an index with this operator class is:
index 26c9d4e4f7bd089a52b4c207af72de5920fd7a20..eec9c60c505a3ec8611872cf52fbff46bee3330b 100644 (file)
@@ -1806,11 +1806,11 @@ DESCR("greater than or equal");
 DATA(insert OID = 3246 (  "@>"    PGNSP PGUID b f f 3802 3802 16 3250 0 jsonb_contains contsel contjoinsel ));
 DESCR("contains");
 DATA(insert OID = 3247 (  "?"     PGNSP PGUID b f f 3802 25 16 0 0 jsonb_exists contsel contjoinsel ));
-DESCR("exists");
+DESCR("key exists");
 DATA(insert OID = 3248 (  "?|"    PGNSP PGUID b f f 3802 1009 16 0 0 jsonb_exists_any contsel contjoinsel ));
-DESCR("exists any");
+DESCR("any key exists");
 DATA(insert OID = 3249 (  "?&"    PGNSP PGUID b f f 3802 1009 16 0 0 jsonb_exists_all contsel contjoinsel ));
-DESCR("exists all");
+DESCR("all keys exist");
 DATA(insert OID = 3250 (  "<@"    PGNSP PGUID b f f 3802 3802 16 3246 0 jsonb_contained contsel contjoinsel ));
 DESCR("is contained by");
 DATA(insert OID = 3284 (  "||"    PGNSP PGUID b f f 3802 3802 3802 0 0 jsonb_concat - - ));