Re: postgres reorders expressions when inlining - Mailing list pgsql-bugs

From Tom Lane
Subject Re: postgres reorders expressions when inlining
Date
Msg-id 553278.1672326872@sss.pgh.pa.us
Whole thread Raw
In response to postgres reorders expressions when inlining  (Floris Van Nee <florisvannee@Optiver.com>)
List pgsql-bugs
Floris Van Nee <florisvannee@Optiver.com> writes:
> I recently ran into some behavior with inlining that seemed strange to me. I managed to break it down into a small
reproducibleexample that I've added. I originally ran into it in more complicated queries that involved inlining of SQL
functionsinstead of subqueries, but it reproduces with subqueries too so that's the example I've added. Tested on v15. 

> create table t1 as select a, b from generate_series(0, 5) a, generate_series(0, 10) b;
> select * from (
>    select a, b, c
>    from t1
>    left join lateral
>    (
>       select 1 / b as c
>    ) c on true
>    where b <> 0
> ) as o
> where o.c is not null

> The SELECT query leads to a division by zero. Plan:

This is not a bug.  We make no ordering guarantees about WHERE clause
execution; if we did, it would cripple the planner's ability to
optimize.

            regards, tom lane



pgsql-bugs by date:

Previous
From: "David G. Johnston"
Date:
Subject: Re: postgres reorders expressions when inlining
Next
From: PG Bug reporting form
Date:
Subject: BUG #17734: Doc bug: "initial database user" used where "bootstrap superuser" is meant