Hi
The error appears if I do not specify the column name.
e.g
q = session.query(included_parts)
print q.all()
print q.column_descriptions
included_parts = session.query(
Part.sub_part,
Part.part,
Part.quantity).\
filter(Part.part=="our part").\
cte(name="included_parts", recursive=True)
incl_alias = aliased(included_parts, name="pr")
parts_alias = aliased(Part, name="p")
included_parts = included_parts.union_all(
session.query(
parts_alias.sub_part,
parts_alias.part,
parts_alias.quantity).\
filter(parts_alias.part==incl_alias.c.sub_part)
)
'''
q = session.query(
included_parts.c.sub_part,
func.sum(included_parts.c.quantity).label('total_quantity')
).\
group_by(included_parts.c.sub_part)
'''
q = session.query(included_parts)
print q.all()
print q.column_descriptions
2015-04-30 09:52:21,584 INFO sqlalchemy.engine.base.Engine WITH RECURSIVE
included_parts(sub_part, part, quantity) AS
(SELECT part.sub_part AS sub_part, part.part AS part, part.quantity AS quantity
FROM part
WHERE part.part = %(part_1)s UNION ALL SELECT p.sub_part AS p_sub_part, p.part
AS p_part, p.quantity AS p_quantity
FROM part AS p, included_parts AS pr
WHERE p.part = pr.sub_part)
SELECT included_parts.sub_part AS included_parts_sub_part, included_parts.part
AS included_parts_part, included_parts.quantity AS included_parts_quantity
FROM included_parts
INFO:sqlalchemy.engine.base.Engine:WITH RECURSIVE included_parts(sub_part,
part, quantity) AS
(SELECT part.sub_part AS sub_part, part.part AS part, part.quantity AS quantity
FROM part
WHERE part.part = %(part_1)s UNION ALL SELECT p.sub_part AS p_sub_part, p.part
AS p_part, p.quantity AS p_quantity
FROM part AS p, included_parts AS pr
WHERE p.part = pr.sub_part)
SELECT included_parts.sub_part AS included_parts_sub_part, included_parts.part
AS included_parts_part, included_parts.quantity AS included_parts_quantity
FROM included_parts
2015-04-30 09:52:21,586 INFO sqlalchemy.engine.base.Engine {'part_1': 'our
part'}
INFO:sqlalchemy.engine.base.Engine:{'part_1': 'our part'}
[(u'1', u'our part', 1)]
---------------------------------------------------------------------------AttributeError
Traceback (most recent call
last)<ipython-input-8-61b4f7a0eb8b> in <module>() 28 print q.all() 29
---> 30 print q.column_descriptions
c:\tg2env27\lib\site-packages\sqlalchemy-1.0.2-py2.7.egg\sqlalchemy\orm\query.pyc
in column_descriptions(self) 2580 else None 2581
}-> 2582 for ent in self._entities 2583 ] 2584
AttributeError: 'CTE' object has no attribute 'entity'
Cheers g
On Wednesday, April 29, 2015 at 11:16:54 AM UTC+2, g wrote:
>
> Hi all
> I have a query like that
>
> from sqlalchemy.orm import aliased
> class Part(Base):
> __tablename__ = 'part'
> part = Column(String, primary_key=True)
> sub_part = Column(String, primary_key=True)
> quantity = Column(Integer)
> included_parts = session.query(
> Part.sub_part,
> Part.part,
> Part.quantity).\
> filter(Part.part=="our part").\
> cte(name="included_parts", recursive=True)
> incl_alias = aliased(included_parts, name="pr")parts_alias = aliased(Part,
> name="p")included_parts = included_parts.union_all(
> session.query(
> parts_alias.sub_part,
> parts_alias.part,
> parts_alias.quantity).\
> filter(parts_alias.part==incl_alias.c.sub_part)
> )
> q = session.query(
> included_parts.c.sub_part,
> func.sum(included_parts.c.quantity).
> label('total_quantity')
> ).\
> group_by(included_parts.c.sub_part)
>
>
> in sqlalchemy 1.0 we do:
>
> q.column_descriptions to get the query columns
>
> result is *AttributeError: 'CTE' object has no attribute 'entity'*
>
> *Note:*
> This was working with release 0.9.9
>
> Any idea how to fix it ?
>
>
> Cheers g
>
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.