@ -433,7 +433,7 @@ static AlterTableCmd *ATParseTransformCmd(List **wqueue, AlteredTableInfo *tab,
static void ATRewriteTables ( AlterTableStmt * parsetree ,
List * * wqueue , LOCKMODE lockmode ,
AlterTableUtilityContext * context ) ;
static void ATRewriteTable ( AlteredTableInfo * tab , Oid OIDNewHeap , LOCKMODE lockmode ) ;
static void ATRewriteTable ( AlteredTableInfo * tab , Oid OIDNewHeap ) ;
static AlteredTableInfo * ATGetQueueEntry ( List * * wqueue , Relation rel ) ;
static void ATSimplePermissions ( AlterTableType cmdtype , Relation rel , int allowed_targets ) ;
static void ATSimpleRecursion ( List * * wqueue , Relation rel ,
@ -5901,7 +5901,7 @@ ATRewriteTables(AlterTableStmt *parsetree, List **wqueue, LOCKMODE lockmode,
* modifications , and test the current data within the table
* against new constraints generated by ALTER TABLE commands .
*/
ATRewriteTable ( tab , OIDNewHeap , lockmode ) ;
ATRewriteTable ( tab , OIDNewHeap ) ;
/*
* Swap the physical files of the old and new heaps , then rebuild
@ -5934,7 +5934,7 @@ ATRewriteTables(AlterTableStmt *parsetree, List **wqueue, LOCKMODE lockmode,
*/
if ( tab - > constraints ! = NIL | | tab - > verify_new_notnull | |
tab - > partition_constraint ! = NULL )
ATRewriteTable ( tab , InvalidOid , lockmode ) ;
ATRewriteTable ( tab , InvalidOid ) ;
/*
* If we had SET TABLESPACE but no reason to reconstruct tuples ,
@ -6033,10 +6033,11 @@ ATRewriteTables(AlterTableStmt *parsetree, List **wqueue, LOCKMODE lockmode,
/*
* ATRewriteTable : scan or rewrite one table
*
* OIDNewHeap is InvalidOid if we don ' t need to rewrite
* A rewrite is requested by passing a valid OIDNewHeap ; in that case , caller
* must already hold AccessExclusiveLock on it .
*/
static void
ATRewriteTable ( AlteredTableInfo * tab , Oid OIDNewHeap , LOCKMODE lockmode )
ATRewriteTable ( AlteredTableInfo * tab , Oid OIDNewHeap )
{
Relation oldrel ;
Relation newrel ;
@ -6061,7 +6062,11 @@ ATRewriteTable(AlteredTableInfo *tab, Oid OIDNewHeap, LOCKMODE lockmode)
newTupDesc = RelationGetDescr ( oldrel ) ; /* includes all mods */
if ( OidIsValid ( OIDNewHeap ) )
newrel = table_open ( OIDNewHeap , lockmode ) ;
{
Assert ( CheckRelationOidLockedByMe ( OIDNewHeap , AccessExclusiveLock ,
false ) ) ;
newrel = table_open ( OIDNewHeap , NoLock ) ;
}
else
newrel = NULL ;