From 637c3348651c7fb2649d0396d7e9f166ed4e82b1 Mon Sep 17 00:00:00 2001 From: Jeff Davis Date: Thu, 14 Apr 2022 15:21:34 -0700 Subject: [PATCH] Example process utility --- src/backend/distributed/commands/utility_hook.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/backend/distributed/commands/utility_hook.c b/src/backend/distributed/commands/utility_hook.c index 9c93f0737..43364e9ff 100644 --- a/src/backend/distributed/commands/utility_hook.c +++ b/src/backend/distributed/commands/utility_hook.c @@ -40,6 +40,7 @@ #include "catalog/dependency.h" #include "commands/dbcommands.h" #include "commands/defrem.h" +#include "commands/extension.h" #include "commands/tablecmds.h" #include "distributed/adaptive_executor.h" #include "distributed/colocation_utils.h" @@ -193,6 +194,21 @@ multi_ProcessUtility(PlannedStmt *pstmt, ErrorIfUnstableCreateOrAlterExtensionStmt(parsetree); } + if (IsA(parsetree, CreateExtensionStmt)) + { + CreateExtensionStmt *createExtensionStmt = castNode(CreateExtensionStmt, parsetree); + if (strcmp(createExtensionStmt->extname, "citus") == 0) + { + CreateExtensionStmt *createCitusStmt = makeNode(CreateExtensionStmt); + createCitusStmt->extname = "foo"; + createCitusStmt->if_not_exists = true; + createCitusStmt->options = NIL; + + CreateExtension(NULL, createCitusStmt); + CommandCounterIncrement(); + } + } + if (!CitusHasBeenLoaded()) { /*