Bennie Swart <bennieswart@gmail.com> writes:
> -- join elimination fails
> -- expect both b and c to be eliminated, but b remains
> explain (costs off)
> select a.*
> from foo a
> left join foo b on (b.id1, b.id2) = (a.id1, a.id2)
> left join foo c on (c.id1, c.id2) = (a.id1, b.id2);
> -- ^^^^^^^^^^^^^^
This does work in HEAD, presumably as a consequence of a3179ab69:
regression=# explain (costs off)
select a.*
from foo a
left join foo b on (b.id1, b.id2) = (a.id1, a.id2)
left join foo c on (c.id1, c.id2) = (a.id1, b.id2);
QUERY PLAN
-------------------
Seq Scan on foo a
(1 row)
I think it's still too soon to consider back-patching that though,
since it's only been in the tree for six weeks.
regards, tom lane