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 CAFjFpRco0UwAqakPK8Lqw5KSo7A167-JZQ_wHR_i9n1jF4w_0A@mail.gmail.com
Whole thread Raw
In response to Re: [HACKERS] Foreign Join pushdowns not working properly for outer joins  (Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>)
List pgsql-hackers
Added this to 2017/07 commitfest.

On Fri, Mar 10, 2017 at 10:03 AM, Ashutosh Bapat
<ashutosh.bapat@enterprisedb.com> wrote:
>>>
>>> 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



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



pgsql-hackers by date:

Previous
From: Ashutosh Bapat
Date:
Subject: Re: [HACKERS] IF NOT EXISTS option for CREATE SERVER and CREATE USERMAPPING statements
Next
From: Ashutosh Bapat
Date:
Subject: Re: [HACKERS] dropping partitioned tables without CASCADE