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

I found the query I had that worked with .4.5 and it is different
because it is using not_ on each contains() which generates separate
subselects (with Exists), so that doesn't have aliasing problems. That
still works in .4.6.

On Wed, May 21, 2008 at 12:25 PM, Michael Bayer
<[EMAIL PROTECTED]> wrote:
>
> this might be a bug introduced in 0.4.6, it would be helpful if you
> could post a full test case as a trac ticket.   Though im not sure how
> this would have worked in 0.4.5 either since I don't think we have any
> coverage for this exact scenario and there wasn't any "aliasing" logic
> removed AFAIK.
>
>
> On May 21, 2008, at 12:07 PM, Bobby Impollonia wrote:
>
>>
>> Hi. If I have a many-to-many relation between Class1 and Class2, the
>> following query:
>> Class1
>> .query
>> .filter
>> (Class1.class2s.contains(obj1)).filter(Class1.class2s.contains(obj2))
>> , where obj1 and obj2 are instances of Class2, generates the following
>> sql in .4.6:
>>
>> SELECT <lots of columns>
>> FROM class1, secondary
>> WHERE class1.id = secondary.class1_id AND %s = secondary.class2_id AND
>> class1.id = secondary.class1_id AND  %s = secondary.class2_id
>>
>> Note that the secondary table isn't being aliased for each contains(),
>> so this will never return anything unless obj1==obj2. I think this
>> used to use separate subqueries (with Exists) for each contains(), so
>> this query worked before .4.6. (I only have .4.6 installed, so I can't
>> verify).
>>
>> Also, if obj1 and obj2 aren't actually instances of type Class2 but
>> are instead instances of some other mapped class that don't belong in
>> this relation, SQLA happily uses them in the above query if they have
>> a column with the same name as Class2's primary key. I would think
>> that throwing an exception in that case would be better behavior?
>>
>> >
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected]
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