aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Grittner <kgrittn@postgresql.org>2015-08-06 10:35:14 -0500
committerKevin Grittner <kgrittn@postgresql.org>2015-08-06 10:35:14 -0500
commit680b82eea87291e7e14c03a647de654a65617f04 (patch)
treed3f32e8a375747071187cadad5c4e8585ba80b7b
parent449b13313caf63c2db936cc46d8a25cfcd9a0d04 (diff)
downloadpostgresql-680b82eea87291e7e14c03a647de654a65617f04.tar.gz
postgresql-680b82eea87291e7e14c03a647de654a65617f04.zip
Fix `make installcheck` for serializable transactions.
Commit e5550d5fec66aa74caad1f79b79826ec64898688 added some new tests for ALTER TABLE which involved table scans. When default_transaction_isolation = 'serializable' these acquire relation-level SIReadLocks. The test results didn't cope with that. Add SIReadLock as the minimum lock level for purposes of these tests. This could also be fixed by excluding this type of lock from the my_locks view, but it would be a bug for SIReadLock to show up for a relation which was not otherwise locked, so do it this way to allow that sort of condition to cause a regression test failure. There is some question whether we could avoid taking SIReadLocks during these operations, but confirming the safety of that and figuring out how to avoid the locks is not trivial, and would be a separate patch. Backpatch to 9.4 where the new tests were added.
-rw-r--r--src/test/regress/expected/alter_table.out3
-rw-r--r--src/test/regress/sql/alter_table.sql3
2 files changed, 4 insertions, 2 deletions
diff --git a/src/test/regress/expected/alter_table.out b/src/test/regress/expected/alter_table.out
index 8d124961ce6..7540a672a35 100644
--- a/src/test/regress/expected/alter_table.out
+++ b/src/test/regress/expected/alter_table.out
@@ -1842,7 +1842,8 @@ DROP TABLE check_fk_presence_1, check_fk_presence_2;
drop type lockmodes;
ERROR: type "lockmodes" does not exist
create type lockmodes as enum (
- 'AccessShareLock'
+ 'SIReadLock'
+,'AccessShareLock'
,'RowShareLock'
,'RowExclusiveLock'
,'ShareUpdateExclusiveLock'
diff --git a/src/test/regress/sql/alter_table.sql b/src/test/regress/sql/alter_table.sql
index 3feed7c232d..050a9c8f892 100644
--- a/src/test/regress/sql/alter_table.sql
+++ b/src/test/regress/sql/alter_table.sql
@@ -1271,7 +1271,8 @@ DROP TABLE check_fk_presence_1, check_fk_presence_2;
--
drop type lockmodes;
create type lockmodes as enum (
- 'AccessShareLock'
+ 'SIReadLock'
+,'AccessShareLock'
,'RowShareLock'
,'RowExclusiveLock'
,'ShareUpdateExclusiveLock'