17 lines
919 B
MySQL
17 lines
919 B
MySQL
|
|
-- ADR-057: enkel optimistisk versjonssjekk for samtidig hull-redigering.
|
||
|
|
-- Bruker ba eksplisitt om dette etter en ekstern kodegjennomgang som
|
||
|
|
-- påpekte at update_hole/update_side_hole tidligere var rent last-write-
|
||
|
|
-- wins (ADR-028, bevisst valgt den gangen, men bruker ønsket det endret):
|
||
|
|
-- to enheter som redigerer samme hull samtidig fikk INGEN varsel om at
|
||
|
|
-- den andres endring ble overskrevet.
|
||
|
|
--
|
||
|
|
-- Én delt `round_hole`-tabell dekker begge eierskapstyper (deltaker- og
|
||
|
|
-- side-eid, se round_hole_owner_xor) -- én kolonne holder for begge
|
||
|
|
-- endepunktene (update_hole og update_side_hole).
|
||
|
|
--
|
||
|
|
-- DEFAULT 1 (ikke 0): matcher at en fersk rad regnes som "versjon 1" fra
|
||
|
|
-- opprettelse -- en klient som nettopp har hentet et upåbegynt hull skal
|
||
|
|
-- kunne sende expected_version=1 og treffe riktig, ikke måtte vite at
|
||
|
|
-- "ubrukt" betyr 0.
|
||
|
|
ALTER TABLE round_hole ADD COLUMN version integer NOT NULL DEFAULT 1;
|