public static TypeDescription[] genIncludedTypes(TypeDescription fileSchema,
      List<Integer> included, Integer recursiveStruct) {
    TypeDescription[] result = new TypeDescription[included.size()];
    List<TypeDescription> children = fileSchema.getChildren();
    for (int columnNumber = 0; columnNumber < children.size(); ++columnNumber) {
      int indexInBatchCols = included.indexOf(columnNumber);
      if (indexInBatchCols >= 0) {
        result[indexInBatchCols] = children.get(columnNumber);
      } else if (recursiveStruct != null && recursiveStruct == columnNumber) {
        // This assumes all struct cols immediately follow struct
        List<TypeDescription> nestedChildren = children.get(columnNumber).getChildren();
        for (int columnNumberDelta = 0; columnNumberDelta < nestedChildren.size(); ++columnNumberDelta) {
          int columnNumberNested = columnNumber + 1 + columnNumberDelta;
          int nestedIxInBatchCols = included.indexOf(columnNumberNested);
          if (nestedIxInBatchCols >= 0) {
            result[nestedIxInBatchCols] = nestedChildren.get(columnNumberDelta);
          }
        }
      }
    }
    return result;
  }
Check if the given file is original orc file or an ACID file.
@param footer The footer of the given file to check
@return <code>false</code> if an ACID file, <code>true</code> if a simple orc file
ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcInputFormat.java