> You need to recast the clause as something like
> 
>       WHERE posted >= (CURRENT_TIMESTAMP - '5 minutes'::TIMESPAN)
> 
> Then you still have the problem of persuading Postgres that it should
> treat the right side of this as a constant and not something to
> re-evaluate at each row.  In 7.0 and later it's possible to do that
> with creative use of a user-defined function marked "iscachable"
> (for details see the archives for the last time this question came up,
> a few months back).

That did the trick, thanks!

Just for reference:

  CREATE FUNCTION time_machine ( TIMESPAN )
  RETURNS TIMESTAMP
  AS 'SELECT CURRENT_TIMESTAMP - $1'
  LANGUAGE 'sql'
  WITH (iscachable);

seems to work.  Perhaps it's more complicated than that, though?

-itai

Reply via email to