@Override
    public SchemaEvolution createSchemaEvolution(TypeDescription fileSchema) {
      if (readerSchema == null) {
        readerSchema = fileSchema;
      }
      // TODO: will this work correctly with ACID?
      boolean[] readerIncludes = OrcInputFormat.genIncludedColumns(
          readerSchema, readerLogicalColumnIds);
      Reader.Options options = new Reader.Options(jobConf)
          .include(readerIncludes).includeAcidColumns(includeAcidColumns);
      evolution = new SchemaEvolution(fileSchema, readerSchema, options);

      if (LOG.isDebugEnabled()) {
        LOG.debug("Generated ORC schema evolution. Reader schema: {}, Reader included: {}, File schema: {}, File " +
            "included: {}", evolution.getReaderSchema(), evolution.getReaderIncluded(), evolution.getFileSchema(),
            evolution.getFileIncluded());
      }
      generateLogicalOrderedColumnIds();
      return evolution;
    }
Even when NOT including acid columns, we still want to number the
physical columns as if acid columns are included because
{@link #generateFileIncludes(TypeDescription)} takes the file
schema as input
(eg <op, owid, writerId, rowid, cwid, <f1, ... fn>>)
llap-server/src/java/org/apache/hadoop/hive/llap/io/api/impl/LlapRecordReader.java