aboutsummaryrefslogtreecommitdiff
path: root/contrib/storage-mongo
diff options
context:
space:
mode:
authorrebase <builds@mapr.com>2018-03-16 14:25:26 -0700
committerAman Sinha <asinha@maprtech.com>2018-10-25 16:08:51 -0700
commit12f57f0ca0ea9651ad763a5c01eb5708ba3f245a (patch)
tree9a153d92cc87ddbb5e5ebdd4a5707e34a3046817 /contrib/storage-mongo
parenta4f62e9b5d0e69585b91042236c1ca68e1d628bc (diff)
DRILL-6381: (Part 3) Planner and Execution implementation to support Secondary Indexes
  1. Index Planning Rules and Plan generators     - DbScanToIndexScanRule: Top level physical planning rule that drives index planning for several relational algebra patterns. - DbScanSortRemovalRule: Physical planning rule for index planning for Sort-based operations.     - Plan Generators: Covering, Non-Covering and Intersect physical plan generators.     - Support planning with functional indexes such as CAST functions.     - Enhance PlannerSettings with several configuration options for indexes.   2. Index Selection and Statistics     - An IndexSelector that support cost-based index selection of covering and non-covering indexes using statistics and collation properties.     - Costing of index intersection for comparison with single-index plans.   3. Planning and execution operators     - Support RangePartitioning physical operator during query planning and execution.     - Support RowKeyJoin physical operator during query planning and execution.     - HashTable and HashJoin changes to support RowKeyJoin and Index Intersection.     - Enhance Materializer to keep track of subscan association with a particular rowkey join.   4. Index Planning utilities     - Utility classes to perform RexNode analysis, including conversion to and from SchemaPath.     - Utility class to analyze filter condition and an input collation to determine output collation.     - Helper classes to maintain index contexts for logical and physical planning phase.     - IndexPlanUtils utility class for various helper methods.   5. Miscellaneous     - Separate physical rel for DirectScan.     - Modify LimitExchangeTranspose rule to handle SingleMergeExchange. - MD-3880: Return correct status from RangePartitionRecordBatch setupNewSchema Co-authored-by: Aman Sinha <asinha@maprtech.com> Co-authored-by: chunhui-shi <cshi@maprtech.com> Co-authored-by: Gautam Parai <gparai@maprtech.com> Co-authored-by: Padma Penumarthy <ppenumar97@yahoo.com> Co-authored-by: Hanumath Rao Maduri <hmaduri@maprtech.com> Conflicts: exec/java-exec/src/main/java/org/apache/drill/exec/physical/config/HashJoinPOP.java exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/ScanBatch.java exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/common/HashPartition.java exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/common/HashTable.java exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/common/HashTableTemplate.java exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/HashJoinBatch.java exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillRelOptUtil.java exec/java-exec/src/main/java/org/apache/drill/exec/planner/fragment/Materializer.java exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillMergeProjectRule.java exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillOptiq.java exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushProjectIntoScanRule.java exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillScanRel.java exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/BroadcastExchangePrel.java exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/DrillDistributionTrait.java exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashJoinPrel.java exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PrelUtil.java exec/java-exec/src/main/java/org/apache/drill/exec/server/options/SystemOptionManager.java exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetPushDownFilter.java exec/java-exec/src/main/resources/drill-module.conf logical/src/main/java/org/apache/drill/common/logical/StoragePluginConfig.java Resolve merge comflicts and compilation issues.
Diffstat (limited to 'contrib/storage-mongo')
-rw-r--r--contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/MongoPushDownFilterForScan.java3
1 files changed, 2 insertions, 1 deletions
diff --git a/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/MongoPushDownFilterForScan.java b/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/MongoPushDownFilterForScan.java
index afe32f225..8ad84c117 100644
--- a/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/MongoPushDownFilterForScan.java
+++ b/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/MongoPushDownFilterForScan.java
@@ -78,7 +78,8 @@ public class MongoPushDownFilterForScan extends StoragePluginOptimizerRule {
newGroupsScan.setFilterPushedDown(true);
final ScanPrel newScanPrel = new ScanPrel(scan, filter.getTraitSet(),
- newGroupsScan, scan.getRowType());
+ newGroupsScan, scan.getRowType(), scan.getTable());
+
if (mongoFilterBuilder.isAllExpressionsConverted()) {
/*
* Since we could convert the entire filter condition expression into an