in paimon-prestosql-common/src/main/java/org/apache/paimon/prestosql/PrestoSqlFilterConverter.java [74:104]
public Optional<Predicate> convert(TupleDomain<PrestoSqlColumnHandle> tupleDomain) {
if (tupleDomain.isAll()) {
// TODO alwaysTrue
return Optional.empty();
}
if (!tupleDomain.getDomains().isPresent()) {
// TODO alwaysFalse
return Optional.empty();
}
Map<PrestoSqlColumnHandle, Domain> domainMap = tupleDomain.getDomains().get();
List<Predicate> conjuncts = new ArrayList<>();
List<String> fieldNames = FieldNameUtils.fieldNames(rowType);
for (Map.Entry<PrestoSqlColumnHandle, Domain> entry : domainMap.entrySet()) {
PrestoSqlColumnHandle columnHandle = entry.getKey();
Domain domain = entry.getValue();
int index = fieldNames.indexOf(columnHandle.getColumnName());
if (index != -1) {
try {
conjuncts.add(toPredicate(index, columnHandle.getPrestoSqlType(), domain));
} catch (UnsupportedOperationException ignored) {
}
}
}
if (conjuncts.isEmpty()) {
return Optional.empty();
}
return Optional.of(and(conjuncts));
}