Re: calculated expressions and index use
От | Arjen van der Meijden |
---|---|
Тема | Re: calculated expressions and index use |
Дата | |
Msg-id | b1biv3$l4s$1@news.tudelft.nl обсуждение исходный текст |
Ответ на | calculated expressions and index use (Pavel Hlavnicka <pavel@gingerall.cz>) |
Список | pgsql-sql |
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 >
В списке pgsql-sql по дате отправления: