From: | Peter Geoghegan <pg(at)heroku(dot)com> |
---|---|
To: | Andres Freund <andres(at)anarazel(dot)de> |
Cc: | Oskari Saarenmaa <os(at)aiven(dot)io>, Michael Paquier <michael(dot)paquier(at)gmail(dot)com>, Peter Tripp <peter(at)chartio(dot)com>, Virendra Negi <virendra(at)idyllic-software(dot)com>, pgsql-bugs <pgsql-bugs(at)postgresql(dot)org> |
Subject: | Re: BUG #14150: Attempted to delete invisible tuple |
Date: | 2016-07-06 23:45:01 |
Message-ID: | CAM3SWZSyGEiU38uDs69M02jM7iBXbM7mSjhqiEGR4PUdTcLyHA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
On Wed, Jul 6, 2016 at 4:33 PM, Andres Freund <andres(at)anarazel(dot)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?
Maybe we should have a testing option that makes ExecInsert() pretend
that the precheck for a conflict indicated that there wasn't one the
first time through, only (or perhaps randomly make this assumption
with a configurable probability). It would perhaps be useful to
artificially increase the number of conflicts during stress testing.
Just something to consider.
--
Peter Geoghegan
From | Date | Subject | |
---|---|---|---|
Next Message | aouda.h | 2016-07-06 23:46:54 | BUG #14232: Possible mistake in the documentation |
Previous Message | Andres Freund | 2016-07-06 23:33:36 | Re: BUG #14150: Attempted to delete invisible tuple |