@Override
  public Map<String, String> computeBasicStatistics(Partish partish) {
    Map<String, String> stats;
    if (!getStatsSource().equals(HiveMetaHook.ICEBERG)) {
      stats = partish.getPartParameters();

      if (!StatsSetupConst.areBasicStatsUptoDate(stats)) {
        // populate quick-stats
        stats = getBasicStatistics(partish, true);
      }
      return stats;
    }
    org.apache.hadoop.hive.ql.metadata.Table hmsTable = partish.getTable();
    // For write queries where rows got modified, don't fetch from cache as values could have changed.
    Table table = getTable(hmsTable);
    Snapshot snapshot = IcebergTableUtil.getTableSnapshot(table, hmsTable);

    if (snapshot != null && table.spec().isPartitioned()) {
      PartitionStatisticsFile statsFile = IcebergTableUtil.getPartitionStatsFile(table, snapshot.snapshotId());
      if (statsFile == null) {
        statsFile = PartitionStatsHandler.computeAndWriteStatsFile(table);

        table.updatePartitionStatistics()
            .setPartitionStatistics(statsFile)
            .commit();
      }
    }
    return getBasicStatistics(partish);
  }
@param jobConf Job configuration for InputFormat to access
@param deserializer Deserializer
@param exprNodeDesc Filter expression extracted by Hive
@return Entire filter to take advantage of Hive's pruning as well as Iceberg's pruning.
iceberg/iceberg-handler/src/main/java/org/apache/iceberg/mr/hive/HiveIcebergStorageHandler.java