On Apr 4, 2008, at 2:43 PM, Rick Morrison wrote:

>
> Wouldn't this kind of feature be more natural to include in the  
> Query constructor itself, to make Query() somewhat orthogonal with  
> select()?
>
> i.e.
>          session.query([MappedObject.id,  
> MappedObject.name]).filter(...).all()
>
> instead of
>           
> session.query(MappedObject).filter(...).values(MappedObject.id,  
> MappedObject.name).all()
> For more options, visit this group at 
> http://groups.google.com/group/sqlalchemy?hl=en
> -~----------~----~----~----~------~----~------~--~---
>

right now, its because something like this:

        sess.query(MappedObject.id, SomeOtherObject.foo,  
SomeThirdObject.somethingelse).join('foo')

is ambiguous.  The query's notion of "mapper zero" is a significant  
factor in how it works right now.   So I like that the Query() has an  
explicit "mapper zero", which when mapper-zero-like functions like  
join(), with_polymorphic(), eagerload(), deferred(), etc. etc. are  
called, theres no guesswork, or rules like "the first column  
determines the 'main' table".

I havent seen anyone propose any other ways around that concept, but  
whatever we come up with I would like to keep things as simple as  
possible...i think the assumption that Query always has a "root" table  
has held up pretty well.



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to