mirror of
https://github.com/postgres/postgres.git
synced 2025-08-21 10:42:50 +03:00
Assert that buffers are marked dirty before XLogRegisterBuffer().
Enforce the rule from transam/README in XLogRegisterBuffer(), and update callers to follow the rule. Hash indexes sometimes register clean pages as a part of the locking protocol, so provide a REGBUF_NO_CHANGE flag to support that use. Discussion: https://postgr.es/m/c84114f8-c7f1-5b57-f85a-3adc31e1a904@iki.fi Reviewed-by: Heikki Linnakangas
This commit is contained in:
@@ -397,6 +397,9 @@ ginHeapTupleFastInsert(GinState *ginstate, GinTupleCollector *collector)
|
||||
}
|
||||
|
||||
Assert((ptr - collectordata) <= collector->sumsize);
|
||||
|
||||
MarkBufferDirty(buffer);
|
||||
|
||||
if (needWal)
|
||||
{
|
||||
XLogRegisterBuffer(1, buffer, REGBUF_STANDARD);
|
||||
@@ -404,8 +407,6 @@ ginHeapTupleFastInsert(GinState *ginstate, GinTupleCollector *collector)
|
||||
}
|
||||
|
||||
metadata->tailFreeSize = PageGetExactFreeSpace(page);
|
||||
|
||||
MarkBufferDirty(buffer);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user