Re: const cast ?

From: Michael Fork <mfork(at)toledolink(dot)com>
To: doj(at)wwws2(dot)redaex(dot)de
Cc: PostgreSQL-SQL <pgsql-sql(at)postgresql(dot)org>
Subject: Re: const cast ?
Date: 2001-02-02 20:48:15
Message-ID: Pine.BSI.4.21.0102021540190.5488-100000@glass.toledolink.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

You can create a function with the IsCacheable attribute...

CREATE FUNCTION my_date_part(date) RETURNS int4 AS '
SELECT date_part('year', $1);
' LANGUAGE 'sql' WITH iscachable();

(This can be found in the create function docs, or in Bruce's book -- both
available on the website)

Michael Fork - CCNA - MCP - A+
Network Support - Toledo Internet Access - Toledo Ohio

On Fri, 2 Feb 2001 doj(at)wwws2(dot)redaex(dot)de wrote:

> 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(at)redaex(dot)de
>

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Josh Berkus 2001-02-03 00:37:34 Four Odd Questions
Previous Message Andrew Perrin 2001-02-02 19:47:14 "Subclassing" in SQL