From 97fa4d98ba9fa904fd24b61c7d423a7ce3514cb0 Mon Sep 17 00:00:00 2001 From: Brian Cloutier Date: Thu, 20 Oct 2016 17:20:30 +0300 Subject: [PATCH] Disable EXPLAIN EXECUTE under citus --- .../distributed/executor/multi_utility.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/backend/distributed/executor/multi_utility.c b/src/backend/distributed/executor/multi_utility.c index 05182dbba..c0326786c 100644 --- a/src/backend/distributed/executor/multi_utility.c +++ b/src/backend/distributed/executor/multi_utility.c @@ -181,6 +181,23 @@ multi_ProcessUtility(Node *parsetree, return; } + if (IsA(parsetree, ExplainStmt)) + { + ExplainStmt *explainStmt = (ExplainStmt *) parsetree; + + if (IsA(explainStmt->query, Query)) + { + Query *query = (Query *) explainStmt->query; + + if (query->commandType == CMD_UTILITY && + IsA(query->utilityStmt, ExecuteStmt)) + { + /* Due to a postgres limitation these cause crashes. Skip them for now */ + ereport(ERROR, (errmsg("Citus does not support EXPLAIN EXECUTE"))); + } + } + } + if (IsA(parsetree, CopyStmt)) { parsetree = ProcessCopyStmt((CopyStmt *) parsetree, completionTag,