A very dirty work around could be:
select * from foo where created+at >= (select now() - '1 hour'::interval);

Or perhaps this already works:
select * from foo where created+at >= (now() - '1 hour'::interval);

Pavel Hlavnicka wrote:
Hi all,

I use simple sql statement like this

select * from foo
where created_at >= 'now'::timestamp - '1 hour'::interval;

My table is indexed on created_at field. The query above doesn't use it, but if I use

select * from foo where created_at >= 'now'

the index is used.

It looks like if the engine finds some expression to be evaluated it gets rid of any index use (due the possible dependency?).

Is it possible to do something to 'precompute' some value in the query condition, so planner understand is as a constant value?

(... and I've got some reason NOT to use a parameter in my Perl DBI code...)

Maybe my conclusions are wrong, of course.

Thank you very much in advance

Pavel


---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]

Reply via email to