commit aa085a812c2db077b86caff366d31624b9a06ecf Author: Robert Haas Date: Thu Jan 8 15:57:34 2026 -0500 fix pgpa_process_unrolled_join return value diff --git a/contrib/pg_plan_advice/expected/join_order.out b/contrib/pg_plan_advice/expected/join_order.out index eaaa38f000c..f3dd7810484 100644 --- a/contrib/pg_plan_advice/expected/join_order.out +++ b/contrib/pg_plan_advice/expected/join_order.out @@ -159,7 +159,7 @@ SELECT * FROM jo_fact f JOIN_ORDER(f (d1 d2)) /* matched */ Generated Plan Advice: JOIN_ORDER(f (d1 d2)) - MERGE_JOIN_PLAIN(d2) + MERGE_JOIN_PLAIN((d1 d2)) NESTED_LOOP_MATERIALIZE(d2) SEQ_SCAN(f d1 d2) NO_GATHER(f d1 d2) diff --git a/contrib/pg_plan_advice/pgpa_walker.c b/contrib/pg_plan_advice/pgpa_walker.c index 4dffc60114a..fdc003ec509 100644 --- a/contrib/pg_plan_advice/pgpa_walker.c +++ b/contrib/pg_plan_advice/pgpa_walker.c @@ -438,7 +438,10 @@ static Bitmapset * pgpa_process_unrolled_join(pgpa_plan_walker_context *walker, pgpa_unrolled_join *ujoin) { - Bitmapset *all_relids = NULL; + Bitmapset *all_relids = bms_copy(ujoin->outer.scan->relids); + + /* If this fails, we didn't unroll properly. */ + Assert(ujoin->outer.unrolled_join == NULL); for (int k = 0; k < ujoin->ninner; ++k) {