diff options
Diffstat (limited to 'src/test/regress/sql/polymorphism.sql')
-rw-r--r-- | src/test/regress/sql/polymorphism.sql | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/test/regress/sql/polymorphism.sql b/src/test/regress/sql/polymorphism.sql index e5222f1f81f..ff517fea41a 100644 --- a/src/test/regress/sql/polymorphism.sql +++ b/src/test/regress/sql/polymorphism.sql @@ -498,17 +498,17 @@ select q2, sql_if(q2 > 0, q2, q2 + 1) from int8_tbl; -- another sort of polymorphic aggregate -CREATE AGGREGATE array_cat_accum (anyarray) +CREATE AGGREGATE array_larger_accum (anyarray) ( - sfunc = array_cat, + sfunc = array_larger, stype = anyarray, initcond = '{}' ); -SELECT array_cat_accum(i) +SELECT array_larger_accum(i) FROM (VALUES (ARRAY[1,2]), (ARRAY[3,4])) as t(i); -SELECT array_cat_accum(i) +SELECT array_larger_accum(i) FROM (VALUES (ARRAY[row(1,2),row(3,4)]), (ARRAY[row(5,6),row(7,8)])) as t(i); -- another kind of polymorphic aggregate @@ -549,6 +549,9 @@ create aggregate build_group(int8, integer) ( -- check proper resolution of data types for polymorphic transfn/finalfn +create function first_el_transfn(anyarray, anyelement) returns anyarray as +'select $1 || $2' language sql immutable; + create function first_el(anyarray) returns anyelement as 'select $1[1]' language sql strict immutable; @@ -559,7 +562,7 @@ create aggregate first_el_agg_f8(float8) ( ); create aggregate first_el_agg_any(anyelement) ( - SFUNC = array_append, + SFUNC = first_el_transfn, STYPE = anyarray, FINALFUNC = first_el ); |