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 по дате отправления: