Remove SQL-compatibility function cardinality(). It is not exactly clear
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 9 Apr 2009 17:39:50 +0000 (17:39 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 9 Apr 2009 17:39:50 +0000 (17:39 +0000)
how this ought to behave for multi-dimensional arrays.  Per discussion,
not having it at all seems better than having it with what might prove
to be the wrong behavior.  We can always add it later when we have consensus
on the correct behavior.

doc/src/sgml/func.sgml
doc/src/sgml/release.sgml
src/backend/utils/adt/arrayfuncs.c
src/include/catalog/catversion.h
src/include/catalog/pg_proc.h
src/include/utils/array.h
src/test/regress/expected/arrays.out
src/test/regress/sql/arrays.sql

index 3075d510bcf1ce30f51a323a363b112d51ca47fb..67a69561c5a3f4036889032488107616285c4bc1 100644 (file)
@@ -9368,9 +9368,6 @@ SELECT NULLIF(value, '(none)') ...
  <indexterm>
     <primary>array_upper</primary>
   </indexterm>
-  <indexterm>
-    <primary>cardinality</primary>
-  </indexterm>
   <indexterm>
     <primary>string_to_array</primary>
   </indexterm>
@@ -9503,19 +9500,6 @@ SELECT NULLIF(value, '(none)') ...
         <entry><literal>array_upper(ARRAY[1,2,3,4], 1)</literal></entry>
         <entry><literal>4</literal></entry>
        </row>
-       <row>
-        <entry>
-         <literal>
-          <function>cardinality</function>(<type>anyarray</type>)
-         </literal>
-        </entry>
-        <entry><type>int</type></entry>
-        <entry>returns the length of the first dimension of the array
-        (special case of <function>array_length</function> for SQL
-        compatibility)</entry>
-        <entry><literal>cardinality(array[1,2,3])</literal></entry>
-        <entry><literal>3</literal></entry>
-       </row>
        <row>
         <entry>
          <literal>
index 6102d91953785640f3820b321e196f8a2824b91f..180a55873f43a6c8176e44e1d4ea29c3492523bf 100644 (file)
@@ -1624,11 +1624,6 @@ do it for earlier branch release files.
         of an array for the specified dimensions (Jim Nasby, Robert
         Haas, Peter Eisentraut)
        </para>
-
-       <para>
-        Also add identically-functioning <acronym>SQL</>-standard
-        function <function>cardinality()</>.
-       </para>
       </listitem>
 
       <listitem>
index b94eae228f95e4aff6b192d95d42854c3be4ec02..85f860a32a1e0097cf302f8a6d2ee94a2448c980 100644 (file)
@@ -1668,28 +1668,6 @@ array_length(PG_FUNCTION_ARGS)
        PG_RETURN_INT32(result);
 }
 
-/*
- * array_cardinality :
- *             SQL-spec alias for array_length(v, 1)
- */
-Datum
-array_cardinality(PG_FUNCTION_ARGS)
-{
-       ArrayType  *v = PG_GETARG_ARRAYTYPE_P(0);
-       int                *dimv;
-       int                     result;
-
-       /* Sanity check: does it look like an array at all? */
-       if (ARR_NDIM(v) <= 0 || ARR_NDIM(v) > MAXDIM)
-               PG_RETURN_NULL();
-
-       dimv = ARR_DIMS(v);
-
-       result = dimv[0];
-
-       PG_RETURN_INT32(result);
-}
-
 /*
  * array_ref :
  *       This routine takes an array pointer and a subscript array and returns
index cd9f52bc5af26c318957b82db4e8c160a8675824..9a3304bde317533e832a81be1a76a6f5ea466fe3 100644 (file)
@@ -53,6 +53,6 @@
  */
 
 /*                                                     yyyymmddN */
-#define CATALOG_VERSION_NO     200904061
+#define CATALOG_VERSION_NO     200904091
 
 #endif
index 28d3a5280451dce6a4aa95078b248b76652f2d59..b6127e1a5c006de3a07c1ca56b78ad2eae84f7ce 100644 (file)
@@ -1005,8 +1005,6 @@ DATA(insert OID = 2092 (  array_upper        PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23
 DESCR("array upper dimension");
 DATA(insert OID = 2176 (  array_length     PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "2277 23" _null_ _null_ _null_ _null_ array_length _null_ _null_ _null_ ));
 DESCR("array length");
-DATA(insert OID = 2179 (  cardinality      PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "2277" _null_ _null_ _null_ _null_ array_cardinality _null_ _null_ _null_ ));
-DESCR("array cardinality");
 DATA(insert OID = 378 (  array_append     PGNSP PGUID 12 1 0 0 f f f f f i 2 0 2277 "2277 2283" _null_ _null_ _null_ _null_ array_push _null_ _null_ _null_ ));
 DESCR("append element onto end of array");
 DATA(insert OID = 379 (  array_prepend    PGNSP PGUID 12 1 0 0 f f f f f i 2 0 2277 "2283 2277" _null_ _null_ _null_ _null_ array_push _null_ _null_ _null_ ));
index d49c5f3ef395b20e2ae3972b69c93523b9c605ae..24f8f32b65d74289b9dcd0a8a33b5e4604d667a3 100644 (file)
@@ -200,7 +200,6 @@ extern Datum array_dims(PG_FUNCTION_ARGS);
 extern Datum array_lower(PG_FUNCTION_ARGS);
 extern Datum array_upper(PG_FUNCTION_ARGS);
 extern Datum array_length(PG_FUNCTION_ARGS);
-extern Datum array_cardinality(PG_FUNCTION_ARGS);
 extern Datum array_larger(PG_FUNCTION_ARGS);
 extern Datum array_smaller(PG_FUNCTION_ARGS);
 extern Datum generate_subscripts(PG_FUNCTION_ARGS);
index ec2fd52c7f82d45caf402ede832ab81d991b3212..c7ddc2d7aa5eb8365f53ba463dde168e5e22a1d7 100644 (file)
@@ -1105,26 +1105,6 @@ select array_length(array[[1,2,3], [4,5,6]], 3);
              
 (1 row)
 
-select cardinality(array[1,2,3]);
- cardinality 
--------------
-           3
-(1 row)
-
-select cardinality(array[[1,2,3], [4,5,6]]);
- cardinality 
--------------
-           2
-(1 row)
-
-select c, cardinality(c), d, cardinality(d) from arrtest;
-         c         | cardinality |       d       | cardinality 
--------------------+-------------+---------------+-------------
- {}                |             | {}            |            
- {foobar,new_word} |           2 | {{elt1,elt2}} |           1
- {foo,new_word}    |           2 | {bar,foo}     |           2
-(3 rows)
-
 select array_agg(unique1) from (select unique1 from tenk1 where unique1 < 15 order by unique1) ss;
               array_agg               
 --------------------------------------
@@ -1143,12 +1123,6 @@ select array_agg(nullif(ten, 4)) from (select ten from tenk1 where unique1 < 15
  {0,1,2,3,NULL,5,6,7,8,9,0,1,2,3,NULL}
 (1 row)
 
-select cardinality(array_agg(unique1)) from tenk1 where unique1 < 15;
- cardinality 
--------------
-          15
-(1 row)
-
 select array_agg(unique1) from tenk1 where unique1 < -15;
  array_agg 
 -----------
index a4a91b034c9ef1ab9c7e08ed22327572f555efbf..5e4933c31d3cd2750ee1793efe6eca4305fb273e 100644 (file)
@@ -392,14 +392,10 @@ select array_length(array[[1,2,3], [4,5,6]], 0);
 select array_length(array[[1,2,3], [4,5,6]], 1);
 select array_length(array[[1,2,3], [4,5,6]], 2);
 select array_length(array[[1,2,3], [4,5,6]], 3);
-select cardinality(array[1,2,3]);
-select cardinality(array[[1,2,3], [4,5,6]]);
-select c, cardinality(c), d, cardinality(d) from arrtest;
 
 select array_agg(unique1) from (select unique1 from tenk1 where unique1 < 15 order by unique1) ss;
 select array_agg(ten) from (select ten from tenk1 where unique1 < 15 order by unique1) ss;
 select array_agg(nullif(ten, 4)) from (select ten from tenk1 where unique1 < 15 order by unique1) ss;
-select cardinality(array_agg(unique1)) from tenk1 where unique1 < 15;
 select array_agg(unique1) from tenk1 where unique1 < -15;
 
 select unnest(array[1,2,3]);