[TRAFODION-2351] Bulk load with log error rows enhancements Fixes to take care of review comments
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/884eee0c Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/884eee0c Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/884eee0c Branch: refs/heads/master Commit: 884eee0c622aedd9dfecceb8be75ada32a182d2a Parents: e0244dd Author: selvaganesang <selva.govindara...@esgyn.com> Authored: Mon Dec 19 05:47:05 2016 +0000 Committer: selvaganesang <selva.govindara...@esgyn.com> Committed: Mon Dec 19 05:47:05 2016 +0000 ---------------------------------------------------------------------- core/sql/executor/ExExeUtilCommon.cpp | 1 - core/sql/executor/ExHbaseAccess.cpp | 6 +++++- core/sql/executor/ExHbaseAccess.h | 5 +++-- core/sql/executor/ExHbaseIUD.cpp | 7 ++++++- core/sql/executor/ExHdfsScan.cpp | 7 ++++++- core/sql/executor/ExHdfsScan.h | 2 +- 6 files changed, 21 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/884eee0c/core/sql/executor/ExExeUtilCommon.cpp ---------------------------------------------------------------------- diff --git a/core/sql/executor/ExExeUtilCommon.cpp b/core/sql/executor/ExExeUtilCommon.cpp index a92e786..f400ba0 100644 --- a/core/sql/executor/ExExeUtilCommon.cpp +++ b/core/sql/executor/ExExeUtilCommon.cpp @@ -648,7 +648,6 @@ short ExExeUtilTcb::executeQuery(char * task, if (displayEndTime) { - char timeBuf[200]; getTimestampAsString(endTime_, timeBuf); getStatusString(task, "Ended", object, buf, FALSE, timeBuf); if (moveRowToUpQueue(buf, 0, &rc)) http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/884eee0c/core/sql/executor/ExHbaseAccess.cpp ---------------------------------------------------------------------- diff --git a/core/sql/executor/ExHbaseAccess.cpp b/core/sql/executor/ExHbaseAccess.cpp index d56d9df..b102aef 100644 --- a/core/sql/executor/ExHbaseAccess.cpp +++ b/core/sql/executor/ExHbaseAccess.cpp @@ -3033,13 +3033,17 @@ void ExHbaseAccessTcb::setRowID(char *rowId, Lng32 rowIdLen) memcpy(rowID_.val, rowId, rowIdLen); } -void ExHbaseAccessTcb::buildLoggingFileName( +void ExHbaseAccessTcb::buildLoggingFileName(NAHeap *heap, const char * currCmdLoggingLocation, const char *tableName, const char * loggingFileNamePrefix, Lng32 instId, char * loggingFileName) { + if (loggingFileName != NULL) + NADELETEBASIC(loggingFileName, heap); + short logLen = strlen(currCmdLoggingLocation)+strlen(loggingFileNamePrefix)+strlen(tableName)+100; + loggingFileName = new (heap) char[logLen]; sprintf(loggingFileName, "%s/%s_%s_%d", currCmdLoggingLocation, loggingFileNamePrefix, tableName, instId); } http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/884eee0c/core/sql/executor/ExHbaseAccess.h ---------------------------------------------------------------------- diff --git a/core/sql/executor/ExHbaseAccess.h b/core/sql/executor/ExHbaseAccess.h index a1e25c2..d2f5a7e 100644 --- a/core/sql/executor/ExHbaseAccess.h +++ b/core/sql/executor/ExHbaseAccess.h @@ -185,7 +185,8 @@ public: char *logId, const char *tableName, char * currCmdLoggingLocation); - static void buildLoggingFileName(const char * currCmdLoggingLocation, + static void buildLoggingFileName(NAHeap *heap, + const char * currCmdLoggingLocation, const char *tableName, const char * loggingFileNamePrefix, Lng32 instId, @@ -943,7 +944,7 @@ class ExHbaseAccessBulkLoadPrepSQTcb: public ExHbaseAccessUpsertVsbbSQTcb Text importLocation_; Text hFileName_; - char loggingFileName_[1000]; + char *loggingFileName_; NABoolean LoggingFileCreated_ ; ComCondition * lastErrorCnd_; std::vector<UInt32> posVec_; http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/884eee0c/core/sql/executor/ExHbaseIUD.cpp ---------------------------------------------------------------------- diff --git a/core/sql/executor/ExHbaseIUD.cpp b/core/sql/executor/ExHbaseIUD.cpp index 6b80f3f..b89a3f2 100644 --- a/core/sql/executor/ExHbaseIUD.cpp +++ b/core/sql/executor/ExHbaseIUD.cpp @@ -1067,6 +1067,7 @@ ExHbaseAccessBulkLoadPrepSQTcb::ExHbaseAccessBulkLoadPrepSQTcb( prevRowId_ (NULL), hdfs_(NULL), hdfsSampleFile_(NULL), + loggingFileName_(NULL), lastErrorCnd_(NULL) { hFileParamsInitialized_ = false; @@ -1076,7 +1077,7 @@ ExHbaseAccessBulkLoadPrepSQTcb::ExHbaseAccessBulkLoadPrepSQTcb( Lng32 fileNum = getGlobals()->castToExExeStmtGlobals()->getMyInstanceNumber(); - ExHbaseAccessTcb::buildLoggingFileName(((ExHbaseAccessTdb &)hbaseAccessTdb).getLoggingLocation(), + ExHbaseAccessTcb::buildLoggingFileName((NAHeap *)getHeap(), ((ExHbaseAccessTdb &)hbaseAccessTdb).getLoggingLocation(), // (char *)((ExHbaseAccessTdb &)hbaseAccessTdb).getErrCountRowId(), ((ExHbaseAccessTdb &)hbaseAccessTdb).getTableName(), "traf_upsert_err", @@ -1088,6 +1089,10 @@ ExHbaseAccessBulkLoadPrepSQTcb::ExHbaseAccessBulkLoadPrepSQTcb( ExHbaseAccessBulkLoadPrepSQTcb::~ExHbaseAccessBulkLoadPrepSQTcb() { + if (loggingFileName_ != NULL) { + NADELETEBASIC(loggingFileName_, getHeap()); + loggingFileName_ = NULL; + } // Flush and close sample file if used if (hdfs_) { http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/884eee0c/core/sql/executor/ExHdfsScan.cpp ---------------------------------------------------------------------- diff --git a/core/sql/executor/ExHdfsScan.cpp b/core/sql/executor/ExHdfsScan.cpp index 9ce17d5..d80f882 100644 --- a/core/sql/executor/ExHdfsScan.cpp +++ b/core/sql/executor/ExHdfsScan.cpp @@ -119,6 +119,7 @@ ExHdfsScanTcb::ExHdfsScanTcb( , loggingErrorDiags_(NULL) , runTimeRanges_(NULL) , numRunTimeRanges_(0) + , loggingFileName_(NULL) { Space * space = (glob ? glob->getSpace() : 0); CollHeap * heap = (glob ? glob->getDefaultHeap() : 0); @@ -187,7 +188,7 @@ ExHdfsScanTcb::ExHdfsScanTcb( registerResizeSubtasks(); Lng32 fileNum = getGlobals()->castToExExeStmtGlobals()->getMyInstanceNumber(); - ExHbaseAccessTcb::buildLoggingFileName(((ExHdfsScanTdb &)hdfsScanTdb).getLoggingLocation(), + ExHbaseAccessTcb::buildLoggingFileName((NAHeap *)getHeap(), ((ExHdfsScanTdb &)hdfsScanTdb).getLoggingLocation(), // (char *)((ExHdfsScanTdb &)hdfsScanTdb).getErrCountRowId(), ((ExHdfsScanTdb &)hdfsScanTdb).tableName(), "hive_scan_err", @@ -214,6 +215,10 @@ ExHdfsScanTcb::~ExHdfsScanTcb() void ExHdfsScanTcb::freeResources() { + if (loggingFileName_ != NULL) { + NADELETEBASIC(loggingFileName_, getHeap()); + loggingFileName_ = NULL; + } if (workAtp_) { workAtp_->release(); http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/884eee0c/core/sql/executor/ExHdfsScan.h ---------------------------------------------------------------------- diff --git a/core/sql/executor/ExHdfsScan.h b/core/sql/executor/ExHdfsScan.h index 2df1ae0..25f3ac3 100644 --- a/core/sql/executor/ExHdfsScan.h +++ b/core/sql/executor/ExHdfsScan.h @@ -285,7 +285,7 @@ protected: bool seqScanAgain_; char cursorId_[8]; - char loggingFileName_[1000]; + char *loggingFileName_; NABoolean LoggingFileCreated_ ; char * hdfsLoggingRow_; char * hdfsLoggingRowEnd_;