diff options
Diffstat (limited to 'lib/sqlalchemy/dialects/postgresql/base.py')
-rw-r--r-- | lib/sqlalchemy/dialects/postgresql/base.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/sqlalchemy/dialects/postgresql/base.py b/lib/sqlalchemy/dialects/postgresql/base.py index e583bd5cf..b56ac5b10 100644 --- a/lib/sqlalchemy/dialects/postgresql/base.py +++ b/lib/sqlalchemy/dialects/postgresql/base.py @@ -1873,9 +1873,15 @@ class PGTypeCompiler(compiler.GenericTypeCompiler): return "BYTEA" def visit_ARRAY(self, type_, **kw): - return self.process(type_.item_type) + ('[]' * (type_.dimensions - if type_.dimensions - is not None else 1)) + + # TODO: pass **kw? + inner = self.process(type_.item_type) + return re.sub( + r'((?: COLLATE.*)?)$', + (r'[]\1' * + (type_.dimensions if type_.dimensions is not None else 1)), + inner + ) class PGIdentifierPreparer(compiler.IdentifierPreparer): |