Github user robertamarton commented on a diff in the pull request:
https://github.com/apache/trafodion/pull/1721#discussion_r225015033
--- Diff: core/sql/sqlcomp/CmpSeabaseDDLroutine.cpp ---
@@ -1925,3 +2730,568 @@ short
CmpSeabaseDDL::createSeabaseLibmgrCPPLib(ExeCliInterface * cliInterface)
}
return 0;
}
+
+short CmpSeabaseDDL::upgradeLibraries(ExeCliInterface * cliInterface,
+ CmpDDLwithStatusInfo *mdui)
+{
+Lng32 cliRC = 0;
+
+ while (1) // exit via return stmt in switch
+ {
+ switch (mdui->subStep())
+ {
+ case 0:
+ {
+ mdui->setMsg("Upgrade Libraries: Started");
+ mdui->subStep()++;
+ mdui->setEndStep(FALSE);
+
+ return 0;
+ }
+ break;
+
+ case 1:
+ {
+ mdui->setMsg(" Start: Drop Old Libraries");
+ mdui->subStep()++;
+ mdui->setEndStep(FALSE);
+
+ return 0;
+ }
+ break;
+
+ case 2:
+ {
+ // drop old libraries
+ if (dropLibraries(cliInterface, TRUE/*old */))
+ return -3; // error, but no recovery needed
+
+ mdui->setMsg(" End: Drop Old Libraries");
+ mdui->subStep()++;
+ mdui->setEndStep(FALSE);
+
+ return 0;
+ }
+ break;
+
+ case 3:
+ {
+ mdui->setMsg(" Start: Rename Current Libraries");
+ mdui->subStep()++;
+ mdui->setEndStep(FALSE);
+
+ return 0;
+ }
+ break;
+
+ case 4:
+ {
+ // rename current libraries tables to *_OLD_LIBRARIES
+ if (alterRenameLibraries(cliInterface, TRUE))
+ return -2; // error, need to undo the rename only
+
+ mdui->setMsg(" End: Rename Current Libraries");
+ mdui->subStep()++;
+ mdui->setEndStep(FALSE);
+
+ return 0;
+ }
+ break;
+
+ case 5:
+ {
+ mdui->setMsg(" Start: Create New Libraries");
+ mdui->subStep()++;
+ mdui->setEndStep(FALSE);
+
+ return 0;
+ }
+ break;
+
+ case 6:
+ {
+ // create new libraries
+ if (createLibraries(cliInterface))
+ return -1; // error, need to drop new libraies then undo
rename
+
+ mdui->setMsg(" End: Create New Libraries");
+ mdui->subStep()++;
+ mdui->setEndStep(FALSE);
+
+ return 0;
+ }
+ break;
+
+ case 7:
+ {
+ mdui->setMsg(" Start: Copy Old Libraries Contents ");
+ mdui->subStep()++;
+ mdui->setEndStep(FALSE);
+
+ return 0;
+ }
+ break;
+
+ case 8:
+ {
+ // copy old contents into new
+
+ if (copyOldLibrariesToNew(cliInterface))
+ {
+ mdui->setMsg(" Copy Old Libraries failed ! Drop and
recreate the following : ");
+ //return -1; // error, need to drop new libraries then
undo rename
--- End diff --
Should this be commented out?
---