public static boolean[] genIncludedColumns(TypeDescription readerSchema,
                                             List<Integer> included,
                                             Integer recursiveStruct) {
    boolean[] result = new boolean[readerSchema.getMaximumId() + 1];
    if (included == null) {
      Arrays.fill(result, true);
      return result;
    }
    result[0] = true;
    List<TypeDescription> children = readerSchema.getChildren();
    for (int columnNumber = 0; columnNumber < children.size(); ++columnNumber) {
      if (included.contains(columnNumber)) {
        addColumnToIncludes(children.get(columnNumber), result);
      } 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;
          if (included.contains(columnNumberNested)) {
            addColumnToIncludes(nestedChildren.get(columnNumberDelta), result);
          }
        }
      }
    }

    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