.. include:: changelog_07.rst
:start-line: 5
+.. changelog::
+ :version: 0.9.10
+
+ .. change::
+ :tags: feature, orm
+ :tickets: 3320
+
+ Added a new entry ``"entity"`` to the dictionaries returned by
+ :attr:`.Query.column_descriptions`. This refers to the primary ORM
+ mapped class or aliased class that is referred to by the expression.
+ Compared to the existing entry for ``"type"``, it will always be
+ a mapped entity, even if extracted from a column expression, or
+ None if the given expression is a pure core expression.
+
.. changelog::
:version: 0.9.9
:released: March 10, 2015
[
{
'name': 'User', 'type': User, 'aliased': False,
- 'expr': User}]
+ 'expr': User, 'entity': User}]
),
(
sess.query(User.id, User),
[
{
'name': 'id', 'type': users.c.id.type,
- 'aliased': False, 'expr': User.id},
+ 'aliased': False, 'expr': User.id, 'entity': User},
{
'name': 'User', 'type': User, 'aliased': False,
- 'expr': User}
+ 'expr': User, 'entity': User}
]
),
(
[
{
'name': 'id', 'type': users.c.id.type,
- 'aliased': False, 'expr': User.id},
+ 'aliased': False, 'expr': User.id, 'entity': User},
{
'name': None, 'type': User, 'aliased': True,
- 'expr': user_alias}
+ 'expr': user_alias, 'entity': user_alias}
]
),
(
[
{
'name': 'aalias', 'type': Address, 'aliased': True,
- 'expr': address_alias}
+ 'expr': address_alias, 'entity': address_alias}
]
),
(
[
{
'name': 'uname', 'type': users.c.name.type,
- 'aliased': False, 'expr': name_label},
+ 'aliased': False, 'expr': name_label, 'entity': User},
{
'name': None, 'type': fn.type, 'aliased': False,
- 'expr': fn},
+ 'expr': fn, 'entity': User},
]
),
+ (
+ sess.query(users.c.name),
+ [{
+ "name": "name", "type": users.c.name.type,
+ "aliased": False, "expr": users.c.name, "entity": None
+ }]
+ ),
(
sess.query(bundle),
[
- {'aliased': False,
- 'expr': bundle,
- 'type': Bundle,
- 'name': 'b1'}
+ {
+ 'aliased': False,
+ 'expr': bundle,
+ 'type': Bundle,
+ 'name': 'b1', 'entity': User
+ }
]
)
]: