summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2016-06-03 20:54:48 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2016-06-03 20:54:48 -0400
commit991346d5bbc29479c6c500c3f2b64fd6cc2e9a39 (patch)
tree0fb524f7dac8a3d30db41d836070600f5b5d8b2c
parent6f71cb7c4eb8275d41eeed6b7457d3e2b011d664 (diff)
downloadsqlalchemy-991346d5bbc29479c6c500c3f2b64fd6cc2e9a39.tar.gz
- further adjustment to accomodate for the "ON" in "NO ACTION"
Change-Id: I734e4aec3701d7cf17813b561a1418cfeff1d473
-rw-r--r--lib/sqlalchemy/dialects/sqlite/base.py3
-rw-r--r--test/dialect/test_sqlite.py12
2 files changed, 12 insertions, 3 deletions
diff --git a/lib/sqlalchemy/dialects/sqlite/base.py b/lib/sqlalchemy/dialects/sqlite/base.py
index 0f3c54385..5109ff3a7 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 354558ebe..697f21585 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'}
+ },
]
)