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 по дате отправления: