From 872a882d0d93da79797a0cde70cbb2379f2e42d8 Mon Sep 17 00:00:00 2001 From: Jason Kirtland Date: Sun, 12 Aug 2007 22:05:30 +0000 Subject: auto-commit after LOAD DATA INFILE for mysql caught a couple more uncompiled regexps --- lib/sqlalchemy/databases/mysql.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'lib/sqlalchemy/databases/mysql.py') diff --git a/lib/sqlalchemy/databases/mysql.py b/lib/sqlalchemy/databases/mysql.py index 5aebac09b..6f8b83189 100644 --- a/lib/sqlalchemy/databases/mysql.py +++ b/lib/sqlalchemy/databases/mysql.py @@ -183,6 +183,12 @@ RESERVED_WORDS = util.Set( 'read_only', 'read_write', # 5.1 ]) +AUTOCOMMIT_RE = re.compile( + r'\s*(?:UPDATE|INSERT|CREATE|DELETE|DROP|ALTER|LOAD +DATA)', + re.I | re.UNICODE) +SELECT_RE = re.compile( + r'\s*(?:SELECT|SHOW|DESCRIBE|XA RECOVER)', + re.I | re.UNICODE) class _NumericType(object): """Base for MySQL numeric types.""" @@ -1274,7 +1280,7 @@ def descriptor(): class MySQLExecutionContext(default.DefaultExecutionContext): - _my_is_select = re.compile(r'\s*(?:SELECT|SHOW|DESCRIBE|XA RECOVER)', + _my_is_select = re.compile(r'\s*(?:SELECT|SHOW|DESCRIBE|XA +RECOVER)', re.I | re.UNICODE) def post_exec(self): @@ -1285,7 +1291,10 @@ class MySQLExecutionContext(default.DefaultExecutionContext): self._last_inserted_ids[1:]) def is_select(self): - return self._my_is_select.match(self.statement) is not None + return SELECT_RE.match(self.statement) + + def should_autocommit(self): + return AUTOCOMMIT_RE.match(self.statement) class MySQLDialect(ansisql.ANSIDialect): -- cgit v1.2.1