in paimon-presto-common/src/main/java/org/apache/paimon/presto/PrestoFilterConverter.java [71:98]
public Optional<Predicate> convert(TupleDomain<PrestoColumnHandle> tupleDomain) {
if (tupleDomain.isAll()) {
return Optional.empty();
}
if (!tupleDomain.getDomains().isPresent()) {
return Optional.empty();
}
Map<PrestoColumnHandle, Domain> domainMap = tupleDomain.getDomains().get();
List<Predicate> conjuncts = new ArrayList<>();
for (Map.Entry<PrestoColumnHandle, Domain> entry : domainMap.entrySet()) {
PrestoColumnHandle columnHandle = entry.getKey();
Domain domain = entry.getValue();
int index = rowType.getFieldNames().indexOf(columnHandle.getColumnName());
if (index != -1) {
try {
conjuncts.add(toPredicate(index, columnHandle.getPrestoType(), domain));
} catch (UnsupportedOperationException ignored) {
}
}
}
if (conjuncts.isEmpty()) {
return Optional.empty();
}
return Optional.of(PredicateBuilder.and(conjuncts));
}