const cast ?

Поиск
Список
Период
Сортировка
От
Тема const cast ?
Дата
Msg-id 20010202142213.32170@wwws2.redaex.de
обсуждение исходный текст
Ответ на PL/pgSQL: possible parsing or documentation bug?  ("Albert REINER" <areiner@tph.tuwien.ac.at>)
Ответы Re: const cast ?  (Michael Fork <mfork@toledolink.com>)
Список pgsql-sql
Hello Postgres Users and Developers,

I have the following scenario:
create table t (i int);
create index ti on t(i);

Now this table is filled with some values and the table is vacuum analyzed.

Now I would like to run queries on this table which should use the index 
whenever possible, so they execute fast.

If I try a simple query like: "select * from t where i=4" the index is used.
A query like: "select * from t where i=abs(4)" is using the index too.
But if I use more complex functions like the following:
"select * from t where i=date_part('year', '2001-01-01'::date)"
a sequential scan on the table is performed.

Now I conclude that the planner/optimizer does not recognize that the
date_part() function returns the same value upon each execution.

What I would like to know: Could we use some const-cast, so the optimzer gets
a hint in optimizing the query ?
I think of something like:
"select * from t where i=date_part('year', '2001-01-01'::date)::const"

Would this be hard to implement, or are there any theoretical issues which
permit this. My thoughts are, that if the user declares something as const,
although it might not always be const, the database should not worry about
the complete truth and just assume the statement as const.

Or Is this feature available already, and I have just missed the correct 
keyword?

-- 
--
---> doj@redaex.de


В списке pgsql-sql по дате отправления:

Предыдущее
От: "Ross J. Reedstrom"
Дата:
Сообщение: Re: Permissions for foreign keys
Следующее
От: Michael Ansley
Дата:
Сообщение: RE: const cast ?