in gobblin-iceberg/src/main/java/org/apache/gobblin/iceberg/GobblinMCEProducer.java [208:247]
private boolean verifyInput(Map<Path, Metrics> newFiles, List<String> oldFiles, List<String> oldFilePrefixes,
OperationType operationType) {
switch (operationType) {
case rewrite_files: {
if (newFiles == null || ((oldFiles == null || oldFiles.isEmpty()) && (oldFilePrefixes == null || oldFilePrefixes
.isEmpty())) || newFiles.isEmpty()) {
log.error("Rewrite files operation must contain newFiles to be added and oldFiles to be deleted");
return false;
}
break;
}
case add_files: {
if (newFiles == null || newFiles.isEmpty()) {
log.error("Add files operation must contain newFiles to be added");
return false;
}
break;
}
case drop_files: {
if ((oldFiles == null || oldFiles.isEmpty()) && (oldFilePrefixes == null || oldFilePrefixes.isEmpty())) {
log.error("Drop files operation must contain old files to be deleted");
return false;
}
break;
}
case change_property: {
if(oldFiles != null) {
log.warn("{} old files detected while no file alteration is performed", oldFiles.size());
}
log.info("Setting GMCE while no file changes need to be performed.");
break;
}
default: {
//unsupported operation
log.error("Unsupported operation type {}", operationType);
return false;
}
}
return true;
}