This is an automated email from the ASF dual-hosted git repository.

cwylie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/druid.git


The following commit(s) were added to refs/heads/master by this push:
     new 45c020060c7 better javadoc for ColumnIndexSupplier (#16663)
45c020060c7 is described below

commit 45c020060c7ed6a6dcf96bf6ce9a6873834a38a3
Author: Clint Wylie <[email protected]>
AuthorDate: Thu Jun 27 17:53:20 2024 -0700

    better javadoc for ColumnIndexSupplier (#16663)
    
    Updated javadoc for `ColumnIndexSupplier.as` to elaborate on the types of 
indexes callers might want to ask for from the method, as well as help 
implementors know what kinds of indexes they should implement to participate in 
filtering
---
 .../druid/segment/column/ColumnIndexSupplier.java  | 33 ++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git 
a/processing/src/main/java/org/apache/druid/segment/column/ColumnIndexSupplier.java
 
b/processing/src/main/java/org/apache/druid/segment/column/ColumnIndexSupplier.java
index 7e2b21a25d0..73a235ce8ef 100644
--- 
a/processing/src/main/java/org/apache/druid/segment/column/ColumnIndexSupplier.java
+++ 
b/processing/src/main/java/org/apache/druid/segment/column/ColumnIndexSupplier.java
@@ -19,6 +19,8 @@
 
 package org.apache.druid.segment.column;
 
+import org.apache.druid.query.filter.ColumnIndexSelector;
+
 import javax.annotation.Nullable;
 
 /**
@@ -41,6 +43,37 @@ public interface ColumnIndexSupplier
    * which can greatly reduce the total number of rows which need to be 
scanned and processed.
    *
    * Objects returned by this method are not thread-safe.
+   *
+   * There are several built-in index classes which can be passed as an 
argument to this method when used from
+   * {@link 
org.apache.druid.query.filter.Filter#getBitmapColumnIndex(ColumnIndexSelector)}.
 Implementors of this
+   * interface should provide as many of them as possible to participate fully 
in as many
+   * {@link org.apache.druid.query.filter.Filter} as possible, as different 
filters require different index types,
+   * and may prefer some over others.
+   *
+   * Indexes for matching a row to a specific value:
+   * @see org.apache.druid.segment.index.semantic.NullValueIndex
+   * @see org.apache.druid.segment.index.semantic.ValueIndexes
+   *
+   * Indexes for matching a row to any of a set of values:
+   * @see org.apache.druid.segment.index.semantic.ValueSetIndexes
+   * @see org.apache.druid.segment.index.semantic.Utf8ValueSetIndexes
+   *
+   * Indexes for matching a row to a range of values:
+   * @see org.apache.druid.segment.index.semantic.LexicographicalRangeIndexes
+   * @see org.apache.druid.segment.index.semantic.NumericRangeIndexes
+   *
+   * Indexes for matching an array element of a row to a specific value:
+   * @see org.apache.druid.segment.index.semantic.ArrayElementIndexes
+   *
+   * Indexes for matching a row using a {@link 
org.apache.druid.query.filter.DruidPredicateFactory}:
+   * @see org.apache.druid.segment.index.semantic.DruidPredicateIndexes
+   *
+   * Speciality indexes:
+   * @see org.apache.druid.segment.index.semantic.SpatialIndex
+   *
+   * Low level access to implementation specific index stuff not particularly 
suitable for use in filtering:
+   * @see org.apache.druid.segment.index.semantic.DictionaryEncodedValueIndex
+   * @see 
org.apache.druid.segment.index.semantic.DictionaryEncodedStringValueIndex
    */
   @Nullable
   <T> T as(Class<T> clazz);


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to