[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_;

Reply via email to