From: Georg Wicke-Arndt Date: Wed, 10 Jan 2024 18:35:14 +0000 (-0500) Subject: Ignore newlines in expressions for Computed X-Git-Tag: rel_1_13_2~17^2 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=06aee70ea2a936901422fdb48baefbdbd7d24fbb;p=thirdparty%2Fsqlalchemy%2Falembic.git Ignore newlines in expressions for Computed Fixes #1391 Closes: #1393 Pull-request: https://github.com/sqlalchemy/alembic/pull/1393 Pull-request-sha: 69959241d491d9e08c4fb0bc38328a232e89811b Change-Id: I4aa1e8c344aa87a7277bf1f57dde67a37f510bff --- diff --git a/alembic/autogenerate/compare.py b/alembic/autogenerate/compare.py index fcef531a..0d985196 100644 --- a/alembic/autogenerate/compare.py +++ b/alembic/autogenerate/compare.py @@ -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( diff --git a/alembic/testing/suite/test_autogen_computed.py b/alembic/testing/suite/test_autogen_computed.py index 01a89a1f..04a3caf0 100644 --- a/alembic/testing/suite/test_autogen_computed.py +++ b/alembic/testing/suite/test_autogen_computed.py @@ -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 index 00000000..c0661fbe --- /dev/null +++ b/docs/build/unreleased/1391.rst @@ -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.