in flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/core/table/source/JdbcFilterPushdownPreparedStatementVisitor.java [105:126]
private Optional<ParameterizedPredicate> renderUnaryOperator(
String operator, ResolvedExpression operand, boolean operandOnLeft) {
if (operand instanceof FieldReferenceExpression) {
Optional<ParameterizedPredicate> fieldPartialPredicate =
this.visit((FieldReferenceExpression) operand);
if (operandOnLeft) {
return fieldPartialPredicate.map(
fieldPred ->
new ParameterizedPredicate(
String.format(
"(%s %s)", fieldPred.getPredicate(), operator)));
} else {
return fieldPartialPredicate.map(
fieldPred ->
new ParameterizedPredicate(
String.format(
"(%s %s)", operator, fieldPred.getPredicate())));
}
} else {
return Optional.empty();
}
}