Interface LexicographicalRangeIndexes

  • All Known Implementing Classes:
    IndexedUtf8LexicographicalRangeIndexes

    public interface LexicographicalRangeIndexes
    An optimized column value BitmapColumnIndex provider for columns which are stored in 'lexicographical' order, allowing short-circuit processing of string value ranges. This index does not match null values, union the results of this index with NullValueIndex if null values should be considered part of the value range.
    • Method Detail

      • forRange

        @Nullable
        BitmapColumnIndex forRange​(@Nullable
                                   String startValue,
                                   boolean startStrict,
                                   @Nullable
                                   String endValue,
                                   boolean endStrict)
        Get a BitmapColumnIndex corresponding to the values supplied in the specified range. If supplied starting value is null, the range will begin at the first non-null value in the underlying value dictionary. If the end value is null, the range will extend to the last value in the underlying value dictionary.

        If this method returns null it indicates that there is no index available that matches the requested range and a ValueMatcher must be used instead.

      • forRange

        @Nullable
        BitmapColumnIndex forRange​(@Nullable
                                   String startValue,
                                   boolean startStrict,
                                   @Nullable
                                   String endValue,
                                   boolean endStrict,
                                   com.google.common.base.Predicate<String> matcher)
        Get a BitmapColumnIndex corresponding to the values supplied in the specified range whose dictionary ids also match some predicate, such as to match a prefix. If supplied starting value is null, the range will begin at the first non-null value in the underlying value dictionary that matches the predicate. If the end value is null, the range will extend to the last value in the underlying value dictionary that matches the predicate.

        If the provided matcher is always true, it's better to use the other forRange(String, boolean, String, boolean) method.

        If this method returns null it indicates that there is no index available that matches the requested range and a ValueMatcher must be used instead.