public static RecordReader createReaderFromFile(Reader file,
                                                  Configuration conf,
                                                  long offset, long length,
                                                  boolean isOriginal
                                                  ) throws IOException {
    if (AcidUtils.isFullAcidScan(conf)) {
      raiseAcidTablesMustBeReadWithAcidReaderException(conf);
    }

    /**
     * Do we have schema on read in the configuration variables?
     */
    TypeDescription schema = getDesiredRowTypeDescr(conf, false, Integer.MAX_VALUE);

    Reader.Options options = new Reader.Options(conf).range(offset, length);
    options.schema(schema);
    if (schema == null) {
      schema = file.getSchema();
    }
    List<OrcProto.Type> types = OrcUtils.getOrcTypes(schema);
    options.include(genIncludedColumns(schema, conf));
    setSearchArgument(options, types, conf, isOriginal);
    return file.rowsOptions(options, conf);
  }
Get the root column for the row. In ACID format files, it is offset by
the extra metadata columns.
@param isOriginal is the file in the original format?
@return the column number for the root of row.
ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcInputFormat.java