Github user robertamarton commented on a diff in the pull request:

    https://github.com/apache/trafodion/pull/1721#discussion_r225014757
  
    --- 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);
    --- End diff --
    
    Now that I have a better understanding of how diags areas work, is toDiags 
always guaranteed to be not NULL?  That is, should you call 
allocAndRetrieveSQLDiagnostics?  The reason I mentioned this is that I am in 
the process of fixing an issue in ExExeUtilGet where the diags pointer is NULL 
and the code does a retrieveSQLDiags instead of allocAndRetrieve ..


---

Reply via email to