diff options
Diffstat (limited to 'lib/sqlalchemy')
| -rw-r--r-- | lib/sqlalchemy/orm/query.py | 5 | ||||
| -rw-r--r-- | lib/sqlalchemy/util.py | 7 |
2 files changed, 6 insertions, 6 deletions
diff --git a/lib/sqlalchemy/orm/query.py b/lib/sqlalchemy/orm/query.py index bd9069e3a..fc83f9195 100644 --- a/lib/sqlalchemy/orm/query.py +++ b/lib/sqlalchemy/orm/query.py @@ -1375,8 +1375,7 @@ class Query(object): elif single_entity: rows = [process[0](row, None) for row in fetch] else: - rows = [util.NamedTuple(labels, - [proc(row, None) for proc in process]) + rows = [util.NamedTuple([proc(row, None) for proc in process], labels) for row in fetch] if filter: @@ -1445,7 +1444,7 @@ class Query(object): attributes.instance_state(newrow[i]), attributes.instance_dict(newrow[i]), load=load, _recursive={}) - result.append(util.NamedTuple(row._labels, newrow)) + result.append(util.NamedTuple(newrow, row._labels)) return iter(result) finally: diff --git a/lib/sqlalchemy/util.py b/lib/sqlalchemy/util.py index f7d696971..c3ae25589 100644 --- a/lib/sqlalchemy/util.py +++ b/lib/sqlalchemy/util.py @@ -642,11 +642,12 @@ class NamedTuple(tuple): """ - def __new__(cls, labels, vals): + def __new__(cls, vals, labels=None): vals = list(vals) t = tuple.__new__(cls, vals) - t.__dict__ = dict(itertools.izip(labels, vals)) - t._labels = labels + if labels: + t.__dict__ = dict(itertools.izip(labels, vals)) + t._labels = labels return t def keys(self): |
