not using index through procedure
От | Robin Ericsson |
---|---|
Тема | not using index through procedure |
Дата | |
Msg-id | 1097767858.8849.117.camel@pylver.localhost.nu. обсуждение исходный текст |
Ответы |
Re: not using index through procedure
|
Список | pgsql-general |
After some discussion on performance list, I guess this is back to a general question :) This is very simplified query of my real problem, but it should show the way of the problems. CREATE OR REPLACE FUNCTION ago(interval) RETURNS timestamp AS 'SELECT (now() - $1)::timestamp without time zone' LANGUAGE 'sql' IMMUTABLE STRICT; This query uses the index without problem. SELECT entered FROM data WHERE ago('60 seconds') < data.entered; However using this function CREATE OR REPLACE FUNCTION get_machine_status(interval) RETURNS timestamp AS 'SELECT entered FROM data WHERE ago($1) < data.entered ' LANGUAGE 'sql' VOLATILE; and call it like this: select * from get_machine_status('60 seconds'); makes the query not use index, I guess it some basic problem I'm having, maybe I should make this into a view instead? Regards, Robin
В списке pgsql-general по дате отправления: