mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-08-23 23:17:19 +02:00
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
90 lines
2.1 KiB
Plaintext
90 lines
2.1 KiB
Plaintext
test: read-only-anomaly
|
|
test: read-only-anomaly-2
|
|
test: read-only-anomaly-3
|
|
test: read-write-unique
|
|
test: read-write-unique-2
|
|
test: read-write-unique-3
|
|
test: read-write-unique-4
|
|
test: simple-write-skew
|
|
test: receipt-report
|
|
test: temporal-range-integrity
|
|
test: project-manager
|
|
test: classroom-scheduling
|
|
test: total-cash
|
|
test: referential-integrity
|
|
test: ri-trigger
|
|
test: partial-index
|
|
test: two-ids
|
|
test: multiple-row-versions
|
|
test: index-only-scan
|
|
test: predicate-lock-hot-tuple
|
|
test: deadlock-simple
|
|
test: deadlock-hard
|
|
test: deadlock-soft
|
|
test: deadlock-soft-2
|
|
test: deadlock-parallel
|
|
test: fk-contention
|
|
test: fk-deadlock
|
|
test: fk-deadlock2
|
|
test: fk-partitioned-1
|
|
test: fk-partitioned-2
|
|
test: eval-plan-qual
|
|
test: eval-plan-qual-trigger
|
|
test: lock-update-delete
|
|
test: lock-update-traversal
|
|
test: inherit-temp
|
|
test: insert-conflict-do-nothing
|
|
test: insert-conflict-do-nothing-2
|
|
test: insert-conflict-do-update
|
|
test: insert-conflict-do-update-2
|
|
test: insert-conflict-do-update-3
|
|
test: insert-conflict-specconflict
|
|
test: delete-abort-savept
|
|
test: delete-abort-savept-2
|
|
test: aborted-keyrevoke
|
|
test: multixact-no-deadlock
|
|
test: multixact-no-forget
|
|
test: lock-committed-update
|
|
test: lock-committed-keyupdate
|
|
test: update-locked-tuple
|
|
test: reindex-concurrently
|
|
test: propagate-lock-delete
|
|
test: tuplelock-conflict
|
|
test: tuplelock-update
|
|
test: tuplelock-upgrade-no-deadlock
|
|
test: freeze-the-dead
|
|
test: nowait
|
|
test: nowait-2
|
|
test: nowait-3
|
|
test: nowait-4
|
|
test: nowait-5
|
|
test: skip-locked
|
|
test: skip-locked-2
|
|
test: skip-locked-3
|
|
test: skip-locked-4
|
|
test: drop-index-concurrently-1
|
|
test: multiple-cic
|
|
test: alter-table-1
|
|
test: alter-table-2
|
|
test: alter-table-3
|
|
test: alter-table-4
|
|
test: create-trigger
|
|
test: sequence-ddl
|
|
test: async-notify
|
|
test: vacuum-reltuples
|
|
test: timeouts
|
|
test: vacuum-concurrent-drop
|
|
test: vacuum-conflict
|
|
test: vacuum-skip-locked
|
|
test: predicate-hash
|
|
test: predicate-gist
|
|
test: predicate-gin
|
|
test: partition-key-update-1
|
|
test: partition-key-update-2
|
|
test: partition-key-update-3
|
|
test: partition-key-update-4
|
|
test: plpgsql-toast
|
|
test: truncate-conflict
|
|
test: serializable-parallel
|
|
test: serializable-parallel-2
|