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