From: | Etsuro Fujita <fujita(dot)etsuro(at)lab(dot)ntt(dot)co(dot)jp> |
---|---|
To: | Ashutosh Bapat <ashutosh(dot)bapat(at)enterprisedb(dot)com> |
Cc: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Push down more full joins in postgres_fdw |
Date: | 2016-10-27 11:41:21 |
Message-ID: | d4767ed9-33d2-f392-6ce5-37d3d5ffd28e@lab.ntt.co.jp |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 2016/10/27 18:06, Ashutosh Bapat wrote:
> On Thu, Oct 27, 2016 at 12:46 PM, Etsuro Fujita
> <fujita(dot)etsuro(at)lab(dot)ntt(dot)co(dot)jp> wrote:
>> On 2016/10/26 19:53, Ashutosh Bapat wrote:
>>> On Wed, Oct 26, 2016 at 3:35 PM, Etsuro Fujita
>>>> My concern about your proposal is: it might not be worth complicating the
>>>> code to solve a problem that is actually not a problem in practice.
>>> To me the current code looks complicated esp. because of the recursion
>>> involved and usage of out parameters to isSubqueryExpr().
>> I don't think so. isSubqueryExpr is prety small, written in less than 50
>> lines, and the code looks rather simple to me.
>>> My
>>> suggestion goes inline with the current method of deparsing a Var.
>> Yeah, I think your approach makes it easy to search for the alias to a given
>> Var from the array you proposed. I think the complexity of your approach
>> would be in extra work for building and maintaining the array while
>> deparsing the query. I think that would probably need more invasive and
>> much larger changes to the existing code than what I proposed.
>>
>> I think this issue is optional, so I'd like to propose to leave this for the
>> committer's judge.
> Fine with me.
OK
Here is the updated version, which includes the restructuring you
proposed. Other than the above issue and the alias issue we discussed,
I addressed all your comments except one on testing; I tried to add test
cases where the remote query is deparsed as nested subqueries, but I
couldn't because IIUC, reduce_outer_joins reduced full joins to inner
joins or left joins. So, I added two test cases: (1) the joining
relations are both base relations (actually, we already have that) and
(2) one of the joining relations is a base relation and the other is a
join relation. I rebased the patch to HEAD, so I added a test case with
aggregate pushdown also.
Best regards,
Etsuro Fujita
Attachment | Content-Type | Size |
---|---|---|
postgres-fdw-subquery-support-v1.patch | application/x-patch | 38.0 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Amit Kapila | 2016-10-27 11:44:56 | Re: Speed up Clog Access by increasing CLOG buffers |
Previous Message | Mithun Cy | 2016-10-27 11:39:16 | Proposal : For Auto-Prewarm. |