Add comments

pull/5911/head
Yanwen Jin 2022-06-14 17:22:01 -07:00
parent f78a25f72b
commit b45a3dc25a
2 changed files with 13 additions and 5 deletions

View File

@ -2376,6 +2376,8 @@ ColumnarProcessUtility(PlannedStmt *pstmt,
DefElem *newVersionValue = GetExtensionOption( DefElem *newVersionValue = GetExtensionOption(
createExtensionStmt->options, createExtensionStmt->options,
"new_version"); "new_version");
/*we are not allowed to install citus_columnar as version 11.1-0 by cx*/
if (newVersionValue) if (newVersionValue)
{ {
const char *newVersion = defGetString(newVersionValue); const char *newVersion = defGetString(newVersionValue);
@ -2405,6 +2407,8 @@ ColumnarProcessUtility(PlannedStmt *pstmt,
{ {
DefElem *newVersionValue = GetExtensionOption(alterExtensionStmt->options, DefElem *newVersionValue = GetExtensionOption(alterExtensionStmt->options,
"new_version"); "new_version");
/*we are not allowed cx to downgrade citus_columnar to 11.1-0*/
if (newVersionValue) if (newVersionValue)
{ {
const char *newVersion = defGetString(newVersionValue); const char *newVersion = defGetString(newVersionValue);

View File

@ -209,12 +209,14 @@ multi_ProcessUtility(PlannedStmt *pstmt,
DefElem *newVersionValue = GetExtensionOption(createExtensionStmt->options, DefElem *newVersionValue = GetExtensionOption(createExtensionStmt->options,
"new_version"); "new_version");
/*create extension citus version xxx*/
if (newVersionValue) if (newVersionValue)
{ {
char *newVersion = strdup(defGetString(newVersionValue)); char *newVersion = strdup(defGetString(newVersionValue));
versionNumber = GetExtensionVersionNumber(newVersion); versionNumber = GetExtensionVersionNumber(newVersion);
} }
/*citus version >= 11.1 requires install citus_columnar first*/
if (versionNumber * 100 >= 1110.0) if (versionNumber * 100 >= 1110.0)
{ {
if (get_extension_oid("citus_columnar", true) == InvalidOid) if (get_extension_oid("citus_columnar", true) == InvalidOid)
@ -648,7 +650,7 @@ ProcessUtilityInternal(PlannedStmt *pstmt,
{ {
citusCanBeUpdatedToAvailableVersion = !InstalledAndAvailableVersionsSame(); citusCanBeUpdatedToAvailableVersion = !InstalledAndAvailableVersionsSame();
/*upgrade citus */ /*upgrade citus: alter extension citus update to 'xxx' */
DefElem *newVersionValue = GetExtensionOption( DefElem *newVersionValue = GetExtensionOption(
((AlterExtensionStmt *) parsetree)->options, "new_version"); ((AlterExtensionStmt *) parsetree)->options, "new_version");
Oid citusColumnarOid = get_extension_oid("citus_columnar", true); Oid citusColumnarOid = get_extension_oid("citus_columnar", true);
@ -660,17 +662,18 @@ ProcessUtilityInternal(PlannedStmt *pstmt,
/*alter extension citus update to version >= 11.1-1, and no citus_columnar installed */ /*alter extension citus update to version >= 11.1-1, and no citus_columnar installed */
if (newVersionNumber * 100 >= 1110 && citusColumnarOid == InvalidOid) if (newVersionNumber * 100 >= 1110 && citusColumnarOid == InvalidOid)
{ {
/*it's upgrade citus to version later or equal to 11.1-1 */ /*it's upgrade citus to 11.1-1 or further version */
CreateExtensionWithVersion("citus_columnar", "11.1-0"); CreateExtensionWithVersion("citus_columnar", "11.1-0");
} }
else if (newVersionNumber * 100 < 1110 && citusColumnarOid != InvalidOid) else if (newVersionNumber * 100 < 1110 && citusColumnarOid != InvalidOid)
{ {
/*downgrade citus_columnar to Y */ /*downgrade citus, need downgrade citus_columnar to Y */
AlterExtensionUpdateStmt("citus_columnar", "11.1-0"); AlterExtensionUpdateStmt("citus_columnar", "11.1-0");
} }
} }
else else
{ {
/*alter exention citus update without specifying the version*/
double versionNumber = strtod(CITUS_MAJORVERSION, NULL); double versionNumber = strtod(CITUS_MAJORVERSION, NULL);
if (versionNumber * 100 >= 1110) if (versionNumber * 100 >= 1110)
{ {
@ -696,7 +699,7 @@ ProcessUtilityInternal(PlannedStmt *pstmt,
double newVersionNumber = GetExtensionVersionNumber(strdup(newVersion)); double newVersionNumber = GetExtensionVersionNumber(strdup(newVersion));
if (newVersionNumber * 100 >= 1110 && citusColumnarOid != InvalidOid) if (newVersionNumber * 100 >= 1110 && citusColumnarOid != InvalidOid)
{ {
/*after "ALTER EXTENSION citus" updates citus_columnar Y to version Z. */ /*upgrade citus, after "ALTER EXTENSION citus update to xxx" updates citus_columnar Y to version Z. */
char *curColumnarVersion = get_extension_version(citusColumnarOid); char *curColumnarVersion = get_extension_version(citusColumnarOid);
if (strcmp(curColumnarVersion, "11.1-0") == 0) if (strcmp(curColumnarVersion, "11.1-0") == 0)
{ {
@ -705,7 +708,7 @@ ProcessUtilityInternal(PlannedStmt *pstmt,
} }
else if (newVersionNumber * 100 < 1110 && citusColumnarOid != InvalidOid) else if (newVersionNumber * 100 < 1110 && citusColumnarOid != InvalidOid)
{ {
/*after "ALTER EXTENSION citus" drops citus_columnar extension */ /*downgrade citus, after "ALTER EXTENSION citus update to xxx" drops citus_columnar extension */
char *curColumnarVersion = get_extension_version(citusColumnarOid); char *curColumnarVersion = get_extension_version(citusColumnarOid);
if (strcmp(curColumnarVersion, "11.1-0") == 0) if (strcmp(curColumnarVersion, "11.1-0") == 0)
{ {
@ -715,6 +718,7 @@ ProcessUtilityInternal(PlannedStmt *pstmt,
} }
else else
{ {
/*alter extension citus update, need upgrade citus_columnar from Y to Z*/
double versionNumber = strtod(CITUS_MAJORVERSION, NULL); double versionNumber = strtod(CITUS_MAJORVERSION, NULL);
if (versionNumber * 100 >= 1110) if (versionNumber * 100 >= 1110)
{ {