Re: Boolean error - Mailing list pgsql-general

From Tom Lane
Subject Re: Boolean error
Date
Msg-id 27109.1101580063@sss.pgh.pa.us
Whole thread Raw
In response to Boolean error  (Fabien Fournier <fabien@cyriacrea.net>)
Responses Re: Boolean error
List pgsql-general
Fabien Fournier <fabien@cyriacrea.net> writes:
> We are experiencing a strange error with the following request :

> select cmp
>   from (select random () < 0.5 as cmp from pg_type) as tmp
>   where cmp;

> With this request even false results are shown.

I think the planner will flatten this into

    select random() < 0.5 as cmp from pg_type where random() < 0.5;

and of course the two random() calls will usually produce different
results.

There was some talk awhile ago of preventing flattening when the
subquery targetlist contains volatile functions, but we didn't
have any consensus that the cure would be better than the disease.
(In particular, since user-defined functions default to being
considered volatile, such a restriction could easily cripple
optimization of subqueries.)

            regards, tom lane

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Could we hide the table name listing from unprivileged user?
Next
From: "Uwe C. Schroeder"
Date:
Subject: Re: how many JOINs?