On Wed, Jun 8, 2016 at 12:25 PM, Amit Langote <langote_amit...@lab.ntt.co.jp > wrote:
> On 2016/06/08 14:13, Ashutosh Bapat wrote: > > On Tue, Jun 7, 2016 at 6:19 PM, Amit Langote wrote: > >> On Tue, Jun 7, 2016 at 7:47 PM, Ashutosh Bapat wrote: > >>> Looks good to me. If we add a column from the outer relation, the > >> "NULL"ness > >>> of inner column would be more clear. May be we should tweak the query > to > >>> produce few more rows, some with non-NULL columns from both the > >> relations. > >>> Also add a note to the comment in the test mentioning that such a join > >> won't > >>> be pushed down for a reader to understand the EXPLAIN output. Also, you > >>> might want to move that test, closer to other un-pushability tests. > >> > >> Done in the attached. Please check if my comment explains the reason > >> of push-down failure correctly. > > > > On further thought, I think we need to restrict the join pushdown only > for > > outer joins. Only those joins can produce NULL rows. If we go with that > > change, we will need my changes as well and a testcase with inner join. > > I think the added test in foreign_join_ok() would restrict only the outer > joins from being pushed down (and further, only those with placeholdervars > in their targetlist being referred to above their level). Do you have any > query handy as example where unintended push-down failure occurs? > > Right, PHVs are created in case of outer joins. So, for an inner join the list will not have anything in there for it. -- Best Wishes, Ashutosh Bapat EnterpriseDB Corporation The Postgres Database Company