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  (Tom Lane <tgl@sss.pgh.pa.us>)
Список 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 по дате отправления:

Предыдущее
От: Michael Paquier
Дата:
Сообщение: Re: retry shm attach for windows (WAS: Re: [HACKERS] OK, so culicidaeis *still* broken)
Следующее
От: Nick Dro
Дата:
Сообщение: [HACKERS] Error log for psql (uploading backup) in PostgreSQL 9.3.17