Re: [HACKERS] Index created in BEFORE trigger not updated duringINSERT
От | Andres Freund |
---|---|
Тема | Re: [HACKERS] Index created in BEFORE trigger not updated duringINSERT |
Дата | |
Msg-id | 20170524135132.v4ol2ldsxhqu5val@alap3.anarazel.de обсуждение исходный текст |
Ответ на | Re: [HACKERS] Index created in BEFORE trigger not updated during INSERT (Robert Haas <robertmhaas@gmail.com>) |
Ответы |
Re: [HACKERS] Index created in BEFORE trigger not updated during INSERT
|
Список | pgsql-hackers |
On 2017-05-24 08:26:24 -0400, Robert Haas wrote: > On Mon, May 22, 2017 at 7:05 AM, Albe Laurenz <laurenz.albe@wien.gv.at> wrote: > > Not that it is a useful use case, but I believe that this is > > a bug that causes index corruption: > > > > CREATE TABLE mytable( > > id integer PRIMARY KEY, > > id2 integer NOT NULL > > ); > > > > CREATE FUNCTION makeindex() RETURNS trigger > > LANGUAGE plpgsql AS > > $$BEGIN > > CREATE INDEX ON mytable(id2); > > RETURN NEW; > > END;$$; > > I'm willing to bet that nobody ever thought about that case very hard. > It seems like we should either make it work or prohibit it, but I > can't actually see quite how to do either off-hand. Hm, strategically sprinkled CheckTableNotInUse() might do the trick? I've neither tried nor thought this through fully, but I can't think of a case where pre-existing relcache references to tables are ok... - Andres
В списке pgsql-hackers по дате отправления: