private boolean syncPartitions()

in xtable-core/src/main/java/org/apache/xtable/hudi/catalog/HudiCatalogPartitionSyncTool.java [263:298]


  private boolean syncPartitions(
      HoodieTableMetaClient metaClient,
      CatalogTableIdentifier tableIdentifier,
      List<CatalogPartitionEvent> partitionEventList) {
    List<CatalogPartition> newPartitions =
        filterPartitions(
            metaClient.getBasePathV2(),
            partitionEventList,
            CatalogPartitionEvent.PartitionEventType.ADD);
    if (!newPartitions.isEmpty()) {
      log.info("New Partitions " + newPartitions);
      catalogClient.addPartitionsToTable(tableIdentifier, newPartitions);
    }

    List<CatalogPartition> updatePartitions =
        filterPartitions(
            metaClient.getBasePathV2(),
            partitionEventList,
            CatalogPartitionEvent.PartitionEventType.UPDATE);
    if (!updatePartitions.isEmpty()) {
      log.info("Changed Partitions " + updatePartitions);
      catalogClient.updatePartitionsToTable(tableIdentifier, updatePartitions);
    }

    List<CatalogPartition> dropPartitions =
        filterPartitions(
            metaClient.getBasePathV2(),
            partitionEventList,
            CatalogPartitionEvent.PartitionEventType.DROP);
    if (!dropPartitions.isEmpty()) {
      log.info("Drop Partitions " + dropPartitions);
      catalogClient.dropPartitions(tableIdentifier, dropPartitions);
    }

    return !updatePartitions.isEmpty() || !newPartitions.isEmpty() || !dropPartitions.isEmpty();
  }