Re: Problem with aliasing - Mailing list pgsql-general

From Greg Stark
Subject Re: Problem with aliasing
Date
Msg-id 87bs1522hg.fsf@stark.dyndns.tv
Whole thread Raw
In response to Problem with aliasing  (Jean-Christian Imbeault <jc@mega-bucks.co.jp>)
Responses Re: Problem with aliasing  ("Nigel J. Andrews" <nandrews@investsystems.co.uk>)
List pgsql-general
Jean-Christian Imbeault <jc@mega-bucks.co.jp> writes:

> TAL=# select max(req_del_date1, req_del_date2, req_del_date3) as ma1 from
> invoices where ma1 <= now();
> ERROR:  Attribute "ma1" not found
>
> What is wrong with my syntax?

Try either of:

  SELECT max(req1, req2, req3) AS max FROM invoices WHERE max(req1, req2, req3) <= now()
  SELECT * from (select max(req1, req2, req3) AS max FROM invoices) WHERE max <= now()

Whichever seems clearer to you, I think postgres actually runs the two the
same way. Note, you should mark your function immutable so postgres knows it
can optimize the second case into the first.

--
greg

pgsql-general by date:

Previous
From: Andrew Sullivan
Date:
Subject: Re: Authentication to run pg_dump automatically
Next
From: "Berend Tober"
Date:
Subject: Re: How to drop all the sequences