in flink-connector-kudu/src/main/java/org/apache/flink/connector/kudu/table/utils/KuduTableUtils.java [146:167]
public static Optional<KuduFilterInfo> toKuduFilterInfo(Expression predicate) {
LOG.debug(
"predicate summary: [{}], class: [{}], children: [{}]",
predicate.asSummaryString(),
predicate.getClass(),
predicate.getChildren());
if (predicate instanceof CallExpression) {
CallExpression callExpression = (CallExpression) predicate;
FunctionDefinition functionDefinition = callExpression.getFunctionDefinition();
List<Expression> children = callExpression.getChildren();
if (children.size() == 1) {
return convertUnaryIsNullExpression(functionDefinition, children);
} else if (children.size() == 2
&& !functionDefinition.equals(BuiltInFunctionDefinitions.OR)) {
return convertBinaryComparison(functionDefinition, children);
} else if (!children.isEmpty()
&& functionDefinition.equals(BuiltInFunctionDefinitions.OR)) {
return convertIsInExpression(children);
}
}
return Optional.empty();
}