docs: private boolean addConstraintPredicates(KuduTable table, KuduScanToken.KuduScanTokenBuilder builder,
              TupleDomain<ColumnHandle> constraintSummary)
      {
          if (constraintSummary.isNone()) {
              return false;
          }
          else if (!constraintSummary.isAll()) {
              Schema schema = table.getSchema();
              for (TupleDomain.ColumnDomain<ColumnHandle> columnDomain : constraintSummary.getColumnDomains().get()) {
                  int position = ((KuduColumnHandle) columnDomain.getColumn()).getOrdinalPosition();
                  ColumnSchema columnSchema = schema.getColumnByIndex(position);
                  Domain domain = columnDomain.getDomain();
                  if (domain.isNone()) {
                      return false;
                  }
                  else if (domain.isAll()) {
                      // no restriction
                  }
                  else if (domain.isOnlyNull()) {
                      builder.addPredicate(KuduPredicate.newIsNullPredicate(columnSchema));
                  }
                  else if (domain.getValues().isAll() && domain.isNullAllowed()) {
                      builder.addPredicate(KuduPredicate.newIsNotNullPredicate(columnSchema));
                  }
                  else if (domain.isSingleValue()) {
                      KuduPredicate predicate = createEqualsPredicate(columnSchema, domain.getSingleValue());
                      builder.addPredicate(predicate);
                  }
                  else {
                      ValueSet valueSet = domain.getValues();
                      if (valueSet instanceof EquatableValueSet) {
                          DiscreteValues discreteValues = valueSet.getDiscreteValues();
                          KuduPredicate predicate = createInListPredicate(columnSchema, discreteValues);
                          builder.addPredicate(predicate);
                      }
                      else if (valueSet instanceof SortedRangeSet) {
                          Ranges ranges = ((SortedRangeSet) valueSet).getRanges();
                          Range span = ranges.getSpan();
                          Marker low = span.getLow();
                          if (!low.isLowerUnbounded()) {
                              KuduPredicate.ComparisonOp op = (low.getBound() == Marker.Bound.ABOVE)
                                      ? KuduPredicate.ComparisonOp.GREATER : KuduPredicate.ComparisonOp.GREATER_EQUAL;
                              KuduPredicate predicate = createComparisonPredicate(columnSchema, op, low.getValue());
                              builder.addPredicate(predicate);
                          }
                          Marker high = span.getHigh();
                          if (!high.isUpperUnbounded()) {
                              KuduPredicate.ComparisonOp op = (low.getBound() == Marker.Bound.BELOW)
                                      ? KuduPredicate.ComparisonOp.LESS : KuduPredicate.ComparisonOp.LESS_EQUAL;
                              KuduPredicate predicate = createComparisonPredicate(columnSchema, op, high.getValue());
                              builder.addPredicate(predicate);
                          }
                      }
                      else {
                          throw new IllegalStateException("Unexpected domain: " + domain);
                      }
                  }
              }
          }
          return true;
      }