]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Fix tests (hopefully)
authorGeorg Wicke-Arndt <wicke-arndt@gapzero.de>
Thu, 11 Jan 2024 10:28:18 +0000 (11:28 +0100)
committerGeorg Wicke-Arndt <georg.wicke@rwth-aachen.de>
Sat, 13 Jan 2024 23:14:17 +0000 (00:14 +0100)
lib/sqlalchemy/dialects/mysql/base.py
test/dialect/mysql/test_reflection.py

index 6b8b2e4b18d78fd69bc6eeb5d15a78cc79a8769d..fb1beca04824de56b5e6d90a9a48969ac5df6c64 100644 (file)
@@ -2446,6 +2446,9 @@ class MySQLDialect(default.DefaultDialect):
     supports_for_update_of = False  # default for MySQL ...
     # ... may be updated to True for MySQL 8+ in initialize()
 
+    supports_notnull_generated_columns = False  # Only available ...
+    # ... in MySQL 5.7+
+
     _requires_alias_for_on_duplicate_key = False  # Only available ...
     # ... in MySQL 8+
 
@@ -2846,6 +2849,10 @@ class MySQLDialect(default.DefaultDialect):
             self._is_mysql and self.server_version_info >= (8,)
         )
 
+        self.supports_notnull_generated_columns = (
+            self._is_mysql and self.server_version_info >= (5, 7)
+        )
+
         self._needs_correct_for_88718_96365 = (
             not self.is_mariadb and self.server_version_info >= (8,)
         )
index 573fed45d8647d8b43180e1f6e80ffb3822dde3f..d4b34b2db2c07747602b561f81a041a5cbf1551b 100644 (file)
@@ -778,23 +778,26 @@ class ReflectionTest(fixtures.TestBase, AssertsCompiledSQL):
         ).first()
         explicit_defaults_for_timestamp = row[1].lower() in ("on", "1", "true")
 
-        reflected = []
-        for idx, cols in enumerate(
+        test_cases = [
             [
-                [
-                    "x INTEGER NULL",
-                    "y INTEGER NOT NULL",
-                    "z INTEGER",
-                    "q TIMESTAMP NULL",
-                ],
-                ["p TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP"],
-                ["r TIMESTAMP NOT NULL"],
-                ["s TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP"],
-                ["t TIMESTAMP"],
-                ["u TIMESTAMP DEFAULT CURRENT_TIMESTAMP"],
-                ["v INTEGER GENERATED ALWAYS AS (4711) VIRTUAL NOT NULL"],
-            ]
-        ):
+                "x INTEGER NULL",
+                "y INTEGER NOT NULL",
+                "z INTEGER",
+                "q TIMESTAMP NULL",
+            ],
+            ["p TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP"],
+            ["r TIMESTAMP NOT NULL"],
+            ["s TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP"],
+            ["t TIMESTAMP"],
+            ["u TIMESTAMP DEFAULT CURRENT_TIMESTAMP"],
+            ["v INTEGER GENERATED ALWAYS AS (4711) VIRTUAL NOT NULL"],
+        ]
+        if connection.dialect.supports_notnull_generated_columns:
+            test_cases.append(
+                ["v INTEGER GENERATED ALWAYS AS (4711) VIRTUAL NOT NULL"])
+
+        reflected = []
+        for idx, cols in enumerate(test_cases):
             Table("nn_t%d" % idx, meta)  # to allow DROP
 
             connection.exec_driver_sql(