> (3) is an instance of seeing "a = b and b = c" and deducing "a = c" from
> that. (4) does not follow that pattern, so it's outside the realm of what the
> planner can deduce.
I see, that makes sense. I assumed there was something more complex going on in
the background. What about converting (1) into (2)? I know the planner does
something kind of similar, in converting
SELECT * FROM (SELECT * FROM x WHERE a) WHERE b
into
SELECT * FROM (SELECT * FROM x WHERE a AND b)
I guess in this case it would have to know about unique indexes to prove that
if the primary keys are equal, all the other columns are too. My intention in
trying (3) was to take that burden of proof off the planner.