Kouhei Kaigai <kai...@ak.jp.nec.com> writes:
>> On Fri, Oct 16, 2015 at 5:00 AM, Etsuro Fujita
>> <fujita.ets...@lab.ntt.co.jp> wrote:
>> I don't see how this can be right.  You're basically just pretending
>> EPQ doesn't exist in the remote join case, which isn't going to work
>> at all.  Those bits of code that look at es_epqTuple, es_epqTupleSet,
>> and es_epqScanDone are not optional.  You can't just skip over those
>> as if they don't matter.

> I think, it is right approach to pretend EPQ doesn't exist if scanrelid==0,
> because what replaced by these ForeignScan/CustomScan node are local join
> node like NestLoop.

That's just nonsense.  The reason that nestloop doesn't need its own EPQ
slot is that what it will be joining is tuples provided by scan nodes,
and it was the scan nodes that took care of fetching correct,
updated-if-need-be tuples for the EPQ check.  You can't just discard that
responsibility when you're implementing a join remotely ... at least not
if you want to preserve semantics similar to what happens with local

Or maybe I misunderstood what you meant, but it's certainly not OK to say
that EPQ is a no-op for a pushed-down join.  Rather, it has to perform all
the same checks that would have happened for any of its constitutent

                        regards, tom lane

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

Reply via email to