RES: [SQL] ERROR: DefineIndex: index function must be marked iscachable

Started by Elielson Fontaneziover 22 years ago1 messagesgeneral
Jump to latest
#1Elielson Fontanezi
ElielsonF@prodam.sp.gov.br

Oh sorry!

Linux netlab142.prodam 2.4.8-26mdk #1 Sun Sep 23 17:06:39 CEST 2001
i686 unknown
pg_ctl (PostgreSQL) 7.2.1

-----Mensagem original-----
De: Stephan Szabo [mailto:sszabo@megazone.bigpanda.com]
Enviada em: sexta-feira, 25 de julho de 2003 16:25
Para: Elielson Fontanezi
Cc: pgsql-general; pgsql-sql
Assunto: Re: [GENERAL] [SQL] ERROR: DefineIndex: index function must be
marked iscachable

On Fri, 25 Jul 2003, Stephan Szabo wrote:

On Fri, 25 Jul 2003, Elielson Fontanezi wrote:

What can I do in this case?
I could not found anything about iscachable.

postgres$ cat in.sql
create index bt_proposta_f01 on proposta
using btree (func_cod_secretaria(nr_proponente));

postgres$ psql -d escola -f in.sql
psql:in.sql:2: ERROR: DefineIndex: index function must be marked

iscachable

Check the create function reference page, I believe you'd need to add WITH
(iscachable) to the end of the function creation.

iscachable means that the function always returnes the same result when
given the same arguments. It's a prereq to using the function in an
index. If your function doesn't meet those requirements (for example if it
does a query on a table) making an index on that function is a bad idea.

Almost forgot. In recent versions you'd specify that the function was
IMMUTABLE and I believe the error message would use such as well. What
version are you using (it might be worth considering an upgrade to 7.4
when it comes out)