On Fri, Jan 13, 2017 at 6:22 AM, Etsuro Fujita <fujita.ets...@lab.ntt.co.jp> wrote: > My biggest concern about GetExistingLocalJoinPath is that might not be > extendable to the case of foreign-join paths with parameterization; in which > case, fdw_outerpath for a given foreign-join path would need to have the > same parameterization as the foreign-join path, but there might not be any > existing paths with the same parameterization in the path list.
I agree that this is a problem. > You might > think we could get the fdw_outerpath by getting an existing path with no > parameterization as in GetExistingLocalJoinPath and then modifying the > path's param_info to match the parameterization of the foreign-join path. I > don't know that really works, but that might be inefficient. I am not sure about this. > What I have in mind to support foreign-join paths with parameterization for > postgres_fdw like this: (1) generate parameterized paths from any joinable > combination of the outer/inner cheapest-parameterized paths that have pushed > down the outer/inner relation to the remote server, in a similar way as > postgresGetForeignJoinPaths creates unparameterized paths, and (2) create > fdw_outerpath for each parameterized path from the outer/inner paths used to > generate the parameterized path, by create_nestloop_path (or, > create_hashjoin_path or create_mergejoin_path if full join), so that the > resulting fdw_outerpath has the same parameterization as the paramterized > path. This would probably work and might be more efficient. And the patch > I proposed would be easily extended to this, by replacing the outer/inner > cheapest-total paths with the outer/inner cheapest-parameterized paths. > Attached is the latest version of the patch. Yes, I think that's broadly the approach Tom was recommending. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (firstname.lastname@example.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers