| 1 |
#!/usr/bin/env python |
|---|
| 2 |
|
|---|
| 3 |
import sys |
|---|
| 4 |
import psycopg2 |
|---|
| 5 |
|
|---|
| 6 |
|
|---|
| 7 |
for level in (0, 1, 2): |
|---|
| 8 |
connection = psycopg2.connect(sys.argv[1]) |
|---|
| 9 |
connection.set_isolation_level(level) |
|---|
| 10 |
|
|---|
| 11 |
if level == 2: |
|---|
| 12 |
isolevel = 'READ COMMITTED' |
|---|
| 13 |
else: |
|---|
| 14 |
isolevel = 'SERIALIZABLE' |
|---|
| 15 |
|
|---|
| 16 |
print 'In isolation level: %d' % (level,) |
|---|
| 17 |
|
|---|
| 18 |
c = connection.cursor() |
|---|
| 19 |
c.execute('SHOW TRANSACTION ISOLATION LEVEL') |
|---|
| 20 |
print 'Original isolation level: %s' % (c.fetchone()[0],) |
|---|
| 21 |
|
|---|
| 22 |
c = connection.cursor() |
|---|
| 23 |
c.execute('SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL %s' % (isolevel,)) |
|---|
| 24 |
c.execute('SHOW TRANSACTION ISOLATION LEVEL') |
|---|
| 25 |
print 'Set isolation level to: %s' % (c.fetchone()[0],) |
|---|
| 26 |
#connection.commit() |
|---|
| 27 |
|
|---|
| 28 |
c = connection.cursor() |
|---|
| 29 |
c.execute('SHOW TRANSACTION ISOLATION LEVEL') |
|---|
| 30 |
print 'Next cursor got isolation level: %s' % (c.fetchone()[0],) |
|---|
| 31 |
|
|---|
| 32 |
connection.close() |
|---|