On 4/30/15 4:02 AM, g wrote:
Hi
The error appears if I do not specify the column name.


thanks very much! this issue was actually set to go out in 0.9.10 as well, but is now fixed. see https://bitbucket.org/zzzeek/sqlalchemy/issue/3403/0910-10-regression-re-column_descriptions


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 ---> 30print q.column_descriptionsc:\tg2env27\lib\site-packages\sqlalchemy-1.0.2-py2.7.egg\sqlalchemy\orm\query.pyc in column_descriptions(self) 2580 else None2581 } -> 2582for ent in self._entities2583 ] 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] <mailto:[email protected]>. To post to this group, send email to [email protected] <mailto:[email protected]>. Visit this group at http://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.

--
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.

Reply via email to