]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Have to lock buffer while changing page' LSN.
authorVadim B. Mikheev <vadim4o@yahoo.com>
Wed, 4 Apr 2001 15:43:25 +0000 (15:43 +0000)
committerVadim B. Mikheev <vadim4o@yahoo.com>
Wed, 4 Apr 2001 15:43:25 +0000 (15:43 +0000)
Thanks to Tom.

src/backend/commands/sequence.c

index 00a96a99a5ac2907e8151373f715ef7d2cf8dd0c..fac2fb30de27c6135dcc8789002270f936649a17 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/commands/sequence.c,v 1.53 2001/04/03 21:58:00 vadim Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/commands/sequence.c,v 1.54 2001/04/04 15:43:25 vadim Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -181,13 +181,13 @@ DefineSequence(CreateSeqStmt *seq)
        /* Now - form & insert sequence tuple */
        tuple = heap_formtuple(tupDesc, value, null);
        heap_insert(rel, tuple);
-       ReleaseBuffer(buf);
 
        /*
         * After crash REDO of heap_insert above would re-init page and
         * our magic number would be lost. We have to log sequence creation.
         * This means two log records instead of one -:(
         */
+       LockBuffer(buf, BUFFER_LOCK_EXCLUSIVE);
        START_CRIT_SECTION();
        {
                xl_seq_rec                      xlrec;
@@ -217,6 +217,8 @@ DefineSequence(CreateSeqStmt *seq)
        }
        END_CRIT_SECTION();
 
+       LockBuffer(buf, BUFFER_LOCK_UNLOCK);
+       ReleaseBuffer(buf);
        heap_close(rel, AccessExclusiveLock);
 }