On Dec 28, 2011, at 11:34 AM, Kent wrote:

> Was it your intention to no longer allow this type of query().get()?
> 
> session.query(cls.orderid).get(orderid)

it was !   yes.


> 
> I get "InvalidRequestError: get() can only be used against a single mapped 
> class." but the wording is such that I'm not sure you intended to limit that 
> use case (there is only a single mapped class in that query).

>From the POV of that message there's just a Column, and no mapped class, 
>actually being passed.  I knew this wouldn't necessarily be very clear but 
>there was no better message I could think of.

> 
> I'll change such queries, just wanted to bring it up to see if you intended 
> it that way.
> 
> (Admittedly, if I recall correctly, when I first added it, I think I was 
> slightly surprised it worked as I expected...)

amazingly it took me just one second to find the originating issue, which was 
that the identity map was still being searched, thereby causing the wrong 
result:

http://www.sqlalchemy.org/trac/ticket/2144

When something is used in a way I didn't anticipate, my first instinct is often 
to first make that unanticipated case raise an error.   That means it's covered 
and people won't do it.   Later, if we decide it should do something, that can 
be re-introduced.   It's always easier to unlock a dead end with a well thought 
out approach, than to make multiple, small modifications to an existing 
behavior.

-- 
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 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to