On Oct 2, 2008, at 4:05 PM, [EMAIL PROTECTED] wrote:

>
> On Thursday 02 October 2008 22:26:06 Michael Bayer wrote:
>> On Oct 2, 2008, at 11:57 AM, [EMAIL PROTECTED] wrote:
>>> hi
>>> lets say, A points to B.
>>> i do a query against A about which things link to some instance
>>> of B. then,
>>> 1) if i specify eagerload, i get many times same object-data
>>> being piped from the server; ok but i dont want it
>>> 2) if i dont specify eagerload (lazy), access to each A fires a
>>> lazyload-query for the (same) B! Although the object is in memory
>>> already. is this expected behaviour or? the relevant dbid is
>>> already present, hence it can be checked against session-caches
>>> etc?? what should i do here?
>>
>> if you load an A that wasnt previously present, its A.bs collection
>> is empty.
>> The individual B objects might be in the session but the
>> information that they are associated with your "A" is not present,
>> unless we scanned through the Session and matched up foreign keys.
>> This latter approach basically turns Session into its own
>> relational engine which is why we dont even try to get into that.
>> So the lazy query for the"B"s proceeds, but we do reuse the B's
>> already present in the session so there is far less overhead
>> associated with fetching the rows.
>>
>> The approach taken by some ORMs Ive seen is to link the A.bs load
>> to load the .bs for *all* As.  That seems pretty "dirty" to me
>> since it means we have to keep track of Queries and such.
>
> nah, it's a simple *toone singular reference, not a collection.
> can't something be done for it? hack something somewhere?

a simple many-to-one will use query.get(x) for the lazyload, and no  
SQL will be issued if B is already present in the session.


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