aboutsummaryrefslogtreecommitdiff
path: root/exec/java-exec/src/main/java/org/apache/drill/exec/planner
diff options
context:
space:
mode:
authorAman Sinha <asinha@maprtech.com>2018-09-13 03:55:47 -0700
committerAman Sinha <asinha@maprtech.com>2018-10-25 16:08:51 -0700
commit3c2f9ab6c0ed290bed3bc440d72a670bbe512b5a (patch)
tree3d438fad0803982a490507cd06fc0f387bb332c0 /exec/java-exec/src/main/java/org/apache/drill/exec/planner
parent2a9e51f8a68872a77e38ee91be107868f60fd334 (diff)
DRILL-6381: (Part 5) Update Javadoc for a few interfaces.
Diffstat (limited to 'exec/java-exec/src/main/java/org/apache/drill/exec/planner')
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/index/IndexCollection.java4
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/index/IndexDefinition.java18
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/index/IndexDescriptor.java15
3 files changed, 34 insertions, 3 deletions
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/index/IndexCollection.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/index/IndexCollection.java
index 9b4d170e0..f5ab173e9 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/index/IndexCollection.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/index/IndexCollection.java
@@ -21,7 +21,9 @@ import org.apache.calcite.rex.RexNode;
import org.apache.drill.common.expression.SchemaPath;
import org.apache.drill.exec.physical.base.IndexGroupScan;
-// Interface used to describe an index collection
+/**
+ * Interface used to describe an index collection
+ */
public interface IndexCollection extends Iterable<IndexDescriptor> {
/**
* Types of an index collections: NATIVE_SECONDARY_INDEX_COLLECTION, EXTERNAL_SECONDARY_INDEX_COLLECTION
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/index/IndexDefinition.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/index/IndexDefinition.java
index 995d23c57..bfbccc2a7 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/index/IndexDefinition.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/index/IndexDefinition.java
@@ -26,7 +26,9 @@ import java.util.Collection;
import java.util.List;
import java.util.Map;
-// Interface used to define an index,
+/**
+ * Top level interface used to define an index.
+ */
public interface IndexDefinition {
/**
* Types of an index: PRIMARY_KEY_INDEX, NATIVE_SECONDARY_INDEX, EXTERNAL_SECONDARY_INDEX
@@ -87,13 +89,25 @@ public interface IndexDefinition {
*/
IndexType getIndexType();
-
+ /**
+ * Get the list of columns in the index key.
+ */
List<LogicalExpression> getIndexColumns();
+ /**
+ * Get the list of columns that are in the 'included' or 'covered' fields.
+ */
List<LogicalExpression> getNonIndexColumns();
+ /**
+ * Get the collation property (physical ordering) of the index.
+ */
RelCollation getCollation();
+ /**
+ * Get a mapping of the LogicalExpresion/SchemaPath to its field collation
+ * - e.g Ascending/Descending, Nulls First/Nulls Last
+ */
Map<LogicalExpression, RelFieldCollation> getCollationMap();
/**
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/index/IndexDescriptor.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/index/IndexDescriptor.java
index f355285cc..d43ba8121 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/index/IndexDescriptor.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/index/IndexDescriptor.java
@@ -58,11 +58,26 @@ public interface IndexDescriptor extends IndexDefinition {
*/
boolean supportsFullTextSearch();
+ /**
+ * Get the functional index information associated with this index (Functional indexes are
+ * indexes involving expressions e.g CAST(a as INT).
+ */
FunctionalIndexInfo getFunctionalInfo();
+ /**
+ * Get the total cost of index access (I/O, CPU) in the context of the current query
+ * @param indexProps properties (metrics) of a single index in the context of current query
+ * @param planner Planner instance
+ * @param numProjectedFields Number of projected fields
+ * @param primaryGroupScan Primary table's GroupScan instance
+ * @return a RelOptCost instance representing the total cost
+ */
public RelOptCost getCost(IndexProperties indexProps, RelOptPlanner planner,
int numProjectedFields, GroupScan primaryGroupScan);
+ /**
+ * Get the costing factors associated with the storage/format plugin
+ */
public PluginCost getPluginCostModel();
}