const cast ? - Mailing list pgsql-sql

From
Subject const cast ?
Date
Msg-id 20010202142213.32170@wwws2.redaex.de
Whole thread Raw
In response to PL/pgSQL: possible parsing or documentation bug?  ("Albert REINER" <areiner@tph.tuwien.ac.at>)
Responses Re: const cast ?
List 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 by date:

Previous
From: "Ross J. Reedstrom"
Date:
Subject: Re: Permissions for foreign keys
Next
From: Michael Ansley
Date:
Subject: RE: const cast ?