diff -U3 /home/postgres/postgres/src/test/regress/expected/partition_prune.out /home/postgres/postgres/build/testrun/recovery/027_stream_regress/data/results/partition_prune.out --- /home/postgres/postgres/src/test/regress/expected/partition_prune.out 2025-12-03 19:56:25.796607210 +0000 +++ /home/postgres/postgres/build/testrun/recovery/027_stream_regress/data/results/partition_prune.out 2025-12-03 20:00:18.441510457 +0000 @@ -4774,6 +4774,7 @@ rollback; -- A case with nested MergeAppend with its own PartitionPruneInfo. create index on part_abc (a); +ERROR: failed to find parent tuple for heap-only tuple at (0,2) in table "part_abc_2" alter table part_abc add d int; create table part_abc_3 partition of part_abc for values in (3, 4) partition by range (d); create table part_abc_3_1 partition of part_abc_3 for values from (minvalue) to (1); @@ -4783,44 +4784,36 @@ select min(a) over (partition by a order by a) from part_abc where a >= stable_one() + 1 and d <= stable_one() union all select min(a) over (partition by a order by a) from part_abc where a >= stable_one() + 1 and d >= stable_one(); - QUERY PLAN ----------------------------------------------------------------------------------------------- + QUERY PLAN +--------------------------------------------------------------------------------------------- Append -> Subquery Scan on unnamed_subquery_2 -> WindowAgg Window: w1 AS (PARTITION BY part_abc.a ORDER BY part_abc.a) - -> Append - Subplans Removed: 1 - -> Index Scan using part_abc_2_a_idx on part_abc_2 part_abc_1 - Index Cond: (a >= (stable_one() + 1)) - Filter: (d <= stable_one()) - -> Merge Append - Sort Key: part_abc_3.a - Subplans Removed: 1 - -> Index Scan using part_abc_3_1_a_idx on part_abc_3_1 part_abc_3 - Index Cond: (a >= (stable_one() + 1)) - Filter: (d <= stable_one()) - -> Index Scan using part_abc_3_2_a_idx on part_abc_3_2 part_abc_4 - Index Cond: (a >= (stable_one() + 1)) - Filter: (d <= stable_one()) + -> Sort + Sort Key: part_abc.a + -> Append + Subplans Removed: 2 + -> Seq Scan on part_abc_2 part_abc_1 + Filter: ((d <= stable_one()) AND (a >= (stable_one() + 1))) + -> Seq Scan on part_abc_3_1 part_abc_2 + Filter: ((d <= stable_one()) AND (a >= (stable_one() + 1))) + -> Seq Scan on part_abc_3_2 part_abc_3 + Filter: ((d <= stable_one()) AND (a >= (stable_one() + 1))) -> Subquery Scan on unnamed_subquery_1 -> WindowAgg - Window: w1 AS (PARTITION BY part_abc_5.a ORDER BY part_abc_5.a) - -> Append - Subplans Removed: 1 - -> Index Scan using part_abc_2_a_idx on part_abc_2 part_abc_6 - Index Cond: (a >= (stable_one() + 1)) - Filter: (d >= stable_one()) - -> Merge Append - Sort Key: a - Subplans Removed: 1 - -> Index Scan using part_abc_3_2_a_idx on part_abc_3_2 part_abc_8 - Index Cond: (a >= (stable_one() + 1)) - Filter: (d >= stable_one()) - -> Index Scan using part_abc_3_3_a_idx on part_abc_3_3 part_abc_9 - Index Cond: (a >= (stable_one() + 1)) - Filter: (d >= stable_one()) -(35 rows) + Window: w1 AS (PARTITION BY part_abc_4.a ORDER BY part_abc_4.a) + -> Sort + Sort Key: part_abc_4.a + -> Append + Subplans Removed: 2 + -> Seq Scan on part_abc_2 part_abc_5 + Filter: ((d >= stable_one()) AND (a >= (stable_one() + 1))) + -> Seq Scan on part_abc_3_2 part_abc_6 + Filter: ((d >= stable_one()) AND (a >= (stable_one() + 1))) + -> Seq Scan on part_abc_3_3 part_abc_7 + Filter: ((d >= stable_one()) AND (a >= (stable_one() + 1))) +(27 rows) drop view part_abc_view; drop table part_abc;