| 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()
|
|---|