rendered_metadata_default,
rendered_inspector_default,
):
+
if rendered_metadata_default is not None:
rendered_metadata_default = re.sub(
r"^\((.+)\)$", r"\1", rendered_metadata_default
)
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
--- /dev/null
+.. change::
+ :tags: bug, autogenerate
+ :tickets: 1152
+
+ 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.
(VARCHAR(30), "some default"),
(VARCHAR(30), text("'//slash'")),
(VARCHAR(30), text("'has '' quote'")),
+ (DateTime(), text("(getdate())"), testing.exclusions.only_on("mssql")),
+ (
+ DateTime(),
+ text("(now())"),
+ testing.exclusions.only_on("postgresql", "sqlite"),
+ ),
(Integer(), text("15")),
(Integer(), "15"),
id_="ss",