From: Mike Bayer Date: Sat, 4 Jun 2016 00:54:48 +0000 (-0400) Subject: - further adjustment to accomodate for the "ON" in "NO ACTION" X-Git-Tag: rel_1_1_0b1~21 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=991346d5bbc29479c6c500c3f2b64fd6cc2e9a39;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - further adjustment to accomodate for the "ON" in "NO ACTION" Change-Id: I734e4aec3701d7cf17813b561a1418cfeff1d473 --- diff --git a/lib/sqlalchemy/dialects/sqlite/base.py b/lib/sqlalchemy/dialects/sqlite/base.py index 0f3c543859..5109ff3a70 100644 --- a/lib/sqlalchemy/dialects/sqlite/base.py +++ b/lib/sqlalchemy/dialects/sqlite/base.py @@ -1394,7 +1394,8 @@ class SQLiteDialect(default.DefaultDialect): self._find_cols_in_sig(referred_columns)) referred_name = referred_quoted_name or referred_name options = {} - for token in re.split(r" *ON *", onupdatedelete.upper()): + + for token in re.split(r" *\bON\b *", onupdatedelete.upper()): if token.startswith("DELETE"): options['ondelete'] = token[6:].strip() elif token.startswith("UPDATE"): diff --git a/test/dialect/test_sqlite.py b/test/dialect/test_sqlite.py index 354558ebe8..697f215851 100644 --- a/test/dialect/test_sqlite.py +++ b/test/dialect/test_sqlite.py @@ -1148,13 +1148,15 @@ class ConstraintReflectionTest(fixtures.TestBase): conn.execute("create table o (foo varchar(20) primary key)") conn.execute( "CREATE TABLE onud_test (id INTEGER PRIMARY KEY, " - "c1 INTEGER, c2 INTEGER, c3 INTEGER, " + "c1 INTEGER, c2 INTEGER, c3 INTEGER, c4 INTEGER, " "CONSTRAINT fk1 FOREIGN KEY (c1) REFERENCES a1(id) " "ON DELETE SET NULL, " "CONSTRAINT fk2 FOREIGN KEY (c2) REFERENCES a1(id) " "ON UPDATE CASCADE, " "CONSTRAINT fk3 FOREIGN KEY (c3) REFERENCES a2(id) " - "ON DELETE CASCADE ON UPDATE SET NULL)" + "ON DELETE CASCADE ON UPDATE SET NULL," + "CONSTRAINT fk4 FOREIGN KEY (c4) REFERENCES a2(id) " + "ON UPDATE NO ACTION)" ) conn.execute( @@ -1331,6 +1333,12 @@ class ConstraintReflectionTest(fixtures.TestBase): 'constrained_columns': ['c3'], 'options': {'ondelete': 'CASCADE', 'onupdate': 'SET NULL'} }, + { + 'referred_table': 'a2', 'referred_columns': ['id'], + 'referred_schema': None, 'name': 'fk4', + 'constrained_columns': ['c4'], + 'options': {'onupdate': 'NO ACTION'} + }, ] )