summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/databases/mysql.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2006-09-10 23:52:04 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2006-09-10 23:52:04 +0000
commit47d8b03b14145997fc0936bd674363f0e213f019 (patch)
tree64e9356d7c5f435b68d7deaa8b41c6a4cdc5c521 /lib/sqlalchemy/databases/mysql.py
parent287bf217958fbccb07cffafcc4481a2b6c7f2784 (diff)
downloadsqlalchemy-47d8b03b14145997fc0936bd674363f0e213f019.tar.gz
- changed "for_update" parameter to accept False/True/"nowait"
and "read", the latter two of which are interpreted only by Oracle and Mysql [ticket:292] - added "lockmode" argument to base Query select/get functions, including "with_lockmode" function to get a Query copy that has a default locking mode. Will translate "read"/"update" arguments into a for_update argument on the select side. [ticket:292]
Diffstat (limited to 'lib/sqlalchemy/databases/mysql.py')
-rw-r--r--lib/sqlalchemy/databases/mysql.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/sqlalchemy/databases/mysql.py b/lib/sqlalchemy/databases/mysql.py
index c6d78cf90..4eab9e55c 100644
--- a/lib/sqlalchemy/databases/mysql.py
+++ b/lib/sqlalchemy/databases/mysql.py
@@ -411,6 +411,12 @@ class MySQLCompiler(ansisql.ANSICompiler):
# TODO: put whatever MySQL does for CAST here.
self.strings[cast] = self.strings[cast.clause]
+ def for_update_clause(self, select):
+ if select.for_update == 'read':
+ return ' LOCK IN SHARE MODE'
+ else:
+ return super(MySQLCompiler, self).for_update_clause(select)
+
def limit_clause(self, select):
text = ""
if select.limit is not None: