Re: Is there a way to run heap_insert() AFTER ExecInsertIndexTuples() ? - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Is there a way to run heap_insert() AFTER ExecInsertIndexTuples() ?
Date
Msg-id 15991.1172729164@sss.pgh.pa.us
Whole thread Raw
In response to Is there a way to run heap_insert() AFTER ExecInsertIndexTuples() ?  (Zoltan Boszormenyi <zboszor@dunaweb.hu>)
Responses Re: Is there a way to run heap_insert() AFTER ExecInsertIndexTuples() ?  (Zoltan Boszormenyi <zboszor@dunaweb.hu>)
List 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 by date:

Previous
From: Josh Berkus
Date:
Subject: Re: POSTGRES WAL
Next
From: Tom Lane
Date:
Subject: Re: Resumable vacuum proposal and design overview