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.

Reply via email to