summaryrefslogtreecommitdiff
path: root/alembic/ddl
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2023-01-10 16:51:49 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2023-01-10 16:53:23 -0500
commiteb01c5407d0eb164944973be0189d950d8ea46af (patch)
treec8375e0c680a841c89e69b617ae0e53321cf3489 /alembic/ddl
parent7cd6e2861e211f04226c553aebe973d9c108b099 (diff)
downloadalembic-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.py12
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