From: | Kevin Grittner <kgrittn(at)ymail(dot)com> |
---|---|
To: | Robert James <srobertjames(at)gmail(dot)com>, Postgres General <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Using an index to materialize a function |
Date: | 2013-08-16 21:46:55 |
Message-ID: | 1376689615.44102.YahooMailNeo@web162905.mail.bf1.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Robert James <srobertjames(at)gmail(dot)com> wrote:
> If I have a slow_function(), and I create an index of
> slow_function(field), will Postgres use that index to avoid having to
> recompute the function?
>
> Example:
>
> SELECT slow_function(field1) FROM table1 WHERE id = 5
>
> It won't use the index on field1 to _find_ the record. Can it use it
> to compute the field?
If you're not going to search on the function results you are
probably better off adding it to the table itself and maintaining
it on BEFORE INSERT and BEFORE UPDATE triggers. You could play
around with trying to put it just in an index with other columns
and hoping for an index-only scan, but that is probably not a great
way to go.
--
Kevin Grittner
EDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
From | Date | Subject | |
---|---|---|---|
Next Message | Tyler Reese | 2013-08-16 22:44:33 | Select performance variation based on the different combinations of using where lower(), order by, and limit |
Previous Message | Jeff Janes | 2013-08-16 18:21:24 | Re: Does string a begin with string b? |