You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by sa...@apache.org on 2016/07/07 20:36:44 UTC

[1/7] incubator-trafodion git commit: Changes to move hdfFs handing to the context globals level and remove all disconnects from hdfs from the various components.

Repository: incubator-trafodion
Updated Branches:
  refs/heads/master 6a1de931e -> 2dd9d3a6e


Changes to move hdfFs handing to the context globals level and remove all disconnects from hdfs from the various components.


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/7975a58e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/7975a58e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/7975a58e

Branch: refs/heads/master
Commit: 7975a58ece0c6758a0070c15f8e9da2458d8c346
Parents: a2daeee
Author: Sandhya Sundaresan <sa...@apache.org>
Authored: Fri Jul 1 21:17:07 2016 +0000
Committer: Sandhya Sundaresan <sa...@apache.org>
Committed: Fri Jul 1 21:17:07 2016 +0000

----------------------------------------------------------------------
 core/sql/cli/Cli.cpp                            |  17 +-
 core/sql/cli/Cli.h                              |   3 +-
 core/sql/cli/CliExtern.cpp                      |   3 +-
 core/sql/cli/Context.cpp                        |  61 ++++++-
 core/sql/cli/Context.h                          |  17 +-
 core/sql/executor/ExExeUtil.h                   |   3 +-
 core/sql/executor/ExExeUtilCli.cpp              |   4 +-
 core/sql/executor/ExExeUtilGet.cpp              |   8 +-
 core/sql/executor/ExExeUtilLoad.cpp             |  49 +++---
 core/sql/executor/ExExeUtilMisc.cpp             |   5 +-
 core/sql/executor/ExFastTransport.cpp           |   6 +-
 core/sql/executor/ExHbaseIUD.cpp                |  13 +-
 core/sql/executor/ExHdfsScan.cpp                |  56 ++++---
 core/sql/executor/ExHdfsScan.h                  |   1 -
 core/sql/executor/JavaObjectInterface.cpp       |   4 +-
 core/sql/executor/ex_globals.cpp                |  14 +-
 core/sql/executor/ex_globals.h                  |   4 +-
 core/sql/executor/ex_root.cpp                   |  11 +-
 core/sql/executor/ex_split_bottom.cpp           |   2 +-
 core/sql/exp/ExpLOB.cpp                         | 107 ++++++-------
 core/sql/exp/ExpLOB.h                           |  18 +--
 core/sql/exp/ExpLOBaccess.cpp                   |  98 +++++-------
 core/sql/exp/ExpLOBaccess.h                     |  15 +-
 core/sql/exp/ExpLOBinterface.cpp                | 160 +++++++++++--------
 core/sql/exp/ExpLOBinterface.h                  |   4 +-
 core/sql/generator/GenPreCode.cpp               |   3 +
 core/sql/optimizer/HDFSHook.cpp                 |  31 ++--
 .../java/org/trafodion/sql/HBulkLoadClient.java |   8 +-
 28 files changed, 399 insertions(+), 326 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7975a58e/core/sql/cli/Cli.cpp
----------------------------------------------------------------------
diff --git a/core/sql/cli/Cli.cpp b/core/sql/cli/Cli.cpp
index ecfe072..0180d07 100644
--- a/core/sql/cli/Cli.cpp
+++ b/core/sql/cli/Cli.cpp
@@ -10544,7 +10544,7 @@ Lng32 SQLCLI_LOB_GC_Interface
   // Compact into new temp file
        
         
-  rc = ExpLOBoper::compactLobDataFile(lobGlobals,dcInMemoryArray,numEntries,tgtLobName,lobMaxMemChunkLen, (void *)currContext.exHeap(), hdfsServer, hdfsPort,lobLocation);
+  rc = ExpLOBoper::compactLobDataFile(lobGlobals,dcInMemoryArray,numEntries,tgtLobName,lobMaxMemChunkLen, (void *)currContext.exHeap(), (void *)&currContext,hdfsServer, hdfsPort,lobLocation);
                
   if (rc )
     {
@@ -10562,7 +10562,7 @@ Lng32 SQLCLI_LOB_GC_Interface
       // For now, return error for the IUD operation
 
       // Restore original data file.
-      Int32 rc2=ExpLOBoper::restoreLobDataFile(lobGlobals,tgtLobName, (void *)currContext.exHeap(),hdfsServer,hdfsPort,lobLocation);
+      Int32 rc2=ExpLOBoper::restoreLobDataFile(lobGlobals,tgtLobName, (void *)currContext.exHeap(),(void *)&currContext,hdfsServer,hdfsPort,lobLocation);
       if (rc2)
         {
           lobDebugInfo("restoreLobDataFile Failed",0,__LINE__,lobTrace);
@@ -10573,7 +10573,7 @@ Lng32 SQLCLI_LOB_GC_Interface
   else
     {
       //TBD :commit all updates and remove the saved copy of datafile
-      ExpLOBoper::purgeBackupLobDataFile(lobGlobals, tgtLobName,(void *)currContext.exHeap(),hdfsServer,hdfsPort,lobLocation);
+      ExpLOBoper::purgeBackupLobDataFile(lobGlobals, tgtLobName,(void *)currContext.exHeap(),(void *)&currContext,hdfsServer,hdfsPort,lobLocation);
       lobDebugInfo("purgedLobDataFile ",0,__LINE__,lobTrace);
     }
   }
@@ -10688,7 +10688,7 @@ Lng32 SQLCLI_LOBddlInterface
 	  {
 	    // create lob data tables
 	    Lng32 rc = ExpLOBoper::createLOB
-	      (NULL, currContext.exHeap(),
+	      (NULL, (void *)&currContext,currContext.exHeap(),
 	       lobLocList[i],  hdfsPort,hdfsServer,
 	       objectUID, lobNumList[i],lobMaxSize);
 	    
@@ -10763,7 +10763,7 @@ Lng32 SQLCLI_LOBddlInterface
 	for (Lng32 i = 0; i < numLOBs; i++)
 	  {
 	    Lng32 rc = ExpLOBoper::dropLOB
-	      (NULL, currContext.exHeap(),
+	      (NULL, currContext.exHeap(),(void *)&currContext,
 	       lobLocList[i],hdfsPort,hdfsServer,
 	       objectUID, lobNumList[i]);
 	    
@@ -10836,7 +10836,7 @@ Lng32 SQLCLI_LOBddlInterface
 	for (Lng32 i = 0; i < numLOBs; i++)
 	  {
 	    Lng32 rc = ExpLOBoper::dropLOB
-	      (NULL, currContext.exHeap(),
+	      (NULL, currContext.exHeap(),(void *)&currContext,
 	       lobLocList[i],hdfsPort, hdfsServer,
 	       objectUID, lobNumList[i]);
 	    
@@ -11001,6 +11001,7 @@ Lng32 SQLCLI_LOBddlInterface
     return 0;
 }
 
+#ifdef __ignore
 Lng32 SQLCLI_LOBloader2sqlInterface
 (
  /*IN*/     CliGlobals *cliGlobals,
@@ -11024,7 +11025,7 @@ Lng32 SQLCLI_LOBloader2sqlInterface
       currContext.currLobGlobals() = 
 	new(currContext.exHeap()) LOBglobals(currContext.exHeap());
       ExpLOBoper::initLOBglobal
-	(currContext.currLobGlobals()->lobAccessGlobals(), currContext.exHeap());
+	(currContext.currLobGlobals()->lobAccessGlobals(), currContext.exHeap(),currContext);
     }
   void * lobGlobs = currContext.currLobGlobals()->lobAccessGlobals();
   Int16 flags;
@@ -11098,7 +11099,7 @@ Lng32 SQLCLI_LOBloader2sqlInterface
  error_return:
   return (cliRC < 0 ? cliRC : 0);
 }
-
+#endif
 /*
   Int32 SQLCLI_SWITCH_TO_COMPILER_TYPE(CliGlobals * cliGlobals,
                                        Int32 compiler_class_type)

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7975a58e/core/sql/cli/Cli.h
----------------------------------------------------------------------
diff --git a/core/sql/cli/Cli.h b/core/sql/cli/Cli.h
index 31f5bbc..1e48be1 100644
--- a/core/sql/cli/Cli.h
+++ b/core/sql/cli/Cli.h
@@ -940,6 +940,7 @@ Lng32 SQLCLI_LOBddlInterface
  /*IN*/    NABoolean lobTrace
  );
 
+#ifdef __ignore
 Lng32 SQLCLI_LOBloader2sqlInterface
 (
  /*IN*/     CliGlobals *cliGlobals,
@@ -954,7 +955,7 @@ Lng32 SQLCLI_LOBloader2sqlInterface
            				   pass it back in on the next call */
 
  );
-
+#endif
 Int32 SQLCLI_SWITCH_TO_COMPILER_TYPE
  (
  /*IN*/     CliGlobals* cliGlobals,

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7975a58e/core/sql/cli/CliExtern.cpp
----------------------------------------------------------------------
diff --git a/core/sql/cli/CliExtern.cpp b/core/sql/cli/CliExtern.cpp
index 60e9d83..50c5147 100644
--- a/core/sql/cli/CliExtern.cpp
+++ b/core/sql/cli/CliExtern.cpp
@@ -7484,6 +7484,7 @@ Lng32 SQL_EXEC_LOBddlInterface
   return retcode;
 }
 
+#ifdef __ignore
 Lng32 SQL_EXEC_LOBloader2sqlInterface
 (
  /*IN*/     char * lobHandle,
@@ -7533,7 +7534,7 @@ Lng32 SQL_EXEC_LOBloader2sqlInterface
   RecordError(NULL, retcode);
   return retcode;
 }
-
+#endif
 Int32 SQL_EXEC_SWITCH_TO_COMPILER_TYPE
 (
  /*IN*/     Int32 cmpCntxtType

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7975a58e/core/sql/cli/Context.cpp
----------------------------------------------------------------------
diff --git a/core/sql/cli/Context.cpp b/core/sql/cli/Context.cpp
index 0192dc0..5dfb6b5 100644
--- a/core/sql/cli/Context.cpp
+++ b/core/sql/cli/Context.cpp
@@ -59,7 +59,7 @@
 #include "exp_clause_derived.h"
 #include "ComUser.h"
 #include "CmpSeabaseDDLauth.h"
-
+#include "hdfs.h"
 #include "ExCextdecs.h"
 
 #include "ComMemoryDiags.h"             // ComMemoryDiags::DumpMemoryInfo()
@@ -170,7 +170,7 @@ ContextCli::ContextCli(CliGlobals *cliGlobals)
     mxcmpSessionInUse_(FALSE),
     volatileSchemaCreated_(FALSE),
     prevStmtStats_(NULL),
-    lobGlobals_(NULL),
+    hdfsHandleList_(NULL),
     seqGen_(NULL),
     dropInProgress_(FALSE),
     isEmbeddedArkcmpInitialized_(FALSE),
@@ -243,7 +243,6 @@ ContextCli::ContextCli(CliGlobals *cliGlobals)
   mxcmpNodeName_ = NULL;
   indexIntoCompilerArray_ = 0;
   transaction_  = 0;
-
   externalUsername_ = new(exCollHeap()) char[ComSqlId::MAX_LDAP_USER_NAME_LEN+1];
   memset(externalUsername_, 0, ComSqlId::MAX_LDAP_USER_NAME_LEN+1);
 
@@ -297,6 +296,8 @@ ContextCli::ContextCli(CliGlobals *cliGlobals)
 
   seqGen_ = new(exCollHeap()) SequenceValueGenerator(exCollHeap());
 
+  hdfsHandleList_ = new(exCollHeap()) HashQueue(exCollHeap(), 50); // The hfsHandleList_ represents a list of distict hdfs Handles with unique hdfs port numbers and server names. Assume not more than 50 hdfsServers could be connected in the Trafodion setup.  These will get initialized the first time access is made to a particular hdfs server. This list gets cleaned up when the thread exits. 
+  
   // For CmpContext switch
   cmpContextInfo_.setHeap(exCollHeap());
   cmpContextInUse_.setHeap(exCollHeap());
@@ -441,6 +442,9 @@ void ContextCli::deleteMe()
   NADELETE(ipcHeap_, NAHeap, parentHeap);
   HBaseClient_JNI::deleteInstance();
   HiveClient_JNI::deleteInstance();
+  disconnectHdfsConnections();
+  delete hdfsHandleList_;
+  hdfsHandleList_ = NULL;
 }
 
 Lng32 ContextCli::initializeSessionDefaults()
@@ -4103,6 +4107,7 @@ void ContextCli::dropSession(NABoolean clearCmpCache)
   
   HBaseClient_JNI::deleteInstance();
   HiveClient_JNI::deleteInstance();
+  disconnectHdfsConnections();
 }
 
 void ContextCli::resetVolatileSchemaState()
@@ -4975,7 +4980,9 @@ void ContextCli::killAndRecreateMxcmp()
                                COM_VERS_COMPILER_VERSION, NULL, env_));
   arkcmpInitFailed_.insertAt(0, arkcmpIS_OK_);
 }
-    
+   
+
+
 // Initialize the database user ID from the OS user ID. If a row in
 // the USERS table contains the OS user ID in the EXTERNAL_USER_NAME
 // column, we switch to the user associated with that row. Otherwise
@@ -5922,3 +5929,49 @@ void ContextCli::putTrustedRoutine(CollIndex ix)
     diags() << DgSqlCode(-CLI_ROUTINE_DEALLOC_ERROR);
   trustedRoutines_.remove(ix);
 }
+
+// This method looks for an hdfsServer connection with the given hdfsServer 
+// name and port. If the conection does not exist, a new connection is made and 
+// cached in the hdfsHandleList_ hashqueue for later use. The hdfsHandleList_ 
+// gets cleaned up when the thread exits.
+hdfsFS ContextCli::getHdfsServerConnection(char * hdfs_server, Int32 port)
+{
+  if (hdfsHandleList_)
+    {
+      // Look for the entry on the list
+      hdfsHandleList_->position(hdfs_server,strlen(hdfs_server));
+      hdfsConnectStruct *hdfsConnectEntry = NULL;
+      while (hdfsConnectEntry = (hdfsConnectStruct *)(hdfsHandleList_->getNext()))
+        {
+          if ((strcmp(hdfsConnectEntry->hdfsServer_,hdfs_server)==0) && 
+              (hdfsConnectEntry->hdfsPort_ == port))
+            return (hdfsConnectEntry->hdfsHandle_);
+          
+        }
+    }
+
+  // If not found create a new one and add to list.
+  hdfsFS newFS = hdfsConnect(hdfs_server,port);
+  hdfsConnectStruct *hdfsConnectEntry = new (exCollHeap()) hdfsConnectStruct;
+  memset(hdfsConnectEntry,0,sizeof(hdfsConnectStruct));  
+  hdfsConnectEntry->hdfsHandle_ = newFS;
+  hdfsConnectEntry->hdfsPort_ = port;
+  str_cpy_all(hdfsConnectEntry->hdfsServer_,hdfs_server,str_len(hdfs_server));
+  hdfsHandleList_->insert(hdfs_server,strlen(hdfs_server),hdfsConnectEntry);
+   
+  return newFS;   
+    
+}
+
+void ContextCli::disconnectHdfsConnections()
+{
+  if (hdfsHandleList_)
+    {
+      hdfsConnectStruct * entry = NULL;
+      while(entry = (hdfsConnectStruct *)hdfsHandleList_->getNext())
+        {
+          hdfsDisconnect(entry->hdfsHandle_);         
+        }
+    }
+  
+}

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7975a58e/core/sql/cli/Context.h
----------------------------------------------------------------------
diff --git a/core/sql/cli/Context.h b/core/sql/cli/Context.h
index c6ba4ea..310dd89 100644
--- a/core/sql/cli/Context.h
+++ b/core/sql/cli/Context.h
@@ -63,6 +63,7 @@
 #include "ExStats.h"
 #include "ExpSeqGen.h"
 #include "ssmpipc.h"
+#include "hdfs.h"
 
 class CliGlobals;
 class HashQueue;
@@ -72,10 +73,8 @@ class ExStatisticsArea;
 class ExControlArea;
 class ExUdrServer;
 class UdrContextMsg;
-class LOBglobals;
 class SequenceValueGenerator;
 class LmRoutine;
-
 #pragma warning( disable : 4244 )  // warning elimination
 #pragma nowarn(1506)   // warning elimination 
 class ContextCli : public ExGod {
@@ -159,7 +158,6 @@ public:
                      bool &authorizationReady,
                      bool &auditingEnabled);
 
-  LOBglobals* &currLobGlobals() { return lobGlobals_; }
 
   SequenceValueGenerator* &seqGen() { return seqGen_; }
 
@@ -446,8 +444,7 @@ private:
   // list of volatile tables created in a session.
   HashQueue * volTabList_;
 
-  LOBglobals * lobGlobals_;
-
+  HashQueue *hdfsHandleList_;
   SequenceValueGenerator * seqGen_;
 
   NABoolean sessionInUse_;
@@ -1042,7 +1039,8 @@ public:
   // begins. This step requires a fully initialized CliGlobals so
   // should not be called before CliGlobals initialization completes.
   void initializeUserInfoFromOS();
-
+  hdfsFS getHdfsServerConnection(char *hdfsServer, Int32 port);
+  void disconnectHdfsConnections();
 }; // class ContextCli
 
 /* ContextTidMap - Maps contextCli to  a thread id
@@ -1087,6 +1085,13 @@ ContextCli::getOpenStatementList() const
   return openStatementList_;
 }
 
+struct hdfsConnectStruct
+{
+  hdfsFS hdfsHandle_;
+  Int32 hdfsPort_;
+  char  hdfsServer_[256]; // max length determined by dfs.namenode.fs-limits.max-component-length(255) 
+};
+
 #endif
 
 Lng32 parse_statsReq(short statsReqType,char *statsReqPtr, Lng32 statsReqStrLen,

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7975a58e/core/sql/executor/ExExeUtil.h
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExExeUtil.h b/core/sql/executor/ExExeUtil.h
index c52eb44..2c9d6b8 100755
--- a/core/sql/executor/ExExeUtil.h
+++ b/core/sql/executor/ExExeUtil.h
@@ -2909,7 +2909,7 @@ public:
   {
     return (ExExeUtilLobExtractTdb &) tdb;
   };
-
+  LOBglobals *getLobGlobals() { return lobGlobals_;}
  protected:
   enum Step
   {
@@ -2959,6 +2959,7 @@ public:
   ExLobStats lobStats_;
   char statusString_[200];
   fstream indata_;
+  LOBglobals *lobGlobals_;
 };
 
 // -----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7975a58e/core/sql/executor/ExExeUtilCli.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExExeUtilCli.cpp b/core/sql/executor/ExExeUtilCli.cpp
index 53b7db5..d456ede 100644
--- a/core/sql/executor/ExExeUtilCli.cpp
+++ b/core/sql/executor/ExExeUtilCli.cpp
@@ -42,7 +42,7 @@
 #include  "sql_id.h"
 #include  "ComSqlId.h"
 #include  "ExExeUtilCli.h"
-
+#include  "hdfs.h"
 OutputInfo::OutputInfo(Lng32 numEntries)
   : numEntries_(numEntries)
 {
@@ -1039,7 +1039,7 @@ Lng32 ExeCliInterface::executeImmediateExec(const char * stmtStr,
         *rowsAffected = tmpRowsAffected;
     }
   }
-
+ 
   clearGlobalDiags();
 
   retcode = close();

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7975a58e/core/sql/executor/ExExeUtilGet.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExExeUtilGet.cpp b/core/sql/executor/ExExeUtilGet.cpp
index b88bfd8..f5fdf2a 100644
--- a/core/sql/executor/ExExeUtilGet.cpp
+++ b/core/sql/executor/ExExeUtilGet.cpp
@@ -6272,7 +6272,8 @@ else
     return rc;  
                 
   //EOD of LOB data file
-  hdfsFS fs = hdfsConnect((char*)getLItdb().getHdfsServer(),getLItdb().getHdfsPort());
+  
+  hdfsFS fs = currContext->getHdfsServerConnection((char*)getLItdb().getHdfsServer(),getLItdb().getHdfsPort());
   if (fs == NULL)
     return LOB_DATA_FILE_OPEN_ERROR;
 
@@ -6561,7 +6562,7 @@ short ExExeUtilLobInfoTableTcb::collectLobInfo(char * tableName,Int32 currLobNum
                                         lobDescChunkFileBuf, LOBINFO_MAX_FILE_LEN*2);
     char *lobDataFile = 
 	      ExpLOBoper::ExpGetLOBname
-	      (getLItdb().objectUID_, currLobNum, 
+      (getLItdb().objectUID_, currLobNum, 
 	       tgtLobNameBuf, LOBINFO_MAX_FILE_LEN);
    
   if (getLItdb().getLobTypeList()[(currLobNum-1)*sizeof(Int32)] == Lob_External_HDFS_File)
@@ -6573,7 +6574,8 @@ short ExExeUtilLobInfoTableTcb::collectLobInfo(char * tableName,Int32 currLobNum
       str_cpy_all(lobInfo_->lobDataFile,  lobDataFile,strlen(lobDataFile));
     }             
   //EOD of LOB data file
-  hdfsFS fs = hdfsConnect(getLItdb().getHdfsServer(),getLItdb().getHdfsPort());
+  // hdfsFS fs = hdfsConnect(getLItdb().getHdfsServer(),getLItdb().getHdfsPort());
+  hdfsFS fs = currContext->getHdfsServerConnection((char*)getLItdb().getHdfsServer(),getLItdb().getHdfsPort());
   if (fs == NULL)
     return LOB_DATA_FILE_OPEN_ERROR;
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7975a58e/core/sql/executor/ExExeUtilLoad.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExExeUtilLoad.cpp b/core/sql/executor/ExExeUtilLoad.cpp
index 4911369..0a156a7 100644
--- a/core/sql/executor/ExExeUtilLoad.cpp
+++ b/core/sql/executor/ExExeUtilLoad.cpp
@@ -1398,7 +1398,7 @@ short ExExeUtilHBaseBulkLoadTcb::work()
           step_ = LOAD_END_ERROR_;
           break;
         }
-
+        
         step_ = COMPLETE_BULK_LOAD_;
         if (rowsAffected_ == 0)
           step_ = LOAD_END_;
@@ -2607,6 +2607,9 @@ ExExeUtilLobExtractTcb::ExExeUtilLobExtractTcb
   : ExExeUtilTcb(exe_util_tdb, child_tcb, glob),
     step_(EMPTY_)    
 {
+  ContextCli *currContext =
+    getGlobals()->castToExExeStmtGlobals()->castToExMasterStmtGlobals()->
+    getStatement()->getContext();
   lobHandleLen_ = 2050;
   lobHandle_ = {0};
 
@@ -2630,8 +2633,15 @@ ExExeUtilLobExtractTcb::ExExeUtilLobExtractTcb
   numChildRows_ = 0;
 
   requestTag_ = -1;
-
-  lobLoc_= {0};
+  lobLoc_ = {0};
+ 
+  lobGlobals_ = 
+    new(currContext->exHeap()) LOBglobals(currContext->exHeap());
+  ExpLOBoper::initLOBglobal
+    (lobGlobals_->lobAccessGlobals(), 
+     currContext->exHeap(),currContext,lobTdb().getLobHdfsServer(),
+               lobTdb().getLobHdfsPort());
+    
 
 }
 
@@ -2656,16 +2666,9 @@ short ExExeUtilLobExtractTcb::work()
 
   ComDiagsArea & diags       = currContext->diags();
 
-  if (! currContext->currLobGlobals())
-    {
-      currContext->currLobGlobals() = 
-	new(currContext->exHeap()) LOBglobals(currContext->exHeap());
-      ExpLOBoper::initLOBglobal
-	(currContext->currLobGlobals()->lobAccessGlobals(), 
-	 currContext->exHeap());
-    }
+  
 
-  void * lobGlobs = currContext->currLobGlobals()->lobAccessGlobals();
+  void * lobGlobs = getLobGlobals()->lobAccessGlobals();
 
   ex_queue_entry * centry = NULL;
   
@@ -3334,16 +3337,9 @@ short ExExeUtilFileExtractTcb::work()
 
   ComDiagsArea & diags       = currContext->diags();
 
-  if (! currContext->currLobGlobals())
-    {
-      currContext->currLobGlobals() = 
-	new(currContext->exHeap()) LOBglobals(currContext->exHeap());
-      ExpLOBoper::initLOBglobal
-	(currContext->currLobGlobals()->lobAccessGlobals(), 
-	 currContext->exHeap());
-    }
+  
 
-  void * lobGlobs = currContext->currLobGlobals()->lobAccessGlobals();
+  void * lobGlobs = getLobGlobals()->lobAccessGlobals();
 
   while (1)
     {
@@ -3594,16 +3590,9 @@ short ExExeUtilFileLoadTcb::work()
 
   ComDiagsArea & diags       = currContext->diags();
 
-  if (! currContext->currLobGlobals())
-    {
-      currContext->currLobGlobals() = 
-	new(currContext->exHeap()) LOBglobals(currContext->exHeap());
-      ExpLOBoper::initLOBglobal
-	(currContext->currLobGlobals()->lobAccessGlobals(), 
-	 currContext->exHeap());
-    }
+  
 
-  void * lobGlobs = currContext->currLobGlobals()->lobAccessGlobals();
+  void * lobGlobs = getLobGlobals()->lobAccessGlobals();
 
   while (1)
     {

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7975a58e/core/sql/executor/ExExeUtilMisc.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExExeUtilMisc.cpp b/core/sql/executor/ExExeUtilMisc.cpp
index 267d22e..12b88b0 100644
--- a/core/sql/executor/ExExeUtilMisc.cpp
+++ b/core/sql/executor/ExExeUtilMisc.cpp
@@ -2253,7 +2253,10 @@ Int32 ExExeUtilHiveTruncateTcb::fixup()
   lobGlob_ = NULL;
 
   ExpLOBinterfaceInit
-    (lobGlob_, getGlobals()->getDefaultHeap(),TRUE);
+    (lobGlob_, getGlobals()->getDefaultHeap(),
+     getGlobals()->castToExExeStmtGlobals()->getContext(),TRUE, 
+     fdTdb().getHiveHdfsHost(),
+     fdTdb().getHiveHdfsPort());
 
   return 0;
 }

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7975a58e/core/sql/executor/ExFastTransport.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExFastTransport.cpp b/core/sql/executor/ExFastTransport.cpp
index bb8d4dc..5c30247 100644
--- a/core/sql/executor/ExFastTransport.cpp
+++ b/core/sql/executor/ExFastTransport.cpp
@@ -543,9 +543,11 @@ Int32 ExHdfsFastExtractTcb::fixup()
 
   if(!myTdb().getSkipWritingToFiles() &&
      !myTdb().getBypassLibhdfs())
-
+    memset (hdfsHost_, '\0', sizeof(hdfsHost_));
+      strncpy(hdfsHost_, myTdb().getHdfsHostName(), sizeof(hdfsHost_));
+      hdfsPort_ = myTdb().getHdfsPortNum();
     ExpLOBinterfaceInit
-      (lobGlob_, getGlobals()->getDefaultHeap(),TRUE);
+      (lobGlob_, getGlobals()->getDefaultHeap(),getGlobals()->castToExExeStmtGlobals()->getContext(),TRUE,hdfsHost_,hdfsPort_);
 
   modTS_ = myTdb().getModTSforDir();
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7975a58e/core/sql/executor/ExHbaseIUD.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExHbaseIUD.cpp b/core/sql/executor/ExHbaseIUD.cpp
index 9553d53..b910b05 100644
--- a/core/sql/executor/ExHbaseIUD.cpp
+++ b/core/sql/executor/ExHbaseIUD.cpp
@@ -32,6 +32,7 @@
 #include "hs_util.h"
 #include "NLSConversion.h"
 #include "ExHdfsScan.h"
+#include "Context.h"
 
 ExHbaseAccessInsertTcb::ExHbaseAccessInsertTcb(
           const ExHbaseAccessTdb &hbaseAccessTdb, 
@@ -1083,7 +1084,7 @@ ExHbaseAccessBulkLoadPrepSQTcb::ExHbaseAccessBulkLoadPrepSQTcb(
 
 ExHbaseAccessBulkLoadPrepSQTcb::~ExHbaseAccessBulkLoadPrepSQTcb()
 {
-  // Flush and close sample file if used, and disconnect from HDFS.
+  // Flush and close sample file if used
   if (hdfs_)
     {
       if (hdfsSampleFile_)
@@ -1091,7 +1092,7 @@ ExHbaseAccessBulkLoadPrepSQTcb::~ExHbaseAccessBulkLoadPrepSQTcb()
           hdfsFlush(hdfs_, hdfsSampleFile_);
           hdfsCloseFile(hdfs_, hdfsSampleFile_);
         }
-      hdfsDisconnect(hdfs_);
+     
     }
 
 }
@@ -1339,7 +1340,9 @@ ExWorkProcRetcode ExHbaseAccessBulkLoadPrepSQTcb::work()
             srand(time(0));
 
             // Set up HDFS file for sample table.
-            hdfs_ = hdfsConnect("default", 0);
+           
+            ContextCli *currContext = getGlobals()->castToExExeStmtGlobals()->getCliGlobals()->currContext();
+            hdfs_ = currContext->getHdfsServerConnection((char*)"default",0);
             Text samplePath = std::string(((ExHbaseAccessTdb&)hbaseAccessTdb()).getSampleLocation()) +
                                           ((ExHbaseAccessTdb&)hbaseAccessTdb()).getTableName() ;
             char filePart[10];
@@ -1659,7 +1662,9 @@ ExWorkProcRetcode ExHbaseAccessBulkLoadPrepSQTcb::work()
           if (eodSeen)
           {
             ehi_->closeHFile(table_);
-            ehi_->hdfsClose();
+            // sss This is one place that is unconditionally closing the 
+            // hdfsFs that's part of this thread's JNIenv.
+            //ehi_->hdfsClose();
             hFileParamsInitialized_ = false;
             retcode = ehi_->close();
           }

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7975a58e/core/sql/executor/ExHdfsScan.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExHdfsScan.cpp b/core/sql/executor/ExHdfsScan.cpp
index 7617e70..18a47fb 100644
--- a/core/sql/executor/ExHdfsScan.cpp
+++ b/core/sql/executor/ExHdfsScan.cpp
@@ -41,7 +41,7 @@
 #include "Hbase_types.h"
 #include "stringBuf.h"
 #include "NLSConversion.h"
-//#include "hdfs.h"
+#include "Context.h"
 
 #include "ExpORCinterface.h"
 #include "ComSmallDefs.h"
@@ -191,6 +191,8 @@ ExHdfsScanTcb::ExHdfsScanTcb(
                      fileNum,
                      loggingFileName_);
   LoggingFileCreated_ = FALSE;
+
+  
   //shoud be move to work method
   int jniDebugPort = 0;
   int jniDebugTimeout = 0;
@@ -199,6 +201,7 @@ ExHdfsScanTcb::ExHdfsScanTcb(
                                         (char*)"", ////Later replace with port cqd
                                         jniDebugPort,
                                         jniDebugTimeout);
+
 }
     
 ExHdfsScanTcb::~ExHdfsScanTcb()
@@ -252,8 +255,9 @@ void ExHdfsScanTcb::freeResources()
     qparent_.down = NULL;
   }
 
-  ExpLOBinterfaceCleanup
-    (lobGlob_, getGlobals()->getDefaultHeap());
+   ExpLOBinterfaceCleanup
+   (lobGlob_, getGlobals()->getDefaultHeap());
+
   
 }
 NABoolean ExHdfsScanTcb::needStatsEntry()
@@ -330,7 +334,7 @@ Int32 ExHdfsScanTcb::fixup()
   lobGlob_ = NULL;
 
   ExpLOBinterfaceInit
-    (lobGlob_, getGlobals()->getDefaultHeap(),TRUE);
+    (lobGlob_, getGlobals()->getDefaultHeap(),getGlobals()->castToExExeStmtGlobals()->getContext(),TRUE, hdfsScanTdb().hostName_,hdfsScanTdb().port_);
   
   return 0;
 }
@@ -370,7 +374,9 @@ ExWorkProcRetcode ExHdfsScanTcb::work()
   HdfsFileInfo *hdfo = NULL;
   Lng32 openType = 0;
   int changedLen = 0;
-
+ ContextCli *currContext = getGlobals()->castToExExeStmtGlobals()->getCliGlobals()->currContext();
+   hdfsFS hdfs = currContext->getHdfsServerConnection(hdfsScanTdb().hostName_,hdfsScanTdb().port_);
+   hdfsFileInfo *dirInfo = NULL;
   while (!qparent_.down->isEmpty())
     {
       ex_queue_entry *pentry_down = qparent_.down->getHeadEntry();
@@ -418,7 +424,7 @@ ExWorkProcRetcode ExHdfsScanTcb::work()
               step_ = CHECK_FOR_DATA_MOD;
             else
               step_ = CHECK_FOR_DATA_MOD_AND_DONE;
-	  }
+	  }          
 	  break;
 
         case CHECK_FOR_DATA_MOD:
@@ -437,7 +443,7 @@ ExWorkProcRetcode ExHdfsScanTcb::work()
                   {
                     // TBD
                   }
-
+             
                 retcode = ExpLOBinterfaceDataModCheck
                   (lobGlob_,
                    dirPath,
@@ -445,7 +451,7 @@ ExWorkProcRetcode ExHdfsScanTcb::work()
                    hdfsScanTdb().port_,
                    modTS,
                    numOfPartLevels);
-                
+              
                 if (retcode < 0)
                   {
                     Lng32 cliError = 0;
@@ -482,7 +488,7 @@ ExWorkProcRetcode ExHdfsScanTcb::work()
               step_ = DONE;
             else
               step_ = INIT_HDFS_CURSOR;
-          }
+          }        
           break;
 
 	case INIT_HDFS_CURSOR:
@@ -510,6 +516,7 @@ ExWorkProcRetcode ExHdfsScanTcb::work()
 
 	    step_ = OPEN_HDFS_CURSOR;
 	  }
+        
 	  break;
 
 	case OPEN_HDFS_CURSOR:
@@ -638,7 +645,7 @@ ExWorkProcRetcode ExHdfsScanTcb::work()
             numBytesProcessedInRange_ = 0;
 
             step_ = GET_HDFS_DATA;
-          }
+          }        
           break;
 
 	case GET_HDFS_DATA:
@@ -824,7 +831,7 @@ ExWorkProcRetcode ExHdfsScanTcb::work()
 	    hdfsOffset_ += bytesRead_;
 
  	    step_ = PROCESS_HDFS_ROW;
-	  }
+	  }        
 	  break;
 
 	case PROCESS_HDFS_ROW:
@@ -958,6 +965,7 @@ ExWorkProcRetcode ExHdfsScanTcb::work()
 	      hdfsStats_->incUsedRows();
 
 	    step_ = RETURN_ROW;
+          
 	    break;
 	  }
 
@@ -1137,7 +1145,7 @@ ExWorkProcRetcode ExHdfsScanTcb::work()
               step_ = CLOSE_HDFS_CURSOR;
           else
 	     step_ = PROCESS_HDFS_ROW;
-	  break;
+	  break;      
 	}
 	case REPOS_HDFS_DATA:
 	  {
@@ -1192,7 +1200,7 @@ ExWorkProcRetcode ExHdfsScanTcb::work()
 	    break;
 	  }
 	case CLOSE_HDFS_CURSOR:
-	  {
+	  {          
 	    retcode = 0;
 	    if (isSequenceFile())
 	      {
@@ -1229,7 +1237,7 @@ ExWorkProcRetcode ExHdfsScanTcb::work()
                    hdfsScanBuffer_,
                    3, // close
                    0); // openType, not applicable for close
-                
+                 
 	        if (retcode < 0)
 	          {
 		    Lng32 cliError = 0;
@@ -1251,7 +1259,7 @@ ExWorkProcRetcode ExHdfsScanTcb::work()
               }
               step_ = CLOSE_FILE;
 	  }
-	  break;
+          break;
 	case HANDLE_EXCEPTION:
 	{
 	  step_ = nextStep_;
@@ -1260,8 +1268,8 @@ ExWorkProcRetcode ExHdfsScanTcb::work()
 	  if (hdfsScanTdb().getMaxErrorRows() > 0)
 	  {
 	    Int64 exceptionCount = 0;
-	    ExHbaseAccessTcb::incrErrorCount( ehi_,exceptionCount, 
-                       hdfsScanTdb().getErrCountTable(),hdfsScanTdb().getErrCountRowId());
+            ExHbaseAccessTcb::incrErrorCount( ehi_,exceptionCount, 
+                 hdfsScanTdb().getErrCountTable(),hdfsScanTdb().getErrCountRowId()); 
 	    if (exceptionCount >  hdfsScanTdb().getMaxErrorRows())
 	    {
 	      if (pentry_down->getDiagsArea())
@@ -1288,6 +1296,7 @@ ExWorkProcRetcode ExHdfsScanTcb::work()
                        ehi_,
                        LoggingFileCreated_,
                        loggingFileName_);
+            
           }
 
           if (pentry_down->getDiagsArea())
@@ -1333,6 +1342,7 @@ ExWorkProcRetcode ExHdfsScanTcb::work()
             else
 	       step_ = ERROR_CLOSE_FILE;
 	    break;
+           
 	  }
 
 	case CLOSE_FILE:
@@ -1400,8 +1410,10 @@ ExWorkProcRetcode ExHdfsScanTcb::work()
                                     getLobErrStr(intParam1));
                     pentry_down->setDiagsArea(diagsArea);
                   }
-                if (ehi_)
-                 retcode = ehi_->hdfsClose();
+                // sss This is one place that is unconditionally closing the 
+                // hdfsFs that's part of this thread's JNIenv.
+                // if (ehi_)
+                //   retcode = ehi_->hdfsClose();
             } 
 	    if (step_ == CLOSE_FILE)
 	      {
@@ -1416,10 +1428,11 @@ ExWorkProcRetcode ExHdfsScanTcb::work()
                        step_ = INIT_HDFS_CURSOR;
                     break;
                 }
-	      }
-
+	      }     
 	    step_ = DONE;
 	  }
+
+          
 	  break;
 
 	case DONE:
@@ -1437,6 +1450,7 @@ ExWorkProcRetcode ExHdfsScanTcb::work()
 	    
 	    qparent_.down->removeHead();
 	    step_ = NOT_STARTED;
+            dirInfo = hdfsGetPathInfo(hdfs, "/");
 	    break;
 	  }
 	  

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7975a58e/core/sql/executor/ExHdfsScan.h
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExHdfsScan.h b/core/sql/executor/ExHdfsScan.h
index 453596e..9069733 100644
--- a/core/sql/executor/ExHdfsScan.h
+++ b/core/sql/executor/ExHdfsScan.h
@@ -255,7 +255,6 @@ protected:
   sql_buffer_pool * pool_;            // row images after selection pred,
                                       // with only the required columns. 
   hdfsFile hdfsFp_;
-  hdfsFS hdfsFs_;     // shallow copy from cliGlobals.
 
   void * lobGlob_;
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7975a58e/core/sql/executor/JavaObjectInterface.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/JavaObjectInterface.cpp b/core/sql/executor/JavaObjectInterface.cpp
index fffcf35..e056ca8 100644
--- a/core/sql/executor/JavaObjectInterface.cpp
+++ b/core/sql/executor/JavaObjectInterface.cpp
@@ -71,14 +71,14 @@ char* JavaObjectInterface::getErrorText(JOI_RetCode errEnum)
 JavaObjectInterface::~JavaObjectInterface()
 {
   if ((long)javaObj_ != -1)
-      jenv_->DeleteGlobalRef(javaObj_);
+     jenv_->DeleteGlobalRef(javaObj_); 
   javaObj_ = NULL;
   isInitialized_ = FALSE;
 }
  
 void JavaObjectInterface::setJavaObject(jobject jobj) {
   if ((long)javaObj_ != -1)
-      jenv_->DeleteGlobalRef(javaObj_);
+    jenv_->DeleteGlobalRef(javaObj_); 
   javaObj_ = jenv_->NewGlobalRef(jobj);
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7975a58e/core/sql/executor/ex_globals.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ex_globals.cpp b/core/sql/executor/ex_globals.cpp
index a512a6a..a4fee90 100644
--- a/core/sql/executor/ex_globals.cpp
+++ b/core/sql/executor/ex_globals.cpp
@@ -82,16 +82,17 @@ ex_globals::ex_globals(short num_temps,
 	tempList_[i] = NULL;
     }
 
-  // lobGlob_ = NULL;
-  lobGlobals_ = new(heap) LOBglobals(heap);
+  
+  lobGlobals_ = new(heap_) LOBglobals(heap_);
 }
 
-void *& ex_globals::lobGlobal() { return lobGlobals()->lobAccessGlobals(); }
+void *& ex_globals::getExLobGlobal() { return lobGlobals()->lobAccessGlobals(); }
 
-void ex_globals::initLOBglobal()
+void ex_globals::initLOBglobal(void *context)
 {
   // initialize lob interface
-  ExpLOBoper::initLOBglobal(lobGlobal(), heap_);
+  ExpLOBoper::initLOBglobal(getExLobGlobal(), heap_, context,(char *)"default",0);
+
 }
 
 void ex_globals::reAllocate(short create_gui_sched)
@@ -137,9 +138,10 @@ void ex_globals::deleteMe(NABoolean fatalError)
 #endif
   }
   statsArea_ = NULL;
-
   cleanupTcbs();
   tcbList_.deallocate();
+  NADELETE(lobGlobals_,LOBglobals,heap_);
+  lobGlobals_ = NULL;
 }
 
 void ex_globals::deleteMemory(void *mem)

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7975a58e/core/sql/executor/ex_globals.h
----------------------------------------------------------------------
diff --git a/core/sql/executor/ex_globals.h b/core/sql/executor/ex_globals.h
index a6b7e0f..f2c106b 100644
--- a/core/sql/executor/ex_globals.h
+++ b/core/sql/executor/ex_globals.h
@@ -189,10 +189,10 @@ NA_EIDPROC
   inline sql_buffer_pool *getSharedPool() { return sharedPool_; }
   inline void setSharedPool(sql_buffer_pool *p) { sharedPool_ = p; }
 
-  void *& lobGlobal();
+  void *& getExLobGlobal();
   LOBglobals * lobGlobals() { return lobGlobals_; }
   
-  void initLOBglobal();
+  void initLOBglobal(void *context);
   
   SequenceValueGenerator * seqGen();
   

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7975a58e/core/sql/executor/ex_root.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ex_root.cpp b/core/sql/executor/ex_root.cpp
index 67f973c..e2738d5 100644
--- a/core/sql/executor/ex_root.cpp
+++ b/core/sql/executor/ex_root.cpp
@@ -375,10 +375,9 @@ ex_tcb * ex_root_tdb::build(CliGlobals *cliGlobals, ex_globals * glob)
 
   if (processLOB())
     {
-      glob->initLOBglobal();
+      glob->initLOBglobal(cliGlobals->currContext());
     }
 
-
   return (root_tcb);
 
 } // ex_root_tdb::build
@@ -2504,7 +2503,11 @@ Int32 ex_root_tcb::deallocAndDelete(ExExeStmtGlobals *glob,
   // Reset cancelState to ensure no more references of 
   // ex_root_tcb by the cancel thread.
   glob->castToExMasterStmtGlobals()->resetCancelState();
-
+   //test only ssss dirInfo is null here !!!
+  ContextCli *currContext = glob->getCliGlobals()->currContext();
+  hdfsFS hdfs = currContext->getHdfsServerConnection((char *)"localhost",41600);
+   hdfsFileInfo *dirInfo = hdfsGetPathInfo(hdfs, "/");
+   //test only sss
   // Warning:  deleteMe() will delete this tcb!!!!
   glob->deleteMe(fatalError_); 
   return 0;
@@ -2712,7 +2715,7 @@ Int32 ex_root_tcb::checkTransBeforeExecute(ExTransaction *myTrans,
 					   ExMasterStats *masterStats,
 					   ComDiagsArea *& diagsArea)
 {
-  masterGlob->lobGlobals()->xnId() = -1;
+ 
 
   if (myTrans && myTrans->xnInProgress())
   {

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7975a58e/core/sql/executor/ex_split_bottom.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ex_split_bottom.cpp b/core/sql/executor/ex_split_bottom.cpp
index 8152417..6dd35aa 100644
--- a/core/sql/executor/ex_split_bottom.cpp
+++ b/core/sql/executor/ex_split_bottom.cpp
@@ -167,7 +167,7 @@ ex_split_bottom_tcb * ex_split_bottom_tdb::buildESPTcbTree(
 
   if (processLOB())
     {
-      glob->initLOBglobal();
+      glob->initLOBglobal(glob->getCliGlobals()->currContext());
     }
 
   return result;

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7975a58e/core/sql/exp/ExpLOB.cpp
----------------------------------------------------------------------
diff --git a/core/sql/exp/ExpLOB.cpp b/core/sql/exp/ExpLOB.cpp
index 217b2ce..cb6ded8 100644
--- a/core/sql/exp/ExpLOB.cpp
+++ b/core/sql/exp/ExpLOB.cpp
@@ -52,14 +52,14 @@
 #include "ExpLOB.h"
 #include "ExpLOBinterface.h"
 #include "ExpLOBexternal.h"
-
-#include "ex_god.h"
 #include "ex_globals.h"
+#include "ex_god.h"
+
 
-Lng32 ExpLOBoper::initLOBglobal(void *& lobGlob, void * lobHeap)
+Lng32 ExpLOBoper::initLOBglobal(void *& exLobGlobals, void * lobHeap, void *currContext, char *hdfsServer ,Int32 port)
 {
   // call ExeLOBinterface to initialize lob globals
-  ExpLOBinterfaceInit(lobGlob, lobHeap);
+  ExpLOBinterfaceInit(exLobGlobals, lobHeap,currContext,FALSE, hdfsServer,  port);
 
   return 0;
 }
@@ -151,7 +151,7 @@ char * ExpLOBoper::ExpGetLOBMDName(Lng32 schNameLen, char * schName,
 
   return outBuf;
 }
-Lng32 ExpLOBoper::createLOB(void * lobGlob, void * lobHeap, 
+Lng32 ExpLOBoper::createLOB(void * exLobGlob, void *currContext, void * lobHeap, 
 			    char * lobLoc,Int32 hdfsPort,char *hdfsServer,
 			    Int64 uid, Lng32 num, Int64 lobMaxSize )
 {
@@ -162,18 +162,18 @@ Lng32 ExpLOBoper::createLOB(void * lobGlob, void * lobHeap,
     return -1;
 
   Lng32 rc = 0;
-  void * lobGlobL = NULL;
+  void * exLobGlobL = NULL;
   // Call ExeLOBinterface to create the LOB
-  if (lobGlob == NULL)
+  if (exLobGlob == NULL)
     {
-      rc = initLOBglobal(lobGlobL, lobHeap);
+      rc = initLOBglobal(exLobGlobL, lobHeap,currContext,hdfsServer,hdfsPort);
       if (rc)
-	return -1;
+	return rc;
     }
   else
-    lobGlobL = lobGlob;
+    exLobGlobL = exLobGlob;
 
-  rc = ExpLOBinterfaceCreate(lobGlobL, lobName, lobLoc, Lob_HDFS_File,hdfsServer,lobMaxSize, hdfsPort);
+  rc = ExpLOBinterfaceCreate(exLobGlobL, lobName, lobLoc, Lob_HDFS_File,hdfsServer,lobMaxSize, hdfsPort);
 
   return rc;
 }
@@ -214,72 +214,68 @@ void ExpLOBoper::calculateNewOffsets(ExLobInMemoryDescChunksEntry *dcArray, Lng3
   return ;
 }
 
-Lng32 ExpLOBoper::compactLobDataFile(void *lobGlob,ExLobInMemoryDescChunksEntry *dcArray,Int32 numEntries,char *tgtLobName,Int64 lobMaxChunkMemSize, void *lobHeap, char *hdfsServer, Int32 hdfsPort, char *lobLoc)
+Lng32 ExpLOBoper::compactLobDataFile(void *exLobGlob,ExLobInMemoryDescChunksEntry *dcArray,Int32 numEntries,char *tgtLobName,Int64 lobMaxChunkMemSize, void *lobHeap, void *currContext,char *hdfsServer, Int32 hdfsPort, char *lobLoc)
 {
   Int32 rc = 0;
-  void * lobGlobL = NULL;
+  void * exLobGlobL = NULL;
   // Call ExeLOBinterface to create the LOB
-  if (lobGlob == NULL)
+  if (exLobGlob == NULL)
     {
-      rc = initLOBglobal(lobGlobL, lobHeap);
+      rc = initLOBglobal(exLobGlobL, lobHeap,currContext,hdfsServer,hdfsPort);
       if (rc)
-	return -1;
+	return rc;
     }
   else
-    lobGlobL = lobGlob;
+    exLobGlobL = exLobGlob;
  
-  if (rc)
-	return -1;
    
-  rc = ExpLOBinterfacePerformGC(lobGlobL,tgtLobName, (void *)dcArray, numEntries,hdfsServer,hdfsPort,lobLoc,lobMaxChunkMemSize);
+  rc = ExpLOBinterfacePerformGC(exLobGlobL,tgtLobName, (void *)dcArray, numEntries,hdfsServer,hdfsPort,lobLoc,lobMaxChunkMemSize);
   
   return rc;
 }
 
-Int32 ExpLOBoper::restoreLobDataFile(void *lobGlob, char *lobName, void *lobHeap, char *hdfsServer, Int32 hdfsPort, char *lobLoc)
+Int32 ExpLOBoper::restoreLobDataFile(void *exLobGlob, char *lobName, void *lobHeap, void *currContext,char *hdfsServer, Int32 hdfsPort, char *lobLoc)
 {
   Int32 rc = 0;
-  void * lobGlobL = NULL;
-   if (lobGlob == NULL)
+  void * exLobGlobL = NULL;
+   if (exLobGlob == NULL)
     {
-      rc = initLOBglobal(lobGlobL, lobHeap);
+      rc = initLOBglobal(exLobGlobL, lobHeap,currContext, hdfsServer,hdfsPort);
       if (rc)
-	return -1;
+	return rc;
     }
   else
-    lobGlobL = lobGlob;
+    exLobGlobL = exLobGlob;
+ 
  
-  if (rc)
-    return -1;
     
-  rc = ExpLOBinterfaceRestoreLobDataFile(lobGlobL,hdfsServer,hdfsPort,lobLoc,lobName);
+  rc = ExpLOBinterfaceRestoreLobDataFile(exLobGlobL,hdfsServer,hdfsPort,lobLoc,lobName);
    return rc;
 
 }
 
-Int32 ExpLOBoper::purgeBackupLobDataFile(void *lobGlob,char *lobName, void *lobHeap, char * hdfsServer, Int32 hdfsPort, char *lobLoc)
+Int32 ExpLOBoper::purgeBackupLobDataFile(void *exLobGlob,char *lobName, void *currContext,void *lobHeap, char * hdfsServer, Int32 hdfsPort, char *lobLoc)
 {
   Int32 rc = 0;
-  void * lobGlobL = NULL;
-  if (lobGlob == NULL)
+  void * exLobGlobL = NULL;
+  if (exLobGlob == NULL)
     {
-      rc = initLOBglobal(lobGlobL, lobHeap);
+      rc = initLOBglobal(exLobGlobL, lobHeap,currContext,hdfsServer,hdfsPort);
       if (rc)
-	return -1;
+	return rc;
     }
   else
-    lobGlobL = lobGlob;
+    exLobGlobL = exLobGlob;
   
-  if (rc)
-    return -1;
+ 
   
 
-  rc = ExpLOBinterfacePurgeBackupLobDataFile(lobGlobL,(char *)hdfsServer,hdfsPort,lobLoc,lobName);
+  rc = ExpLOBinterfacePurgeBackupLobDataFile(exLobGlobL,(char *)hdfsServer,hdfsPort,lobLoc,lobName);
   return rc;
 }
 
 
-Lng32 ExpLOBoper::dropLOB(void * lobGlob, void * lobHeap,
+Lng32 ExpLOBoper::dropLOB(void * exLobGlob, void * lobHeap, void *currContext,
 			  char * lobLoc,Int32 hdfsPort, char *hdfsServer,
 			  Int64 uid, Lng32 num)
 {
@@ -290,24 +286,24 @@ Lng32 ExpLOBoper::dropLOB(void * lobGlob, void * lobHeap,
     return -1;
 
   Lng32 rc = 0;
-  void * lobGlobL = NULL;
+  void * exLobGlobL = NULL;
   // Call ExeLOBinterface to create the LOB
-  if (lobGlob == NULL)
+  if (exLobGlob == NULL)
     {
-      rc = initLOBglobal(lobGlobL, lobHeap);
+      rc = initLOBglobal(exLobGlobL, lobHeap,currContext,hdfsServer,hdfsPort);
       if (rc)
-	return -1;
+	return rc;
     }
   else
-    lobGlobL = lobGlob;
+    exLobGlobL = exLobGlob;
 
   // Call ExeLOBinterface to drop the LOB
-  rc = ExpLOBinterfaceDrop(lobGlobL,hdfsServer, hdfsPort, lobName, lobLoc);
+  rc = ExpLOBinterfaceDrop(exLobGlobL,hdfsServer, hdfsPort, lobName, lobLoc);
 
   return rc;
 }
 
-Lng32 ExpLOBoper::purgedataLOB(void * lobGlob, char * lobLoc, 
+Lng32 ExpLOBoper::purgedataLOB(void * exLobGlob, char * lobLoc, 
                                
 			       Int64 uid, Lng32 num)
 {
@@ -318,7 +314,7 @@ Lng32 ExpLOBoper::purgedataLOB(void * lobGlob, char * lobLoc,
     return -1;
 
   // Call ExeLOBinterface to purgedata the LOB
-  Lng32 rc = ExpLOBInterfacePurgedata(lobGlob, lobName, lobLoc);
+  Lng32 rc = ExpLOBInterfacePurgedata(exLobGlob, lobName, lobLoc);
   if (rc < 0)
     return ex_expr::EXPR_ERROR;
 
@@ -731,7 +727,7 @@ ex_expr::exp_return_type ExpLOBiud::insertDesc(char *op_data[],
   char * lobHandle = NULL;
   Lng32 handleLen = 0;
   char lobHandleBuf[LOB_HANDLE_LEN];
-  //  if (getExeGlobals()->lobGlobals()->getCurrLobOperInProgress())
+  //  if (getExeGlobals()->exLobGlobals()->getCurrLobOperInProgress())
   if (lobOperStatus == CHECK_STATUS_)
     {
       lobHandle = lobHandleSaved_;
@@ -814,7 +810,7 @@ ex_expr::exp_return_type ExpLOBiud::insertDesc(char *op_data[],
     lobMaxSize = getLobMaxSize();
     
   rc = ExpLOBInterfaceInsert
-    (getExeGlobals()->lobGlobal(), 
+    (getExeGlobals()->getExLobGlobal(), 
      tgtLobName, 
      lobStorageLocation(),
      lobStorageType(),
@@ -984,7 +980,7 @@ ex_expr::exp_return_type ExpLOBiud::insertData(Lng32 handleLen,
     }
   else
     {
-      rc = ExpLOBInterfaceInsert(getExeGlobals()->lobGlobal(), 
+      rc = ExpLOBInterfaceInsert(getExeGlobals()->getExLobGlobal(),
 				 tgtLobName, 
 				 lobStorageLocation(),
 				 lobType,
@@ -1112,7 +1108,8 @@ ex_expr::exp_return_type ExpLOBdelete::eval(char *op_data[],
 
   // call function with the lobname and offset to delete it.
   rc = ExpLOBInterfaceDelete
-    (getExeGlobals()->lobGlobal(),
+    (
+     getExeGlobals()->getExLobGlobal(),
      getLobHdfsServer(),
      getLobHdfsPort(),
      lobName, 
@@ -1335,7 +1332,7 @@ ex_expr::exp_return_type ExpLOBupdate::eval(char *op_data[],
   if (isAppend())
     {
       rc = ExpLOBInterfaceUpdateAppend
-	(getExeGlobals()->lobGlobal(), 
+	(getExeGlobals()->getExLobGlobal(), 
 	 getLobHdfsServer(),
 	 getLobHdfsPort(),
 	 tgtLobName, 
@@ -1358,7 +1355,7 @@ ex_expr::exp_return_type ExpLOBupdate::eval(char *op_data[],
   else
     {
       rc = ExpLOBInterfaceUpdate
-	(getExeGlobals()->lobGlobal(), 
+	(getExeGlobals()->getExLobGlobal(), 
 	 getLobHdfsServer(),
 	 getLobHdfsPort(),
 	 tgtLobName, 
@@ -1528,7 +1525,7 @@ ex_expr::exp_return_type ExpLOBconvert::eval(char *op_data[],
     {
       so = Lob_File;
       tgtFileName = tgtFileName_;
-      rc = ExpLOBInterfaceSelect(getExeGlobals()->lobGlobal(), 
+      rc = ExpLOBInterfaceSelect(getExeGlobals()->getExLobGlobal(), 
 				 lobName, 
 				 lobStorageLocation(),
 				 lobType,
@@ -1553,7 +1550,7 @@ ex_expr::exp_return_type ExpLOBconvert::eval(char *op_data[],
       
       lobLen = getConvertSize(); 
       lobData = new(h) char[(Lng32)lobLen];
-      rc = ExpLOBInterfaceSelect(getExeGlobals()->lobGlobal(), 
+      rc = ExpLOBInterfaceSelect(getExeGlobals()->getExLobGlobal(), 
 				 lobName, 
 				 lobStorageLocation(),
 				 lobType,

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7975a58e/core/sql/exp/ExpLOB.h
----------------------------------------------------------------------
diff --git a/core/sql/exp/ExpLOB.h b/core/sql/exp/ExpLOB.h
index cbbeecd..53a176b 100644
--- a/core/sql/exp/ExpLOB.h
+++ b/core/sql/exp/ExpLOB.h
@@ -75,7 +75,7 @@ class LobLoadInfo
   LobLoadInfo(CollHeap * heap)
     : heap_(heap)
   {};
-
+  ~LobLoadInfo(){}
   void setLobLoadEntries(Lng32 num)
   {
   }
@@ -127,7 +127,7 @@ class LOBglobals : public NABasicObject {
       {
 	lobLoadInfo_ = new(heap) LobLoadInfo(heap);
       };
-  
+  ~LOBglobals() { NADELETE(lobLoadInfo_,LobLoadInfo,heap_); lobLoadInfo_=NULL;}
   void* &lobAccessGlobals() { return lobAccessGlobals_; };
   LobLoadInfo * lobLoadInfo() { return lobLoadInfo_; }
 
@@ -233,15 +233,15 @@ public:
 				Int64 uid,  
 				char * outBuf, Lng32 outBufLen);
   static void calculateNewOffsets(ExLobInMemoryDescChunksEntry *dcArray, Lng32 numEntries);
-  static Lng32 compactLobDataFile(void *lobGlob, ExLobInMemoryDescChunksEntry *dcArray, Int32 numEntries, char *tgtLobName, Int64 lobMaxChunkSize, void *lobHeap,char *hdfsServer, Int32 hdfsPort,char *lobLocation);
-  static Int32 restoreLobDataFile(void *lobGlob, char *lobName, void *lobHeap, char *hdfsServer, Int32 hdfsPort,char *lobLocation );
-  static Int32 purgeBackupLobDataFile(void *lobGlob,char *lobName, void *lobHeap, char *hdfsServer, Int32 hdfsPort, char *lobLocation);
+  static Lng32 compactLobDataFile(void *lobGlob, ExLobInMemoryDescChunksEntry *dcArray, Int32 numEntries, char *tgtLobName, Int64 lobMaxChunkSize, void *lobHeap,void *currContext,char *hdfsServer, Int32 hdfsPort,char *lobLocation);
+  static Int32 restoreLobDataFile(void *lobGlob, char *lobName, void *lobHeap, void *currContext,char *hdfsServer, Int32 hdfsPort,char *lobLocation );
+  static Int32 purgeBackupLobDataFile(void *lobGlob,char *lobName, void *lobHeap, void *currContext, char *hdfsServer, Int32 hdfsPort, char *lobLocation);
 
-  static Lng32 createLOB(void * lobGlob, void * lobHeap,
+  static Lng32 createLOB(void * lobGlob, void *currContext,void * lobHeap,
 			 char * lobLoc, Int32 hdfsPort, char *hdfsServer,
 			 Int64 uid, Lng32 lobNum, Int64 lobMAxSize);
 
-  static Lng32 dropLOB(void * lobGlob, void * lobHeap, 
+  static Lng32 dropLOB(void * lobGlob, void *currContext,void * lobHeap, 
 		       char * lobLoc,Int32 hdfsPort, char *hdfsServer,
 		       Int64 uid, Lng32 lobNum);
 
@@ -249,7 +249,7 @@ public:
 			    char * lobLob,
 			    Int64 uid, Lng32 lobNum);
 
-  static Lng32 initLOBglobal(void *& lobGlob, void * heap);
+  static Lng32 initLOBglobal(void *& lobGlob, void * heap, void *currContext,char *server, Int32 port );
 
   // Extracts values from the LOB handle stored at ptr
   static Lng32 extractFromLOBhandle(Int16 *flags,
@@ -388,7 +388,7 @@ protected:
 
   char lobStorageLocation_[1024];
 
-  char lobHdfsServer_[1020];
+  char lobHdfsServer_[512];
   Lng32 lobHdfsPort_;
 
   short descSchNameLen_;

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7975a58e/core/sql/exp/ExpLOBaccess.cpp
----------------------------------------------------------------------
diff --git a/core/sql/exp/ExpLOBaccess.cpp b/core/sql/exp/ExpLOBaccess.cpp
index 46f5d1a..2c69703 100644
--- a/core/sql/exp/ExpLOBaccess.cpp
+++ b/core/sql/exp/ExpLOBaccess.cpp
@@ -77,14 +77,14 @@ SB_Phandle_Type serverPhandle;
 
 ExLob::ExLob() :
     storage_(Lob_Invalid_Storage),
-    dir_(string()),
+    lobStorageLocation_(string()),
     lobGlobalHeap_(NULL),
     fs_(NULL),
     fdData_(NULL),
     openFlags_(0),
     lobTrace_(FALSE)
 {
-    lobDataFile_[0] = '\0';
+  memset(lobDataFile_,'\0',sizeof(lobDataFile_));
     
 }
 
@@ -99,7 +99,7 @@ ExLob::~ExLob()
 }
 
 Ex_Lob_Error ExLob::initialize(char *lobFile, Ex_Lob_Mode mode, 
-                               char *dir, 
+                               char *lobStorageLocation, 
 			       LobsStorage storage,
                                char *hdfsServer, Int64 hdfsPort,
                                char *lobLocation,
@@ -107,20 +107,20 @@ Ex_Lob_Error ExLob::initialize(char *lobFile, Ex_Lob_Mode mode,
                                int blockSize, Int64 lobMaxSize, ExLobGlobals *lobGlobals)
 {
   int openFlags;
-  mode_t filePerms = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
   struct timespec startTime;
   struct timespec endTime;
   Int64 secs, nsecs, totalnsecs;
  
-  if (dir) 
+  if (lobStorageLocation) 
     {
-      if (dir_.empty()) 
+      if (lobStorageLocation_.empty()) 
 	{
-	  dir_ = string(dir);
+	  lobStorageLocation_ = string(lobStorageLocation);
 	}
 
       if (lobFile)
-        snprintf(lobDataFile_, MAX_LOB_FILE_NAME_LEN, "%s/%s", dir_.c_str(), 
+        snprintf(lobDataFile_, MAX_LOB_FILE_NAME_LEN, "%s/%s", 
+                 lobStorageLocation_.c_str(), 
                  lobFile);
       
     } 
@@ -143,20 +143,14 @@ Ex_Lob_Error ExLob::initialize(char *lobFile, Ex_Lob_Mode mode,
 
   hdfsServer_ = hdfsServer;
   hdfsPort_ = hdfsPort;
-  lobLocation_ = lobLocation;
+  // lobLocation_ = lobLocation;
   clock_gettime(CLOCK_MONOTONIC, &startTime);
-
-  if (lobGlobals->getHdfsFs() == NULL)
-    {
-      fs_ = hdfsConnect(hdfsServer_, hdfsPort_);
-      if (fs_ == NULL) 
-	return LOB_HDFS_CONNECT_ERROR;
-      lobGlobals->setHdfsFs(fs_);
-    }        
+  
+  if (lobGlobals->getHdfsFs() == NULL)     
+    return LOB_HDFS_CONNECT_ERROR;
   else 
-    {
-      fs_ = lobGlobals->getHdfsFs();
-    }
+    fs_ = lobGlobals->getHdfsFs();
+    
 
   clock_gettime(CLOCK_MONOTONIC, &endTime);
 
@@ -437,19 +431,9 @@ Ex_Lob_Error ExLob::dataModCheck(
   hdfsFileInfo *fileInfos = hdfsGetPathInfo(fs_, dirPath);
   if (fileInfos == NULL)
     {
-      hdfsDisconnect(fs_);
-      fs_ = hdfsConnect(hdfsServer_, hdfsPort_);
-      if (fs_ == NULL)
-        return LOB_HDFS_CONNECT_ERROR;
-
-      fileInfos = hdfsGetPathInfo(fs_, dirPath);
-      if (fileInfos == NULL)
-        return LOB_DIR_NAME_ERROR;
-
-      if (lobGlobals)
-        lobGlobals->setHdfsFs(fs_);
+      return LOB_DATA_FILE_NOT_FOUND_ERROR;
     }
-
+    
   Int64 currModTS = fileInfos[0].mLastMod;
   hdfsFreeFileInfo(fileInfos, 1);
   if ((inputModTS > 0) &&
@@ -1433,7 +1417,7 @@ Ex_Lob_Error ExLob::closeCursor(char *handleIn, Int32 handleInLen)
     return LOB_OPER_OK;
 }
 
-
+#ifdef __ignore
 Ex_Lob_Error ExLob::doSanityChecks(char *dir, LobsStorage storage,
                                    Int32 handleInLen, Int32 handleOutLen, 
                                    Int32 blackBoxLen)
@@ -1467,7 +1451,7 @@ Ex_Lob_Error ExLob::doSanityChecks(char *dir, LobsStorage storage,
 
     return LOB_OPER_OK;
 }
-
+#endif
 Ex_Lob_Error ExLob::allocateDesc(ULng32 size, Int64 &descNum, Int64 &dataOffset, Int64 lobMaxSize, Int64 lobMaxChunkMemLen, char *handleIn, Int32 handleInLen, Int64 lobGCLimit, void *lobGlobals)
 {
   NABoolean GCDone = FALSE;
@@ -1495,7 +1479,7 @@ Ex_Lob_Error ExLob::allocateDesc(ULng32 size, Int64 &descNum, Int64 &dataOffset,
          
         Int32 rc = SQL_EXEC_LOB_GC_Interface(lobGlobals,handleIn,handleInLen,
                                              hdfsServer_,hdfsPort_,
-                                             lobLocation_,
+                                             (char *)lobStorageLocation_.c_str(),
                                              lobMaxChunkMemLen,lobTrace_);
        
         if (rc<0)
@@ -2174,7 +2158,7 @@ Ex_Lob_Error ExLobsOper (
 			 Int64       &requestTagOut,    // returned with every request other than check status
 			 Ex_Lob_Error  &requestStatus,  // returned req status
 			 Int64       &cliError,         // err returned by cli call
-			 char        *dir,              // directory in the storage
+			 char        *lobStorageLocation,              // directory in the storage
 			 LobsStorage storage,           // storage type
 			 char        *source,           // source (memory addr, filename, foreign lob etc)
 			 Int64       sourceLen,         // source len (memory len, foreign desc offset etc)
@@ -2216,9 +2200,7 @@ Ex_Lob_Error ExLobsOper (
 
   if (globPtr == NULL)
     {
-      if ((operation == Lob_Init) ||
-          (operation == Lob_Empty_Directory) ||
-          (operation == Lob_Data_Mod_Check))
+      if ((operation == Lob_Init))
 	{
           
           globPtr = new ExLobGlobals();
@@ -2252,11 +2234,11 @@ Ex_Lob_Error ExLobsOper (
 	  if (lobPtr == NULL) 
 	    return LOB_ALLOC_ERROR;
 
-	  err = lobPtr->initialize(fileName, (operation == Lob_Create) ? EX_LOB_CREATE : EX_LOB_RW, dir, storage, hdfsServer, hdfsPort, dir,bufferSize, replication, blockSize,lobMaxSize,lobGlobals);
+	  err = lobPtr->initialize(fileName, (operation == Lob_Create) ? EX_LOB_CREATE : EX_LOB_RW, lobStorageLocation, storage, hdfsServer, hdfsPort, lobStorageLocation,bufferSize, replication, blockSize,lobMaxSize,lobGlobals);
 	  if (err != LOB_OPER_OK)
             {
               char buf[5000];
-              str_sprintf(buf,"Lob initialization failed;filename:%s;location:%s;hdfsserver:%s;hdfsPort:%d;lobMaxSize:%Ld",fileName,dir,hdfsServer,lobMaxSize);
+              str_sprintf(buf,"Lob initialization failed;filename:%s;location:%s;hdfsserver:%s;hdfsPort:%d;lobMaxSize:%Ld",fileName,lobStorageLocation,hdfsServer,lobMaxSize);
               lobDebugInfo(buf,err,__LINE__,lobGlobals->lobTrace_);
               return err;
             }
@@ -2472,22 +2454,16 @@ Ex_Lob_Error ExLobsOper (
       break;
 
     case Lob_Empty_Directory:
-      lobPtr->initialize(fileName, EX_LOB_RW,
-			 dir, storage, hdfsServer, hdfsPort, dir, bufferSize, replication, blockSize);
+     
       err = lobPtr->emptyDirectory();
       break;
 
     case Lob_Data_Mod_Check:
-      {
-        lobPtr->initialize(NULL, EX_LOB_RW,
-                           NULL, storage, hdfsServer, hdfsPort, NULL, 
-                           bufferSize, replication, blockSize, lobMaxSize, 
-                           lobGlobals);
-
+      {       
         Int64 inputModTS = *(Int64*)blackBox;
         Int32 inputNumOfPartLevels = 
           *(Lng32*)&((char*)blackBox)[sizeof(inputModTS)];
-        err = lobPtr->dataModCheck(dir, inputModTS, inputNumOfPartLevels,
+        err = lobPtr->dataModCheck(lobStorageLocation, inputModTS, inputNumOfPartLevels,
                                    lobGlobals);
       }
       break;
@@ -2948,11 +2924,13 @@ Ex_Lob_Error ExLob::deleteCursor(char *cursorName, ExLobGlobals *lobGlobals)
 
     return LOB_OPER_OK;
 }
+
 //*** Note - sample code to send and receive  
 Ex_Lob_Error ExLob::sendReqToLobServer() 
 {
-    Ex_Lob_Error err; 
 
+    Ex_Lob_Error err; 
+#ifdef __ignore
     request_.setType(Lob_Req_Get_Desc);
 
     err = request_.send();
@@ -2962,7 +2940,7 @@ Ex_Lob_Error ExLob::sendReqToLobServer()
     }
 
     err = request_.getError();
-
+#endif
     return err;
 }
 
@@ -3043,10 +3021,11 @@ Ex_Lob_Error ExLobGlobals::initialize()
     lobMap_ = (lobMap_t *) new (getHeap())lobMap_t;  
     if (lobMap_ == NULL)
       return LOB_INIT_ERROR;
-
-
+    // No need to start them here for LOB usage.These worker threads are needed 
+    // only for hive access so moving them to the ExpLOBInterfaceInit function 
+    // where they will get started only in case of hive access.
     // start the worker threads
-    startWorkerThreads();
+    //startWorkerThreads();
 
     return err;
 }
@@ -3123,6 +3102,7 @@ void ExLobLock::wait()
     waiters_--;
 }
 
+#ifdef __ignore
 ExLobHdfsRequest::ExLobHdfsRequest(LobsHdfsRequestType reqType, hdfsFS fs, 
                                    hdfsFile file, char *buffer, int size) :
    reqType_(reqType),
@@ -3134,15 +3114,13 @@ ExLobHdfsRequest::ExLobHdfsRequest(LobsHdfsRequestType reqType, hdfsFS fs,
   lobPtr_ = 0;
   error_ = LOB_OPER_OK;
 }
-
+#endif
 ExLobHdfsRequest::ExLobHdfsRequest(LobsHdfsRequestType reqType, ExLobCursor *cursor) :
    reqType_(reqType),
    cursor_(cursor)
 {
   buffer_=0;
   lobPtr_=0;
-  fs_=0;
-  file_=0;
   size_=0;
   error_=LOB_OPER_OK;
 }
@@ -3153,8 +3131,6 @@ ExLobHdfsRequest::ExLobHdfsRequest(LobsHdfsRequestType reqType, ExLob *lobPtr, E
    cursor_(cursor)
 {
   buffer_=0;
-  fs_=0;
-  file_=0;
   size_=0;
   error_=LOB_OPER_OK;
 }
@@ -3166,8 +3142,6 @@ ExLobHdfsRequest::ExLobHdfsRequest(LobsHdfsRequestType reqType) :
   buffer_=0;
   cursor_=0;
   lobPtr_=0;
-  fs_=0;
-  file_=0;
   size_=0;
   error_=LOB_OPER_OK;
 }

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7975a58e/core/sql/exp/ExpLOBaccess.h
----------------------------------------------------------------------
diff --git a/core/sql/exp/ExpLOBaccess.h b/core/sql/exp/ExpLOBaccess.h
index 2cce09e..d873c91 100644
--- a/core/sql/exp/ExpLOBaccess.h
+++ b/core/sql/exp/ExpLOBaccess.h
@@ -49,7 +49,6 @@
 #include "Globals.h"
 #include <seabed/ms.h>
 #include <seabed/fs.h>
-
 #ifdef LOB_DEBUG_STANDALONE
 #define Int64 long long
 #define Lng32 long
@@ -497,30 +496,33 @@ class ExLob
   Ex_Lob_Error emptyDirectory();
   ExLobStats *getStats() { return &stats_; }
   NAHeap *getLobGlobalHeap() { return lobGlobalHeap_;}
-  ExLobRequest *getRequest() { return &request_; }
+
+  //    ExLobRequest *getRequest() { return &request_; }
   
   //The next 2 functions are not active at this point. They serve as an example
   //on how to send requests across to the mxlobsrvr process from the master 
   //process
   Ex_Lob_Error getDesc(ExLobRequest *request);
   Ex_Lob_Error sendReqToLobServer() ;
+
   public:
 
     char lobDataFile_[MAX_LOB_FILE_NAME_LEN];
     lobCursors_t lobCursors_;
     ExLobLock lobCursorLock_;
     LobsStorage storage_;
-    string dir_; // lob data directory
+    string lobStorageLocation_; // lob data directory
     char *hdfsServer_;
     Int64 hdfsPort_;
-    char *lobLocation_;
     hdfsFS fs_;
     hdfsFile fdData_;
     int openFlags_;
     ExLobStats stats_;
     bool prefetchQueued_;
     NAHeap *lobGlobalHeap_;
+#ifdef __ignore
     ExLobRequest request_;
+#endif
     NABoolean lobTrace_;
 };
 
@@ -534,8 +536,9 @@ typedef map<string, ExLob *>::iterator lobMap_it;
 class ExLobHdfsRequest
 {
   public:
-
+#ifdef __ignore
     ExLobHdfsRequest(LobsHdfsRequestType reqType, hdfsFS fs, hdfsFile file, char *buffer, int size);
+#endif
     ExLobHdfsRequest(LobsHdfsRequestType reqType, ExLobCursor *cursor);
     ExLobHdfsRequest(LobsHdfsRequestType reqType, ExLob *lobPtr, ExLobCursor *cursor);
     ExLobHdfsRequest(LobsHdfsRequestType reqType);
@@ -547,8 +550,6 @@ class ExLobHdfsRequest
     LobsHdfsRequestType reqType_;
     ExLob *lobPtr_;
     ExLobCursor *cursor_;
-    hdfsFS fs_;
-    hdfsFile file_; 
     char *buffer_;
     int size_;
     Ex_Lob_Error error_;

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7975a58e/core/sql/exp/ExpLOBinterface.cpp
----------------------------------------------------------------------
diff --git a/core/sql/exp/ExpLOBinterface.cpp b/core/sql/exp/ExpLOBinterface.cpp
index 7b4a38b..56f7e90 100644
--- a/core/sql/exp/ExpLOBinterface.cpp
+++ b/core/sql/exp/ExpLOBinterface.cpp
@@ -29,12 +29,15 @@ using std::ofstream;
 
 #include "Platform.h"
 #include "SQLCLIdev.h"
-
+#include "Context.h"
 #include "str.h"
 #include "ExpLOBinterface.h"
+#include "ex_globals.h"
 
-
-Lng32 ExpLOBinterfaceInit(void *& lobGlob, void * lobHeap,NABoolean isHive, Int64  lobMaxSize)
+Lng32 ExpLOBinterfaceInit(void *& exLobGlob, void * lobHeap,
+                          void *currContext,NABoolean isHive,
+                          char *hdfsServer, 
+                          Int32 port)
 {
   Ex_Lob_Error err;
 
@@ -42,41 +45,56 @@ Lng32 ExpLOBinterfaceInit(void *& lobGlob, void * lobHeap,NABoolean isHive, Int6
   Int64 cliError = -1; 
   Ex_Lob_Error status;
   Int32 dummyParam2 = 0;
-  char dir[100];
-  strcpy(dir, "/lobs");
-  err = ExLobsOper(dir,
+  
+ 
+  err = ExLobsOper((char*)"dummy",
 		   NULL, 0,
 		   NULL, 0, 
 		   NULL, dummyParam2, 0, dummyParam, 
                    dummyParam, 0, dummyParam, status, cliError,
-		   dir, Lob_HDFS_File,
+		   NULL, Lob_HDFS_File,
 		   NULL, 0, 
 		   0,NULL,
 		   Lob_Init,
 		   Lob_None,
                    1, // waited op
-		   lobGlob,
+		   exLobGlob,
 		   0,
-		   lobGlob, 0,
-		   lobMaxSize);
-  if (lobGlob)
+		   NULL, 0,
+		   0);
+  if (exLobGlob)
     {
-      ((ExLobGlobals *)lobGlob)->setIsHive(isHive);
+      ((ExLobGlobals *)exLobGlob)->setIsHive(isHive);
       NAHeap *heap = new ((NAHeap *)lobHeap) NAHeap("LOB Heap", (NAHeap *)lobHeap);
-      
+      if (isHive)
+        ((ExLobGlobals *)exLobGlob)->startWorkerThreads();
       heap->setThreadSafe();
-      ((ExLobGlobals *)lobGlob)->setHeap(heap);
+      ((ExLobGlobals *)exLobGlob)->setHeap(heap);
       
     }
-    
+
+  //set hdfsConnection from context global 
+  ContextCli *localContext = (ContextCli *)currContext;
+  if (localContext)
+    {
+      hdfsFS fs = localContext->getHdfsServerConnection(hdfsServer,port);
+      if (fs == NULL)
+        {
+          return LOB_HDFS_CONNECT_ERROR;
+        }
+      else
+        {
+          ((ExLobGlobals *)exLobGlob)->setHdfsFs(fs);
+        }
+    }
 
   if (err != LOB_OPER_OK)
-    return -1;
+    return err;
   else
     return 0;
 }
 
-Lng32 ExpLOBinterfacePerformGC(void *& lobGlob, char *lobName,void *descChunksArray, Int32 numEntries, char *hdfsServer, Int32 hdfsPort,char *lobLoc,Int64 lobMaxChunkMemSize)
+Lng32 ExpLOBinterfacePerformGC(void *& exLobGlob, char *lobName,void *descChunksArray, Int32 numEntries, char *hdfsServer, Int32 hdfsPort,char *lobLoc,Int64 lobMaxChunkMemSize)
 {
   Ex_Lob_Error err;
   Ex_Lob_Error status;
@@ -94,17 +112,17 @@ Lng32 ExpLOBinterfacePerformGC(void *& lobGlob, char *lobName,void *descChunksAr
 		   Lob_PerformGC, // Lob_GC
 		   Lob_None,
                    1, // waited op
-		   lobGlob,
+		   exLobGlob,
 		   0,
 		   NULL, 0
 		   );
   if (err != LOB_OPER_OK)
-    return -1;
+    return err;
   else
     return 0;
 }
 
-Lng32 ExpLOBinterfaceRestoreLobDataFile(void *& lobGlob, char *hdfsServer, Int32 hdfsPort,char *lobLoc,char *lobName)
+Lng32 ExpLOBinterfaceRestoreLobDataFile(void *& exLobGlob, char *hdfsServer, Int32 hdfsPort,char *lobLoc,char *lobName)
 {
   Ex_Lob_Error err;
   Ex_Lob_Error status;
@@ -122,16 +140,16 @@ Lng32 ExpLOBinterfaceRestoreLobDataFile(void *& lobGlob, char *hdfsServer, Int32
 		   Lob_RestoreLobDataFile, // Lob_GC
 		   Lob_None,
                    1, // waited op
-		   lobGlob,
+		   exLobGlob,
 		   0,
 		   NULL, 0
 		   );
   if (err != LOB_OPER_OK)
-    return -1;
+    return err;
   else
     return 0;
 }
-Lng32 ExpLOBinterfacePurgeBackupLobDataFile(void *& lobGlob, char *hdfsServer, Int32 hdfsPort,char *lobLoc,char *lobName)
+Lng32 ExpLOBinterfacePurgeBackupLobDataFile(void *& exLobGlob, char *hdfsServer, Int32 hdfsPort,char *lobLoc,char *lobName)
 {
   Ex_Lob_Error err;
   Ex_Lob_Error status;
@@ -149,16 +167,16 @@ Lng32 ExpLOBinterfacePurgeBackupLobDataFile(void *& lobGlob, char *hdfsServer, I
 		   Lob_PurgeBackupLobDataFile, // Lob_GC
 		   Lob_None,
                    1, // waited op
-		   lobGlob,
+		   exLobGlob,
 		   0,
 		   NULL, 0
 		   );
   if (err != LOB_OPER_OK)
-    return -1;
+    return err;
   else
     return 0;
 }
-Lng32 ExpLOBinterfaceCleanup(void *& lobGlob, void * lobHeap)
+Lng32 ExpLOBinterfaceCleanup(void *& exLobGlob, void * lobHeap)
 {
   Ex_Lob_Error err;
   Ex_Lob_Error status;
@@ -176,18 +194,18 @@ Lng32 ExpLOBinterfaceCleanup(void *& lobGlob, void * lobHeap)
 		   Lob_Cleanup, // Lob_Cleanup
 		   Lob_None,
                    1, // waited op
-		   lobGlob,
+		   exLobGlob,
 		   0,
 		   lobHeap, 0
 		   );
   if (err != LOB_OPER_OK)
-    return -1;
+    return -err;
   else
     return 0;
 }
 
 Lng32 ExpLOBinterfaceCreate(
-			    void * lobGlob, char * lobName, char * lobLoc,
+			    void * exLobGlob, char * lobName, char * lobLoc,
 			    Lng32 lobType,
 			    char * lobHdfsServer,
 			    Int64 lobMaxSize,
@@ -214,7 +232,7 @@ Lng32 ExpLOBinterfaceCreate(
 		   Lob_Create,
 		   Lob_None,
                    1, // waited op
-		   lobGlob,
+		   exLobGlob,
 		   0, NULL, 0,
 		   lobMaxSize,
                    bufferSize ,
@@ -223,7 +241,7 @@ Lng32 ExpLOBinterfaceCreate(
 		   );
 
   if (err != LOB_OPER_OK)
-    return -(short)err;
+    return -err;
   else
     return 0;
 }
@@ -231,7 +249,9 @@ Lng32 ExpLOBinterfaceCreate(
 // Return: 1, if check fails. 
 //         0, if check passes. 
 //         -LOB_*_ERROR, if error.
-Lng32 ExpLOBinterfaceDataModCheck(void * lobGlob,
+
+
+Lng32 ExpLOBinterfaceDataModCheck(void * exLobGlob,
                                   char * dirPath,
                                   char * lobHdfsServer,
                                   Lng32  lobHdfsPort,
@@ -260,7 +280,7 @@ Lng32 ExpLOBinterfaceDataModCheck(void * lobGlob,
                    Lob_Data_Mod_Check,
                    Lob_None,
                    1, // waited op
-                   lobGlob,
+                   exLobGlob,
                    0, 
                    dirInfoBuf, dirInfoBufLen
                    );
@@ -268,13 +288,13 @@ Lng32 ExpLOBinterfaceDataModCheck(void * lobGlob,
   if (err == LOB_DATA_MOD_CHECK_ERROR)
     return 1;
   else if (err != LOB_OPER_OK)
-    return -(short)err;
+    return -err;
   else
     return 0;
 }
 
 Lng32 ExpLOBinterfaceEmptyDirectory(
-                            void * lobGlob,
+                            void * exLobGlob,
                             char * lobName,
                             char * lobLoc,
                             Lng32 lobType,
@@ -302,7 +322,7 @@ Lng32 ExpLOBinterfaceEmptyDirectory(
                    Lob_Empty_Directory,
                    Lob_None,
                    1, // waited op
-                   lobGlob,
+                   exLobGlob,
                    0, NULL, 0,
                    bufferSize ,
                    replication,
@@ -310,11 +330,11 @@ Lng32 ExpLOBinterfaceEmptyDirectory(
                    );
 
   if (err != LOB_OPER_OK)
-    return -(short)err;
+    return -err;
   else
     return 0;
 }
-Lng32 ExpLOBinterfaceDrop(void * lobGlob,  char * lobHdfsServer ,
+Lng32 ExpLOBinterfaceDrop(void * exLobGlob,  char * lobHdfsServer ,
 			  Lng32 lobHdfsPort,char * lobName, char * lobLoc)
 {
   Ex_Lob_Error err;
@@ -335,17 +355,17 @@ Lng32 ExpLOBinterfaceDrop(void * lobGlob,  char * lobHdfsServer ,
 		   Lob_Drop,
 		   Lob_None,
                    1, // waited op
-		   lobGlob, 
+		   exLobGlob, 
 		   0, NULL, 0
 		   );
 
   if (err != LOB_OPER_OK)
-    return -(short)err;
+    return -err;
   else
     return 0;
 }
 
-Lng32 ExpLOBInterfacePurgedata(void * lobGlob,  
+Lng32 ExpLOBInterfacePurgedata(void * exLobGlob,  
 			       char * lobName, char * lobLoc)
 {
   Ex_Lob_Error err;
@@ -367,17 +387,17 @@ Lng32 ExpLOBInterfacePurgedata(void * lobGlob,
 		   Lob_Purge,
 		   Lob_None,
                    1, // waited
-                   lobGlob,
+                   exLobGlob,
 		   0, NULL, 0
 		   );
 
   if (err != LOB_OPER_OK)
-    return -(short)err;
+    return -err;
   else
     return LOB_ACCESS_SUCCESS;
 }
 
-Lng32 ExpLOBinterfaceCloseFile(void * lobGlob, 
+Lng32 ExpLOBinterfaceCloseFile(void * exLobGlob, 
 			       char * lobName,
 			       char * lobLoc,
 			       Lng32 lobType,
@@ -405,18 +425,18 @@ Lng32 ExpLOBinterfaceCloseFile(void * lobGlob,
 		  
 		   Lob_None,
                    1, // waited
-                   lobGlob,
+                   exLobGlob,
 		   0, NULL, 0
 		   );
 
   if (err != LOB_OPER_OK)
-    return -(short)err;
+    return -err;
   else
     return LOB_ACCESS_SUCCESS;
 }
 
 
-Lng32 ExpLOBInterfaceInsert(void * lobGlob, 
+Lng32 ExpLOBInterfaceInsert(void * exLobGlob, 
 			    char * tgtLobName,
 			    char * lobStorageLocation,
 			    Lng32 lobType,
@@ -485,7 +505,7 @@ Lng32 ExpLOBInterfaceInsert(void * lobGlob,
 		   lo, 
 		   so,
                    waitedOp,
-		   lobGlob,
+		   exLobGlob,
 		   xnId, 
 		   blackBox, blackBoxLen,
 		   lobMaxSize,
@@ -504,7 +524,7 @@ Lng32 ExpLOBInterfaceInsert(void * lobGlob,
 	  (ce != 0))
 	*cliError = (Lng32)ce;
 	
-      return -(short)err;
+      return -err;
     }
 
   descSyskey = outDescSyskey;
@@ -513,7 +533,7 @@ Lng32 ExpLOBInterfaceInsert(void * lobGlob,
   return 0;
 }
 
-Lng32 ExpLOBInterfaceInsertSelect(void * lobGlob, 
+Lng32 ExpLOBInterfaceInsertSelect(void * exLobGlob, 
 				  char * lobHdfsServer ,
 				  Lng32 lobHdfsPort ,
 				  char * tgtLobName,
@@ -553,17 +573,17 @@ Lng32 ExpLOBInterfaceInsertSelect(void * lobGlob,
 		   Lob_Insert,
 		   lso,
                    1, 
-		   lobGlob,
+		   exLobGlob,
 		   0, NULL, 0
 		   );
 
   if (err != LOB_OPER_OK)
-    return -(short)err;
+    return -err;
 
   return 0;
 }
 
-Lng32 ExpLOBInterfaceUpdateAppend(void * lobGlob, 
+Lng32 ExpLOBInterfaceUpdateAppend(void * exLobGlob, 
 				  char * lobHdfsServer ,
 				  Lng32 lobHdfsPort ,
 				  char * tgtLobName,
@@ -615,7 +635,7 @@ Lng32 ExpLOBInterfaceUpdateAppend(void * lobGlob,
                    Lob_Append,
                    so,
                    1, 
-                   lobGlob,
+                   exLobGlob,
                    xnId, NULL, 0,
 		   lobMaxSize,
 		   lobMaxChunkMemSize,
@@ -626,14 +646,14 @@ Lng32 ExpLOBInterfaceUpdateAppend(void * lobGlob,
     
   if (err != LOB_OPER_OK)
     {
-      return -(short)err;
+      return -err;
     }
 
 
   return 0;
 }
 
-Lng32 ExpLOBInterfaceUpdate(void * lobGlob, 
+Lng32 ExpLOBInterfaceUpdate(void * exLobGlob, 
 			    char * lobHdfsServer ,
 			    Lng32 lobHdfsPort,
 
@@ -686,7 +706,7 @@ Lng32 ExpLOBInterfaceUpdate(void * lobGlob,
                    Lob_Update,
                    so,
                    1, 
-                   lobGlob,
+                   exLobGlob,
                    xnId, 
 		   NULL, 0,
 		   lobMaxSize,
@@ -698,7 +718,7 @@ Lng32 ExpLOBInterfaceUpdate(void * lobGlob,
     
   if (err != LOB_OPER_OK)
     {
-      return -(short)err;
+      return -err;
     }
 
 
@@ -706,7 +726,7 @@ Lng32 ExpLOBInterfaceUpdate(void * lobGlob,
   return 0;
 }
 
-Lng32 ExpLOBInterfaceDelete(void * lobGlob, 
+Lng32 ExpLOBInterfaceDelete(void * exLobGlob, 
 			    char * lobHdfsServer ,
 			    Lng32 lobHdfsPort ,
 			    char * lobName,
@@ -749,7 +769,7 @@ Lng32 ExpLOBInterfaceDelete(void * lobGlob,
 		   lo,
 		   Lob_None,
                    waitedOp, 
-		   lobGlob,
+		   exLobGlob,
 		   xnId, 
 		   NULL, 0
 		   );
@@ -757,7 +777,7 @@ Lng32 ExpLOBInterfaceDelete(void * lobGlob,
     
   if (err != LOB_OPER_OK)
     {
-      return -(short)err;
+      return -err;
     }
 
 
@@ -765,7 +785,7 @@ Lng32 ExpLOBInterfaceDelete(void * lobGlob,
 
 }
 
-Lng32 ExpLOBInterfaceSelect(void * lobGlob, 
+Lng32 ExpLOBInterfaceSelect(void * exLobGlob, 
 			    char * lobName, 
 			    char * lobLoc,
 			    Lng32 lobType,
@@ -821,7 +841,7 @@ Lng32 ExpLOBInterfaceSelect(void * lobGlob,
 		   lo,
 		   so,
                    waitedOp, 
-		   lobGlob,
+		   exLobGlob,
 		   xnId, 
 		   NULL, 0,
 		   0,
@@ -834,7 +854,7 @@ Lng32 ExpLOBInterfaceSelect(void * lobGlob,
   requestTag = -1;
   if (err != LOB_OPER_OK)
     {
-      return -(short)err;
+      return -err;
     }
 
 
@@ -842,7 +862,7 @@ Lng32 ExpLOBInterfaceSelect(void * lobGlob,
   return 0;
 }
 
-Lng32 ExpLOBInterfaceSelectCursor(void * lobGlob, 
+Lng32 ExpLOBInterfaceSelectCursor(void * exLobGlob, 
 				  char * lobName, 
 				  char * lobLoc,
 				  Lng32 lobType,
@@ -920,7 +940,7 @@ Lng32 ExpLOBInterfaceSelectCursor(void * lobGlob,
 		   lo,
 		   so,
                    waitedOp,
-		   lobGlob,
+		   exLobGlob,
 		   0,
 		   NULL, 0,0,0,0,0,0,0,
                    openType
@@ -928,14 +948,14 @@ Lng32 ExpLOBInterfaceSelectCursor(void * lobGlob,
 
   if (err != LOB_OPER_OK)
     {
-      return -(short)err;
+      return -err;
     }
   
   return LOB_ACCESS_SUCCESS;
 }
 
 Lng32 ExpLOBinterfaceStats(
-			    void * lobGlob, 
+			    void * exLobGlob, 
 			    ExLobStats * lobStats,
 			    char * lobName, char * lobLoc,
 			    Lng32 lobType,
@@ -960,12 +980,12 @@ Lng32 ExpLOBinterfaceStats(
 		   Lob_Stats,
 		   Lob_None,
                    1, // waited op
-		   lobGlob,
+		   exLobGlob,
 		   0, NULL, 0
 		   );
 
   if (err != LOB_OPER_OK)
-    return -(short)err;
+    return -err;
   else
     return 0;
 }

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7975a58e/core/sql/exp/ExpLOBinterface.h
----------------------------------------------------------------------
diff --git a/core/sql/exp/ExpLOBinterface.h b/core/sql/exp/ExpLOBinterface.h
index 859417e..ed50169 100644
--- a/core/sql/exp/ExpLOBinterface.h
+++ b/core/sql/exp/ExpLOBinterface.h
@@ -25,7 +25,7 @@
 
 #include "NAVersionedObject.h"
 #include "ComQueue.h"
-
+#include "ex_globals.h"
 class HdfsFileInfo
 {
  public:
@@ -77,7 +77,7 @@ enum ExpLOBinterfaceInputFlags
     ERROR_IF_TGT_FILE_EXISTS_ =  0x0004
   };
 
-Lng32 ExpLOBinterfaceInit(void *& lobGlob, void * lobHeap, NABoolean isHive=FALSE, Int64   lobMaxSize =0);
+Lng32 ExpLOBinterfaceInit(void *& lobGlob, void * lobHeap, void *currContext,NABoolean isHive=FALSE, char *hdfsServer="default", Int32 port=0);
 
 Lng32 ExpLOBinterfaceCleanup(void *& lobGlob, void * lobHeap);
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7975a58e/core/sql/generator/GenPreCode.cpp
----------------------------------------------------------------------
diff --git a/core/sql/generator/GenPreCode.cpp b/core/sql/generator/GenPreCode.cpp
index b862464..d5737e0 100644
--- a/core/sql/generator/GenPreCode.cpp
+++ b/core/sql/generator/GenPreCode.cpp
@@ -4206,8 +4206,10 @@ RelExpr * FileScan::preCodeGen(Generator * generator,
       if (isHiveTable())
 	// assign individual files and blocks to each ESPs
 	((NodeMap *) getPartFunc()->getNodeMap())->assignScanInfos(hiveSearchKey_);
+       generator->setProcessLOB(TRUE);
     }
 
+  
   // Selection predicates are not needed anymore:
   selectionPred().clear();
 
@@ -5446,6 +5448,7 @@ RelExpr * HiveInsert::preCodeGen(Generator * generator,
     return this;
 
   generator->setHiveAccess(TRUE);
+  generator->setProcessLOB(TRUE);
   return GenericUpdate::preCodeGen(generator, externalInputs, pulledNewInputs);
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7975a58e/core/sql/optimizer/HDFSHook.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/HDFSHook.cpp b/core/sql/optimizer/HDFSHook.cpp
index 0d6fd34..fe183fb 100644
--- a/core/sql/optimizer/HDFSHook.cpp
+++ b/core/sql/optimizer/HDFSHook.cpp
@@ -29,7 +29,8 @@
 
 // for DNS name resolution
 #include <netdb.h>
-
+#include "Globals.h"
+#include "Context.h"
 // Initialize static variables
 THREAD_P CollIndex HHDFSMasterHostList::numSQNodes_(0);
 THREAD_P NABoolean HHDFSMasterHostList::hasVirtualSQNodes_(FALSE);
@@ -551,7 +552,7 @@ void HHDFSListPartitionStats::populate(hdfsFS fs,
   // to avoid a crash, due to lacking permissions, check the directory
   // itself first
   hdfsFileInfo *dirInfo = hdfsGetPathInfo(fs, dir.data());
-
+  
   if (!dirInfo)
     {
       diags.recordError(NAString("Could not access HDFS directory ") + dir,
@@ -589,6 +590,7 @@ void HHDFSListPartitionStats::populate(hdfsFS fs,
           }
 
       hdfsFreeFileInfo(fileInfos, numFiles);
+      hdfsFreeFileInfo(dirInfo,1);
 
       // aggregate statistics over all buckets
       for (Int32 b=0; b<=defaultBucketIdx_; b++)
@@ -735,7 +737,7 @@ NABoolean HHDFSListPartitionStats::validateAndRefresh(hdfsFS fs, HHDFSDiags &dia
       } // loop over actual files in the directory
 
   hdfsFreeFileInfo(fileInfos, numFiles);
-
+  hdfsFreeFileInfo(dirInfo,1);
   // check for file stats that we did not visit at the end of each bucket
   for (CollIndex i=0; i<=getLastValidBucketIndx() && result; i++)
     if (bucketStatsList_.used(i) &&
@@ -1074,17 +1076,11 @@ NABoolean HHDFSTableStats::connectHDFS(const NAString &host, Int32 port)
 {
   NABoolean result = TRUE;
 
-  // establish connection to HDFS if needed
-  if (fs_ == NULL ||
-      currHdfsHost_ != host ||
-      currHdfsPort_ != port)
-    {
-      if (fs_)
-        {
-          hdfsDisconnect(fs_);
-          fs_ = NULL;
-        }
-      fs_ = hdfsConnect(host, port);
+  // establish connection to HDFS . Conect to the connection cached in the context.
+ 
+  
+  fs_ = ((GetCliGlobals()->currContext())->getHdfsServerConnection((char *)host.data(),port));
+     
       
       if (fs_ == NULL)
         {
@@ -1098,13 +1094,12 @@ NABoolean HHDFSTableStats::connectHDFS(const NAString &host, Int32 port)
         }
       currHdfsHost_ = host;
       currHdfsPort_ = port;
-    }
+      //  }
   return result;
 }
 
 void HHDFSTableStats::disconnectHDFS()
 {
-  if (fs_)
-    hdfsDisconnect(fs_);
-  fs_ = NULL;
+  // No op. The disconnect happens at the context level wehn the session 
+  // is dropped or the thread exits.
 }

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7975a58e/core/sql/src/main/java/org/trafodion/sql/HBulkLoadClient.java
----------------------------------------------------------------------
diff --git a/core/sql/src/main/java/org/trafodion/sql/HBulkLoadClient.java b/core/sql/src/main/java/org/trafodion/sql/HBulkLoadClient.java
index 0635ace..3804f1b 100644
--- a/core/sql/src/main/java/org/trafodion/sql/HBulkLoadClient.java
+++ b/core/sql/src/main/java/org/trafodion/sql/HBulkLoadClient.java
@@ -474,10 +474,12 @@ public class HBulkLoadClient
        writer.close();
        writer = null;
     }
-    if (fileSys !=null)
+    // sss This is one place that is unconditionally closing the 
+    // hdfsFs that's part of this thread's JNIenv.
+    // if (fileSys !=null)
     {
-      fileSys.close();
-      fileSys = null;
+        //  fileSys.close();
+        //  fileSys = null;
     }
     if (config != null) 
     {


[7/7] incubator-trafodion git commit: Merge remote branch 'origin/pr/574/head' into merge_574

Posted by sa...@apache.org.
Merge remote branch 'origin/pr/574/head' into merge_574


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/2dd9d3a6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/2dd9d3a6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/2dd9d3a6

Branch: refs/heads/master
Commit: 2dd9d3a6edbc5651a090a4e45ec682b08d58be51
Parents: 6a1de93 9a851e2
Author: Sandhya Sundaresan <sa...@apache.org>
Authored: Thu Jul 7 20:36:13 2016 +0000
Committer: Sandhya Sundaresan <sa...@apache.org>
Committed: Thu Jul 7 20:36:13 2016 +0000

----------------------------------------------------------------------
 core/sql/cli/Cli.cpp                            |  17 +-
 core/sql/cli/Cli.h                              |   3 +-
 core/sql/cli/CliExtern.cpp                      |   3 +-
 core/sql/cli/Context.cpp                        |  61 +++++-
 core/sql/cli/Context.h                          |  17 +-
 core/sql/executor/ExExeUtil.h                   |   3 +-
 core/sql/executor/ExExeUtilCli.cpp              |   4 +-
 core/sql/executor/ExExeUtilGet.cpp              |   8 +-
 core/sql/executor/ExExeUtilLoad.cpp             |  49 ++---
 core/sql/executor/ExExeUtilMisc.cpp             |   5 +-
 core/sql/executor/ExFastTransport.cpp           |   6 +-
 core/sql/executor/ExHbaseIUD.cpp                |  13 +-
 core/sql/executor/ExHdfsScan.cpp                |  56 ++++--
 core/sql/executor/ExHdfsScan.h                  |   1 -
 core/sql/executor/JavaObjectInterface.cpp       |   4 +-
 core/sql/executor/ex_globals.cpp                |  14 +-
 core/sql/executor/ex_globals.h                  |   4 +-
 core/sql/executor/ex_root.cpp                   |  13 +-
 core/sql/executor/ex_split_bottom.cpp           |   2 +-
 core/sql/exp/ExpLOB.cpp                         | 107 +++++-----
 core/sql/exp/ExpLOB.h                           |  18 +-
 core/sql/exp/ExpLOBaccess.cpp                   | 115 ++++-------
 core/sql/exp/ExpLOBaccess.h                     |  15 +-
 core/sql/exp/ExpLOBinterface.cpp                | 160 ++++++++-------
 core/sql/exp/ExpLOBinterface.h                  |   4 +-
 core/sql/generator/GenPreCode.cpp               |   3 +
 core/sql/optimizer/HDFSHook.cpp                 |  31 ++-
 core/sql/regress/hive/EXPECTED005               |  16 +-
 core/sql/regress/hive/EXPECTED018               | 198 ++++++++++---------
 core/sql/regress/hive/TEST005                   |   2 +-
 core/sql/regress/hive/TEST018                   |  22 ++-
 core/sql/regress/tools/regrhive.ksh             |   2 +-
 .../java/org/trafodion/sql/HBulkLoadClient.java |   8 +-
 33 files changed, 529 insertions(+), 455 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/2dd9d3a6/core/sql/regress/hive/EXPECTED005
----------------------------------------------------------------------


[4/7] incubator-trafodion git commit: small fix for review and fix for a regr failure on jenkins cdh tests. Diff was due to cdh configuration not printing header for hive access causing hive/TEST005 to fail. So adding that to this PR.

Posted by sa...@apache.org.
small fix for review and fix for a regr failure on jenkins cdh tests. Diff was due to cdh configuration not printing header for hive access causing hive/TEST005 to fail. So adding that to this PR.


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/6857070e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/6857070e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/6857070e

Branch: refs/heads/master
Commit: 6857070edf499a21601507d17b14354b190321e2
Parents: ac1b131
Author: Sandhya Sundaresan <sa...@apache.org>
Authored: Wed Jul 6 00:06:54 2016 +0000
Committer: Sandhya Sundaresan <sa...@apache.org>
Committed: Wed Jul 6 00:06:54 2016 +0000

----------------------------------------------------------------------
 core/sql/regress/tools/regrhive.ksh                           | 2 +-
 core/sql/src/main/java/org/trafodion/sql/HBulkLoadClient.java | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/6857070e/core/sql/regress/tools/regrhive.ksh
----------------------------------------------------------------------
diff --git a/core/sql/regress/tools/regrhive.ksh b/core/sql/regress/tools/regrhive.ksh
index cf9a302..1f65171 100755
--- a/core/sql/regress/tools/regrhive.ksh
+++ b/core/sql/regress/tools/regrhive.ksh
@@ -28,5 +28,5 @@
 if [ -x $MY_SQROOT/sql/scripts/swhive ]; then
   swhive $*
 else
-  hive $*
+  hive -hiveconf hive.cli.print.header=true $*
 fi

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/6857070e/core/sql/src/main/java/org/trafodion/sql/HBulkLoadClient.java
----------------------------------------------------------------------
diff --git a/core/sql/src/main/java/org/trafodion/sql/HBulkLoadClient.java b/core/sql/src/main/java/org/trafodion/sql/HBulkLoadClient.java
index 2853be3..a1a3d1a 100644
--- a/core/sql/src/main/java/org/trafodion/sql/HBulkLoadClient.java
+++ b/core/sql/src/main/java/org/trafodion/sql/HBulkLoadClient.java
@@ -475,7 +475,7 @@ public class HBulkLoadClient
        writer.close();
        writer = null;
     }
-    // sss This is one place that is unconditionally closing the 
+    //  This is one place that is unconditionally closing the 
     // hdfsFs that's part of this thread's JNIenv.
     // if (fileSys !=null)
     {


[5/7] incubator-trafodion git commit: Fix core file issue with udr test accessing null lobglobal. Commenting out hanging executor test that needs other fixes (JIRA 2083)

Posted by sa...@apache.org.
Fix core file issue with udr test accessing null lobglobal.
Commenting out hanging executor test that needs other fixes (JIRA 2083)


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/5f99c6be
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/5f99c6be
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/5f99c6be

Branch: refs/heads/master
Commit: 5f99c6be1ad243fba1647883d575bb16a2aceab8
Parents: 6857070
Author: Sandhya Sundaresan <sa...@apache.org>
Authored: Wed Jul 6 04:19:57 2016 +0000
Committer: Sandhya Sundaresan <sa...@apache.org>
Committed: Wed Jul 6 04:19:57 2016 +0000

----------------------------------------------------------------------
 core/sql/executor/ex_root.cpp               | 2 +-
 core/sql/regress/tools/runregr_executor.ksh | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/5f99c6be/core/sql/executor/ex_root.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ex_root.cpp b/core/sql/executor/ex_root.cpp
index e2738d5..db2fc1a 100644
--- a/core/sql/executor/ex_root.cpp
+++ b/core/sql/executor/ex_root.cpp
@@ -2777,7 +2777,7 @@ Int32 ex_root_tcb::checkTransBeforeExecute(ExTransaction *myTrans,
     mayPinAudit_ = myTrans->mayAlterDb() ? true : false;
     mayLock_ = myTrans->mayHoldLock() ? true : false;
 
-    masterGlob->lobGlobals()->xnId() = myTrans->getTransid();
+    
 
   }
   return 0;

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/5f99c6be/core/sql/regress/tools/runregr_executor.ksh
----------------------------------------------------------------------
diff --git a/core/sql/regress/tools/runregr_executor.ksh b/core/sql/regress/tools/runregr_executor.ksh
index 3411009..07840b2 100755
--- a/core/sql/regress/tools/runregr_executor.ksh
+++ b/core/sql/regress/tools/runregr_executor.ksh
@@ -237,7 +237,7 @@ skippedfiles=
 
 # sbtestfiles contains the list of tests to be run in seabase mode
 if [ "$seabase" -ne 0 ]; then
-  sbtestfiles="TEST001 TEST002 TEST012 TEST013 TEST014 TEST015 TEST016 TEST020 TEST022 TEST025 TEST050 TEST063 TEST088 TEST101 TEST106 TEST107 TEST122 TEST130 TEST131 TEST140"
+  sbtestfiles="TEST001 TEST002 TEST012 TEST013 TEST014 TEST015 TEST016 TEST020 TEST022 TEST025 TEST050 TEST063 TEST088 TEST101 TEST106 TEST107 TEST122  TEST131 TEST140"
   sbprettyfiles=
   for i in $prettyfiles; do
     for j in $sbtestfiles; do


[6/7] incubator-trafodion git commit: Re-enabling executor/TEST130. Changed hive/TEST018 to add a "sleep" after each Unload statement to avoid the EAGAIN error. The real rety fix will get addresssed in JIRA 2097

Posted by sa...@apache.org.
Re-enabling executor/TEST130. Changed hive/TEST018 to add a "sleep" after each Unload statement to avoid the EAGAIN error. The real rety fix will get addresssed in JIRA 2097


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/9a851e25
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/9a851e25
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/9a851e25

Branch: refs/heads/master
Commit: 9a851e2591636c7f301902a657ee02752b69143e
Parents: 5f99c6b
Author: Sandhya Sundaresan <sa...@apache.org>
Authored: Wed Jul 6 21:12:26 2016 +0000
Committer: Sandhya Sundaresan <sa...@apache.org>
Committed: Wed Jul 6 21:12:26 2016 +0000

----------------------------------------------------------------------
 core/sql/regress/hive/EXPECTED018           | 198 ++++++++++++-----------
 core/sql/regress/hive/TEST018               |  22 +--
 core/sql/regress/tools/runregr_executor.ksh |   2 +-
 3 files changed, 113 insertions(+), 109 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/9a851e25/core/sql/regress/hive/EXPECTED018
----------------------------------------------------------------------
diff --git a/core/sql/regress/hive/EXPECTED018 b/core/sql/regress/hive/EXPECTED018
index cff41c7..4228108 100644
--- a/core/sql/regress/hive/EXPECTED018
+++ b/core/sql/regress/hive/EXPECTED018
@@ -150,9 +150,9 @@ Task:  CLEANUP         Status: Started    Object: TRAFODION.HBASE.CUSTOMER_ADDRE
 Task:  CLEANUP         Status: Ended      Object: TRAFODION.HBASE.CUSTOMER_ADDRESS
 Task:  PREPARATION     Status: Started    Object: TRAFODION.HBASE.CUSTOMER_ADDRESS
        Rows Processed: 50000 
-Task:  PREPARATION     Status: Ended      ET: 00:00:08.543
+Task:  PREPARATION     Status: Ended      ET: 00:00:10.156
 Task:  COMPLETION      Status: Started    Object: TRAFODION.HBASE.CUSTOMER_ADDRESS
-Task:  COMPLETION      Status: Ended      ET: 00:00:00.256
+Task:  COMPLETION      Status: Ended      ET: 00:00:00.404
 
 --- 50000 row(s) loaded.
 >>--
@@ -183,7 +183,7 @@ Task:  PREPARATION     Status: Started    Object: TRAFODION.HBASE.CUSTOMER_DEMOG
        Rows Processed: 20000 
 Task:  PREPARATION     Status: Ended      ET: 00:00:11.022
 Task:  COMPLETION      Status: Started    Object: TRAFODION.HBASE.CUSTOMER_DEMOGRAPHICS
-Task:  COMPLETION      Status: Ended      ET: 00:00:00.196
+Task:  COMPLETION      Status: Ended      ET: 00:00:00.279
 
 --- 20000 row(s) loaded.
 >>--
@@ -213,9 +213,9 @@ Task:  CLEANUP         Status: Started    Object: TRAFODION.HBASE.CUSTOMER_DEMOG
 Task:  CLEANUP         Status: Ended      Object: TRAFODION.HBASE.CUSTOMER_DEMOGRAPHICS_SALT
 Task:  PREPARATION     Status: Started    Object: TRAFODION.HBASE.CUSTOMER_DEMOGRAPHICS_SALT
        Rows Processed: 20000 
-Task:  PREPARATION     Status: Ended      ET: 00:00:07.143
+Task:  PREPARATION     Status: Ended      ET: 00:00:08.435
 Task:  COMPLETION      Status: Started    Object: TRAFODION.HBASE.CUSTOMER_DEMOGRAPHICS_SALT
-Task:  COMPLETION      Status: Ended      ET: 00:00:00.177
+Task:  COMPLETION      Status: Ended      ET: 00:00:00.266
 
 --- 20000 row(s) loaded.
 >>--                                                                              
@@ -235,9 +235,9 @@ Task:  CLEANUP         Status: Started    Object: TRAFODION.HBASE.CUSTOMER_SALT
 Task:  CLEANUP         Status: Ended      Object: TRAFODION.HBASE.CUSTOMER_SALT
 Task:  PREPARATION     Status: Started    Object: TRAFODION.HBASE.CUSTOMER_SALT
        Rows Processed: 100000 
-Task:  PREPARATION     Status: Ended      ET: 00:00:07.625
+Task:  PREPARATION     Status: Ended      ET: 00:00:10.885
 Task:  COMPLETION      Status: Started    Object: TRAFODION.HBASE.CUSTOMER_SALT
-Task:  COMPLETION      Status: Ended      ET: 00:00:00.199
+Task:  COMPLETION      Status: Ended      ET: 00:00:00.258
 
 --- 100000 row(s) loaded.
 >>--
@@ -266,9 +266,9 @@ Task:  CLEANUP         Status: Started    Object: TRAFODION.HBASE.STORE_SALES_SA
 Task:  CLEANUP         Status: Ended      Object: TRAFODION.HBASE.STORE_SALES_SALT
 Task:  PREPARATION     Status: Started    Object: TRAFODION.HBASE.STORE_SALES_SALT
        Rows Processed: 160756 
-Task:  PREPARATION     Status: Ended      ET: 00:00:10.636
+Task:  PREPARATION     Status: Ended      ET: 00:00:13.092
 Task:  COMPLETION      Status: Started    Object: TRAFODION.HBASE.STORE_SALES_SALT
-Task:  COMPLETION      Status: Ended      ET: 00:00:00.208
+Task:  COMPLETION      Status: Ended      ET: 00:00:00.843
 
 --- 160756 row(s) loaded.
 >>--
@@ -356,10 +356,10 @@ a
 +>   select * from null_format_src;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.002
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.005
 Task:  EXTRACT         Status: Started
        Rows Processed: 10 
-Task:  EXTRACT         Status: Ended      ET: 00:00:00.238
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.284
 
 --- 10 row(s) unloaded.
 >>select * from hive.hive.null_format_default;
@@ -385,10 +385,10 @@ a
 +>   select * from null_format_src;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.001
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.004
 Task:  EXTRACT         Status: Started
        Rows Processed: 10 
-Task:  EXTRACT         Status: Ended      ET: 00:00:00.369
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.366
 
 --- 10 row(s) unloaded.
 >>select * from hive.hive.null_format_empty;
@@ -414,10 +414,10 @@ a                                                             ?
 +>   select * from null_format_src;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.002
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.005
 Task:  EXTRACT         Status: Started
        Rows Processed: 10 
-Task:  EXTRACT         Status: Ended      ET: 00:00:00.225
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.293
 
 --- 10 row(s) unloaded.
 >>select * from hive.hive.null_format_colon;
@@ -471,12 +471,12 @@ LC   RC   OP   OPERATOR              OPT       DESCRIPTION           CARD
 +>;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.002
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.011
 Task:  EXTRACT         Status: Started
        Rows Processed: 50000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:02.759
+Task:  EXTRACT         Status: Ended      ET: 00:00:03.450
 Task:  MERGE FILES     Status: Started
-Task:  MERGE FILES     Status: Ended      ET: 00:00:00.027
+Task:  MERGE FILES     Status: Ended      ET: 00:00:00.042
 
 --- 50000 row(s) unloaded.
 >>log;
@@ -509,12 +509,12 @@ LC   RC   OP   OPERATOR              OPT       DESCRIPTION           CARD
 +><<+ cardinality 10e10 >>;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.002
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.005
 Task:  EXTRACT         Status: Started
        Rows Processed: 20000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:01.075
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.976
 Task:  MERGE FILES     Status: Started
-Task:  MERGE FILES     Status: Ended      ET: 00:00:00.028
+Task:  MERGE FILES     Status: Ended      ET: 00:00:00.034
 
 --- 20000 row(s) unloaded.
 >>log;
@@ -536,9 +536,9 @@ Task:  EMPTY TARGET    Status: Started
 Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.005
 Task:  EXTRACT         Status: Started
        Rows Processed: 20000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:01.282
+Task:  EXTRACT         Status: Ended      ET: 00:00:01.204
 Task:  MERGE FILES     Status: Started
-Task:  MERGE FILES     Status: Ended      ET: 00:00:00.026
+Task:  MERGE FILES     Status: Ended      ET: 00:00:00.031
 
 --- 20000 row(s) unloaded.
 >>log;
@@ -570,12 +570,12 @@ LC   RC   OP   OPERATOR              OPT       DESCRIPTION           CARD
 +><<+ cardinality 10e10 >>;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.003
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.005
 Task:  EXTRACT         Status: Started
        Rows Processed: 20000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:00.850
+Task:  EXTRACT         Status: Ended      ET: 00:00:01.108
 Task:  MERGE FILES     Status: Started
-Task:  MERGE FILES     Status: Ended      ET: 00:00:00.035
+Task:  MERGE FILES     Status: Ended      ET: 00:00:00.040
 
 --- 20000 row(s) unloaded.
 >>
@@ -593,12 +593,12 @@ regrhadoop.ksh fs -du -s /bulkload/customer_demographics_salt/merged_customer_de
 +><<+ cardinality 10e10 >>;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.006
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.004
 Task:  EXTRACT         Status: Started
        Rows Processed: 20000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:00.673
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.873
 Task:  MERGE FILES     Status: Started
-Task:  MERGE FILES     Status: Ended      ET: 00:00:00.035
+Task:  MERGE FILES     Status: Ended      ET: 00:00:00.039
 
 --- 20000 row(s) unloaded.
 >>
@@ -631,10 +631,10 @@ LC   RC   OP   OPERATOR              OPT       DESCRIPTION           CARD
 +><<+ cardinality 10e10 >>;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.004
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.007
 Task:  EXTRACT         Status: Started
        Rows Processed: 20000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:00.671
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.803
 
 --- 20000 row(s) unloaded.
 >>
@@ -657,9 +657,9 @@ Task:  EMPTY TARGET    Status: Started
 Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.011
 Task:  EXTRACT         Status: Started
        Rows Processed: 20000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:00.683
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.838
 Task:  MERGE FILES     Status: Started
-Task:  MERGE FILES     Status: Ended      ET: 00:00:00.035
+Task:  MERGE FILES     Status: Ended      ET: 00:00:00.046
 
 --- 20000 row(s) unloaded.
 >>
@@ -792,12 +792,12 @@ CD_DEMO_SK   CD_GENDER
 +><<+ cardinality 10e10 >>;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.003
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.004
 Task:  EXTRACT         Status: Started
        Rows Processed: 20000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:00.596
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.837
 Task:  MERGE FILES     Status: Started
-Task:  MERGE FILES     Status: Ended      ET: 00:00:00.030
+Task:  MERGE FILES     Status: Ended      ET: 00:00:00.042
 
 --- 20000 row(s) unloaded.
 >>log;
@@ -832,15 +832,15 @@ regrhadoop.ksh fs -ls /bulkload/customer_demographics_salt/merged* | grep merge
 +><<+ cardinality 10e10 >>;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.005
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.004
 Task:  EXTRACT         Status: Started
        Rows Processed: 20000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:00.622
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.836
 Task:  MERGE FILES     Status: Started
-Task:  MERGE FILES     Status: Ended      ET: 00:00:00.037
+Task:  MERGE FILES     Status: Ended      ET: 00:00:00.040
 
 --- 20000 row(s) unloaded.
->>
+>>sh sleep 10;
 >>select count(*) from hive.hive.unload_customer_demographics;
 
 (EXPR)              
@@ -890,10 +890,10 @@ Task:  EMPTY TARGET    Status: Started
 Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.005
 Task:  EXTRACT         Status: Started
        Rows Processed: 20000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:00.594
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.946
 
 --- 20000 row(s) unloaded.
->>
+>>sh sleep 10;
 >>select count(*) from hive.hive.unload_customer_demographics;
 
 *** WARNING[8597] Statement was automatically retried 1 time(s). Delay before each retry was 0 seconds. See next entry for the error that caused this retry.
@@ -941,13 +941,13 @@ CD_DEMO_SK   CD_GENDER
 +>select * from trafodion.hbase.customer_address ;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.003
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.007
 Task:  EXTRACT         Status: Started
        Rows Processed: 50000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:01.887
+Task:  EXTRACT         Status: Ended      ET: 00:00:02.325
 
 --- 50000 row(s) unloaded.
->>
+>>sh sleep 10;
 >>select count(*) from hive.hive.unload_customer_address;
 
 (EXPR)              
@@ -994,13 +994,13 @@ CA_ADDRESS_SK  CA_ADDRESS_ID
 +>select * from trafodion.hbase.customer_address ;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.004
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.005
 Task:  EXTRACT         Status: Started
        Rows Processed: 50000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:02.001
+Task:  EXTRACT         Status: Ended      ET: 00:00:02.438
 
 --- 50000 row(s) unloaded.
->>
+>>sh sleep 10;
 >>select count(*) from hive.hive.unload_customer_address;
 
 *** WARNING[8597] Statement was automatically retried 1 time(s). Delay before each retry was 0 seconds. See next entry for the error that caused this retry.
@@ -1060,12 +1060,13 @@ CA_ADDRESS_SK  CA_ADDRESS_ID
 +>select * from trafodion.hbase.customer_salt;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.002
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.006
 Task:  EXTRACT         Status: Started
        Rows Processed: 100000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:06.708
+Task:  EXTRACT         Status: Ended      ET: 00:00:07.083
 
 --- 100000 row(s) unloaded.
+>>sh sleep 10;
 >>select count(*) from hive.hive.unload_customer;
 
 (EXPR)              
@@ -1113,13 +1114,13 @@ C_CUSTOMER_SK  C_CUSTOMER_ID
 +>select * from trafodion.hbase.customer_demographics_salt;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.007
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.010
 Task:  EXTRACT         Status: Started
        Rows Processed: 20000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:01.046
+Task:  EXTRACT         Status: Ended      ET: 00:00:01.226
 
 --- 20000 row(s) unloaded.
->>
+>>sh sleep 10;
 >>select count(*) from hive.hive.unload_customer_demographics;
 
 (EXPR)              
@@ -1166,12 +1167,12 @@ CD_DEMO_SK   CD_GENDER
 +>select * from trafodion.hbase.customer_address where ca_address_sk < 100;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.004
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.006
 Task:  EXTRACT         Status: Started
        Rows Processed: 99 
-Task:  EXTRACT         Status: Ended      ET: 00:00:00.195
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.244
 Task:  MERGE FILES     Status: Started
-Task:  MERGE FILES     Status: Ended      ET: 00:00:00.019
+Task:  MERGE FILES     Status: Ended      ET: 00:00:00.024
 
 --- 99 row(s) unloaded.
 >>
@@ -1207,13 +1208,13 @@ regrhadoop.ksh fs -rm /user/hive/exttables/unload_customer_demographics/*
 +>select ss_sold_date_sk,ss_store_sk, sum (ss_quantity) from store_sales_salt group by  ss_sold_date_sk ,ss_store_sk;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.003
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.004
 Task:  EXTRACT         Status: Started
        Rows Processed: 12349 
-Task:  EXTRACT         Status: Ended      ET: 00:00:06.194
+Task:  EXTRACT         Status: Ended      ET: 00:00:07.776
 
 --- 12349 row(s) unloaded.
->>
+>>sh sleep 10;
 >>select  [first 100] * from hive.hive.unload_store_sales_summary order by  ss_sold_date_sk,ss_store_sk;
 
 SS_SOLD_DATE_SK  SS_STORE_SK  SS_QUANTITY
@@ -1329,13 +1330,13 @@ SS_SOLD_DATE_SK  SS_STORE_SK  SS_QUANTITY
 +>select * from trafodion.hbase.customer_salt c join trafodion.hbase.customer_address ca on c.c_current_addr_sk = ca.ca_address_sk ;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.002
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.005
 Task:  EXTRACT         Status: Started
        Rows Processed: 100000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:08.079
+Task:  EXTRACT         Status: Ended      ET: 00:00:08.464
 
 --- 100000 row(s) unloaded.
->>
+>>sh sleep 10;
 >>select count(*) from hive.hive.unload_customer_and_address;
 
 (EXPR)              
@@ -1380,13 +1381,13 @@ C_CUSTOMER_SK  C_CUSTOMER_ID
 +>select * from customer_address where ca_address_sk < 1000 union select * from customer_address where ca_address_sk > 40000  and ca_address_sk < 41000;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.009
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.008
 Task:  EXTRACT         Status: Started
        Rows Processed: 1998 
-Task:  EXTRACT         Status: Ended      ET: 00:00:00.545
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.695
 
 --- 1998 row(s) unloaded.
->>
+>>sh sleep 10;
 >>select count(*) from hive.hive.unload_customer_address;
 
 (EXPR)              
@@ -1494,7 +1495,7 @@ ESP_EXCHANGE ==============================  SEQ_NO 3        ONLY CHILD 2
   use_snapshot_scan ...... TRUE
   full_table_name ........ TRAFODION.HBASE.CUSTOMER_DEMOGRAPHICS_SALT
   snapshot_name .......... TRAFODION.HBASE.CUSTOMER_DEMOGRAPHICS_SALT_SNAP111
-  snapshot_temp_location   /bulkload/20160602095555/
+  snapshot_temp_location   /bulkload/20160706204232/
 grep -i -e 'explain reg' -e snapshot -e full_table_name  -e esp_exchange  LOG018_REGULAR_SCAN_PLAN.TXT | grep -v snapshot_scan_run_id
 >>--no snapshot
 >>explain reg;
@@ -1574,7 +1575,7 @@ grep -i -e 'explain snp' -e snapshot -e full_table_name -e esp_exchange LOG018_S
   use_snapshot_scan ...... TRUE
   full_table_name ........ TRAFODION.HBASE.CUSTOMER_ADDRESS
   snapshot_name .......... TRAFODION.HBASE.CUSTOMER_ADDRESS_SNAP111
-  snapshot_temp_location   /bulkload/20160602095603/
+  snapshot_temp_location   /bulkload/20160706204243/
 grep -i -e 'explain reg' -e snapshot -e full_table_name  -e esp_exchange  LOG018_REGULAR_SCAN_PLAN.TXT | grep -v snapshot_scan_run_id
 >>--no snapshot
 >>explain reg;
@@ -1656,11 +1657,11 @@ grep -i -e 'explain snp' -e snapshot -e full_table_name -e esp_exchange LOG018_S
   use_snapshot_scan ...... TRUE
   full_table_name ........ TRAFODION.HBASE.CUSTOMER_SALT
   snapshot_name .......... TRAFODION.HBASE.CUSTOMER_SALT_SNAP111
-  snapshot_temp_location   /bulkload/20160602095624/
+  snapshot_temp_location   /bulkload/20160706204314/
   use_snapshot_scan ...... TRUE
   full_table_name ........ TRAFODION.HBASE.CUSTOMER_ADDRESS
   snapshot_name .......... TRAFODION.HBASE.CUSTOMER_ADDRESS_SNAP111
-  snapshot_temp_location   /bulkload/20160602095624/
+  snapshot_temp_location   /bulkload/20160706204314/
 grep -i -e 'explain reg' -e snapshot -e full_table_name  -e esp_exchange  LOG018_REGULAR_SCAN_PLAN.TXT | grep -v snapshot_scan_run_id
 >>--no snapshot
 >>explain reg;
@@ -1773,13 +1774,13 @@ LC   RC   OP   OPERATOR              OPT       DESCRIPTION           CARD
 +><<+ cardinality 10e10 >>;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.003
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.005
 Task:  VERIFY SNAPSHO  Status: Started
        Snapshots verified: 1 
-Task:  VERIFY SNAPSHO  Status: Ended      ET: 00:00:00.294
+Task:  VERIFY SNAPSHO  Status: Ended      ET: 00:00:00.425
 Task:  EXTRACT         Status: Started
        Rows Processed: 50000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:02.337
+Task:  EXTRACT         Status: Ended      ET: 00:00:02.515
 
 --- 50000 row(s) unloaded.
 >>
@@ -1851,13 +1852,13 @@ LC   RC   OP   OPERATOR              OPT       DESCRIPTION           CARD
 +>select * from trafodion.hbase.customer_demographics_salt <<+ cardinality 10e10 >>;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.002
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.003
 Task:  VERIFY SNAPSHO  Status: Started
        Snapshots verified: 1 
-Task:  VERIFY SNAPSHO  Status: Ended      ET: 00:00:00.272
+Task:  VERIFY SNAPSHO  Status: Ended      ET: 00:00:00.333
 Task:  EXTRACT         Status: Started
        Rows Processed: 20000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:02.527
+Task:  EXTRACT         Status: Ended      ET: 00:00:02.008
 
 --- 20000 row(s) unloaded.
 >>
@@ -1905,16 +1906,16 @@ CD_DEMO_SK   CD_GENDER
 +>select * from trafodion.hbase.customer_demographics_salt <<+ cardinality 10e10 >>;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.006
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.016
 Task:  CREATE SNAPSHO  Status: Started
        Snapshots created: 1 
-Task:  CREATE SNAPSHO  Status: Ended      ET: 00:00:02.385
+Task:  CREATE SNAPSHO  Status: Ended      ET: 00:00:00.707
 Task:  EXTRACT         Status: Started
        Rows Processed: 20000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:01.247
+Task:  EXTRACT         Status: Ended      ET: 00:00:01.166
 Task:  DELETE SNAPSHO  Status: Started
        Snapshots deleted: 1 
-Task:  DELETE SNAPSHO  Status: Ended      ET: 00:00:00.009
+Task:  DELETE SNAPSHO  Status: Ended      ET: 00:00:00.026
 
 --- 20000 row(s) unloaded.
 >>
@@ -1966,16 +1967,16 @@ CD_DEMO_SK   CD_GENDER
 +>select * from trafodion.hbase.customer_demographics_salt <<+ cardinality 10e10 >>;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.006
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.009
 Task:  CREATE SNAPSHO  Status: Started
        Snapshots created: 1 
-Task:  CREATE SNAPSHO  Status: Ended      ET: 00:00:00.561
+Task:  CREATE SNAPSHO  Status: Ended      ET: 00:00:01.515
 Task:  EXTRACT         Status: Started
        Rows Processed: 20000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:01.201
+Task:  EXTRACT         Status: Ended      ET: 00:00:01.263
 Task:  DELETE SNAPSHO  Status: Started
        Snapshots deleted: 1 
-Task:  DELETE SNAPSHO  Status: Ended      ET: 00:00:00.004
+Task:  DELETE SNAPSHO  Status: Ended      ET: 00:00:00.019
 
 --- 20000 row(s) unloaded.
 >>
@@ -2028,16 +2029,16 @@ CD_DEMO_SK   CD_GENDER
 +>select * from customer_address where ca_address_sk < 1000 union select * from customer_address where ca_address_sk > 40000  and ca_address_sk < 41000;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.004
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.005
 Task:  CREATE SNAPSHO  Status: Started
        Snapshots created: 1 
-Task:  CREATE SNAPSHO  Status: Ended      ET: 00:00:00.958
+Task:  CREATE SNAPSHO  Status: Ended      ET: 00:00:01.233
 Task:  EXTRACT         Status: Started
        Rows Processed: 1998 
-Task:  EXTRACT         Status: Ended      ET: 00:00:00.731
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.847
 Task:  DELETE SNAPSHO  Status: Started
        Snapshots deleted: 1 
-Task:  DELETE SNAPSHO  Status: Ended      ET: 00:00:00.004
+Task:  DELETE SNAPSHO  Status: Ended      ET: 00:00:00.006
 
 --- 1998 row(s) unloaded.
 >>
@@ -2112,19 +2113,19 @@ CA_ADDRESS_SK  CA_ADDRESS_ID
 +>select * from trafodion.hbase.customer_salt c join trafodion.hbase.customer_address ca on c.c_current_addr_sk = ca.ca_address_sk ;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.004
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.048
 Task:  CREATE SNAPSHO  Status: Started
        Snapshots created: 2 
-Task:  CREATE SNAPSHO  Status: Ended      ET: 00:00:02.075
+Task:  CREATE SNAPSHO  Status: Ended      ET: 00:00:02.709
 Task:  EXTRACT         Status: Started
        Rows Processed: 100000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:08.534
+Task:  EXTRACT         Status: Ended      ET: 00:00:09.569
 Task:  DELETE SNAPSHO  Status: Started
        Snapshots deleted: 2 
-Task:  DELETE SNAPSHO  Status: Ended      ET: 00:00:00.007
+Task:  DELETE SNAPSHO  Status: Ended      ET: 00:00:00.010
 
 --- 100000 row(s) unloaded.
->>
+>>sh sleep 10;
 >>select count(*) from hive.hive.unload_customer_and_address;
 
 (EXPR)              
@@ -2192,16 +2193,16 @@ Task:  EMPTY TARGET    Status: Started
 Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.004
 Task:  CREATE SNAPSHO  Status: Started
        Snapshots created: 1 
-Task:  CREATE SNAPSHO  Status: Ended      ET: 00:00:00.415
+Task:  CREATE SNAPSHO  Status: Ended      ET: 00:00:01.410
 Task:  EXTRACT         Status: Started
        Rows Processed: 100000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:01.417
+Task:  EXTRACT         Status: Ended      ET: 00:00:01.589
 Task:  DELETE SNAPSHO  Status: Started
        Snapshots deleted: 1 
-Task:  DELETE SNAPSHO  Status: Ended      ET: 00:00:00.003
+Task:  DELETE SNAPSHO  Status: Ended      ET: 00:00:00.006
 
 --- 100000 row(s) unloaded.
->>
+>>sh sleep 10;
 >>select count(*) from hive.hive.unload_customer_name;
 
 (EXPR)              
@@ -2271,7 +2272,7 @@ unload with delimiter 0 into '/bulkload/test' select * from CUSTOMER_ADDRESS;
 Task: UNLOAD           Status: Started
 Task:  EXTRACT         Status: Started
        Rows Processed: 50000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:01.957
+Task:  EXTRACT         Status: Ended      ET: 00:00:02.253
 
 --- 50000 row(s) unloaded.
 >>--unload  24 -- should give an error
@@ -2336,9 +2337,10 @@ regrhadoop.ksh fs -rm /user/hive/exttables/unload_customer_demographics/*
 Task: UNLOAD           Status: Started
 Task:  EXTRACT         Status: Started
        Rows Processed but NOT Written to Disk: 20000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:00.806
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.840
 
 --- 20000 row(s) unloaded.
+>>sh sleep 10;
 >>select count(*) from hive.hive.unload_customer_demographics;
 
 (EXPR)              

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/9a851e25/core/sql/regress/hive/TEST018
----------------------------------------------------------------------
diff --git a/core/sql/regress/hive/TEST018 b/core/sql/regress/hive/TEST018
index 86758e6..0932da5 100644
--- a/core/sql/regress/hive/TEST018
+++ b/core/sql/regress/hive/TEST018
@@ -446,7 +446,7 @@ MERGE FILE  'merged_customer_demographics' OVERWRITE
 INTO '/user/hive/exttables/unload_customer_demographics'
 select * from trafodion.hbase.customer_demographics_salt 
 <<+ cardinality 10e10 >>;
-
+sh sleep 10;
 select count(*) from hive.hive.unload_customer_demographics;
 select [first 20] * from hive.hive.unload_customer_demographics where cd_demo_sk < 100 order by cd_demo_sk;
 
@@ -458,7 +458,7 @@ WITH PURGEDATA FROM TARGET
 INTO '/user/hive/exttables/unload_customer_demographics'
 select * from trafodion.hbase.customer_demographics_salt 
 <<+ cardinality 10e10 >>;
-
+sh sleep 10;
 select count(*) from hive.hive.unload_customer_demographics;
 select [first 20] * from hive.hive.unload_customer_demographics where cd_demo_sk <100  order by cd_demo_sk;
 
@@ -467,7 +467,7 @@ UNLOAD
 WITH PURGEDATA FROM TARGET
 INTO '/user/hive/exttables/unload_customer_address'
 select * from trafodion.hbase.customer_address ;
-
+sh sleep 10;
 select count(*) from hive.hive.unload_customer_address;
 select [first 20] * from hive.hive.unload_customer_address where ca_address_sk <100 order by ca_address_sk;
 
@@ -477,7 +477,7 @@ UNLOAD
 WITH PURGEDATA FROM TARGET DELIMITER 124  RECORD_SEPARATOR 10
 INTO '/user/hive/exttables/unload_customer_address'
 select * from trafodion.hbase.customer_address ;
-
+sh sleep 10;
 select count(*) from hive.hive.unload_customer_address;
 select [first 20] * from hive.hive.unload_customer_address where ca_address_sk < 100 order by ca_address_sk;
 
@@ -492,6 +492,7 @@ WITH PURGEDATA FROM TARGET
 --COMPRESSION GZIP
 INTO '/user/hive/exttables/unload_customer'
 select * from trafodion.hbase.customer_salt;
+sh sleep 10;
 select count(*) from hive.hive.unload_customer;
 select [first 20] * from hive.hive.unload_customer where c_customer_sk < 100 order by c_customer_sk;
 
@@ -502,7 +503,7 @@ WITH PURGEDATA FROM TARGET
 --COMPRESSION GZIP
 INTO '/user/hive/exttables/unload_customer_demographics'
 select * from trafodion.hbase.customer_demographics_salt;
-
+sh sleep 10;
 select count(*) from hive.hive.unload_customer_demographics;
 select [first 20] * from hive.hive.unload_customer_demographics where cd_demo_sk < 100 order by cd_demo_sk;
 
@@ -539,7 +540,7 @@ WITH
  PURGEDATA FROM TARGET DELIMITER '|' RECORD_SEPARATOR '\n' 
 INTO '/user/hive/exttables/unload_store_sales_summary'
 select ss_sold_date_sk,ss_store_sk, sum (ss_quantity) from store_sales_salt group by  ss_sold_date_sk ,ss_store_sk; 
-
+sh sleep 10;
 select  [first 100] * from hive.hive.unload_store_sales_summary order by  ss_sold_date_sk,ss_store_sk; 
 
 --unload 18
@@ -547,7 +548,7 @@ UNLOAD
 WITH PURGEDATA FROM TARGET
 INTO '/user/hive/exttables/unload_customer_and_address'
 select * from trafodion.hbase.customer_salt c join trafodion.hbase.customer_address ca on c.c_current_addr_sk = ca.ca_address_sk ;
-
+sh sleep 10;
 select count(*) from hive.hive.unload_customer_and_address;
 select [first 20] * from hive.hive.unload_customer_and_address order by ca_address_sk,c_customer_sk;
 
@@ -557,7 +558,7 @@ WITH
  PURGEDATA FROM TARGET 
 INTO '/user/hive/exttables/unload_customer_address'
 select * from customer_address where ca_address_sk < 1000 union select * from customer_address where ca_address_sk > 40000  and ca_address_sk < 41000;
-
+sh sleep 10;
 select count(*) from hive.hive.unload_customer_address;
 select [first 20] * from hive.hive.unload_customer_address order by ca_address_sk;
 select [first 20] * from hive.hive.unload_customer_address order by ca_address_sk desc;
@@ -694,7 +695,7 @@ WITH PURGEDATA FROM TARGET
  NEW SNAPSHOT HAVING  SUFFIX 'SNAP'
 INTO '/user/hive/exttables/unload_customer_and_address'
 select * from trafodion.hbase.customer_salt c join trafodion.hbase.customer_address ca on c.c_current_addr_sk = ca.ca_address_sk ;
-
+sh sleep 10;
 select count(*) from hive.hive.unload_customer_and_address;
 select [first 20] * from hive.hive.unload_customer_and_address order by ca_address_sk,c_customer_sk;
 
@@ -710,7 +711,7 @@ WITH PURGEDATA FROM TARGET
  NEW SNAPSHOT HAVING SUFFIX 'SNAP111' 
 INTO '/user/hive/exttables/unload_customer_name'
 select c_first_name,c_last_name from trafodion.hbase.customer_salt;
-
+sh sleep 10;
 select count(*) from hive.hive.unload_customer_name;
 select [first 20] * from hive.hive.unload_customer_name order by c_first_name,c_last_name;
 
@@ -752,6 +753,7 @@ UNLOAD
 WITH PURGEDATA FROM TARGET
 INTO '/user/hive/exttables/unload_customer_demographics'
 (select * from trafodion.hbase.customer_demographics_salt) ;
+sh sleep 10;
 select count(*) from hive.hive.unload_customer_demographics;
 
 CQD TRAF_UNLOAD_SKIP_WRITING_TO_FILES reset;

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/9a851e25/core/sql/regress/tools/runregr_executor.ksh
----------------------------------------------------------------------
diff --git a/core/sql/regress/tools/runregr_executor.ksh b/core/sql/regress/tools/runregr_executor.ksh
index 07840b2..3411009 100755
--- a/core/sql/regress/tools/runregr_executor.ksh
+++ b/core/sql/regress/tools/runregr_executor.ksh
@@ -237,7 +237,7 @@ skippedfiles=
 
 # sbtestfiles contains the list of tests to be run in seabase mode
 if [ "$seabase" -ne 0 ]; then
-  sbtestfiles="TEST001 TEST002 TEST012 TEST013 TEST014 TEST015 TEST016 TEST020 TEST022 TEST025 TEST050 TEST063 TEST088 TEST101 TEST106 TEST107 TEST122  TEST131 TEST140"
+  sbtestfiles="TEST001 TEST002 TEST012 TEST013 TEST014 TEST015 TEST016 TEST020 TEST022 TEST025 TEST050 TEST063 TEST088 TEST101 TEST106 TEST107 TEST122 TEST130 TEST131 TEST140"
   sbprettyfiles=
   for i in $prettyfiles; do
     for j in $sbtestfiles; do


[2/7] incubator-trafodion git commit: Merge remote branch 'origin/master' into lobglobals_fix

Posted by sa...@apache.org.
Merge remote branch 'origin/master' into lobglobals_fix

Conflicts:
	core/sql/cli/Context.cpp
	core/sql/exp/ExpLOBaccess.cpp


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/5ecd3c60
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/5ecd3c60
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/5ecd3c60

Branch: refs/heads/master
Commit: 5ecd3c60282ffdc114ac4885eab10cf04680482d
Parents: 7975a58 5f77bd2
Author: Sandhya Sundaresan <sa...@apache.org>
Authored: Fri Jul 1 22:02:58 2016 +0000
Committer: Sandhya Sundaresan <sa...@apache.org>
Committed: Fri Jul 1 22:02:58 2016 +0000

----------------------------------------------------------------------
 .rat-excludes                                   |    2 +-
 RAT_README                                      |   16 +-
 README                                          |    4 +-
 .../main/java/org/trafodion/jdbc/t4/Bytes.java  |    5 +
 .../trafodion/jdbc/t4/InterfaceResultSet.java   |   29 +-
 .../trafodion/jdbc/t4/InterfaceStatement.java   |   25 +
 .../trafodion/jdbc/t4/InterfaceUtilities.java   |   11 +-
 .../java/org/trafodion/jdbc/t4/TrafT4Desc.java  |    4 +-
 .../jdbc/t4/TrafT4PreparedStatement.java        |    2 +-
 .../java/org/trafodion/jdbc/t4/Utility.java     |   12 +-
 core/conn/jdbc_type2/Makefile                   |    2 +-
 core/conn/jdbc_type2/native/SQLMXDriver.cpp     |   38 +-
 .../odbc/src/odbc/nsksrvrcore/sqlinterface.cpp  |   96 +-
 .../odbc/src/odbc/nsksrvrcore/srvrothers.cpp    |  137 ++
 .../odbc/odbcclient/unixcli/makefile.lnx        |    2 +-
 core/dbsecurity/auth/src/ldapcheck.cpp          |    2 +
 core/sqf/sqenvcom.sh                            |    1 -
 core/sqf/sql/scripts/krb5check                  |  133 ++
 core/sqf/sql/scripts/krb5functions              |  128 ++
 core/sqf/sql/scripts/krb5service                |  255 +++
 core/sqf/sql/scripts/sqcheck                    |   68 +-
 core/sqf/sql/scripts/sqstart                    |   37 +
 core/sqf/src/seabed/test/t284.h                 |   52 +-
 core/sqf/src/seabed/test/t284cli.cpp            |    5 +
 core/sqf/src/seabed/test/t284cli.java           |   75 +-
 core/sqf/src/seabed/test/t284clicom.h           |   58 +
 core/sqf/src/seabed/test/t284lib.cpp            |   79 +
 core/sqf/src/seabed/test/t284srv.cpp            |  250 +++
 .../transactional/TrxRegionEndpoint.java.tmpl   |   40 +-
 .../hbase/regionserver/transactional/IdTm.java  |   82 +-
 core/sqf/src/seatrans/tm/hbasetmlib2/idtm.cpp   |   85 +-
 .../src/seatrans/tm/hbasetmlib2/idtmclicom.h    |   70 +-
 core/sqf/src/seatrans/tm/hbasetmlib2/idtmjni.h  |   14 +
 .../trafodion/dtm/HBaseAuditControlPoint.java   |    4 +-
 .../java/org/trafodion/dtm/TmAuditTlog.java     |  101 +-
 core/sqf/src/tm/idtmsrv.cpp                     |  350 +++-
 core/sqf/src/tm/idtmsrv.h                       |   52 +-
 core/sql/arkcmp/CmpStatement.cpp                |   42 +-
 core/sql/bin/SqlciErrors.txt                    |   13 +-
 core/sql/cli/Cli.cpp                            |    1 +
 core/sql/cli/CliExpExchange.cpp                 |   29 +-
 core/sql/cli/CliExtern.cpp                      |    1 -
 core/sql/cli/Context.cpp                        |   92 +-
 core/sql/cli/Context.h                          |    1 +
 core/sql/cli/Descriptor.cpp                     |   16 +-
 core/sql/cli/ExSqlComp.cpp                      |   17 +-
 core/sql/cli/SessionDefaults.cpp                |    3 +-
 core/sql/cli/SessionDefaults.h                  |   13 +-
 core/sql/cli/sqlcli.h                           |    7 +
 core/sql/comexe/ComTdb.cpp                      |   59 +-
 core/sql/comexe/ComTdb.h                        |   28 +-
 core/sql/comexe/ComTdbExeUtil.cpp               |  137 +-
 core/sql/comexe/ComTdbExeUtil.h                 |  123 +-
 core/sql/comexe/ComTdbFastTransport.cpp         |    3 +
 core/sql/comexe/ComTdbFastTransport.h           |    8 +-
 core/sql/common/BaseTypes.cpp                   |   85 +-
 core/sql/common/BigNumHelper.cpp                |   27 +-
 core/sql/common/BigNumHelper.h                  |    6 +-
 core/sql/common/CharType.cpp                    |    6 +-
 core/sql/common/CharType.h                      |   10 +-
 core/sql/common/ComSmallDefs.h                  |   16 +-
 core/sql/common/ComSysUtils.h                   |   21 +
 core/sql/common/Int64.cpp                       |   20 +
 core/sql/common/Int64.h                         |   12 +
 core/sql/common/NAType.cpp                      |   93 +-
 core/sql/common/NAType.h                        |    7 +
 core/sql/common/NumericType.cpp                 |  319 +++-
 core/sql/common/NumericType.h                   |  226 +--
 core/sql/common/OperTypeEnum.h                  |    1 +
 core/sql/common/SQLTypeDefs.h                   |    6 +
 core/sql/common/dfs2rec.h                       |    9 +-
 core/sql/executor/ExComTdb.cpp                  |    9 +-
 core/sql/executor/ExExeUtil.h                   |   61 +-
 core/sql/executor/ExExeUtilGet.cpp              |   73 +-
 core/sql/executor/ExExeUtilMisc.cpp             |  102 +-
 core/sql/executor/ExFastTransport.cpp           |   22 +-
 core/sql/executor/ExHbaseAccess.cpp             |   26 +
 core/sql/executor/ExHbaseIUD.cpp                |    6 +-
 core/sql/executor/ExHdfsScan.cpp                |    4 +-
 core/sql/exp/ExpAlignedFormat.h                 |   10 +-
 core/sql/exp/ExpErrorEnums.h                    |    4 +-
 core/sql/exp/ExpHbaseInterface.h                |   16 -
 core/sql/exp/ExpLOBaccess.cpp                   |   80 +-
 core/sql/exp/ExpLOBaccess.h                     |    3 +-
 core/sql/exp/ExpPCodeClauseGen.cpp              |    2 -
 core/sql/exp/ExpPCodeOptsConstProp.cpp          |    2 +-
 core/sql/exp/exp_arith.cpp                      |   99 +-
 core/sql/exp/exp_attrs.cpp                      |    5 +-
 core/sql/exp/exp_bignum.cpp                     |   12 +-
 core/sql/exp/exp_clause_derived.h               |   53 +-
 core/sql/exp/exp_comp.cpp                       |  170 +-
 core/sql/exp/exp_conv.cpp                       | 1597 ++++++++++++++----
 core/sql/exp/exp_fixup.cpp                      |   82 +-
 core/sql/exp/exp_function.cpp                   |  178 +-
 core/sql/exp/exp_math_func.cpp                  |  107 +-
 core/sql/exp/exp_tuple_desc.h                   |    2 +-
 core/sql/generator/GenFastTransport.cpp         |   74 +-
 core/sql/generator/GenPreCode.cpp               |  296 ++--
 core/sql/generator/GenRelExeUtil.cpp            |  112 +-
 core/sql/generator/GenRelScan.cpp               |   59 +-
 core/sql/generator/Generator.cpp                |    6 +-
 core/sql/langman/LmJavaType.cpp                 |   21 +-
 core/sql/langman/LmJavaType.h                   |    1 +
 core/sql/langman/LmResultSetJava.cpp            |   56 +-
 core/sql/langman/LmRoutineCSql.cpp              |   27 +
 core/sql/nskgmake/openssl_client/Makefile       |   80 -
 core/sql/optimizer/BindRelExpr.cpp              |  313 ++--
 core/sql/optimizer/BindWA.cpp                   |    3 +-
 core/sql/optimizer/BindWA.h                     |   38 +-
 core/sql/optimizer/EncodedValue.cpp             |   16 +-
 core/sql/optimizer/ItemExpr.cpp                 |   33 +-
 core/sql/optimizer/ItemFunc.h                   |   64 +-
 core/sql/optimizer/NAColumn.cpp                 |   82 +-
 core/sql/optimizer/NAColumn.h                   |    3 +
 core/sql/optimizer/NAFileSet.h                  |    2 +
 core/sql/optimizer/NATable.cpp                  |  267 ++-
 core/sql/optimizer/NATable.h                    |   25 +-
 core/sql/optimizer/NormRelExpr.cpp              |    4 +-
 core/sql/optimizer/OptPhysRelExpr.cpp           |   31 +-
 core/sql/optimizer/OptRange.cpp                 |    2 -
 core/sql/optimizer/RelExeUtil.cpp               |  179 +-
 core/sql/optimizer/RelExeUtil.h                 |   94 +-
 core/sql/optimizer/RelExpr.cpp                  |    2 +-
 core/sql/optimizer/RelUpdate.h                  |    5 +
 core/sql/optimizer/ScanOptimizer.cpp            |    6 +
 core/sql/optimizer/SynthType.cpp                |   11 +-
 core/sql/optimizer/ValueDesc.cpp                |   91 +-
 core/sql/parser/ElemDDLLike.cpp                 |    4 +-
 core/sql/parser/ElemDDLLikeCreateTable.h        |    6 +-
 core/sql/parser/ElemDDLLikeOptions.cpp          |   25 +
 core/sql/parser/ElemDDLLikeOptions.h            |   34 +
 core/sql/parser/ElemDDLNode.cpp                 |   32 +
 core/sql/parser/ElemDDLNode.h                   |    2 +
 core/sql/parser/ElemDDLSaltOptions.h            |    2 +
 core/sql/parser/ParDDLLikeOpts.cpp              |   45 +
 core/sql/parser/ParDDLLikeOptsCreateTable.h     |    8 +
 core/sql/parser/ParKeyWords.cpp                 |    3 -
 core/sql/parser/SqlParserAux.cpp                |   20 +-
 core/sql/parser/StmtDDLAlterLibrary.h           |   14 +
 core/sql/parser/StmtDDLCreate.cpp               |   44 +-
 core/sql/parser/sqlparser.y                     |  182 +-
 core/sql/regress/charsets/EXPECTED315           |    4 +-
 core/sql/regress/compGeneral/EXPECTED015.SB     |  469 ++---
 core/sql/regress/compGeneral/EXPECTED042        |   32 +-
 core/sql/regress/core/EXPECTED116               |  125 +-
 core/sql/regress/core/TEST116                   |   37 +-
 core/sql/regress/executor/EXPECTED022.SB        |  246 ++-
 core/sql/regress/executor/EXPECTED063           |  166 +-
 core/sql/regress/executor/EXPECTED140           |   60 +-
 core/sql/regress/executor/TEST022               |   54 +-
 core/sql/regress/hive/EXPECTED003               |   28 +-
 core/sql/regress/hive/EXPECTED005               |  301 +++-
 core/sql/regress/hive/EXPECTED009               | 1139 +++++++++++--
 core/sql/regress/hive/EXPECTED018               |  184 +-
 core/sql/regress/hive/FILTER009                 |   49 +
 core/sql/regress/hive/TEST005                   |  103 +-
 core/sql/regress/hive/TEST005_a.hive.sql        |   15 +-
 core/sql/regress/hive/TEST009                   |   93 +-
 core/sql/regress/hive/TEST020                   |    2 +-
 core/sql/regress/hive/tbl_bad.data              |    2 +-
 core/sql/regress/hive/tbl_type.data             |    2 +-
 core/sql/regress/privs1/EXPECTED133             |  Bin 26383 -> 26390 bytes
 core/sql/regress/privs1/TEST133                 |    2 +-
 core/sql/regress/privs2/EXPECTED129             |   36 +-
 core/sql/regress/qat/eqatdml12                  |   98 +-
 core/sql/regress/qat/eqatdml13                  |   98 +-
 core/sql/regress/seabase/EXPECTED003            | 1414 ++++++++++++++++
 core/sql/regress/seabase/EXPECTED011            |   16 +-
 core/sql/regress/seabase/EXPECTED020            |    8 +-
 core/sql/regress/seabase/EXPECTED031            |  237 +++
 core/sql/regress/seabase/EXPECTED040            |  275 +++
 core/sql/regress/seabase/TEST003                |  237 +++
 core/sql/regress/seabase/TEST011                |    2 +-
 core/sql/regress/seabase/TEST031                |   53 +
 core/sql/regress/seabase/TEST040                |  115 ++
 core/sql/regress/tools/runallsb                 |    2 +-
 core/sql/regress/udr/EXPECTED001                |   22 +-
 core/sql/regress/udr/EXPECTED100.SB             |   53 +-
 core/sql/regress/udr/TEST001                    |    5 +
 core/sql/regress/udr/TEST100                    |   13 +
 core/sql/regress/udr/t100.java                  |    4 +
 core/sql/sqlcat/desc.h                          |    3 +-
 core/sql/sqlci/Formatter.cpp                    |   19 +-
 core/sql/sqlci/Param.cpp                        |    5 +-
 core/sql/sqlci/SqlciEnv.cpp                     |   29 +-
 core/sql/sqlci/SqlciEnv.h                       |    2 +-
 core/sql/sqlci/sqlci_lex.ll                     |    1 +
 core/sql/sqlci/sqlci_yacc.y                     |    2 +
 core/sql/sqlcomp/CmpDDLCatErrorCodes.h          |    2 +-
 core/sql/sqlcomp/CmpDescribe.cpp                |  300 +++-
 core/sql/sqlcomp/CmpSeabaseDDL.h                |  139 +-
 core/sql/sqlcomp/CmpSeabaseDDLauth.cpp          |  108 +-
 core/sql/sqlcomp/CmpSeabaseDDLcommon.cpp        |  233 ++-
 core/sql/sqlcomp/CmpSeabaseDDLindex.cpp         |   89 +-
 core/sql/sqlcomp/CmpSeabaseDDLmd.h              |    8 +
 core/sql/sqlcomp/CmpSeabaseDDLroutine.cpp       |  137 +-
 core/sql/sqlcomp/CmpSeabaseDDLtable.cpp         |  174 +-
 core/sql/sqlcomp/DefaultConstants.h             |   57 +-
 core/sql/sqlcomp/DefaultValidator.cpp           |   15 +
 core/sql/sqlcomp/NADefaults.h                   |   10 +-
 core/sql/sqlcomp/QCache.cpp                     |    4 +-
 core/sql/sqlcomp/nadefaults.cpp                 |  236 ++-
 core/sql/sqludr/sqludr.cpp                      |    6 +
 .../java/org/trafodion/sql/HBaseClient.java     |   17 +
 .../java/org/trafodion/sql/HBulkLoadClient.java |    3 +-
 .../java/org/trafodion/sql/udr/ColumnInfo.java  |    6 +
 core/sql/ustat/hs_cli.cpp                       |   51 +-
 core/sql/ustat/hs_faststats.cpp                 |   15 +-
 core/sql/ustat/hs_globals.cpp                   |  266 +--
 core/sql/ustat/hs_la.cpp                        |   25 +-
 core/sql/ustat/hs_la.h                          |   23 +-
 .../src/asciidoc/_chapters/parser_msgs.adoc     |   13 +
 .../src/asciidoc/_chapters/sqlstate.adoc        |    1 +
 .../src/asciidoc/_chapters/about.adoc           |    6 +-
 .../src/asciidoc/_chapters/activate.adoc        |    1 +
 .../src/asciidoc/_chapters/enable_security.adoc |  251 +--
 .../src/asciidoc/_chapters/introduction.adoc    |  142 +-
 .../src/asciidoc/_chapters/prepare.adoc         |   41 +-
 .../src/asciidoc/_chapters/requirements.adoc    |   34 +-
 .../src/asciidoc/_chapters/script_install.adoc  |   13 +-
 .../src/asciidoc/_chapters/script_upgrade.adoc  |   14 +-
 docs/shared/revisions.txt                       |    3 +-
 .../src/asciidoc/_chapters/sql_statements.adoc  |   51 +-
 docs/src/site/markdown/documentation.md         |   10 +-
 docs/src/site/markdown/download.md              |  161 +-
 docs/src/site/markdown/release-notes-2-0-0.md   |  152 ++
 docs/src/site/markdown/release-notes-2-0-1.md   |   40 +
 docs/src/site/markdown/release-notes.md         |    4 +-
 install/installer/traf_add_kerberos             |  204 +++
 install/installer/traf_add_ldap                 |   98 ++
 install/installer/traf_cloudera_mods            |   16 +
 install/installer/traf_config_check             |    2 +-
 install/installer/traf_config_setup             |  159 --
 install/installer/traf_hortonworks_mods         |   32 +-
 install/installer/traf_secure                   |   60 +
 install/installer/traf_secure_setup             |  342 ++++
 install/installer/traf_sqgen                    |   37 +-
 install/installer/trafodion_config_default      |   36 +-
 install/installer/trafodion_install             |   96 +-
 install/installer/trafodion_secure_install      |  129 ++
 install/installer/trafodion_uninstaller         |   20 +
 licenses/lic-clients-bin                        |  136 +-
 licenses/lic-server-bin                         |  560 +-----
 licenses/lic-server-src                         |    3 +
 win-odbc64/odbcclient/drvr35/cconnect.cpp       |    9 +-
 245 files changed, 14431 insertions(+), 5163 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/5ecd3c60/core/sql/cli/Cli.cpp
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/5ecd3c60/core/sql/cli/CliExtern.cpp
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/5ecd3c60/core/sql/cli/Context.cpp
----------------------------------------------------------------------
diff --cc core/sql/cli/Context.cpp
index 5dfb6b5,207f51f..3881fde
--- a/core/sql/cli/Context.cpp
+++ b/core/sql/cli/Context.cpp
@@@ -59,7 -59,8 +59,10 @@@
  #include "exp_clause_derived.h"
  #include "ComUser.h"
  #include "CmpSeabaseDDLauth.h"
++
 +#include "hdfs.h"
+ #include "StmtCompilationMode.h"
+ 
  #include "ExCextdecs.h"
  
  #include "ComMemoryDiags.h"             // ComMemoryDiags::DumpMemoryInfo()

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/5ecd3c60/core/sql/cli/Context.h
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/5ecd3c60/core/sql/executor/ExExeUtil.h
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/5ecd3c60/core/sql/executor/ExExeUtilGet.cpp
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/5ecd3c60/core/sql/executor/ExExeUtilMisc.cpp
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/5ecd3c60/core/sql/executor/ExFastTransport.cpp
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/5ecd3c60/core/sql/executor/ExHbaseIUD.cpp
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/5ecd3c60/core/sql/executor/ExHdfsScan.cpp
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/5ecd3c60/core/sql/exp/ExpLOBaccess.cpp
----------------------------------------------------------------------
diff --cc core/sql/exp/ExpLOBaccess.cpp
index 2c69703,9446327..b3b7f23
--- a/core/sql/exp/ExpLOBaccess.cpp
+++ b/core/sql/exp/ExpLOBaccess.cpp
@@@ -2453,9 -2501,11 +2483,9 @@@ Ex_Lob_Error ExLobsOper 
        lobPtr->initStats(); // because file may remain open across cursors
        break;
  
--    case Lob_Empty_Directory:
-      
 -      lobPtr->initialize(fileName, EX_LOB_RW,
 -			 dir, storage, hdfsServer, hdfsPort, dir, bufferSize, 
 -                         replication, blockSize);
 -      err = lobPtr->emptyDirectory(dir, lobGlobals);
++    case Lob_Empty_Directory:    
 +      err = lobPtr->emptyDirectory();
++
        break;
  
      case Lob_Data_Mod_Check:

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/5ecd3c60/core/sql/exp/ExpLOBaccess.h
----------------------------------------------------------------------
diff --cc core/sql/exp/ExpLOBaccess.h
index d873c91,176e400..c8be6a9
--- a/core/sql/exp/ExpLOBaccess.h
+++ b/core/sql/exp/ExpLOBaccess.h
@@@ -493,11 -494,11 +493,12 @@@ class ExLo
         Int64  modTS,
         Lng32  numOfPartLevels);
  
-   Ex_Lob_Error emptyDirectory();
+   Ex_Lob_Error emptyDirectory(char* dirPath, ExLobGlobals* lobGlobals);
+ 
    ExLobStats *getStats() { return &stats_; }
    NAHeap *getLobGlobalHeap() { return lobGlobalHeap_;}
 -  ExLobRequest *getRequest() { return &request_; }
 +
 +  //    ExLobRequest *getRequest() { return &request_; }
    
    //The next 2 functions are not active at this point. They serve as an example
    //on how to send requests across to the mxlobsrvr process from the master 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/5ecd3c60/core/sql/generator/GenPreCode.cpp
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/5ecd3c60/core/sql/src/main/java/org/trafodion/sql/HBulkLoadClient.java
----------------------------------------------------------------------


[3/7] incubator-trafodion git commit: Regression fix and fixes for emptyDirectory().

Posted by sa...@apache.org.
Regression fix and fixes for emptyDirectory().


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/ac1b131c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/ac1b131c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/ac1b131c

Branch: refs/heads/master
Commit: ac1b131c86105a0e95c7061adba58d4c36510af6
Parents: 5ecd3c6
Author: Sandhya Sundaresan <sa...@apache.org>
Authored: Mon Jul 4 00:44:36 2016 +0000
Committer: Sandhya Sundaresan <sa...@apache.org>
Committed: Mon Jul 4 00:44:36 2016 +0000

----------------------------------------------------------------------
 core/sql/executor/ExExeUtilMisc.cpp |  4 ++--
 core/sql/exp/ExpLOBaccess.cpp       | 14 ++------------
 core/sql/regress/hive/EXPECTED005   | 16 +++++++++++-----
 core/sql/regress/hive/TEST005       |  2 +-
 4 files changed, 16 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/ac1b131c/core/sql/executor/ExExeUtilMisc.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExExeUtilMisc.cpp b/core/sql/executor/ExExeUtilMisc.cpp
index db760f9..300fd95 100644
--- a/core/sql/executor/ExExeUtilMisc.cpp
+++ b/core/sql/executor/ExExeUtilMisc.cpp
@@ -2261,8 +2261,8 @@ Int32 ExExeUtilHiveTruncateTcb::fixup()
   ExpLOBinterfaceInit
     (lobGlob_, getGlobals()->getDefaultHeap(),
      getGlobals()->castToExExeStmtGlobals()->getContext(),TRUE, 
-     fdTdb().getHiveHdfsHost(),
-     fdTdb().getHiveHdfsPort());
+     htTdb().getHdfsHost(),
+     htTdb().getHdfsPort());
 
   return 0;
 }

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/ac1b131c/core/sql/exp/ExpLOBaccess.cpp
----------------------------------------------------------------------
diff --git a/core/sql/exp/ExpLOBaccess.cpp b/core/sql/exp/ExpLOBaccess.cpp
index b3b7f23..67ea3be 100644
--- a/core/sql/exp/ExpLOBaccess.cpp
+++ b/core/sql/exp/ExpLOBaccess.cpp
@@ -456,17 +456,7 @@ Ex_Lob_Error ExLob::emptyDirectory(char *dirPath,
   hdfsFileInfo *fileInfos = hdfsGetPathInfo(fs_, dirPath);
   if (fileInfos == NULL)
     {
-      hdfsDisconnect(fs_);
-      fs_ = hdfsConnect(hdfsServer_, hdfsPort_);
-      if (fs_ == NULL)
-        return LOB_HDFS_CONNECT_ERROR;
-      
-      fileInfos = hdfsGetPathInfo(fs_, lobDataFile_);
-      if (fileInfos == NULL)
-        return LOB_DIR_NAME_ERROR;
-      
-      if (lobGlobals)
-        lobGlobals->setHdfsFs(fs_);
+      return LOB_DIR_NAME_ERROR;
     }
   
   Lng32 currNumFilesInDir = 0;
@@ -2484,7 +2474,7 @@ Ex_Lob_Error ExLobsOper (
       break;
 
     case Lob_Empty_Directory:    
-      err = lobPtr->emptyDirectory();
+      err = lobPtr->emptyDirectory(lobStorageLocation, lobGlobals);
 
       break;
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/ac1b131c/core/sql/regress/hive/EXPECTED005
----------------------------------------------------------------------
diff --git a/core/sql/regress/hive/EXPECTED005 b/core/sql/regress/hive/EXPECTED005
index e2d51ae..7ffc08a 100644
--- a/core/sql/regress/hive/EXPECTED005
+++ b/core/sql/regress/hive/EXPECTED005
@@ -712,14 +712,16 @@ A            B
 --- 1 row(s) selected.
 >>
 >>-- truncate of hive data
->>cqd query_cache '0';
-
---- SQL operation complete.
+>>--cqd query_cache '0';
 >>truncate hive.hive.thive;
 
 --- SQL operation complete.
 >>select * from hive.hive.thive;
 
+*** WARNING[8597] Statement was automatically retried 1 time(s). Delay before each retry was 0 seconds. See next entry for the error that caused this retry. 
+
+*** WARNING[8436] Mismatch detected between compiletime and runtime hive table definitions.
+
 --- 0 row(s) selected.
 >>insert into hive.hive.thive values (10, 20);
 
@@ -740,6 +742,10 @@ A            B
 --- SQL operation complete.
 >>select * from hive.hive.thive;
 
+*** WARNING[8597] Statement was automatically retried 1 time(s). Delay before each retry was 0 seconds. See next entry for the error that caused this retry. 
+
+*** WARNING[8436] Mismatch detected between compiletime and runtime hive table definitions.
+
 --- 0 row(s) selected.
 >>
 >>-- truncate of partitioned hive table
@@ -828,7 +834,7 @@ t005part.a	t005part.b	t005part.c
 >>invoke hive.hive.thive_insert_smallint;
 
 -- Definition of hive table THIVE_INSERT_SMALLINT
--- Definition current  Wed Jun 22 18:14:29 2016
+-- Definition current  Sat Jul  2 07:06:59 2016
 
   (
     A                                SMALLINT
@@ -933,7 +939,7 @@ A
 >>invoke hive.hive.thive_insert_varchar;
 
 -- Definition of hive table THIVE_INSERT_VARCHAR
--- Definition current  Wed Jun 22 18:14:36 2016
+-- Definition current  Sat Jul  2 07:07:07 2016
 
   (
     A                                VARCHAR(1 CHAR) CHARACTER SET UTF8 COLLATE

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/ac1b131c/core/sql/regress/hive/TEST005
----------------------------------------------------------------------
diff --git a/core/sql/regress/hive/TEST005 b/core/sql/regress/hive/TEST005
index cf1cd5c..8a4c8b1 100644
--- a/core/sql/regress/hive/TEST005
+++ b/core/sql/regress/hive/TEST005
@@ -314,7 +314,7 @@ select a from hive.hive.thive;
 select * from hive.hive.thive;
 
 -- truncate of hive data
-cqd query_cache '0';
+--cqd query_cache '0';
 truncate hive.hive.thive;
 select * from hive.hive.thive;
 insert into hive.hive.thive values (10, 20);