Neil Conway <[EMAIL PROTECTED]> writes: > Does this transformation work for a query of the form: > SELECT min(x), max(y) FROM tab WHERE random() > 0.5;
I've been going back and forth on that. We wouldn't lose a lot in the real world if we simply abandoned the optimization attempt whenever we find any volatile functions in WHERE. OTOH you could also argue that we have never guaranteed that volatile functions in WHERE would be evaluated at every table row --- consider something like SELECT ... WHERE x > 42 AND random() > 0.5; All that this optimization might do is to further cut the fraction of table rows at which the volatile function actually gets checked. So I'm not seeing that it would break any code that worked reliably before. Still, if it makes you feel at all uncomfortable, we can just refuse the optimization in such cases. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])