[ 
https://issues.apache.org/jira/browse/TRAFODION-2874?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16354452#comment-16354452
 ] 

ASF GitHub Bot commented on TRAFODION-2874:
-------------------------------------------

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

    https://github.com/apache/trafodion/pull/1428#discussion_r166421248
  
    --- Diff: core/sql/exp/ExpLOBaccess.cpp ---
    @@ -870,6 +870,67 @@ Ex_Lob_Error ExLob::getLength(char *handleIn, Int32 
handleInLen,Int64 &outLobLen
           }
       return err;
     }
    +Ex_Lob_Error ExLob::getOffset(char *handleIn, Int32 handleInLen,Int64 
&outLobOffset,LobsSubOper so, Int64 transId)
    +{
    +  char logBuf[4096];
    +  Int32 cliErr = 0;
    +  Ex_Lob_Error err=LOB_OPER_OK; 
    +  char *blackBox = new(getLobGlobalHeap()) char[MAX_LOB_FILE_NAME_LEN+6];
    +  Int32 blackBoxLen = 0;
    +  Int64 dummy = 0;
    +  Int32 dummy2 = 0;
    +  if (so != Lob_External_File)
    +    {
    +      
    +      cliErr = SQL_EXEC_LOBcliInterface(handleIn, 
handleInLen,NULL,NULL,NULL,NULL,LOB_CLI_SELECT_LOBOFFSET,LOB_CLI_ExecImmed,&outLobOffset,0,
 0, 0,0,transId,lobTrace_);
    +    
    +      if (cliErr < 0 ) {
    +        str_sprintf(logBuf,"CLI SELECT_LOBOFFSET returned error 
%d",cliErr);
    +        lobDebugInfo(logBuf, 0,__LINE__,lobTrace_);
    +  
    +        return LOB_DESC_READ_ERROR;
    +      }
    +    }
    + 
    +  return err;
    +}
    +
    +Ex_Lob_Error ExLob::getFileName(char *handleIn, Int32 handleInLen, char 
*outFileName, Int32 &outFileLen , LobsSubOper so, Int64 transId)
    +{
    +  char logBuf[4096];
    +  Int32 cliErr = 0;
    +  Ex_Lob_Error err=LOB_OPER_OK; 
    +  Int64 dummy = 0;
    +  Int32 dummy2 = 0;
    +  if (so != Lob_External_File)
    +    {
    +      //Derive the filename from the LOB handle and return
    +      str_cpy_all(outFileName, (char 
*)lobDataFile_.data(),lobDataFile_.length());
    --- End diff --
    
    Do we know that the outFileName buffer is long enough?


> LOB: Add syntax to return filename  of a LOB data file for external LOBs.
> -------------------------------------------------------------------------
>
>                 Key: TRAFODION-2874
>                 URL: https://issues.apache.org/jira/browse/TRAFODION-2874
>             Project: Apache Trafodion
>          Issue Type: Bug
>          Components: sql-exe
>    Affects Versions: 2.3
>            Reporter: Sandhya Sundaresan
>            Assignee: Sandhya Sundaresan
>            Priority: Major
>
> For external LOBs,  Trafodion does not save the LOB data in it's internal 
> trafodion namespace. It saves only the LOB  handle information and the actual 
> LOB data remains outside in users namespace in HDFS.    So inserts are very 
> eifficient. During extract from an external LOB today, we extract the LOB 
> data from the external file and return it to the user. Need to extend the 
> Extract syntax to also be able to return the external LOB data filename alone 
> . 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to