diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2023-01-10 16:51:49 -0500 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2023-01-10 16:53:23 -0500 |
commit | eb01c5407d0eb164944973be0189d950d8ea46af (patch) | |
tree | c8375e0c680a841c89e69b617ae0e53321cf3489 /alembic/ddl | |
parent | 7cd6e2861e211f04226c553aebe973d9c108b099 (diff) | |
download | alembic-eb01c5407d0eb164944973be0189d950d8ea46af.tar.gz |
repair regression in SQL Server server default comapre logic
Fixed regression caused by :ticket:`1145` where the string transformations
applied to server defaults caused expressions such as ``(getdate())`` to no
longer compare as equivalent on SQL Server, others.
Change-Id: I9c611edd70765487746f652c9eb09e54d935da28
Fixes: #1152
Diffstat (limited to 'alembic/ddl')
-rw-r--r-- | alembic/ddl/mssql.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/alembic/ddl/mssql.py b/alembic/ddl/mssql.py index 00c5f0e..b622bc5 100644 --- a/alembic/ddl/mssql.py +++ b/alembic/ddl/mssql.py @@ -231,6 +231,7 @@ class MSSQLImpl(DefaultImpl): rendered_metadata_default, rendered_inspector_default, ): + if rendered_metadata_default is not None: rendered_metadata_default = re.sub( r"^\((.+)\)$", r"\1", rendered_metadata_default @@ -241,9 +242,14 @@ class MSSQLImpl(DefaultImpl): ) if rendered_inspector_default is not None: - rendered_inspector_default = re.sub( - r"^\(+(.+?)\)+$", r"\1", rendered_inspector_default - ) + + # the iteration is a quick hack to remove balanced parens only + # up to two levels deep, like ((foo)) but not (foo()) + # see issue #1152 + for i in range(2): + rendered_inspector_default = re.sub( + r"^\((.+)\)$", r"\1", rendered_inspector_default + ) rendered_inspector_default = re.sub( r"^\"?'(.+)'\"?$", r"\1", rendered_inspector_default |