mirror of
https://github.com/postgres/postgres.git
synced 2025-05-03 22:24:49 +03:00
Issue properly WAL record for CID of first catalog tuple in multi-insert
Multi-insert for heap is not yet used actively for catalogs, but the code to support this case is in place for logical decoding. The existing code forgot to issue a XLOG_HEAP2_NEW_CID record for the first tuple inserted, leading to failures when attempting to use multiple inserts for catalogs at decoding time. This commit fixes the problem by WAL-logging the needed CID. This is not an active bug, so no back-patch is done. Author: Daniel Gustafsson Discussion: https://postgr.es/m/E0D4CC67-A1CF-4DF4-991D-B3AC2EB5FAE9@yesql.se
This commit is contained in:
parent
3d475515a1
commit
7d672b76bf
@ -2191,6 +2191,14 @@ heap_multi_insert(Relation relation, TupleTableSlot **slots, int ntuples,
|
|||||||
* Put that on the page, and then as many other tuples as fit.
|
* Put that on the page, and then as many other tuples as fit.
|
||||||
*/
|
*/
|
||||||
RelationPutHeapTuple(relation, buffer, heaptuples[ndone], false);
|
RelationPutHeapTuple(relation, buffer, heaptuples[ndone], false);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Note that heap_multi_insert is not used for catalog tuples yet,
|
||||||
|
* but this will cover the gap once that is the case.
|
||||||
|
*/
|
||||||
|
if (needwal && need_cids)
|
||||||
|
log_heap_new_cid(relation, heaptuples[ndone]);
|
||||||
|
|
||||||
for (nthispage = 1; ndone + nthispage < ntuples; nthispage++)
|
for (nthispage = 1; ndone + nthispage < ntuples; nthispage++)
|
||||||
{
|
{
|
||||||
HeapTuple heaptup = heaptuples[ndone + nthispage];
|
HeapTuple heaptup = heaptuples[ndone + nthispage];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user