I'd opt for 2.Here are some possible responses, roughly in order of difficulty to implement:
1. Leave well enough alone (and perhaps document the behavior).
2. Throw an error if the expression doesn't return boolean.
It's quite common that newer compilers will detect more bogus coding than older ones. There might be existing functions that break from this because they rely on the current "feature", but there are probably others that will throw an exception, revealing bad coding (and delivering correct results just by chance, I've seen this more than once...)
Regards, Andreas
---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives?
http://archives.postgresql.org