public Optional convert()

in paimon-presto-0.236/src/main/java/org/apache/paimon/presto/PrestoFilterConverter.java [72:99]


    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));
    }