summaryrefslogtreecommitdiff
path: root/test/orm
diff options
context:
space:
mode:
authorJack Zhou <univerio@gmail.com>2016-05-31 10:01:46 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2016-06-02 17:46:16 -0400
commite8f97c9e357ed0793ce11086823f83aa4a8bb4ad (patch)
treee87b5fbd22799b56ab771197fd4658afddd08c91 /test/orm
parenteb28ebb0f8a48ba57f68f21d64479b56bf689d24 (diff)
downloadsqlalchemy-e8f97c9e357ed0793ce11086823f83aa4a8bb4ad.tar.gz
Add SKIP LOCKED support for Postgresql, Oracle
This adds `SELECT ... FOR UPDATE SKIP LOCKED`/ `SELECT ... FOR SHARE SKIP LOCKED` rendering. Change-Id: Id1dc4f1cafc1de23f397a6f73d54ab2c58d5910d Pull-request: https://bitbucket.org/zzzeek/sqlalchemy/pull-requests/86
Diffstat (limited to 'test/orm')
-rw-r--r--test/orm/test_lockmode.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/orm/test_lockmode.py b/test/orm/test_lockmode.py
index fc473a329..949fe0d81 100644
--- a/test/orm/test_lockmode.py
+++ b/test/orm/test_lockmode.py
@@ -181,6 +181,15 @@ class CompileTest(_fixtures.FixtureTest, AssertsCompiledSQL):
dialect="postgresql"
)
+ def test_postgres_update_skip_locked(self):
+ User = self.classes.User
+ sess = Session()
+ self.assert_compile(sess.query(User.id).
+ with_for_update(skip_locked=True),
+ "SELECT users.id AS users_id FROM users FOR UPDATE SKIP LOCKED",
+ dialect="postgresql"
+ )
+
def test_oracle_update(self):
User = self.classes.User
@@ -190,6 +199,15 @@ class CompileTest(_fixtures.FixtureTest, AssertsCompiledSQL):
dialect="oracle"
)
+ def test_oracle_update_skip_locked(self):
+ User = self.classes.User
+ sess = Session()
+ self.assert_compile(sess.query(User.id)
+ .with_for_update(skip_locked=True),
+ "SELECT users.id AS users_id FROM users FOR UPDATE SKIP LOCKED",
+ dialect="oracle"
+ )
+
def test_mysql_read(self):
User = self.classes.User
sess = Session()