Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

SSL freeze-the-dead.spec   Sprache: unbekannt

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

# Test for interactions of tuple freezing with dead, as well as recently-dead
# tuples using multixacts via FOR KEY SHARE.
setup
{
  CREATE TABLE tab_freeze (
    id int PRIMARY KEY,
    name char(3),
    x int);
  INSERT INTO tab_freeze VALUES (1, '111', 0);
  INSERT INTO tab_freeze VALUES (3, '333', 0);
}

teardown
{
  DROP TABLE tab_freeze;
}

session s1
step s1_begin  { BEGIN; }
step s1_update  { UPDATE tab_freeze SET x = x + 1 WHERE id = 3; }
step s1_commit  { COMMIT; }
step s1_selectone {
    BEGIN;
    SET LOCAL enable_seqscan = false;
    SET LOCAL enable_bitmapscan = false;
    SELECT * FROM tab_freeze WHERE id = 3;
    COMMIT;
}
step s1_selectall { SELECT * FROM tab_freeze ORDER BY name, id; }

session s2
step s2_begin  { BEGIN; }
step s2_key_share { SELECT id FROM tab_freeze WHERE id = 3 FOR KEY SHARE; }
step s2_commit  { COMMIT; }
step s2_vacuum  { VACUUM FREEZE tab_freeze; }

session s3
step s3_begin  { BEGIN; }
step s3_key_share { SELECT id FROM tab_freeze WHERE id = 3 FOR KEY SHARE; }
step s3_commit  { COMMIT; }

# This permutation verifies that a previous bug
#     https://postgr.es/m/E5711E62-8FDF-4DCA-A888-C200BF6B5742@amazon.com
#     https://postgr.es/m/20171102112019.33wb7g5wp4zpjelu@alap3.anarazel.de
# is not reintroduced. We used to make wrong pruning / freezing
# decision for multixacts, which could lead to a) broken hot chains b)
# dead rows being revived.
permutation s1_begin s2_begin s3_begin # start transactions
   s1_update s2_key_share s3_key_share # have xmax be a multi with an updater, updater being oldest xid
   s1_update # create additional row version that has multis
   s1_commit s2_commit # commit both updater and share locker
   s2_vacuum # due to bug in freezing logic, we used to *not* prune updated row, and then froze it
   s1_selectone # if hot chain is broken, the row can't be found via index scan
   s3_commit # commit remaining open xact
   s2_vacuum # pruning / freezing in broken hot chains would unset xmax, reviving rows
   s1_selectall # show borkedness

[Verzeichnis aufwärts0.17unsichere VerbindungÜbersetzung europäischer Sprachen durch Browser2026-08-08]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=277311
#Domains=752002