mirror of https://github.com/citusdata/citus.git
Changes array_cat argument type from anyarray to anycompatiblearray
Relevant PG commit: 9e38c2bb5093ceb0c04d6315ccd8975bd17add66pg14_support_3
parent
f339d6e264
commit
4216ef38f9
|
@ -1847,7 +1847,11 @@ MasterAggregateExpression(Aggref *originalAggregate,
|
|||
{
|
||||
/* array_cat_agg() takes anyarray as input */
|
||||
catAggregateName = ARRAY_CAT_AGGREGATE_NAME;
|
||||
#if PG_VERSION_NUM >= PG_VERSION_14
|
||||
catInputType = ANYCOMPATIBLEARRAYOID;
|
||||
#else
|
||||
catInputType = ANYARRAYOID;
|
||||
#endif
|
||||
}
|
||||
else if (aggregateType == AGGREGATE_JSONB_AGG ||
|
||||
aggregateType == AGGREGATE_JSONB_OBJECT_AGG)
|
||||
|
@ -1882,7 +1886,19 @@ MasterAggregateExpression(Aggref *originalAggregate,
|
|||
newMasterAggregate->args = list_make1(catAggArgument);
|
||||
newMasterAggregate->aggfilter = NULL;
|
||||
newMasterAggregate->aggtranstype = InvalidOid;
|
||||
newMasterAggregate->aggargtypes = list_make1_oid(ANYARRAYOID);
|
||||
|
||||
if (aggregateType == AGGREGATE_ARRAY_AGG)
|
||||
{
|
||||
#if PG_VERSION_NUM >= PG_VERSION_14
|
||||
newMasterAggregate->aggargtypes = list_make1_oid(workerReturnType);
|
||||
#else
|
||||
newMasterAggregate->aggargtypes = list_make1_oid(ANYARRAYOID);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
newMasterAggregate->aggargtypes = list_make1_oid(ANYARRAYOID);
|
||||
}
|
||||
newMasterAggregate->aggsplit = AGGSPLIT_SIMPLE;
|
||||
|
||||
newMasterExpression = (Expr *) newMasterAggregate;
|
||||
|
|
|
@ -320,9 +320,23 @@ CREATE TRIGGER dist_shard_cache_invalidate
|
|||
|
||||
|
||||
-- Citus aggregates
|
||||
|
||||
DO $proc$
|
||||
BEGIN
|
||||
IF substring(current_Setting('server_version'), '\d+')::int >= 14 THEN
|
||||
EXECUTE $$
|
||||
CREATE AGGREGATE array_cat_agg(anycompatiblearray) (SFUNC = array_cat, STYPE = anycompatiblearray);
|
||||
COMMENT ON AGGREGATE array_cat_agg(anycompatiblearray)
|
||||
IS 'concatenate input arrays into a single array';
|
||||
$$;
|
||||
ELSE
|
||||
EXECUTE $$
|
||||
CREATE AGGREGATE array_cat_agg(anyarray) (SFUNC = array_cat, STYPE = anyarray);
|
||||
COMMENT ON AGGREGATE array_cat_agg(anyarray)
|
||||
IS 'concatenate input arrays into a single array';
|
||||
$$;
|
||||
END IF;
|
||||
END$proc$;
|
||||
|
||||
GRANT SELECT ON pg_catalog.pg_dist_partition TO public;
|
||||
GRANT SELECT ON pg_catalog.pg_dist_shard TO public;
|
||||
|
|
Loading…
Reference in New Issue