in spark-load/spark-load-common/src/main/java/org/apache/doris/common/io/Hll.java [186:236]
public void merge(Hll other) {
if (other.type == HLL_DATA_EMPTY) {
return;
}
switch (this.type) { // CHECKSTYLE IGNORE THIS LINE: missing switch default
case HLL_DATA_EMPTY:
this.type = other.type;
switch (other.type) { // CHECKSTYLE IGNORE THIS LINE: missing switch default
case HLL_DATA_EXPLICIT:
this.hashSet.addAll(other.hashSet);
break;
case HLL_DATA_SPARSE:
case HLL_DATA_FULL:
this.registers = new byte[HLL_REGISTERS_COUNT];
System.arraycopy(other.registers, 0, this.registers, 0, HLL_REGISTERS_COUNT);
break;
}
break;
case HLL_DATA_EXPLICIT:
switch (other.type) { // CHECKSTYLE IGNORE THIS LINE: missing switch default
case HLL_DATA_EXPLICIT:
this.hashSet.addAll(other.hashSet);
if (this.hashSet.size() > HLL_EXPLICIT_INT64_NUM) {
convertExplicitToRegister();
this.type = HLL_DATA_FULL;
}
break;
case HLL_DATA_SPARSE:
case HLL_DATA_FULL:
convertExplicitToRegister();
mergeRegisters(other.registers);
this.type = HLL_DATA_FULL;
break;
}
break;
case HLL_DATA_SPARSE:
case HLL_DATA_FULL:
switch (other.type) { // CHECKSTYLE IGNORE THIS LINE: missing switch default
case HLL_DATA_EXPLICIT:
for (long value : other.hashSet) {
update(value);
}
break;
case HLL_DATA_SPARSE:
case HLL_DATA_FULL:
mergeRegisters(other.registers);
break;
}
break;
}
}