trafodion-codereview mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From robertamarton <...@git.apache.org>
Subject [GitHub] trafodion pull request #1721: [TRAFODION-3216]UDR libraries need to be store...
Date Sun, 14 Oct 2018 23:52:42 GMT
Github user robertamarton commented on a diff in the pull request:

    https://github.com/apache/trafodion/pull/1721#discussion_r225014769
  
    --- Diff: core/sql/executor/ExExeUtilLoad.cpp ---
    @@ -3288,6 +3288,45 @@ short ExExeUtilLobExtractTcb::work()
       return 0;
     }
     
    +
    +short ExExeUtilLobExtractLibrary(ExeCliInterface *cliInterface,char *libHandle, char
*cachedLibName,ComDiagsArea *toDiags)
    +{
    +  char buf[1000];
    +  Int32 cliRC =0;
    +  str_sprintf(buf, "extract lobtofile(LOB '%s','%s');",libHandle,cachedLibName);
    +               
    +
    +  cliRC = cliInterface->fetchRowsPrologue(buf, TRUE/*no exec*/);
    +  if (cliRC < 0)
    +    {
    +      cliInterface->retrieveSQLDiagnostics(toDiags);
    +      return cliRC;
    +    }
    +
    +  cliRC = cliInterface->clearExecFetchClose(NULL, 0);
    +  if (cliRC < 0)
    +    {
    +      cliInterface->retrieveSQLDiagnostics(toDiags);
    +      //Ignore error if the target file exists. This could be because the cached
    +      // file already got created by another process at the same time. So we can ignore
    +      // the error and use the already cached file.
    +      ComCondition *cond = NULL;
    +      Int32 entryNumber;
    +      cond = toDiags->findCondition(-EXE_ERROR_FROM_LOB_INTERFACE, &entryNumber);
    --- End diff --
    
    Could you get more than one error in diags when the target file exists?  Instead of just
removing the error in question, you could mark the diags area before the call and then rewind
if the target exists.


---

Mime
View raw message