Fix order of parameters in a cost_sort call
authorRichard Guo <rguo@postgresql.org>
Mon, 9 Sep 2024 03:58:31 +0000 (12:58 +0900)
committerRichard Guo <rguo@postgresql.org>
Mon, 9 Sep 2024 03:58:31 +0000 (12:58 +0900)
In label_sort_with_costsize, the cost_sort function is called with the
parameters 'input_disabled_nodes' and 'input_cost' in the wrong order.
This does not cause any plan diffs in the regression tests, because
label_sort_with_costsize is only used to label the Sort node nicely
for EXPLAIN, and cost numbers are not displayed in regression tests.

Oversight in e22253467.  Fixed by passing arguments in the right
order.

Per report from Alexander Lakhin running UBSan.

Author: Alexander Lakhin
Discussion: https://postgr.es/m/a9b7231d-68bc-f117-a07c-96688f3e6aef@gmail.com

src/backend/optimizer/plan/createplan.c

index 8e0e5977a9fe3c8e14649b64077c16664c95f236..bb45ef318fb45d9e2223da48de4433c4ba1d2896 100644 (file)
@@ -5454,8 +5454,8 @@ label_sort_with_costsize(PlannerInfo *root, Sort *plan, double limit_tuples)
    Assert(IsA(plan, Sort));
 
    cost_sort(&sort_path, root, NIL,
-             lefttree->total_cost,
              plan->plan.disabled_nodes,
+             lefttree->total_cost,
              lefttree->plan_rows,
              lefttree->plan_width,
              0.0,