summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/orm/query.py
diff options
context:
space:
mode:
authorDiana Clarke <diana.joan.clarke@gmail.com>2013-03-29 14:58:33 -0400
committerDiana Clarke <diana.joan.clarke@gmail.com>2013-03-29 14:58:33 -0400
commit423cd7fbf695d2becdfc83751a8dbc0650854bea (patch)
treecf856a236a34971a2227f2d0da723c41dc5b6606 /lib/sqlalchemy/orm/query.py
parent7dff6f6d490528f5e88493cdf4b14d3136b40d3c (diff)
downloadsqlalchemy-423cd7fbf695d2becdfc83751a8dbc0650854bea.tar.gz
adding convenience method exists() to Query (see # 2673)
Diffstat (limited to 'lib/sqlalchemy/orm/query.py')
-rw-r--r--lib/sqlalchemy/orm/query.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/sqlalchemy/orm/query.py b/lib/sqlalchemy/orm/query.py
index b18e28abb..c80a430af 100644
--- a/lib/sqlalchemy/orm/query.py
+++ b/lib/sqlalchemy/orm/query.py
@@ -2373,6 +2373,26 @@ class Query(object):
kwargs.get('offset') is not None or
kwargs.get('distinct', False))
+ def exists(self):
+ """A convenience method that turns a query into an EXISTS subquery
+ of the form EXISTS (SELECT 1 FROM ... WHERE ...).
+
+ e.g.::
+
+ q = session.query(User).filter(User.name == 'fred')
+ session.query(q.exists())
+
+ Producing SQL similar to::
+
+ SELECT EXISTS (
+ SELECT 1 FROM users WHERE users.name = :name_1
+ ) AS anon_1
+
+ .. versionadded:: 0.8.1
+
+ """
+ return sql.exists(self.with_entities('1').statement)
+
def count(self):
"""Return a count of rows this Query would return.