6. The method of claim 1 , wherein the first query includes one or more filter predicates outside the first outer join; wherein the one or more filter predicates reference a column; wherein the transformed query includes the one or more filter predicates on a same level as the second predicate; wherein the one or more filter predicates, if evaluated in the first query or in the transformed query, would eliminate, from a set of rows, rows for which the referenced column is null.
1. A method comprising: transforming a first query to a transformed query; wherein the first query includes: a first outer join of a first database object and a second database object, and a first join predicate that specifies a first condition of the first database object for the first outer join, wherein the first join predicate does not reference the second database object; wherein the transformed query does not include the first join predicate but does include: a second predicate that specifies a second condition of the first database object, wherein the second predicate references the second database object; wherein the transformed query is semantically equivalent to the first query; causing execution of the transformed query instead of the first query; wherein the method is performed by one or more computing devices.