Github user ajantha-bhat commented on a diff in the pull request:

    https://github.com/apache/carbondata/pull/2345#discussion_r191110226
  
    --- Diff: 
store/sdk/src/main/java/org/apache/carbondata/sdk/file/CarbonReader.java ---
    @@ -101,6 +108,43 @@ public static CarbonReaderBuilder builder(String 
tablePath, String tableName) {
         return reader.readSchema();
       }
     
    +  /**
    +   * Read carbonindex file and return the schema
    +   * @param indexFilePath complete path including index file name
    +   * @return null, if the index file is not present in the path.
    +   *         List<ColumnSchema> from the index file.
    +   * @throws IOException
    +   */
    +  public static List<ColumnSchema> readSchemaInIndexFile(String 
indexFilePath) throws IOException {
    +    CarbonFile indexFile =
    +        FileFactory.getCarbonFile(indexFilePath, 
FileFactory.getFileType(indexFilePath));
    +    if (!indexFile.getName().endsWith(CarbonTablePath.INDEX_FILE_EXT)) {
    +      throw new IOException("Not an index file name");
    +    }
    +    // read schema from the first index file
    +    DataInputStream dataInputStream =
    +        FileFactory.getDataInputStream(indexFilePath, 
FileFactory.getFileType(indexFilePath));
    +    byte[] bytes = new byte[(int) indexFile.getSize()];
    +    try {
    +      //get the file in byte buffer
    +      dataInputStream.readFully(bytes);
    +      CarbonIndexFileReader indexReader = new CarbonIndexFileReader();
    +      // read from byte buffer.
    +      indexReader.openThriftReader(bytes);
    +      // get the index header
    +      org.apache.carbondata.format.IndexHeader readIndexHeader = 
indexReader.readIndexHeader();
    +      List<ColumnSchema> columnSchemaList = new ArrayList<ColumnSchema>();
    +      List<org.apache.carbondata.format.ColumnSchema> table_columns =
    +          readIndexHeader.getTable_columns();
    +      for (org.apache.carbondata.format.ColumnSchema columnSchema: 
table_columns) {
    --- End diff --
    
    OK. 


---

Reply via email to