> rev 2233 changes some things.  you no longer can make your
> "primaryjoin" conditions against the polymorphic selectable (i.e.
> the pjoin)...in all cases now, make the join conditions against the
> base tables (i.e. the way you originally had it):
>
>         mapper_A.add_property( 'link1',
>                 relation( Alink == 'A' and A or B,
>                     primaryjoin= table_A.c.link1_id==(Alink=='A'
> and table_A or table_B).c.id,
>                     foreignkey = (Alink=='A' and None or
> table_A.c.link1_id),
>                     remote_side=(Alink=='A' and table_A.c.id or
> None), lazy=True, uselist=False, post_update=True )
>         )
>
> it also does a big explicit check/error message if you try to make
> the joins against the select_table...since that was a pattern
> illustrated in some examples and a few people may have things set
> up that way.
>
> this approach is cleaner as now you never really deal with the
> "polymorphic" selectable besides sending it off to your mapper, and
> an entire class of errors these tests were getting go away since we
> arent trying to find a foreignkey in a giant UNION anymore. the
> LoaderStrategies of the relationships will "adapt" the more
> rudimentary join conditions to the polymorphic selectable when they
> construct the actual selection SQL.  (this is SA 0.3's greater
> separation of relationship definition/loader strategy definition,
> while slightly more latent in performance compared to 0.2, paying
> off).
thanks. 
hmm, it gets quite tricky to follow which revision does what... any 
idea of adding some sqlalchemy.revision = $Rev$ or 
sqlalchemy.version='0.3.4' identifications? ticket 428.

i saw your ticket 423 - about topological sort - just a suggestion. 
i'm using gadfly's kjbuckets for that, and although i guess u don't 
want to rely on 3rd party library in "C", u could copy the relevant 
source from there (it has 100% python version too). i've used 
kjbuckets for many years and it's proven bulletproof.

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