@Override public Map<String, Map<String, String>> updatePartitionColumnStatisticsInBatch(
          Map<String, ColumnStatistics> partColStatsMap,
          Table tbl, List<TransactionalMetaStoreEventListener> listeners,
          String validWriteIds, long writeId)
          throws NoSuchObjectException, MetaException, InvalidObjectException, InvalidInputException {
    Map<String, Map<String, String>> result =
            rawStore.updatePartitionColumnStatisticsInBatch(partColStatsMap, tbl, listeners, validWriteIds, writeId);
    if (result == null) {
      return null;
    }

    if (!canUseEvents) {
      //TODO : Do it in one call
      for (Map.Entry entry : result.entrySet()) {
        Map<String, String> newParams = (Map<String, String>) entry.getValue();
        ColumnStatistics colStats = partColStatsMap.get(entry.getKey());
        List<String> partVals = getPartValsFromName(tbl, colStats.getStatsDesc().getPartName());
        updatePartitionColumnStatisticsInCache(colStats, newParams, partVals);
      }
    } else {
      // Usually the cache update using events is done during commit. But for this method,
      // the commit is done internally using direct sql.
      updateCacheUsingEvents();
    }
    return result;
  }
getPartitionSpecsByFilterAndProjection interface is currently non-cacheable.
standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/cache/CachedStore.java