@Override
  public List<FileInfo> getFiles() throws IOException {
    List<FileInfo> baseAndDeltaFiles = new ArrayList<>();
    if (base == null) {
      // For non-acid tables (or paths), all data files are in getOriginalFiles() list
      for (HadoopShims.HdfsFileStatusWithId fileId : originalFiles) {
        baseAndDeltaFiles.add(new FileInfo(fileId, ORIGINAL_BASE));
      }
    } else {
      // The base files are either listed in ParsedBase or will be populated now
      for (HadoopShims.HdfsFileStatusWithId fileId : base.getFiles(fs, useFileId)) {
        baseAndDeltaFiles.add(new FileInfo(fileId,
            isBaseInRawFormat() ? ORIGINAL_BASE : ACID_SCHEMA));
      }
    }
    for (AcidUtils.ParsedDelta parsedDelta : currentDirectories) {
      if (parsedDelta.isDeleteDelta()) {
        continue;
      }
      if (parsedDelta.isRawFormat() && parsedDelta.getMinWriteId() != parsedDelta.getMaxWriteId()) {
        // delta/ with files in raw format are a result of Load Data (as opposed to compaction
        // or streaming ingest so must have interval length == 1.
        throw new IllegalStateException(
            "Delta in " + ORIGINAL_BASE + " format but txnIds are out of range: " + parsedDelta.getPath());
      }

      AcidUtils.AcidBaseFileType deltaType =
          parsedDelta.isRawFormat() ? ORIGINAL_BASE : ACID_SCHEMA;
      // The bucket files are either listed in ParsedDelta or will be populated now
      for (HadoopShims.HdfsFileStatusWithId deltaFile : parsedDelta.getFiles(fs, useFileId)) {
        baseAndDeltaFiles.add(new FileInfo(deltaFile, deltaType));
      }
    }

    return baseAndDeltaFiles;
  }
All original, base and delta bucket files that should be read by this reader
@throws IOException ex
ql/src/java/org/apache/hadoop/hive/ql/io/AcidDirectory.java