Phil Frost <indigo(at)bitglue(dot)com> writes:
> The planner in fact can move the function around without changing the
> output.
Not when it's within the nullable side of an outer join --- moving a
WHERE clause up out of that would make the difference between no row
out, and a null-extended row out, which are certainly not the same.
I'm not sure why it's not pulling up from the left side of the left join
though. That might be a bug. What PG version is this exactly?
Of course the real question is why is your app generating such poorly
phrased queries ;-)
regards, tom lane