]> git.ipfire.org Git - thirdparty/sqlalchemy/alembic.git/commitdiff
Ignore newlines in expressions for Computed
authorGeorg Wicke-Arndt <wicke-arndt@gapzero.de>
Wed, 10 Jan 2024 18:35:14 +0000 (13:35 -0500)
committerFederico Caselli <cfederico87@gmail.com>
Wed, 10 Jan 2024 18:38:27 +0000 (19:38 +0100)
Fixes #1391
Closes: #1393
Pull-request: https://github.com/sqlalchemy/alembic/pull/1393
Pull-request-sha: 69959241d491d9e08c4fb0bc38328a232e89811b

Change-Id: I4aa1e8c344aa87a7277bf1f57dde67a37f510bff

alembic/autogenerate/compare.py
alembic/testing/suite/test_autogen_computed.py
docs/build/unreleased/1391.rst [new file with mode: 0644]

index fcef531a544eefdc3baacff66aa5fa70229f9b58..0d98519643e323830455dd6ba635396a958c2872 100644 (file)
@@ -983,7 +983,7 @@ def _normalize_computed_default(sqltext: str) -> str:
 
     """
 
-    return re.sub(r"[ \(\)'\"`\[\]]", "", sqltext).lower()
+    return re.sub(r"[ \(\)'\"`\[\]\t\r\n]", "", sqltext).lower()
 
 
 def _compare_computed_default(
index 01a89a1fe85422cc5c4dcfca92d7571040b97d16..04a3caf072247f935a34ea87d895cc913e565c50 100644 (file)
@@ -124,6 +124,7 @@ class AutogenerateComputedTest(AutogenFixtureTest, TestBase):
         lambda: (None, None),
         lambda: (sa.Computed("5"), sa.Computed("5")),
         lambda: (sa.Computed("bar*5"), sa.Computed("bar*5")),
+        lambda: (sa.Computed("bar*5"), sa.Computed("bar * \r\n\t5")),
         (
             lambda: (sa.Computed("bar*5"), None),
             config.requirements.computed_doesnt_reflect_as_server_default,
diff --git a/docs/build/unreleased/1391.rst b/docs/build/unreleased/1391.rst
new file mode 100644 (file)
index 0000000..c0661fb
--- /dev/null
@@ -0,0 +1,6 @@
+.. change::
+    :tags: usecase, autogenerate
+    :tickets: 1391
+
+    Improve computed column compare function to support multi-line expressions.
+    Pull request courtesy of Georg Wicke-Arndt.