You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by rm...@apache.org on 2018/04/16 21:57:35 UTC
[1/2] trafodion git commit: [TRAFODION-2249] Cannot use library
management SPJs after an upgrade
Repository: trafodion
Updated Branches:
refs/heads/master 92476567f -> c826bceb5
[TRAFODION-2249] Cannot use library management SPJs after an upgrade
Updated initialize trafodion, upgrade library management to modify the
jar/dll file locations for all system libraries to the new location.
Changed python installer to call ..., upgrade library management during
an upgrade operation
Project: http://git-wip-us.apache.org/repos/asf/trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafodion/commit/e3b01d41
Tree: http://git-wip-us.apache.org/repos/asf/trafodion/tree/e3b01d41
Diff: http://git-wip-us.apache.org/repos/asf/trafodion/diff/e3b01d41
Branch: refs/heads/master
Commit: e3b01d41d6305695ade2961d6c2edd6b0c5959af
Parents: ad1c676
Author: Roberta Marton <ro...@apache.org>
Authored: Fri Apr 13 17:44:03 2018 +0000
Committer: Roberta Marton <ro...@apache.org>
Committed: Fri Apr 13 17:44:03 2018 +0000
----------------------------------------------------------------------
core/sql/sqlcomp/CmpSeabaseDDLroutine.cpp | 65 +++++++++++++++++++++
core/sql/sqlcomp/CmpSeabaseDDLroutine.h | 3 +
install/python-installer/scripts/traf_start.py | 8 +++
3 files changed, 76 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafodion/blob/e3b01d41/core/sql/sqlcomp/CmpSeabaseDDLroutine.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/CmpSeabaseDDLroutine.cpp b/core/sql/sqlcomp/CmpSeabaseDDLroutine.cpp
index c1fc51d..b28d2cf 100644
--- a/core/sql/sqlcomp/CmpSeabaseDDLroutine.cpp
+++ b/core/sql/sqlcomp/CmpSeabaseDDLroutine.cpp
@@ -1778,6 +1778,71 @@ short CmpSeabaseDDL::upgradeSeabaseLibmgr(ExeCliInterface * cliInterface)
return -1;
}
+ // Update the jar locations for system procedures and functions. This should
+ // be done before adding any new jar's since we use a system procedure to add
+ // procedures.
+ NAString jarLocation(getenv("TRAF_HOME"));
+ jarLocation += "/export/lib";
+
+ char queryBuf[1000];
+
+ // trafodion-sql_currversion.jar
+ Int32 stmtSize = snprintf(queryBuf, sizeof(queryBuf), "update %s.\"%s\".%s "
+ "set library_filename = '%s/trafodion-sql-currversion.jar' "
+ "where library_uid = "
+ "(select object_uid from %s.\"%s\".%s "
+ " where object_name = '%s' and object_type = 'LB')",
+ getSystemCatalog(),SEABASE_MD_SCHEMA, SEABASE_LIBRARIES, jarLocation.data(),
+ getSystemCatalog(),SEABASE_MD_SCHEMA, SEABASE_OBJECTS, SEABASE_VALIDATE_LIBRARY);
+ CMPASSERT(stmtSize < sizeof(queryBuf));
+
+ cliRC = cliInterface->executeImmediate(queryBuf);
+ if (cliRC < 0)
+ {
+ cliInterface->retrieveSQLDiagnostics(CmpCommon::diags());
+ return -1;
+ }
+
+ // lib_mgmt.jar
+ stmtSize = snprintf(queryBuf, sizeof(queryBuf), "update %s.\"%s\".%s "
+ "set library_filename = '%s/lib_mgmt.jar' "
+ "where library_uid = "
+ "(select object_uid from %s.\"%s\".%s "
+ " where object_name = '%s' and object_type = 'LB')",
+ getSystemCatalog(),SEABASE_MD_SCHEMA, SEABASE_LIBRARIES, jarLocation.data(),
+ getSystemCatalog(),SEABASE_MD_SCHEMA, SEABASE_OBJECTS, SEABASE_LIBMGR_LIBRARY);
+ CMPASSERT(stmtSize < sizeof(queryBuf));
+
+ cliRC = cliInterface->executeImmediate(queryBuf);
+ if (cliRC < 0)
+ {
+ cliInterface->retrieveSQLDiagnostics(CmpCommon::diags());
+ return -1;
+ }
+
+ // libudr_predef.so
+ NAString dllLocation(getenv("TRAF_HOME"));
+ dllLocation += "/export/lib64";
+ if (strcmp(getenv("SQ_MBTYPE"), "64d") == 0)
+ dllLocation += "d";
+
+ stmtSize = snprintf(queryBuf, sizeof(queryBuf), "update %s.\"%s\".%s "
+ "set library_filename = '%s/libudr_predef.so' "
+ "where library_uid = "
+ "(select object_uid from %s.\"%s\".%s "
+ " where object_name = '%s' and object_type = 'LB')",
+ getSystemCatalog(),SEABASE_MD_SCHEMA, SEABASE_LIBRARIES, dllLocation.data(),
+ getSystemCatalog(),SEABASE_MD_SCHEMA, SEABASE_OBJECTS, SEABASE_LIBMGR_LIBRARY_CPP);
+ CMPASSERT(stmtSize < sizeof(queryBuf));
+
+ cliRC = cliInterface->executeImmediate(queryBuf);
+ if (cliRC < 0)
+ {
+ cliInterface->retrieveSQLDiagnostics(CmpCommon::diags());
+ return -1;
+ }
+
+
// now check for the C++ library, which was added in Trafodion 2.3
cliRC = existsInSeabaseMDTable(cliInterface,
getSystemCatalog(), SEABASE_LIBMGR_SCHEMA,
http://git-wip-us.apache.org/repos/asf/trafodion/blob/e3b01d41/core/sql/sqlcomp/CmpSeabaseDDLroutine.h
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/CmpSeabaseDDLroutine.h b/core/sql/sqlcomp/CmpSeabaseDDLroutine.h
index deadac4..92adf18 100644
--- a/core/sql/sqlcomp/CmpSeabaseDDLroutine.h
+++ b/core/sql/sqlcomp/CmpSeabaseDDLroutine.h
@@ -32,6 +32,9 @@
// perform initialize trafodion, upgrade library management
// recommend that new procedures are added in alphabetic order
+// If adding a new library, be sure to update upgradeSeabaseLibmgr to
+// update jar/dll locations to the new version.
+
// At this time there is no support to drop or change the signature of an
// existing procedure. Since customers may be using the procedures, it is
// recommended that they not be dropped or changed - instead add new ones
http://git-wip-us.apache.org/repos/asf/trafodion/blob/e3b01d41/install/python-installer/scripts/traf_start.py
----------------------------------------------------------------------
diff --git a/install/python-installer/scripts/traf_start.py b/install/python-installer/scripts/traf_start.py
index f05abbc..f1d221b 100755
--- a/install/python-installer/scripts/traf_start.py
+++ b/install/python-installer/scripts/traf_start.py
@@ -52,10 +52,18 @@ def run():
if meta_current != "1":
print 'Initialize trafodion, upgrade'
run_cmd('echo "initialize trafodion, upgrade;" | sqlci > %s' % tmp_file)
+
+ # update system library procedures and functions
+ run_cmd('echo "initialize trafodion, upgrade library management;" | sqlci > %s' %tmp_file)
+ library_output = cmd_output('cat %s' % tmp_file)
+ if 'ERROR' in library_output:
+ err('Failed to initialize trafodion, upgrade library management:\n %s' % library_output)
+
# other errors
elif 'ERROR' in init_output:
err('Failed to initialize trafodion:\n %s' % init_output)
+
run_cmd('rm -rf %s' % tmp_file)
if dbcfgs['ldap_security'] == 'Y':
run_cmd('echo "initialize authorization; alter user DB__ROOT set external name \\\"%s\\\";" | sqlci > %s' % (dbcfgs['db_root_user'], tmp_file))
[2/2] trafodion git commit: Merge [TRAFODION-2249] pr 1517 Cannot use
library management SPJs after an upgrade
Posted by rm...@apache.org.
Merge [TRAFODION-2249] pr 1517 Cannot use library management SPJs after an upgrade
Project: http://git-wip-us.apache.org/repos/asf/trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafodion/commit/c826bceb
Tree: http://git-wip-us.apache.org/repos/asf/trafodion/tree/c826bceb
Diff: http://git-wip-us.apache.org/repos/asf/trafodion/diff/c826bceb
Branch: refs/heads/master
Commit: c826bceb5912ccd9d4aab6128f6470f72f65d214
Parents: 9247656 e3b01d4
Author: Roberta Marton <ro...@apache.org>
Authored: Mon Apr 16 21:57:06 2018 +0000
Committer: Roberta Marton <ro...@apache.org>
Committed: Mon Apr 16 21:57:06 2018 +0000
----------------------------------------------------------------------
core/sql/sqlcomp/CmpSeabaseDDLroutine.cpp | 65 +++++++++++++++++++++
core/sql/sqlcomp/CmpSeabaseDDLroutine.h | 3 +
install/python-installer/scripts/traf_start.py | 8 +++
3 files changed, 76 insertions(+)
----------------------------------------------------------------------