if the original "q" is a select(), this should work:

query(MyClass, q.c.somecol, q.c.someothercol).from_statement(q)

if not then I guess I'll screw around with it to see what works.



On Apr 25, 2013, at 10:37 AM, Richard Gerd Kuesters <rich...@humantech.com.br> 
wrote:

> Yup, I agree with you, but things are a little out of hand for me to use 
> ORM-level queries. I'll see what I can do ...
> 
> Thanks! :)
> Cheers,
> Richard.
> 
> On 04/25/2013 11:31 AM, Michael Bayer wrote:
>> you'd need to organize things differently for the column grabbing to work 
>> out.
>> 
>> I'd advise producing the query using ORM-level Query in the first place so 
>> that you don't need to use from_statement(), which is really a last resort 
>> system.
>> 
>> 
>> On Apr 25, 2013, at 10:27 AM, Richard Gerd Kuesters 
>> <rich...@humantech.com.br> wrote:
>> 
>>> Well, not the desired result ... Now things justs blows :-) 
>>> 
>>> sqlalchemy.exc.NoSuchColumnError: "Could not locate column in row for 
>>> column 'anon_1.level'"
>>> 
>>> 
>>> Cheers,
>>> Richard.
>>> 
>>> 
>>> On 04/25/2013 11:03 AM, Michael Bayer wrote:
>>>> why not just say session.query(MyObj, q.alias()) ?        creating ad-hoc 
>>>> mappers is relatively expensive.
>>>> 
>>>> 
>>>> 
>>>> On Apr 25, 2013, at 8:56 AM, Richard Gerd Kuesters 
>>>> <rich...@humantech.com.br> wrote:
>>>> 
>>>>> Well, probably nevermind because I made a workaround that satisfies me 
>>>>> (may not be elegant, but that's OK).
>>>>> 
>>>>> Basically, I created the "o" type a little different: "o = 
>>>>> type('MyObjExt', (Base,), {'__table__':q.alias('q')})" and append it to 
>>>>> the query like: "session.query(MyObj, o).from_statement(q).all()"
>>>>> 
>>>>> Okay, now it returns a typle, but at least I don't have to make a second 
>>>>> query :)
>>>>> 
>>>>> 
>>>>> Cheers,
>>>>> Richard.
>>>>> 
>>>>> On 04/25/2013 09:41 AM, Richard Gerd Kuesters wrote:
>>>>>> Hi all,
>>>>>> 
>>>>>> I've been playing with "sqla_hierarchy" from 
>>>>>> https://github.com/marplatense/sqla_hierarchy .
>>>>>> 
>>>>>> The problem is: the returned query appends 3 columns: level (Integer), 
>>>>>> is_leaf (Boolean) and connect_path (pg ARRAY).
>>>>>> 
>>>>>> So far, so good. If I execute the query using 
>>>>>> "session.execute(q).fetchall()", it works like a charm. But, as we know, 
>>>>>> "session.execute" returns a RowProxy, not objects. Using 
>>>>>> "session.query(MyObj).from_statement(q).all()", I'm able to get my 
>>>>>> mapped objects, but without the extra columns that would make me very 
>>>>>> pleased (level, is_leaf, connect_path). Is there a way to get around 
>>>>>> this?
>>>>>> 
>>>>>> I have done testings using "o = type('MyObjExt', (MyObj,), {'__table__': 
>>>>>> q}" and them use it on the session.query, *but* it looses foreign key 
>>>>>> references - or, well, I don't know how to "explain" this to the mapper 
>>>>>> (?), since MyObj is polymorphic (probably the pitfall?).
>>>>>> 
>>>>>> 
>>>>>> Thanks for your time and help.
>>>>>> 
>>>>>> Best regards,
>>>>>> Richard.
>>>>>> -- 
>>>>>> 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?hl=en.
>>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>>  
>>>>>>  
>>>>> 
>>>>> 
>>>>> -- 
>>>>> 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?hl=en.
>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>  
>>>>>  
>>>> 
>>>> -- 
>>>> 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?hl=en.
>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>  
>>>>  
>>> 
>>> 
>>> -- 
>>> 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?hl=en.
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>  
>>>  
>> 
>> -- 
>> 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?hl=en.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>  
>>  
> 
> 
> -- 
> 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?hl=en.
> For more options, visit https://groups.google.com/groups/opt_out.
>  
>  

-- 
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?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to