Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit216bcf5

Browse files
committed
Doc: clarify handling of duplicate elements in array containment tests.
The array <@ and @> operators do not worry about duplicates: if everymember of array X matches some element of array Y, then X is containedin Y, even if several members of X get matched to the same Y member.This was not explicitly stated in the docs though, so improve matters.Discussion:https://postgr.es/m/156614120484.1310.310161642239149585@wrigleys.postgresql.org
1 parenta25fb9c commit216bcf5

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed

‎doc/src/sgml/func.sgml

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14004,14 +14004,14 @@ SELECT NULLIF(value, '(none)') ...
1400414004
<row>
1400514005
<entry> <literal>@&gt;</literal> </entry>
1400614006
<entry>contains</entry>
14007-
<entry><literal>ARRAY[1,4,3] @&gt; ARRAY[3,1]</literal></entry>
14007+
<entry><literal>ARRAY[1,4,3] @&gt; ARRAY[3,1,3]</literal></entry>
1400814008
<entry><literal>t</literal></entry>
1400914009
</row>
1401014010

1401114011
<row>
1401214012
<entry> <literal>&lt;@</literal> </entry>
1401314013
<entry>is contained by</entry>
14014-
<entry><literal>ARRAY[2,7] &lt;@ ARRAY[1,7,4,2,6]</literal></entry>
14014+
<entry><literal>ARRAY[2,2,7] &lt;@ ARRAY[1,7,4,2,6]</literal></entry>
1401514015
<entry><literal>t</literal></entry>
1401614016
</row>
1401714017

@@ -14054,8 +14054,10 @@ SELECT NULLIF(value, '(none)') ...
1405414054
</table>
1405514055

1405614056
<para>
14057-
Array comparisons compare the array contents element-by-element,
14058-
using the default B-tree comparison function for the element data type.
14057+
The array ordering operators (<literal>&lt;</literal>,
14058+
<literal>&gt;=</literal>, etc) compare the array contents
14059+
element-by-element, using the default B-tree comparison function for
14060+
the element data type, and sort based on the first difference.
1405914061
In multidimensional arrays the elements are visited in row-major order
1406014062
(last subscript varies most rapidly).
1406114063
If the contents of two arrays are equal but the dimensionality is
@@ -14066,6 +14068,15 @@ SELECT NULLIF(value, '(none)') ...
1406614068
number of dimensions or subscript ranges were different.)
1406714069
</para>
1406814070

14071+
<para>
14072+
The array containment operators (<literal>&lt;@</literal>
14073+
and <literal>@&gt;</literal>) consider one array to be contained in
14074+
another one if each of its elements appears in the other one.
14075+
Duplicates are not treated specially, thus <literal>ARRAY[1]</literal>
14076+
and <literal>ARRAY[1,1]</literal> are each considered to contain the
14077+
other.
14078+
</para>
14079+
1406914080
<para>
1407014081
See <xref linkend="arrays"/> for more details about array operator
1407114082
behavior. See <xref linkend="indexes-types"/> for more details about
@@ -18223,7 +18234,7 @@ SELECT has_function_privilege('joeuser', 'myfunc(int, text)', 'execute');
1822318234
<row>
1822418235
<entry> <literal>@&gt;</literal> </entry>
1822518236
<entry>contains element</entry>
18226-
<entry><literal>'{calvin=r*w/hobbes,hobbes=r*w*/postgres}'::aclitem[] @> 'calvin=r*w/hobbes'::aclitem</literal></entry>
18237+
<entry><literal>'{calvin=r*w/hobbes,hobbes=r*w*/postgres}'::aclitem[] @&gt; 'calvin=r*w/hobbes'::aclitem</literal></entry>
1822718238
<entry><literal>t</literal></entry>
1822818239
</row>
1822918240

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp