Kent <jkentbo...@gmail.com> wrote:
> Mike, > > When using use_ansi=False for Oracle (8) in conjunction with joinedload-ing > an inline view property, SQLAlchemy-0.8.7 renders an inner join instead of an > outer join. This has been fixed in SQLAlchemy-0.9.0, but, as I'm not > prepared for the migration yet, I was hoping and failing to find the bug > ticket and hopefully a patch. Do you know when/where this was fixed and > whether the fix would be patch'able in 0.7 or at least 0.8? > > The attached script runs on 0.9.0+ but the assertion fails on 0.8.7. > > The only difference in SQL output is the outer join "(+)": > > SELECT products.productid AS products_productid, anon_1.productid AS > anon_1_productid, anon_1.siteid AS anon_1_siteid, anon_1.qty AS anon_1_qty > FROM products, (SELECT inventory.productid AS productid, inventory.siteid AS > siteid, sum(inventory.qty) AS qty > FROM inventory GROUP BY inventory.productid, inventory.siteid) anon_1 > WHERE anon_1.productid(+) = products.productid ORDER BY anon_1.siteid > > Interestingly, use-ansi=True correctly renders "LEFT OUTER JOIN" in 0.8.7 but > it fails to render as an outer join with use-ansi=False. > > Thanks for you time and exceptional software, > Kent > no specific fixes are logged, however http://docs.sqlalchemy.org/en/rel_0_9/changelog/migration_09.html#many-join-and-left-outer-join-expressions-will-no-longer-be-wrapped-in-select-from-as-anon-1 refers to a very large change in how the ORM decides to join things. That would cause some kinds of joinedloads to render differently , which would impact how (+) comes out as well, but i wouldn’t think it would have the effect that the missing (+) is the only change, it would be more than that. So I have no better idea than you, so the method I’d do is just to git bisect (http://git-scm.com/docs/git-bisect) through revisions until you find the fix. If it’s a big merge revision, I can look into it to find something specific, but if you can get me a rev ID that would be a good start. -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at http://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.