diff options
author | Diana Clarke <diana.joan.clarke@gmail.com> | 2013-03-29 14:58:33 -0400 |
---|---|---|
committer | Diana Clarke <diana.joan.clarke@gmail.com> | 2013-03-29 14:58:33 -0400 |
commit | 423cd7fbf695d2becdfc83751a8dbc0650854bea (patch) | |
tree | cf856a236a34971a2227f2d0da723c41dc5b6606 /lib/sqlalchemy/orm/query.py | |
parent | 7dff6f6d490528f5e88493cdf4b14d3136b40d3c (diff) | |
download | sqlalchemy-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.py | 20 |
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. |