Commit 99c5852e authored by David Rowley's avatar David Rowley

Add missing NULL check when building Result Cache paths

Code added in 9e215378 to disable building of Result Cache paths when
not all join conditions are part of the parameterization of a unique
join failed to first check if the inner path's param_info was set before
checking the param_info's ppi_clauses.

Add a check for NULL values here and just bail on trying to build the
path if param_info is NULL. lateral_vars are not considered when
deciding if the join is unique, so we're not missing out on doing the
optimization when there are lateral_vars and no param_info.

Reported-by: Coverity, via Tom Lane
Discussion: https://postgr.es/m/457998.1621779290@sss.pgh.pa.us
parent f5024d8d
...@@ -530,8 +530,9 @@ get_resultcache_path(PlannerInfo *root, RelOptInfo *innerrel, ...@@ -530,8 +530,9 @@ get_resultcache_path(PlannerInfo *root, RelOptInfo *innerrel,
* considering doing that? * considering doing that?
*/ */
if (extra->inner_unique && if (extra->inner_unique &&
list_length(inner_path->param_info->ppi_clauses) < (inner_path->param_info == NULL ||
list_length(extra->restrictlist)) list_length(inner_path->param_info->ppi_clauses) <
list_length(extra->restrictlist)))
return NULL; return NULL;
/* /*
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment