I wrote:
> This may be arguing for a change in ruleutils' existing behavior,
> not sure. But when dealing with traditional-style inheritance,
> I've always thought that Vars above the Append were referring to
> the parent rel in its capacity as the parent, not in its capacity
> as the first child. With new-style partitioning drawing a clear
> distinction between the parent and all its children, it's easier
> to understand the difference.
OK, so experimenting, I see that it is a change: HEAD does
regression=# explain verbose select * from part order by a;
QUERY PLAN
---------------------------------------------------------------------------------
Sort (cost=362.21..373.51 rows=4520 width=8)
Output: part_p1.a, part_p1.b
Sort Key: part_p1.a
-> Append (cost=0.00..87.80 rows=4520 width=8)
-> Seq Scan on public.part_p1 (cost=0.00..32.60 rows=2260 width=8)
Output: part_p1.a, part_p1.b
-> Seq Scan on public.part_p2_p1 (cost=0.00..32.60 rows=2260 width=8)
Output: part_p2_p1.a, part_p2_p1.b
(8 rows)
The portion of this below the Append is fine, but I argue that
the Vars above the Append should say "part", not "part_p1".
In that way they'd look the same regardless of which partitions
have been pruned or not.
regards, tom lane