| From: | David Rowley <drowley(at)postgresql(dot)org> |
|---|---|
| To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
| Subject: | pgsql: Empty partial_pathlist when unsetting consider_parallel flag |
| Date: | 2026-10-29 03:22:31 |
| Message-ID: | E1xMGil-00000001Cm6-3hsE@gemulon.postgresql.org |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-committers |
Empty partial_pathlist when unsetting consider_parallel flag
It's not valid for a RelOptInfo to have a non-empty partial_pathlist
when its consider_parallel is true. In set_append_rel_pathlist() when
we see the parent rel doesn't have consider_parallel set, we set that
property to false for the child. It is possible that the child already
has some partial paths at that point, so we need to nullify that list as
well as set the consider_parallel flag to false.
For the reported problem case, the partial paths had been created during
set_subquery_pathlist(). These not being empty was causing an Assert
failure on cassert builds. I think this could only have gone on to
result in some wasted planner effort in non-cassert builds, but cannot
confirm if anything worse could have happened.
Bug: #19803
Reported-by: Gowtham Reddy <gowthamdoma18(at)gmail(dot)com>
Author: David Rowley <dgrowleyml(at)gmail(dot)com>
Tested-by: Gowtham Reddy <gowthamdoma18(at)gmail(dot)com>
Discussion: https://postgr.es/m/19803-1fcc1df108c54ab6@postgresql.org
Backpatch-through: 14
Branch
------
REL_14_STABLE
Details
-------
https://git.postgresql.org/pg/commitdiff/b0fa692801d1a0f8d8480bc21d57992a41ee2fd5
Modified Files
--------------
src/backend/optimizer/path/allpaths.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Jeff Davis | 2026-10-29 06:26:37 | pgsql: PG 19: Add migration note about tsearch & pg_trgm. |
| Previous Message | David Rowley | 2026-10-29 03:22:11 | pgsql: Empty partial_pathlist when unsetting consider_parallel flag |