I changed it to "where f.commited is not true" and the query now takes 1 second
as opposed to 60.
(much faster then the 3 seconds it took on 8.0.1, which could also be because
of the coalesce there)
Is it considered better practice (or more efficient) to always use (x is not or
x=value)
instead of coalesce? Or does it make more sense to turn on the option
"transform_null_equals"?
Thank you much
Sim
I assume that the original query is something along the lines of
d left join f on (...) where coalesce(f.commited, false) = false
In the meantime, Sim would probably have better luck if he restructured
this particular clause in some other way, say
where f.commited is not true
or
where f.commited = false or f.commited is null
Note also that he really ought to move up to 8.2.6, as 8.2.4 is not
very sane about what IS NULL means for a left join's result.
regards, tom lane
---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend
---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings