From: | Andres Freund <andres(at)anarazel(dot)de> |
---|---|
To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | pgsql: Test additional speculative conflict scenarios. |
Date: | 2020-02-12 00:43:09 |
Message-ID: | E1j1g7R-0003yb-LD@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Test additional speculative conflict scenarios.
Previously, the speculative insert tests did not cover the case when a
tuple t is inserted into a table with a unique index on a column but
before it can insert into the index, a concurrent transaction has
inserted a conflicting value into the index and the insertion of tuple t
must be aborted.
The basic permutation is one session successfully inserts into the table
and an associated unique index while a concurrent session successfully
inserts into the table but discovers a conflict before inserting into
the index and must abort the insertion.
Several variants on this include:
- swap which session is successful
- first session insert transaction does not commit, so second session
must wait on a transaction lock
- first session insert does not "complete", so second session must wait
on a speculative insertion lock
Also, refactor the existing TOAST table upsert test to be in the same
spec and reuse the steps.
Author: Melanie Plageman, Ashwin Agrawal, Andres Freund
Reviewed-by: Andres Freund, Taylor Vesely
Discussion: https://postgr.es/m/CAAKRu_ZRmxy_OEryfY3G8Zp01ouhgw59_-_Cm8n7LzRH5BAvng@mail.gmail.com
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/43e08419708a938236e76cd50de2db512e1c3a0c
Modified Files
--------------
.../expected/insert-conflict-specconflict.out | 277 +++++++++++++++++----
.../isolation/expected/insert-conflict-toast.out | 15 --
src/test/isolation/isolation_schedule | 1 -
.../specs/insert-conflict-specconflict.spec | 140 +++++++++--
.../isolation/specs/insert-conflict-toast.spec | 51 ----
5 files changed, 356 insertions(+), 128 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2020-02-12 04:34:08 | pgsql: Add %x to default PROMPT1 and PROMPT2 in psql |
Previous Message | Fujii Masao | 2020-02-12 00:13:02 | pgsql: Fix bug in pg_basebackup -F plain -R. |