Index: doc/src/sgml/func.sgml =================================================================== RCS file: /usr/local/cvsroot/pgsql-server/doc/src/sgml/func.sgml,v retrieving revision 1.216 diff -r1.216 func.sgml 7027c7027 < any numeric, string, or date/time type --- > any array, any numeric, string, or date/time type 7038c7038 < any numeric, string, or date/time type --- > any array, any numeric, string, or date/time type Index: src/backend/utils/adt/arrayfuncs.c =================================================================== RCS file: /usr/local/cvsroot/pgsql-server/src/backend/utils/adt/arrayfuncs.c,v retrieving revision 1.106 diff -r1.106 arrayfuncs.c 3214a3215,3244 > > Datum > array_larger(PG_FUNCTION_ARGS) > { > ArrayType *v1, > *v2, > *result; > > v1 = PG_GETARG_ARRAYTYPE_P(0); > v2 = PG_GETARG_ARRAYTYPE_P(1); > > result = ((array_cmp(fcinfo) > 0) ? v1 : v2); > > PG_RETURN_ARRAYTYPE_P(result); > } > > Datum > array_smaller(PG_FUNCTION_ARGS) > { > ArrayType *v1, > *v2, > *result; > > v1 = PG_GETARG_ARRAYTYPE_P(0); > v2 = PG_GETARG_ARRAYTYPE_P(1); > > result = ((array_cmp(fcinfo) < 0) ? v1 : v2); > > PG_RETURN_ARRAYTYPE_P(result); > } Index: src/include/catalog/pg_aggregate.h =================================================================== RCS file: /usr/local/cvsroot/pgsql-server/src/include/catalog/pg_aggregate.h,v retrieving revision 1.44 diff -r1.44 pg_aggregate.h 110a111 > DATA(insert ( 2050 array_larger - 2277 _null_ )); 128a130 > DATA(insert ( 2051 array_smaller - 2277 _null_ )); Index: src/include/catalog/pg_proc.h =================================================================== RCS file: /usr/local/cvsroot/pgsql-server/src/include/catalog/pg_proc.h,v retrieving revision 1.343 diff -r1.343 pg_proc.h 1036a1037,1042 > DATA(insert OID = 515 ( array_larger PGNSP PGUID 12 f f t f i 2 2277 "2277 2277" _null_ array_larger - _null_ )); > DESCR("larger of two"); > DATA(insert OID = 516 ( array_smaller PGNSP PGUID 12 f f t f i 2 2277 "2277 2277" _null_ array_smaller - _null_ )); > DESCR("smaller of two"); > > 3037a3044 > DATA(insert OID = 2050 ( max PGNSP PGUID 12 t f f f i 1 2277 "2277" _null_ aggregate_dummy - _null_ )); 3054a3062 > DATA(insert OID = 2051 ( min PGNSP PGUID 12 t f f f i 1 2277 "2277" _null_ aggregate_dummy - _null_ )); Index: src/include/utils/array.h =================================================================== RCS file: /usr/local/cvsroot/pgsql-server/src/include/utils/array.h,v retrieving revision 1.48 diff -r1.48 array.h 131a132,133 > extern Datum array_larger(PG_FUNCTION_ARGS); > extern Datum array_smaller(PG_FUNCTION_ARGS); Index: src/test/regress/expected/arrays.out =================================================================== RCS file: /usr/local/cvsroot/pgsql-server/src/test/regress/expected/arrays.out,v retrieving revision 1.22 diff -r1.22 arrays.out 427a428,480 > CREATE TEMP TABLE arraggtest ( f1 int[], f2 text [][], f3 float[]); > INSERT INTO arraggtest (f1, f2, f3) VALUES > ('{1,2,3,4}','{{white, yellow},{pink,orange}}','{2.1,3.3,1.8,1.7,1.6}'); > INSERT INTO arraggtest (f1, f2, f3) VALUES > ('{1,2,3}','{{black, red},{green,orange}}','{1.6,2.2,2.6,0.4}'); > INSERT INTO arraggtest (f1, f2, f3) VALUES > ('{2}','{{grey, red},{blue,blue}}','{0.2}'); > INSERT INTO arraggtest (f1, f2, f3) VALUES > ('{4,2,6,7,8,1}','{{red},{black},{purple},{blue},{blue}}','{1.16, 1.07, 1.09}'); > INSERT INTO arraggtest (f1, f2, f3) VALUES > ('{3,3,2,4,5,6}','{{pink,white,blue,red,grey,orange}}','{2.1,1.87,1.4,2.2}'); > SELECT f1 from arraggtest order by 1; > f1 > --------------- > {1,2,3} > {1,2,3,4} > {2} > {3,3,2,4,5,6} > {4,2,6,7,8,1} > (5 rows) > > SELECT f2 from arraggtest order by 1; > f2 > ---------------------------------------- > {{black,red},{green,orange}} > {{grey,red},{blue,blue}} > {{pink,white,blue,red,grey,orange}} > {{red},{black},{purple},{blue},{blue}} > {{white,yellow},{pink,orange}} > (5 rows) > > SELECT f3 from arraggtest order by 1; > f3 > ----------------------- > {0.2} > {1.16,1.07,1.09} > {1.6,2.2,2.6,0.4} > {2.1,1.87,1.4,2.2} > {2.1,3.3,1.8,1.7,1.6} > (5 rows) > > SELECT max(f1), max(f2), max(f3) FROM arraggtest; > max | max | max > ---------------+--------------------------------+----------------------- > {4,2,6,7,8,1} | {{white,yellow},{pink,orange}} | {2.1,3.3,1.8,1.7,1.6} > (1 row) > > SELECT min(f1), min(f2), min(f3) FROM arraggtest; > min | min | min > ---------+------------------------------+------- > {1,2,3} | {{black,red},{green,orange}} | {0.2} > (1 row) > Index: src/test/regress/sql/arrays.sql =================================================================== RCS file: /usr/local/cvsroot/pgsql-server/src/test/regress/sql/arrays.sql,v retrieving revision 1.17 diff -r1.17 arrays.sql 194a195,212 > > CREATE TEMP TABLE arraggtest ( f1 int[], f2 text [][], f3 float[]); > INSERT INTO arraggtest (f1, f2, f3) VALUES > ('{1,2,3,4}','{{white, yellow},{pink,orange}}','{2.1,3.3,1.8,1.7,1.6}'); > INSERT INTO arraggtest (f1, f2, f3) VALUES > ('{1,2,3}','{{black, red},{green,orange}}','{1.6,2.2,2.6,0.4}'); > INSERT INTO arraggtest (f1, f2, f3) VALUES > ('{2}','{{grey, red},{blue,blue}}','{0.2}'); > INSERT INTO arraggtest (f1, f2, f3) VALUES > ('{4,2,6,7,8,1}','{{red},{black},{purple},{blue},{blue}}','{1.16, 1.07, 1.09}'); > INSERT INTO arraggtest (f1, f2, f3) VALUES > ('{3,3,2,4,5,6}','{{pink,white,blue,red,grey,orange}}','{2.1,1.87,1.4,2.2}'); > SELECT f1 from arraggtest order by 1; > SELECT f2 from arraggtest order by 1; > SELECT f3 from arraggtest order by 1; > SELECT max(f1), max(f2), max(f3) FROM arraggtest; > SELECT min(f1), min(f2), min(f3) FROM arraggtest; >