Re: how do functional indices work?

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: how do functional indices work?
Дата
Msg-id 26246.999614000@sss.pgh.pa.us
обсуждение исходный текст
Ответ на how do functional indices work?  (hubert depesz lubaczewski <depesz@depesz.pl>)
Список pgsql-general
hubert depesz lubaczewski <depesz@depesz.pl> writes:
> let's assume i have table users which is (id int4, person_id int4) - pkey'ed
> on id with index on person_id.
> next i have table people (id int4, fullname text) with pkey on id.
> there is a foreign key between the two tables on users.person_id => people.id.
> now i wrote a function, which given user id returns it's person's name. quite
> simple function.
> not i want to make a index:
> create index test on users (myMagicalFunction(id));
> this of course works,

No, it doesn't.  A functional index using a function that depends on any
data other than its explicitly passed parameters is a horribly bad idea.
It WILL fail --- nastily --- as soon as you change the other table.

To help catch this, 7.2 will not allow you to build functional indexes
on functions that are not marked "iscachable".

            regards, tom lane

В списке pgsql-general по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Unexpected Behavior Using a Rule With Multiple Actions (Long)
Следующее
От: Doug McNaught
Дата:
Сообщение: Re: SHOW