public static <K, V> TimestampedRangeQuery<K, V> withUpperBound(final K upper) {
        return new TimestampedRangeQuery<>(Optional.empty(), Optional.of(upper), ResultOrder.ANY);
    }
Interactive range query using an upper bound to filter the keys returned.
If both {@code <K,V>} are null, RangQuery returns a full range scan.
@param upper The key that specifies the upper bound of the range
@param <K> The key type
@param <V> The value type
streams/src/main/java/org/apache/kafka/streams/query/TimestampedRangeQuery.java