mirror of
https://github.com/postgres/postgres.git
synced 2025-05-21 00:02:53 -04:00
Have to lock buffer while changing page' LSN.
Thanks to Tom.
This commit is contained in:
parent
a51d560d94
commit
278aa680fc
@ -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)
|
|||||||
/* 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)
|
|||||||
}
|
}
|
||||||
END_CRIT_SECTION();
|
END_CRIT_SECTION();
|
||||||
|
|
||||||
|
LockBuffer(buf, BUFFER_LOCK_UNLOCK);
|
||||||
|
ReleaseBuffer(buf);
|
||||||
heap_close(rel, AccessExclusiveLock);
|
heap_close(rel, AccessExclusiveLock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user