From 752728351c7f600cb8b2ae053f0ad27223c3faa1 Mon Sep 17 00:00:00 2001
From: Isaac Morland <ijmorlan@uwaterloo.ca>
Date: Sun, 18 Mar 2018 16:17:25 -0400
Subject: [PATCH] Change matview refresh and related authorization checking to
 check for truncate permission rather than ownership.

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

diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c
index 218224a..8c42331 100644
--- a/src/backend/commands/tablecmds.c
+++ b/src/backend/commands/tablecmds.c
@@ -13190,8 +13190,8 @@ RangeVarCallbackOwnsTable(const RangeVar *relation,
 				 errmsg("\"%s\" is not a table or materialized view", relation->relname)));
 
 	/* Check permissions */
-	if (!pg_class_ownercheck(relId, GetUserId()))
-		aclcheck_error(ACLCHECK_NOT_OWNER, get_relkind_objtype(get_rel_relkind(relId)), relation->relname);
+	if (pg_class_aclcheck(relId, GetUserId(), ACL_TRUNCATE) != ACLCHECK_OK)
+		aclcheck_error(ACLCHECK_NO_PRIV, get_relkind_objtype(get_rel_relkind(relId)), relation->relname);
 }
 
 /*
-- 
2.6.4 (Apple Git-63)

