I'm a bit unsatisfied with this output because it doesn't tell me the
plan it used to construct the CTE being scanned.
rhaas=# explain with wumpus as (select * from foo where id < 200)
select * from foo f, wumpus c, wumpus u where f.creator_id = c.id and
f.last_updater_id = u.id; QUERY PLAN
-----------------------------------------------------------------------------Hash Join (cost=31.44..74.94 rows=1000
width=36) Hash Cond: (f.creator_id = c.id) InitPlan -> Seq Scan on foo (cost=0.00..18.50 rows=199 width=12)
Filter: (id < 200) -> Hash Join (cost=6.47..36.22 rows=1000 width=24) Hash Cond: (f.last_updater_id = u.id)
-> Seq Scan on foo f (cost=0.00..16.00 rows=1000 width=12) -> Hash (cost=3.98..3.98 rows=199 width=12)
-> CTE Scan on wumpus u (cost=0.00..3.98 rows=199 width=12) -> Hash (cost=3.98..3.98 rows=199
width=12) -> CTE Scan on wumpus c (cost=0.00..3.98 rows=199 width=12)
(12 rows)
I haven't looked at what would be required to fix this, but I think we
should fix it before releasing 8.4.
...Robert