postgres.git / summary / log / commit / refs

commit    543e2057fb0e89d64d7250f1afa57ac8305b85a4
Author:   Kevin Grittner <kgrittn@postgresql.org>
Date:     Thu Aug 06 15:35:19 2015 +0000

    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.


src/test/regress/expected/alter_table.out | 3 ++- src/test/regress/sql/alter_table.sql | 3 ++- 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 c88e7a9b07c..4e69f2e6445 100644 --- a/src/test/regress/expected/alter_table.out +++ b/src/test/regress/expected/alter_table.out @@ -1837,7 +1837,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 a7eab83ba98..8c128e61f1b 100644 --- a/src/test/regress/sql/alter_table.sql +++ b/src/test/regress/sql/alter_table.sql @@ -1270,7 +1270,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' [parent: 4d94b5f1f003]