On Sat, Oct 29, 2011 at 8:13 AM, Tom Lane <t...@sss.pgh.pa.us> wrote: > Hitoshi Harada <umi.tan...@gmail.com> writes: >> I have a doubt here, on sharing connection for each server. What if >> there are simultaneous scan on the same plan? Say, > >> -> Nested Loop >> -> Foreign Scan to table T1 on server A >> -> Foreign Scan to table T2 on server A > >> Okay, you are thinking about Foreign Join, so example above is too >> simple. But it is always possible to execute such a query if foreign >> scan nodes are separated far, isn't it? As far as I see from your >> explanation, scan T1 and scan T2 share the same connection. Now join >> node scans one row from left (T1) while asking rows from right (T2) >> without fetching all the rows from left. If T2 requests to server A, >> the connection's result (of T1) is discarded. Am I understand >> correctly? > > I have not looked at the code, but ISTM the way that this has to work is > that you set up a portal for each active scan. Then you can fetch a few > rows at a time from any one of them.
Hmm, true. Looking back at the original proposal (neither did I look at the code,) there seems to be a cursor mode. ISTM it is hard for fdw to know how the whole plan tree looks, so consequently do we always cursor regardless of estimated row numbers? I haven't had much experiences around cursor myself, but is it as efficient as non-cursor? Regards, -- Hitoshi Harada -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers