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

From Zoltan Boszormenyi
Subject Re: Is there a way to run heap_insert() AFTER ExecInsertIndexTuples() ?
Date
Msg-id 45E6DA26.6030309@dunaweb.hu
Whole thread Raw
In response to Re: 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() ?  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Zoltan Boszormenyi írta:
>> The cost I am thinking now is an extra heap_update()
>> after heap_insert() without generating the identity value
>> and inserting index tuples to indexes that doesn't
>> contain the identity column.
>
> And as far as I tested the current state, there is no cost
> if you don't use GENERATED or IDENTITY.
> The extra heap_update() would be performed only
> if you have an IDENTITY colum.

The modification I imagined is actually working:
- skip indexes using the identity columns
- do a simple_heap_update() after all other columns are assigned and index tuples are inserted
- do ExecInsertIndexTuples() on indexes referencing the IDENTITY column

However, I get warning messages like:

WARNING:  detected write past chunk end in ExecutorState 0xaaff68

How can I prevent them?

Best regards,
Zoltán Böszörményi



pgsql-hackers by date:

Previous
From: Magnus Hagander
Date:
Subject: Re: urgent: upgraded to 8.2, getting kernel panics
Next
From: Heikki Linnakangas
Date:
Subject: Re: COMMIT NOWAIT Performance Option