Re: Is there a way to run heap_insert() AFTER ExecInsertIndexTuples() ?

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Is there a way to run heap_insert() AFTER ExecInsertIndexTuples() ?
Дата
Msg-id 15991.1172729164@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Is there a way to run heap_insert() AFTER ExecInsertIndexTuples() ?  (Zoltan Boszormenyi <zboszor@dunaweb.hu>)
Ответы Re: Is there a way to run heap_insert() AFTER ExecInsertIndexTuples() ?  (Zoltan Boszormenyi <zboszor@dunaweb.hu>)
Список pgsql-hackers
Zoltan Boszormenyi <zboszor@dunaweb.hu> writes:
> Would it be acceptable?

No, because you can't create index entries when you haven't yet got the
TID for the heap tuple.  What do you propose doing, insert a dummy index
entry and then go back to fill it in later?  Aside from approximately
doubling the work involved, this is fundamentally broken because no
other backend could know what to do upon encountering the dummy index
entry --- there's no way for it to check if the entry references a live
tuple or not.  Not to mention that a crash here will leave a permanently
dummy index entry that there's no way to vacuum.

The other rearrangements you suggest are not any more acceptable;
we are not going to restructure the entire handling of defaults and
check constraints around a single badly-designed SQL2003 feature.
        regards, tom lane


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

Предыдущее
От: Josh Berkus
Дата:
Сообщение: Re: POSTGRES WAL
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Resumable vacuum proposal and design overview