blob: 8ce69e17c9eb61676f0614be76a6b7d62158ded3 [file] [log] [blame]
From 399acf6de6d02b3362faa13379b6bd948b91e20c Mon Sep 17 00:00:00 2001
From: Sven Klemm <sven@timescale.com>
Date: Fri, 2 Oct 2020 00:58:57 +0200
Subject: [PATCH] Adjust copy to PG13 HEAP_INSERT_SKIP_WAL change
Signed-off-by: Maxim Kochetkov <fido_max@inbox.ru>
Fetch from: https://github.com/timescale/timescaledb/pull/2498/commits/446f977be8ead518579b3c5b2458429f27518b48.patch
---
src/copy.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/copy.c b/src/copy.c
index e38ae15e..1187a696 100644
--- a/src/copy.c
+++ b/src/copy.c
@@ -27,6 +27,7 @@
#include <parser/parse_collate.h>
#include <parser/parse_relation.h>
#include <storage/bufmgr.h>
+#include <storage/smgr.h>
#include <utils/builtins.h>
#include <utils/guc.h>
#include <utils/lsyscache.h>
@@ -215,8 +216,10 @@ copyfrom(CopyChunkState *ccstate, List *range_table, Hypertable *ht, void (*call
ccstate->rel->rd_newRelfilenodeSubid != InvalidSubTransactionId)
{
ti_options |= HEAP_INSERT_SKIP_FSM;
+#if PG13_LT
if (!XLogIsNeeded())
ti_options |= HEAP_INSERT_SKIP_WAL;
+#endif
}
/*
@@ -449,8 +452,13 @@ copyfrom(CopyChunkState *ccstate, List *range_table, Hypertable *ht, void (*call
* If we skipped writing WAL, then we need to sync the heap (but not
* indexes since those use WAL anyway)
*/
+#if PG13_LT
if (ti_options & HEAP_INSERT_SKIP_WAL)
heap_sync(ccstate->rel);
+#else
+ if (!RelationNeedsWAL(ccstate->rel))
+ smgrimmedsync(ccstate->rel->rd_smgr, MAIN_FORKNUM);
+#endif
return processed;
}
--
2.29.2