private static void addInsertNonDirectoryInformation(Path p, FileSystem fileSystem,
      InsertEventRequestData insertData) throws IOException {
    insertData.addToFilesAdded(p.toString());
    FileChecksum cksum = fileSystem.getFileChecksum(p);
    String acidDirPath = AcidUtils.getFirstLevelAcidDirPath(p.getParent(), fileSystem);
    // File checksum is not implemented for local filesystem (RawLocalFileSystem)
    if (cksum != null) {
      String checksumString =
          StringUtils.byteToHexString(cksum.getBytes(), 0, cksum.getLength());
      insertData.addToFilesAddedChecksum(checksumString);
    } else {
      // Add an empty checksum string for filesystems that don't generate one
      insertData.addToFilesAddedChecksum("");
    }

    // acid dir will be present only for acid write operations.
    if (acidDirPath != null) {
      insertData.addToSubDirectoryList(acidDirPath);
    }
  }
This method helps callers trigger an INSERT event for DML queries without having to deal with
HMS objects. This takes java object types as arguments.
@param dbName Name of the hive database this table belongs to.
@param tblName Name of the hive table this event is for.
@param partitionSpec Map containing key/values for each partition column. Can be null if the event is for a table
@param replace boolean to indicate whether the filelist is replacement of existing files. Treated as additions otherwise
@param newFiles List of file paths affected (added/replaced) by this DML query. Can be null
@throws HiveException if the table or partition does not exist or other internal errors in fetching them
ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java