diff --git a/core/sql/cli/Cli.cpp b/core/sql/cli/Cli.cpp
index b4f16d3..1c7fec2 100644
--- a/core/sql/cli/Cli.cpp
+++ b/core/sql/cli/Cli.cpp
@@ -6961,14 +6961,15 @@
 Lng32 SQLCLI_SwitchContext(
      /*IN*/ CliGlobals * cliGlobals,
      /*IN*/           SQLCTX_HANDLE   context_handle,
-     /*OUT OPTIONAL*/ SQLCTX_HANDLE * prev_context_handle)
+     /*OUT OPTIONAL*/ SQLCTX_HANDLE * prev_context_handle,
+     /*IN */    bool allowSwitchBackToDefault )
 {
   Lng32 retcode = SUCCESS;
 
   ContextCli   & currContext = *(cliGlobals->currContext());
   ComDiagsArea & diags       = currContext.diags();
 
-  if (context_handle == cliGlobals->getDefaultContext()->getContextHandle())
+  if (!allowSwitchBackToDefault && (context_handle == cliGlobals->getDefaultContext()->getContextHandle()))
   {
      diags << DgSqlCode(-CLI_DEFAULT_CONTEXT_NOT_ALLOWED);
      return SQLCLI_ReturnCode(&currContext,-CLI_DEFAULT_CONTEXT_NOT_ALLOWED);
@@ -8371,6 +8372,10 @@
   short schNameLen = 0;
   char schName[512];
   char logBuf[4096];
+  Int64 inputValues[5];
+  Lng32 inputValuesLen = 0;
+  Int64 rowsAffected = 0;
+
   lobDebugInfo("In LobCliInterface",0,__LINE__,lobTrace);
   if (inLobHandle)
     {
@@ -8405,7 +8410,7 @@
   lobDebugInfo(logBuf,0,__LINE__,lobTrace);
 
   char * query = new(currContext.exHeap()) char[4096];
-
+  char stmtName[200];
   if (outLobHandleLen)
     *outLobHandleLen = 0;
 
@@ -8444,10 +8449,9 @@
       {
 	strcpy(query, "set transaction autocommit on;");
 	cliRC = cliInterface->executeImmediate(query);
-
-	if (cliRC < 0)
-	    goto error_return;
-
+        if (cliRC < 0)
+          goto error_return;
+        
 	cliRC = 0;
       }
       break;
@@ -8554,17 +8558,21 @@
     case LOB_CLI_INSERT:
       {
 	// insert into lob descriptor handle table
-	str_sprintf(query, "select syskey from (insert into table(ghost table %s) values (%ld, 1, %ld)) x",
-		    lobDescHandleName, descPartnKey, (dataLen ? *dataLen : 0));
+        str_sprintf(query, "select syskey from (insert into table(ghost table %s) values (%ld, 1, %ld)) x",
+                    lobDescHandleName, descPartnKey, (dataLen ? *dataLen : 0));
+                
+		   
         lobDebugInfo(query,0,__LINE__,lobTrace);
 	// set parserflags to allow ghost table
 	currContext.setSqlParserFlags(0x1);
 	
-	Int64 descSyskey = 0;
+        Int64 descSyskey = 0;
 	Lng32 len = 0;
-	cliRC = cliInterface->executeImmediate(query,
+     
+        cliRC = cliInterface->executeImmediate(query,
 					       (char*)&descSyskey, &len, FALSE);
-
+        if (cliRC < 0)
+          goto error_return;
 	currContext.resetSqlParserFlags(0x1);
 
 	if (cliRC < 0)
@@ -9163,8 +9171,9 @@
       tempCliRC = cliInterface->executeImmediate(query);
       if (tempCliRC < 0)
 	cliRC = tempCliRC;
+    
     }
-
+ 
   NADELETEBASIC(query, currContext.exHeap());
 
   if (cliRC < 0)
diff --git a/core/sql/cli/Cli.h b/core/sql/cli/Cli.h
index c5aa690..52f90d5 100644
--- a/core/sql/cli/Cli.h
+++ b/core/sql/cli/Cli.h
@@ -607,7 +607,8 @@
 
    Lng32 SQLCLI_SwitchContext(/*IN*/           CliGlobals    * cliGlobals,
                              /*IN*/           SQLCTX_HANDLE   ctxt_handle,
-                             /*OUT OPTIONAL*/ SQLCTX_HANDLE * prev_ctxt_handle);
+                              /*OUT OPTIONAL*/ SQLCTX_HANDLE * prev_ctxt_handle,
+                              /*IN */ bool allowSwitchBackToDefault);
 
    Lng32 SQLCLI_Xact(/*IN*/                 CliGlobals * cliGlobals,
                     /*IN* (SQLTRANS_COMMAND) */  Lng32   command,
diff --git a/core/sql/cli/CliExtern.cpp b/core/sql/cli/CliExtern.cpp
index 7091d14..e504a07 100644
--- a/core/sql/cli/CliExtern.cpp
+++ b/core/sql/cli/CliExtern.cpp
@@ -5380,32 +5380,11 @@
 
 
 Lng32 SQL_EXEC_SwitchContext(/*IN*/           SQLCTX_HANDLE   ctxt_handle,
-                            /*OUT OPTIONAL*/ SQLCTX_HANDLE * prev_ctxt_handle)
-{
-   Lng32 retcode;
-
-   CLI_NONPRIV_PROLOGUE(retcode);
-
-   try
-   {
-      retcode =
-      SQLCLI_SwitchContext(GetCliGlobals(),
-			   ctxt_handle,
-			   prev_ctxt_handle);
-   }
-   catch(...)
-   {
-     retcode = -CLI_INTERNAL_ERROR;
-#if defined(_THROW_EXCEPTIONS)
-     if (cliWillThrow())
-       {
-         throw;
-       }
-#endif
-   }
-
-   RecordError(NULL, retcode);
-   return retcode;
+                             /*OUT OPTIONAL*/ SQLCTX_HANDLE * prev_ctxt_handle
+                             )
+{  
+  return  SQL_EXEC_SwitchContext_Internal(ctxt_handle,
+                                          prev_ctxt_handle, FALSE);
 }
 Lng32 SQL_EXEC_SWITCHCONTEXT(
 		/*IN*/ SQLCTX_HANDLE context_handle,
@@ -5742,6 +5721,36 @@
    return retcode;
 }
 
+Int32 SQL_EXEC_SwitchContext_Internal(/*IN*/ SQLCTX_HANDLE context_handle,
+                                /*OUT OPTIONAL*/ SQLCTX_HANDLE * prev_context_handle,
+                                /*IN*/ Int32 allowSwitchBackToDefault)
+{
+  Lng32 retcode;
+
+   CLI_NONPRIV_PROLOGUE(retcode);
+
+   try
+   {
+      retcode =
+      SQLCLI_SwitchContext(GetCliGlobals(),
+			   context_handle,
+			   prev_context_handle, allowSwitchBackToDefault);
+   }
+   catch(...)
+   {
+     retcode = -CLI_INTERNAL_ERROR;
+#if defined(_THROW_EXCEPTIONS)
+     if (cliWillThrow())
+       {
+         throw;
+       }
+#endif
+   }
+
+   RecordError(NULL, retcode);
+   return retcode;
+}
+
 Lng32 SQL_EXEC_AssignParserFlagsForExSqlComp_Internal(ULng32 flagbits)
 {
    Lng32 retcode;
diff --git a/core/sql/cli/Globals.cpp b/core/sql/cli/Globals.cpp
index 551fe3c..a3e9a75 100644
--- a/core/sql/cli/Globals.cpp
+++ b/core/sql/cli/Globals.cpp
@@ -619,6 +619,9 @@
         tsCurrentContextMap != NULL && 
            newContext == tsCurrentContextMap->context_)
      return 0;
+  if (newContext == defaultContext_)
+    if (tsCurrentContextMap)
+      tsCurrentContextMap->context_ = NULL;
   retcode = currContext()->getTransaction()->suspendTransaction();
   if (retcode != 0)
      return retcode;
diff --git a/core/sql/cli/SQLCLIdev.h b/core/sql/cli/SQLCLIdev.h
index 59646be..e7dee07 100644
--- a/core/sql/cli/SQLCLIdev.h
+++ b/core/sql/cli/SQLCLIdev.h
@@ -96,7 +96,12 @@
                                    // level.
 
 };
-
+//This internal call allows a caller to switch back to the default context.
+//In general this is not allow. But it's currently used in one place in 
+//UdrServer alone
+Int32 SQL_EXEC_SwitchContext_Internal(/*IN*/ Int32 context_handle,
+                                /*OUT OPTIONAL*/ Int32 *prev_context_handle,
+                                /*IN*/ Int32 allowSwitchBackToDefault);
 enum SQLATTRHOLDABLE_INTERNAL_TYPE
 {
   SQLCLIDEV_NONHOLDABLE = SQL_NONHOLDABLE,
diff --git a/core/sql/cli/sqlcli.h b/core/sql/cli/sqlcli.h
index 2bed109..9288493 100644
--- a/core/sql/cli/sqlcli.h
+++ b/core/sql/cli/sqlcli.h
@@ -1907,7 +1907,7 @@
 Int32 SQL_EXEC_SwitchContext(
 		/*IN*/ SQLCTX_HANDLE context_handle,
 		/*OUT OPTIONAL*/ SQLCTX_HANDLE * prev_context_handle);
-
+               
 Int32 SQL_EXEC_SWITCHCONTEXT(
 		/*IN*/ SQLCTX_HANDLE context_handle,
 		/*OUT OPTIONAL*/ SQLCTX_HANDLE * prev_context_handle);
diff --git a/core/sql/executor/HdfsClient_JNI.cpp b/core/sql/executor/HdfsClient_JNI.cpp
index 51bc30e..597e661 100644
--- a/core/sql/executor/HdfsClient_JNI.cpp
+++ b/core/sql/executor/HdfsClient_JNI.cpp
@@ -461,7 +461,7 @@
     JavaMethods_[JM_HDFS_WRITE      ].jm_name      = "hdfsWrite";
     JavaMethods_[JM_HDFS_WRITE      ].jm_signature = "([B)I";
     JavaMethods_[JM_HDFS_WRITE_IMMEDIATE].jm_name      = "hdfsWriteImmediate";
-    JavaMethods_[JM_HDFS_WRITE_IMMEDIATE].jm_signature = "([B)J";
+    JavaMethods_[JM_HDFS_WRITE_IMMEDIATE].jm_signature = "([BZ)J";
     JavaMethods_[JM_HDFS_READ       ].jm_name      = "hdfsRead";
     JavaMethods_[JM_HDFS_READ       ].jm_signature = "(JLjava/nio/ByteBuffer;)I";
     JavaMethods_[JM_HDFS_CLOSE      ].jm_name      = "hdfsClose";
@@ -692,7 +692,7 @@
   return bytesWritten; 
 }
 
-Int64 HdfsClient::hdfsWriteImmediate(const char* data, Int64 len, HDFS_Client_RetCode &hdfsClientRetcode, int maxChunkSize)
+Int64 HdfsClient::hdfsWriteImmediate(const char* data, Int64 len, HDFS_Client_RetCode &hdfsClientRetcode, int maxChunkSize, NABoolean doRetry)
 {
   QRLogger::log(CAT_SQL_HDFS, LL_DEBUG, "HdfsClient::hdfsWriteImmediate(%ld) called.", len);
 
@@ -706,6 +706,7 @@
   Int64 offset = 0;
   jlong writeOffset = -1;
   jlong chunkWriteOffset;
+  jboolean j_doRetry = doRetry;
   do 
   {
      if ((chunkLen > 0) && (lenRemain > chunkLen))
@@ -727,7 +728,7 @@
 
      tsRecentJMFromJNI = JavaMethods_[JM_HDFS_WRITE_IMMEDIATE].jm_full_name;
      // Java method returns the cumulative bytes written
-     chunkWriteOffset = jenv_->CallIntMethod(javaObj_, JavaMethods_[JM_HDFS_WRITE_IMMEDIATE].methodID, jbArray);
+     chunkWriteOffset = jenv_->CallIntMethod(javaObj_, JavaMethods_[JM_HDFS_WRITE_IMMEDIATE].methodID, jbArray,j_doRetry);
      if (writeOffset == -1)
         writeOffset = chunkWriteOffset;
 
diff --git a/core/sql/executor/HdfsClient_JNI.h b/core/sql/executor/HdfsClient_JNI.h
index 0791b25..f643937 100644
--- a/core/sql/executor/HdfsClient_JNI.h
+++ b/core/sql/executor/HdfsClient_JNI.h
@@ -190,7 +190,7 @@
   HDFS_Client_RetCode    hdfsOpen(const char* path, NABoolean compress);
   Int64                  hdfsSize(HDFS_Client_RetCode &hdfsClientRetcode);
   Int32                  hdfsWrite(const char* data, Int64 size, HDFS_Client_RetCode &hdfsClientRetcode, int maxChunkSize = 0);
-  Int64                  hdfsWriteImmediate(const char* data, Int64 size, HDFS_Client_RetCode &hdfsClientRetcode, int maxChunkSize = 0);
+  Int64                  hdfsWriteImmediate(const char* data, Int64 size, HDFS_Client_RetCode &hdfsClientRetcode, int maxChunkSize = 0, NABoolean doRetry = FALSE);
   Int32                  hdfsRead(Int64 offset, const char* data, Int64 size, HDFS_Client_RetCode &hdfsClientRetcode);
   HDFS_Client_RetCode    hdfsClose();
   HDFS_Client_RetCode    setHdfsFileInfo(JNIEnv *jenv, jint numFiles, jint fileNo, jboolean isDir, 
diff --git a/core/sql/exp/ExpLOB.cpp b/core/sql/exp/ExpLOB.cpp
index 84a8512..3aba911 100644
--- a/core/sql/exp/ExpLOB.cpp
+++ b/core/sql/exp/ExpLOB.cpp
@@ -706,9 +706,7 @@
                                                 CollHeap*h,
                                                 ComDiagsArea** diagsArea)
 {
-  Lng32 rc;
-
- 
+  Lng32 rc; 
   Lng32 handleLen = 0;
   char lobHandleBuf[LOB_HANDLE_LEN];
   Int64 descTS = NA_JulianTimestamp();
@@ -988,7 +986,7 @@
 					    CollHeap*h,
 					    ComDiagsArea** diagsArea)
 {
-
+  char timeBuf[1024] = "";
   ex_expr::exp_return_type err;
   Int32 retcode = 0;
   Int32 cliError = 0;
@@ -1130,6 +1128,8 @@
           return err;      
         }
     }
+ 
+ 
   err = insertDesc(op_data,inputAddr, chunkMemSize,lobHdfsOffset, result,h, diagsArea);
   if (err == ex_expr::EXPR_ERROR)  
     {
@@ -1189,9 +1189,9 @@
             }
           char * handle = op_data[0];
           handleLen = getOperand(0)->getLength();
-          LobsSubOper so = Lob_None;
+            LobsSubOper so = Lob_None;
           if (fromFile())
-            so = Lob_File;
+            so = Lob_Memory; //It's already been read into memory above
           else if (fromString()) {
             if (getOperand(1)->getVCIndicatorLength() > 0)
               lobLen = getOperand(1)->getLength(op_data[1]-getOperand(1)->getVCIndicatorLength());
@@ -1202,7 +1202,8 @@
           else if (fromBuffer())
             so= Lob_Buffer;
           else if (fromExternal())
-            so = Lob_External_File;
+          so = Lob_External_File;
+         
 
           retcode = ExpLOBInterfaceUpdateAppend
             (getExeGlobals()->getExLobGlobal(), 
@@ -1237,7 +1238,12 @@
             }
           inputSize -= chunkMemSize;
           if (fromFile())
-            sourceFileReadOffset +=chunkMemSize;       
+            {
+              sourceFileReadOffset +=chunkMemSize; 
+              getExeGlobals()->getExLobGlobal()->getHeap()->deallocateMemory(inputAddr);
+              
+            }
+                        
           inputAddr += chunkMemSize;
         }
     }
@@ -1418,6 +1424,12 @@
   char *inputAddr = NULL;
   Int64 lobLen = 0;
   char *lobData = NULL;
+  Int64 sourceFileSize = 0; // If the input is from a file get total file size
+  Int64 sourceFileReadOffset = 0; 
+  Int64 chunkMemSize = 0;
+  char *retBuf = 0;
+  Int64 retReadLen = 0;
+  Int32 cliError = 0;
   Lng32 sLobType;
   Int64 sUid;
   Lng32 sLobNum;
@@ -1426,7 +1438,31 @@
   Int16 sFlags;
   short sSchNameLen = 0;
   char sSchName[500];
+  char tgtLobNameBuf[LOB_NAME_LEN];
+  char *tgtLobName = NULL;
   lobLen = getOperand(1)->getLength();
+
+  char llid[LOB_LOCK_ID_SIZE];
+  if (lobLocking())
+    {
+      ExpLOBoper::genLobLockId(objectUID_,lobNum(),llid);;
+      NABoolean found = FALSE;
+      retcode = SQL_EXEC_CheckLobLock(llid, &found);
+      if (! retcode && !found) 
+        {    
+          retcode = SQL_EXEC_SetLobLock(llid);
+        }
+      else if (found)
+        {
+          Int32 lobError = LOB_DATA_FILE_LOCK_ERROR;
+          ExRaiseSqlError(h, diagsArea, 
+                          (ExeErrorCode)(8558), NULL,(Int32 *)&lobError, 
+                          NULL, NULL, (char*)"ExpLOBInterfaceInsert",
+                          getLobErrStr(LOB_DATA_FILE_LOCK_ERROR),NULL);
+          return ex_expr::EXPR_ERROR;
+        }
+    }
+
   if(fromString())
     {
       //If source is a varchar, find the actual length
@@ -1455,214 +1491,362 @@
   if (getOperand(2)->getNullFlag() &&
       nullValue_)
     {
-     
-     
-      char * handle = op_data[0];
+      if(fromFile())
+        {
+          
+          retcode = ExpLOBInterfaceGetFileSize(getExeGlobals()->getExLobGlobal(), 
+                                               lobData,//filename 
+                                               getLobHdfsServer(),
+                                               getLobHdfsPort(),
+                                               sourceFileSize);
+          if (retcode < 0)
+            {
+              if (lobLocking())
+                retcode = SQL_EXEC_ReleaseLobLock(llid);
+              Lng32 intParam1 = -retcode;
+              ExRaiseSqlError(h, diagsArea, 
+                              (ExeErrorCode)(8442), NULL, &intParam1, 
+                              &cliError, NULL, (char*)"ExpLOBInterfaceGetFileSize",
+                              getLobErrStr(intParam1), (char*)getSqlJniErrorStr());
+              return ex_expr::EXPR_ERROR;
+            }
+          inputSize = sourceFileSize;
+        }
+      chunkMemSize = MINOF(getLobMaxChunkMemSize(), inputSize);
+      lobHandle = op_data[0];
       handleLen = getOperand(0)->getLength();
-       ex_expr::exp_return_type err = insertData(handleLen, handle, inputAddr, inputSize, lobHdfsOffset, h, diagsArea);;
+
+      if (handleLen == 0)
+        {
+          ExRaiseSqlError(h, diagsArea, 
+                          (ExeErrorCode)(8443), NULL, NULL);
+          
+          return ex_expr::EXPR_ERROR;
+        }
+
+      if (fromFile())
+        {
+          //read a chunk of the file input data
+          retcode= ExpLOBInterfaceReadSourceFile(getExeGlobals()->getExLobGlobal(),
+                                                 lobData, 
+                                                 getLobHdfsServer(),
+                                                 getLobHdfsPort(),
+                                                 sourceFileReadOffset,
+                                                 chunkMemSize,
+                                                 retBuf,
+                                                 retReadLen);
+          if (retcode < 0)
+            {
+              if (lobLocking())
+                retcode = SQL_EXEC_ReleaseLobLock(llid);
+              Lng32 intParam1 = -retcode;
+              ExRaiseSqlError(h, diagsArea, 
+                              (ExeErrorCode)(8442), NULL, &intParam1, 
+                              &cliError, NULL, (char*)"ExpLOBInterfaceReadSourceFile",
+                              getLobErrStr(intParam1), (char*)getSqlJniErrorStr());
+              return ex_expr::EXPR_ERROR;
+            }
+
+         
+          inputAddr = retBuf;
+                                               
+        }
+
+      ex_expr::exp_return_type err = insertData(handleLen, lobHandle, inputAddr, chunkMemSize, lobHdfsOffset, h, diagsArea);;
+
       if (err == ex_expr::EXPR_ERROR)
 	return err;
-      err = insertDesc(op_data, inputAddr,inputSize, lobHdfsOffset, result,h, diagsArea);
+      err = insertDesc(op_data, inputAddr,chunkMemSize, lobHdfsOffset, result,h, diagsArea);
       if (err == ex_expr::EXPR_ERROR)
 	return err;
       return err;
 
+      inputSize -= chunkMemSize;
+      if (fromFile())
+        sourceFileReadOffset +=chunkMemSize;       
+      inputAddr += chunkMemSize;
+
+      if(inputSize > 0)
+        {
+          char * lobHandle = op_data[0];
+          handleLen = getOperand(0)->getLength();
+          extractFromLOBhandle(&sFlags, &sLobType, &sLobNum, &sUid,
+                               &sDescSyskey, &sDescTS, 
+                               &sSchNameLen, sSchName,
+                               lobHandle); 
+     
+          tgtLobName = ExpGetLOBname(sUid, sLobNum, tgtLobNameBuf, LOB_NAME_LEN);
+        }
+      while(inputSize > 0) // chunk rest of the input into lobMaxChunkMemSize chunks and append.
+        {
+          chunkMemSize = MINOF(getLobMaxChunkMemSize(), inputSize);
+          if(!fromEmpty())
+            {
+     
+              if (fromFile())
+                {
+                  //read a chunk of the file input data
+                  retcode= ExpLOBInterfaceReadSourceFile(getExeGlobals()->getExLobGlobal(),
+                                                         lobData, 
+                                                         getLobHdfsServer(),
+                                                         getLobHdfsPort(),
+                                                         sourceFileReadOffset,
+                                                         chunkMemSize,
+                                                         retBuf,
+                                                         retReadLen);
+                  if (retcode < 0)
+                    {
+                      if (lobLocking())
+                        retcode = SQL_EXEC_ReleaseLobLock(llid);
+                      Lng32 intParam1 = -retcode;
+                      ExRaiseSqlError(h, diagsArea, 
+                                      (ExeErrorCode)(8442), NULL, &intParam1, 
+                                      &cliError, NULL, (char*)"ExpLOBInterfaceReadSourceFile",
+                                      getLobErrStr(intParam1), (char*)getSqlJniErrorStr());
+                      return ex_expr::EXPR_ERROR;
+                    }
+                  inputAddr = retBuf;
+                                               
+                }
+              char * handle = op_data[0];
+              handleLen = getOperand(0)->getLength();
+              LobsSubOper so = Lob_None;
+              if (fromFile())
+                so = Lob_Memory; // It's already been read into memory above.
+              else if (fromString()) {
+                if (getOperand(1)->getVCIndicatorLength() > 0)
+                  lobLen = getOperand(1)->getLength(op_data[1]-getOperand(1)->getVCIndicatorLength());
+                so = Lob_Memory;
+              }
+              else if (fromLob())
+                so = Lob_Lob;
+              else if (fromBuffer())
+                so= Lob_Buffer;
+              else if (fromExternal())
+              so = Lob_External_File;
+                
+              retcode = ExpLOBInterfaceUpdateAppend
+                (getExeGlobals()->getExLobGlobal(), 
+                 (getTcb()->getStatsEntry() != NULL ? getTcb()->getStatsEntry()->castToExHdfsScanStats() : NULL),
+                 getLobHdfsServer(),
+                 getLobHdfsPort(),
+                 tgtLobName, 
+                 lobStorageLocation(),
+                 handleLen, handle,
+                 &outHandleLen_, outLobHandle_,
+                 lobHdfsOffset,
+                 -1,	 
+                 0,
+                 0,
+                 so,
+                 sDescSyskey,
+                 chunkMemSize, 
+                 inputAddr,
+                 NULL, 0, NULL,
+                 -1, 0,
+                 getLobMaxSize(), getLobMaxChunkMemSize(),getLobGCLimit());
+              if (retcode < 0)
+                {
+                  if (lobLocking())
+                    retcode = SQL_EXEC_ReleaseLobLock(llid);
+                  Lng32 intParam1 = -retcode;
+                  ExRaiseSqlError(h, diagsArea, 
+                                  (ExeErrorCode)(8442), NULL, &intParam1, 
+                                  &cliError, NULL, (char*)"ExpLOBInterfaceReadSourceFile",
+                                  getLobErrStr(intParam1), (char*)getSqlJniErrorStr());
+                  return ex_expr::EXPR_ERROR;
+                }
+              inputSize -= chunkMemSize;
+              if (fromFile())
+                {
+                  sourceFileReadOffset +=chunkMemSize;
+                  getExeGlobals()->getExLobGlobal()->getHeap()->deallocateMemory(inputAddr);
+                }     
+              inputAddr += chunkMemSize;
+            }
+        }
+
+
     }
   else
     {
       lobHandle = op_data[2];
 
       handleLen = getOperand(2)->getLength(op_data[-MAX_OPERANDS+2]);
-    }
+    
      
-  extractFromLOBhandle(&sFlags, &sLobType, &sLobNum, &sUid,
-		       &sDescSyskey, &sDescTS, 
-		       &sSchNameLen, sSchName,
-		       lobHandle); //op_data[2]);
-  if (sDescSyskey == -1) //updating empty lob
-    {
-      
-      char llid[LOB_LOCK_ID_SIZE];
-      if (lobLocking())
+      extractFromLOBhandle(&sFlags, &sLobType, &sLobNum, &sUid,
+                           &sDescSyskey, &sDescTS, 
+                           &sSchNameLen, sSchName,
+                           lobHandle); //op_data[2]);
+      if (sDescSyskey == -1) //updating empty lob
         {
-          ExpLOBoper::genLobLockId(objectUID_,lobNum(),llid);;
-          NABoolean found = FALSE;
-          retcode = SQL_EXEC_CheckLobLock(llid, &found);
-          if (! retcode && !found) 
-            {    
-              retcode = SQL_EXEC_SetLobLock(llid);
-            }
-          else if (found)
+      
+          char llid[LOB_LOCK_ID_SIZE];
+          if (lobLocking())
             {
-              ExRaiseSqlError(h, diagsArea, 
-                              (ExeErrorCode)(EXE_LOB_CONCURRENT_ACCESS_ERROR));
-              return ex_expr::EXPR_ERROR;
+              ExpLOBoper::genLobLockId(objectUID_,lobNum(),llid);;
+              NABoolean found = FALSE;
+              retcode = SQL_EXEC_CheckLobLock(llid, &found);
+              if (! retcode && !found) 
+                {    
+                  retcode = SQL_EXEC_SetLobLock(llid);
+                }
+              else if (found)
+                {
+                  ExRaiseSqlError(h, diagsArea, 
+                                  (ExeErrorCode)(EXE_LOB_CONCURRENT_ACCESS_ERROR));
+                  return ex_expr::EXPR_ERROR;
+                }
             }
-        }
      
-      char * handle = op_data[0];
-      handleLen = getOperand(0)->getLength();
-      ex_expr::exp_return_type err = insertData(handleLen, handle, inputAddr, inputSize, lobHdfsOffset, h, diagsArea);
-      if (err == ex_expr::EXPR_ERROR)
-	return err;
-      err = insertDesc(op_data,inputAddr,inputSize, lobHdfsOffset, result, h, diagsArea);
-      if (err == ex_expr::EXPR_ERROR)
-	return err;
-      if (lobLocking())
-        retcode = SQL_EXEC_ReleaseLobLock(llid);
-      return err;
-    }
+          char * handle = op_data[0];
+          handleLen = getOperand(0)->getLength();
+          ex_expr::exp_return_type err = insertData(handleLen, handle, inputAddr, inputSize, lobHdfsOffset, h, diagsArea);
+          if (err == ex_expr::EXPR_ERROR)
+            return err;
+          err = insertDesc(op_data,inputAddr,inputSize, lobHdfsOffset, result, h, diagsArea);
+          if (err == ex_expr::EXPR_ERROR)
+            return err;
+          if (lobLocking())
+            retcode = SQL_EXEC_ReleaseLobLock(llid);
+          return err;
+        }
     
   
-  // get the lob name where data need to be updated
-  char tgtLobNameBuf[LOB_NAME_LEN];
-  char * tgtLobName = ExpGetLOBname(sUid, sLobNum, tgtLobNameBuf, LOB_NAME_LEN);
+      // get the lob name where data need to be updated
+      char tgtLobNameBuf[LOB_NAME_LEN];
+      char * tgtLobName = ExpGetLOBname(sUid, sLobNum, tgtLobNameBuf, LOB_NAME_LEN);
 
-  if (tgtLobName == NULL)
-    return ex_expr::EXPR_ERROR;
+      if (tgtLobName == NULL)
+        return ex_expr::EXPR_ERROR;
 
-  char fromLobNameBuf[LOB_NAME_LEN];
-  char * fromLobName = NULL;
-  Int64 fromDescKey = 0;
-  Int64 fromDescTS = 0;
-  short fromSchNameLen = 0;
-  char  fromSchName[ComAnsiNamePart::MAX_IDENTIFIER_EXT_LEN+1];
-  // call function with the lobname and source value
-  // to update it in the LOB.
-  // Get back offset and len of the LOB.
-  //  Int64 offset = 0;
-   lobLen = getOperand(1)->getLength();
+      char fromLobNameBuf[LOB_NAME_LEN];
+      char * fromLobName = NULL;
+      Int64 fromDescKey = 0;
+      Int64 fromDescTS = 0;
+      short fromSchNameLen = 0;
+      char  fromSchName[ComAnsiNamePart::MAX_IDENTIFIER_EXT_LEN+1];
+      // call function with the lobname and source value
+      // to update it in the LOB.
+      // Get back offset and len of the LOB.
+      //  Int64 offset = 0;
+      lobLen = getOperand(1)->getLength();
  
-  LobsSubOper so = Lob_None;
-  if (fromFile())
-    so = Lob_File;
-  else if (fromString()) {
-      if (getOperand(1)->getVCIndicatorLength() > 0)
+      LobsSubOper so = Lob_None;
+      if (fromFile())
+        so = Lob_File;
+      else if (fromString()) {
+        if (getOperand(1)->getVCIndicatorLength() > 0)
           lobLen = getOperand(1)->getLength(op_data[1]-getOperand(1)->getVCIndicatorLength());
-    so = Lob_Memory;
-  }
-  else if (fromLob())
-    so = Lob_Lob;
-  else if (fromBuffer())
-    so= Lob_Buffer;
-  else if (fromExternal())
-    so = Lob_External_File;
+        so = Lob_Memory;
+      }
+      else if (fromLob())
+        so = Lob_Lob;
+      else if (fromBuffer())
+        so= Lob_Buffer;
+      else if (fromExternal())
+        so = Lob_External_File;
  
    
  
-  Int64 lobMaxSize = 0;
-  if (getLobSize() > 0)
-    {
-      lobMaxSize = MINOF(getLobSize(), getLobMaxSize());
-    }
-  else
-    lobMaxSize = getLobMaxSize();
-  Lng32 waitedOp = 0;
-  waitedOp = 1;
+      Int64 lobMaxSize = 0;
+      if (getLobSize() > 0)
+        {
+          lobMaxSize = MINOF(getLobSize(), getLobMaxSize());
+        }
+      else
+        lobMaxSize = getLobMaxSize();
+      Lng32 waitedOp = 0;
+      waitedOp = 1;
 
-  Lng32 cliError = 0;
+      Lng32 cliError = 0;
 
-  char * data = op_data[1];
-  if (fromBuffer())
-    {
-      memcpy(&lobLen, op_data[3],sizeof(Int64)); // user specified buffer length
-      Int64 userBufAddr = 0;
-      memcpy(&userBufAddr,op_data[1],sizeof(Int64));
-      data = (char *)userBufAddr;
-    }
+      char * data = op_data[1];
+      if (fromFile())
+        data[lobLen] = '\0';
+      if (fromBuffer())
+        {
+          memcpy(&lobLen, op_data[3],sizeof(Int64)); // user specified buffer length
+          Int64 userBufAddr = 0;
+          memcpy(&userBufAddr,op_data[1],sizeof(Int64));
+          data = (char *)userBufAddr;
+        }
 
-  if(fromEmpty())
-    {
-      lobLen = 0;
-      so = Lob_Memory;
-    }
+      if(fromEmpty())
+        {
+          lobLen = 0;
+          so = Lob_Memory;
+        }
 
-    char llid[LOB_LOCK_ID_SIZE];
-    if (lobLocking())
-      {
-        ExpLOBoper::genLobLockId(objectUID_,lobNum(),llid);;
-        NABoolean found = FALSE;
-        retcode = SQL_EXEC_CheckLobLock(llid, &found);
-        if (! retcode && !found) 
-          {    
-            retcode = SQL_EXEC_SetLobLock(llid);
-          }
-        else if (found)
-          {
-            Int32 lobError = LOB_DATA_FILE_LOCK_ERROR;
-            ExRaiseSqlError(h, diagsArea, 
-                            (ExeErrorCode)(8558), NULL,(Int32 *)&lobError, 
-                            NULL, NULL, (char*)"ExpLOBInterfaceInsert",
-                            getLobErrStr(LOB_DATA_FILE_LOCK_ERROR),NULL);
-            return ex_expr::EXPR_ERROR;
-          }
-      }
-   if (isAppend() && !fromEmpty())
-    {
-      rc = ExpLOBInterfaceUpdateAppend
-	(getExeGlobals()->getExLobGlobal(), 
-         (getTcb()->getStatsEntry() != NULL ? getTcb()->getStatsEntry()->castToExHdfsScanStats() : NULL),
-	 getLobHdfsServer(),
-	 getLobHdfsPort(),
-	 tgtLobName, 
-	 lobStorageLocation(),
-	 handleLen, lobHandle,
-	 &outHandleLen_, outLobHandle_,
-	 requestTag_,
-	 -1,
+     
+          
+      if (isAppend() && !fromEmpty())
+        {
+          rc = ExpLOBInterfaceUpdateAppend
+            (getExeGlobals()->getExLobGlobal(), 
+             (getTcb()->getStatsEntry() != NULL ? getTcb()->getStatsEntry()->castToExHdfsScanStats() : NULL),
+             getLobHdfsServer(),
+             getLobHdfsPort(),
+             tgtLobName, 
+             lobStorageLocation(),
+             handleLen, lobHandle,
+             &outHandleLen_, outLobHandle_,
+             requestTag_,
+             -1,
 	 
-	 (lobOperStatus == CHECK_STATUS_ ? 1 : 0),
-	 waitedOp,
-	 so,
-	 sDescSyskey,
-	 lobLen, 
-	 data,
-	 fromLobName, fromSchNameLen, fromSchName,
-	 fromDescKey, fromDescTS,
-	 lobMaxSize, getLobMaxChunkMemSize(),getLobGCLimit());
-    }
-  else
-    {
-      rc = ExpLOBInterfaceUpdate
-	(getExeGlobals()->getExLobGlobal(), 
-         (getTcb()->getStatsEntry() != NULL ? getTcb()->getStatsEntry()->castToExHdfsScanStats() : NULL),
-	 getLobHdfsServer(),
-	 getLobHdfsPort(),
-	 tgtLobName, 
-	 lobStorageLocation(),
-	 handleLen, lobHandle,
-	 &outHandleLen_, outLobHandle_,
-	 requestTag_,
-	 -1,
+             (lobOperStatus == CHECK_STATUS_ ? 1 : 0),
+             waitedOp,
+             so,
+             sDescSyskey,
+             lobLen, 
+             data,
+             fromLobName, fromSchNameLen, fromSchName,
+             fromDescKey, fromDescTS,
+             lobMaxSize, getLobMaxChunkMemSize(),getLobGCLimit());
+        }
+      else
+        {
+          rc = ExpLOBInterfaceUpdate
+            (getExeGlobals()->getExLobGlobal(), 
+             (getTcb()->getStatsEntry() != NULL ? getTcb()->getStatsEntry()->castToExHdfsScanStats() : NULL),
+             getLobHdfsServer(),
+             getLobHdfsPort(),
+             tgtLobName, 
+             lobStorageLocation(),
+             handleLen, lobHandle,
+             &outHandleLen_, outLobHandle_,
+             requestTag_,
+             -1,
 	 
-	 (lobOperStatus == CHECK_STATUS_ ? 1 : 0),
-	 waitedOp,
-	 so,
-	 sDescSyskey,
-	 lobLen, 
-	 data,
-	 fromLobName, fromSchNameLen, fromSchName,
-	 fromDescKey, fromDescTS,
-	 lobMaxSize, getLobMaxChunkMemSize(),getLobGCLimit());
+             (lobOperStatus == CHECK_STATUS_ ? 1 : 0),
+             waitedOp,
+             so,
+             sDescSyskey,
+             lobLen, 
+             data,
+             fromLobName, fromSchNameLen, fromSchName,
+             fromDescKey, fromDescTS,
+             lobMaxSize, getLobMaxChunkMemSize(),getLobGCLimit());
+        }
+      if (lobLocking())
+        retcode = SQL_EXEC_ReleaseLobLock(llid);
+      if (rc  < 0)
+        {
+          Lng32 intParam1 = -rc;
+          ExRaiseSqlError(h, diagsArea, 
+                          (ExeErrorCode)(8442), NULL, &intParam1, 
+                          &cliError, NULL, (char*)"ExpLOBInterfaceUpdate",
+                          getLobErrStr(intParam1), (char*)getSqlJniErrorStr());
+          return ex_expr::EXPR_ERROR;
+        }
     }
-   if (lobLocking())
-     retcode = SQL_EXEC_ReleaseLobLock(llid);
-   if (rc  < 0)
-    {
-      Lng32 intParam1 = -rc;
-      ExRaiseSqlError(h, diagsArea, 
-		      (ExeErrorCode)(8442), NULL, &intParam1, 
-		      &cliError, NULL, (char*)"ExpLOBInterfaceUpdate",
-		      getLobErrStr(intParam1), (char*)getSqlJniErrorStr());
-      return ex_expr::EXPR_ERROR;
-     }
-
-   // update lob handle with the returned values
-   str_cpy_all(result, lobHandle, handleLen);
+  // update lob handle with the returned values
+  str_cpy_all(result, lobHandle, handleLen);
  
-   getOperand(0)->setVarLength(handleLen, op_data[-MAX_OPERANDS]);
+  getOperand(0)->setVarLength(handleLen, op_data[-MAX_OPERANDS]);
 
-   return ex_expr::EXPR_OK;
+  return ex_expr::EXPR_OK;
 }
 
 
diff --git a/core/sql/exp/ExpLOBaccess.cpp b/core/sql/exp/ExpLOBaccess.cpp
index 7dc143e..84c7499 100644
--- a/core/sql/exp/ExpLOBaccess.cpp
+++ b/core/sql/exp/ExpLOBaccess.cpp
@@ -327,7 +327,7 @@
     //Int64 writeOffset;
 
     if (! useLibHdfs_ ) {
-       offset = hdfsClient_->hdfsWriteImmediate(data, size, hdfsClientRetcode); 
+      offset = hdfsClient_->hdfsWriteImmediate(data, size, hdfsClientRetcode,0,TRUE); 
        if (hdfsClientRetcode != HDFS_CLIENT_OK)
           return LOB_DATA_WRITE_ERROR;
        operLen = size;
@@ -1478,12 +1478,55 @@
           if (clierr < 0 || clierr == 100)       
             return LOB_DESC_UPDATE_ERROR;
         }
+     
+      chunkMemSize = MINOF(lobMaxChunkMemSize, inputSize);
+      if (so == Lob_File)
+        {
+          //read a chunk of the file input data
+          err = readSourceFile(source_filename,retBuf,chunkMemSize, sourceFileReadOffset);
+             
+          if (err != LOB_OPER_OK)              
+            return err;
+                
+          inputAddr = retBuf;
+        }
+      str_sprintf(logBuf,"Calling writeLobData.sourceLen:%ld, dataOffset:%ld",sourceLen,dataOffset);
+      lobDebugInfo(logBuf,0,__LINE__,lobTrace_);
+      if(sourceLen !=0)  
+        {     
+          err = writeLobData(inputAddr, chunkMemSize,so,dataOffset,operLen,lobMaxChunkMemSize);
+          str_sprintf(logBuf,"writeLobData returned. operLen:%ld",operLen);
+          lobDebugInfo(logBuf,0,__LINE__,lobTrace_);
+          if (err != LOB_OPER_OK)
+            {
+              lobDebugInfo("writeLobData Failed",0,__LINE__,lobTrace_); 
+              return err;
+            }
+        }
+      lobDebugInfo("Calling CLI LOB_CLI_UPDATE_UNIQUE",0,__LINE__,lobTrace_);
+      clierr = SQL_EXEC_LOBcliInterface(handleIn, 
+                                        handleInLen, 
+                                        blackBox, &blackBoxLen,
+                                        handleOut, &handleOutLen,
+                                        LOB_CLI_UPDATE_UNIQUE, LOB_CLI_ExecImmed,
+                                        &dataOffset, &chunkMemSize,
+                                        &outDescPartnKey, &outDescSyskey, 
+                                        0,
+                                        xnId,lobTrace_);
+    
+      if (clierr < 0 || clierr == 100)       
+        return LOB_DESC_UPDATE_ERROR;
+      inputSize -= chunkMemSize;
+      if (so ==Lob_File)
+        sourceFileReadOffset +=chunkMemSize;       
+      inputAddr += chunkMemSize;
+      //Insert rest of the chunks   
       while (inputSize >0)
         {
           chunkMemSize = MINOF(lobMaxChunkMemSize, inputSize);
           if (so == Lob_File)
             {
-               //read a chunk of the file input data
+              //read a chunk of the file input data
               err = readSourceFile(source_filename,retBuf,chunkMemSize, sourceFileReadOffset);
              
               if (err != LOB_OPER_OK)              
@@ -1491,38 +1534,35 @@
                 
               inputAddr = retBuf;
             }
-          str_sprintf(logBuf,"Calling writeLobData.sourceLen:%ld, dataOffset:%ld",sourceLen,dataOffset);
-          lobDebugInfo(logBuf,0,__LINE__,lobTrace_);
-          if(sourceLen !=0)  
-            {     
-              err = writeLobData(inputAddr, chunkMemSize,so,dataOffset,operLen,lobMaxChunkMemSize);
-              str_sprintf(logBuf,"writeLobData returned. operLen:%ld",operLen);
-              lobDebugInfo(logBuf,0,__LINE__,lobTrace_);
-              if (err != LOB_OPER_OK)
-                {
-                  lobDebugInfo("writeLobData Failed",0,__LINE__,lobTrace_); 
-                  return err;
-                }
+          str_sprintf(logBuf,"Calling writeLobData: inputAddr: %ld, InputSize%ld, tgtOffset:%ld",(long)inputAddr,sourceLen,dataOffset);
+          err = writeLobData(inputAddr, chunkMemSize,so,dataOffset,operLen,lobMaxChunkMemSize);
+          if (err != LOB_OPER_OK)
+            {
+              lobDebugInfo("writeLobData returned error",0,__LINE__,lobTrace_);
+              return err;
             }
-          lobDebugInfo("Calling CLI LOB_CLI_UPDATE_UNIQUE",0,__LINE__,lobTrace_);
-          clierr = SQL_EXEC_LOBcliInterface(handleIn, 
-                                            handleInLen, 
+          lobDebugInfo("Calling cli LOB_CLI_INSERT_APPEND",0,__LINE__,lobTrace_);
+          clierr = SQL_EXEC_LOBcliInterface(handleIn, handleInLen, 
                                             blackBox, &blackBoxLen,
                                             handleOut, &handleOutLen,
-                                            LOB_CLI_UPDATE_UNIQUE, LOB_CLI_ExecImmed,
+                                            LOB_CLI_INSERT_APPEND, LOB_CLI_ExecImmed,
                                             &dataOffset, &chunkMemSize,
                                             &outDescPartnKey, &outDescSyskey, 
                                             0,
                                             xnId,lobTrace_);
     
-          if (clierr < 0 || clierr == 100)       
-            return LOB_DESC_UPDATE_ERROR;
+    
+          if (clierr < 0 || clierr == 100) 
+            { // some error or EOD.
+              str_sprintf(logBuf,"cli LOB_CLI_INSERT_APPEND returned :%d", clierr);
+              lobDebugInfo(logBuf, 0,__LINE__,lobTrace_);
+              return LOB_DESC_APPEND_ERROR;
+            }
           inputSize -= chunkMemSize;
           if (so ==Lob_File)
             sourceFileReadOffset +=chunkMemSize;       
           inputAddr += chunkMemSize;
         }
-        
       return LOB_OPER_OK;
     }
 
diff --git a/core/sql/generator/GenPreCode.cpp b/core/sql/generator/GenPreCode.cpp
index 0296d1d..682717d 100644
--- a/core/sql/generator/GenPreCode.cpp
+++ b/core/sql/generator/GenPreCode.cpp
@@ -4339,7 +4339,23 @@
     generator->oltOptInfo()->setOltEidLeanOpt(FALSE);
     oltOptInfo().setOltEidLeanOpt(FALSE);
   }
+ if (updateCurrentOf())
+    generator->setAqrEnabled(FALSE);
 
+
+ if ((((NATable*)getTableDesc()->getNATable())->getTableType() == ExtendedQualName::GHOST_TABLE) &&
+
+     (Get_SqlParser_Flags(INTERNAL_QUERY_FROM_EXEUTIL)) &&
+
+     (CmpCommon::getDefault(AUTO_QUERY_RETRY) == DF_SYSTEM) &&
+
+     (NOT generator->aqrEnabled()))
+
+   {
+
+     generator->setAqrEnabled(TRUE);
+
+   }
   // Accumulate the values that are provided as inputs by my parent
   // together with the values that are produced as outputs by my
   // children. Use these values for rewriting the VEG expressions.
@@ -4543,6 +4559,20 @@
   if (updateCurrentOf())
     generator->setAqrEnabled(FALSE);
 
+
+  if ((((NATable*)getTableDesc()->getNATable())->getTableType() == ExtendedQualName::GHOST_TABLE) &&
+
+      (Get_SqlParser_Flags(INTERNAL_QUERY_FROM_EXEUTIL)) &&
+
+      (CmpCommon::getDefault(AUTO_QUERY_RETRY) == DF_SYSTEM) &&
+
+      (NOT generator->aqrEnabled()))
+
+    {
+
+      generator->setAqrEnabled(TRUE);
+
+    }
   if (getTableDesc()->getNATable()->hasLobColumn())
     {
       oltOptInfo().setOltOpt(FALSE);
diff --git a/core/sql/optimizer/ItemCache.cpp b/core/sql/optimizer/ItemCache.cpp
index b74447b..d0a70a2 100644
--- a/core/sql/optimizer/ItemCache.cpp
+++ b/core/sql/optimizer/ItemCache.cpp
@@ -1506,7 +1506,7 @@
     child(i)->generateCacheKey(cwa);
   }
  
-  if (getRoutineDesc()->getLocale() != 0 )
+  if (getRoutineDesc() && getRoutineDesc()->getLocale() != 0 )
   {
     cwa += ", LOCALE: ";
     char dFmt[20]; 
@@ -1582,3 +1582,66 @@
   return this;
 }
 
+
+
+
+
+// --------------------------------------------------------------
+// member functions for LOBoper operator
+// --------------------------------------------------------------
+NABoolean LOBoper::isCacheableExpr(CacheWA& cwa)
+{
+  if (NOT ItemExpr::isCacheableExpr(cwa))
+    return FALSE;
+
+  return TRUE;
+}
+
+void LOBoper::generateCacheKey(CacheWA& cwa) const
+{
+  ItemExpr::generateCacheKey(cwa);
+
+  char oper[20];
+  cwa += " operType: ";
+  cwa += str_itoa((int)getOperatorType(), oper);
+  cwa += " ";
+}
+
+
+void LOBinsert::generateCacheKey(CacheWA & cwa) const
+{
+  LOBoper::generateCacheKey(cwa);
+   char oper[40];
+  cwa += " fromObj: ";
+  cwa += str_itoa((int)getObj(), oper);
+  cwa += " isAppend: ";
+  cwa += append_? "1":"0";
+  cwa += " ";
+  
+}
+
+void LOBconvert::generateCacheKey(CacheWA & cwa) const
+{
+  LOBoper::generateCacheKey(cwa);
+   char oper[40];
+  cwa += " fromObj: ";
+  cwa += str_itoa((int)getObj(), oper);
+  cwa += " tgtSize: ";
+  cwa += str_itoa((int)getTgtSize(), oper);
+  cwa += " ";
+  
+}
+
+
+void LOBupdate::generateCacheKey(CacheWA & cwa) const
+{
+  LOBoper::generateCacheKey(cwa);
+   char oper[40];
+  cwa += " fromObj: ";
+  cwa += str_itoa((int)getObj(), oper);
+  cwa += " isAppend: ";
+  cwa += append_? "1":"0"; 
+  cwa += " ";
+  
+}
+
diff --git a/core/sql/optimizer/ItemFunc.h b/core/sql/optimizer/ItemFunc.h
index dc36eb6..3a86657 100644
--- a/core/sql/optimizer/ItemFunc.h
+++ b/core/sql/optimizer/ItemFunc.h
@@ -3009,8 +3009,10 @@
   
   // method to do precode generation
   virtual ItemExpr * preCodeGen(Generator*);
+  virtual NABoolean isCacheableExpr(CacheWA& cwa);
+  virtual void generateCacheKey(CacheWA& cwa) const;
 
-  ObjectType getObj() { return obj_; }
+  ObjectType getObj() const { return obj_; }
 
   short &lobNum() {return lobNum_; }
   LobsStorage &lobStorageType() { return lobStorageType_; }
@@ -3072,7 +3074,7 @@
 
   // returns TRUE so this could be evaluated in master.
   virtual NABoolean isAUserSuppliedInput() const { return TRUE; };
-
+  virtual void generateCacheKey(CacheWA& cwa) const;
   Int64 & insertedTableObjectUID() { return objectUID_; }
   
   NAString &insertedTableSchemaName() { return schName_; }
@@ -3175,6 +3177,7 @@
   virtual short codeGen(Generator*);
   // method to do precode generation
   virtual ItemExpr * preCodeGen(Generator*);
+  virtual void generateCacheKey(CacheWA& cwa) const ;
   // virtual Int32 getArity() const;
   NABoolean isAppend() { return append_; };
 
@@ -3220,8 +3223,8 @@
 
   // method to do code generation
   virtual short codeGen(Generator*);
-
-  Lng32 getTgtSize() { return tgtSize_; }
+  virtual void generateCacheKey(CacheWA& cwa) const;
+  Lng32 getTgtSize() const{ return tgtSize_; }
  private:
   Lng32 tgtSize_;
  
diff --git a/core/sql/optimizer/ObjectNames.h b/core/sql/optimizer/ObjectNames.h
index afa95fc..8e8c2ac 100644
--- a/core/sql/optimizer/ObjectNames.h
+++ b/core/sql/optimizer/ObjectNames.h
@@ -569,12 +569,14 @@
   NABoolean isCacheable() const
   { 
     return    (type_ == NORMAL_TABLE)
-           || (type_ == TRIGTEMP_TABLE)
-           || (type_ == EXCEPTION_TABLE)
-           //|| (type_ == IUD_LOG_TABLE)
-           //|| (type_ == RANGE_LOG_TABLE)
-      || (type_ == INDEX_TABLE)  
-      || ((type_ == GHOST_TABLE)&& qualName_.isLOBDesc())
+      || (type_ == TRIGTEMP_TABLE)
+      || (type_ == EXCEPTION_TABLE)
+      //|| (type_ == IUD_LOG_TABLE)
+      //|| (type_ == RANGE_LOG_TABLE)
+      || (type_ == INDEX_TABLE)
+      || (type_ == SCHEMA_TABLE)
+      || (type_ == SG_TABLE)
+      || ((type_ == GHOST_TABLE))
   ; }
   
   NABoolean hasPartnClause() const {return NOT partnClause_.isEmpty();}
diff --git a/core/sql/optimizer/RelCache.cpp b/core/sql/optimizer/RelCache.cpp
index 4fb9a0d..722b7da 100644
--- a/core/sql/optimizer/RelCache.cpp
+++ b/core/sql/optimizer/RelCache.cpp
@@ -31,6 +31,9 @@
 *
 ******************************************************************************
 */
+#define   SQLPARSERGLOBALS_FLAGS   // must precede all #include's
+#define   SQLPARSERGLOBALS_NADEFAULTS
+
 #include "AllRelExpr.h"
 #include "CacheWA.h"
 #include "CmpMain.h"
@@ -38,7 +41,7 @@
 #include "OptHints.h"
 #include "QRDescGenerator.h"
 #include "HDFSHook.h"
-
+#include "SqlParserGlobals.h"      // must be last #include
 // append an ascii-version of GenericUpdate into cachewa.qryText_
 void GenericUpdate::generateCacheKey(CacheWA& cwa) const
   // NB: This comment applies to all generateCacheKey methods. 
@@ -1078,7 +1081,11 @@
     return FALSE;
   }
   if (cwa.getPhase() == CmpMain::PARSE) {
-    if (compExprTree_ || compExpr_.entries() > 0) {
+    // it is unclear why select...insert is not being cached.
+    // For now, cache it only for internal queries. This is needed to
+    // improve compile time of internal lob queries.
+
+    if (! Get_SqlParser_Flags(INTERNAL_QUERY_FROM_EXEUTIL) &&(compExprTree_ || compExpr_.entries() > 0)) {
       // insert-returning is not cacheable after parse
       return FALSE; 
     }
@@ -1086,7 +1093,7 @@
   else if (cwa.getPhase() >= CmpMain::BIND) {
     // make sure select list is cacheable
     if (compExprTree_) {
-      if (!compExprTree_->isCacheableExpr(cwa)) { 
+      if  (!compExprTree_->isCacheableExpr(cwa)) { 
         return FALSE; 
       }
     }
diff --git a/core/sql/optimizer/SynthType.cpp b/core/sql/optimizer/SynthType.cpp
index 64d59ab..bb31367 100644
--- a/core/sql/optimizer/SynthType.cpp
+++ b/core/sql/optimizer/SynthType.cpp
@@ -7129,6 +7129,7 @@
 
       Lng32 tgtSize = MINOF((Lng32)op1.getLobLength(), tgtSize_);
 
+
       NAType *result = new HEAP SQLVarChar(HEAP, tgtSize,
 					   typ1.supportsSQLnull());
       return result;
@@ -7160,6 +7161,7 @@
   SQLlob& op1 = (SQLlob&)vid1.getType();
   
   Lng32 tgtSize = MINOF((Lng32)op1.getLobLength(), tgtSize_);
+
   
   NAType *result = new HEAP SQLVarChar(HEAP, tgtSize,
 				       typ1.supportsSQLnull());
diff --git a/core/sql/regress/executor/EXPECTED130 b/core/sql/regress/executor/EXPECTED130
index a862063..57ce079 100644
--- a/core/sql/regress/executor/EXPECTED130
+++ b/core/sql/regress/executor/EXPECTED130
@@ -63,9 +63,9 @@
 C1           C2
 -----------  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
-          1  LOBH0000000200010302322462619480041819302322462659477729318212415509160868978020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
-          2  LOBH0000000200010302322462619480041819302322462659658191518212415509163952312020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
-          3  LOBH0000000200010302322462619480041819302322462659685731618212415509164230282020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
+          1  LOBH0000000200010398925915096716996919398925915109826613118212427913592310259020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
+          2  LOBH0000000200010398925915096716996919398925915109990051018212427913596302251020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
+          3  LOBH0000000200010398925915096716996919398925915110000589018212427913596408099020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
 
 --- 3 row(s) selected.
 >>
@@ -685,7 +685,7 @@
 >>sh grep "^LOBH" TMP130 | sed "s/^/extract lobtofile(LOB '/g" | sed "s/$/' , 'tlob130_txt1.txt');/g" >> t130_extract_command;
 >>
 >>obey t130_extract_command;
->>extract lobtofile(LOB 'LOBH0000000200010302322462619485420419302322462711610371618212415509682402230020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ' , 'tlob130_txt1.txt');
+>>extract lobtofile(LOB 'LOBH0000000200010398925915096719754919398925915135562869418212427913851004829020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ' , 'tlob130_txt1.txt');
 Success. Targetfile :tlob130_txt1.txt  Length : 19
 
 --- SQL operation complete.
@@ -701,7 +701,7 @@
 >>sh rm t130_extract_command;
 >>sh grep "^LOBH" TMP130 | sed "s/^/extract lobtofile(LOB '/g" | sed "s/$/' , 'tlob130_deep.jpg');/g" >> t130_extract_command;
 >>obey t130_extract_command;
->>extract lobtofile(LOB 'LOBH0000000200010302322462619485651919302322462715900372918212415509725274892020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ' , 'tlob130_deep.jpg');
+>>extract lobtofile(LOB 'LOBH0000000200010398925915096719915619398925915136686288718212427913862324790020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ' , 'tlob130_deep.jpg');
 Success. Targetfile :tlob130_deep.jpg  Length : 159018
 
 --- SQL operation complete.
@@ -717,7 +717,7 @@
 >>sh grep "^LOBH" TMP130 | sed "s/^/extract lobtofile(LOB '/g" | sed "s/$/' , 'tlob130_anoush.jpg');/g" >> t130_extract_command;
 >>
 >>obey t130_extract_command;
->>extract lobtofile(LOB 'LOBH0000000200010302322462619485651919302322462715900372918212415509725274892020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ' , 'tlob130_anoush.jpg');
+>>extract lobtofile(LOB 'LOBH0000000200010398925915096719915619398925915136686288718212427913862324790020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ' , 'tlob130_anoush.jpg');
 Success. Targetfile :tlob130_anoush.jpg  Length : 230150
 
 --- SQL operation complete.
@@ -799,6 +799,38 @@
                                                                                         
 
 --- 3 row(s) selected.
+>>update tlob130txt2 set c2=NULL where c1=3;
+
+--- 1 row(s) updated.
+>>select * from tlob130txt2;
+
+C1           C2
+-----------  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+          1  LOBH0000000200010398925915096720669219398925915143384552018212427913929275257020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
+          2  LOBH0000000200010398925915096720669219398925915143509995318212427913931502076020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
+          3  ?                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+
+--- 3 row(s) selected.
+>>update tlob130txt2 set c2=filetolob('hdfs:///user/trafodion/lobs/lob_input_d1.txt', append) where c1 = 3;
+
+--- 1 row(s) updated.
+>>select lobtostring(c2, 200 ) from tlob130txt2;
+
+(EXPR)
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+Hey diddle diddle,
+                                                                                                                                                                                     
+The cat and the fiddle,
+                                                                                                                                                                                
+The little dog laughed,
+To see such sport,
+
+And the dish ran away with the spoon.
+                                                                                                                      
+
+--- 3 row(s) selected.
 >>
 >>-- should see wrong text in the last few lines
 >>update tlob130txt2 set c2=filetolob('hdfs:///user/trafodion/lobs/lob_input_e1.txt') where c1 =3 ;
@@ -838,7 +870,7 @@
 >>
 >>sh grep "^LOBH" TMP130 | sed "s/^/extract lobtofile(LOB '/g" | sed "s/$/' , 'hdfs:\/\/\/user\/trafodion\/lobs\/tlob130_txt2.txt');/g" >> t130_extract_command;
 >>obey t130_extract_command;
->>extract lobtofile(LOB 'LOBH0000000200010302322462619486948319302322462724980286218212415509815960051020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ' , 'hdfs:///user/trafodion/lobs/tlob130_txt2.txt');
+>>extract lobtofile(LOB 'LOBH0000000200010398925915096720669219398925915143384552018212427913929275257020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ' , 'hdfs:///user/trafodion/lobs/tlob130_txt2.txt');
 Success. Targetfile :hdfs:///user/trafodion/lobs/tlob130_txt2.txt  Length : 19
 
 --- SQL operation complete.
@@ -854,7 +886,7 @@
 >>sh rm t130_extract_command;
 >>sh grep "^LOBH" TMP130 | sed "s/^/extract lobtofile(LOB '/g" | sed "s/$/' , 'hdfs:\/\/\/user\/trafodion\/lobs\/tlob130_deep.jpg');/g" >> t130_extract_command;
 >>obey t130_extract_command;
->>extract lobtofile(LOB 'LOBH0000000200010302322462619487179919302322462728926701518212415509855552322020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ' , 'hdfs:///user/trafodion/lobs/tlob130_deep.jpg');
+>>extract lobtofile(LOB 'LOBH0000000200010398925915096720819419398925915144231512618212427913937737310020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ' , 'hdfs:///user/trafodion/lobs/tlob130_deep.jpg');
 Success. Targetfile :hdfs:///user/trafodion/lobs/tlob130_deep.jpg  Length : 159018
 
 --- SQL operation complete.
@@ -870,7 +902,7 @@
 >>sh grep "^LOBH" TMP130 | sed "s/^/extract lobtofile(LOB '/g" | sed "s/$/' , 'hdfs:\/\/\/user\/trafodion\/lobs\/tlob130_anoush.jpg');/g" >> t130_extract_command;
 >>
 >>obey t130_extract_command;
->>extract lobtofile(LOB 'LOBH0000000200010302322462619485651919302322462715900372918212415509725274892020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ' , 'hdfs:///user/trafodion/lobs/tlob130_anoush.jpg');
+>>extract lobtofile(LOB 'LOBH0000000200010398925915096719915619398925915136686288718212427913862324790020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ' , 'hdfs:///user/trafodion/lobs/tlob130_anoush.jpg');
 Success. Targetfile :hdfs:///user/trafodion/lobs/tlob130_anoush.jpg  Length : 230150
 
 --- SQL operation complete.
@@ -889,7 +921,7 @@
 Input a filename to extract to : 
 Output File Name : lobc2out.jpg
 Extracting  lob handle for column c2...
-LOB handle for c2: LOBH0000000200010302322462619485651919302322462715900372918212415509725274892020"TRAFODION"."LOB130"
+LOB handle for c2: LOBH0000000200010398925915096719915619398925915136686288718212427913862324790020"TRAFODION"."LOB130"
 Extracting LOB data length for the above handle...
 LOB data length :230150
 Extracting lob data into file in chunks ...
@@ -963,7 +995,7 @@
 >>sh rm t130_extract_command;
 >>sh grep "^LOBH" TMP130 | sed "s/^/extract lobtofile(LOB '/g" | sed "s/$/' , 'tlob130_deep2.jpg');/g" >> t130_extract_command;
 >>obey t130_extract_command;
->>extract lobtofile(LOB 'LOBH0000000200020302322462619489007919302322462742420561018212415509990504853020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ' , 'tlob130_deep2.jpg');
+>>extract lobtofile(LOB 'LOBH0000000200020398925915096721905119398925915153005398018212427914025446780020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ' , 'tlob130_deep2.jpg');
 Success. Targetfile :tlob130_deep2.jpg  Length : 159018
 
 --- SQL operation complete.
@@ -972,7 +1004,7 @@
 >>sh rm t130_extract_command;
 >>sh grep "^LOBH" TMP130 | sed "s/^/extract lobtofile(LOB '/g" | sed "s/$/' , 'hdfs:\/\/\/user\/trafodion\/lobs\/tlob130_anoush2.jpg');/g" >> t130_extract_command;
 >>obey t130_extract_command;
->>extract lobtofile(LOB 'LOBH0000000200030302322462619489007919302322462742988318718212415509996094238020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ' , 'hdfs:///user/trafodion/lobs/tlob130_anoush2.jpg');
+>>extract lobtofile(LOB 'LOBH0000000200030398925915096721905119398925915153223853618212427914027706616020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ' , 'hdfs:///user/trafodion/lobs/tlob130_anoush2.jpg');
 Success. Targetfile :hdfs:///user/trafodion/lobs/tlob130_anoush2.jpg  Length : 230150
 
 --- SQL operation complete.
@@ -999,7 +1031,7 @@
 >>sh rm t130_extract_command;
 >>sh grep "^LOBH" TMP130 | sed "s/^/extract lobtofile(LOB '/g" | sed "s/$/' , 'tlob130_anoush3.jpg',create,truncate);/g" >> t130_extract_command;
 >>obey t130_extract_command;
->>extract lobtofile(LOB 'LOBH0000000200030302322462619489549719302322462748547754518212415510051648710020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ' , 'tlob130_anoush3.jpg',create,truncate);
+>>extract lobtofile(LOB 'LOBH0000000200030398925915096722237619398925915156466167118212427914060068242020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ' , 'tlob130_anoush3.jpg',create,truncate);
 Success. Targetfile :tlob130_anoush3.jpg  Length : 230150
 
 --- SQL operation complete.
@@ -1114,12 +1146,12 @@
 
   ColumnName :  C2
   Lob Location :  /user/trafodion/lobs
-  LOB Data File:  LOBP_03023224626194919246_0001
+  LOB Data File:  LOBP_03989259150967233649_0001
   LOB EOD :  0
   LOB Used Len :  0
   ColumnName :  C3
   Lob Location :  /user/trafodion/lobs
-  LOB Data File:  LOBP_03023224626194919246_0002
+  LOB Data File:  LOBP_03989259150967233649_0002
   LOB EOD :  0
   LOB Used Len :  0
   ColumnName :  C4
@@ -1134,8 +1166,8 @@
 CATALOG_NAME                                                                                                                                                                                                                                                      SCHEMA_NAME                                                                                                                                                                                                                                                       OBJECT_NAME                                                                                                                                                                                                                                                       COLUMN_NAME                                                                                                                                                                                                                                                       LOB_LOCATION                                                                                                                                                                                                                                                      LOB_DATA_FILE                                                                                                                                                                                                                                                     LOB_DATA_FILE_SIZE_EOD  LOB_DATA_FILE_SIZE_USED
 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  ----------------------  -----------------------
 
-TRAFODION                                                                                                                                                                                                                                                         LOB130                                                                                                                                                                                                                                                            TLOB130GT2                                                                                                                                                                                                                                                        C2                                                                                                                                                                                                                                                                /user/trafodion/lobs                                                                                                                                                                                                                                              LOBP_03023224626194919246_0001                                                                                                                                                                                                                                                         0                        0
-TRAFODION                                                                                                                                                                                                                                                         LOB130                                                                                                                                                                                                                                                            TLOB130GT2                                                                                                                                                                                                                                                        C3                                                                                                                                                                                                                                                                /user/trafodion/lobs                                                                                                                                                                                                                                              LOBP_03023224626194919246_0002                                                                                                                                                                                                                                                         0                        0
+TRAFODION                                                                                                                                                                                                                                                         LOB130                                                                                                                                                                                                                                                            TLOB130GT2                                                                                                                                                                                                                                                        C2                                                                                                                                                                                                                                                                /user/trafodion/lobs                                                                                                                                                                                                                                              LOBP_03989259150967233649_0001                                                                                                                                                                                                                                                         0                        0
+TRAFODION                                                                                                                                                                                                                                                         LOB130                                                                                                                                                                                                                                                            TLOB130GT2                                                                                                                                                                                                                                                        C3                                                                                                                                                                                                                                                                /user/trafodion/lobs                                                                                                                                                                                                                                              LOBP_03989259150967233649_0002                                                                                                                                                                                                                                                         0                        0
 TRAFODION                                                                                                                                                                                                                                                         LOB130                                                                                                                                                                                                                                                            TLOB130GT2                                                                                                                                                                                                                                                        C4                                                                                                                                                                                                                                                                External HDFS Location                                                                                                                                                                                                                                            External HDFS File                                                                                                                                                                                                                                                                     0                        0
 
 --- 3 row(s) selected.
@@ -1156,17 +1188,17 @@
 
   ColumnName :  C2
   Lob Location :  /user/trafodion/lobs
-  LOB Data File:  LOBP_03023224626194914515_0001
+  LOB Data File:  LOBP_03989259150967230440_0001
   LOB EOD :  15
   LOB Used Len :  15
   ColumnName :  C3
   Lob Location :  /user/trafodion/lobs
-  LOB Data File:  LOBP_03023224626194914515_0002
+  LOB Data File:  LOBP_03989259150967230440_0002
   LOB EOD :  15
   LOB Used Len :  15
   ColumnName :  C4
   Lob Location :  /user/trafodion/lobs
-  LOB Data File:  LOBP_03023224626194914515_0003
+  LOB Data File:  LOBP_03989259150967230440_0003
   LOB EOD :  45
   LOB Used Len :  45
 
@@ -1176,9 +1208,9 @@
 CATALOG_NAME                                                                                                                                                                                                                                                      SCHEMA_NAME                                                                                                                                                                                                                                                       OBJECT_NAME                                                                                                                                                                                                                                                       COLUMN_NAME                                                                                                                                                                                                                                                       LOB_LOCATION                                                                                                                                                                                                                                                      LOB_DATA_FILE                                                                                                                                                                                                                                                     LOB_DATA_FILE_SIZE_EOD  LOB_DATA_FILE_SIZE_USED
 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  ----------------------  -----------------------
 
-TRAFODION                                                                                                                                                                                                                                                         LOB130                                                                                                                                                                                                                                                            TLOB130GT                                                                                                                                                                                                                                                         C2                                                                                                                                                                                                                                                                /user/trafodion/lobs                                                                                                                                                                                                                                              LOBP_03023224626194914515_0001                                                                                                                                                                                                                                                        15                       15
-TRAFODION                                                                                                                                                                                                                                                         LOB130                                                                                                                                                                                                                                                            TLOB130GT                                                                                                                                                                                                                                                         C3                                                                                                                                                                                                                                                                /user/trafodion/lobs                                                                                                                                                                                                                                              LOBP_03023224626194914515_0002                                                                                                                                                                                                                                                        15                       15
-TRAFODION                                                                                                                                                                                                                                                         LOB130                                                                                                                                                                                                                                                            TLOB130GT                                                                                                                                                                                                                                                         C4                                                                                                                                                                                                                                                                /user/trafodion/lobs                                                                                                                                                                                                                                              LOBP_03023224626194914515_0003                                                                                                                                                                                                                                                        45                       45
+TRAFODION                                                                                                                                                                                                                                                         LOB130                                                                                                                                                                                                                                                            TLOB130GT                                                                                                                                                                                                                                                         C2                                                                                                                                                                                                                                                                /user/trafodion/lobs                                                                                                                                                                                                                                              LOBP_03989259150967230440_0001                                                                                                                                                                                                                                                        15                       15
+TRAFODION                                                                                                                                                                                                                                                         LOB130                                                                                                                                                                                                                                                            TLOB130GT                                                                                                                                                                                                                                                         C3                                                                                                                                                                                                                                                                /user/trafodion/lobs                                                                                                                                                                                                                                              LOBP_03989259150967230440_0002                                                                                                                                                                                                                                                        15                       15
+TRAFODION                                                                                                                                                                                                                                                         LOB130                                                                                                                                                                                                                                                            TLOB130GT                                                                                                                                                                                                                                                         C4                                                                                                                                                                                                                                                                /user/trafodion/lobs                                                                                                                                                                                                                                              LOBP_03989259150967230440_0003                                                                                                                                                                                                                                                        45                       45
 
 --- 3 row(s) selected.
 >>delete from tlob130gt where c1=2;
@@ -1195,17 +1227,17 @@
 
   ColumnName :  C2
   Lob Location :  /user/trafodion/lobs
-  LOB Data File:  LOBP_03023224626194914515_0001
+  LOB Data File:  LOBP_03989259150967230440_0001
   LOB EOD :  30
   LOB Used Len :  25
   ColumnName :  C3
   Lob Location :  /user/trafodion/lobs
-  LOB Data File:  LOBP_03023224626194914515_0002
+  LOB Data File:  LOBP_03989259150967230440_0002
   LOB EOD :  31
   LOB Used Len :  26
   ColumnName :  C4
   Lob Location :  /user/trafodion/lobs
-  LOB Data File:  LOBP_03023224626194914515_0003
+  LOB Data File:  LOBP_03989259150967230440_0003
   LOB EOD :  71
   LOB Used Len :  56
 
@@ -1215,9 +1247,9 @@
 CATALOG_NAME                                                                                                                                                                                                                                                      SCHEMA_NAME                                                                                                                                                                                                                                                       OBJECT_NAME                                                                                                                                                                                                                                                       COLUMN_NAME                                                                                                                                                                                                                                                       LOB_LOCATION                                                                                                                                                                                                                                                      LOB_DATA_FILE                                                                                                                                                                                                                                                     LOB_DATA_FILE_SIZE_EOD  LOB_DATA_FILE_SIZE_USED
 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  ----------------------  -----------------------
 
-TRAFODION                                                                                                                                                                                                                                                         LOB130                                                                                                                                                                                                                                                            TLOB130GT                                                                                                                                                                                                                                                         C2                                                                                                                                                                                                                                                                /user/trafodion/lobs                                                                                                                                                                                                                                              LOBP_03023224626194914515_0001                                                                                                                                                                                                                                                        30                       25
-TRAFODION                                                                                                                                                                                                                                                         LOB130                                                                                                                                                                                                                                                            TLOB130GT                                                                                                                                                                                                                                                         C3                                                                                                                                                                                                                                                                /user/trafodion/lobs                                                                                                                                                                                                                                              LOBP_03023224626194914515_0002                                                                                                                                                                                                                                                        31                       26
-TRAFODION                                                                                                                                                                                                                                                         LOB130                                                                                                                                                                                                                                                            TLOB130GT                                                                                                                                                                                                                                                         C4                                                                                                                                                                                                                                                                /user/trafodion/lobs                                                                                                                                                                                                                                              LOBP_03023224626194914515_0003                                                                                                                                                                                                                                                        71                       56
+TRAFODION                                                                                                                                                                                                                                                         LOB130                                                                                                                                                                                                                                                            TLOB130GT                                                                                                                                                                                                                                                         C2                                                                                                                                                                                                                                                                /user/trafodion/lobs                                                                                                                                                                                                                                              LOBP_03989259150967230440_0001                                                                                                                                                                                                                                                        30                       25
+TRAFODION                                                                                                                                                                                                                                                         LOB130                                                                                                                                                                                                                                                            TLOB130GT                                                                                                                                                                                                                                                         C3                                                                                                                                                                                                                                                                /user/trafodion/lobs                                                                                                                                                                                                                                              LOBP_03989259150967230440_0002                                                                                                                                                                                                                                                        31                       26
+TRAFODION                                                                                                                                                                                                                                                         LOB130                                                                                                                                                                                                                                                            TLOB130GT                                                                                                                                                                                                                                                         C4                                                                                                                                                                                                                                                                /user/trafodion/lobs                                                                                                                                                                                                                                              LOBP_03989259150967230440_0003                                                                                                                                                                                                                                                        71                       56
 
 --- 3 row(s) selected.
 >>
@@ -1248,14 +1280,14 @@
 >>sh rm t130_extract_command;
 >>sh grep "^LOBH" TMP130 | sed "s/^/extract name(LOB '/g" | sed "s/$/');/g" >> t130_extract_command;
 >>obey t130_extract_command;
->>extract name(LOB 'LOBH0000000200020302322462619492996719302322462796022099318212415510527586648020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ');
- LOB filename : /user/trafodion/lobs/LOBP_03023224626194929967_0002
+>>extract name(LOB 'LOBH0000000200020398925915096723884819398925915180791519818212427914304316031020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ');
+ LOB filename : /user/trafodion/lobs/LOBP_03989259150967238848_0002
 
 --- SQL operation complete.
 >>sh rm t130_extract_command;
 >>sh grep "^LOBH" TMP130 | sed "s/^/extract offset(LOB '/g" | sed "s/$/');/g" >> t130_extract_command;
 >>obey t130_extract_command;
->>extract offset(LOB 'LOBH0000000200020302322462619492996719302322462796022099318212415510527586648020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ');
+>>extract offset(LOB 'LOBH0000000200020398925915096723884819398925915180791519818212427914304316031020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ');
  LOB Offset : 43
 
 --- SQL operation complete.
@@ -1408,12 +1440,12 @@
 
   ColumnName :  C2
   Lob Location :  /user/trafodion/lobs
-  LOB Data File:  LOBP_03023224626194929967_0001
+  LOB Data File:  LOBP_03989259150967238848_0001
   LOB EOD :  70
   LOB Used Len :  42
   ColumnName :  C3
   Lob Location :  /user/trafodion/lobs
-  LOB Data File:  LOBP_03023224626194929967_0002
+  LOB Data File:  LOBP_03989259150967238848_0002
   LOB EOD :  125
   LOB Used Len :  68
   ColumnName :  C4
@@ -1428,8 +1460,8 @@
 CATALOG_NAME                                                                                                                                                                                                                                                      SCHEMA_NAME                                                                                                                                                                                                                                                       OBJECT_NAME                                                                                                                                                                                                                                                       COLUMN_NAME                                                                                                                                                                                                                                                       LOB_LOCATION                                                                                                                                                                                                                                                      LOB_DATA_FILE                                                                                                                                                                                                                                                     LOB_DATA_FILE_SIZE_EOD  LOB_DATA_FILE_SIZE_USED
 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  ----------------------  -----------------------
 
-TRAFODION                                                                                                                                                                                                                                                         LOB130                                                                                                                                                                                                                                                            TLOB130EXT                                                                                                                                                                                                                                                        C2                                                                                                                                                                                                                                                                /user/trafodion/lobs                                                                                                                                                                                                                                              LOBP_03023224626194929967_0001                                                                                                                                                                                                                                                        70                       42
-TRAFODION                                                                                                                                                                                                                                                         LOB130                                                                                                                                                                                                                                                            TLOB130EXT                                                                                                                                                                                                                                                        C3                                                                                                                                                                                                                                                                /user/trafodion/lobs                                                                                                                                                                                                                                              LOBP_03023224626194929967_0002                                                                                                                                                                                                                                                       125                       68
+TRAFODION                                                                                                                                                                                                                                                         LOB130                                                                                                                                                                                                                                                            TLOB130EXT                                                                                                                                                                                                                                                        C2                                                                                                                                                                                                                                                                /user/trafodion/lobs                                                                                                                                                                                                                                              LOBP_03989259150967238848_0001                                                                                                                                                                                                                                                        70                       42
+TRAFODION                                                                                                                                                                                                                                                         LOB130                                                                                                                                                                                                                                                            TLOB130EXT                                                                                                                                                                                                                                                        C3                                                                                                                                                                                                                                                                /user/trafodion/lobs                                                                                                                                                                                                                                              LOBP_03989259150967238848_0002                                                                                                                                                                                                                                                       125                       68
 TRAFODION                                                                                                                                                                                                                                                         LOB130                                                                                                                                                                                                                                                            TLOB130EXT                                                                                                                                                                                                                                                        C4                                                                                                                                                                                                                                                                External HDFS Location                                                                                                                                                                                                                                            External HDFS File                                                                                                                                                                                                                                                                     0                        0
 
 --- 3 row(s) selected.
@@ -1446,7 +1478,7 @@
 Input a filename to extract to : 
 Output File Name : lobc4ext.txt
 Extracting  lob handle for column c4...
-LOB handle for c4: LOBH0000000800030302322462619492996719302322462798323448718212415510550602499020"TRAFODION"."LOB130"
+LOB handle for c4: LOBH0000000800030398925915096723884819398925915180923835018212427914305639837020"TRAFODION"."LOB130"
 Extracting LOB data length for the above handle...
 LOB data length :19
 Extracting lob data into file in chunks ...
@@ -1512,7 +1544,7 @@
 Input lob column name to get handle from :
 Column Name : c2
 Extracting  lob handle for column c2...
-LOB handle for c2: LOBH0000000200010302322462619496180919302322462812783026418212415510694095790020"TRAFODION"."LOB130"
+LOB handle for c2: LOBH0000000200010398925915096725384219398925915186962270218212427914365164689020"TRAFODION"."LOB130"
 >>select lobtostring(c2,20) from t130lob5;
 
 (EXPR)              
@@ -1529,7 +1561,7 @@
 Input lob column name to get handle from :
 Column Name : c2
 Extracting  lob handle for column c2...
-LOB handle for c2: LOBH0000000200010302322462619496180919302322462812783026418212415510694095790020"TRAFODION"."LOB130"
+LOB handle for c2: LOBH0000000200010398925915096725384219398925915186962270218212427914365164689020"TRAFODION"."LOB130"
 >>select lobtostring(c2,40) from t130lob5;
 
 (EXPR)                                  
@@ -1546,7 +1578,7 @@
 Input lob column name to get handle from :
 Column Name : c2
 Extracting  lob handle for column c2...
-LOB handle for c2: LOBH0000000200010302322462619496180919302322462812783026418212415510694095790020"TRAFODION"."LOB130"
+LOB handle for c2: LOBH0000000200010398925915096725384219398925915186962270218212427914365164689020"TRAFODION"."LOB130"
 >>select lobtostring(c2,20) from t130lob5;
 
 (EXPR)              
@@ -1563,7 +1595,7 @@
 Input lob column name to get handle from :
 Column Name : c2
 Extracting  lob handle for column c2...
-LOB handle for c2: LOBH0000000200010302322462619496180919302322462812783026418212415510694095790020"TRAFODION"."LOB130"
+LOB handle for c2: LOBH0000000200010398925915096725384219398925915186962270218212427914365164689020"TRAFODION"."LOB130"
 >>select lobtostring(c2,40) from t130lob5;
 
 (EXPR)                                  
@@ -1590,7 +1622,7 @@
 C2
 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
-LOBH0000000200010302322462619492996719302322462823895005518212415510806316467020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
+LOBH0000000200010398925915096723884819398925915195303539218212427914449438981020"TRAFODION"."LOB130"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
 
 --- 1 row(s) selected.
 >>-- following should return error since only external lobs will be allowed
@@ -1633,9 +1665,9 @@
 Tables in Schema TRAFODION.LOBSCH
 =================================
 
-LOBDescChunks__03023224626194981236_0001
-LOBDescHandle__03023224626194981236_0001
-LOBMD__03023224626194981236
+LOBDescChunks__03989259150967266691_0001
+LOBDescHandle__03989259150967266691_0001
+LOBMD__03989259150967266691
 SB_HISTOGRAMS
 SB_HISTOGRAM_INTERVALS
 SB_PERSISTENT_SAMPLES
diff --git a/core/sql/regress/executor/TEST130 b/core/sql/regress/executor/TEST130
index 4e82e00..20782c3 100755
--- a/core/sql/regress/executor/TEST130
+++ b/core/sql/regress/executor/TEST130
@@ -379,6 +379,10 @@
 --should update with full poem
 update tlob130txt2 set c2=filetolob('hdfs:///user/trafodion/lobs/lob_input_d1.txt', append) where c1 = 3;
 select lobtostring(c2, 200 ) from tlob130txt2;
+update tlob130txt2 set c2=NULL where c1=3;
+select * from tlob130txt2;
+update tlob130txt2 set c2=filetolob('hdfs:///user/trafodion/lobs/lob_input_d1.txt', append) where c1 = 3;
+select lobtostring(c2, 200 ) from tlob130txt2;
 
 -- should see wrong text in the last few lines
 update tlob130txt2 set c2=filetolob('hdfs:///user/trafodion/lobs/lob_input_e1.txt') where c1 =3 ;
diff --git a/core/sql/regress/seabase/EXPECTED025 b/core/sql/regress/seabase/EXPECTED025
index 677cafa..24c87f0 100644
--- a/core/sql/regress/seabase/EXPECTED025
+++ b/core/sql/regress/seabase/EXPECTED025
@@ -1526,7 +1526,7 @@
 --- SQL operation complete.
 >>
 >>--control query default def_num_smp_cpus '4';
->>control query shape esp_exchange(cut,4);
+>>control query shape esp_exchange(cut,2);
 
 --- SQL operation complete.
 >>
@@ -1595,7 +1595,7 @@
 --- SQL operation complete.
 >>
 >>--control query default def_num_smp_cpus '4';
->>control query shape esp_exchange (cut, 4);
+>>control query shape esp_exchange (cut, 2);
 
 --- SQL operation complete.
 >>
@@ -1618,8 +1618,8 @@
 ---- ---- ---- --------------------  --------  --------------------  ---------
 
 8    .    9    root                                                  1.00E+004
-7    .    8    esp_exchange                    1:4(hash2)            1.00E+004
-6    .    7    esp_exchange                    4(hash2):1            1.00E+004
+7    .    8    esp_exchange                    1:2(hash2)            1.00E+004
+6    .    7    esp_exchange                    2(hash2):1            1.00E+004
 4    5    6    tuple_flow                                            1.00E+004
 .    .    5    trafodion_load        h         T025T007              1.00E+000
 3    .    4    transpose                                             1.00E+004
@@ -1806,7 +1806,7 @@
 A                     B           C         
 --------------------  ----------  ----------
 
-                  10           1           1
+                  11           1           1
 
 --- 1 row(s) selected.
 >>
@@ -1822,7 +1822,7 @@
 A                     B           C         
 --------------------  ----------  ----------
 
-                  10           1           1
+                  11           1           1
 
 --- 1 row(s) selected.
 >>
@@ -1896,7 +1896,7 @@
 >>insert into T025T003 values  	
 +>(DEFAULT,-3,0,1,'dasf',2.1,'dfaf','dfa','dfa','d');
 
-*** ERROR[8101] The operation is prevented by check constraint TRAFODION.S025.T025T003_918519353_6685 on table TRAFODION.S025.T025T003.
+*** ERROR[8101] The operation is prevented by check constraint TRAFODION.S025.T025T003_573479767_9484 on table TRAFODION.S025.T025T003.
 
 --- 0 row(s) inserted.
 >>
@@ -1906,7 +1906,7 @@
 +>(DEFAULT,-2,1,1,'dasf',2.1,'dfaf','dfa','dfa','d'),	
 +>(DEFAULT,-1,2,1,'dasf',2.1,'dfaf','dfa','dfa','d');
 
-*** ERROR[8101] The operation is prevented by check constraint TRAFODION.S025.T025T003_918519353_6685 on table TRAFODION.S025.T025T003.
+*** ERROR[8101] The operation is prevented by check constraint TRAFODION.S025.T025T003_573479767_9484 on table TRAFODION.S025.T025T003.
 
 --- 0 row(s) inserted.
 >>
@@ -2628,7 +2628,7 @@
 >>invoke T025T00V2;
 
 -- Definition of Trafodion volatile table T025T00V2
--- Definition current  Sun Jan  7 23:18:49 2018
+-- Definition current  Tue Jul  2 18:37:56 2019
 
   (
     SURROGATE_KEY                    SMALLINT UNSIGNED GENERATED BY DEFAULT AS
@@ -2816,7 +2816,7 @@
 >>invoke t025t010;
 
 -- Definition of Trafodion table TRAFODION.S025.T025T010
--- Definition current  Sun Jan  7 23:20:51 2018
+-- Definition current  Tue Jul  2 18:40:58 2019
 
   (
     A                                LARGEINT GENERATED ALWAYS AS IDENTITY NOT
diff --git a/core/sql/regress/seabase/TEST025 b/core/sql/regress/seabase/TEST025
index 55c0d0f..ca9bcd1 100644
--- a/core/sql/regress/seabase/TEST025
+++ b/core/sql/regress/seabase/TEST025
@@ -1040,7 +1040,7 @@
 salt using 4 partitions;
 
 --control query default def_num_smp_cpus '4';
-control query shape esp_exchange(cut,4);
+control query shape esp_exchange(cut,2);
 
 prepare ins06 from
 upsert using load into T025T006(a, c)
@@ -1083,7 +1083,7 @@
 ;
 
 --control query default def_num_smp_cpus '4';
-control query shape esp_exchange (cut, 4);
+control query shape esp_exchange (cut, 2);
 
 prepare ins07 from
 upsert using load into t025t007 (b,c)
diff --git a/core/sql/src/main/java/org/trafodion/sql/HDFSClient.java b/core/sql/src/main/java/org/trafodion/sql/HDFSClient.java
index 4f06e7b..28d9187 100644
--- a/core/sql/src/main/java/org/trafodion/sql/HDFSClient.java
+++ b/core/sql/src/main/java/org/trafodion/sql/HDFSClient.java
@@ -493,24 +493,52 @@
           return -1;
     }
 
-    long hdfsWriteImmediate(byte[] buff) throws IOException
+    long hdfsWriteImmediate(byte[] buff, boolean doRetry) throws IOException
     {
+
       if (logger_.isDebugEnabled()) 
-         logger_.debug("HDFSClient.hdfsWriteClose() - started" );
-      FSDataOutputStream fsOut;
-      FileStatus filestatus;
-      long writeOffset; 
-      if (fs_.exists(filepath_)) {
-         filestatus = fs_.getFileStatus(filepath_);
-         fsOut = fs_.append(filepath_);
-         writeOffset = filestatus.getLen(); 
-      }
-      else {
-         fsOut = fs_.create(filepath_);
-         writeOffset = 0;
-      }
-      fsOut.write(buff);
-      fsOut.close();
+         logger_.debug("HDFSClient.hdfsWriteImmediate() - started" );
+   
+        FSDataOutputStream fsOut=null;
+        FileStatus filestatus = null;
+        long writeOffset=0;
+        long writeEndOffset =0;
+        int trycount = 0;
+        
+        while (trycount < 3)
+        {
+          try
+          { 
+            if (logger_.isDebugEnabled()) 
+                logger_.debug("HDFSClient.hdfsWriteImmediate() - started" );
+  
+            if (fs_.exists(filepath_)) {
+                filestatus = fs_.getFileStatus(filepath_);
+                fsOut = fs_.append(filepath_);
+                 writeOffset = filestatus.getLen(); 
+             }
+             else {
+                   fsOut = fs_.create(filepath_);
+                   writeOffset = 0;
+             }
+             fsOut.write(buff);
+             fsOut.hflush();
+             writeEndOffset = fsOut.getPos(); 
+             } finally {
+                if (fsOut != null )
+                   fsOut.close();
+           }
+           // Do a checksum to ensure writeOffset is really the right value.
+          if (doRetry && (buff.length != writeEndOffset-writeOffset))
+            {
+               trycount++;
+               if (trycount == 3)
+                 {
+                    throw new IOException("HDFSwrite did not succeed due to multiple concurrent writes ");    
+                 }
+             }
+           else trycount = 100; //if doRetry is false or writeOffset is ok
+        } //while
       return writeOffset;
     }
     
diff --git a/core/sql/udrserv/UdrResultSet.cpp b/core/sql/udrserv/UdrResultSet.cpp
index 78beebc..0f57901 100644
--- a/core/sql/udrserv/UdrResultSet.cpp
+++ b/core/sql/udrserv/UdrResultSet.cpp
@@ -299,7 +299,7 @@
   singleRowFetchEnabled_ = FALSE;
 
   if (prevContext != 0)
-    SQL_EXEC_SwitchContext(prevContext, NULL);
+    SQL_EXEC_SwitchContext_Internal(prevContext, NULL,TRUE);
 
   // Let's clear cli diags if there are any
   SQL_EXEC_ClearDiagnostics(NULL);
@@ -543,7 +543,7 @@
 
   SQLCTX_HANDLE tmpCtx;
   Int32 result = SQL_EXEC_SwitchContext((Lng32) getContextHandle(),
-                                      &tmpCtx);
+                                        &tmpCtx);
 
   if (result < 0)
   {
@@ -565,7 +565,7 @@
     return 0;
 
   SQLCTX_HANDLE tmpCtxHandle;
-  Int32 result = SQL_EXEC_SwitchContext(ctxHandle, &tmpCtxHandle);
+  Int32 result = SQL_EXEC_SwitchContext_Internal(ctxHandle, &tmpCtxHandle,TRUE);
 
   if (result < 0)
   {
