sql >> Database teknologi >  >> RDS >> PostgreSQL

Testscript for transaktionssamtidighed for postgresql

Du kan hjemmebrygge dette ved at tage en LOCK på et bord, opsætning af dine transaktioner, og frigør derefter låsen ved at rulle den transaktion tilbage, der fik låsen. Se dette tidligere svar og dens links for detaljer om denne tilgang. Mens jeg demonstrerede det ved hjælp af tre psql sessioner, det er lige så levedygtigt at gøre det med bash co-processer, et Python-script, der bruger psycopg2 og multiprocessing eller threading moduler osv. Rimelig enkel at lave. Opdater :Faktisk her er et eksempel, jeg lige har skrevet i python3 .

For mere sofistikerede test, tag PostgreSQL-kildekoden og brug "isolationtester"-værktøjet i src/test/isolation som lader dig skrive opskrifter, der udfører komplekse rækkefølger af kommandoer. Det understøtter ikke at blive bygget med PGXS (selvom en sådan support nok ville være ret triviel at tilføje), så du skal kompilere hele PostgreSQL-kildetræet, men det er hurtigt nok. Det kører mod din eksisterende PostgreSQL, så der er ingen grund til at installere den, du kompilerede.

Se src/test/isolation/README for mere om isolationstestværktøjet. Dokumenterne er lidt tynde på jorden, da det er et internt testværktøj, men de eksisterende testcases burde hjælpe dig i gang. Du er velkommen til at forbedre den for at imødekomme dine behov og indsende patches :)




  1. Cross Domain SQL Server-login ved hjælp af Windows-godkendelse

  2. Sådan tilføjes fremmednøglebegrænsning til eksisterende tabel i SQL Server - SQL Server / TSQL vejledning del 68

  3. Hvilke regler gælder for at navngive en mysql-kolonne?

  4. Brug af flere indlejrede forespørgsler i Oracle DBMS