> > If so, my concern is, the helper function probably wouldn't >> extend to the parameterized-foreign-join-path cases, though that >> would work well for the unparameterized-foreign-join-path cases. We >> don't support parameterized-foreign-join paths for 9.6? >> > > If we do not find a local path with given parameterization, it means >> there are other local parameterized paths which are superior to it. This >> possibly indicates that there will be foreign join parameterised paths >> which are superior to this parameterized path, so we basically do not >> create foreign join path with that parameterization. >> > > The latest version of the postgres_fdw join pushdown patch will support > only the unparameterized-path case, so we don't have to consider this, but > why do you think the superiority of parameterizations is preserved between > remote joining and local joining? >
AFAIU, parameterization for local paths bubbles up from base relations. For foreign relations, we calculate the cost of parameterization when use_remote_estimate is ON, which means it's accurate. So, except that we will get clause selectivity wrong (if foreign tables were analyzed regularly even that won't be the case, I guess) resulting in some small sway in the costs as compared to those of parameterized foreign join paths. So, I am guessing that the local estimates for parameterized join paths would be closer to parameterized foreign paths (if we were to produce those). Hence my statement. There is always a possibility that those two costs are way too different, hence I have used phrase "possibly" there. I could be wrong. -- Best Wishes, Ashutosh Bapat EnterpriseDB Corporation The Postgres Database Company