]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
FIX #11285 11368/head
authorroche-quentin <roche.quentin@bcg.com>
Wed, 8 May 2024 08:41:00 +0000 (10:41 +0200)
committerroche-quentin <roche.quentin@bcg.com>
Wed, 8 May 2024 08:56:35 +0000 (10:56 +0200)
CONSTRAINT FOREIGN KEY ON DELETE was missing SET DEFAULT in MySQL reflexion

lib/sqlalchemy/dialects/mysql/reflection.py
test/dialect/mysql/test_reflection.py

index c764e8ccc7fd36e98810d2cd571bc319596e521f..d7622c5463d89c84cb7a2b30550d9383f4732e83 100644 (file)
@@ -505,7 +505,7 @@ class MySQLTableDefinitionParser:
         #
         # unique constraints come back as KEYs
         kw = quotes.copy()
-        kw["on"] = "RESTRICT|CASCADE|SET NULL|NO ACTION"
+        kw["on"] = "RESTRICT|CASCADE|SET NULL|NO ACTION|SET DEFAULT"
         self._re_fk_constraint = _re_compile(
             r"  "
             r"CONSTRAINT +"
index 79e7198ef3d94e33a28fbe76e2818697bad686d0..4fa472ce1ae7cba0faa280ca9c64726cd5cfdfbb 100644 (file)
@@ -1557,7 +1557,7 @@ class RawReflectionTest(fixtures.TestBase):
             "  CONSTRAINT `addresses_user_id_fkey` "
             "FOREIGN KEY (`user_id`) "
             "REFERENCES `users` (`id`) "
-            "ON DELETE CASCADE ON UPDATE SET NULL"
+            "ON DELETE SET DEFAULT ON UPDATE SET NULL"
         )
         eq_(
             m.groups(),
@@ -1567,7 +1567,7 @@ class RawReflectionTest(fixtures.TestBase):
                 "`users`",
                 "`id`",
                 None,
-                "CASCADE",
+                "SET DEFAULT",
                 "SET NULL",
             ),
         )