Re: pgsql: Fix planner's use of Result Cache with unique joins
| От | Tom Lane |
|---|---|
| Тема | Re: pgsql: Fix planner's use of Result Cache with unique joins |
| Дата | |
| Msg-id | 457998.1621779290@sss.pgh.pa.us обсуждение исходный текст |
| Ответ на | pgsql: Fix planner's use of Result Cache with unique joins (David Rowley <drowley@postgresql.org>) |
| Ответы |
Re: pgsql: Fix planner's use of Result Cache with unique joins
|
| Список | pgsql-committers |
David Rowley <drowley@postgresql.org> writes:
> Fix planner's use of Result Cache with unique joins
Coverity is not happy with this:
/srv/coverity/git/pgsql-git/postgresql/src/backend/optimizer/path/joinpath.c: 532 in get_resultcache_path()
526 * determining if the join is unique.
527 *
528 * XXX this could be enabled if the remaining join quals were made part of
529 * the inner scan's filter instead of the join filter. Maybe it's worth
530 * considering doing that?
531 */
>>> CID 1484914: Null pointer dereferences (FORWARD_NULL)
>>> Dereferencing null pointer "inner_path->param_info".
532 if (extra->inner_unique &&
533 list_length(inner_path->param_info->ppi_clauses) <
534 list_length(extra->restrictlist))
535 return NULL;
536
This complaint is triggered because elsewhere in the same function,
you're careful to check for inner_path->param_info being null before
trying to dereference it:
if ((inner_path->param_info == NULL ||
inner_path->param_info->ppi_clauses == NIL) &&
innerrel->lateral_vars == NIL)
return NULL;
Coverity reasons that it's probably a bug that you didn't do the same
here; and I think it's right.
regards, tom lane
В списке pgsql-committers по дате отправления: