>From b77ea7e33e0b2d9ae02559a52ac9f0326eac69fe Mon Sep 17 00:00:00 2001
From: Andres Freund <andres@anarazel.de>
Date: Wed, 23 Oct 2013 03:08:45 +0200
Subject: [PATCH 4/4] matview: lock temp table till tx end during refresh for
 easier debugging

---
 src/backend/commands/matview.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/backend/commands/matview.c b/src/backend/commands/matview.c
index 1c02eab..8e8981a 100644
--- a/src/backend/commands/matview.c
+++ b/src/backend/commands/matview.c
@@ -243,6 +243,10 @@ ExecRefreshMatView(RefreshMatViewStmt *stmt, const char *queryString,
 	/* Create the transient table that will receive the regenerated data. */
 	OIDNewHeap = make_new_heap(matviewOid, tableSpace, concurrent,
 							   ExclusiveLock);
+
+	/* lock temporary table till end of transaction */
+	heap_close(heap_open(OIDNewHeap, lockmode), NoLock);
+
 	dest = CreateTransientRelDestReceiver(OIDNewHeap);
 
 	/* Generate the data, if wanted. */
-- 
1.8.3.251.g1462b67

