@Override
  public void onUpdatePartitionColumnStatInBatch(UpdatePartitionColumnStatEventBatch updatePartColStatEventBatch,
                                                 Connection dbConn, SQLGenerator sqlGenerator)
          throws MetaException {
    List<NotificationEvent> eventBatch = new ArrayList<>();
    List<ListenerEvent> listenerEventBatch = new ArrayList<>();
    for (int i = 0; i < updatePartColStatEventBatch.getNumEntries(); i++) {
      UpdatePartitionColumnStatEvent updatePartColStatEvent = updatePartColStatEventBatch.getPartColStatEvent(i);
      UpdatePartitionColumnStatMessage msg = MessageBuilder.getInstance()
              .buildUpdatePartitionColumnStatMessage(updatePartColStatEvent.getPartColStats(),
                      updatePartColStatEvent.getPartVals(),
                      updatePartColStatEvent.getPartParameters(),
                      updatePartColStatEvent.getTableObj(),
                      updatePartColStatEvent.getWriteId());

      ColumnStatisticsDesc statDesc = updatePartColStatEvent.getPartColStats().getStatsDesc();
      NotificationEvent event =
              new NotificationEvent(0, now(), EventType.UPDATE_PARTITION_COLUMN_STAT.toString(),
                      msgEncoder.getSerializer().serialize(msg));
      event.setCatName(statDesc.isSetCatName() ? statDesc.getCatName() : getDefaultCatalog(conf));
      event.setDbName(statDesc.getDbName());
      event.setTableName(statDesc.getTableName());
      eventBatch.add(event);
      listenerEventBatch.add(updatePartColStatEvent);
    }
    try {
      addNotificationLogBatch(eventBatch, listenerEventBatch, dbConn, sqlGenerator);
    } catch (SQLException e) {
      throw new MetaException("Unable to execute direct SQL " + StringUtils.stringifyException(e));
    }
  }
@param allocWriteIdEvent Alloc write id event
@throws MetaException
hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/listener/DbNotificationListener.java