summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGaëtan de Menten <gdementen@gmail.com>2008-06-25 15:55:49 +0000
committerGaëtan de Menten <gdementen@gmail.com>2008-06-25 15:55:49 +0000
commitd0c243711b6f2317e701f181b6dbc2a018f0edbe (patch)
treea0cf04dca8422ff5927c74c3821a539dae6e2389
parent22fcee0e07981bc6ae7a0f47227c4f0bb322c774 (diff)
downloadsqlalchemy-d0c243711b6f2317e701f181b6dbc2a018f0edbe.tar.gz
`session.Query().iterate_instances()` has been renamed to just `instances()`. The old `instances()` method returning a list instead of an iterator no longer
exists. If you were relying on that behavior, you should use `list(your_query.instances())`.
-rw-r--r--lib/sqlalchemy/orm/query.py19
-rw-r--r--test/orm/deprecations.py2
-rw-r--r--test/orm/mapper.py4
-rw-r--r--test/orm/query.py18
4 files changed, 16 insertions, 27 deletions
diff --git a/lib/sqlalchemy/orm/query.py b/lib/sqlalchemy/orm/query.py
index a2a546caa..ed82a7ca5 100644
--- a/lib/sqlalchemy/orm/query.py
+++ b/lib/sqlalchemy/orm/query.py
@@ -1040,28 +1040,16 @@ class Query(object):
def _execute_and_instances(self, querycontext):
result = self.session.execute(querycontext.statement, params=self._params, mapper=self._mapper_zero_or_none(), _state=self._refresh_state)
- return self.iterate_instances(result, querycontext)
+ return self.instances(result, querycontext)
def instances(self, cursor, __context=None):
- """Given a ResultProxy cursor as returned by connection.execute(), return an ORM result as a list.
+ """Given a ResultProxy cursor as returned by connection.execute(), return an ORM result as an iterator.
e.g.::
-
- result = engine.execute("select * from users")
- users = session.query(User).instances(result)
-
- """
- return list(self.iterate_instances(cursor, __context))
- def iterate_instances(self, cursor, __context=None):
- """Given a ResultProxy cursor as returned by connection.execute(), return an ORM result as an iterator.
-
- e.g.::
-
result = engine.execute("select * from users")
- for u in session.query(User).iterate_instances(result):
+ for u in session.query(User).instances(result):
print u
-
"""
session = self.session
@@ -1128,6 +1116,7 @@ class Query(object):
if not self._yield_per:
break
+ iterate_instances = util.deprecated()(instances)
def _get(self, key=None, ident=None, refresh_state=None, lockmode=None, only_load_props=None):
lockmode = lockmode or self._lockmode
diff --git a/test/orm/deprecations.py b/test/orm/deprecations.py
index 9da3571f9..483e8f556 100644
--- a/test/orm/deprecations.py
+++ b/test/orm/deprecations.py
@@ -268,7 +268,7 @@ class QueryAlternativesTest(_base.MappedTest):
session = create_session()
sel = users_table.join(addresses_table).select(use_labels=True)
- res = session.query(User, Address).instances(sel.execute())
+ res = list(session.query(User, Address).instances(sel.execute()))
assert len(res) == 4
cola, colb = res[0]
diff --git a/test/orm/mapper.py b/test/orm/mapper.py
index 7d0014002..8c3bd58c9 100644
--- a/test/orm/mapper.py
+++ b/test/orm/mapper.py
@@ -845,7 +845,7 @@ class OptionsTest(_fixtures.FixtureTest):
# session's identity map)
r = users.select().order_by(users.c.id).execute()
def go():
- l = sess.query(User).instances(r)
+ l = list(sess.query(User).instances(r))
eq_(l, self.static.user_address_result)
self.sql_count_(4, go)
@@ -889,7 +889,7 @@ class OptionsTest(_fixtures.FixtureTest):
# then assert the data, which will launch 6 more lazy loads
r = users.select().execute()
def go():
- l = sess.query(User).instances(r)
+ l = list(sess.query(User).instances(r))
eq_(l, self.static.user_all_result)
self.assert_sql_count(testing.db, go, 6)
diff --git a/test/orm/query.py b/test/orm/query.py
index fcefc4bd7..d3d064364 100644
--- a/test/orm/query.py
+++ b/test/orm/query.py
@@ -341,7 +341,7 @@ class CompileTest(QueryTest):
session = create_session()
s = session.query(User).filter(and_(addresses.c.email_address == bindparam('emailad'), Address.user_id==User.id)).statement
- l = session.query(User).instances(s.execute(emailad = 'jack@bean.com'))
+ l = list(session.query(User).instances(s.execute(emailad = 'jack@bean.com')))
assert [User(id=7)] == l
class SliceTest(QueryTest):
@@ -1001,7 +1001,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
q = sess.query(User)
def go():
- l = q.options(contains_alias('ulist'), contains_eager('addresses')).instances(query.execute())
+ l = list(q.options(contains_alias('ulist'), contains_eager('addresses')).instances(query.execute()))
assert fixtures.user_address_result == l
self.assert_sql_count(testing.db, go, 1)
@@ -1044,7 +1044,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
q = sess.query(User)
def go():
- l = q.options(contains_eager('addresses')).instances(selectquery.execute())
+ l = list(q.options(contains_eager('addresses')).instances(selectquery.execute()))
assert fixtures.user_address_result[0:3] == l
self.assert_sql_count(testing.db, go, 1)
@@ -1052,7 +1052,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
def go():
- l = q.options(contains_eager(User.addresses)).instances(selectquery.execute())
+ l = list(q.options(contains_eager(User.addresses)).instances(selectquery.execute()))
assert fixtures.user_address_result[0:3] == l
self.assert_sql_count(testing.db, go, 1)
sess.clear()
@@ -1070,14 +1070,14 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
# string alias name
def go():
- l = q.options(contains_eager('addresses', alias="adalias")).instances(selectquery.execute())
+ l = list(q.options(contains_eager('addresses', alias="adalias")).instances(selectquery.execute()))
assert fixtures.user_address_result == l
self.assert_sql_count(testing.db, go, 1)
sess.clear()
# expression.Alias object
def go():
- l = q.options(contains_eager('addresses', alias=adalias)).instances(selectquery.execute())
+ l = list(q.options(contains_eager('addresses', alias=adalias)).instances(selectquery.execute()))
assert fixtures.user_address_result == l
self.assert_sql_count(testing.db, go, 1)
@@ -1098,7 +1098,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
q = create_session().query(User)
# test using string alias with more than one level deep
def go():
- l = q.options(contains_eager('orders', alias='o1'), contains_eager('orders.items', alias='i1')).instances(query.execute())
+ l = list(q.options(contains_eager('orders', alias='o1'), contains_eager('orders.items', alias='i1')).instances(query.execute()))
assert fixtures.user_order_result == l
self.assert_sql_count(testing.db, go, 1)
@@ -1106,7 +1106,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
# test using Alias with more than one level deep
def go():
- l = q.options(contains_eager('orders', alias=oalias), contains_eager('orders.items', alias=ialias)).instances(query.execute())
+ l = list(q.options(contains_eager('orders', alias=oalias), contains_eager('orders.items', alias=ialias)).instances(query.execute()))
assert fixtures.user_order_result == l
self.assert_sql_count(testing.db, go, 1)
sess.clear()
@@ -1333,7 +1333,7 @@ class MixedEntitiesTest(QueryTest):
sess = create_session()
selectquery = users.outerjoin(addresses).select(use_labels=True, order_by=[users.c.id, addresses.c.id])
- self.assertEquals(sess.query(User, Address).instances(selectquery.execute()), expected)
+ self.assertEquals(list(sess.query(User, Address).instances(selectquery.execute())), expected)
sess.clear()
for address_entity in (Address, aliased(Address)):