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

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

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

    https://github.com/apache/trafodion/pull/1721#discussion_r225014911
  
    --- Diff: core/sql/sqlcomp/CmpSeabaseDDLroutine.cpp ---
    @@ -389,12 +388,245 @@ void CmpSeabaseDDL::createSeabaseLibrary(
         }
      
       char * query = new(STMTHEAP) char[1000];
    -  str_sprintf(query, "insert into %s.\"%s\".%s values (%ld, '%s', %d, 0)",
    -         getSystemCatalog(), SEABASE_MD_SCHEMA, SEABASE_LIBRARIES,
    -         objUID,
    +  
    +  //We come here only if CQD says use the old style without blobs . 
    +  //So insert a NULL into the blob column.
    +  str_sprintf(query, "insert into %s.\"%s\".%s values (%ld, '%s',NULL, %d, 
0)",
    +              getSystemCatalog(), SEABASE_MD_SCHEMA, SEABASE_LIBRARIES,
    +              objUID,
                   libFileName.data(),
                   createLibraryNode->getVersion());
    +    
    + 
    +  Lng32 cliRC = cliInterface.executeImmediate(query);
    +
    +  NADELETEBASIC(query, STMTHEAP);
    +  if (cliRC < 0)
    +    {
    +      cliInterface.retrieveSQLDiagnostics(CmpCommon::diags());
    +      processReturn();
    +      return;
    +    }
    +    
    + 
    +
    +  // hope to remove this call soon by setting thevalid flag to Y sooner
    +  if (updateObjectValidDef(&cliInterface, 
    +                      catalogNamePart, schemaNamePart, objectNamePart,
    +                      COM_LIBRARY_OBJECT_LIT,
    +                      "Y"))
    +    {
    +      deallocEHI(ehi); 
    +      processReturn();
    +      return;
    +    }
    +
    +  processReturn();
    +
    +  return;
    +}
    +short CmpSeabaseDDL::isLibBlobStoreValid(ExeCliInterface *cliInterface)
    +{
    +  Int32 cliRC=0;
    +  char buf[4000];
    +  char * query = new(STMTHEAP) char[1000];
    +  str_sprintf(query, "select [first 1] library_storage from %s.\"%s\".%s ",
    +         getSystemCatalog(), SEABASE_MD_SCHEMA, SEABASE_LIBRARIES
    +        );
    +  
    +  // set pointer in diags area
    +  int32_t diagsMark = CmpCommon::diags()->mark();
    +  cliRC = cliInterface->fetchRowsPrologue(query, TRUE/*no exec*/);
    +  if (cliRC < 0)
    +    {
    +      cliInterface->retrieveSQLDiagnostics(CmpCommon::diags());
    +      CmpCommon::diags()->rewind(diagsMark);
    +      NADELETEBASIC(query, STMTHEAP);
    +      return -1;
    +    }
    +
    +  cliRC = cliInterface->clearExecFetchClose(NULL, 0);
    +  if (cliRC < 0)
    +    {
    +      cliInterface->retrieveSQLDiagnostics(CmpCommon::diags());
    +      CmpCommon::diags()->rewind(diagsMark);
    +      NADELETEBASIC(query, STMTHEAP);
    +      return -1;
    +    }
    +
    +  if (cliRC >=0)
    +    {
    +      //found the new column.
    +      NADELETEBASIC(query, STMTHEAP);
    +      CmpCommon::diags()->rewind(diagsMark);
    +      return 0;
    +    }
    +  
    +  return 0;
    +  NADELETEBASIC(query, STMTHEAP);
    + 
    +}
    +
    +void CmpSeabaseDDL::createSeabaseLibrary2(
    +                                 StmtDDLCreateLibrary * createLibraryNode,
    +                                 NAString &currCatName, 
    +                                      NAString &currSchName)
    --- End diff --
    
    There is a lot of duplicate code between createSeabaseLibrary and 
createSeabaseLibrary2.  In a future release, maybe these can be refactored.


> UDR libraries need to be stored in metadata table as a blob
> -----------------------------------------------------------
>
>                 Key: TRAFODION-3216
>                 URL: https://issues.apache.org/jira/browse/TRAFODION-3216
>             Project: Apache Trafodion
>          Issue Type: Improvement
>          Components: sql-general
>    Affects Versions: 2.4
>            Reporter: Sandhya Sundaresan
>            Assignee: Sandhya Sundaresan
>            Priority: Major
>             Fix For: 2.4
>
>         Attachments: Support for LOB storage in metadata for UDR 
> libraries.docx
>
>
> This is one of many  infrastructure changes for SPJs that was planned. 
>  * {color:#0070c0}Store UDR libraries in BLOBs   {color}
>  * {color:#0070c0}Add BLOB column to library metadata table{color}
>  * {color:#0070c0}Change CREATE LIBRARY command to store library in 
> BLOB{color}
>  * {color:#0070c0}Change library file names to include the timestamp (so 
> updating a library changes the name){color}
>  * {color:#0070c0}Add a cache for libraries (a new directory, 
> $TRAF_HOME/udr/public/lib){color}
>  * {color:#0070c0}Change UDR code to read library from the metadata table 
> when not in cache{color}
>  * {color:#0070c0}Upgrade support{color}
>  



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

Reply via email to