From e06abe3534eb8cccc735f28b923e7e76d6c98ef1 Mon Sep 17 00:00:00 2001 From: Yanwen Jin Date: Wed, 25 May 2022 13:55:32 -0700 Subject: [PATCH] install citus_columnar for citus version >= 11.1 --- .../distributed/commands/utility_hook.c | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/backend/distributed/commands/utility_hook.c b/src/backend/distributed/commands/utility_hook.c index 4e3219a7c..105bde829 100644 --- a/src/backend/distributed/commands/utility_hook.c +++ b/src/backend/distributed/commands/utility_hook.c @@ -204,9 +204,25 @@ multi_ProcessUtility(PlannedStmt *pstmt, parsetree); if (strcmp(createExtensionStmt->extname, "citus") == 0) { - if (get_extension_oid("citus_columnar", true) == InvalidOid) + double versionNumber = strtod(CITUS_MAJORVERSION, NULL); + DefElem *newVersionValue = GetExtensionOption(createExtensionStmt->options, + "new_version"); + + if (newVersionValue) { - CreateExtensionWithVersion("citus_columnar", NULL); + const char *newVersion = defGetString(newVersionValue); + const char schemaVersionSeparator = '-'; + + char *leftSeperatorPosition = strchr(newVersion, schemaVersionSeparator); + versionNumber = strtod(leftSeperatorPosition, NULL); + } + + if (versionNumber >= 11.1) + { + if (get_extension_oid("citus_columnar", true) == InvalidOid) + { + CreateExtensionWithVersion("citus_columnar", NULL); + } } } }