Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Fix `make installcheck` for serializable transactions.
authorKevin Grittner <kgrittn@postgresql.org>
Thu, 6 Aug 2015 15:35:14 +0000 (10:35 -0500)
committerKevin Grittner <kgrittn@postgresql.org>
Thu, 6 Aug 2015 15:35:14 +0000 (10:35 -0500)
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.

src/test/regress/expected/alter_table.out
src/test/regress/sql/alter_table.sql

index 8d124961ce614b93a4d915d4923ccac71b59c482..7540a672a35910e9afcf3ff5b1aee8fe88873bc7 100644 (file)
@@ -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'
index 3feed7c232dca51a0479995395c03123dba04d9f..050a9c8f89257cff37923911f5ca6968499aa1c4 100644 (file)
@@ -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'