Re: [NOVICE] index refuses to build

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Merlin Moncure <mmoncure(at)gmail(dot)com>
Cc: "Jean-Yves F(dot) Barbier" <12ukwn(at)gmail(dot)com>, pgsql-novice(at)postgresql(dot)org, pgsql-hackers(at)postgresql(dot)org
Subject: Re: [NOVICE] index refuses to build
Date: 2011-12-30 03:40:19
Message-ID: 5086.1325216419@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-novice

Merlin Moncure <mmoncure(at)gmail(dot)com> writes:
> On Thu, Dec 29, 2011 at 5:10 PM, Jean-Yves F. Barbier <12ukwn(at)gmail(dot)com> wrote:
>> CREATE INDEX tst1m_name_lu_ix ON tst1m(unaccent(name));
>> ERROR: functions in index expression must be marked IMMUTABLE

> your problem is the unaccent function. it's defined stable because
> the rules function it depends on can change after the index is built
> -- that would effectively introduce index corruption. it's possible
> to bypass that restriction, but are you sure that's what you want to
> do?

Hmm ... it's clear why unaccent(text) is only stable, because it depends
on the current search_path to find the "unaccent" dictionary. But I
wonder whether it was an oversight that unaccent(regdictionary, text)
is stable and not immutable. We don't normally mark functions as stable
just because you could in principle change their behavior by altering
some outside-the-database configuration files.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Manabu Ori 2011-12-30 05:47:23 spinlocks on powerpc
Previous Message Alvaro Herrera 2011-12-30 02:11:22 Re: [RFC] grants vs. inherited tables

Browse pgsql-novice by date

  From Date Subject
Next Message cjan 2011-12-30 05:45:13 how to back up the data base of POSTGRESQL and Restore it?
Previous Message Jean-Yves F. Barbier 2011-12-29 23:33:46 Re: index refuses to build