提交 278aa680 编写于 作者: V Vadim B. Mikheev

Have to lock buffer while changing page' LSN.

Thanks to Tom.
上级 a51d560d
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * 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) ...@@ -181,13 +181,13 @@ DefineSequence(CreateSeqStmt *seq)
/* Now - form & insert sequence tuple */ /* Now - form & insert sequence tuple */
tuple = heap_formtuple(tupDesc, value, null); tuple = heap_formtuple(tupDesc, value, null);
heap_insert(rel, tuple); heap_insert(rel, tuple);
ReleaseBuffer(buf);
/* /*
* After crash REDO of heap_insert above would re-init page and * After crash REDO of heap_insert above would re-init page and
* our magic number would be lost. We have to log sequence creation. * our magic number would be lost. We have to log sequence creation.
* This means two log records instead of one -:( * This means two log records instead of one -:(
*/ */
LockBuffer(buf, BUFFER_LOCK_EXCLUSIVE);
START_CRIT_SECTION(); START_CRIT_SECTION();
{ {
xl_seq_rec xlrec; xl_seq_rec xlrec;
...@@ -217,6 +217,8 @@ DefineSequence(CreateSeqStmt *seq) ...@@ -217,6 +217,8 @@ DefineSequence(CreateSeqStmt *seq)
} }
END_CRIT_SECTION(); END_CRIT_SECTION();
LockBuffer(buf, BUFFER_LOCK_UNLOCK);
ReleaseBuffer(buf);
heap_close(rel, AccessExclusiveLock); heap_close(rel, AccessExclusiveLock);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册