On 2016-07-06 17:14:30 -0700, Peter Geoghegan wrote:
> On Wed, Jul 6, 2016 at 4:33 PM, Andres Freund <andres@anarazel.de> wrote:
> >> We didn't simply neglect to make heap_abort_speculative() consider
> >> TOAST at all, though.
> >
> > Well, not quite, but nearly. Afaics it currently can only work if the
> > toasted columns have been inserted by a different command, before the
> > INSERT ON CONFLICT does anything. I don't see how it can work for newly
> > inserted toast data. When heap_abort_speculative deletes toast data,
> > when would it *ever* not fail if the same command executed the toast
> > data?
>
> Why would the toasted data ever not be newly inserted in practice?
Don't think so, atm.
> And so, in simpler words, you believe that any
> heap_abort_speculative() call to toast_delete() will cause this error
> to be raised?
Looks that way, yes.