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

---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings

Reply via email to