Re: MergeAppend could consider sorting cheapest child path
Andrei Lepikhov <lepihov@gmail.com>
From: Andrei Lepikhov <lepihov@gmail.com>
To: Alexander Pyhalov <a.pyhalov@postgrespro.ru>
Cc: Andy Fan <zhihuifan1213@163.com>, Bruce Momjian <bruce@momjian.us>,
PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>,
Alexander Korotkov <aekorotkov@gmail.com>,
Nikita Malakhov <HukuToc@gmail.com>
Date: 2025-05-07T09:03:04Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Mostly-cosmetic adjustments to estimate_multivariate_bucketsize().
- aadf7db66ef5 19 (unreleased) cited
-
Consider fractional paths in generate_orderedappend_paths
- 6b94e7a6da2f 15.0 cited
On 7/5/2025 08:57, Alexander Pyhalov wrote: > Andrei Lepikhov писал(а) 2025-05-07 08:02: >> On 5/5/2025 15:56, Alexander Pyhalov wrote: >>> Andrei Lepikhov писал(а) 2025-05-05 14:38: >>> Also logic a bit differs if path is NULL. In >>> get_cheapest_path_for_pathkeys_ext() we explicitly check for path >>> being NULL, in get_cheapest_fractional_path_for_pathkeys_ext() only >>> after calculating sort cost. >>> >>> I've tried to fix comments a bit and unified functions definitions. >> Generally seems ok, I'm not a native speaker to judge the comments. But: >> if (base_path && path != base_path) >> >> What is the case in your mind where the base_path pointer still may be >> null at that point? > > Hi. > > It seems if some childrel doesn't have valid pathlist, subpaths_valid > would be false in add_paths_to_append_rel() > and generate_orderedappend_paths() will not be called. So when we > iterate over live_childrels, > all of them will have cheapest_total path. This is why we can assert > that base_path is not NULL. I'm not sure I understand you correctly. Under which conditions will rel->cheapest_total_path be set to NULL for a childrel? Could you provide an example? -- regards, Andrei Lepikhov