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 sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at http://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.