You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by an...@apache.org on 2016/09/11 20:23:01 UTC
[1/2] incubator-trafodion git commit: jira TRAFODION-1755 mxosrvr
crashes during explain using EXPLAIN_STMT syntax
Repository: incubator-trafodion
Updated Branches:
refs/heads/master 35342a4b9 -> 9e8c75fc7
jira TRAFODION-1755 mxosrvr crashes during explain using EXPLAIN_STMT syntax
mxosrvr crashes when using the explain_stmt option
select * from table(explain(null, 'EXPLAIN_STMT=<stmt>'));
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/03634742
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/03634742
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/03634742
Branch: refs/heads/master
Commit: 036347428361379dede91d861f7f639516292a0d
Parents: 35342a4
Author: Anoop Sharma <an...@esgyn.com>
Authored: Sat Sep 10 20:06:03 2016 +0000
Committer: Anoop Sharma <an...@esgyn.com>
Committed: Sat Sep 10 20:06:03 2016 +0000
----------------------------------------------------------------------
core/sql/executor/ExExeUtilCli.cpp | 8 +++++---
core/sql/executor/ExExplain.cpp | 11 +++++++----
core/sql/sqlci/SqlCmd.cpp | 6 ++++--
3 files changed, 16 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/03634742/core/sql/executor/ExExeUtilCli.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExExeUtilCli.cpp b/core/sql/executor/ExExeUtilCli.cpp
index d456ede..1e989fb 100644
--- a/core/sql/executor/ExExeUtilCli.cpp
+++ b/core/sql/executor/ExExeUtilCli.cpp
@@ -626,9 +626,10 @@ Lng32 ExeCliInterface::setupExplainData(SQLMODULE_ID * module,
// get explain fragment.
explainDataLen_ = 50000; // start with 50K bytes
Int32 retExplainLen = 0;
- explainData_ = new(getHeap()) char[explainDataLen_];
+ explainData_ = new(getHeap()) char[explainDataLen_+1];
retcode = SQL_EXEC_GetExplainData(stmt,
- explainData_, explainDataLen_, &retExplainLen
+ explainData_, explainDataLen_+1,
+ &retExplainLen
);
if (retcode == -CLI_GENCODE_BUFFER_TOO_SMALL)
{
@@ -638,7 +639,8 @@ Lng32 ExeCliInterface::setupExplainData(SQLMODULE_ID * module,
explainData_ = new(getHeap()) char[explainDataLen_ + 1];
retcode = SQL_EXEC_GetExplainData(stmt,
- explainData_, explainDataLen_, &retExplainLen
+ explainData_, explainDataLen_+1,
+ &retExplainLen
);
}
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/03634742/core/sql/executor/ExExplain.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExExplain.cpp b/core/sql/executor/ExExplain.cpp
index c0b5d0c..cb29821 100644
--- a/core/sql/executor/ExExplain.cpp
+++ b/core/sql/executor/ExExplain.cpp
@@ -1651,9 +1651,10 @@ short ExExplainTcb::getExplainData(
// data stored is explain repos header followed by actual explain tdb data.
Int32 storedExplLen = sizeof(ExplainReposInfo) + fragLen;
Lng32 encodedFragLen = str_encoded_len(storedExplLen);
- *ret_explain_len = encodedFragLen + 1 /*null terminator*/;
+ *ret_explain_len = encodedFragLen;
- if ((! explain_ptr) || (explain_buf_len < *ret_explain_len))
+ if ((! explain_ptr) ||
+ (explain_buf_len < (*ret_explain_len + 1/*null terminator*/)))
{
cliRC = -CLI_GENCODE_BUFFER_TOO_SMALL;
@@ -1671,6 +1672,8 @@ short ExExplainTcb::getExplainData(
// encode it before returning
str_encode(explain_ptr, encodedFragLen, storedExplData, storedExplLen);
+
+ // null terminate explain fragment
explain_ptr[encodedFragLen] = 0;
NADELETEBASIC(storedExplData, heap);
@@ -1738,9 +1741,9 @@ short ExExplainTcb::getExplainFromRepos(char * qid, Lng32 qidLen)
if (vi->get(0, ptr, len))
goto label_error2;
- explainFragLen_ = str_decoded_len(len-1); // remove trailing null terminator
+ explainFragLen_ = str_decoded_len(len); // remove trailing null terminator
explainFrag_ = new(getHeap()) char[explainFragLen_];
- if (str_decode(explainFrag_, explainFragLen_, ptr, len-1) < 0)
+ if (str_decode(explainFrag_, explainFragLen_, ptr, len) < 0)
{
diagsArea = pEntryDown->getAtp()->getDiagsArea();
ExRaiseSqlError(getGlobals()->getDefaultHeap(),
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/03634742/core/sql/sqlci/SqlCmd.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlci/SqlCmd.cpp b/core/sql/sqlci/SqlCmd.cpp
index c21531c..be0fc05 100644
--- a/core/sql/sqlci/SqlCmd.cpp
+++ b/core/sql/sqlci/SqlCmd.cpp
@@ -715,7 +715,8 @@ short SqlCmd::updateRepos(SqlciEnv * sqlci_env, SQLSTMT_ID * stmt, char * queryI
Int32 retExplainLen = 0;
char * explainData = new char[explainDataLen + 1];
retcode = SQL_EXEC_GetExplainData(stmt,
- explainData, explainDataLen, &retExplainLen
+ explainData, explainDataLen+1,
+ &retExplainLen
);
if (retcode == -CLI_GENCODE_BUFFER_TOO_SMALL)
{
@@ -726,7 +727,8 @@ short SqlCmd::updateRepos(SqlciEnv * sqlci_env, SQLSTMT_ID * stmt, char * queryI
SqlCmd::clearCLIDiagnostics();
retcode = SQL_EXEC_GetExplainData(stmt,
- explainData, explainDataLen, &retExplainLen
+ explainData, explainDataLen+1,
+ &retExplainLen
);
}
[2/2] incubator-trafodion git commit: Merge [TRAFODION-1755] PR-694
mxosrvr crashes during explain
Posted by an...@apache.org.
Merge [TRAFODION-1755] PR-694 mxosrvr crashes during explain
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/9e8c75fc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/9e8c75fc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/9e8c75fc
Branch: refs/heads/master
Commit: 9e8c75fc794961fae39310924833c1ddb82e09d6
Parents: 35342a4 0363474
Author: Anoop Sharma <an...@esgyn.com>
Authored: Sun Sep 11 20:22:46 2016 +0000
Committer: Anoop Sharma <an...@esgyn.com>
Committed: Sun Sep 11 20:22:46 2016 +0000
----------------------------------------------------------------------
core/sql/executor/ExExeUtilCli.cpp | 8 +++++---
core/sql/executor/ExExplain.cpp | 11 +++++++----
core/sql/sqlci/SqlCmd.cpp | 6 ++++--
3 files changed, 16 insertions(+), 9 deletions(-)
----------------------------------------------------------------------