Re: Foreign join pushdown vs EvalPlanQual
От | Etsuro Fujita |
---|---|
Тема | Re: Foreign join pushdown vs EvalPlanQual |
Дата | |
Msg-id | 561491D3.3070901@lab.ntt.co.jp обсуждение исходный текст |
Ответ на | Re: Foreign join pushdown vs EvalPlanQual (Robert Haas <robertmhaas@gmail.com>) |
Ответы |
Re: Foreign join pushdown vs EvalPlanQual
Re: Foreign join pushdown vs EvalPlanQual |
Список | pgsql-hackers |
On 2015/10/07 6:19, Robert Haas wrote: > On Fri, Oct 2, 2015 at 4:26 AM, Kyotaro HORIGUCHI > <horiguchi.kyotaro@lab.ntt.co.jp> wrote: >> During join search, a joinrel should be comptible between local >> joins and remote joins, of course target list also should be >> so. So it is quite difficult to add wholerow resjunk for joinrels >> before whole join tree is completed even if we allow row marks >> that are not bound to base RTEs. > Suppose ROW_MARK_COPY is in use, and suppose the query is: SELECT > ft1.a, ft1.b, ft2.a, ft2.b FROM ft1, ft2 WHERE ft1.x = ft2.x; > > When the foreign join is executed, there's going to be a slot that > needs to be populated with ft1.a, ft1.b, ft2.a, ft2.b, and a whole row > reference. Now, let's suppose the slot descriptor has 5 columns: those > 4, plus a whole-row reference for ROW_MARK_COPY. IIUC, I think that if ROW_MARK_COPY is in use, the descriptor would have 6 columns: those 4, plus a whole-row var for ft1 and another whole-row bar for ft2. Maybe I'm missing something, though. > 4, plus a whole-row reference for ROW_MARK_COPY. If we know what > values we're going to store in columns 1..4, couldn't we just form > them into a tuple to populate column 5? We don't actually need to be > able to fetch such a tuple from the remote side because we can just > construct it. I think. I also was thinking whether we could replace one of the whole-row vars with a whole-row var that represents the scan slot of the ForeignScanState node. Best regards, Etsuro Fujita
В списке pgsql-hackers по дате отправления: