On 2016/12/27 16:41, Etsuro Fujita wrote:
> On 2016/12/22 1:04, Ashutosh Bapat wrote:
>> 2. We should try to look for other not-so-cheap paths if the cheapest
>> one is
>> paramterized. You might want to use get_cheapest_path_for_pathkeys()
>> to find a
>> suitable unparameterized path by passing NULL for required_outer and
>> NIL for
>> pathkeys, that's a very strange usage, but I think it will serve the
>> purpose.
>> + /* Give up if the cheapest-total-cost paths are parameterized. */
>> + if (!bms_is_empty(PATH_REQ_OUTER(outer_path)) ||
>> + !bms_is_empty(PATH_REQ_OUTER(inner_path)))
>> + return NULL;
> I did that because I think that would work well for postgres_fdw, but I
> agree with you. Will revise.
While working on this, I noticed that in that case
get_cheapest_path_for_pathkeys() would return NULL because if the
cheapest-total-cost path is parameterized, then there are no
unparameterized paths in the rel's pathlist (see set_cheapest).
Best regards,
Etsuro Fujita