From 52a3f5b7635583ae6feb084b1db654b9c65caec2 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Wed, 22 Aug 2018 11:13:54 -0400 Subject: Pass desired array type from pg.array_agg to functions.array_agg Fixed the :func:`.postgresql.array_agg` function, which is a slightly altered version of the usual :func:`.functions.array_agg` function, to also accept an incoming "type" argument without forcing an ARRAY around it, essentially the same thing that was fixed for the generic function in 1.1 in :ticket:`4107`. Fixes: #4324 Change-Id: I399a29f59c945a217cdd22c65ff0325edea8ea65 --- lib/sqlalchemy/sql/functions.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'lib/sqlalchemy/sql/functions.py') diff --git a/lib/sqlalchemy/sql/functions.py b/lib/sqlalchemy/sql/functions.py index 27d030d4f..5cea7750a 100644 --- a/lib/sqlalchemy/sql/functions.py +++ b/lib/sqlalchemy/sql/functions.py @@ -793,13 +793,14 @@ class array_agg(GenericFunction): def __init__(self, *args, **kwargs): args = [_literal_as_binds(c) for c in args] + default_array_type = kwargs.pop('_default_array_type', sqltypes.ARRAY) if 'type_' not in kwargs: type_from_args = _type_from_args(args) if isinstance(type_from_args, sqltypes.ARRAY): kwargs['type_'] = type_from_args else: - kwargs['type_'] = sqltypes.ARRAY(type_from_args) + kwargs['type_'] = default_array_type(type_from_args) kwargs['_parsed_args'] = args super(array_agg, self).__init__(*args, **kwargs) -- cgit v1.2.1