I can totally see a possibility that the tweaks I made in 1177 might cause
a problem.
However, this particular test confuses me (i.e., that it ever worked at all)
# create a Two
two = Two()
two.id = 2
# create a One
one = One()
one.id = 1
# associate One with Two at the *id* level, but
# dont actually connect the two objects together
one.two_id = 2
# save to the DB
objectstore.commit()
# call mapper.get(1) - as One is still in the identity map,
# no SQL should really take place here...
one = One.mapper.get(1)
# Two is attached to One ? whys that ? Possibly
# in pre 1177, the lazyloader attached to One would now fire off.
# but i would consider *that* to be more buggy.... 'one' was just
# created, in memory, why would it magically have a Two
# attached to it now? also note that if the one-two relation is
# eager, youd get this same behavior pre-1177 since there is
# similarly no lazy loader attached
assert one.two is not None
# unless, we explicitly say, get One back from the database:
objectstore.refresh(one) # or objectstore.expire(one)
# ah now it works !
assert one.two is not None
# what does SQLALchemy usually expect ?
# usually, that you deal with object references and not ID's
one = One()
one.two = Two()
objectstore.commit()
hope this helps
Christopher Armstrong wrote:
> Hi all, I've noticed a regression in recent trunk versions of SQLAlchemy,
> regarding relations.
>
> I'm working with Gustavo Niemeyer, and I believe he contacted zzzeek about
> a
> similar issue. We ran into this problem in another case where there was
> some
> SQLAlchemy code that wasn't properly honoring the "passive" flag... Now,
> even though the fix that went in for this is still there in [EMAIL PROTECTED],
> some
> *other* code changes have regressed it back to its original condition.
> I've
> attached a minimal example showing the problem.
>
> -r 1176 runs the test fine. -r 1177, all the way up to HEAD, error out
> with
> the relation-ed attribute evaluating to None. So something in 1176:1177
> caused this regression. I was unable to figure out exactly what it was,
> but
> I hope this information should make it trivial to spot the problem.
>
> """
> r1177 | zzzeek | 2006-03-20 20:38:54 -0800 (Mon, 20 Mar 2006)
> a few changes to attributes.py to allow faster initialization of object
> attributes on new objects
> """
>
> Looks related ;-)
>
> Thanks!
>
> --
> Christopher Armstrong
> International Man of Twistery
> http://radix.twistedmatrix.com/
> http://twistedmatrix.com/
> http://canonical.com/
>
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Sqlalchemy-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users