on additional mapper or one additional column.
- removed "no group by's in a select thats part of a UNION"
restriction [ticket:578]
- orm
+ - fixed bug in query.instances() that wouldnt handle more than
+ on additional mapper or one additional column.
- "delete-orphan" no longer implies "delete". ongoing effort to
separate the behavior of these two operations.
- many-to-many relationships properly set the type of bind params
if isinstance(m, type):
m = mapper.class_mapper(m)
if isinstance(m, mapper.Mapper):
- appender = []
- def proc(context, row):
- if not m._instance(context, row, appender):
- appender.append(None)
- process.append((proc, appender))
+ def x(m):
+ appender = []
+ def proc(context, row):
+ if not m._instance(context, row, appender):
+ appender.append(None)
+ process.append((proc, appender))
+ x(m)
elif isinstance(m, sql.ColumnElement) or isinstance(m, basestring):
- res = []
- def proc(context, row):
- res.append(row[m])
- process.append((proc, res))
+ def y(m):
+ res = []
+ def proc(context, row):
+ res.append(row[m])
+ process.append((proc, res))
+ y(m)
result = []
else:
result = util.UniqueAppender([])
(user8, 3),
(user9, 0)
]
+
+ def testmappersplustwocolumns(self):
+ mapper(User, users)
+ s = select([users, func.count(addresses.c.address_id).label('count'), ("Name:" + users.c.user_name).label('concat')], from_obj=[users.outerjoin(addresses)], group_by=[c for c in users.c], order_by=[users.c.user_id])
+ sess = create_session()
+ (user7, user8, user9) = sess.query(User).select()
+ q = sess.query(User)
+ l = q.instances(s.execute(), "count", "concat")
+ print l
+ assert l == [
+ (user7, 1, "Name:jack"),
+ (user8, 3, "Name:ed"),
+ (user9, 0, "Name:fred")
+ ]
if __name__ == "__main__":