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
* Put that on the page, and then as many other tuples as fit.
*/
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++)
{
HeapTuple heaptup = heaptuples[ndone + nthispage];