Andrei Lepikhov писал(а) 2025-05-07 12:03:
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?

Sorry, perhaps I was not clear enough. I've stated the opposite - it seems we can be sure that it's not NULL.
--
Best regards,
Alexander Pyhalov,
Postgres Professional


Reply via email to