thats strange, i dont suppose you could send me how you're setting up that polymorphic union
On Dec 3, 2008, at 3:05 PM, [EMAIL PROTECTED] wrote: > > and maybe related: > def query_by_id( klas, idname, oid, .....): > q = session.query( klas).filter_by( **{idname: oid}) > # filter by atype for concrete > m = class_mapper( klas) > concrete = bool( m.with_polymorphic[1] ) > if concrete: q= q.filter( m.polymorphic_on == klas.__name__) > return q.all() > > generates a query like > > SELECT pu_a.* > FROM (SELECT A.* FROM "A" > UNION ALL > SELECT C.* FROM "C") > AS pu_a, > (SELECT A.* FROM "A" > UNION ALL > SELECT C.* FROM "C") > AS pu_a > WHERE pu_a.db_id = ? AND pu_a.atype = ? > > with repeated union twice in the FROM, and error thereof. > Somehow the mapper.polymorphic_on is not recognized as already being > there and pulls the union once more? > if there's no q.filter( m.polymorphic_on == klas.__name__), no errors > (but returns multiple objects). > > this on latest trunk. > > svil > > On Wednesday 03 December 2008 19:29:31 Michael Bayer wrote: >> it needed some more work. the final version of this fix is in >> r5412. >> >> On Dec 3, 2008, at 10:49 AM, Gaetan de Menten wrote: >>> On Wed, Dec 3, 2008 at 16:04, Michael Bayer >>> >>> <[EMAIL PROTECTED]> wrote: >>>> this ones big, i can handle it. the attached patch makes your >>>> case work, but the problem represented here still makes itself >>>> apparent in other ways and I havent strength tested this patch. >>>> you might want to see if this patch works in all of your test >>>> cases. >>> >>> FWIW, my (only) "more complete" test involving polymorphic >>> concrete inheritance passes too (and produces correct SQL). >>> Your patch seem fine and doesn't seem to break unrelated tests. >>> >>> Thanks for the quick reaction time, as usual. >>> -- >>> Gaƫtan de Menten >>> http://openhex.org >> >> > > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---