Thread
-
Re: MergeAppend could consider sorting cheapest child path
Alexander Pyhalov <a.pyhalov@postgrespro.ru> — 2025-05-07T06:57:16Z
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. -- Best regards, Alexander Pyhalov, Postgres Professional