Hello.
Is this a bug?
>linux=# SELECT * FROM test;
> x
>---
> 1
> 2
> 3
>(3 Rows)
>
>linux=# SELECT * FROM test WHERE FALSE;
> x
>---
>(0 Rows)
>
>phlegma=# SELECT max(x) FROM test WHERE FALSE;
> max
>-----
>
>(1 Rows)
>
>phlegma=#
So, if I use the max() aggregate, I receive one row with the value NULL. Is
that correct?
My background is the language plpgsql:
I expected to test for the existance of a maximum with
(...)
SELECT INTO e
max( y ) AS x FROM (table) WHERE (condition);
IF NOT FOUND THEN RETURN; END IF;
(...)
But I have to test with:
(...)
SELECT INTO e
max( y ) AS x FROM (table) WHERE (condition);
IF e.x IS NULL THEN RETURN; END IF;
(...)
Thanks in advance,
Wilhelm