diff --git a/contrib/intarray/_int.sql.in b/contrib/intarray/_int.sql.in index 93930b559d501d3b228509c79a94b5f920962a0a..645e9aeea2d0f348239a04a06e2c245751b9744b 100644 --- a/contrib/intarray/_int.sql.in +++ b/contrib/intarray/_int.sql.in @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/contrib/intarray/_int.sql.in,v 1.30 2009/04/05 00:40:35 tgl Exp $ */ +/* $PostgreSQL: pgsql/contrib/intarray/_int.sql.in,v 1.31 2009/06/07 20:09:34 tgl Exp $ */ -- Adjust this setting to control where the objects get created. SET search_path = public; @@ -152,23 +152,23 @@ CREATE OPERATOR && ( -- JOIN = neqjoinsel --); ---CREATE OPERATOR @> ( --- LEFTARG = _int4, --- RIGHTARG = _int4, --- PROCEDURE = _int_contains, --- COMMUTATOR = '<@', --- RESTRICT = contsel, --- JOIN = contjoinsel ---); +CREATE OPERATOR @> ( + LEFTARG = _int4, + RIGHTARG = _int4, + PROCEDURE = _int_contains, + COMMUTATOR = '<@', + RESTRICT = contsel, + JOIN = contjoinsel +); ---CREATE OPERATOR <@ ( --- LEFTARG = _int4, --- RIGHTARG = _int4, --- PROCEDURE = _int_contained, --- COMMUTATOR = '@>', --- RESTRICT = contsel, --- JOIN = contjoinsel ---); +CREATE OPERATOR <@ ( + LEFTARG = _int4, + RIGHTARG = _int4, + PROCEDURE = _int_contained, + COMMUTATOR = '@>', + RESTRICT = contsel, + JOIN = contjoinsel +); -- obsolete: CREATE OPERATOR @ ( @@ -365,8 +365,8 @@ CREATE OPERATOR CLASS gist__int_ops DEFAULT FOR TYPE _int4 USING gist AS OPERATOR 3 &&, OPERATOR 6 = (anyarray, anyarray), - OPERATOR 7 @> (anyarray, anyarray), - OPERATOR 8 <@ (anyarray, anyarray), + OPERATOR 7 @>, + OPERATOR 8 <@, OPERATOR 13 @, OPERATOR 14 ~, OPERATOR 20 @@ (_int4, query_int), @@ -442,8 +442,8 @@ FOR TYPE _int4 USING gist AS OPERATOR 3 &&, OPERATOR 6 = (anyarray, anyarray), - OPERATOR 7 @> (anyarray, anyarray), - OPERATOR 8 <@ (anyarray, anyarray), + OPERATOR 7 @>, + OPERATOR 8 <@, OPERATOR 13 @, OPERATOR 14 ~, OPERATOR 20 @@ (_int4, query_int), @@ -473,8 +473,8 @@ FOR TYPE _int4 USING gin AS OPERATOR 3 &&, OPERATOR 6 = (anyarray, anyarray), - OPERATOR 7 @> (anyarray, anyarray), - OPERATOR 8 <@ (anyarray, anyarray), + OPERATOR 7 @>, + OPERATOR 8 <@, OPERATOR 13 @, OPERATOR 14 ~, OPERATOR 20 @@ (_int4, query_int), diff --git a/contrib/intarray/uninstall__int.sql b/contrib/intarray/uninstall__int.sql index 42721ed2fb09c80107d2b2230b83c4e628ec673e..ba962cd0d574dfac91a6b1395123db2df6628630 100644 --- a/contrib/intarray/uninstall__int.sql +++ b/contrib/intarray/uninstall__int.sql @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/contrib/intarray/uninstall__int.sql,v 1.11 2009/04/05 00:40:35 tgl Exp $ */ +/* $PostgreSQL: pgsql/contrib/intarray/uninstall__int.sql,v 1.12 2009/06/07 20:09:34 tgl Exp $ */ -- Adjust this setting to control where the objects get created. SET search_path = public; @@ -91,6 +91,10 @@ DROP FUNCTION icount(_int4); DROP FUNCTION intset(int4); +DROP OPERATOR <@ (_int4, _int4); + +DROP OPERATOR @> (_int4, _int4); + DROP OPERATOR ~ (_int4, _int4); DROP OPERATOR @ (_int4, _int4); diff --git a/doc/src/sgml/intarray.sgml b/doc/src/sgml/intarray.sgml index 2e77b57de3eea1f8f40c64cc79068504bfe1b390..9bd216ed49594dafc55d83e725dac7e768dc70ef 100644 --- a/doc/src/sgml/intarray.sgml +++ b/doc/src/sgml/intarray.sgml @@ -1,4 +1,4 @@ -<!-- $PostgreSQL: pgsql/doc/src/sgml/intarray.sgml,v 1.7 2009/04/05 00:40:35 tgl Exp $ --> +<!-- $PostgreSQL: pgsql/doc/src/sgml/intarray.sgml,v 1.8 2009/06/07 20:09:34 tgl Exp $ --> <sect1 id="intarray"> <title>intarray</title> @@ -134,12 +134,12 @@ <entry>overlap — <literal>true</> if arrays have at least one common element</entry> </row> <row> - <entry><literal>int[] @ int[]</literal></entry> + <entry><literal>int[] @> int[]</literal></entry> <entry><type>boolean</type></entry> <entry>contains — <literal>true</> if left array contains right array</entry> </row> <row> - <entry><literal>int[] ~ int[]</literal></entry> + <entry><literal>int[] <@ int[]</literal></entry> <entry><type>boolean</type></entry> <entry>contained — <literal>true</> if left array is contained in right array</entry> </row> @@ -203,13 +203,22 @@ </table> <para> - The containment operators <literal>@</> and <literal>~</> are functionally - equivalent to <productname>PostgreSQL</>'s built-in operators - <literal>@></> and <literal><@</>, respectively, except that - <literal>@</> and <literal>~</> work only on integer arrays. These - operator names are deprecated and will eventually be retired. (Notice that - these names are reversed from the convention formerly followed by the core - geometric datatypes!) + (Before PostgreSQL 8.2, the containment operators <literal>@></> and + <literal><@</> were respectively called <literal>@</> and <literal>~</>. + These names are still available, but are deprecated and will eventually be + retired. Notice that the old names are reversed from the convention + formerly followed by the core geometric datatypes!) + </para> + + <para> + The containment operators <literal>@></> and <literal><@</> are + approximately equivalent to <productname>PostgreSQL</>'s built-in operators + of the same names, except that they work only on integer arrays while the + built-in operators work for any array type. An important difference is + that <filename>intarray</>'s operators do not consider an empty array to be + contained in anything else. This is consistent with the behavior of + GIN-indexed queries, but not with the usual mathematical definition of + containment. </para> <para> @@ -230,10 +239,8 @@ <para> <filename>intarray</> provides index support for the - <literal>&&</>, <literal>@</>, <literal>~</>, - and <literal>@@</> operators, as well as regular array equality - and the built-in <literal>@></> and <literal><@</> operators - (when used on integer arrays). + <literal>&&</>, <literal>@></>, <literal><@</>, + and <literal>@@</> operators, as well as regular array equality. </para> <para> diff --git a/doc/src/sgml/release-8.4.sgml b/doc/src/sgml/release-8.4.sgml index a567afffb7d6ca1c2d25d79bbed23ca887be1f05..cca2d033b2c8f773762f2f96164cdf069fdf85d5 100644 --- a/doc/src/sgml/release-8.4.sgml +++ b/doc/src/sgml/release-8.4.sgml @@ -1,4 +1,4 @@ -<!-- $PostgreSQL: pgsql/doc/src/sgml/release-8.4.sgml,v 1.7 2009/05/27 22:12:53 tgl Exp $ --> +<!-- $PostgreSQL: pgsql/doc/src/sgml/release-8.4.sgml,v 1.8 2009/06/07 20:09:34 tgl Exp $ --> <!-- See header comment in release.sgml about typical markup --> <sect1 id="release-8-4"> @@ -3321,20 +3321,6 @@ </para> </listitem> - <listitem> - <para> - Remove <filename>contrib/intarray</>'s definitions of the - <literal><@</> and <literal>@></> operators (Tom) - </para> - - <para> - This avoids confusion with the equivalent built-in operators. - If needed, the <filename>contrib/intarray</> implementations - are still available under their historical names <literal>@</> - and <literal>~</>. - </para> - </listitem> - <listitem> <para> Make <filename>contrib/pg_standby</> recover all available WAL before