in java/tsfile/src/main/java/org/apache/tsfile/read/query/dataset/QueryDataSet.java [153:181]
public boolean withoutNullFilter(RowRecord rowRecord) {
boolean anyNullFlag =
(withoutNullColumnsIndex == null)
? rowRecord.hasNullField()
: (withoutNullColumnsIndex.isEmpty() && rowRecord.hasNullField());
boolean allNullFlag = (withoutNullColumnsIndex != null) || rowRecord.isAllNull();
if (withoutNullColumnsIndex != null) {
for (int index : withoutNullColumnsIndex) {
Field field = rowRecord.getFields().get(index);
if (field == null || field.getDataType() == null) {
anyNullFlag = true;
if (withoutAnyNull) {
break;
}
} else {
allNullFlag = false;
if (withoutAllNull) {
break;
}
}
}
}
if (withoutNullColumnsIndex != null && withoutNullColumnsIndex.isEmpty()) {
allNullFlag = rowRecord.isAllNull();
}
return (withoutAllNull && allNullFlag) || (withoutAnyNull && anyNullFlag);
}