]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Fix two bugs in change_owner_recurse_to_sequences: it was grabbing an
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 25 Mar 2005 18:04:47 +0000 (18:04 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 25 Mar 2005 18:04:47 +0000 (18:04 +0000)
overly strong lock on pg_depend, and it wasn't closing the rel when done.
The latter bug was masked by the ResourceOwner code, which is something
that should be changed.

src/backend/commands/tablecmds.c

index 5d80b748503785e3009efb910c844e95fdaebb4a..2ab6a114c2a89a475a00d5606b9fe28697f31073 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.142.4.2 2005/02/09 23:27:24 neilc Exp $
+ *       $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.142.4.3 2005/03/25 18:04:47 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -5356,7 +5356,7 @@ change_owner_recurse_to_sequences(Oid relationOid, int32 newOwnerSysId)
         * SERIAL sequences are those having an internal dependency on one
         * of the table's columns (we don't care *which* column, exactly).
         */
-       depRel = heap_openr(DependRelationName, RowExclusiveLock);
+       depRel = heap_openr(DependRelationName, AccessShareLock);
 
        ScanKeyInit(&key[0],
                        Anum_pg_depend_refclassid,
@@ -5402,6 +5402,8 @@ change_owner_recurse_to_sequences(Oid relationOid, int32 newOwnerSysId)
        }
 
        systable_endscan(scan);
+
+       relation_close(depRel, AccessShareLock);
 }
 
 /*