summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects/mysql/base.py
diff options
context:
space:
mode:
authorMario Lassnig <mario@lassnig.net>2013-11-28 14:50:41 +0100
committerMario Lassnig <mario@lassnig.net>2013-11-28 14:50:41 +0100
commite9aaf8eb66343f247b1ec2189707f820e20a0629 (patch)
treefe5af6902c88668146b278b5494941d545d9233a /lib/sqlalchemy/dialects/mysql/base.py
parent741da873841012d893ec08bd77a5ecc9237eaab8 (diff)
downloadsqlalchemy-pr/42.tar.gz
added LockmodeArgspr/42
Diffstat (limited to 'lib/sqlalchemy/dialects/mysql/base.py')
-rw-r--r--lib/sqlalchemy/dialects/mysql/base.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/sqlalchemy/dialects/mysql/base.py b/lib/sqlalchemy/dialects/mysql/base.py
index 6883be5af..d70e9b606 100644
--- a/lib/sqlalchemy/dialects/mysql/base.py
+++ b/lib/sqlalchemy/dialects/mysql/base.py
@@ -1422,7 +1422,14 @@ class MySQLCompiler(compiler.SQLCompiler):
self.process(join.onclause, **kwargs)))
def for_update_clause(self, select):
- if select.for_update == 'read':
+ # backwards compatibility
+ if isinstance(select.for_update, bool):
+ return ' FOR UPDATE'
+ elif isinstance(select.for_update, str):
+ if select.for_update == 'read':
+ return ' LOCK IN SHARE MODE'
+
+ if select.for_update.mode == 'read':
return ' LOCK IN SHARE MODE'
else:
return super(MySQLCompiler, self).for_update_clause(select)