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
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
# 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)
# 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)
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):
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)
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)
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()
# 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)
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)
# 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()
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)):