Je kunt dit zelf brouwen door een LOCK
. te nemen op een tafel, het opzetten van uw transacties en het vrijgeven van de vergrendeling door de transactie die de vergrendeling heeft gekregen terug te draaien. Zie dit eerdere antwoord
en de links voor details over deze aanpak. Terwijl ik het demonstreerde met behulp van drie psql
sessies is het even goed mogelijk om het te doen met bash co-processen, een Python-script met behulp van psycopg2
en de multiprocessing
of threading
modules, etc. Redelijk eenvoudig te doen. Bijwerken :In feite hier is een voorbeeld dat ik zojuist in python3 heb geschreven .
Voor meer geavanceerde tests, pak de PostgreSQL-broncode en gebruik de "isolationtester"-tool in src/test/isolation
waarmee u recepten kunt schrijven die complexe opdrachten van opdrachten uitvoeren. Het biedt geen ondersteuning voor het bouwen met PGXS
(hoewel een dergelijke ondersteuning waarschijnlijk vrij triviaal zou zijn om toe te voegen), dus je moet de hele PostgreSQL-bronstructuur compileren, maar dat is snel genoeg. Het werkt tegen je bestaande PostgreSQL, dus het is niet nodig om degene die je hebt gecompileerd te installeren.
Zie src/test/isolation/README
voor meer informatie over de isolationtester-tool. De documenten zijn een beetje dun omdat het een interne testtool is, maar de bestaande testcases zouden u op weg moeten helpen. Voel je vrij om het te verbeteren om aan je behoeften te voldoen en patches in te dienen :)