Re: [HACKERS] Foreign Join pushdowns not working properly for outer joins - Mailing list pgsql-hackers

From Ashutosh Bapat
Subject Re: [HACKERS] Foreign Join pushdowns not working properly for outer joins
Date
Msg-id CAFjFpRfMOn9jMjg90LPy8VzxB87CrLYB=fH5h3w_LzzGmxuyow@mail.gmail.com
Whole thread Raw
In response to Re: [HACKERS] Foreign Join pushdowns not working properly for outer joins  (David Rowley <david.rowley@2ndquadrant.com>)
Responses Re: [HACKERS] Foreign Join pushdowns not working properly for outer joins  (Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>)
Re: [HACKERS] Foreign Join pushdowns not working properly for outer joins  (David Rowley <david.rowley@2ndquadrant.com>)
List pgsql-hackers
>>
>> The new name merge_fdw_options() is shorter than the one I chose, but
>> we are not exactly merging options for an upper relation since there
>> isn't the other fpinfo to merge from. But I think we can live with
>> merge_fdw_options().
>
> Perhaps "combine" is a better word? I didn't really see a problem with
> that. After I posted this I wished I'd made the function even more
> generic to accept either side as NULL and make up the new fpinfo from
> the non-NULL one, or Merge if both were non-NULL.  I liked that way
> much better than giving the function too much knowledge of what its
> purpose actually is. It's more likely to get used for something else
> in the future, which means there's less chance that someone else will
> make the same mistake.

It's more like copy for an upper rel and merge for a join rel. Your
point about making it side-agnostic is good but I doubt if we want to
spend more effort there. If somebody writes a code with the input plan
stuffed in the innerrel instead of the outerrel, s/he will notice it
immediately when testing as assertion would fail or there will be a
straight segfault. We will decide what to do then.

>
>> Once I fixed that, the testcases started showing an assertion failure,
>> since fpinfo of a base relation can not have an outerrel. Fixed the
>> assertion as well. If we are passing fpinfo's of joining relations,
>> there's no need to have outerrel and innerrel in fpinfo of join.
>
> Looks like you forgot to update the comment on the Assert()

Yes and I also forgot to update the function prologue to refer to the
fpinfo_o/i instead of inner and outer relations. Attached patch
corrects it.

-- 
Best Wishes,
Ashutosh Bapat
EnterpriseDB Corporation
The Postgres Database Company

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Attachment

pgsql-hackers by date:

Previous
From: Peter Geoghegan
Date:
Subject: Re: [HACKERS] [PATCH] Use $ parameters as replacement characters for pg_stat_statements
Next
From: Ashutosh Bapat
Date:
Subject: Re: [HACKERS] Parallel Append implementation