Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Postgres/src/test/isolation/specs/   (Postgres Database Version 18.4©)  Datei vom 11.4.2026 mit Größe 1 kB image not shown  

Quelle  tuplelock-partition.spec   Sprache: unbekannt

 
Spracherkennung für: .spec vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

# Test tuple locking on INSERT ON CONFLICT UPDATE on a partitioned table.

setup
{
   DROP TABLE IF EXISTS parttab;
   CREATE TABLE parttab (col1 text, key INTEGER PRIMARY KEY, col2 text) PARTITION BY LIST (key);
   CREATE TABLE parttab1 (key INTEGER PRIMARY KEY, col1 text, col2 text);
   CREATE TABLE parttab2 (key INTEGER PRIMARY KEY, col1 text, col2 text);
   ALTER TABLE parttab ATTACH PARTITION parttab1 FOR VALUES IN (1);
   ALTER TABLE parttab ATTACH PARTITION parttab2 FOR VALUES IN (2);
   INSERT INTO parttab (key, col1, col2) VALUES (1, 'a', 'b');
}

teardown
{
   DROP TABLE parttab;
}

session s1
step s1b               { BEGIN; }
step s1update_nokey  { INSERT INTO parttab (key, col1, col2) VALUES (1, 'a', 'b') ON CONFLICT (key) DO UPDATE SET col1 = 'x', col2 = 'y'; }
step s1update_key  { INSERT INTO parttab (key, col1, col2) VALUES (1, 'a', 'b') ON CONFLICT (key) DO UPDATE SET key=1; }
step s1c               { COMMIT; }

session s2
step s2locktuple  { SELECT * FROM parttab FOR KEY SHARE; }

# INSERT ON CONFLICT UPDATE, performs an UPDATE on non-key columns
permutation s1b s1update_nokey s2locktuple s1c

# INSERT ON CONFLICT UPDATE, performs an UPDATE on key column
permutation s1b s1update_key s2locktuple s1c

[Dauer der Verarbeitung: 0.13 Sekunden, vorverarbeitet 2026-08-08]