Closed
Description
Migrated issue, originally created by Gabor Gombas
Hi,
See the attached test script - the only difference between classes C and D is the order of the definition of the two relations, yet querying C generates a LEFT OUTER JOIN to A, while querying D generates an inner JOIN as expected. Tested with rel_0_9; 0.8.1 generates the same query in both cases.
Gabor
Attachments: test.py
Metadata
Metadata
Assignees
Labels
Type
Projects
Relationships
Development
No branches or pull requests
Activity
sqlalchemy-bot commentedon Jul 15, 2014
Michael Bayer (@zzzeek) wrote:
OK "the same" threw me off here, these aren't "the same"....but I think I know what you're referring to
sqlalchemy-bot commentedon Jul 15, 2014
Michael Bayer (@zzzeek) wrote:
okey dokey #2976 and ref 12ce2ed
sqlalchemy-bot commentedon Jul 15, 2014
Gabor Gombas wrote:
Sorry for the ambiguity - 0.8:
While 0.9:
sqlalchemy-bot commentedon Jul 15, 2014
Gabor Gombas wrote:
Eh, you fix the code faster than I can write a comment :-)
sqlalchemy-bot commentedon Jul 15, 2014
Gabor Gombas wrote:
Ah ok, that's an older thread. Unfortunately, innerjoin="nested" does not seem to work:
sqlalchemy-bot commentedon Jul 15, 2014
Gabor Gombas wrote:
SQLite does work with innerjoin="nested"
sqlalchemy-bot commentedon Jul 15, 2014
Michael Bayer (@zzzeek) wrote:
that issue is where the new bug here was introduced
sqlalchemy-bot commentedon Jul 15, 2014
Michael Bayer (@zzzeek) wrote:
but "nested" failing on Oracle, ho hum that looks wrong too, let me try that on postgresql
sqlalchemy-bot commentedon Jul 15, 2014
Michael Bayer (@zzzeek) wrote:
wow, the 'nested' feature generates bad SQL. I have to revisit what that feature is supposed to do exactly, separate issue from this.
sqlalchemy-bot commentedon Jul 15, 2014
Michael Bayer (@zzzeek) wrote:
heh. well no, slightly different but still pretty deeply the same issue... :)
sqlalchemy-bot commentedon Jul 15, 2014
Michael Bayer (@zzzeek) wrote:
2976
released in 0.9.4 wherethe "outer join" propagation along a chain of joined eager loads
would incorrectly convert an "inner join" along a sibling join path
into an outer join as well, when only descendant paths should be
receiving the "outer join" propagation; additionally, fixed related
issue where "nested" join propagation would take place inappropriately
between two sibling join paths.
this is accomplished by re-introducing the removed flag "allow_innerjoin",
now inverted and named "chained_from_outerjoin". Propagating this flag
allows us to know when we have encountered an outerjoin along a load
path, without confusing it for state obtained from a sibling path.
fixes #3131
ref #2976
→ 61384fd
sqlalchemy-bot commentedon Jul 15, 2014
Michael Bayer (@zzzeek) wrote:
2976
released in 0.9.4 wherethe "outer join" propagation along a chain of joined eager loads
would incorrectly convert an "inner join" along a sibling join path
into an outer join as well, when only descendant paths should be
receiving the "outer join" propagation; additionally, fixed related
issue where "nested" join propagation would take place inappropriately
between two sibling join paths.
this is accomplished by re-introducing the removed flag "allow_innerjoin",
now inverted and named "chained_from_outerjoin". Propagating this flag
allows us to know when we have encountered an outerjoin along a load
path, without confusing it for state obtained from a sibling path.
fixes #3131
ref #2976
→ 43663e7
sqlalchemy-bot commentedon Jul 15, 2014
Changes by Michael Bayer (@zzzeek):
sqlalchemy-bot commentedon Jul 15, 2014
Michael Bayer (@zzzeek) wrote:
OK. This morning I kind of thought 0.9.7 was just about ready, but with your pace, it seems not. How much else do you have today?
5 remaining items