aboutsummaryrefslogtreecommitdiff
path: root/exec/java-exec/src
diff options
context:
space:
mode:
Diffstat (limited to 'exec/java-exec/src')
-rw-r--r--exec/java-exec/src/main/codegen/data/Parser.tdd2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/dotdrill/View.java28
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/DrillFunctionRegistry.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/FunctionGenerationHelper.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/ops/FragmentContext.java3
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/ops/QueryContext.java4
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/opt/BasicOptimizer.java5
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/physical/config/HashJoinPOP.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/physical/config/MergeJoinPOP.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/physical/config/NestedLoopJoinPOP.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/TopN/TopNBatch.java4
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/HashJoinBatch.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/HashJoinProbe.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/HashJoinProbeTemplate.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/JoinStatus.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/JoinTemplate.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/JoinUtils.java15
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinCreator.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/mergereceiver/MergingRecordBatch.java3
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/orderedpartitioner/OrderedPartitionRecordBatch.java4
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/sort/SortBatch.java4
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/StarColumnHelper.java6
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillAggregateRelBase.java25
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillFilterRelBase.java35
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillJoinRelBase.java22
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillLimitRelBase.java18
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillProjectRelBase.java26
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillRelNode.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillRelOptUtil.java21
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillScanRelBase.java12
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillScreenRelBase.java16
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillStoreRelBase.java14
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillUnionRelBase.java14
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillWindowRelBase.java16
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillWriterRelBase.java14
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/cost/DrillCostBase.java6
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/cost/DrillRelOptCost.java3
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/cost/DrillRelOptCostFactory.java4
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DirPathBuilder.java34
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillAggregateRel.java32
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillAggregateRule.java29
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillConditions.java6
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillConstExecutor.java30
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillFilterRel.java20
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillFilterRule.java20
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillImplementor.java3
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillJoinRel.java30
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillJoinRule.java38
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillLimitRel.java16
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillLimitRule.java23
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillMergeFilterRule.java62
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillMergeProjectRule.java20
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillOptiq.java75
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillProjectRel.java25
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillProjectRule.java21
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushFilterPastProjectRule.java48
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushPartitionFilterIntoScan.java7
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushProjIntoScan.java27
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushProjectPastFilterRule.java8
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushProjectPastJoinRule.java8
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillReduceAggregatesRule.java114
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillReduceExpressionsRule.java24
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillRel.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillRuleSets.java47
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillScanRel.java14
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillScanRule.java12
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillScreenRel.java8
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillSortRel.java24
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillSortRule.java22
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillStoreRel.java10
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillTable.java13
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillUnionRel.java14
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillUnionRule.java24
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillValuesRel.java46
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillValuesRule.java16
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillViewTable.java24
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillWindowRel.java37
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillWindowRule.java20
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillWriterRel.java8
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DynamicDrillTable.java4
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/EnumerableDrillRule.java6
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/PartitionPruningUtil.java4
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/PreProcessLogicalRel.java48
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/RelOptHelper.java8
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/partition/FindPartitionConditions.java35
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/partition/PruneScanRule.java17
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/AggPrelBase.java52
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/AggPruleBase.java10
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/BroadcastExchangePrel.java16
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ComplexToJsonPrel.java10
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ConvertCountToDirectScan.java26
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/DrillDistributionTrait.java9
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/DrillDistributionTraitDef.java26
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ExchangePrel.java6
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/FilterPrel.java16
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/FilterPrule.java10
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/FlattenPrel.java16
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashAggPrel.java40
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashAggPrule.java47
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashJoinPrel.java27
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashJoinPrule.java14
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashToMergeExchangePrel.java22
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashToRandomExchangePrel.java22
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/JoinPrel.java26
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/JoinPruleBase.java22
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/LimitPrel.java16
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/LimitPrule.java10
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/MergeJoinPrel.java26
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/MergeJoinPrule.java20
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/OrderedPartitionExchangePrel.java14
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PlannerSettings.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/Prel.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PrelUtil.java41
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ProducerConsumerPrel.java10
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ProjectAllowDupPrel.java17
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ProjectPrel.java21
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ProjectPrule.java30
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/Prule.java11
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PushLimitToTopN.java8
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ScanPrel.java16
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ScanPrule.java6
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ScreenPrel.java10
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ScreenPrule.java8
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SelectionVectorRemoverPrel.java8
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SingleMergeExchangePrel.java26
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SinglePrel.java10
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SortConvertPrule.java26
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SortPrel.java30
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SortPrule.java12
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/StreamAggPrel.java43
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/StreamAggPrule.java63
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SubsetTransformer.java14
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/TopNPrel.java22
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionAllPrel.java19
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionAllPrule.java14
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionDistinctPrel.java18
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionDistinctPrule.java14
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionExchangePrel.java16
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionPrel.java8
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnorderedDeMuxExchangePrel.java10
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnorderedMuxExchangePrel.java8
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ValuesPrel.java8
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ValuesPrule.java5
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/WindowPrel.java33
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/WindowPrule.java53
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/WriterPrel.java10
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/WriterPrule.java8
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/explain/NumberingRelWriter.java19
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/explain/PrelSequencer.java4
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/ComplexToJsonPrelVisitor.java4
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/ExcessiveExchangeIdentifier.java6
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/FinalColumnReorderer.java12
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/InsertLocalExchangeVisitor.java14
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/JoinPrelRenameVisitor.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/MemoryEstimationVisitor.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/ProducerConsumerPrelVisitor.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RelUniqifier.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RewriteProjectToFlatten.java29
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RexVisitorComplexExprSplitter.java26
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/SelectionVectorPrelVisitor.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/SplitUpComplexExpressions.java32
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/StarColumnConverter.java26
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/SwapHashJoinVisitor.java6
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/Checker.java8
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillConvertletTable.java12
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillExtractConvertlet.java18
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillOperatorTable.java12
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillSqlAggOperator.java40
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillSqlOperator.java22
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillSqlWorker.java53
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DynamicReturnType.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DynamicType.java8
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/FixedRange.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/AbstractSqlHandler.java8
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/CreateTableHandler.java14
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/DefaultSqlHandler.java20
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/DescribeTableHandler.java24
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ExplainHandler.java16
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/SetOptionHandler.java10
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ShowFileHandler.java10
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ShowSchemasHandler.java14
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ShowTablesHandler.java18
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/SqlHandlerConfig.java4
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/SqlHandlerUtil.java21
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/UseSchemaHandler.java6
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ViewHandler.java20
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/CompoundIdentifierConverter.java16
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/DrillCompoundIdentifier.java12
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/DrillParserUtil.java8
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/DrillSqlCall.java10
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlCreateTable.java26
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlCreateView.java20
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlDescribeTable.java22
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlDropView.java22
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlShowFiles.java22
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlShowSchemas.java20
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlShowTables.java18
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlUseSchema.java18
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/UnsupportedOperatorsVisitor.java18
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/impl/DrillParserWithCompoundIdConverter.java10
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/torel/ConversionContext.java23
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/types/DrillFixedRelDataTypeImpl.java36
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/types/DrillRelDataTypeSystem.java39
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/types/RelDataTypeDrillImpl.java16
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/types/RelDataTypeHolder.java8
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/rpc/user/UserSession.java4
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/server/options/FallbackOptionManager.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/server/options/OptionManager.java17
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/server/options/OptionValidator.java5
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/server/options/SystemOptionManager.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/server/options/TypeValidators.java7
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/store/AbstractSchema.java12
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/store/PartitionExplorerImpl.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/store/RecordDataType.java12
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/store/SchemaFactory.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/store/StoragePluginOptimizerRule.java4
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/store/StoragePluginRegistry.java6
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/store/SubSchemaWrapper.java5
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/FileSystemPlugin.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/FileSystemSchemaFactory.java7
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/WorkspaceSchemaFactory.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/InfoSchemaDrillTable.java4
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/InfoSchemaPushFilterIntoRecordGenerator.java8
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/InfoSchemaStoragePlugin.java4
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/InfoSchemaTable.java6
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/RecordGenerator.java12
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/Records.java6
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/SelectedTable.java6
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/store/mock/MockStorageEngine.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/store/pojo/PojoDataType.java6
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/StaticDrillTable.java5
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/SystemTable.java4
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/SystemTablePlugin.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/UnsupportedDataTypeException.java2
-rw-r--r--exec/java-exec/src/test/java/org/apache/drill/PlanTestBase.java4
-rw-r--r--exec/java-exec/src/test/java/org/apache/drill/PlanningBase.java4
-rw-r--r--exec/java-exec/src/test/java/org/apache/drill/exec/planner/logical/FilterSplitTest.java14
-rw-r--r--exec/java-exec/src/test/java/org/apache/drill/exec/sql/TestSqlBracketlessSyntax.java23
240 files changed, 1959 insertions, 1856 deletions
diff --git a/exec/java-exec/src/main/codegen/data/Parser.tdd b/exec/java-exec/src/main/codegen/data/Parser.tdd
index 5485079f1..358b75e78 100644
--- a/exec/java-exec/src/main/codegen/data/Parser.tdd
+++ b/exec/java-exec/src/main/codegen/data/Parser.tdd
@@ -22,7 +22,7 @@
# List of import statements.
imports: [
"org.apache.drill.exec.planner.sql.parser.*",
- "org.eigenbase.util.*",
+ "org.apache.calcite.util.*",
"java.util.*"
]
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/dotdrill/View.java b/exec/java-exec/src/main/java/org/apache/drill/exec/dotdrill/View.java
index c5c62d857..97be73d3c 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/dotdrill/View.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/dotdrill/View.java
@@ -19,17 +19,17 @@ package org.apache.drill.exec.dotdrill;
import java.util.List;
+import org.apache.calcite.avatica.util.TimeUnit;
+import org.apache.calcite.sql.SqlIntervalQualifier;
+import org.apache.calcite.sql.parser.SqlParserPos;
+import org.apache.calcite.sql.type.SqlTypeFamily;
import org.apache.drill.exec.planner.StarColumnHelper;
import org.apache.drill.exec.planner.types.RelDataTypeDrillImpl;
import org.apache.drill.exec.planner.types.RelDataTypeHolder;
-
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.reltype.RelDataTypeFactory;
-import org.eigenbase.reltype.RelDataTypeField;
-import org.eigenbase.sql.SqlIntervalQualifier;
-import org.eigenbase.sql.parser.SqlParserPos;
-import org.eigenbase.sql.type.SqlTypeFamily;
-import org.eigenbase.sql.type.SqlTypeName;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.rel.type.RelDataTypeField;
+import org.apache.calcite.sql.type.SqlTypeName;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
@@ -67,8 +67,8 @@ public class View {
@JsonProperty("type") SqlTypeName type,
@JsonProperty("precision") Integer precision,
@JsonProperty("scale") Integer scale,
- @JsonProperty("startUnit") SqlIntervalQualifier.TimeUnit startUnit,
- @JsonProperty("endUnit") SqlIntervalQualifier.TimeUnit endUnit,
+ @JsonProperty("startUnit") TimeUnit startUnit,
+ @JsonProperty("endUnit") TimeUnit endUnit,
@JsonProperty("fractionalSecondPrecision") Integer fractionalSecondPrecision,
@JsonProperty("isNullable") Boolean isNullable) {
this.name = name;
@@ -108,7 +108,7 @@ public class View {
break;
case INTERVAL_YEAR_MONTH:
case INTERVAL_DAY_TIME:
- p = dataType.getIntervalQualifier().getStartPrecision();
+ p = dataType.getIntervalQualifier().getStartPrecisionPreservingDefault();
default:
break;
}
@@ -163,7 +163,7 @@ public class View {
* Gets the time range start unit of the type qualifier of the interval data
* type descriptor of this field (<i>iff</i> interval type).
*/
- public SqlIntervalQualifier.TimeUnit getStartUnit() {
+ public TimeUnit getStartUnit() {
return null == intervalQualifier ? null : intervalQualifier.getStartUnit();
}
@@ -171,7 +171,7 @@ public class View {
* Gets the time range end unit of the type qualifier of the interval data
* type descriptor of this field (<i>iff</i> interval type).
*/
- public SqlIntervalQualifier.TimeUnit getEndUnit() {
+ public TimeUnit getEndUnit() {
return null == intervalQualifier ? null : intervalQualifier.getEndUnit();
}
@@ -182,7 +182,7 @@ public class View {
* (<i>iff</i> interval type).
*/
public Integer getFractionalSecondPrecision() {
- return null == intervalQualifier ? null : intervalQualifier.getFractionalSecondPrecision();
+ return null == intervalQualifier ? null : intervalQualifier.getFractionalSecondPrecisionPreservingDefault();
}
/**
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/DrillFunctionRegistry.java b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/DrillFunctionRegistry.java
index 8a5af5675..398295e48 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/DrillFunctionRegistry.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/DrillFunctionRegistry.java
@@ -32,7 +32,7 @@ import org.apache.drill.exec.planner.logical.DrillConstExecutor;
import org.apache.drill.exec.planner.sql.DrillOperatorTable;
import org.apache.drill.exec.planner.sql.DrillSqlAggOperator;
import org.apache.drill.exec.planner.sql.DrillSqlOperator;
-import org.eigenbase.sql.SqlOperator;
+import org.apache.calcite.sql.SqlOperator;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Sets;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/FunctionGenerationHelper.java b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/FunctionGenerationHelper.java
index 19cd1d851..bf1e252b6 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/FunctionGenerationHelper.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/FunctionGenerationHelper.java
@@ -29,7 +29,7 @@ import org.apache.drill.common.types.TypeProtos.MinorType;
import org.apache.drill.common.types.Types;
import org.apache.drill.exec.expr.ClassGenerator.HoldingContainer;
import org.apache.drill.exec.expr.HoldingContainerExpression;
-import org.eigenbase.rel.RelFieldCollation.NullDirection;
+import org.apache.calcite.rel.RelFieldCollation.NullDirection;
public class FunctionGenerationHelper {
public static final String COMPARE_TO_NULLS_HIGH = "compare_to_nulls_high";
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/ops/FragmentContext.java b/exec/java-exec/src/main/java/org/apache/drill/exec/ops/FragmentContext.java
index c566a10b6..e6d5acd97 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/ops/FragmentContext.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/ops/FragmentContext.java
@@ -23,7 +23,8 @@ import java.io.IOException;
import java.util.List;
import java.util.Map;
-import net.hydromatic.optiq.SchemaPlus;
+import org.apache.calcite.schema.SchemaPlus;
+import org.apache.calcite.jdbc.SimpleCalciteSchema;
import org.apache.drill.common.config.DrillConfig;
import org.apache.drill.common.exceptions.UserException;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/ops/QueryContext.java b/exec/java-exec/src/main/java/org/apache/drill/exec/ops/QueryContext.java
index cc0265828..bc7277919 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/ops/QueryContext.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/ops/QueryContext.java
@@ -21,8 +21,8 @@ import java.io.IOException;
import java.util.Collection;
import io.netty.buffer.DrillBuf;
-import net.hydromatic.optiq.SchemaPlus;
-import net.hydromatic.optiq.jdbc.SimpleOptiqSchema;
+import org.apache.calcite.schema.SchemaPlus;
+import org.apache.calcite.jdbc.SimpleCalciteSchema;
import org.apache.drill.common.config.DrillConfig;
import org.apache.drill.exec.ExecConstants;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/opt/BasicOptimizer.java b/exec/java-exec/src/main/java/org/apache/drill/exec/opt/BasicOptimizer.java
index 9e60f21d6..6e70506d2 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/opt/BasicOptimizer.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/opt/BasicOptimizer.java
@@ -56,8 +56,9 @@ import org.apache.drill.exec.physical.config.WindowPOP;
import org.apache.drill.exec.rpc.user.UserServer.UserClientConnection;
import org.apache.drill.exec.server.options.OptionManager;
import org.apache.drill.exec.store.StoragePlugin;
-import org.eigenbase.rel.RelFieldCollation.Direction;
-import org.eigenbase.rel.RelFieldCollation.NullDirection;
+import org.apache.drill.exec.work.foreman.ForemanException;
+import org.apache.calcite.rel.RelFieldCollation.Direction;
+import org.apache.calcite.rel.RelFieldCollation.NullDirection;
import java.io.IOException;
import java.util.ArrayList;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/config/HashJoinPOP.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/config/HashJoinPOP.java
index f9cae48e8..80613f5ec 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/config/HashJoinPOP.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/config/HashJoinPOP.java
@@ -26,7 +26,7 @@ import org.apache.drill.exec.physical.base.AbstractBase;
import org.apache.drill.exec.physical.base.PhysicalOperator;
import org.apache.drill.exec.physical.base.PhysicalVisitor;
import org.apache.drill.exec.proto.UserBitShared.CoreOperatorType;
-import org.eigenbase.rel.JoinRelType;
+import org.apache.calcite.rel.core.JoinRelType;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/config/MergeJoinPOP.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/config/MergeJoinPOP.java
index 19f9b0805..47505abb9 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/config/MergeJoinPOP.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/config/MergeJoinPOP.java
@@ -25,7 +25,7 @@ import org.apache.drill.exec.physical.base.AbstractBase;
import org.apache.drill.exec.physical.base.PhysicalOperator;
import org.apache.drill.exec.physical.base.PhysicalVisitor;
import org.apache.drill.exec.proto.UserBitShared.CoreOperatorType;
-import org.eigenbase.rel.JoinRelType;
+import org.apache.calcite.rel.core.JoinRelType;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/config/NestedLoopJoinPOP.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/config/NestedLoopJoinPOP.java
index 8fcade614..fd584ea49 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/config/NestedLoopJoinPOP.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/config/NestedLoopJoinPOP.java
@@ -26,7 +26,7 @@ import org.apache.drill.exec.physical.base.AbstractBase;
import org.apache.drill.exec.physical.base.PhysicalOperator;
import org.apache.drill.exec.physical.base.PhysicalVisitor;
import org.apache.drill.exec.proto.UserBitShared.CoreOperatorType;
-import org.eigenbase.rel.JoinRelType;
+import org.apache.calcite.rel.core.JoinRelType;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/TopN/TopNBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/TopN/TopNBatch.java
index a73bdad9f..681c3e339 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/TopN/TopNBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/TopN/TopNBatch.java
@@ -60,8 +60,8 @@ import org.apache.drill.exec.record.selection.SelectionVector2;
import org.apache.drill.exec.record.selection.SelectionVector4;
import org.apache.drill.exec.vector.ValueVector;
import org.apache.drill.exec.vector.complex.AbstractContainerVector;
-import org.eigenbase.rel.RelFieldCollation.Direction;
-import org.eigenbase.rel.RelFieldCollation.NullDirection;
+import org.apache.calcite.rel.RelFieldCollation.Direction;
+import org.apache.calcite.rel.RelFieldCollation.NullDirection;
import com.google.common.base.Stopwatch;
import com.google.common.collect.Lists;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/HashJoinBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/HashJoinBatch.java
index b2fae8ddd..79fe17740 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/HashJoinBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/HashJoinBatch.java
@@ -56,7 +56,7 @@ import org.apache.drill.exec.record.VectorContainer;
import org.apache.drill.exec.record.VectorWrapper;
import org.apache.drill.exec.vector.ValueVector;
import org.apache.drill.exec.vector.complex.AbstractContainerVector;
-import org.eigenbase.rel.JoinRelType;
+import org.apache.calcite.rel.core.JoinRelType;
import com.sun.codemodel.JExpr;
import com.sun.codemodel.JExpression;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/HashJoinProbe.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/HashJoinProbe.java
index 42c7010be..cc6bd5578 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/HashJoinProbe.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/HashJoinProbe.java
@@ -27,7 +27,7 @@ import org.apache.drill.exec.ops.FragmentContext;
import org.apache.drill.exec.physical.impl.common.HashTable;
import org.apache.drill.exec.record.RecordBatch;
import org.apache.drill.exec.record.VectorContainer;
-import org.eigenbase.rel.JoinRelType;
+import org.apache.calcite.rel.core.JoinRelType;
public interface HashJoinProbe {
public static TemplateClassDefinition<HashJoinProbe> TEMPLATE_DEFINITION = new TemplateClassDefinition<HashJoinProbe>(HashJoinProbe.class, HashJoinProbeTemplate.class);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/HashJoinProbeTemplate.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/HashJoinProbeTemplate.java
index dcf73b46d..5531bc7e2 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/HashJoinProbeTemplate.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/HashJoinProbeTemplate.java
@@ -31,7 +31,7 @@ import org.apache.drill.exec.record.RecordBatch;
import org.apache.drill.exec.record.RecordBatch.IterOutcome;
import org.apache.drill.exec.record.VectorContainer;
import org.apache.drill.exec.record.VectorWrapper;
-import org.eigenbase.rel.JoinRelType;
+import org.apache.calcite.rel.core.JoinRelType;
public abstract class HashJoinProbeTemplate implements HashJoinProbe {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/JoinStatus.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/JoinStatus.java
index 5fb258590..8f72d327d 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/JoinStatus.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/JoinStatus.java
@@ -23,7 +23,7 @@ import org.apache.drill.exec.record.RecordBatch;
import org.apache.drill.exec.record.RecordBatch.IterOutcome;
import org.apache.drill.exec.record.VectorWrapper;
import org.apache.drill.exec.record.selection.SelectionVector4;
-import org.eigenbase.rel.JoinRelType;
+import org.apache.calcite.rel.core.JoinRelType;
/**
* The status of the current join. Maintained outside the individually compiled join templates so that we can carry status across multiple schemas.
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/JoinTemplate.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/JoinTemplate.java
index 6da10d2a1..bb43e83dc 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/JoinTemplate.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/JoinTemplate.java
@@ -23,7 +23,7 @@ import org.apache.drill.exec.exception.SchemaChangeException;
import org.apache.drill.exec.ops.FragmentContext;
import org.apache.drill.exec.physical.config.MergeJoinPOP;
import org.apache.drill.exec.record.VectorContainer;
-import org.eigenbase.rel.JoinRelType;
+import org.apache.calcite.rel.core.JoinRelType;
/**
* This join template uses a merge join to combine two ordered streams into a single larger batch. When joining
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/JoinUtils.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/JoinUtils.java
index 7fa79a143..41bf786ee 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/JoinUtils.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/JoinUtils.java
@@ -18,13 +18,12 @@
package org.apache.drill.exec.physical.impl.join;
+import org.apache.calcite.rel.core.Join;
+import org.apache.calcite.rel.core.JoinRelType;
+import org.apache.calcite.rex.RexNode;
import org.apache.drill.common.logical.data.JoinCondition;
-import org.eigenbase.rel.JoinRelBase;
-import org.eigenbase.rel.JoinRelType;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptTable;
-import org.eigenbase.relopt.RelOptUtil;
-import org.eigenbase.rex.RexNode;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptUtil;
import java.util.List;
@@ -74,11 +73,11 @@ public class JoinUtils {
* Otherwise, return false
*/
public static boolean checkCartesianJoin(RelNode relNode, List<Integer> leftKeys, List<Integer> rightKeys) {
- if (relNode instanceof JoinRelBase) {
+ if (relNode instanceof Join) {
leftKeys.clear();
rightKeys.clear();
- JoinRelBase joinRel = (JoinRelBase) relNode;
+ Join joinRel = (Join) relNode;
RelNode left = joinRel.getLeft();
RelNode right = joinRel.getRight();
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java
index 8fce52ec7..b5cb12ea2 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java
@@ -55,7 +55,7 @@ import org.apache.drill.exec.record.VectorWrapper;
import org.apache.drill.exec.vector.AllocationHelper;
import org.apache.drill.exec.vector.ValueVector;
import org.apache.drill.exec.vector.complex.AbstractContainerVector;
-import org.eigenbase.rel.JoinRelType;
+import org.apache.calcite.rel.core.JoinRelType;
import com.google.common.base.Preconditions;
import com.sun.codemodel.JClass;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinCreator.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinCreator.java
index d6b566cce..7d100afa9 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinCreator.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinCreator.java
@@ -24,7 +24,7 @@ import org.apache.drill.exec.ops.FragmentContext;
import org.apache.drill.exec.physical.config.MergeJoinPOP;
import org.apache.drill.exec.physical.impl.BatchCreator;
import org.apache.drill.exec.record.RecordBatch;
-import org.eigenbase.rel.JoinRelType;
+import org.apache.calcite.rel.core.JoinRelType;
import com.google.common.base.Preconditions;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/mergereceiver/MergingRecordBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/mergereceiver/MergingRecordBatch.java
index b8ef690f5..3cf285723 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/mergereceiver/MergingRecordBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/mergereceiver/MergingRecordBatch.java
@@ -75,7 +75,8 @@ import org.apache.drill.exec.vector.AllocationHelper;
import org.apache.drill.exec.vector.CopyUtil;
import org.apache.drill.exec.vector.FixedWidthVector;
import org.apache.drill.exec.vector.ValueVector;
-import org.eigenbase.rel.RelFieldCollation.Direction;
+import org.apache.calcite.rel.RelFieldCollation.Direction;
+import org.apache.calcite.rel.RelFieldCollation.NullDirection;
import parquet.Preconditions;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/orderedpartitioner/OrderedPartitionRecordBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/orderedpartitioner/OrderedPartitionRecordBatch.java
index 42b1080bd..b26c78a03 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/orderedpartitioner/OrderedPartitionRecordBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/orderedpartitioner/OrderedPartitionRecordBatch.java
@@ -69,8 +69,8 @@ import org.apache.drill.exec.record.selection.SelectionVector4;
import org.apache.drill.exec.vector.AllocationHelper;
import org.apache.drill.exec.vector.IntVector;
import org.apache.drill.exec.vector.ValueVector;
-import org.eigenbase.rel.RelFieldCollation.Direction;
-import org.eigenbase.rel.RelFieldCollation.NullDirection;
+import org.apache.calcite.rel.RelFieldCollation.Direction;
+import org.apache.calcite.rel.RelFieldCollation.NullDirection;
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/sort/SortBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/sort/SortBatch.java
index 6f19e91d5..0a097c1f4 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/sort/SortBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/sort/SortBatch.java
@@ -42,8 +42,8 @@ import org.apache.drill.exec.record.VectorAccessible;
import org.apache.drill.exec.record.WritableBatch;
import org.apache.drill.exec.record.selection.SelectionVector2;
import org.apache.drill.exec.record.selection.SelectionVector4;
-import org.eigenbase.rel.RelFieldCollation.Direction;
-import org.eigenbase.rel.RelFieldCollation.NullDirection;
+import org.apache.calcite.rel.RelFieldCollation.Direction;
+import org.apache.calcite.rel.RelFieldCollation.NullDirection;
import com.sun.codemodel.JConditional;
import com.sun.codemodel.JExpr;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.java
index 95d062c31..ca93a7214 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.java
@@ -66,7 +66,7 @@ import org.apache.drill.exec.vector.ValueVector;
import org.apache.drill.exec.vector.complex.AbstractContainerVector;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
-import org.eigenbase.rel.RelFieldCollation.Direction;
+import org.apache.calcite.rel.RelFieldCollation.Direction;
import com.google.common.base.Stopwatch;
import com.google.common.collect.Iterators;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/StarColumnHelper.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/StarColumnHelper.java
index d288479ad..9034f0192 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/StarColumnHelper.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/StarColumnHelper.java
@@ -22,9 +22,9 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.rex.RexInputRef;
-import org.eigenbase.rex.RexNode;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rex.RexInputRef;
+import org.apache.calcite.rex.RexNode;
public class StarColumnHelper {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillAggregateRelBase.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillAggregateRelBase.java
index c733f7755..e0f9e348b 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillAggregateRelBase.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillAggregateRelBase.java
@@ -21,24 +21,25 @@ import java.util.BitSet;
import java.util.List;
import org.apache.drill.exec.planner.cost.DrillCostBase.DrillCostFactory;
-import org.eigenbase.rel.AggregateCall;
-import org.eigenbase.rel.AggregateRelBase;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptCost;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.rel.core.Aggregate;
+import org.apache.calcite.rel.core.AggregateCall;
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.util.ImmutableBitSet;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelTraitSet;
/**
* Base class for logical and physical Aggregations implemented in Drill
*/
-public abstract class DrillAggregateRelBase extends AggregateRelBase implements DrillRelNode {
+public abstract class DrillAggregateRelBase extends Aggregate implements DrillRelNode {
- public DrillAggregateRelBase(RelOptCluster cluster, RelTraitSet traits, RelNode child, BitSet groupSet,
- List<AggregateCall> aggCalls) throws InvalidRelException {
- super(cluster, traits, child, groupSet, aggCalls);
+ public DrillAggregateRelBase(RelOptCluster cluster, RelTraitSet traits, RelNode child, boolean indicator,
+ ImmutableBitSet groupSet, List<ImmutableBitSet> groupSets, List<AggregateCall> aggCalls) throws InvalidRelException {
+ super(cluster, traits, child, indicator, groupSet, groupSets, aggCalls);
}
@Override
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillFilterRelBase.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillFilterRelBase.java
index 7813d15b6..c52dedece 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillFilterRelBase.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillFilterRelBase.java
@@ -23,24 +23,25 @@ import org.apache.drill.exec.planner.cost.DrillCostBase.DrillCostFactory;
import org.apache.drill.exec.planner.logical.DrillOptiq;
import org.apache.drill.exec.planner.logical.DrillParseContext;
import org.apache.drill.exec.planner.physical.PrelUtil;
-import org.eigenbase.rel.FilterRelBase;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.metadata.RelMetadataQuery;
-import org.eigenbase.relopt.Convention;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptCost;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelOptUtil;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.rex.RexUtil;
+
+import org.apache.calcite.rel.core.Filter;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.metadata.RelMetadataQuery;
+import org.apache.calcite.plan.Convention;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelOptUtil;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.rex.RexUtil;
import java.util.List;
/**
* Base class for logical and physical Filters implemented in Drill
*/
-public abstract class DrillFilterRelBase extends FilterRelBase implements DrillRelNode {
+public abstract class DrillFilterRelBase extends Filter implements DrillRelNode {
private final int numConjuncts;
private final List<RexNode> conjunctions;
@@ -52,7 +53,7 @@ public abstract class DrillFilterRelBase extends FilterRelBase implements DrillR
// that repeated calls to the costing function can use the saved copy
conjunctions = RelOptUtil.conjunctions(condition);
numConjuncts = conjunctions.size();
- assert numConjuncts >= 1;
+ // assert numConjuncts >= 1;
}
@@ -61,7 +62,7 @@ public abstract class DrillFilterRelBase extends FilterRelBase implements DrillR
if(PrelUtil.getSettings(getCluster()).useDefaultCosting()) {
return super.computeSelfCost(planner).multiplyBy(.1);
}
- RelNode child = this.getChild();
+ RelNode child = this.getInput();
double inputRows = RelMetadataQuery.getRowCount(child);
double cpuCost = estimateCpuCost();
DrillCostFactory costFactory = (DrillCostFactory)planner.getCostFactory();
@@ -69,7 +70,7 @@ public abstract class DrillFilterRelBase extends FilterRelBase implements DrillR
}
protected LogicalExpression getFilterExpression(DrillParseContext context){
- return DrillOptiq.toDrill(context, getChild(), getCondition());
+ return DrillOptiq.toDrill(context, getInput(), getCondition());
}
/* Given the condition (C1 and C2 and C3 and ... C_n), here is how to estimate cpu cost of FILTER :
@@ -78,12 +79,12 @@ public abstract class DrillFilterRelBase extends FilterRelBase implements DrillR
* cpu_cost = #_of_comparison * DrillCostBase_COMPARE_CPU_COST;
*/
private double estimateCpuCost() {
- RelNode child = this.getChild();
+ RelNode child = this.getInput();
double compNum = RelMetadataQuery.getRowCount(child);
for (int i = 0; i< numConjuncts; i++) {
RexNode conjFilter = RexUtil.composeConjunction(this.getCluster().getRexBuilder(), conjunctions.subList(0, i + 1), false);
- compNum += FilterRelBase.estimateFilteredRows(child, conjFilter);
+ compNum += Filter.estimateFilteredRows(child, conjFilter);
}
return compNum * DrillCostBase.COMPARE_CPU_COST;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillJoinRelBase.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillJoinRelBase.java
index 3b3aa1adc..73ccf2394 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillJoinRelBase.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillJoinRelBase.java
@@ -23,23 +23,23 @@ import java.util.List;
import org.apache.drill.exec.planner.cost.DrillCostBase.DrillCostFactory;
import org.apache.drill.exec.planner.physical.PrelUtil;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.JoinRelBase;
-import org.eigenbase.rel.JoinRelType;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptCost;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.rex.RexNode;
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.core.Join;
+import org.apache.calcite.rel.core.JoinRelType;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rex.RexNode;
import com.google.common.collect.Lists;
/**
* Base class for logical and physical Joins implemented in Drill.
*/
-public abstract class DrillJoinRelBase extends JoinRelBase implements DrillRelNode {
+public abstract class DrillJoinRelBase extends Join implements DrillRelNode {
protected List<Integer> leftKeys = Lists.newArrayList();
protected List<Integer> rightKeys = Lists.newArrayList() ;
private final double joinRowFactor;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillLimitRelBase.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillLimitRelBase.java
index 11164fbd1..a19dff745 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillLimitRelBase.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillLimitRelBase.java
@@ -20,15 +20,15 @@ package org.apache.drill.exec.planner.common;
import org.apache.drill.exec.planner.cost.DrillCostBase;
import org.apache.drill.exec.planner.cost.DrillCostBase.DrillCostFactory;
import org.apache.drill.exec.planner.physical.PrelUtil;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.RelWriter;
-import org.eigenbase.rel.SingleRel;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptCost;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.rex.RexLiteral;
-import org.eigenbase.rex.RexNode;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.RelWriter;
+import org.apache.calcite.rel.SingleRel;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rex.RexLiteral;
+import org.apache.calcite.rex.RexNode;
/**
* Base class for logical and physical Limits implemented in Drill
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillProjectRelBase.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillProjectRelBase.java
index 7cf98cde5..51b4e3fd6 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillProjectRelBase.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillProjectRelBase.java
@@ -30,17 +30,17 @@ import org.apache.drill.exec.planner.cost.DrillCostBase.DrillCostFactory;
import org.apache.drill.exec.planner.logical.DrillOptiq;
import org.apache.drill.exec.planner.logical.DrillParseContext;
import org.apache.drill.exec.planner.physical.PrelUtil;
-import org.eigenbase.rel.ProjectRelBase;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.metadata.RelMetadataQuery;
-import org.eigenbase.relopt.Convention;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptCost;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.util.Pair;
+import org.apache.calcite.rel.core.Project;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.metadata.RelMetadataQuery;
+import org.apache.calcite.plan.Convention;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.util.Pair;
import com.google.common.collect.Lists;
@@ -48,7 +48,7 @@ import com.google.common.collect.Lists;
*
* Base class for logical and physical Project implemented in Drill
*/
-public abstract class DrillProjectRelBase extends ProjectRelBase implements DrillRelNode {
+public abstract class DrillProjectRelBase extends Project implements DrillRelNode {
protected DrillProjectRelBase(Convention convention, RelOptCluster cluster, RelTraitSet traits, RelNode child, List<RexNode> exps,
RelDataType rowType) {
super(cluster, traits, child, exps, rowType, Flags.BOXED);
@@ -93,7 +93,7 @@ public abstract class DrillProjectRelBase extends ProjectRelBase implements Dril
for (Pair<RexNode, String> pair : projects()) {
if (! StarColumnHelper.subsumeColumn(starColPrefixes, pair.right)) {
- LogicalExpression expr = DrillOptiq.toDrill(context, getChild(), pair.left);
+ LogicalExpression expr = DrillOptiq.toDrill(context, getInput(), pair.left);
expressions.add(new NamedExpression(expr, FieldReference.getWithQuotedRef(pair.right)));
}
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillRelNode.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillRelNode.java
index fd04cddb0..a59b5cdb1 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillRelNode.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillRelNode.java
@@ -18,7 +18,7 @@
package org.apache.drill.exec.planner.common;
-import org.eigenbase.rel.RelNode;
+import org.apache.calcite.rel.RelNode;
public interface DrillRelNode extends RelNode {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillRelOptUtil.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillRelOptUtil.java
index bbe7cf35f..cea8fec22 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillRelOptUtil.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillRelOptUtil.java
@@ -21,18 +21,18 @@ import java.util.AbstractList;
import java.util.List;
import com.google.common.collect.Lists;
+import org.apache.calcite.plan.RelOptUtil;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.logical.LogicalCalc;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeField;
+import org.apache.calcite.rex.RexInputRef;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.sql.type.SqlTypeName;
+import org.apache.calcite.util.Pair;
import org.apache.drill.common.types.TypeProtos;
import org.apache.drill.common.types.Types;
-import org.apache.drill.exec.planner.logical.DrillOptiq;
import org.apache.drill.exec.resolver.TypeCastRules;
-import org.eigenbase.rel.CalcRel;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.reltype.RelDataTypeField;
-import org.eigenbase.rex.RexInputRef;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.sql.type.SqlTypeName;
-import org.eigenbase.util.Pair;
/**
* Utility class that is a subset of the RelOptUtil class and is a placeholder for Drill specific
@@ -116,6 +116,7 @@ public abstract class DrillRelOptUtil {
fieldNames.get(index));
}
};
- return CalcRel.createProject(rel, refs, true);
+ return RelOptUtil.createRename(rel, fieldNames);
+ // return Calc.createProject(rel, refs, true);
}
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillScanRelBase.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillScanRelBase.java
index 33581a38f..9da7d3684 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillScanRelBase.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillScanRelBase.java
@@ -18,18 +18,18 @@
package org.apache.drill.exec.planner.common;
import org.apache.drill.exec.planner.logical.DrillTable;
-import org.eigenbase.rel.TableAccessRelBase;
-import org.eigenbase.relopt.Convention;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptTable;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.core.TableScan;
+import org.apache.calcite.plan.Convention;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptTable;
+import org.apache.calcite.plan.RelTraitSet;
/**
* Base class for logical scan rel implemented in Drill.
* NOTE: we should eventually make this class independent of TableAccessRelBase and then
* make it the base class for logical and physical scan rels.
*/
-public abstract class DrillScanRelBase extends TableAccessRelBase implements DrillRelNode {
+public abstract class DrillScanRelBase extends TableScan implements DrillRelNode {
protected final DrillTable drillTable;
public DrillScanRelBase(Convention convention, RelOptCluster cluster, RelTraitSet traits, RelOptTable table) {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillScreenRelBase.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillScreenRelBase.java
index 9b31fb0c2..ab5287e01 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillScreenRelBase.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillScreenRelBase.java
@@ -19,14 +19,14 @@ package org.apache.drill.exec.planner.common;
import org.apache.drill.exec.planner.cost.DrillCostBase.DrillCostFactory;
import org.apache.drill.exec.planner.physical.PrelUtil;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.SingleRel;
-import org.eigenbase.rel.metadata.RelMetadataQuery;
-import org.eigenbase.relopt.Convention;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptCost;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.SingleRel;
+import org.apache.calcite.rel.metadata.RelMetadataQuery;
+import org.apache.calcite.plan.Convention;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelTraitSet;
/**
* Base class for logical and physical Screen implemented in Drill
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillStoreRelBase.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillStoreRelBase.java
index adf7d6bff..d61f271f2 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillStoreRelBase.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillStoreRelBase.java
@@ -19,18 +19,18 @@ package org.apache.drill.exec.planner.common;
import java.util.List;
-import net.hydromatic.optiq.prepare.Prepare.CatalogReader;
+import org.apache.calcite.prepare.Prepare.CatalogReader;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.TableModificationRelBase;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptTable;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.core.TableModify;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptTable;
+import org.apache.calcite.plan.RelTraitSet;
/**
* Base class for logical and physical Store implemented in Drill
*/
-public abstract class DrillStoreRelBase extends TableModificationRelBase implements DrillRelNode {
+public abstract class DrillStoreRelBase extends TableModify implements DrillRelNode {
static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(DrillStoreRelBase.class);
protected DrillStoreRelBase(RelOptCluster cluster, RelTraitSet traits, RelOptTable table, CatalogReader catalogReader,
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillUnionRelBase.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillUnionRelBase.java
index 11ed8baa8..bb977c644 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillUnionRelBase.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillUnionRelBase.java
@@ -19,17 +19,17 @@ package org.apache.drill.exec.planner.common;
import java.util.List;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.UnionRelBase;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.reltype.RelDataType;
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.core.Union;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.type.RelDataType;
/**
* Base class for logical and physical Union implemented in Drill
*/
-public abstract class DrillUnionRelBase extends UnionRelBase implements DrillRelNode {
+public abstract class DrillUnionRelBase extends Union implements DrillRelNode {
public DrillUnionRelBase(RelOptCluster cluster, RelTraitSet traits,
List<RelNode> inputs, boolean all, boolean checkCompatibility) throws InvalidRelException {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillWindowRelBase.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillWindowRelBase.java
index fcf52ee62..272137d85 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillWindowRelBase.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillWindowRelBase.java
@@ -18,16 +18,16 @@
package org.apache.drill.exec.planner.common;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.WindowRelBase;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.rex.RexLiteral;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.core.Window;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rex.RexLiteral;
import java.util.List;
-public class DrillWindowRelBase extends WindowRelBase implements DrillRelNode {
+public class DrillWindowRelBase extends Window implements DrillRelNode {
public DrillWindowRelBase(
RelOptCluster cluster,
@@ -35,7 +35,7 @@ public class DrillWindowRelBase extends WindowRelBase implements DrillRelNode {
RelNode child,
List<RexLiteral> constants,
RelDataType rowType,
- List<Window> windows) {
+ List<Group> windows) {
super(cluster, traits, child, constants, rowType, windows);
}
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillWriterRelBase.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillWriterRelBase.java
index 7ea98a478..9ccaeb206 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillWriterRelBase.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillWriterRelBase.java
@@ -20,13 +20,13 @@ package org.apache.drill.exec.planner.common;
import java.util.List;
import org.apache.drill.exec.planner.logical.CreateTableEntry;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.SingleRel;
-import org.eigenbase.relopt.Convention;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.sql.type.SqlTypeName;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.SingleRel;
+import org.apache.calcite.plan.Convention;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.sql.type.SqlTypeName;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/cost/DrillCostBase.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/cost/DrillCostBase.java
index 87a1ea3eb..0e032f907 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/cost/DrillCostBase.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/cost/DrillCostBase.java
@@ -18,9 +18,9 @@
package org.apache.drill.exec.planner.cost;
-import org.eigenbase.relopt.RelOptCost;
-import org.eigenbase.relopt.RelOptUtil;
-import org.eigenbase.util.Util;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptUtil;
+import org.apache.calcite.util.Util;
/**
* Implementation of the DrillRelOptCost, modeled similar to VolcanoCost
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/cost/DrillRelOptCost.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/cost/DrillRelOptCost.java
index 73c6c72d9..8c4db17a4 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/cost/DrillRelOptCost.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/cost/DrillRelOptCost.java
@@ -18,7 +18,8 @@
package org.apache.drill.exec.planner.cost;
-import org.eigenbase.relopt.RelOptCost;
+import org.apache.calcite.plan.RelOptCost;
+
public interface DrillRelOptCost extends RelOptCost {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/cost/DrillRelOptCostFactory.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/cost/DrillRelOptCostFactory.java
index fc20d60df..f8c094329 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/cost/DrillRelOptCostFactory.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/cost/DrillRelOptCostFactory.java
@@ -19,8 +19,8 @@
package org.apache.drill.exec.planner.cost;
-import org.eigenbase.relopt.RelOptCost;
-import org.eigenbase.relopt.RelOptCostFactory;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptCostFactory;
public interface DrillRelOptCostFactory extends RelOptCostFactory {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DirPathBuilder.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DirPathBuilder.java
index cb38da91b..892e8cba3 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DirPathBuilder.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DirPathBuilder.java
@@ -23,23 +23,23 @@ import java.util.List;
import org.apache.drill.common.expression.FieldReference;
import org.apache.drill.common.expression.SchemaPath;
import org.apache.drill.exec.planner.PartitionDescriptor;
-import org.eigenbase.relopt.RelOptUtil;
-import org.eigenbase.reltype.RelDataTypeField;
-import org.eigenbase.rex.RexBuilder;
-import org.eigenbase.rex.RexCall;
-import org.eigenbase.rex.RexCorrelVariable;
-import org.eigenbase.rex.RexDynamicParam;
-import org.eigenbase.rex.RexFieldAccess;
-import org.eigenbase.rex.RexInputRef;
-import org.eigenbase.rex.RexLiteral;
-import org.eigenbase.rex.RexLocalRef;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.rex.RexOver;
-import org.eigenbase.rex.RexRangeRef;
-import org.eigenbase.rex.RexUtil;
-import org.eigenbase.rex.RexVisitorImpl;
-import org.eigenbase.sql.SqlKind;
-import org.eigenbase.sql.SqlSyntax;
+import org.apache.calcite.plan.RelOptUtil;
+import org.apache.calcite.rel.type.RelDataTypeField;
+import org.apache.calcite.rex.RexBuilder;
+import org.apache.calcite.rex.RexCall;
+import org.apache.calcite.rex.RexCorrelVariable;
+import org.apache.calcite.rex.RexDynamicParam;
+import org.apache.calcite.rex.RexFieldAccess;
+import org.apache.calcite.rex.RexInputRef;
+import org.apache.calcite.rex.RexLiteral;
+import org.apache.calcite.rex.RexLocalRef;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.rex.RexOver;
+import org.apache.calcite.rex.RexRangeRef;
+import org.apache.calcite.rex.RexUtil;
+import org.apache.calcite.rex.RexVisitorImpl;
+import org.apache.calcite.sql.SqlKind;
+import org.apache.calcite.sql.SqlSyntax;
import com.google.common.collect.Lists;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillAggregateRel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillAggregateRel.java
index ee035c635..54193153b 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillAggregateRel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillAggregateRel.java
@@ -20,9 +20,9 @@ package org.apache.drill.exec.planner.logical;
import java.util.BitSet;
import java.util.List;
-import net.hydromatic.linq4j.Ord;
-import net.hydromatic.optiq.util.BitSets;
-
+import org.apache.calcite.linq4j.Ord;
+import org.apache.calcite.util.BitSets;
+import org.apache.calcite.util.ImmutableBitSet;
import org.apache.drill.common.expression.ExpressionPosition;
import org.apache.drill.common.expression.FieldReference;
import org.apache.drill.common.expression.FunctionCallFactory;
@@ -32,12 +32,12 @@ import org.apache.drill.common.logical.data.GroupingAggregate;
import org.apache.drill.common.logical.data.LogicalOperator;
import org.apache.drill.exec.planner.common.DrillAggregateRelBase;
import org.apache.drill.exec.planner.torel.ConversionContext;
-import org.eigenbase.rel.AggregateCall;
-import org.eigenbase.rel.AggregateRelBase;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.core.AggregateCall;
+import org.apache.calcite.rel.core.Aggregate;
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelTraitSet;
import com.google.common.collect.Lists;
@@ -46,15 +46,15 @@ import com.google.common.collect.Lists;
*/
public class DrillAggregateRel extends DrillAggregateRelBase implements DrillRel {
/** Creates a DrillAggregateRel. */
- public DrillAggregateRel(RelOptCluster cluster, RelTraitSet traits, RelNode child, BitSet groupSet,
- List<AggregateCall> aggCalls) throws InvalidRelException {
- super(cluster, traits, child, groupSet, aggCalls);
+ public DrillAggregateRel(RelOptCluster cluster, RelTraitSet traits, RelNode child, boolean indicator, ImmutableBitSet groupSet,
+ List<ImmutableBitSet> groupSets, List<AggregateCall> aggCalls) throws InvalidRelException {
+ super(cluster, traits, child, indicator, groupSet, groupSets, aggCalls);
}
@Override
- public AggregateRelBase copy(RelTraitSet traitSet, RelNode input, BitSet groupSet, List<AggregateCall> aggCalls) {
+ public Aggregate copy(RelTraitSet traitSet, RelNode input, boolean indicator, ImmutableBitSet groupSet, List<ImmutableBitSet> groupSets, List<AggregateCall> aggCalls) {
try {
- return new DrillAggregateRel(getCluster(), traitSet, input, getGroupSet(), aggCalls);
+ return new DrillAggregateRel(getCluster(), traitSet, input, indicator, groupSet, groupSets, aggCalls);
} catch (InvalidRelException e) {
throw new AssertionError(e);
}
@@ -64,8 +64,8 @@ public class DrillAggregateRel extends DrillAggregateRelBase implements DrillRel
public LogicalOperator implement(DrillImplementor implementor) {
GroupingAggregate.Builder builder = GroupingAggregate.builder();
- builder.setInput(implementor.visitChild(this, 0, getChild()));
- final List<String> childFields = getChild().getRowType().getFieldNames();
+ builder.setInput(implementor.visitChild(this, 0, getInput()));
+ final List<String> childFields = getInput().getRowType().getFieldNames();
final List<String> fields = getRowType().getFieldNames();
for (int group : BitSets.toIter(groupSet)) {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillAggregateRule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillAggregateRule.java
index 66fc5632a..0ca4447a3 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillAggregateRule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillAggregateRule.java
@@ -19,30 +19,31 @@ package org.apache.drill.exec.planner.logical;
import java.util.logging.Logger;
-import org.eigenbase.rel.AggregateRel;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.Convention;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.trace.EigenbaseTrace;
+import org.apache.calcite.rel.core.Aggregate;
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.Convention;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.logical.LogicalAggregate;
+import org.apache.calcite.util.trace.CalciteTrace;
/**
- * Rule that converts an {@link AggregateRel} to a {@link DrillAggregateRel}, implemented by a Drill "segment" operation
+ * Rule that converts an {@link LogicalAggregate} to a {@link DrillAggregateRel}, implemented by a Drill "segment" operation
* followed by a "collapseaggregate" operation.
*/
public class DrillAggregateRule extends RelOptRule {
public static final RelOptRule INSTANCE = new DrillAggregateRule();
- protected static final Logger tracer = EigenbaseTrace.getPlannerTracer();
+ protected static final Logger tracer = CalciteTrace.getPlannerTracer();
private DrillAggregateRule() {
- super(RelOptHelper.some(AggregateRel.class, Convention.NONE, RelOptHelper.any(RelNode.class)), "DrillAggregateRule");
+ super(RelOptHelper.some(LogicalAggregate.class, Convention.NONE, RelOptHelper.any(RelNode.class)), "DrillAggregateRule");
}
@Override
public void onMatch(RelOptRuleCall call) {
- final AggregateRel aggregate = (AggregateRel) call.rel(0);
+ final LogicalAggregate aggregate = (LogicalAggregate) call.rel(0);
final RelNode input = call.rel(1);
if (aggregate.containsDistinctCall()) {
@@ -53,8 +54,8 @@ public class DrillAggregateRule extends RelOptRule {
final RelTraitSet traits = aggregate.getTraitSet().plus(DrillRel.DRILL_LOGICAL);
final RelNode convertedInput = convert(input, input.getTraitSet().plus(DrillRel.DRILL_LOGICAL));
try {
- call.transformTo(new DrillAggregateRel(aggregate.getCluster(), traits, convertedInput, aggregate.getGroupSet(),
- aggregate.getAggCallList()));
+ call.transformTo(new DrillAggregateRel(aggregate.getCluster(), traits, convertedInput, aggregate.indicator,
+ aggregate.getGroupSet(), aggregate.getGroupSets(), aggregate.getAggCallList()));
} catch (InvalidRelException e) {
tracer.warning(e.toString());
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillConditions.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillConditions.java
index 310ef823d..f68007d04 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillConditions.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillConditions.java
@@ -17,9 +17,9 @@
*/
package org.apache.drill.exec.planner.logical;
-import org.eigenbase.rel.rules.PushProjector;
-import org.eigenbase.rex.RexCall;
-import org.eigenbase.rex.RexNode;
+import org.apache.calcite.rel.rules.PushProjector;
+import org.apache.calcite.rex.RexCall;
+import org.apache.calcite.rex.RexNode;
public final class DrillConditions {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillConstExecutor.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillConstExecutor.java
index 0fe5a1a63..92e56781a 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillConstExecutor.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillConstExecutor.java
@@ -19,7 +19,7 @@ package org.apache.drill.exec.planner.logical;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
-import net.hydromatic.avatica.ByteString;
+import org.apache.calcite.avatica.util.TimeUnit;
import org.apache.drill.common.exceptions.DrillRuntimeException;
import org.apache.drill.common.expression.ErrorCollectorImpl;
import org.apache.drill.common.expression.ExpressionStringBuilder;
@@ -46,19 +46,17 @@ import org.apache.drill.exec.expr.holders.IntervalYearHolder;
import org.apache.drill.exec.expr.holders.TimeHolder;
import org.apache.drill.exec.expr.holders.TimeStampHolder;
import org.apache.drill.exec.expr.holders.ValueHolder;
-import org.apache.drill.exec.expr.holders.VarBinaryHolder;
import org.apache.drill.exec.expr.holders.VarCharHolder;
import org.apache.drill.exec.ops.UdfUtilities;
-import org.apache.drill.exec.vector.VarCharVector;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.reltype.RelDataTypeFactory;
-import org.eigenbase.rex.RexBuilder;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.sql.SqlIntervalQualifier;
-import org.eigenbase.sql.parser.SqlParserPos;
-import org.eigenbase.sql.type.SqlTypeName;
-import org.eigenbase.util.NlsString;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.rex.RexBuilder;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.sql.SqlIntervalQualifier;
+import org.apache.calcite.sql.parser.SqlParserPos;
+import org.apache.calcite.sql.type.SqlTypeName;
+import org.apache.calcite.util.NlsString;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
@@ -137,14 +135,14 @@ public class DrillConstExecutor implements RelOptPlanner.Executor {
if (sqlTypeName == SqlTypeName.INTERVAL_DAY_TIME) {
type = typeFactory.createSqlIntervalType(
new SqlIntervalQualifier(
- SqlIntervalQualifier.TimeUnit.DAY,
- SqlIntervalQualifier.TimeUnit.MINUTE,
+ TimeUnit.DAY,
+ TimeUnit.MINUTE,
SqlParserPos.ZERO));
} else if (sqlTypeName == SqlTypeName.INTERVAL_YEAR_MONTH) {
type = typeFactory.createSqlIntervalType(
new SqlIntervalQualifier(
- SqlIntervalQualifier.TimeUnit.YEAR,
- SqlIntervalQualifier.TimeUnit.MONTH,
+ TimeUnit.YEAR,
+ TimeUnit.MONTH,
SqlParserPos.ZERO));
} else if (sqlTypeName == SqlTypeName.VARCHAR) {
type = typeFactory.createSqlType(sqlTypeName, TypeHelper.VARCHAR_DEFAULT_CAST_LEN);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillFilterRel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillFilterRel.java
index 63bef4428..a914f4780 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillFilterRel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillFilterRel.java
@@ -19,15 +19,15 @@ package org.apache.drill.exec.planner.logical;
import java.util.List;
+import org.apache.calcite.plan.RelTraitSet;
import org.apache.drill.common.logical.data.Filter;
import org.apache.drill.common.logical.data.LogicalOperator;
import org.apache.drill.exec.planner.common.DrillFilterRelBase;
import org.apache.drill.exec.planner.torel.ConversionContext;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.rex.RexNode;
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.rex.RexNode;
public class DrillFilterRel extends DrillFilterRelBase implements DrillRel {
@@ -36,19 +36,19 @@ public class DrillFilterRel extends DrillFilterRelBase implements DrillRel {
}
@Override
- public RelNode copy(RelTraitSet traitSet, List<RelNode> inputs) {
- return new DrillFilterRel(getCluster(), traitSet, sole(inputs), getCondition());
+ public org.apache.calcite.rel.core.Filter copy(RelTraitSet traitSet, RelNode input, RexNode condition) {
+ return new DrillFilterRel(getCluster(), traitSet, input, condition);
}
@Override
public LogicalOperator implement(DrillImplementor implementor) {
- final LogicalOperator input = implementor.visitChild(this, 0, getChild());
- Filter f = new Filter(getFilterExpression(implementor.getContext()));
+ final LogicalOperator input = implementor.visitChild(this, 0, getInput());
+ org.apache.drill.common.logical.data.Filter f = new org.apache.drill.common.logical.data.Filter(getFilterExpression(implementor.getContext()));
f.setInput(input);
return f;
}
- public static DrillFilterRel convert(Filter filter, ConversionContext context) throws InvalidRelException{
+ public static DrillFilterRel convert(org.apache.drill.common.logical.data.Filter filter, ConversionContext context) throws InvalidRelException{
RelNode input = context.toRel(filter.getInput());
return new DrillFilterRel(context.getCluster(), context.getLogicalTraits(), input, context.toRex(filter.getExpr()));
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillFilterRule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillFilterRule.java
index cb47adb08..dd7da48ae 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillFilterRule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillFilterRule.java
@@ -17,26 +17,28 @@
*/
package org.apache.drill.exec.planner.logical;
-import org.eigenbase.rel.FilterRel;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.Convention;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.Convention;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.rel.logical.LogicalFilter;
/**
- * Rule that converts a {@link org.eigenbase.rel.FilterRel} to a Drill "filter" operation.
+ * Rule that converts a {@link org.apache.calcite.rel.FilterRel} to a Drill "filter" operation.
*/
public class DrillFilterRule extends RelOptRule {
public static final RelOptRule INSTANCE = new DrillFilterRule();
private DrillFilterRule() {
- super(RelOptHelper.any(FilterRel.class, Convention.NONE), "DrillFilterRule");
+ super(RelOptHelper.any(LogicalFilter.class, Convention.NONE), "DrillFilterRule");
}
@Override
public void onMatch(RelOptRuleCall call) {
- final FilterRel filter = (FilterRel) call.rel(0);
- final RelNode input = filter.getChild();
+ final LogicalFilter filter = (LogicalFilter) call.rel(0);
+ final RelNode input = filter.getInput();
//final RelTraitSet traits = filter.getTraitSet().plus(DrillRel.DRILL_LOGICAL);
final RelNode convertedInput = convert(input, input.getTraitSet().plus(DrillRel.DRILL_LOGICAL));
call.transformTo(new DrillFilterRel(filter.getCluster(), convertedInput.getTraitSet(), convertedInput, filter.getCondition()));
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillImplementor.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillImplementor.java
index 7fff6e9b6..fed7e06c2 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillImplementor.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillImplementor.java
@@ -19,13 +19,14 @@ package org.apache.drill.exec.planner.logical;
import java.util.Set;
+import org.apache.calcite.rel.RelNode;
import org.apache.drill.common.logical.LogicalPlan;
import org.apache.drill.common.logical.LogicalPlanBuilder;
import org.apache.drill.common.logical.PlanProperties.Generator.ResultMode;
import org.apache.drill.common.logical.PlanProperties.PlanType;
import org.apache.drill.common.logical.data.LogicalOperator;
import org.apache.drill.common.logical.data.visitors.AbstractLogicalVisitor;
-import org.eigenbase.rel.RelNode;
+import org.apache.calcite.rel.RelNode;
import com.google.common.collect.Sets;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillJoinRel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillJoinRel.java
index 8d3e1bf86..1f602c759 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillJoinRel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillJoinRel.java
@@ -27,17 +27,17 @@ import org.apache.drill.common.logical.data.LogicalOperator;
import org.apache.drill.common.logical.data.Project;
import org.apache.drill.exec.planner.common.DrillJoinRelBase;
import org.apache.drill.exec.planner.torel.ConversionContext;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.JoinRelType;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptUtil;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.reltype.RelDataTypeField;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.rex.RexUtil;
-import org.eigenbase.sql.fun.SqlStdOperatorTable;
-import org.eigenbase.util.Pair;
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.core.JoinRelType;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptUtil;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.type.RelDataTypeField;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.rex.RexUtil;
+import org.apache.calcite.sql.fun.SqlStdOperatorTable;
+import org.apache.calcite.util.Pair;
import com.google.common.collect.Lists;
@@ -53,7 +53,7 @@ public class DrillJoinRel extends DrillJoinRelBase implements DrillRel {
RexNode remaining = RelOptUtil.splitJoinCondition(left, right, condition, leftKeys, rightKeys);
if (!remaining.isAlwaysTrue() && (leftKeys.size() == 0 || rightKeys.size() == 0)) {
- throw new InvalidRelException("DrillJoinRel only supports equi-join");
+ // throw new InvalidRelException("DrillJoinRel only supports equi-join");
}
}
@@ -68,7 +68,7 @@ public class DrillJoinRel extends DrillJoinRelBase implements DrillRel {
List<Integer> tmpRightKeys = Lists.newArrayList();
RexNode remaining = RelOptUtil.splitJoinCondition(left, right, condition, tmpLeftKeys, tmpRightKeys);
if (!remaining.isAlwaysTrue() && (tmpLeftKeys.size() == 0 || tmpRightKeys.size() == 0)) {
- throw new InvalidRelException("DrillJoinRel only supports equi-join");
+ // throw new InvalidRelException("DrillJoinRel only supports equi-join");
}
}
this.leftKeys = leftKeys;
@@ -149,8 +149,8 @@ public class DrillJoinRel extends DrillJoinRelBase implements DrillRel {
// right fields appear after the LHS fields.
final int rightInputOffset = left.getRowType().getFieldCount();
for (JoinCondition condition : join.getConditions()) {
- RelDataTypeField leftField = left.getRowType().getField(ExprHelper.getFieldName(condition.getLeft()), true);
- RelDataTypeField rightField = right.getRowType().getField(ExprHelper.getFieldName(condition.getRight()), true);
+ RelDataTypeField leftField = left.getRowType().getField(ExprHelper.getFieldName(condition.getLeft()), true, false);
+ RelDataTypeField rightField = right.getRowType().getField(ExprHelper.getFieldName(condition.getRight()), true, false);
joinConditions.add(
context.getRexBuilder().makeCall(
SqlStdOperatorTable.EQUALS,
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillJoinRule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillJoinRule.java
index cf1541195..f832dfe19 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillJoinRule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillJoinRule.java
@@ -20,40 +20,40 @@ package org.apache.drill.exec.planner.logical;
import java.util.List;
import java.util.logging.Logger;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.JoinRel;
-import org.eigenbase.rel.JoinRelType;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.Convention;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelOptUtil;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.reltype.RelDataTypeField;
-import org.eigenbase.rex.RexBuilder;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.rex.RexUtil;
-import org.eigenbase.sql.fun.SqlStdOperatorTable;
-import org.eigenbase.trace.EigenbaseTrace;
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.core.JoinRelType;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.Convention;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelOptUtil;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.logical.LogicalJoin;
+import org.apache.calcite.rel.type.RelDataTypeField;
+import org.apache.calcite.rex.RexBuilder;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.rex.RexUtil;
+import org.apache.calcite.sql.fun.SqlStdOperatorTable;
+import org.apache.calcite.util.trace.CalciteTrace;
import com.google.common.collect.Lists;
/**
- * Rule that converts a {@link JoinRel} to a {@link DrillJoinRel}, which is implemented by Drill "join" operation.
+ * Rule that converts a {@link org.apache.calcite.rel.logical.LogicalJoin} to a {@link DrillJoinRel}, which is implemented by Drill "join" operation.
*/
public class DrillJoinRule extends RelOptRule {
public static final RelOptRule INSTANCE = new DrillJoinRule();
- protected static final Logger tracer = EigenbaseTrace.getPlannerTracer();
+ protected static final Logger tracer = CalciteTrace.getPlannerTracer();
private DrillJoinRule() {
super(
- RelOptHelper.any(JoinRel.class, Convention.NONE),
+ RelOptHelper.any(LogicalJoin.class, Convention.NONE),
"DrillJoinRule");
}
@Override
public void onMatch(RelOptRuleCall call) {
- final JoinRel join = (JoinRel) call.rel(0);
+ final LogicalJoin join = (LogicalJoin) call.rel(0);
final RelNode left = join.getLeft();
final RelNode right = join.getRight();
final RelTraitSet traits = join.getTraitSet().plus(DrillRel.DRILL_LOGICAL);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillLimitRel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillLimitRel.java
index 75a38d88e..9faf070ae 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillLimitRel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillLimitRel.java
@@ -24,13 +24,13 @@ import org.apache.drill.common.logical.data.Limit;
import org.apache.drill.common.logical.data.LogicalOperator;
import org.apache.drill.exec.planner.common.DrillLimitRelBase;
import org.apache.drill.exec.planner.torel.ConversionContext;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.rex.RexLiteral;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.sql.type.SqlTypeName;
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rex.RexLiteral;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.sql.type.SqlTypeName;
public class DrillLimitRel extends DrillLimitRelBase implements DrillRel {
@@ -45,7 +45,7 @@ public class DrillLimitRel extends DrillLimitRelBase implements DrillRel {
@Override
public LogicalOperator implement(DrillImplementor implementor) {
- LogicalOperator inputOp = implementor.visitChild(this, 0, getChild());
+ LogicalOperator inputOp = implementor.visitChild(this, 0, getInput());
// First offset to include into results (inclusive). Null implies it is starting from offset 0
int first = offset != null ? Math.max(0, RexLiteral.intValue(offset)) : 0;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillLimitRule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillLimitRule.java
index f6c910e34..03ef1e895 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillLimitRule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillLimitRule.java
@@ -17,34 +17,35 @@
*/
package org.apache.drill.exec.planner.logical;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.SortRel;
-import org.eigenbase.relopt.Convention;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.core.Sort;
+import org.apache.calcite.plan.Convention;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.logical.LogicalSort;
/**
- * This rule converts a SortRel that has either a offset and fetch into a Drill Sort and LimitPOP Rel
+ * This rule converts a Sort that has either a offset and fetch into a Drill Sort and LimitPOP Rel
*/
public class DrillLimitRule extends RelOptRule {
public static DrillLimitRule INSTANCE = new DrillLimitRule();
private DrillLimitRule() {
- super(RelOptHelper.any(SortRel.class, Convention.NONE), "DrillLimitRule");
+ super(RelOptHelper.any(LogicalSort.class, Convention.NONE), "DrillLimitRule");
}
@Override
public boolean matches(RelOptRuleCall call) {
- final SortRel sort = call.rel(0);
+ final Sort sort = call.rel(0);
return sort.offset != null || sort.fetch != null;
}
@Override
public void onMatch(RelOptRuleCall call) {
- final SortRel incomingSort = call.rel(0);
+ final Sort incomingSort = call.rel(0);
final RelTraitSet incomingTraits = incomingSort.getTraitSet();
- RelNode input = incomingSort.getChild();
+ RelNode input = incomingSort.getInput();
// if the Optiq sort rel includes a collation and a limit, we need to create a copy the sort rel that excludes the
// limit information.
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillMergeFilterRule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillMergeFilterRule.java
index b406cfb6d..951edccf9 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillMergeFilterRule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillMergeFilterRule.java
@@ -17,40 +17,45 @@
*/
package org.apache.drill.exec.planner.logical;
-import org.eigenbase.rel.FilterRel;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.rex.RexBuilder;
-import org.eigenbase.rex.RexCall;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.rex.RexProgram;
-import org.eigenbase.rex.RexProgramBuilder;
-import org.eigenbase.rex.RexUtil;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.rel.core.Filter;
+import org.apache.calcite.rel.core.RelFactories;
+import org.apache.calcite.rex.RexBuilder;
+import org.apache.calcite.rex.RexCall;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.rex.RexProgram;
+import org.apache.calcite.rex.RexProgramBuilder;
+import org.apache.calcite.rex.RexUtil;
/**
- * MergeFilterRule implements the rule for combining two {@link FilterRel}s
+ * MergeFilterRule implements the rule for combining two {@link Filter}s
*/
public class DrillMergeFilterRule extends RelOptRule {
- public static final DrillMergeFilterRule INSTANCE = new DrillMergeFilterRule();
+ public static final DrillMergeFilterRule INSTANCE =
+ new DrillMergeFilterRule(RelFactories.DEFAULT_FILTER_FACTORY);
+
+ private final RelFactories.FilterFactory filterFactory;
+
//~ Constructors -----------------------------------------------------------
/**
* Creates a MergeFilterRule.
*/
- private DrillMergeFilterRule() {
+ private DrillMergeFilterRule(RelFactories.FilterFactory filterFactory) {
super(
- operand(
- FilterRel.class,
- operand(FilterRel.class, any())));
+ operand(Filter.class,
+ operand(Filter.class, any())));
+ this.filterFactory = filterFactory;
}
//~ Methods ----------------------------------------------------------------
// implement RelOptRule
public void onMatch(RelOptRuleCall call) {
- FilterRel topFilter = call.rel(0);
- FilterRel bottomFilter = call.rel(1);
+ Filter topFilter = call.rel(0);
+ Filter bottomFilter = call.rel(1);
// use RexPrograms to merge the two FilterRels into a single program
// so we can convert the two FilterRel conditions to directly
@@ -69,27 +74,26 @@ public class DrillMergeFilterRule extends RelOptRule {
mergedProgram.expandLocalRef(
mergedProgram.getCondition());
- if(!RexUtil.isFlat(newCondition)){
- RexCall newCall = (RexCall) newCondition;
- newCondition = rexBuilder.makeFlatCall( newCall.getOperator(), newCall.getOperands());
- }
+// if(!RexUtil.isFlat(newCondition)){
+// RexCall newCall = (RexCall) newCondition;
+// newCondition = rexBuilder.makeFlatCall( newCall.getOperator(), newCall.getOperands());
+// }
- FilterRel newFilterRel =
- new FilterRel(
- topFilter.getCluster(),
- bottomFilter.getChild(),
- newCondition);
+ Filter newFilterRel =
+ (Filter) filterFactory.createFilter(
+ bottomFilter.getInput(),
+ RexUtil.flatten(rexBuilder, newCondition));
call.transformTo(newFilterRel);
}
/**
- * Creates a RexProgram corresponding to a FilterRel
+ * Creates a RexProgram corresponding to a LogicalFilter
*
- * @param filterRel the FilterRel
+ * @param filterRel the LogicalFilter
* @return created RexProgram
*/
- private RexProgram createProgram(FilterRel filterRel) {
+ private RexProgram createProgram(Filter filterRel) {
RexProgramBuilder programBuilder =
new RexProgramBuilder(
filterRel.getRowType(),
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillMergeProjectRule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillMergeProjectRule.java
index b97d83e3a..b0492772a 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillMergeProjectRule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillMergeProjectRule.java
@@ -18,15 +18,15 @@
package org.apache.drill.exec.planner.logical;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.rel.core.Project;
+import org.apache.calcite.rel.rules.ProjectMergeRule;
import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry;
-import org.eigenbase.rel.ProjectRelBase;
-import org.eigenbase.rel.RelFactories.ProjectFactory;
-import org.eigenbase.rel.rules.MergeProjectRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.rex.RexCall;
-import org.eigenbase.rex.RexNode;
+import org.apache.calcite.rel.core.RelFactories.ProjectFactory;
+import org.apache.calcite.rex.RexCall;
+import org.apache.calcite.rex.RexNode;
-public class DrillMergeProjectRule extends MergeProjectRule {
+public class DrillMergeProjectRule extends ProjectMergeRule {
private FunctionImplementationRegistry functionRegistry;
private static DrillMergeProjectRule INSTANCE = null;
@@ -45,8 +45,8 @@ public class DrillMergeProjectRule extends MergeProjectRule {
@Override
public boolean matches(RelOptRuleCall call) {
- ProjectRelBase topProject = call.rel(0);
- ProjectRelBase bottomProject = call.rel(1);
+ Project topProject = call.rel(0);
+ Project bottomProject = call.rel(1);
// We have a complex output type do not fire the merge project rule
if (checkComplexOutput(topProject) || checkComplexOutput(bottomProject)) {
@@ -56,7 +56,7 @@ public class DrillMergeProjectRule extends MergeProjectRule {
return true;
}
- private boolean checkComplexOutput(ProjectRelBase project) {
+ private boolean checkComplexOutput(Project project) {
for (RexNode expr: project.getChildExps()) {
if (expr instanceof RexCall) {
if (functionRegistry.isFunctionComplexOutput(((RexCall) expr).getOperator().getName())) {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillOptiq.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillOptiq.java
index b96ff3d7c..441f2e396 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillOptiq.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillOptiq.java
@@ -37,23 +37,22 @@ import org.apache.drill.common.types.TypeProtos.MajorType;
import org.apache.drill.common.types.TypeProtos.MinorType;
import org.apache.drill.common.types.Types;
import org.apache.drill.exec.planner.StarColumnHelper;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.reltype.RelDataTypeField;
-import org.eigenbase.rex.RexCall;
-import org.eigenbase.rex.RexCorrelVariable;
-import org.eigenbase.rex.RexDynamicParam;
-import org.eigenbase.rex.RexFieldAccess;
-import org.eigenbase.rex.RexInputRef;
-import org.eigenbase.rex.RexLiteral;
-import org.eigenbase.rex.RexLocalRef;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.rex.RexOver;
-import org.eigenbase.rex.RexRangeRef;
-import org.eigenbase.rex.RexVisitorImpl;
-import org.eigenbase.sql.SqlSyntax;
-import org.eigenbase.sql.fun.SqlStdOperatorTable;
-import org.eigenbase.sql.type.SqlTypeName;
-import org.eigenbase.util.NlsString;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.type.RelDataTypeField;
+import org.apache.calcite.rex.RexCall;
+import org.apache.calcite.rex.RexCorrelVariable;
+import org.apache.calcite.rex.RexDynamicParam;
+import org.apache.calcite.rex.RexFieldAccess;
+import org.apache.calcite.rex.RexInputRef;
+import org.apache.calcite.rex.RexLiteral;
+import org.apache.calcite.rex.RexLocalRef;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.rex.RexOver;
+import org.apache.calcite.rex.RexRangeRef;
+import org.apache.calcite.rex.RexVisitorImpl;
+import org.apache.calcite.sql.SqlSyntax;
+import org.apache.calcite.sql.fun.SqlStdOperatorTable;
+import org.apache.calcite.util.NlsString;
import com.google.common.collect.Lists;
@@ -96,23 +95,7 @@ public class DrillOptiq {
case BINARY:
logger.debug("Binary");
final String funcName = call.getOperator().getName().toLowerCase();
- List<LogicalExpression> args = Lists.newArrayList();
- for(RexNode r : call.getOperands()){
- args.add(r.accept(this));
- }
-
- if (FunctionCallFactory.isBooleanOperator(funcName)) {
- LogicalExpression func = FunctionCallFactory.createBooleanOperator(funcName, args);
- return func;
- } else {
- args = Lists.reverse(args);
- LogicalExpression lastArg = args.get(0);
- for(int i = 1; i < args.size(); i++){
- lastArg = FunctionCallFactory.createExpression(funcName, Lists.newArrayList(args.get(i), lastArg));
- }
-
- return lastArg;
- }
+ return doFunction(call, funcName);
case FUNCTION:
case FUNCTION_ID:
logger.debug("Function");
@@ -190,12 +173,36 @@ public class DrillOptiq {
}
}
+ if (call.getOperator() == SqlStdOperatorTable.DATETIME_PLUS) {
+ return doFunction(call, "+");
+ }
+
// fall through
default:
throw new AssertionError("todo: implement syntax " + syntax + "(" + call + ")");
}
}
+ private LogicalExpression doFunction(RexCall call, String funcName) {
+ List<LogicalExpression> args = Lists.newArrayList();
+ for(RexNode r : call.getOperands()){
+ args.add(r.accept(this));
+ }
+
+ if (FunctionCallFactory.isBooleanOperator(funcName)) {
+ LogicalExpression func = FunctionCallFactory.createBooleanOperator(funcName, args);
+ return func;
+ } else {
+ args = Lists.reverse(args);
+ LogicalExpression lastArg = args.get(0);
+ for(int i = 1; i < args.size(); i++){
+ lastArg = FunctionCallFactory.createExpression(funcName, Lists.newArrayList(args.get(i), lastArg));
+ }
+
+ return lastArg;
+ }
+
+ }
private LogicalExpression doUnknown(Object o){
logger.warn("Doesn't currently support consumption of {}.", o);
return NullExpression.INSTANCE;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillProjectRel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillProjectRel.java
index 14ea8947a..26f366e92 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillProjectRel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillProjectRel.java
@@ -24,17 +24,16 @@ import org.apache.drill.common.logical.data.NamedExpression;
import org.apache.drill.common.logical.data.Project;
import org.apache.drill.exec.planner.common.DrillProjectRelBase;
import org.apache.drill.exec.planner.torel.ConversionContext;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.ProjectRelBase;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.reltype.RelDataTypeField;
-import org.eigenbase.reltype.RelDataTypeFieldImpl;
-import org.eigenbase.reltype.RelRecordType;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.sql.type.SqlTypeName;
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeField;
+import org.apache.calcite.rel.type.RelDataTypeFieldImpl;
+import org.apache.calcite.rel.type.RelRecordType;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.sql.type.SqlTypeName;
import com.google.common.collect.Lists;
@@ -49,14 +48,14 @@ public class DrillProjectRel extends DrillProjectRelBase implements DrillRel {
@Override
- public ProjectRelBase copy(RelTraitSet traitSet, RelNode input, List<RexNode> exps, RelDataType rowType) {
+ public org.apache.calcite.rel.core.Project copy(RelTraitSet traitSet, RelNode input, List<RexNode> exps, RelDataType rowType) {
return new DrillProjectRel(getCluster(), traitSet, input, exps, rowType);
}
@Override
public LogicalOperator implement(DrillImplementor implementor) {
- LogicalOperator inputOp = implementor.visitChild(this, 0, getChild());
+ LogicalOperator inputOp = implementor.visitChild(this, 0, getInput());
Project.Builder builder = Project.builder();
builder.setInput(inputOp);
for (NamedExpression e: this.getProjectExpressions(implementor.getContext())) {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillProjectRule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillProjectRule.java
index 7cef038af..e44df333d 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillProjectRule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillProjectRule.java
@@ -17,27 +17,28 @@
*/
package org.apache.drill.exec.planner.logical;
-import org.eigenbase.rel.ProjectRel;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.Convention;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.Convention;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.core.Project;
+import org.apache.calcite.rel.logical.LogicalProject;
/**
- * Rule that converts a {@link org.eigenbase.rel.ProjectRel} to a Drill "project" operation.
+ * Rule that converts a {@link org.apache.calcite.rel.logical.LogicalProject} to a Drill "project" operation.
*/
public class DrillProjectRule extends RelOptRule {
public static final RelOptRule INSTANCE = new DrillProjectRule();
private DrillProjectRule() {
- super(RelOptHelper.any(ProjectRel.class, Convention.NONE), "DrillProjectRule");
+ super(RelOptHelper.any(LogicalProject.class, Convention.NONE), "DrillProjectRule");
}
@Override
public void onMatch(RelOptRuleCall call) {
- final ProjectRel project = (ProjectRel) call.rel(0);
- final RelNode input = project.getChild();
+ final Project project = (Project) call.rel(0);
+ final RelNode input = project.getInput();
final RelTraitSet traits = project.getTraitSet().plus(DrillRel.DRILL_LOGICAL);
final RelNode convertedInput = convert(input, input.getTraitSet().plus(DrillRel.DRILL_LOGICAL));
call.transformTo(new DrillProjectRel(project.getCluster(), traits, convertedInput, project.getProjects(), project
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushFilterPastProjectRule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushFilterPastProjectRule.java
index e2310f7c2..3755ea123 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushFilterPastProjectRule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushFilterPastProjectRule.java
@@ -19,22 +19,19 @@ package org.apache.drill.exec.planner.logical;
import java.util.List;
-import org.apache.drill.common.expression.FieldReference;
-import org.apache.drill.common.expression.SchemaPath;
-import org.eigenbase.rel.CalcRel;
-import org.eigenbase.rel.FilterRel;
-import org.eigenbase.rel.ProjectRel;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelOptUtil;
-import org.eigenbase.reltype.RelDataTypeField;
-import org.eigenbase.rex.RexCall;
-import org.eigenbase.rex.RexInputRef;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.rex.RexVisitor;
-import org.eigenbase.rex.RexVisitorImpl;
-import org.eigenbase.sql.SqlOperator;
-import org.eigenbase.util.Util;
+import org.apache.calcite.rel.core.Filter;
+import org.apache.calcite.rel.core.Project;
+import org.apache.calcite.rel.logical.LogicalFilter;
+import org.apache.calcite.rel.logical.LogicalProject;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelOptUtil;
+import org.apache.calcite.rex.RexCall;
+import org.apache.calcite.rex.RexInputRef;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.rex.RexVisitor;
+import org.apache.calcite.rex.RexVisitorImpl;
+import org.apache.calcite.util.Util;
public class DrillPushFilterPastProjectRule extends RelOptRule {
@@ -78,16 +75,16 @@ public class DrillPushFilterPastProjectRule extends RelOptRule {
protected DrillPushFilterPastProjectRule() {
super(
operand(
- FilterRel.class,
- operand(ProjectRel.class, any())));
+ LogicalFilter.class,
+ operand(LogicalProject.class, any())));
}
//~ Methods ----------------------------------------------------------------
// implement RelOptRule
public void onMatch(RelOptRuleCall call) {
- FilterRel filterRel = call.rel(0);
- ProjectRel projRel = call.rel(1);
+ Filter filterRel = call.rel(0);
+ Project projRel = call.rel(1);
// Don't push Filter past Project if the Filter is referencing an ITEM expression
// from the Project.
@@ -101,15 +98,10 @@ public class DrillPushFilterPastProjectRule extends RelOptRule {
RexNode newCondition =
RelOptUtil.pushFilterPastProject(filterRel.getCondition(), projRel);
- FilterRel newFilterRel =
- new FilterRel(
- filterRel.getCluster(),
- projRel.getChild(),
- newCondition);
+ Filter newFilterRel = LogicalFilter.create(projRel.getInput(), newCondition);
-
- ProjectRel newProjRel =
- (ProjectRel) CalcRel.createProject(
+ Project newProjRel =
+ (Project) RelOptUtil.createProject(
newFilterRel,
projRel.getNamedProjects(),
false);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushPartitionFilterIntoScan.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushPartitionFilterIntoScan.java
index c6dceda1e..b83ceddc5 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushPartitionFilterIntoScan.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushPartitionFilterIntoScan.java
@@ -29,10 +29,9 @@ import org.apache.drill.exec.planner.physical.PlannerSettings;
import org.apache.drill.exec.planner.physical.PrelUtil;
import org.apache.drill.exec.store.dfs.FileSelection;
import org.apache.drill.exec.store.dfs.FormatSelection;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelOptRuleOperand;
-import org.eigenbase.rex.RexNode;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelOptRuleOperand;
import com.google.common.collect.Lists;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushProjIntoScan.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushProjIntoScan.java
index fcfced25c..379f6e97b 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushProjIntoScan.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushProjIntoScan.java
@@ -21,19 +21,16 @@ package org.apache.drill.exec.planner.logical;
import java.io.IOException;
import java.util.List;
-import net.hydromatic.optiq.rules.java.JavaRules.EnumerableTableAccessRel;
-
+import org.apache.calcite.adapter.enumerable.EnumerableTableScan;
+import org.apache.calcite.rel.core.Project;
+import org.apache.calcite.rel.logical.LogicalProject;
+import org.apache.calcite.rel.rules.ProjectRemoveRule;
import org.apache.drill.common.exceptions.DrillRuntimeException;
import org.apache.drill.exec.planner.physical.PrelUtil;
import org.apache.drill.exec.planner.physical.PrelUtil.ProjectPushInfo;
-import org.eigenbase.rel.ProjectRel;
-import org.eigenbase.rel.ProjectRelBase;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.rules.PushProjector;
-import org.eigenbase.rel.rules.RemoveTrivialProjectRule;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.rex.RexNode;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.rex.RexNode;
import com.google.common.collect.Lists;
@@ -41,14 +38,14 @@ public class DrillPushProjIntoScan extends RelOptRule {
public static final RelOptRule INSTANCE = new DrillPushProjIntoScan();
private DrillPushProjIntoScan() {
- super(RelOptHelper.some(ProjectRel.class, RelOptHelper.any(EnumerableTableAccessRel.class)), "DrillPushProjIntoScan");
+ super(RelOptHelper.some(LogicalProject.class, RelOptHelper.any(EnumerableTableScan.class)), "DrillPushProjIntoScan");
}
@Override
public void onMatch(RelOptRuleCall call) {
- final ProjectRel proj = (ProjectRel) call.rel(0);
- final EnumerableTableAccessRel scan = (EnumerableTableAccessRel) call.rel(1);
+ final Project proj = (Project) call.rel(0);
+ final EnumerableTableScan scan = (EnumerableTableScan) call.rel(1);
try {
ProjectPushInfo columnInfo = PrelUtil.getColumns(scan.getRowType(), proj.getProjects());
@@ -63,7 +60,7 @@ public class DrillPushProjIntoScan extends RelOptRule {
new DrillScanRel(scan.getCluster(),
scan.getTraitSet().plus(DrillRel.DRILL_LOGICAL),
scan.getTable(),
- columnInfo.createNewRowType(proj.getChild().getCluster().getTypeFactory()),
+ columnInfo.createNewRowType(proj.getInput().getCluster().getTypeFactory()),
columnInfo.columns);
@@ -79,7 +76,7 @@ public class DrillPushProjIntoScan extends RelOptRule {
newProjects,
proj.getRowType());
- if (RemoveTrivialProjectRule.isTrivial(newProj)) {
+ if (ProjectRemoveRule.isTrivial(newProj)) {
call.transformTo(newScan);
} else {
call.transformTo(newProj);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushProjectPastFilterRule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushProjectPastFilterRule.java
index 29e65591e..4f950d3d3 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushProjectPastFilterRule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushProjectPastFilterRule.java
@@ -17,11 +17,11 @@
*/
package org.apache.drill.exec.planner.logical;
-import org.eigenbase.rel.rules.PushProjectPastFilterRule;
-import org.eigenbase.rel.rules.PushProjector;
-import org.eigenbase.relopt.RelOptRule;
+import org.apache.calcite.rel.rules.ProjectFilterTransposeRule;
+import org.apache.calcite.rel.rules.PushProjector;
+import org.apache.calcite.plan.RelOptRule;
-public class DrillPushProjectPastFilterRule extends PushProjectPastFilterRule {
+public class DrillPushProjectPastFilterRule extends ProjectFilterTransposeRule {
public final static RelOptRule INSTANCE = new DrillPushProjectPastFilterRule(DrillConditions.PRESERVE_ITEM);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushProjectPastJoinRule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushProjectPastJoinRule.java
index 7296d08bd..e27360f4f 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushProjectPastJoinRule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushProjectPastJoinRule.java
@@ -17,11 +17,11 @@
*/
package org.apache.drill.exec.planner.logical;
-import org.eigenbase.rel.rules.PushProjectPastJoinRule;
-import org.eigenbase.rel.rules.PushProjector;
-import org.eigenbase.relopt.RelOptRule;
+import org.apache.calcite.rel.rules.ProjectJoinTransposeRule;
+import org.apache.calcite.rel.rules.PushProjector;
+import org.apache.calcite.plan.RelOptRule;
-public class DrillPushProjectPastJoinRule extends PushProjectPastJoinRule {
+public class DrillPushProjectPastJoinRule extends ProjectJoinTransposeRule {
public static final RelOptRule INSTANCE = new DrillPushProjectPastJoinRule(DrillConditions.PRESERVE_ITEM);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillReduceAggregatesRule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillReduceAggregatesRule.java
index 983240646..9ba01a847 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillReduceAggregatesRule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillReduceAggregatesRule.java
@@ -26,31 +26,32 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import com.google.common.collect.Lists;
+import org.apache.calcite.rel.core.Aggregate;
+import org.apache.calcite.rel.logical.LogicalAggregate;
+import org.apache.calcite.sql.fun.SqlCountAggFunction;
+import org.apache.calcite.sql.type.SqlTypeName;
import org.apache.drill.exec.planner.sql.DrillSqlOperator;
-import org.eigenbase.rel.AggregateCall;
-import org.eigenbase.rel.AggregateRel;
-import org.eigenbase.rel.AggregateRelBase;
-import org.eigenbase.rel.CalcRel;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelOptRuleOperand;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.reltype.RelDataTypeFactory;
-import org.eigenbase.reltype.RelDataTypeField;
-import org.eigenbase.rex.RexBuilder;
-import org.eigenbase.rex.RexLiteral;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.sql.SqlAggFunction;
-import org.eigenbase.sql.fun.SqlAvgAggFunction;
-import org.eigenbase.sql.fun.SqlStdOperatorTable;
-import org.eigenbase.sql.fun.SqlSumAggFunction;
-import org.eigenbase.sql.fun.SqlSumEmptyIsZeroAggFunction;
-import org.eigenbase.sql.type.SqlTypeName;
-import org.eigenbase.util.CompositeList;
-import org.eigenbase.util.ImmutableIntList;
-import org.eigenbase.util.Util;
+import org.apache.calcite.rel.core.AggregateCall;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelOptRuleOperand;
+import org.apache.calcite.plan.RelOptUtil;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.rel.type.RelDataTypeField;
+import org.apache.calcite.rex.RexBuilder;
+import org.apache.calcite.rex.RexLiteral;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.sql.SqlAggFunction;
+import org.apache.calcite.sql.fun.SqlAvgAggFunction;
+import org.apache.calcite.sql.fun.SqlStdOperatorTable;
+import org.apache.calcite.sql.fun.SqlSumAggFunction;
+import org.apache.calcite.sql.fun.SqlSumEmptyIsZeroAggFunction;
+import org.apache.calcite.sql.type.SqlTypeUtil;
+import org.apache.calcite.util.CompositeList;
+import org.apache.calcite.util.ImmutableIntList;
+import org.apache.calcite.util.Util;
import com.google.common.collect.ImmutableList;
@@ -65,7 +66,7 @@ public class DrillReduceAggregatesRule extends RelOptRule {
* The singleton.
*/
public static final DrillReduceAggregatesRule INSTANCE =
- new DrillReduceAggregatesRule(operand(AggregateRel.class, any()));
+ new DrillReduceAggregatesRule(operand(LogicalAggregate.class, any()));
private static final DrillSqlOperator CastHighOp = new DrillSqlOperator("CastHigh", 1, false);
@@ -82,13 +83,13 @@ public class DrillReduceAggregatesRule extends RelOptRule {
if (!super.matches(call)) {
return false;
}
- AggregateRelBase oldAggRel = (AggregateRelBase) call.rels[0];
+ Aggregate oldAggRel = (Aggregate) call.rels[0];
return containsAvgStddevVarCall(oldAggRel.getAggCallList());
}
@Override
public void onMatch(RelOptRuleCall ruleCall) {
- AggregateRelBase oldAggRel = (AggregateRelBase) ruleCall.rels[0];
+ Aggregate oldAggRel = (Aggregate) ruleCall.rels[0];
reduceAggs(ruleCall, oldAggRel);
}
@@ -127,7 +128,7 @@ public class DrillReduceAggregatesRule extends RelOptRule {
*/
private void reduceAggs(
RelOptRuleCall ruleCall,
- AggregateRelBase oldAggRel) {
+ Aggregate oldAggRel) {
RexBuilder rexBuilder = oldAggRel.getCluster().getRexBuilder();
List<AggregateCall> oldCalls = oldAggRel.getAggCallList();
@@ -150,7 +151,7 @@ public class DrillReduceAggregatesRule extends RelOptRule {
// List of input expressions. If a particular aggregate needs more, it
// will add an expression to the end, and we will create an extra
// project.
- RelNode input = oldAggRel.getChild();
+ RelNode input = oldAggRel.getInput();
List<RexNode> inputExprs = new ArrayList<RexNode>();
for (RelDataTypeField field : input.getRowType().getFieldList()) {
inputExprs.add(
@@ -169,7 +170,7 @@ public class DrillReduceAggregatesRule extends RelOptRule {
inputExprs.size() - input.getRowType().getFieldCount();
if (extraArgCount > 0) {
input =
- CalcRel.createProject(
+ RelOptUtil.createProject(
input,
inputExprs,
CompositeList.of(
@@ -178,12 +179,12 @@ public class DrillReduceAggregatesRule extends RelOptRule {
extraArgCount,
null)));
}
- AggregateRelBase newAggRel =
+ Aggregate newAggRel =
newAggregateRel(
oldAggRel, input, newCalls);
RelNode projectRel =
- CalcRel.createProject(
+ RelOptUtil.createProject(
newAggRel,
projList,
oldAggRel.getRowType().getFieldNames());
@@ -192,7 +193,7 @@ public class DrillReduceAggregatesRule extends RelOptRule {
}
private RexNode reduceAgg(
- AggregateRelBase oldAggRel,
+ Aggregate oldAggRel,
AggregateCall oldCall,
List<AggregateCall> newCalls,
Map<AggregateCall, RexNode> aggCallMapping,
@@ -261,6 +262,7 @@ public class DrillReduceAggregatesRule extends RelOptRule {
return rexBuilder.addAggCall(
oldCall,
nGroups,
+ oldAggRel.indicator,
newCalls,
aggCallMapping,
oldArgTypes);
@@ -268,7 +270,7 @@ public class DrillReduceAggregatesRule extends RelOptRule {
}
private RexNode reduceAvg(
- AggregateRelBase oldAggRel,
+ Aggregate oldAggRel,
AggregateCall oldCall,
List<AggregateCall> newCalls,
Map<AggregateCall, RexNode> aggCallMapping) {
@@ -279,14 +281,14 @@ public class DrillReduceAggregatesRule extends RelOptRule {
int iAvgInput = oldCall.getArgList().get(0);
RelDataType avgInputType =
getFieldType(
- oldAggRel.getChild(),
+ oldAggRel.getInput(),
iAvgInput);
RelDataType sumType =
typeFactory.createTypeWithNullability(
avgInputType,
avgInputType.isNullable() || nGroups == 0);
// SqlAggFunction sumAgg = new SqlSumAggFunction(sumType);
- SqlAggFunction sumAgg = new SqlSumEmptyIsZeroAggFunction(sumType);
+ SqlAggFunction sumAgg = new SqlSumEmptyIsZeroAggFunction();
AggregateCall sumCall =
new AggregateCall(
sumAgg,
@@ -294,8 +296,8 @@ public class DrillReduceAggregatesRule extends RelOptRule {
oldCall.getArgList(),
sumType,
null);
- SqlAggFunction countAgg = SqlStdOperatorTable.COUNT;
- RelDataType countType = countAgg.getReturnType(typeFactory);
+ final SqlCountAggFunction countAgg = (SqlCountAggFunction) SqlStdOperatorTable.COUNT;
+ final RelDataType countType = countAgg.getReturnType(typeFactory);
AggregateCall countCall =
new AggregateCall(
countAgg,
@@ -308,6 +310,7 @@ public class DrillReduceAggregatesRule extends RelOptRule {
rexBuilder.addAggCall(
sumCall,
nGroups,
+ oldAggRel.indicator,
newCalls,
aggCallMapping,
ImmutableList.of(avgInputType));
@@ -316,6 +319,7 @@ public class DrillReduceAggregatesRule extends RelOptRule {
rexBuilder.addAggCall(
countCall,
nGroups,
+ oldAggRel.indicator,
newCalls,
aggCallMapping,
ImmutableList.of(avgInputType));
@@ -345,6 +349,7 @@ public class DrillReduceAggregatesRule extends RelOptRule {
rexBuilder.addAggCall(
countCall,
nGroups,
+ oldAggRel.indicator,
newCalls,
aggCallMapping,
ImmutableList.of(avgInputType));
@@ -358,7 +363,7 @@ public class DrillReduceAggregatesRule extends RelOptRule {
}
private RexNode reduceSum(
- AggregateRelBase oldAggRel,
+ Aggregate oldAggRel,
AggregateCall oldCall,
List<AggregateCall> newCalls,
Map<AggregateCall, RexNode> aggCallMapping) {
@@ -369,12 +374,12 @@ public class DrillReduceAggregatesRule extends RelOptRule {
int arg = oldCall.getArgList().get(0);
RelDataType argType =
getFieldType(
- oldAggRel.getChild(),
+ oldAggRel.getInput(),
arg);
RelDataType sumType =
typeFactory.createTypeWithNullability(
argType, argType.isNullable());
- SqlAggFunction sumZeroAgg = new SqlSumEmptyIsZeroAggFunction(sumType);
+ SqlAggFunction sumZeroAgg = new SqlSumEmptyIsZeroAggFunction();
AggregateCall sumZeroCall =
new AggregateCall(
sumZeroAgg,
@@ -382,8 +387,8 @@ public class DrillReduceAggregatesRule extends RelOptRule {
oldCall.getArgList(),
sumType,
null);
- SqlAggFunction countAgg = SqlStdOperatorTable.COUNT;
- RelDataType countType = countAgg.getReturnType(typeFactory);
+ final SqlCountAggFunction countAgg = (SqlCountAggFunction) SqlStdOperatorTable.COUNT;
+ final RelDataType countType = countAgg.getReturnType(typeFactory);
AggregateCall countCall =
new AggregateCall(
countAgg,
@@ -398,6 +403,7 @@ public class DrillReduceAggregatesRule extends RelOptRule {
rexBuilder.addAggCall(
sumZeroCall,
nGroups,
+ oldAggRel.indicator,
newCalls,
aggCallMapping,
ImmutableList.of(argType));
@@ -411,6 +417,7 @@ public class DrillReduceAggregatesRule extends RelOptRule {
rexBuilder.addAggCall(
countCall,
nGroups,
+ oldAggRel.indicator,
newCalls,
aggCallMapping,
ImmutableList.of(argType));
@@ -422,7 +429,7 @@ public class DrillReduceAggregatesRule extends RelOptRule {
}
private RexNode reduceStddev(
- AggregateRelBase oldAggRel,
+ Aggregate oldAggRel,
AggregateCall oldCall,
boolean biased,
boolean sqrt,
@@ -449,7 +456,7 @@ public class DrillReduceAggregatesRule extends RelOptRule {
final int argOrdinal = oldCall.getArgList().get(0);
final RelDataType argType =
getFieldType(
- oldAggRel.getChild(),
+ oldAggRel.getInput(),
argOrdinal);
// final RexNode argRef = inputExprs.get(argOrdinal);
@@ -476,6 +483,7 @@ public class DrillReduceAggregatesRule extends RelOptRule {
rexBuilder.addAggCall(
sumArgSquaredAggCall,
nGroups,
+ oldAggRel.indicator,
newCalls,
aggCallMapping,
ImmutableList.of(argType));
@@ -491,6 +499,7 @@ public class DrillReduceAggregatesRule extends RelOptRule {
rexBuilder.addAggCall(
sumArgAggCall,
nGroups,
+ oldAggRel.indicator,
newCalls,
aggCallMapping,
ImmutableList.of(argType));
@@ -499,7 +508,7 @@ public class DrillReduceAggregatesRule extends RelOptRule {
rexBuilder.makeCall(
SqlStdOperatorTable.MULTIPLY, sumArg, sumArg);
- final SqlAggFunction countAgg = SqlStdOperatorTable.COUNT;
+ final SqlCountAggFunction countAgg = (SqlCountAggFunction) SqlStdOperatorTable.COUNT;
final RelDataType countType = countAgg.getReturnType(typeFactory);
final AggregateCall countArgAggCall =
new AggregateCall(
@@ -512,6 +521,7 @@ public class DrillReduceAggregatesRule extends RelOptRule {
rexBuilder.addAggCall(
countArgAggCall,
nGroups,
+ oldAggRel.indicator,
newCalls,
aggCallMapping,
ImmutableList.of(argType));
@@ -590,7 +600,7 @@ public class DrillReduceAggregatesRule extends RelOptRule {
/**
* Do a shallow clone of oldAggRel and update aggCalls. Could be refactored
- * into AggregateRelBase and subclasses - but it's only needed for some
+ * into Aggregate and subclasses - but it's only needed for some
* subclasses.
*
* @param oldAggRel AggregateRel to clone.
@@ -598,15 +608,11 @@ public class DrillReduceAggregatesRule extends RelOptRule {
* @param newCalls New list of AggregateCalls
* @return shallow clone with new list of AggregateCalls.
*/
- protected AggregateRelBase newAggregateRel(
- AggregateRelBase oldAggRel,
+ protected Aggregate newAggregateRel(
+ Aggregate oldAggRel,
RelNode inputRel,
List<AggregateCall> newCalls) {
- return new AggregateRel(
- oldAggRel.getCluster(),
- inputRel,
- oldAggRel.getGroupSet(),
- newCalls);
+ return LogicalAggregate.create(inputRel, oldAggRel.indicator, oldAggRel.getGroupSet(), oldAggRel.getGroupSets(), newCalls);
}
private RelDataType getFieldType(RelNode relNode, int i) {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillReduceExpressionsRule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillReduceExpressionsRule.java
index 29175e5c7..352760116 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillReduceExpressionsRule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillReduceExpressionsRule.java
@@ -17,13 +17,15 @@
******************************************************************************/
package org.apache.drill.exec.planner.logical;
-import org.eigenbase.rel.CalcRel;
-import org.eigenbase.rel.FilterRel;
-import org.eigenbase.rel.RelCollationImpl;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.SingleRel;
-import org.eigenbase.rel.SortRel;
-import org.eigenbase.rel.rules.ReduceExpressionsRule;
+import org.apache.calcite.rel.core.Calc;
+import org.apache.calcite.rel.logical.LogicalCalc;
+import org.apache.calcite.rel.core.Filter;
+import org.apache.calcite.rel.RelCollationImpl;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.SingleRel;
+import org.apache.calcite.rel.core.Sort;
+import org.apache.calcite.rel.logical.LogicalSort;
+import org.apache.calcite.rel.rules.ReduceExpressionsRule;
import java.math.BigDecimal;
@@ -48,7 +50,7 @@ public class DrillReduceExpressionsRule {
* expose the planning time known schema. Instead we have to insert a limit 0.
*/
@Override
- protected RelNode createEmptyRelOrEquivalent(FilterRel filter) {
+ protected RelNode createEmptyRelOrEquivalent(Filter filter) {
return createEmptyEmptyRelHelper(filter);
}
@@ -67,16 +69,14 @@ public class DrillReduceExpressionsRule {
* expose the planning time known schema. Instead we have to insert a limit 0.
*/
@Override
- protected RelNode createEmptyRelOrEquivalent(CalcRel calc) {
+ protected RelNode createEmptyRelOrEquivalent(Calc calc) {
return createEmptyEmptyRelHelper(calc);
}
}
private static RelNode createEmptyEmptyRelHelper(SingleRel input) {
- return new SortRel(input.getCluster(), input.getTraitSet(),
- input.getChild(),
- RelCollationImpl.EMPTY,
+ return LogicalSort.create(input.getInput(), RelCollationImpl.EMPTY,
input.getCluster().getRexBuilder().makeExactLiteral(BigDecimal.valueOf(0)),
input.getCluster().getRexBuilder().makeExactLiteral(BigDecimal.valueOf(0)));
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillRel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillRel.java
index 7ed7885ff..9996dfb33 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillRel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillRel.java
@@ -19,7 +19,7 @@ package org.apache.drill.exec.planner.logical;
import org.apache.drill.common.logical.data.LogicalOperator;
import org.apache.drill.exec.planner.common.DrillRelNode;
-import org.eigenbase.relopt.Convention;
+import org.apache.calcite.plan.Convention;
/**
* Relational expression that is implemented in Drill.
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillRuleSets.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillRuleSets.java
index 84a0b51ee..41de736d2 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillRuleSets.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillRuleSets.java
@@ -21,8 +21,16 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-import net.hydromatic.optiq.tools.RuleSet;
-
+import org.apache.calcite.rel.rules.AggregateExpandDistinctAggregatesRule;
+import org.apache.calcite.rel.rules.AggregateRemoveRule;
+import org.apache.calcite.rel.rules.FilterJoinRule;
+import org.apache.calcite.rel.rules.JoinPushThroughJoinRule;
+import org.apache.calcite.rel.rules.ProjectRemoveRule;
+import org.apache.calcite.rel.rules.ReduceExpressionsRule;
+import org.apache.calcite.rel.rules.SortRemoveRule;
+import org.apache.calcite.tools.RuleSet;
+
+import org.apache.calcite.rel.rules.FilterMergeRule;
import org.apache.drill.exec.ops.QueryContext;
import org.apache.drill.exec.planner.logical.partition.PruneScanRule;
import org.apache.drill.exec.planner.physical.ConvertCountToDirectScan;
@@ -43,18 +51,9 @@ import org.apache.drill.exec.planner.physical.ValuesPrule;
import org.apache.drill.exec.planner.physical.WindowPrule;
import org.apache.drill.exec.planner.physical.UnionAllPrule;
import org.apache.drill.exec.planner.physical.WriterPrule;
-import org.eigenbase.rel.RelFactories;
-import org.eigenbase.rel.rules.MergeFilterRule;
-import org.eigenbase.rel.rules.MergeProjectRule;
-import org.eigenbase.rel.rules.PushFilterPastJoinRule;
-import org.eigenbase.rel.rules.PushJoinThroughJoinRule;
-import org.eigenbase.rel.rules.ReduceExpressionsRule;
-import org.eigenbase.rel.rules.RemoveDistinctAggregateRule;
-import org.eigenbase.rel.rules.RemoveDistinctRule;
-import org.eigenbase.rel.rules.RemoveSortRule;
-import org.eigenbase.rel.rules.RemoveTrivialProjectRule;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.volcano.AbstractConverter.ExpandConversionRule;
+import org.apache.calcite.rel.core.RelFactories;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.volcano.AbstractConverter.ExpandConversionRule;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.ImmutableSet.Builder;
@@ -121,26 +120,26 @@ public class DrillRuleSets {
// Add support for WHERE style joins.
// PushFilterPastProjectRule.INSTANCE, // Replaced by DrillPushFilterPastProjectRule
DrillPushFilterPastProjectRule.INSTANCE,
- PushFilterPastJoinRule.FILTER_ON_JOIN,
- PushFilterPastJoinRule.JOIN,
- PushJoinThroughJoinRule.RIGHT,
- PushJoinThroughJoinRule.LEFT,
+ FilterJoinRule.FILTER_ON_JOIN, // PushFilterPastJoinRule
+ FilterJoinRule.JOIN, // PushFilterPastJoinRule
+ JoinPushThroughJoinRule.RIGHT, // PushJoinThroughJoinRule
+ JoinPushThroughJoinRule.LEFT, // PushJoinThroughJoinRule
// End support for WHERE style joins.
//Add back rules
- DrillMergeFilterRule.INSTANCE,
+ FilterMergeRule.INSTANCE, // MergeFilterRule. TODO: NO NEED OF DRILL'S version?
ExpandConversionRule.INSTANCE,
// SwapJoinRule.INSTANCE,
- RemoveDistinctRule.INSTANCE,
+ AggregateRemoveRule.INSTANCE, // RemoveDistinctRule
// UnionToDistinctRule.INSTANCE,
- RemoveTrivialProjectRule.INSTANCE,
+ ProjectRemoveRule.INSTANCE, // RemoveTrivialProjectRule
// RemoveTrivialCalcRule.INSTANCE,
- RemoveSortRule.INSTANCE,
+ SortRemoveRule.INSTANCE, //RemoveSortRule.INSTANCE,
// TableAccessRule.INSTANCE, //
//MergeProjectRule.INSTANCE, //
DrillMergeProjectRule.getInstance(true, RelFactories.DEFAULT_PROJECT_FACTORY, context.getFunctionRegistry()),
- RemoveDistinctAggregateRule.INSTANCE, //
+ AggregateExpandDistinctAggregatesRule.INSTANCE, //RemoveDistinctAggregateRule.INSTANCE, //
// ReduceAggregatesRule.INSTANCE, // replaced by DrillReduceAggregatesRule
DrillValuesRule.INSTANCE,
@@ -149,7 +148,7 @@ public class DrillRuleSets {
*/
// PushProjectPastFilterRule.INSTANCE,
DrillPushProjectPastFilterRule.INSTANCE,
-// PushProjectPastJoinRule.INSTANCE,
+// ProjectJoinTransposeRule.INSTANCE,
DrillPushProjectPastJoinRule.INSTANCE,
// SwapJoinRule.INSTANCE, //
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillScanRel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillScanRel.java
index ab3d61b50..a724e2354 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillScanRel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillScanRel.java
@@ -31,13 +31,13 @@ import org.apache.drill.exec.planner.common.DrillScanRelBase;
import org.apache.drill.exec.planner.cost.DrillCostBase.DrillCostFactory;
import org.apache.drill.exec.planner.physical.PrelUtil;
import org.apache.drill.exec.planner.torel.ConversionContext;
-import org.eigenbase.rel.RelWriter;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptCost;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelOptTable;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.reltype.RelDataType;
+import org.apache.calcite.rel.RelWriter;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelOptTable;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.type.RelDataType;
import com.google.common.base.Preconditions;
import com.google.common.base.Predicate;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillScanRule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillScanRule.java
index d71019aff..9a63cb27b 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillScanRule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillScanRule.java
@@ -17,22 +17,22 @@
*/
package org.apache.drill.exec.planner.logical;
-import net.hydromatic.optiq.rules.java.JavaRules.EnumerableTableAccessRel;
+import org.apache.calcite.adapter.enumerable.EnumerableTableScan;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelTraitSet;
public class DrillScanRule extends RelOptRule {
public static final RelOptRule INSTANCE = new DrillScanRule();
private DrillScanRule() {
- super(RelOptHelper.any(EnumerableTableAccessRel.class), "DrillTableRule");
+ super(RelOptHelper.any(EnumerableTableScan.class), "DrillTableRule");
}
@Override
public void onMatch(RelOptRuleCall call) {
- final EnumerableTableAccessRel access = (EnumerableTableAccessRel) call.rel(0);
+ final EnumerableTableScan access = (EnumerableTableScan) call.rel(0);
final RelTraitSet traits = access.getTraitSet().plus(DrillRel.DRILL_LOGICAL);
call.transformTo(new DrillScanRel(access.getCluster(), traits, access.getTable()));
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillScreenRel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillScreenRel.java
index 28f4205a2..d26c3b0db 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillScreenRel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillScreenRel.java
@@ -22,9 +22,9 @@ import java.util.List;
import org.apache.drill.common.logical.data.LogicalOperator;
import org.apache.drill.common.logical.data.Store;
import org.apache.drill.exec.planner.common.DrillScreenRelBase;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelTraitSet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -42,7 +42,7 @@ public class DrillScreenRel extends DrillScreenRelBase implements DrillRel {
@Override
public LogicalOperator implement(DrillImplementor implementor) {
- LogicalOperator childOp = implementor.visitChild(this, 0, getChild());
+ LogicalOperator childOp = implementor.visitChild(this, 0, getInput());
return Store.builder().setInput(childOp).storageEngine("--SCREEN--").build();
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillSortRel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillSortRel.java
index 830f5f24d..3436aba89 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillSortRel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillSortRel.java
@@ -25,15 +25,15 @@ import org.apache.drill.common.logical.data.LogicalOperator;
import org.apache.drill.common.logical.data.Order;
import org.apache.drill.common.logical.data.Order.Ordering;
import org.apache.drill.exec.planner.torel.ConversionContext;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.RelCollation;
-import org.eigenbase.rel.RelCollationImpl;
-import org.eigenbase.rel.RelFieldCollation;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.SortRel;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.rex.RexNode;
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.RelCollation;
+import org.apache.calcite.rel.RelCollationImpl;
+import org.apache.calcite.rel.RelFieldCollation;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.core.Sort;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rex.RexNode;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
@@ -41,7 +41,7 @@ import com.google.common.collect.Maps;
/**
* Sort implemented in Drill.
*/
-public class DrillSortRel extends SortRel implements DrillRel {
+public class DrillSortRel extends Sort implements DrillRel {
/** Creates a DrillSortRel. */
public DrillSortRel(RelOptCluster cluster, RelTraitSet traits, RelNode input, RelCollation collation) {
@@ -61,9 +61,9 @@ public class DrillSortRel extends SortRel implements DrillRel {
@Override
public LogicalOperator implement(DrillImplementor implementor) {
final Order.Builder builder = Order.builder();
- builder.setInput(implementor.visitChild(this, 0, getChild()));
+ builder.setInput(implementor.visitChild(this, 0, getInput()));
- final List<String> childFields = getChild().getRowType().getFieldNames();
+ final List<String> childFields = getInput().getRowType().getFieldNames();
for(RelFieldCollation fieldCollation : this.collation.getFieldCollations()){
builder.addOrdering(fieldCollation.getDirection(),
new FieldReference(childFields.get(fieldCollation.getFieldIndex())),
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillSortRule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillSortRule.java
index f968dbb24..5ae2b395d 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillSortRule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillSortRule.java
@@ -17,35 +17,35 @@
*/
package org.apache.drill.exec.planner.logical;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.SortRel;
-import org.eigenbase.relopt.Convention;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.core.Sort;
+import org.apache.calcite.plan.Convention;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelTraitSet;
/**
- * Rule that converts an {@link SortRel} to a {@link DrillSortRel}, implemented by a Drill "order" operation.
+ * Rule that converts an {@link Sort} to a {@link DrillSortRel}, implemented by a Drill "order" operation.
*/
public class DrillSortRule extends RelOptRule {
public static final RelOptRule INSTANCE = new DrillSortRule();
private DrillSortRule() {
- super(RelOptHelper.any(SortRel.class, Convention.NONE), "DrillSortRule");
+ super(RelOptHelper.any(Sort.class, Convention.NONE), "DrillSortRule");
}
@Override
public boolean matches(RelOptRuleCall call) {
- final SortRel sort = call.rel(0);
+ final Sort sort = call.rel(0);
return sort.offset == null && sort.fetch == null;
}
@Override
public void onMatch(RelOptRuleCall call) {
- final SortRel sort = call.rel(0);
+ final Sort sort = call.rel(0);
- final RelNode input = sort.getChild();
+ final RelNode input = sort.getInput();
final RelTraitSet traits = sort.getTraitSet().plus(DrillRel.DRILL_LOGICAL);
final RelNode convertedInput = convert(input, input.getTraitSet().plus(DrillRel.DRILL_LOGICAL));
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillStoreRel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillStoreRel.java
index 6295eaba9..7c498f395 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillStoreRel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillStoreRel.java
@@ -19,14 +19,14 @@ package org.apache.drill.exec.planner.logical;
import java.util.List;
-import net.hydromatic.optiq.prepare.Prepare.CatalogReader;
+import org.apache.calcite.prepare.Prepare.CatalogReader;
import org.apache.drill.common.logical.data.LogicalOperator;
import org.apache.drill.exec.planner.common.DrillStoreRelBase;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptTable;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptTable;
+import org.apache.calcite.plan.RelTraitSet;
public class DrillStoreRel extends DrillStoreRelBase implements DrillRel{
static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(DrillStoreRel.class);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillTable.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillTable.java
index 5451ca0df..3fdbb5729 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillTable.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillTable.java
@@ -19,18 +19,17 @@ package org.apache.drill.exec.planner.logical;
import java.io.IOException;
-import net.hydromatic.optiq.Schema.TableType;
-import net.hydromatic.optiq.Statistic;
-import net.hydromatic.optiq.Statistics;
-import net.hydromatic.optiq.Table;
+import org.apache.calcite.schema.Schema.TableType;
+import org.apache.calcite.schema.Statistic;
+import org.apache.calcite.schema.Statistics;
+import org.apache.calcite.schema.Table;
import org.apache.drill.common.JSONOptions;
import org.apache.drill.common.logical.StoragePluginConfig;
import org.apache.drill.exec.physical.base.GroupScan;
import org.apache.drill.exec.store.StoragePlugin;
-import org.apache.drill.exec.util.ImpersonationUtil;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptTable;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptTable;
public abstract class DrillTable implements Table {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillUnionRel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillUnionRel.java
index 39d5d4d0a..566c55846 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillUnionRel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillUnionRel.java
@@ -19,18 +19,18 @@ package org.apache.drill.exec.planner.logical;
import java.util.List;
-import net.hydromatic.linq4j.Ord;
+import org.apache.calcite.linq4j.Ord;
import org.apache.drill.common.logical.data.LogicalOperator;
import org.apache.drill.common.logical.data.Union;
import org.apache.drill.exec.planner.common.DrillUnionRelBase;
import org.apache.drill.exec.planner.torel.ConversionContext;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptCost;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelTraitSet;
/**
* Union implemented in Drill.
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillUnionRule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillUnionRule.java
index f71d2032c..e0f9e2dd9 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillUnionRule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillUnionRule.java
@@ -22,29 +22,29 @@ import java.util.List;
import java.util.logging.Logger;
import org.apache.drill.exec.planner.common.DrillUnionRelBase;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.UnionRel;
-import org.eigenbase.relopt.Convention;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.trace.EigenbaseTrace;
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.logical.LogicalUnion;
+import org.apache.calcite.plan.Convention;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.util.trace.CalciteTrace;
/**
- * Rule that converts a {@link UnionRel} to a {@link DrillUnionRelBase}, implemented by a "union" operation.
+ * Rule that converts a {@link LogicalUnion} to a {@link DrillUnionRelBase}, implemented by a "union" operation.
*/
public class DrillUnionRule extends RelOptRule {
public static final RelOptRule INSTANCE = new DrillUnionRule();
- protected static final Logger tracer = EigenbaseTrace.getPlannerTracer();
+ protected static final Logger tracer = CalciteTrace.getPlannerTracer();
private DrillUnionRule() {
- super(RelOptHelper.any(UnionRel.class, Convention.NONE), "DrillUnionRule");
+ super(RelOptHelper.any(LogicalUnion.class, Convention.NONE), "DrillUnionRule");
}
@Override
public void onMatch(RelOptRuleCall call) {
- final UnionRel union = (UnionRel) call.rel(0);
+ final LogicalUnion union = (LogicalUnion) call.rel(0);
final RelTraitSet traits = union.getTraitSet().plus(DrillRel.DRILL_LOGICAL);
final List<RelNode> convertedInputs = new ArrayList<>();
for (RelNode input : union.getInputs()) {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillValuesRel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillValuesRel.java
index 4fbc4d4e9..cd259d7ef 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillValuesRel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillValuesRel.java
@@ -24,34 +24,34 @@ import java.math.BigDecimal;
import java.util.GregorianCalendar;
import java.util.List;
+import com.google.common.collect.ImmutableList;
+import org.apache.calcite.rel.AbstractRelNode;
+import org.apache.calcite.rel.RelWriter;
+import org.apache.calcite.rel.type.RelDataTypeField;
+import org.apache.calcite.sql.SqlExplainLevel;
+import org.apache.calcite.sql.type.SqlTypeUtil;
+import org.apache.calcite.util.NlsString;
+import org.apache.calcite.util.Pair;
import org.apache.drill.common.JSONOptions;
import org.apache.drill.common.exceptions.DrillRuntimeException;
import org.apache.drill.common.logical.data.LogicalOperator;
-import org.apache.drill.common.logical.data.Values;
-import org.apache.drill.exec.vector.complex.fn.ExtendedJsonOutput;
-import org.apache.drill.exec.vector.complex.fn.JsonOutput;
-import org.eigenbase.rel.AbstractRelNode;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.RelWriter;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptCost;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.reltype.RelDataTypeField;
-import org.eigenbase.rex.RexLiteral;
-import org.eigenbase.sql.SqlExplainLevel;
-import org.eigenbase.sql.type.SqlTypeUtil;
-import org.eigenbase.util.NlsString;
-import org.eigenbase.util.Pair;
-import org.joda.time.DateTime;
-import org.joda.time.Period;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rex.RexLiteral;
import com.fasterxml.jackson.core.JsonLocation;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.util.TokenBuffer;
-import com.google.common.base.Functions;
+import org.apache.drill.common.logical.data.Values;
+import org.apache.drill.exec.vector.complex.fn.ExtendedJsonOutput;
+import org.apache.drill.exec.vector.complex.fn.JsonOutput;
+import org.joda.time.DateTime;
+import org.joda.time.Period;
/**
* Values implemented in Drill.
@@ -65,7 +65,7 @@ public class DrillValuesRel extends AbstractRelNode implements DrillRel {
private final JSONOptions options;
private final double rowCount;
- protected DrillValuesRel(RelOptCluster cluster, RelDataType rowType, List<List<RexLiteral>> tuples, RelTraitSet traits) {
+ protected DrillValuesRel(RelOptCluster cluster, RelDataType rowType, ImmutableList<ImmutableList<RexLiteral>> tuples, RelTraitSet traits) {
super(cluster, traits);
assert getConvention() == DRILL_LOGICAL;
verifyRowType(tuples, rowType);
@@ -88,7 +88,7 @@ public class DrillValuesRel extends AbstractRelNode implements DrillRel {
this.rowType = rowType;
}
- private static void verifyRowType(final List<List<RexLiteral>> tuples, RelDataType rowType){
+ private static void verifyRowType(final ImmutableList<ImmutableList<RexLiteral>> tuples, RelDataType rowType){
for (List<RexLiteral> tuple : tuples) {
assert (tuple.size() == rowType.getFieldCount());
@@ -138,7 +138,7 @@ public class DrillValuesRel extends AbstractRelNode implements DrillRel {
.itemIf("tuples", options.asNode(), pw.getDetailLevel() == SqlExplainLevel.ALL_ATTRIBUTES);
}
- private static JsonNode convertToJsonNode(RelDataType rowType, List<List<RexLiteral>> tuples) throws IOException{
+ private static JsonNode convertToJsonNode(RelDataType rowType, ImmutableList<ImmutableList<RexLiteral>> tuples) throws IOException{
TokenBuffer out = new TokenBuffer(MAPPER.getFactory().getCodec(), false);
JsonOutput json = new ExtendedJsonOutput(out);
json.writeStartArray();
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillValuesRule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillValuesRule.java
index d783f442b..066e57bb4 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillValuesRule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillValuesRule.java
@@ -17,25 +17,25 @@
*/
package org.apache.drill.exec.planner.logical;
-import org.eigenbase.rel.ValuesRel;
-import org.eigenbase.relopt.Convention;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.logical.LogicalValues;
+import org.apache.calcite.plan.Convention;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelTraitSet;
/**
- * Rule that converts a {@link ValuesRel} to a Drill "values" operation.
+ * Rule that converts a {@link LogicalValues} to a Drill "values" operation.
*/
public class DrillValuesRule extends RelOptRule {
public static final RelOptRule INSTANCE = new DrillValuesRule();
private DrillValuesRule() {
- super(RelOptHelper.any(ValuesRel.class, Convention.NONE), "DrillValuesRule");
+ super(RelOptHelper.any(LogicalValues.class, Convention.NONE), "DrillValuesRule");
}
@Override
public void onMatch(RelOptRuleCall call) {
- final ValuesRel values = (ValuesRel) call.rel(0);
+ final LogicalValues values = (LogicalValues) call.rel(0);
final RelTraitSet traits = values.getTraitSet().plus(DrillRel.DRILL_LOGICAL);
call.transformTo(new DrillValuesRel(values.getCluster(), values.getRowType(), values.getTuples(), traits));
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillViewTable.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillViewTable.java
index 9c5a94f96..b25423ba2 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillViewTable.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillViewTable.java
@@ -17,20 +17,20 @@
*/
package org.apache.drill.exec.planner.logical;
-import net.hydromatic.optiq.Schema.TableType;
-import net.hydromatic.optiq.Statistic;
-import net.hydromatic.optiq.Statistics;
-import net.hydromatic.optiq.TranslatableTable;
+import java.util.List;
+
+import org.apache.calcite.schema.Schema.TableType;
+import org.apache.calcite.schema.Statistic;
+import org.apache.calcite.schema.Statistics;
+import org.apache.calcite.schema.TranslatableTable;
import org.apache.drill.exec.dotdrill.View;
-import org.apache.drill.exec.ops.ViewExpansionContext;
-import org.apache.drill.exec.ops.ViewExpansionContext.ViewExpansionToken;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptTable;
-import org.eigenbase.relopt.RelOptTable.ToRelContext;
-import org.eigenbase.relopt.RelOptUtil;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.reltype.RelDataTypeFactory;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptTable;
+import org.apache.calcite.plan.RelOptTable.ToRelContext;
+import org.apache.calcite.plan.RelOptUtil;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
public class DrillViewTable implements TranslatableTable, DrillViewInfoProvider {
static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(DrillViewTable.class);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillWindowRel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillWindowRel.java
index 113f98c45..58c42fc79 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillWindowRel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillWindowRel.java
@@ -19,8 +19,9 @@
package org.apache.drill.exec.planner.logical;
import com.google.common.collect.Lists;
-import net.hydromatic.linq4j.Ord;
-import net.hydromatic.optiq.util.BitSets;
+import com.sun.java.swing.plaf.windows.resources.windows;
+import org.apache.calcite.linq4j.Ord;
+import org.apache.calcite.util.BitSets;
import org.apache.drill.common.expression.ExpressionPosition;
import org.apache.drill.common.expression.FieldReference;
import org.apache.drill.common.expression.FunctionCall;
@@ -29,13 +30,13 @@ import org.apache.drill.common.expression.ValueExpressions;
import org.apache.drill.common.logical.data.LogicalOperator;
import org.apache.drill.common.logical.data.Order;
import org.apache.drill.exec.planner.common.DrillWindowRelBase;
-import org.eigenbase.rel.AggregateCall;
-import org.eigenbase.rel.RelFieldCollation;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.rex.RexLiteral;
+import org.apache.calcite.rel.core.AggregateCall;
+import org.apache.calcite.rel.RelFieldCollation;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rex.RexLiteral;
import java.util.List;
@@ -47,7 +48,7 @@ public class DrillWindowRel extends DrillWindowRelBase implements DrillRel {
* @param traits
* @param child Input relational expression
* @param rowType Output row type
- * @param windows Windows
+ * @param groups Windows
*/
public DrillWindowRel(
RelOptCluster cluster,
@@ -55,33 +56,33 @@ public class DrillWindowRel extends DrillWindowRelBase implements DrillRel {
RelNode child,
List<RexLiteral> constants,
RelDataType rowType,
- List<Window> windows) {
- super(cluster, traits, child, constants, rowType, windows);
+ List<Group> groups) {
+ super(cluster, traits, child, constants, rowType, groups);
}
@Override
public RelNode copy(RelTraitSet traitSet, List<RelNode> inputs) {
- return new DrillWindowRel(getCluster(), traitSet, sole(inputs), constants, getRowType(), windows);
+ return new DrillWindowRel(getCluster(), traitSet, sole(inputs), constants, getRowType(), groups);
}
@Override
public LogicalOperator implement(DrillImplementor implementor) {
- final LogicalOperator inputOp = implementor.visitChild(this, 0, getChild());
+ final LogicalOperator inputOp = implementor.visitChild(this, 0, getInput());
org.apache.drill.common.logical.data.Window.Builder builder = new org.apache.drill.common.logical.data.Window.Builder();
final List<String> fields = getRowType().getFieldNames();
- final List<String> childFields = getChild().getRowType().getFieldNames();
- for (Window window : windows) {
+ final List<String> childFields = getInput().getRowType().getFieldNames();
+ for (Group window : groups) {
for(RelFieldCollation orderKey : window.orderKeys.getFieldCollations()) {
builder.addOrdering(new Order.Ordering(orderKey.getDirection(), new FieldReference(fields.get(orderKey.getFieldIndex()))));
}
- for (int group : BitSets.toIter(window.groupSet)) {
+ for (int group : BitSets.toIter(window.keys)) {
FieldReference fr = new FieldReference(childFields.get(group), ExpressionPosition.UNKNOWN);
builder.addWithin(fr, fr);
}
- int groupCardinality = window.groupSet.cardinality();
+ int groupCardinality = window.keys.cardinality();
for (Ord<AggregateCall> aggCall : Ord.zip(window.getAggregateCalls(this))) {
FieldReference ref = new FieldReference(fields.get(groupCardinality + aggCall.i));
LogicalExpression expr = toDrill(aggCall.e, childFields);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillWindowRule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillWindowRule.java
index 847e87aa1..76939d913 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillWindowRule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillWindowRule.java
@@ -19,24 +19,24 @@
package org.apache.drill.exec.planner.logical;
import com.google.common.collect.Lists;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.WindowRel;
-import org.eigenbase.relopt.Convention;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.rex.RexLiteral;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.core.Window;
+import org.apache.calcite.plan.Convention;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rex.RexLiteral;
public class DrillWindowRule extends RelOptRule {
public static final RelOptRule INSTANCE = new DrillWindowRule();
private DrillWindowRule() {
- super(RelOptHelper.some(WindowRel.class, Convention.NONE, RelOptHelper.any(RelNode.class)), "DrillWindowRule");
+ super(RelOptHelper.some(Window.class, Convention.NONE, RelOptHelper.any(RelNode.class)), "DrillWindowRule");
}
@Override
public void onMatch(RelOptRuleCall call) {
- final WindowRel window = call.rel(0);
+ final Window window = call.rel(0);
final RelNode input = call.rel(1);
final RelTraitSet traits = window.getTraitSet().plus(DrillRel.DRILL_LOGICAL);
final RelNode convertedInput = convert(input, traits);
@@ -47,6 +47,6 @@ public class DrillWindowRule extends RelOptRule {
convertedInput,
Lists.<RexLiteral>newArrayList(),
window.getRowType(),
- window.windows));
+ window.groups));
}
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillWriterRel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillWriterRel.java
index 04dd13308..fc93c3e47 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillWriterRel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillWriterRel.java
@@ -22,9 +22,9 @@ import java.util.List;
import org.apache.drill.common.logical.data.LogicalOperator;
import org.apache.drill.common.logical.data.Writer;
import org.apache.drill.exec.planner.common.DrillWriterRelBase;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelTraitSet;
public class DrillWriterRel extends DrillWriterRelBase implements DrillRel {
@@ -40,7 +40,7 @@ public class DrillWriterRel extends DrillWriterRelBase implements DrillRel {
@Override
public LogicalOperator implement(DrillImplementor implementor) {
- LogicalOperator childOp = implementor.visitChild(this, 0, getChild());
+ LogicalOperator childOp = implementor.visitChild(this, 0, getInput());
return Writer
.builder()
.setInput(childOp)
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DynamicDrillTable.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DynamicDrillTable.java
index 24917f387..a7dad3538 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DynamicDrillTable.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DynamicDrillTable.java
@@ -20,8 +20,8 @@ package org.apache.drill.exec.planner.logical;
import org.apache.drill.exec.planner.types.RelDataTypeDrillImpl;
import org.apache.drill.exec.planner.types.RelDataTypeHolder;
import org.apache.drill.exec.store.StoragePlugin;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.reltype.RelDataTypeFactory;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
public class DynamicDrillTable extends DrillTable{
static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(DynamicDrillTable.class);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/EnumerableDrillRule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/EnumerableDrillRule.java
index 131c60fbb..87d249342 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/EnumerableDrillRule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/EnumerableDrillRule.java
@@ -17,11 +17,11 @@
*/
package org.apache.drill.exec.planner.logical;
-import net.hydromatic.optiq.rules.java.EnumerableConvention;
+import org.apache.calcite.adapter.enumerable.EnumerableConvention;
import org.apache.drill.exec.planner.common.DrillScreenRelBase;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.convert.ConverterRule;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.convert.ConverterRule;
/**
* Rule that converts any Drill relational expression to enumerable format by adding a {@link DrillScreenRelBase}.
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/PartitionPruningUtil.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/PartitionPruningUtil.java
index 88b4a5109..05ccfb9a4 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/PartitionPruningUtil.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/PartitionPruningUtil.java
@@ -18,8 +18,8 @@
package org.apache.drill.exec.planner.logical;
import org.apache.drill.exec.physical.base.GroupScan;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.rex.RexNode;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.rex.RexNode;
public class PartitionPruningUtil {
public static void rewritePlan(RelOptRuleCall call, DrillFilterRel filterRel, DrillProjectRel projectRel, DrillScanRel scanRel, GroupScan newScan, DirPathBuilder builder) {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/PreProcessLogicalRel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/PreProcessLogicalRel.java
index 60aa1dad4..0f8e45afd 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/PreProcessLogicalRel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/PreProcessLogicalRel.java
@@ -24,23 +24,23 @@ import org.apache.drill.exec.exception.UnsupportedOperatorCollector;
import org.apache.drill.exec.planner.StarColumnHelper;
import org.apache.drill.exec.planner.sql.DrillOperatorTable;
import org.apache.drill.exec.work.foreman.SqlUnsupportedException;
-import org.eigenbase.rel.AggregateCall;
-import org.eigenbase.rel.AggregateRel;
-import org.eigenbase.rel.ProjectRel;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.RelShuttleImpl;
-import org.eigenbase.rel.UnionRel;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.reltype.RelDataTypeFactory;
-import org.eigenbase.reltype.RelDataTypeField;
-import org.eigenbase.rex.RexBuilder;
-import org.eigenbase.rex.RexCall;
-import org.eigenbase.rex.RexLiteral;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.sql.SqlFunction;
-import org.eigenbase.sql.SqlOperator;
-import org.eigenbase.sql.fun.SqlSingleValueAggFunction;
-import org.eigenbase.util.NlsString;
+import org.apache.calcite.rel.core.AggregateCall;
+import org.apache.calcite.rel.logical.LogicalAggregate;
+import org.apache.calcite.rel.logical.LogicalProject;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.RelShuttleImpl;
+import org.apache.calcite.rel.logical.LogicalUnion;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.rel.type.RelDataTypeField;
+import org.apache.calcite.rex.RexBuilder;
+import org.apache.calcite.rex.RexCall;
+import org.apache.calcite.rex.RexLiteral;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.sql.SqlFunction;
+import org.apache.calcite.sql.SqlOperator;
+import org.apache.calcite.sql.fun.SqlSingleValueAggFunction;
+import org.apache.calcite.util.NlsString;
/**
* This class rewrites all the project expression that contain convert_to/ convert_from
@@ -67,7 +67,7 @@ public class PreProcessLogicalRel extends RelShuttleImpl {
}
@Override
- public RelNode visit(AggregateRel aggregate) {
+ public RelNode visit(LogicalAggregate aggregate) {
for(AggregateCall aggregateCall : aggregate.getAggCallList()) {
if(aggregateCall.getAggregation() instanceof SqlSingleValueAggFunction) {
unsupportedOperatorCollector.setException(SqlUnsupportedException.ExceptionType.FUNCTION,
@@ -77,11 +77,11 @@ public class PreProcessLogicalRel extends RelShuttleImpl {
}
}
- return visitChild(aggregate, 0, aggregate.getChild());
+ return visitChild(aggregate, 0, aggregate.getInput());
}
@Override
- public RelNode visit(ProjectRel project) {
+ public RelNode visit(LogicalProject project) {
List<RexNode> exprList = new ArrayList<>();
boolean rewrite = false;
@@ -124,15 +124,15 @@ public class PreProcessLogicalRel extends RelShuttleImpl {
}
if (rewrite == true) {
- ProjectRel newProject = project.copy(project.getTraitSet(), project.getInput(0), exprList, project.getRowType());
- return visitChild(newProject, 0, project.getChild());
+ LogicalProject newProject = project.copy(project.getTraitSet(), project.getInput(0), exprList, project.getRowType());
+ return visitChild(newProject, 0, project.getInput());
}
- return visitChild(project, 0, project.getChild());
+ return visitChild(project, 0, project.getInput());
}
@Override
- public RelNode visit(UnionRel union) {
+ public RelNode visit(LogicalUnion union) {
for(RelNode child : union.getInputs()) {
for(RelDataTypeField dataField : child.getRowType().getFieldList()) {
if(dataField.getName().contains(StarColumnHelper.STAR_COLUMN)) {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/RelOptHelper.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/RelOptHelper.java
index 172ee2a21..9c72f21fb 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/RelOptHelper.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/RelOptHelper.java
@@ -17,10 +17,10 @@
*/
package org.apache.drill.exec.planner.logical;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleOperand;
-import org.eigenbase.relopt.RelTrait;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleOperand;
+import org.apache.calcite.plan.RelTrait;
public class RelOptHelper {
static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(RelOptHelper.class);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/partition/FindPartitionConditions.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/partition/FindPartitionConditions.java
index 5cf360a94..7dbadc9bc 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/partition/FindPartitionConditions.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/partition/FindPartitionConditions.java
@@ -21,25 +21,22 @@ import java.util.ArrayDeque;
import java.util.BitSet;
import java.util.Deque;
import java.util.List;
-import java.util.Iterator;
-
-import org.eigenbase.rex.RexBuilder;
-import org.eigenbase.rex.RexCall;
-import org.eigenbase.rex.RexCorrelVariable;
-import org.eigenbase.rex.RexDynamicParam;
-import org.eigenbase.rex.RexFieldAccess;
-import org.eigenbase.rex.RexInputRef;
-import org.eigenbase.rex.RexLiteral;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.rex.RexOver;
-import org.eigenbase.rex.RexRangeRef;
-import org.eigenbase.rex.RexVisitorImpl;
-import org.eigenbase.sql.SqlKind;
-import org.eigenbase.sql.SqlOperator;
-import org.eigenbase.sql.fun.SqlRowOperator;
-import org.eigenbase.sql.fun.SqlStdOperatorTable;
-import org.eigenbase.util.Stacks;
-import org.eigenbase.util.Util;
+
+import org.apache.calcite.rex.RexBuilder;
+import org.apache.calcite.rex.RexCall;
+import org.apache.calcite.rex.RexCorrelVariable;
+import org.apache.calcite.rex.RexDynamicParam;
+import org.apache.calcite.rex.RexFieldAccess;
+import org.apache.calcite.rex.RexInputRef;
+import org.apache.calcite.rex.RexLiteral;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.rex.RexOver;
+import org.apache.calcite.rex.RexRangeRef;
+import org.apache.calcite.rex.RexVisitorImpl;
+import org.apache.calcite.sql.SqlKind;
+import org.apache.calcite.sql.SqlOperator;
+import org.apache.calcite.sql.fun.SqlRowOperator;
+import org.apache.calcite.util.Util;
import com.google.common.collect.Lists;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/partition/PruneScanRule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/partition/PruneScanRule.java
index 5fab35a81..c8be01984 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/partition/PruneScanRule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/partition/PruneScanRule.java
@@ -23,7 +23,8 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import net.hydromatic.optiq.util.BitSets;
+import org.apache.calcite.rex.RexUtil;
+import org.apache.calcite.util.BitSets;
import org.apache.drill.common.expression.ErrorCollectorImpl;
import org.apache.drill.common.expression.LogicalExpression;
@@ -31,7 +32,6 @@ import org.apache.drill.common.types.TypeProtos.MinorType;
import org.apache.drill.common.types.Types;
import org.apache.drill.exec.expr.ExpressionTreeMaterializer;
import org.apache.drill.exec.expr.fn.interpreter.InterpreterEvaluator;
-import org.apache.drill.exec.expr.holders.NullableVarCharHolder;
import org.apache.drill.exec.memory.BufferAllocator;
import org.apache.drill.exec.ops.QueryContext;
import org.apache.drill.exec.physical.base.FileGroupScan;
@@ -52,13 +52,12 @@ import org.apache.drill.exec.store.dfs.FileSelection;
import org.apache.drill.exec.store.dfs.FormatSelection;
import org.apache.drill.exec.vector.NullableBitVector;
import org.apache.drill.exec.vector.NullableVarCharVector;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelOptRuleOperand;
-import org.eigenbase.relopt.RelOptUtil;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.rex.RexUtil;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelOptRuleOperand;
+import org.apache.calcite.plan.RelOptUtil;
+import org.apache.calcite.rex.RexNode;
import com.google.common.base.Charsets;
import com.google.common.collect.Lists;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/AggPrelBase.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/AggPrelBase.java
index a69188b43..e14ab248c 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/AggPrelBase.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/AggPrelBase.java
@@ -19,8 +19,9 @@ package org.apache.drill.exec.planner.physical;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
-import net.hydromatic.linq4j.Ord;
-import net.hydromatic.optiq.util.BitSets;
+import org.apache.calcite.linq4j.Ord;
+import org.apache.calcite.util.BitSets;
+import org.apache.calcite.util.ImmutableBitSet;
import org.apache.drill.common.expression.ExpressionPosition;
import org.apache.drill.common.expression.FieldReference;
import org.apache.drill.common.expression.FunctionCall;
@@ -28,27 +29,26 @@ import org.apache.drill.common.expression.LogicalExpression;
import org.apache.drill.common.expression.ValueExpressions;
import org.apache.drill.common.logical.data.NamedExpression;
import org.apache.drill.exec.planner.physical.visitor.PrelVisitor;
-import org.eigenbase.rel.AggregateCall;
-import org.eigenbase.rel.AggregateRelBase;
-import org.eigenbase.rel.Aggregation;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.reltype.RelDataTypeFactory;
-import org.eigenbase.sql.SqlAggFunction;
-import org.eigenbase.sql.SqlFunctionCategory;
-import org.eigenbase.sql.SqlKind;
-import org.eigenbase.sql.type.OperandTypes;
-import org.eigenbase.sql.type.ReturnTypes;
+import org.apache.calcite.rel.core.AggregateCall;
+import org.apache.calcite.rel.core.Aggregate;
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.sql.SqlAggFunction;
+import org.apache.calcite.sql.SqlFunctionCategory;
+import org.apache.calcite.sql.SqlKind;
+import org.apache.calcite.sql.type.OperandTypes;
+import org.apache.calcite.sql.type.ReturnTypes;
import java.util.BitSet;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
-public abstract class AggPrelBase extends AggregateRelBase implements Prel {
+public abstract class AggPrelBase extends Aggregate implements Prel {
protected static enum OperatorPhase {PHASE_1of1, PHASE_1of2, PHASE_2of2};
@@ -92,9 +92,15 @@ public abstract class AggPrelBase extends AggregateRelBase implements Prel {
}
- public AggPrelBase(RelOptCluster cluster, RelTraitSet traits, RelNode child, BitSet groupSet,
- List<AggregateCall> aggCalls, OperatorPhase phase) throws InvalidRelException {
- super(cluster, traits, child, groupSet, aggCalls);
+ public AggPrelBase(RelOptCluster cluster,
+ RelTraitSet traits,
+ RelNode child,
+ boolean indicator,
+ ImmutableBitSet groupSet,
+ List<ImmutableBitSet> groupSets,
+ List<AggregateCall> aggCalls,
+ OperatorPhase phase) throws InvalidRelException {
+ super(cluster, traits, child, indicator, groupSet, groupSets, aggCalls);
this.operPhase = phase;
createKeysAndExprs();
}
@@ -116,7 +122,7 @@ public abstract class AggPrelBase extends AggregateRelBase implements Prel {
}
protected void createKeysAndExprs() {
- final List<String> childFields = getChild().getRowType().getFieldNames();
+ final List<String> childFields = getInput().getRowType().getFieldNames();
final List<String> fields = getRowType().getFieldNames();
for (int group : BitSets.toIter(groupSet)) {
@@ -134,7 +140,7 @@ public abstract class AggPrelBase extends AggregateRelBase implements Prel {
if (getOperatorPhase() == OperatorPhase.PHASE_1of2) {
if (aggCall.e.getAggregation().getName().equals("COUNT")) {
// If we are doing a COUNT aggregate in Phase1of2, then in Phase2of2 we should SUM the COUNTs,
- Aggregation sumAggFun = new SqlSumCountAggFunction(aggCall.e.getType());
+ SqlAggFunction sumAggFun = new SqlSumCountAggFunction(aggCall.e.getType());
AggregateCall newAggCall =
new AggregateCall(
sumAggFun,
@@ -175,7 +181,7 @@ public abstract class AggPrelBase extends AggregateRelBase implements Prel {
@Override
public Iterator<Prel> iterator() {
- return PrelUtil.iter(getChild());
+ return PrelUtil.iter(getInput());
}
@Override
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/AggPruleBase.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/AggPruleBase.java
index e6c815b59..b911f6bee 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/AggPruleBase.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/AggPruleBase.java
@@ -20,14 +20,14 @@ package org.apache.drill.exec.planner.physical;
import java.util.List;
-import net.hydromatic.optiq.util.BitSets;
+import org.apache.calcite.util.BitSets;
import org.apache.drill.exec.planner.logical.DrillAggregateRel;
import org.apache.drill.exec.planner.physical.DrillDistributionTrait.DistributionField;
-import org.eigenbase.rel.AggregateCall;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelOptRuleOperand;
+import org.apache.calcite.rel.core.AggregateCall;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelOptRuleOperand;
import com.google.common.collect.Lists;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/BroadcastExchangePrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/BroadcastExchangePrel.java
index 0467a07a1..d1abf10cd 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/BroadcastExchangePrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/BroadcastExchangePrel.java
@@ -26,12 +26,12 @@ import org.apache.drill.exec.physical.config.BroadcastExchange;
import org.apache.drill.exec.physical.config.SelectionVectorRemover;
import org.apache.drill.exec.planner.cost.DrillCostBase;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.metadata.RelMetadataQuery;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptCost;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.metadata.RelMetadataQuery;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelTraitSet;
public class BroadcastExchangePrel extends ExchangePrel{
@@ -50,7 +50,7 @@ public class BroadcastExchangePrel extends ExchangePrel{
return super.computeSelfCost(planner).multiplyBy(.1);
}
- RelNode child = this.getChild();
+ RelNode child = this.getInput();
final int numEndPoints = PrelUtil.getSettings(getCluster()).numEndPoints();
final double broadcastFactor = PrelUtil.getSettings(getCluster()).getBroadcastFactor();
@@ -79,7 +79,7 @@ public class BroadcastExchangePrel extends ExchangePrel{
}
public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException {
- Prel child = (Prel) this.getChild();
+ Prel child = (Prel) this.getInput();
PhysicalOperator childPOP = child.getPhysicalOperator(creator);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ComplexToJsonPrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ComplexToJsonPrel.java
index bec3704bb..73817e76f 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ComplexToJsonPrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ComplexToJsonPrel.java
@@ -25,9 +25,9 @@ import org.apache.drill.exec.physical.base.PhysicalOperator;
import org.apache.drill.exec.physical.config.ComplexToJson;
import org.apache.drill.exec.planner.physical.visitor.PrelVisitor;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.SingleRel;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.SingleRel;
+import org.apache.calcite.plan.RelTraitSet;
public class ComplexToJsonPrel extends SingleRel implements Prel {
@@ -42,13 +42,13 @@ public class ComplexToJsonPrel extends SingleRel implements Prel {
@Override
public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException {
- ComplexToJson p = new ComplexToJson(((Prel) getChild()).getPhysicalOperator(creator));
+ ComplexToJson p = new ComplexToJson(((Prel) getInput()).getPhysicalOperator(creator));
return creator.addMetadata(this, p);
}
@Override
public Iterator<Prel> iterator() {
- return PrelUtil.iter(getChild());
+ return PrelUtil.iter(getInput());
}
@Override
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ConvertCountToDirectScan.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ConvertCountToDirectScan.java
index d79480519..8b71b707a 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ConvertCountToDirectScan.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ConvertCountToDirectScan.java
@@ -29,18 +29,18 @@ import org.apache.drill.exec.planner.logical.DrillScanRel;
import org.apache.drill.exec.planner.logical.RelOptHelper;
import org.apache.drill.exec.store.direct.DirectGroupScan;
import org.apache.drill.exec.store.pojo.PojoRecordReader;
-import org.eigenbase.rel.AggregateCall;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelOptRuleOperand;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.reltype.RelDataTypeFactory;
-import org.eigenbase.reltype.RelDataTypeField;
-import org.eigenbase.reltype.RelDataTypeFieldImpl;
-import org.eigenbase.reltype.RelRecordType;
-import org.eigenbase.rex.RexInputRef;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.sql.type.SqlTypeName;
+import org.apache.calcite.rel.core.AggregateCall;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelOptRuleOperand;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.rel.type.RelDataTypeField;
+import org.apache.calcite.rel.type.RelDataTypeFieldImpl;
+import org.apache.calcite.rel.type.RelRecordType;
+import org.apache.calcite.rex.RexInputRef;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.sql.type.SqlTypeName;
import com.google.common.collect.Lists;
@@ -111,7 +111,7 @@ public class ConvertCountToDirectScan extends Prule {
// count(Not-null-input) ==> rowCount
if (aggCall.getArgList().isEmpty() ||
(aggCall.getArgList().size() == 1 &&
- ! agg.getChild().getRowType().getFieldList().get(aggCall.getArgList().get(0).intValue()).getType().isNullable())) {
+ ! agg.getInput().getRowType().getFieldList().get(aggCall.getArgList().get(0).intValue()).getType().isNullable())) {
cnt = (long) oldGrpScan.getScanStats().getRecordCount();
} else if (aggCall.getArgList().size() == 1) {
// count(columnName) ==> Agg ( Scan )) ==> columnValueCount
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/DrillDistributionTrait.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/DrillDistributionTrait.java
index c45ae179b..c1e241dff 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/DrillDistributionTrait.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/DrillDistributionTrait.java
@@ -17,9 +17,9 @@
*/
package org.apache.drill.exec.planner.physical;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelTrait;
-import org.eigenbase.relopt.RelTraitDef;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelTrait;
+import org.apache.calcite.plan.RelTraitDef;
import com.google.common.collect.ImmutableList;
@@ -53,7 +53,8 @@ public class DrillDistributionTrait implements RelTrait {
public void register(RelOptPlanner planner) {
}
- public boolean subsumes(RelTrait trait) {
+ @Override
+ public boolean satisfies(RelTrait trait) {
if (trait instanceof DrillDistributionTrait) {
DistributionType requiredDist = ((DrillDistributionTrait) trait).getType();
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/DrillDistributionTraitDef.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/DrillDistributionTraitDef.java
index ae079a381..d6f796c71 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/DrillDistributionTraitDef.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/DrillDistributionTraitDef.java
@@ -17,10 +17,10 @@
*/
package org.apache.drill.exec.planner.physical;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelTraitDef;
-import org.eigenbase.relopt.volcano.RelSubset;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelTraitDef;
+import org.apache.calcite.plan.volcano.RelSubset;
public class DrillDistributionTraitDef extends RelTraitDef<DrillDistributionTrait>{
public static final DrillDistributionTraitDef INSTANCE = new DrillDistributionTraitDef();
@@ -72,22 +72,30 @@ public class DrillDistributionTraitDef extends RelTraitDef<DrillDistributionTrai
return null;
}
+ RelNode newRel = null;
switch(toDist.getType()){
// UnionExchange, HashToRandomExchange, OrderedPartitionExchange and BroadcastExchange destroy the ordering property,
// therefore RelCollation is set to default, which is EMPTY.
case SINGLETON:
- return new UnionExchangePrel(rel.getCluster(), planner.emptyTraitSet().plus(Prel.DRILL_PHYSICAL).plus(toDist), rel);
+ newRel = new UnionExchangePrel(rel.getCluster(), planner.emptyTraitSet().plus(Prel.DRILL_PHYSICAL).plus(toDist), rel);
+ break;
case HASH_DISTRIBUTED:
- return new HashToRandomExchangePrel(rel.getCluster(), planner.emptyTraitSet().plus(Prel.DRILL_PHYSICAL).plus(toDist), rel,
+ newRel = new HashToRandomExchangePrel(rel.getCluster(), planner.emptyTraitSet().plus(Prel.DRILL_PHYSICAL).plus(toDist), rel,
toDist.getFields());
+ break;
case RANGE_DISTRIBUTED:
- return new OrderedPartitionExchangePrel(rel.getCluster(), planner.emptyTraitSet().plus(Prel.DRILL_PHYSICAL).plus(toDist), rel);
+ newRel = new OrderedPartitionExchangePrel(rel.getCluster(), planner.emptyTraitSet().plus(Prel.DRILL_PHYSICAL).plus(toDist), rel);
+ break;
case BROADCAST_DISTRIBUTED:
- return new BroadcastExchangePrel(rel.getCluster(), planner.emptyTraitSet().plus(Prel.DRILL_PHYSICAL).plus(toDist), rel);
+ newRel = new BroadcastExchangePrel(rel.getCluster(), planner.emptyTraitSet().plus(Prel.DRILL_PHYSICAL).plus(toDist), rel);
+ break;
default:
- return null;
+ newRel = null;
}
+ // planner.register(newRel, rel);
+
+ return newRel;
}
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ExchangePrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ExchangePrel.java
index 5a75adb43..9ad1c672b 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ExchangePrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ExchangePrel.java
@@ -19,9 +19,9 @@
package org.apache.drill.exec.planner.physical;
import org.apache.drill.exec.planner.physical.visitor.PrelVisitor;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelTraitSet;
public abstract class ExchangePrel extends SinglePrel{
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/FilterPrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/FilterPrel.java
index 6198d37e8..b631cdcf8 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/FilterPrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/FilterPrel.java
@@ -28,10 +28,10 @@ import org.apache.drill.exec.planner.common.DrillFilterRelBase;
import org.apache.drill.exec.planner.logical.DrillParseContext;
import org.apache.drill.exec.planner.physical.visitor.PrelVisitor;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.rex.RexNode;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rex.RexNode;
public class FilterPrel extends DrillFilterRelBase implements Prel {
@@ -40,14 +40,14 @@ public class FilterPrel extends DrillFilterRelBase implements Prel {
}
@Override
- public RelNode copy(RelTraitSet traitSet, List<RelNode> inputs) {
- return new FilterPrel(getCluster(), traitSet, sole(inputs), getCondition());
+ public org.apache.calcite.rel.core.Filter copy(RelTraitSet traitSet, RelNode input, RexNode condition) {
+ return new FilterPrel(getCluster(), traitSet, input, condition);
}
@Override
public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException {
- Prel child = (Prel) this.getChild();
+ Prel child = (Prel) this.getInput();
PhysicalOperator childPOP = child.getPhysicalOperator(creator);
@@ -57,7 +57,7 @@ public class FilterPrel extends DrillFilterRelBase implements Prel {
@Override
public Iterator<Prel> iterator() {
- return PrelUtil.iter(getChild());
+ return PrelUtil.iter(getInput());
}
@Override
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/FilterPrule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/FilterPrule.java
index c15c5e0f3..50b760b6b 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/FilterPrule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/FilterPrule.java
@@ -19,10 +19,10 @@ package org.apache.drill.exec.planner.physical;
import org.apache.drill.exec.planner.logical.DrillFilterRel;
import org.apache.drill.exec.planner.logical.RelOptHelper;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelTraitSet;
public class FilterPrule extends Prule {
public static final RelOptRule INSTANCE = new FilterPrule();
@@ -34,7 +34,7 @@ public class FilterPrule extends Prule {
@Override
public void onMatch(RelOptRuleCall call) {
final DrillFilterRel filter = (DrillFilterRel) call.rel(0);
- final RelNode input = filter.getChild();
+ final RelNode input = filter.getInput();
RelTraitSet traits = input.getTraitSet().plus(Prel.DRILL_PHYSICAL);
RelNode convertedInput = convert(input, traits);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/FlattenPrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/FlattenPrel.java
index 18a2cc211..e206951b3 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/FlattenPrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/FlattenPrel.java
@@ -27,11 +27,11 @@ import org.apache.drill.exec.planner.logical.DrillOptiq;
import org.apache.drill.exec.planner.logical.DrillParseContext;
import org.apache.drill.exec.planner.physical.visitor.PrelVisitor;
import org.apache.drill.exec.record.BatchSchema;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.RelWriter;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.rex.RexNode;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.RelWriter;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rex.RexNode;
import java.io.IOException;
import java.util.Iterator;
@@ -53,12 +53,12 @@ public class FlattenPrel extends SinglePrel implements Prel {
@Override
public Iterator<Prel> iterator() {
- return PrelUtil.iter(getChild());
+ return PrelUtil.iter(getInput());
}
@Override
public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException {
- Prel child = (Prel) this.getChild();
+ Prel child = (Prel) this.getInput();
PhysicalOperator childPOP = child.getPhysicalOperator(creator);
FlattenPOP f = new FlattenPOP(childPOP, (SchemaPath) getFlattenExpression(new DrillParseContext()));
@@ -75,6 +75,6 @@ public class FlattenPrel extends SinglePrel implements Prel {
}
protected LogicalExpression getFlattenExpression(DrillParseContext context){
- return DrillOptiq.toDrill(context, getChild(), toFlatten);
+ return DrillOptiq.toDrill(context, getInput(), toFlatten);
}
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashAggPrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashAggPrel.java
index 0b9dcb6cf..61819591a 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashAggPrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashAggPrel.java
@@ -18,9 +18,9 @@
package org.apache.drill.exec.planner.physical;
import java.io.IOException;
-import java.util.BitSet;
import java.util.List;
+import org.apache.calcite.util.ImmutableBitSet;
import org.apache.drill.common.logical.data.NamedExpression;
import org.apache.drill.exec.ExecConstants;
import org.apache.drill.exec.expr.holders.IntHolder;
@@ -29,29 +29,35 @@ import org.apache.drill.exec.physical.config.HashAggregate;
import org.apache.drill.exec.planner.cost.DrillCostBase;
import org.apache.drill.exec.planner.cost.DrillCostBase.DrillCostFactory;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.rel.AggregateCall;
-import org.eigenbase.rel.AggregateRelBase;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.metadata.RelMetadataQuery;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptCost;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.core.AggregateCall;
+import org.apache.calcite.rel.core.Aggregate;
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.metadata.RelMetadataQuery;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelTraitSet;
public class HashAggPrel extends AggPrelBase implements Prel{
static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(HashAggPrel.class);
- public HashAggPrel(RelOptCluster cluster, RelTraitSet traits, RelNode child, BitSet groupSet,
- List<AggregateCall> aggCalls, OperatorPhase phase) throws InvalidRelException {
- super(cluster, traits, child, groupSet, aggCalls, phase);
+ public HashAggPrel(RelOptCluster cluster,
+ RelTraitSet traits,
+ RelNode child,
+ boolean indicator,
+ ImmutableBitSet groupSet,
+ List<ImmutableBitSet> groupSets,
+ List<AggregateCall> aggCalls,
+ OperatorPhase phase) throws InvalidRelException {
+ super(cluster, traits, child, indicator, groupSet, groupSets, aggCalls, phase);
}
@Override
- public AggregateRelBase copy(RelTraitSet traitSet, RelNode input, BitSet groupSet, List<AggregateCall> aggCalls) {
+ public Aggregate copy(RelTraitSet traitSet, RelNode input, boolean indicator, ImmutableBitSet groupSet, List<ImmutableBitSet> groupSets, List<AggregateCall> aggCalls) {
try {
- return new HashAggPrel(getCluster(), traitSet, input, getGroupSet(), aggCalls,
+ return new HashAggPrel(getCluster(), traitSet, input, indicator, groupSet, groupSets, aggCalls,
this.getOperatorPhase());
} catch (InvalidRelException e) {
throw new AssertionError(e);
@@ -63,7 +69,7 @@ public class HashAggPrel extends AggPrelBase implements Prel{
if(PrelUtil.getSettings(getCluster()).useDefaultCosting()) {
return super.computeSelfCost(planner).multiplyBy(.1);
}
- RelNode child = this.getChild();
+ RelNode child = this.getInput();
double inputRows = RelMetadataQuery.getRowCount(child);
int numGroupByFields = this.getGroupCount();
@@ -96,7 +102,7 @@ public class HashAggPrel extends AggPrelBase implements Prel{
@Override
public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException {
- Prel child = (Prel) this.getChild();
+ Prel child = (Prel) this.getInput();
HashAggregate g = new HashAggregate(child.getPhysicalOperator(creator),
keys.toArray(new NamedExpression[keys.size()]),
aggExprs.toArray(new NamedExpression[aggExprs.size()]),
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashAggPrule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashAggPrule.java
index 1a43df552..e16593bae 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashAggPrule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashAggPrule.java
@@ -22,19 +22,19 @@ import java.util.logging.Logger;
import org.apache.drill.exec.planner.logical.DrillAggregateRel;
import org.apache.drill.exec.planner.logical.RelOptHelper;
import org.apache.drill.exec.planner.physical.AggPrelBase.OperatorPhase;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelTrait;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.trace.EigenbaseTrace;
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelTrait;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.util.trace.CalciteTrace;
import com.google.common.collect.ImmutableList;
public class HashAggPrule extends AggPruleBase {
public static final RelOptRule INSTANCE = new HashAggPrule();
- protected static final Logger tracer = EigenbaseTrace.getPlannerTracer();
+ protected static final Logger tracer = CalciteTrace.getPlannerTracer();
private HashAggPrule() {
super(RelOptHelper.some(DrillAggregateRel.class, RelOptHelper.any(RelNode.class)), "HashAggPrule");
@@ -112,8 +112,13 @@ public class HashAggPrule extends AggPruleBase {
RelTraitSet traits = newTraitSet(Prel.DRILL_PHYSICAL, input.getTraitSet().getTrait(DrillDistributionTraitDef.INSTANCE));
RelNode newInput = convert(input, traits);
- HashAggPrel phase1Agg = new HashAggPrel(aggregate.getCluster(), traits, newInput,
+ HashAggPrel phase1Agg = new HashAggPrel(
+ aggregate.getCluster(),
+ traits,
+ newInput,
+ aggregate.indicator,
aggregate.getGroupSet(),
+ aggregate.getGroupSets(),
aggregate.getAggCallList(),
OperatorPhase.PHASE_1of2);
@@ -121,10 +126,15 @@ public class HashAggPrule extends AggPruleBase {
new HashToRandomExchangePrel(phase1Agg.getCluster(), phase1Agg.getTraitSet().plus(Prel.DRILL_PHYSICAL).plus(distOnAllKeys),
phase1Agg, ImmutableList.copyOf(getDistributionField(aggregate, true)));
- HashAggPrel phase2Agg = new HashAggPrel(aggregate.getCluster(), exch.getTraitSet(), exch,
- aggregate.getGroupSet(),
- phase1Agg.getPhase2AggCalls(),
- OperatorPhase.PHASE_2of2);
+ HashAggPrel phase2Agg = new HashAggPrel(
+ aggregate.getCluster(),
+ exch.getTraitSet(),
+ exch,
+ aggregate.indicator,
+ aggregate.getGroupSet(),
+ aggregate.getGroupSets(),
+ phase1Agg.getPhase2AggCalls(),
+ OperatorPhase.PHASE_2of2);
return phase2Agg;
}
@@ -135,8 +145,15 @@ public class HashAggPrule extends AggPruleBase {
final RelNode convertedInput = convert(input, PrelUtil.fixTraits(call, traits));
- HashAggPrel newAgg = new HashAggPrel(aggregate.getCluster(), traits, convertedInput, aggregate.getGroupSet(),
- aggregate.getAggCallList(), OperatorPhase.PHASE_1of1);
+ HashAggPrel newAgg = new HashAggPrel(
+ aggregate.getCluster(),
+ traits,
+ convertedInput,
+ aggregate.indicator,
+ aggregate.getGroupSet(),
+ aggregate.getGroupSets(),
+ aggregate.getAggCallList(),
+ OperatorPhase.PHASE_1of1);
call.transformTo(newAgg);
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashJoinPrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashJoinPrel.java
index f63057ff1..9db8e7d13 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashJoinPrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashJoinPrel.java
@@ -20,8 +20,7 @@ package org.apache.drill.exec.planner.physical;
import java.io.IOException;
import java.util.List;
-import net.hydromatic.optiq.runtime.FlatLists;
-import org.apache.drill.common.expression.FieldReference;
+import org.apache.calcite.rel.core.Join;
import org.apache.drill.common.logical.data.JoinCondition;
import org.apache.drill.exec.ExecConstants;
import org.apache.drill.exec.expr.holders.IntHolder;
@@ -30,18 +29,16 @@ import org.apache.drill.exec.physical.config.HashJoinPOP;
import org.apache.drill.exec.planner.cost.DrillCostBase;
import org.apache.drill.exec.planner.cost.DrillCostBase.DrillCostFactory;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.JoinRelBase;
-import org.eigenbase.rel.JoinRelType;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.metadata.RelMetadataQuery;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptCost;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelOptUtil;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.util.Pair;
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.core.JoinRelType;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.metadata.RelMetadataQuery;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelOptUtil;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rex.RexNode;
import com.google.common.collect.Lists;
@@ -62,7 +59,7 @@ public class HashJoinPrel extends JoinPrel {
}
@Override
- public JoinRelBase copy(RelTraitSet traitSet, RexNode conditionExpr, RelNode left, RelNode right, JoinRelType joinType, boolean semiJoinDone) {
+ public Join copy(RelTraitSet traitSet, RexNode conditionExpr, RelNode left, RelNode right, JoinRelType joinType, boolean semiJoinDone) {
try {
return new HashJoinPrel(this.getCluster(), traitSet, left, right, conditionExpr, joinType, this.swapped);
}catch (InvalidRelException e) {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashJoinPrule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashJoinPrule.java
index e802a40c5..24df0b1e2 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashJoinPrule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashJoinPrule.java
@@ -21,18 +21,18 @@ import java.util.logging.Logger;
import org.apache.drill.exec.planner.logical.DrillJoinRel;
import org.apache.drill.exec.planner.logical.RelOptHelper;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelOptRuleOperand;
-import org.eigenbase.trace.EigenbaseTrace;
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelOptRuleOperand;
+import org.apache.calcite.util.trace.CalciteTrace;
public class HashJoinPrule extends JoinPruleBase {
public static final RelOptRule DIST_INSTANCE = new HashJoinPrule("Prel.HashJoinDistPrule", RelOptHelper.any(DrillJoinRel.class), true);
public static final RelOptRule BROADCAST_INSTANCE = new HashJoinPrule("Prel.HashJoinBroadcastPrule", RelOptHelper.any(DrillJoinRel.class), false);
- protected static final Logger tracer = EigenbaseTrace.getPlannerTracer();
+ protected static final Logger tracer = CalciteTrace.getPlannerTracer();
private final boolean isDist;
private HashJoinPrule(String name, RelOptRuleOperand operand, boolean isDist) {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashToMergeExchangePrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashToMergeExchangePrel.java
index 7920187f3..7a0cbeb72 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashToMergeExchangePrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashToMergeExchangePrel.java
@@ -26,13 +26,13 @@ import org.apache.drill.exec.planner.cost.DrillCostBase;
import org.apache.drill.exec.planner.cost.DrillCostBase.DrillCostFactory;
import org.apache.drill.exec.planner.physical.DrillDistributionTrait.DistributionField;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.rel.RelCollation;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.metadata.RelMetadataQuery;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptCost;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelCollation;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.metadata.RelMetadataQuery;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelTraitSet;
public class HashToMergeExchangePrel extends ExchangePrel {
@@ -56,7 +56,7 @@ public class HashToMergeExchangePrel extends ExchangePrel {
if (PrelUtil.getSettings(getCluster()).useDefaultCosting()) {
return super.computeSelfCost(planner).multiplyBy(.1);
}
- RelNode child = this.getChild();
+ RelNode child = this.getInput();
double inputRows = RelMetadataQuery.getRowCount(child);
int rowWidth = child.getRowType().getFieldCount() * DrillCostBase.AVG_FIELD_WIDTH;
@@ -75,7 +75,7 @@ public class HashToMergeExchangePrel extends ExchangePrel {
}
public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException {
- Prel child = (Prel) this.getChild();
+ Prel child = (Prel) this.getInput();
PhysicalOperator childPOP = child.getPhysicalOperator(creator);
@@ -84,8 +84,8 @@ public class HashToMergeExchangePrel extends ExchangePrel {
}
HashToMergeExchange g = new HashToMergeExchange(childPOP,
- PrelUtil.getHashExpression(this.distFields, getChild().getRowType()),
- PrelUtil.getOrdering(this.collation, getChild().getRowType()));
+ PrelUtil.getHashExpression(this.distFields, getInput().getRowType()),
+ PrelUtil.getOrdering(this.collation, getInput().getRowType()));
return creator.addMetadata(this, g);
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashToRandomExchangePrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashToRandomExchangePrel.java
index 6826e4602..c08e6b69c 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashToRandomExchangePrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashToRandomExchangePrel.java
@@ -20,7 +20,7 @@ package org.apache.drill.exec.planner.physical;
import java.io.IOException;
import java.util.List;
-import net.hydromatic.linq4j.Ord;
+import org.apache.calcite.linq4j.Ord;
import org.apache.drill.exec.physical.base.PhysicalOperator;
import org.apache.drill.exec.physical.config.HashToRandomExchange;
@@ -28,13 +28,13 @@ import org.apache.drill.exec.planner.cost.DrillCostBase;
import org.apache.drill.exec.planner.cost.DrillCostBase.DrillCostFactory;
import org.apache.drill.exec.planner.physical.DrillDistributionTrait.DistributionField;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.RelWriter;
-import org.eigenbase.rel.metadata.RelMetadataQuery;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptCost;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.RelWriter;
+import org.apache.calcite.rel.metadata.RelMetadataQuery;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelTraitSet;
public class HashToRandomExchangePrel extends ExchangePrel {
@@ -68,7 +68,7 @@ public class HashToRandomExchangePrel extends ExchangePrel {
return super.computeSelfCost(planner).multiplyBy(.1);
}
- RelNode child = this.getChild();
+ RelNode child = this.getInput();
double inputRows = RelMetadataQuery.getRowCount(child);
int rowWidth = child.getRowType().getFieldCount() * DrillCostBase.AVG_FIELD_WIDTH;
@@ -86,7 +86,7 @@ public class HashToRandomExchangePrel extends ExchangePrel {
}
public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException {
- Prel child = (Prel) this.getChild();
+ Prel child = (Prel) this.getInput();
PhysicalOperator childPOP = child.getPhysicalOperator(creator);
@@ -95,7 +95,7 @@ public class HashToRandomExchangePrel extends ExchangePrel {
}
// TODO - refactor to different exchange name
- HashToRandomExchange g = new HashToRandomExchange(childPOP, PrelUtil.getHashExpression(this.fields, getChild().getRowType()));
+ HashToRandomExchange g = new HashToRandomExchange(childPOP, PrelUtil.getHashExpression(this.fields, getInput().getRowType()));
return creator.addMetadata(this, g);
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/JoinPrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/JoinPrel.java
index bfecd0601..59b9f41b9 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/JoinPrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/JoinPrel.java
@@ -25,18 +25,18 @@ import org.apache.drill.common.expression.FieldReference;
import org.apache.drill.common.logical.data.JoinCondition;
import org.apache.drill.exec.planner.common.DrillJoinRelBase;
import org.apache.drill.exec.planner.physical.visitor.PrelVisitor;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.JoinRelType;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptUtil;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.reltype.RelDataTypeField;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.rex.RexUtil;
-import org.eigenbase.sql.SqlKind;
-import org.eigenbase.util.Pair;
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.core.JoinRelType;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptUtil;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeField;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.rex.RexUtil;
+import org.apache.calcite.sql.SqlKind;
+import org.apache.calcite.util.Pair;
import com.google.common.collect.Lists;
@@ -111,7 +111,7 @@ public abstract class JoinPrel extends DrillJoinRelBase implements Prel{
* A join condition is built only for equality and IS NOT DISTINCT FROM comparisons. The difference is:
* null == null is FALSE whereas null IS NOT DISTINCT FROM null is TRUE
* For a use case of the IS NOT DISTINCT FROM comparison, see
- * {@link org.eigenbase.rel.rules.RemoveDistinctAggregateRule}
+ * {@link org.apache.calcite.rel.rules.RemoveDistinctAggregateRule}
* @param conditions populated list of join conditions
* @param leftFields join fields from the left input
* @param rightFields join fields from the right input
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/JoinPruleBase.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/JoinPruleBase.java
index 77c055c48..d6f167225 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/JoinPruleBase.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/JoinPruleBase.java
@@ -23,17 +23,17 @@ import java.util.List;
import org.apache.drill.exec.planner.common.DrillJoinRelBase;
import org.apache.drill.exec.planner.logical.DrillJoinRel;
import org.apache.drill.exec.planner.physical.DrillDistributionTrait.DistributionField;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.JoinRelType;
-import org.eigenbase.rel.RelCollation;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.metadata.RelMetadataQuery;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelOptRuleOperand;
-import org.eigenbase.relopt.RelOptUtil;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.rex.RexNode;
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.core.JoinRelType;
+import org.apache.calcite.rel.RelCollation;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.metadata.RelMetadataQuery;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelOptRuleOperand;
+import org.apache.calcite.plan.RelOptUtil;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rex.RexNode;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/LimitPrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/LimitPrel.java
index 6012a5a7a..f3e99917f 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/LimitPrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/LimitPrel.java
@@ -22,11 +22,11 @@ import org.apache.drill.exec.physical.config.Limit;
import org.apache.drill.exec.planner.common.DrillLimitRelBase;
import org.apache.drill.exec.planner.physical.visitor.PrelVisitor;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.rex.RexLiteral;
-import org.eigenbase.rex.RexNode;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rex.RexLiteral;
+import org.apache.calcite.rex.RexNode;
import java.io.IOException;
import java.util.Iterator;
@@ -45,7 +45,7 @@ public class LimitPrel extends DrillLimitRelBase implements Prel {
@Override
public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException {
- Prel child = (Prel) this.getChild();
+ Prel child = (Prel) this.getInput();
PhysicalOperator childPOP = child.getPhysicalOperator(creator);
@@ -62,7 +62,7 @@ public class LimitPrel extends DrillLimitRelBase implements Prel {
@Override
public Iterator<Prel> iterator() {
- return PrelUtil.iter(getChild());
+ return PrelUtil.iter(getInput());
}
@Override
@@ -87,7 +87,7 @@ public class LimitPrel extends DrillLimitRelBase implements Prel {
// @Override
// public LogicalOperator implement(DrillImplementor implementor) {
-// LogicalOperator inputOp = implementor.visitChild(this, 0, getChild());
+// LogicalOperator inputOp = implementor.visitChild(this, 0, getInput());
//
// // First offset to include into results (inclusive). Null implies it is starting from offset 0
// int first = offset != null ? Math.max(0, RexLiteral.intValue(offset)) : 0;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/LimitPrule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/LimitPrule.java
index 94685c10c..439578191 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/LimitPrule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/LimitPrule.java
@@ -20,10 +20,10 @@ package org.apache.drill.exec.planner.physical;
import org.apache.drill.exec.planner.logical.DrillLimitRel;
import org.apache.drill.exec.planner.logical.DrillRel;
import org.apache.drill.exec.planner.logical.RelOptHelper;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelTraitSet;
public class LimitPrule extends Prule{
public static final RelOptRule INSTANCE = new LimitPrule();
@@ -36,7 +36,7 @@ public class LimitPrule extends Prule{
@Override
public void onMatch(RelOptRuleCall call) {
final DrillLimitRel limit = (DrillLimitRel) call.rel(0);
- final RelNode input = limit.getChild();
+ final RelNode input = limit.getInput();
final RelTraitSet traits = input.getTraitSet().plus(Prel.DRILL_PHYSICAL).plus(DrillDistributionTrait.SINGLETON);
final RelNode convertedInput = convert(input, traits);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/MergeJoinPrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/MergeJoinPrel.java
index de5c2d53d..3c0022f94 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/MergeJoinPrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/MergeJoinPrel.java
@@ -20,25 +20,23 @@ package org.apache.drill.exec.planner.physical;
import java.io.IOException;
import java.util.List;
-import org.apache.drill.common.expression.FieldReference;
+import org.apache.calcite.rel.core.Join;
import org.apache.drill.common.logical.data.JoinCondition;
import org.apache.drill.exec.physical.base.PhysicalOperator;
import org.apache.drill.exec.physical.config.MergeJoinPOP;
import org.apache.drill.exec.planner.cost.DrillCostBase;
import org.apache.drill.exec.planner.cost.DrillCostBase.DrillCostFactory;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.JoinRelBase;
-import org.eigenbase.rel.JoinRelType;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.metadata.RelMetadataQuery;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptCost;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelOptUtil;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.util.Pair;
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.core.JoinRelType;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.metadata.RelMetadataQuery;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelOptUtil;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rex.RexNode;
import com.google.common.collect.Lists;
@@ -61,7 +59,7 @@ public class MergeJoinPrel extends JoinPrel {
@Override
- public JoinRelBase copy(RelTraitSet traitSet, RexNode conditionExpr, RelNode left, RelNode right, JoinRelType joinType, boolean semiJoinDone) {
+ public Join copy(RelTraitSet traitSet, RexNode conditionExpr, RelNode left, RelNode right, JoinRelType joinType, boolean semiJoinDone) {
try {
return new MergeJoinPrel(this.getCluster(), traitSet, left, right, conditionExpr, joinType);
}catch (InvalidRelException e) {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/MergeJoinPrule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/MergeJoinPrule.java
index 5283467c3..cbcc92074 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/MergeJoinPrule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/MergeJoinPrule.java
@@ -22,15 +22,15 @@ import java.util.logging.Logger;
import org.apache.drill.exec.planner.logical.DrillJoinRel;
import org.apache.drill.exec.planner.logical.RelOptHelper;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.RelCollation;
-import org.eigenbase.rel.RelCollationImpl;
-import org.eigenbase.rel.RelFieldCollation;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelOptRuleOperand;
-import org.eigenbase.trace.EigenbaseTrace;
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.RelCollation;
+import org.apache.calcite.rel.RelCollationImpl;
+import org.apache.calcite.rel.RelFieldCollation;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelOptRuleOperand;
+import org.apache.calcite.util.trace.CalciteTrace;
import com.google.common.collect.Lists;
@@ -38,7 +38,7 @@ public class MergeJoinPrule extends JoinPruleBase {
public static final RelOptRule DIST_INSTANCE = new MergeJoinPrule("Prel.MergeJoinDistPrule", RelOptHelper.any(DrillJoinRel.class), true);
public static final RelOptRule BROADCAST_INSTANCE = new MergeJoinPrule("Prel.MergeJoinBroadcastPrule", RelOptHelper.any(DrillJoinRel.class), false);
- protected static final Logger tracer = EigenbaseTrace.getPlannerTracer();
+ protected static final Logger tracer = CalciteTrace.getPlannerTracer();
final boolean isDist;
private MergeJoinPrule(String name, RelOptRuleOperand operand, boolean isDist) {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/OrderedPartitionExchangePrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/OrderedPartitionExchangePrel.java
index 7bb4822dd..e4ea640e9 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/OrderedPartitionExchangePrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/OrderedPartitionExchangePrel.java
@@ -24,12 +24,12 @@ import org.apache.drill.exec.physical.base.PhysicalOperator;
import org.apache.drill.exec.planner.cost.DrillCostBase;
import org.apache.drill.exec.planner.cost.DrillCostBase.DrillCostFactory;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.metadata.RelMetadataQuery;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptCost;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.metadata.RelMetadataQuery;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelTraitSet;
public class OrderedPartitionExchangePrel extends ExchangePrel {
@@ -43,7 +43,7 @@ public class OrderedPartitionExchangePrel extends ExchangePrel {
if (PrelUtil.getSettings(getCluster()).useDefaultCosting()) {
return super.computeSelfCost(planner).multiplyBy(.1);
}
- RelNode child = this.getChild();
+ RelNode child = this.getInput();
double inputRows = RelMetadataQuery.getRowCount(child);
int rowWidth = child.getRowType().getFieldCount() * DrillCostBase.AVG_FIELD_WIDTH;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PlannerSettings.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PlannerSettings.java
index 8737e68cb..ac86c4a97 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PlannerSettings.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PlannerSettings.java
@@ -26,7 +26,7 @@ import org.apache.drill.exec.server.options.TypeValidators.LongValidator;
import org.apache.drill.exec.server.options.TypeValidators.PositiveLongValidator;
import org.apache.drill.exec.server.options.TypeValidators.RangeDoubleValidator;
import org.apache.drill.exec.server.options.TypeValidators.RangeLongValidator;
-import org.eigenbase.relopt.Context;
+import org.apache.calcite.plan.Context;
public class PlannerSettings implements Context{
static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(PlannerSettings.class);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/Prel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/Prel.java
index 7c63e6a8e..697d5a5e9 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/Prel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/Prel.java
@@ -23,7 +23,7 @@ import org.apache.drill.exec.physical.base.PhysicalOperator;
import org.apache.drill.exec.planner.common.DrillRelNode;
import org.apache.drill.exec.planner.physical.visitor.PrelVisitor;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.relopt.Convention;
+import org.apache.calcite.plan.Convention;
public interface Prel extends DrillRelNode, Iterable<Prel>{
static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(Prel.class);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PrelUtil.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PrelUtil.java
index 44afd68db..c8141cd99 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PrelUtil.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PrelUtil.java
@@ -23,6 +23,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.Set;
+
import org.apache.drill.common.expression.CastExpression;
import org.apache.drill.common.expression.ExpressionPosition;
import org.apache.drill.common.expression.FieldReference;
@@ -35,30 +36,26 @@ import org.apache.drill.common.expression.SchemaPath;
import org.apache.drill.common.logical.data.Order.Ordering;
import org.apache.drill.common.types.TypeProtos.MinorType;
import org.apache.drill.common.types.Types;
-import org.apache.drill.exec.compile.sig.MappingSet;
-import org.apache.drill.exec.expr.ClassGenerator;
-import org.apache.drill.exec.expr.ClassGenerator.HoldingContainer;
-import org.apache.drill.exec.expr.fn.FunctionGenerationHelper;
-import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry;
import org.apache.drill.exec.planner.physical.DrillDistributionTrait.DistributionField;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.rel.RelCollation;
-import org.eigenbase.rel.RelFieldCollation;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.reltype.RelDataTypeFactory;
-import org.eigenbase.reltype.RelDataTypeField;
-import org.eigenbase.rex.RexCall;
-import org.eigenbase.rex.RexInputRef;
-import org.eigenbase.rex.RexLiteral;
-import org.eigenbase.rex.RexLocalRef;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.rex.RexShuttle;
-import org.eigenbase.rex.RexVisitorImpl;
+
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.rel.RelCollation;
+import org.apache.calcite.rel.RelFieldCollation;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.rel.type.RelDataTypeField;
+import org.apache.calcite.rex.RexCall;
+import org.apache.calcite.rex.RexInputRef;
+import org.apache.calcite.rex.RexLiteral;
+import org.apache.calcite.rex.RexLocalRef;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.rex.RexShuttle;
+import org.apache.calcite.rex.RexVisitorImpl;
import com.carrotsearch.hppc.IntIntOpenHashMap;
import com.google.common.collect.ImmutableList;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ProducerConsumerPrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ProducerConsumerPrel.java
index a9edd0ca0..5d5e57a10 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ProducerConsumerPrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ProducerConsumerPrel.java
@@ -26,9 +26,9 @@ import org.apache.drill.exec.physical.config.ProducerConsumer;
import org.apache.drill.exec.planner.common.DrillRelNode;
import org.apache.drill.exec.planner.physical.visitor.PrelVisitor;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.SingleRel;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.SingleRel;
+import org.apache.calcite.plan.RelTraitSet;
public class ProducerConsumerPrel extends SingleRel implements DrillRelNode, Prel {
@@ -46,7 +46,7 @@ public class ProducerConsumerPrel extends SingleRel implements DrillRelNode, Pre
@Override
public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException {
- Prel child = (Prel) this.getChild();
+ Prel child = (Prel) this.getInput();
PhysicalOperator childPOP = child.getPhysicalOperator(creator);
@@ -57,7 +57,7 @@ public class ProducerConsumerPrel extends SingleRel implements DrillRelNode, Pre
@Override
public Iterator<Prel> iterator() {
- return PrelUtil.iter(getChild());
+ return PrelUtil.iter(getInput());
}
@Override
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ProjectAllowDupPrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ProjectAllowDupPrel.java
index 26bb9f60d..cc215f85b 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ProjectAllowDupPrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ProjectAllowDupPrel.java
@@ -28,13 +28,12 @@ import org.apache.drill.exec.physical.base.PhysicalOperator;
import org.apache.drill.exec.physical.config.Project;
import org.apache.drill.exec.planner.logical.DrillOptiq;
import org.apache.drill.exec.planner.logical.DrillParseContext;
-import org.eigenbase.rel.ProjectRelBase;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.util.Pair;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.util.Pair;
import com.google.common.collect.Lists;
@@ -52,7 +51,7 @@ public class ProjectAllowDupPrel extends ProjectPrel {
@Override
public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException {
- Prel child = (Prel) this.getChild();
+ Prel child = (Prel) this.getInput();
PhysicalOperator childPOP = child.getPhysicalOperator(creator);
@@ -64,7 +63,7 @@ public class ProjectAllowDupPrel extends ProjectPrel {
protected List<NamedExpression> getProjectExpressions(DrillParseContext context) {
List<NamedExpression> expressions = Lists.newArrayList();
for (Pair<RexNode, String> pair : Pair.zip(exps, getRowType().getFieldNames())) {
- LogicalExpression expr = DrillOptiq.toDrill(context, getChild(), pair.left);
+ LogicalExpression expr = DrillOptiq.toDrill(context, getInput(), pair.left);
expressions.add(new NamedExpression(expr, FieldReference.getWithQuotedRef(pair.right)));
}
return expressions;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ProjectPrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ProjectPrel.java
index 310e18c19..35fa5bed4 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ProjectPrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ProjectPrel.java
@@ -22,17 +22,16 @@ import java.util.Iterator;
import java.util.List;
import org.apache.drill.exec.physical.base.PhysicalOperator;
-import org.apache.drill.exec.physical.config.Project;
import org.apache.drill.exec.planner.common.DrillProjectRelBase;
import org.apache.drill.exec.planner.logical.DrillParseContext;
import org.apache.drill.exec.planner.physical.visitor.PrelVisitor;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.rel.ProjectRelBase;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.rex.RexNode;
+import org.apache.calcite.rel.core.Project;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rex.RexNode;
public class ProjectPrel extends DrillProjectRelBase implements Prel{
static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(ProjectPrel.class);
@@ -44,24 +43,24 @@ public class ProjectPrel extends DrillProjectRelBase implements Prel{
}
@Override
- public ProjectRelBase copy(RelTraitSet traitSet, RelNode input, List<RexNode> exps, RelDataType rowType) {
+ public Project copy(RelTraitSet traitSet, RelNode input, List<RexNode> exps, RelDataType rowType) {
return new ProjectPrel(getCluster(), traitSet, input, exps, rowType);
}
@Override
public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException {
- Prel child = (Prel) this.getChild();
+ Prel child = (Prel) this.getInput();
PhysicalOperator childPOP = child.getPhysicalOperator(creator);
- Project p = new Project(this.getProjectExpressions(new DrillParseContext()), childPOP);
+ org.apache.drill.exec.physical.config.Project p = new org.apache.drill.exec.physical.config.Project(this.getProjectExpressions(new DrillParseContext()), childPOP);
return creator.addMetadata(this, p);
}
@Override
public Iterator<Prel> iterator() {
- return PrelUtil.iter(getChild());
+ return PrelUtil.iter(getInput());
}
@Override
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ProjectPrule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ProjectPrule.java
index b1d5a4c62..bf27a6fe7 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ProjectPrule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ProjectPrule.java
@@ -21,24 +21,24 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import net.hydromatic.linq4j.Ord;
+import org.apache.calcite.linq4j.Ord;
import org.apache.drill.exec.planner.logical.DrillProjectRel;
import org.apache.drill.exec.planner.logical.RelOptHelper;
import org.apache.drill.exec.planner.physical.DrillDistributionTrait.DistributionField;
import org.apache.drill.exec.planner.physical.DrillDistributionTrait.DistributionType;
-import org.eigenbase.rel.RelCollation;
-import org.eigenbase.rel.RelCollationImpl;
-import org.eigenbase.rel.RelCollationTraitDef;
-import org.eigenbase.rel.RelFieldCollation;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.rex.RexCall;
-import org.eigenbase.rex.RexInputRef;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.sql.SqlKind;
+import org.apache.calcite.rel.RelCollation;
+import org.apache.calcite.rel.RelCollationImpl;
+import org.apache.calcite.rel.RelCollationTraitDef;
+import org.apache.calcite.rel.RelFieldCollation;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rex.RexCall;
+import org.apache.calcite.rex.RexInputRef;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.sql.SqlKind;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
@@ -53,7 +53,7 @@ public class ProjectPrule extends Prule {
@Override
public void onMatch(RelOptRuleCall call) {
final DrillProjectRel project = (DrillProjectRel) call.rel(0);
- final RelNode input = project.getChild();
+ final RelNode input = project.getInput();
RelTraitSet traits = input.getTraitSet().plus(Prel.DRILL_PHYSICAL);
RelNode convertedInput = convert(input, traits);
@@ -120,7 +120,7 @@ public class ProjectPrule extends Prule {
}
if (newFields.isEmpty()) {
- return RelCollationImpl.EMPTY;
+ return RelCollationImpl.of();
} else {
return RelCollationImpl.of(newFields);
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/Prule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/Prule.java
index c0d65160f..e0a283917 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/Prule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/Prule.java
@@ -17,11 +17,11 @@
*/
package org.apache.drill.exec.planner.physical;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelOptRuleOperand;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelOptRuleOperand;
+import org.apache.calcite.plan.RelTraitSet;
public abstract class Prule extends RelOptRule{
public Prule(RelOptRuleOperand operand, String description) {
@@ -34,6 +34,7 @@ public abstract class Prule extends RelOptRule{
public static RelNode convert(RelNode rel, RelTraitSet toTraits){
+ toTraits = toTraits.simplify();
PlannerSettings settings = PrelUtil.getSettings(rel.getCluster());
if(settings.isSingleMode()){
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PushLimitToTopN.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PushLimitToTopN.java
index 6d318ea79..cf6061240 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PushLimitToTopN.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PushLimitToTopN.java
@@ -19,9 +19,9 @@
package org.apache.drill.exec.planner.physical;
import org.apache.drill.exec.planner.logical.RelOptHelper;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.rex.RexLiteral;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.rex.RexLiteral;
public class PushLimitToTopN extends Prule{
@@ -41,7 +41,7 @@ public class PushLimitToTopN extends Prule{
int offset = limit.getOffset() != null ? Math.max(0, RexLiteral.intValue(limit.getOffset())) : 0;
int fetch = limit.getFetch() != null? Math.max(0, RexLiteral.intValue(limit.getFetch())) : 0;
- final TopNPrel topN = new TopNPrel(limit.getCluster(), sort.getTraitSet(), sort.getChild(), offset + fetch, sort.getCollation());
+ final TopNPrel topN = new TopNPrel(limit.getCluster(), sort.getTraitSet(), sort.getInput(), offset + fetch, sort.getCollation());
final LimitPrel newLimit = new LimitPrel(limit.getCluster(), limit.getTraitSet(),
new SingleMergeExchangePrel(smex.getCluster(), smex.getTraitSet(), topN, sort.getCollation()),
limit.getOffset(), limit.getFetch());
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ScanPrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ScanPrel.java
index e65c11060..da558b23e 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ScanPrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ScanPrel.java
@@ -30,14 +30,14 @@ import org.apache.drill.exec.physical.base.ScanStats;
import org.apache.drill.exec.planner.cost.DrillCostBase.DrillCostFactory;
import org.apache.drill.exec.planner.physical.visitor.PrelVisitor;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.rel.AbstractRelNode;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.RelWriter;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptCost;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.reltype.RelDataType;
+import org.apache.calcite.rel.AbstractRelNode;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.RelWriter;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.type.RelDataType;
public class ScanPrel extends AbstractRelNode implements DrillScanPrel {
static final org.slf4j.Logger logger = org.slf4j.LoggerFactory
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ScanPrule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ScanPrule.java
index 1d915b7fa..ee2bde52e 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ScanPrule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ScanPrule.java
@@ -20,9 +20,9 @@ package org.apache.drill.exec.planner.physical;
import org.apache.drill.exec.physical.base.GroupScan;
import org.apache.drill.exec.planner.logical.DrillScanRel;
import org.apache.drill.exec.planner.logical.RelOptHelper;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelTraitSet;
public class ScanPrule extends Prule{
public static final RelOptRule INSTANCE = new ScanPrule();
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ScreenPrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ScreenPrel.java
index 43565150b..ef77dff26 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ScreenPrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ScreenPrel.java
@@ -26,9 +26,9 @@ import org.apache.drill.exec.physical.config.Screen;
import org.apache.drill.exec.planner.common.DrillScreenRelBase;
import org.apache.drill.exec.planner.physical.visitor.PrelVisitor;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelTraitSet;
public class ScreenPrel extends DrillScreenRelBase implements Prel {
@@ -46,7 +46,7 @@ public class ScreenPrel extends DrillScreenRelBase implements Prel {
@Override
public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException {
- Prel child = (Prel) this.getChild();
+ Prel child = (Prel) this.getInput();
PhysicalOperator childPOP = child.getPhysicalOperator(creator);
@@ -56,7 +56,7 @@ public class ScreenPrel extends DrillScreenRelBase implements Prel {
@Override
public Iterator<Prel> iterator() {
- return PrelUtil.iter(getChild());
+ return PrelUtil.iter(getInput());
}
@Override
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ScreenPrule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ScreenPrule.java
index 9cb8e1518..72e87ada6 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ScreenPrule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ScreenPrule.java
@@ -21,10 +21,10 @@ import org.apache.drill.exec.planner.common.DrillScreenRelBase;
import org.apache.drill.exec.planner.logical.DrillRel;
import org.apache.drill.exec.planner.logical.DrillScreenRel;
import org.apache.drill.exec.planner.logical.RelOptHelper;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelTraitSet;
public class ScreenPrule extends Prule{
public static final RelOptRule INSTANCE = new ScreenPrule();
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SelectionVectorRemoverPrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SelectionVectorRemoverPrel.java
index aea51925e..d9dc67998 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SelectionVectorRemoverPrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SelectionVectorRemoverPrel.java
@@ -23,9 +23,9 @@ import java.util.List;
import org.apache.drill.exec.physical.base.PhysicalOperator;
import org.apache.drill.exec.physical.config.SelectionVectorRemover;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelTraitSet;
public class SelectionVectorRemoverPrel extends SinglePrel{
static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(SelectionVectorRemoverPrel.class);
@@ -45,7 +45,7 @@ public class SelectionVectorRemoverPrel extends SinglePrel{
@Override
public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException {
- SelectionVectorRemover r = new SelectionVectorRemover( ((Prel)getChild()).getPhysicalOperator(creator));
+ SelectionVectorRemover r = new SelectionVectorRemover( ((Prel)getInput()).getPhysicalOperator(creator));
return creator.addMetadata(this, r);
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SingleMergeExchangePrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SingleMergeExchangePrel.java
index 826450962..5baeaae3c 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SingleMergeExchangePrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SingleMergeExchangePrel.java
@@ -20,22 +20,22 @@ package org.apache.drill.exec.planner.physical;
import java.io.IOException;
import java.util.List;
-import net.hydromatic.linq4j.Ord;
+import org.apache.calcite.linq4j.Ord;
import org.apache.drill.exec.physical.base.PhysicalOperator;
import org.apache.drill.exec.physical.config.SingleMergeExchange;
import org.apache.drill.exec.planner.cost.DrillCostBase;
import org.apache.drill.exec.planner.cost.DrillCostBase.DrillCostFactory;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.rel.RelCollation;
-import org.eigenbase.rel.RelFieldCollation;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.RelWriter;
-import org.eigenbase.rel.metadata.RelMetadataQuery;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptCost;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelCollation;
+import org.apache.calcite.rel.RelFieldCollation;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.RelWriter;
+import org.apache.calcite.rel.metadata.RelMetadataQuery;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelTraitSet;
public class SingleMergeExchangePrel extends ExchangePrel {
@@ -64,7 +64,7 @@ public class SingleMergeExchangePrel extends ExchangePrel {
if (PrelUtil.getSettings(getCluster()).useDefaultCosting()) {
return super.computeSelfCost(planner).multiplyBy(.1);
}
- RelNode child = this.getChild();
+ RelNode child = this.getInput();
double inputRows = RelMetadataQuery.getRowCount(child);
int rowWidth = child.getRowType().getFieldCount() * DrillCostBase.AVG_FIELD_WIDTH;
double svrCpuCost = DrillCostBase.SVR_CPU_COST * inputRows;
@@ -81,7 +81,7 @@ public class SingleMergeExchangePrel extends ExchangePrel {
}
public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException {
- Prel child = (Prel) this.getChild();
+ Prel child = (Prel) this.getInput();
PhysicalOperator childPOP = child.getPhysicalOperator(creator);
@@ -89,7 +89,7 @@ public class SingleMergeExchangePrel extends ExchangePrel {
return childPOP;
}
- SingleMergeExchange g = new SingleMergeExchange(childPOP, PrelUtil.getOrdering(this.collation, getChild().getRowType()));
+ SingleMergeExchange g = new SingleMergeExchange(childPOP, PrelUtil.getOrdering(this.collation, getInput().getRowType()));
return creator.addMetadata(this, g);
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SinglePrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SinglePrel.java
index 914ee04ec..e62d86c24 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SinglePrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SinglePrel.java
@@ -21,10 +21,10 @@ import java.util.Iterator;
import org.apache.drill.exec.planner.physical.visitor.PrelVisitor;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.SingleRel;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.SingleRel;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelTraitSet;
public abstract class SinglePrel extends SingleRel implements Prel{
@@ -39,7 +39,7 @@ public abstract class SinglePrel extends SingleRel implements Prel{
@Override
public Iterator<Prel> iterator() {
- return PrelUtil.iter(getChild());
+ return PrelUtil.iter(getInput());
}
@Override
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SortConvertPrule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SortConvertPrule.java
index a9955a3d9..e13c550c2 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SortConvertPrule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SortConvertPrule.java
@@ -17,17 +17,17 @@
*/
package org.apache.drill.exec.planner.physical;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.SortRel;
-import org.eigenbase.rel.convert.ConverterRule;
-import org.eigenbase.relopt.Convention;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.core.Sort;
+import org.apache.calcite.rel.convert.ConverterRule;
+import org.apache.calcite.plan.Convention;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
/**
- * Rule that converts an {@link SortRel} to a physical {@link SortPrel}, implemented by a Drill "order" operation.
+ * Rule that converts an {@link Sort} to a physical {@link SortPrel}, implemented by a Drill "order" operation.
*
- * The {@link SortRel} is added in optiq's AbstractConvert call, when it enforces certain "order" to the input stream.
+ * The {@link Sort} is added in optiq's AbstractConvert call, when it enforces certain "order" to the input stream.
* Drill uses this rule to convert such sort enforcer into physical {@link SortPrel}.
*/
public class SortConvertPrule extends ConverterRule {
@@ -35,21 +35,21 @@ public class SortConvertPrule extends ConverterRule {
//public static final RelOptRule INSTANCE_SRC_LOGICAL = new SortPrule("SortPrule:Src_Logical", DrillRel.DRILL_LOGICAL);
private SortConvertPrule(String description, Convention srcConvention) {
- super(SortRel.class, srcConvention, Prel.DRILL_PHYSICAL, description);
+ super(Sort.class, srcConvention, Prel.DRILL_PHYSICAL, description);
}
@Override
public boolean matches(RelOptRuleCall call) {
- final SortRel sort = call.rel(0);
+ final Sort sort = call.rel(0);
return sort.offset == null && sort.fetch == null;
}
@Override
public RelNode convert(RelNode r) {
- SortRel rel = (SortRel) r;
+ Sort rel = (Sort) r;
return new SortPrel(rel.getCluster(),
- rel.getChild().getTraitSet().replace(Prel.DRILL_PHYSICAL).plus(rel.getCollation()),
- convert(rel.getChild(), rel.getChild().getTraitSet().replace(Prel.DRILL_PHYSICAL)),
+ rel.getInput().getTraitSet().replace(Prel.DRILL_PHYSICAL).plus(rel.getCollation()),
+ convert(rel.getInput(), rel.getInput().getTraitSet().replace(Prel.DRILL_PHYSICAL)),
rel.getCollation());
}
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SortPrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SortPrel.java
index 8156843f6..66b6fd46d 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SortPrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SortPrel.java
@@ -23,22 +23,20 @@ import java.util.Iterator;
import org.apache.drill.exec.ExecConstants;
import org.apache.drill.exec.physical.base.PhysicalOperator;
import org.apache.drill.exec.physical.config.ExternalSort;
-import org.apache.drill.exec.physical.config.Sort;
import org.apache.drill.exec.planner.cost.DrillCostBase;
import org.apache.drill.exec.planner.cost.DrillCostBase.DrillCostFactory;
import org.apache.drill.exec.planner.physical.visitor.PrelVisitor;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.rel.RelCollation;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.SortRel;
-import org.eigenbase.rel.metadata.RelMetadataQuery;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptCost;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.rex.RexNode;
-
-public class SortPrel extends SortRel implements Prel {
+import org.apache.calcite.rel.RelCollation;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.metadata.RelMetadataQuery;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rex.RexNode;
+
+public class SortPrel extends org.apache.calcite.rel.core.Sort implements Prel {
/** Creates a DrillSortRel. */
public SortPrel(RelOptCluster cluster, RelTraitSet traits, RelNode input, RelCollation collation) {
@@ -57,7 +55,7 @@ public class SortPrel extends SortRel implements Prel {
return super.computeSelfCost(planner).multiplyBy(.1);
}
- RelNode child = this.getChild();
+ RelNode child = this.getInput();
double inputRows = RelMetadataQuery.getRowCount(child);
// int rowWidth = child.getRowType().getPrecision();
int numSortFields = this.collation.getFieldCollations().size();
@@ -78,11 +76,11 @@ public class SortPrel extends SortRel implements Prel {
@Override
public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException {
- Prel child = (Prel) this.getChild();
+ Prel child = (Prel) this.getInput();
PhysicalOperator childPOP = child.getPhysicalOperator(creator);
- Sort g = new ExternalSort(childPOP, PrelUtil.getOrdering(this.collation, getChild().getRowType()), false);
+ org.apache.drill.exec.physical.config.Sort g = new ExternalSort(childPOP, PrelUtil.getOrdering(this.collation, getInput().getRowType()), false);
return creator.addMetadata(this, g);
}
@@ -98,7 +96,7 @@ public class SortPrel extends SortRel implements Prel {
@Override
public Iterator<Prel> iterator() {
- return PrelUtil.iter(getChild());
+ return PrelUtil.iter(getInput());
}
@Override
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SortPrule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SortPrule.java
index 2ebd015c8..4b6d1fbf8 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SortPrule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SortPrule.java
@@ -23,11 +23,11 @@ import org.apache.drill.exec.planner.logical.DrillRel;
import org.apache.drill.exec.planner.logical.DrillSortRel;
import org.apache.drill.exec.planner.logical.RelOptHelper;
import org.apache.drill.exec.planner.physical.DrillDistributionTrait.DistributionField;
-import org.eigenbase.rel.RelFieldCollation;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelFieldCollation;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelTraitSet;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
@@ -48,7 +48,7 @@ public class SortPrule extends Prule{
@Override
public void onMatch(RelOptRuleCall call) {
final DrillSortRel sort = (DrillSortRel) call.rel(0);
- final RelNode input = sort.getChild();
+ final RelNode input = sort.getInput();
// Keep the collation in logical sort. Convert input into a RelNode with 1) this collation, 2) Physical, 3) hash distributed on
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/StreamAggPrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/StreamAggPrel.java
index e8a70f2ce..80fe1a1fc 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/StreamAggPrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/StreamAggPrel.java
@@ -22,6 +22,7 @@ import java.util.BitSet;
import java.util.Iterator;
import java.util.List;
+import org.apache.calcite.util.ImmutableBitSet;
import org.apache.drill.common.logical.data.NamedExpression;
import org.apache.drill.exec.physical.base.PhysicalOperator;
import org.apache.drill.exec.physical.config.StreamingAggregate;
@@ -29,15 +30,15 @@ import org.apache.drill.exec.planner.cost.DrillCostBase;
import org.apache.drill.exec.planner.cost.DrillCostBase.DrillCostFactory;
import org.apache.drill.exec.planner.physical.visitor.PrelVisitor;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.rel.AggregateCall;
-import org.eigenbase.rel.AggregateRelBase;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.metadata.RelMetadataQuery;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptCost;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.core.AggregateCall;
+import org.apache.calcite.rel.core.Aggregate;
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.metadata.RelMetadataQuery;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelTraitSet;
public class StreamAggPrel extends AggPrelBase implements Prel{
@@ -45,28 +46,32 @@ public class StreamAggPrel extends AggPrelBase implements Prel{
- public StreamAggPrel(RelOptCluster cluster, RelTraitSet traits, RelNode child, BitSet groupSet,
- List<AggregateCall> aggCalls, OperatorPhase phase) throws InvalidRelException {
- super(cluster, traits, child, groupSet, aggCalls, phase);
+ public StreamAggPrel(RelOptCluster cluster,
+ RelTraitSet traits,
+ RelNode child,
+ boolean indicator,
+ ImmutableBitSet groupSet,
+ List<ImmutableBitSet> groupSets,
+ List<AggregateCall> aggCalls,
+ OperatorPhase phase) throws InvalidRelException {
+ super(cluster, traits, child, indicator, groupSet, groupSets, aggCalls, phase);
}
@Override
- public AggregateRelBase copy(RelTraitSet traitSet, RelNode input, BitSet groupSet, List<AggregateCall> aggCalls) {
+ public Aggregate copy(RelTraitSet traitSet, RelNode input, boolean indicator, ImmutableBitSet groupSet, List<ImmutableBitSet> groupSets, List<AggregateCall> aggCalls) {
try {
- return new StreamAggPrel(getCluster(), traitSet, input, getGroupSet(), aggCalls,
- this.getOperatorPhase());
+ return new StreamAggPrel(getCluster(), traitSet, input, indicator, groupSet, groupSets, aggCalls, this.getOperatorPhase());
} catch (InvalidRelException e) {
throw new AssertionError(e);
}
}
-
@Override
public RelOptCost computeSelfCost(RelOptPlanner planner) {
if(PrelUtil.getSettings(getCluster()).useDefaultCosting()) {
return super.computeSelfCost(planner).multiplyBy(.1);
}
- RelNode child = this.getChild();
+ RelNode child = this.getInput();
double inputRows = RelMetadataQuery.getRowCount(child);
int numGroupByFields = this.getGroupCount();
@@ -81,7 +86,7 @@ public class StreamAggPrel extends AggPrelBase implements Prel{
@Override
public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException {
- Prel child = (Prel) this.getChild();
+ Prel child = (Prel) this.getInput();
StreamingAggregate g = new StreamingAggregate(child.getPhysicalOperator(creator), keys.toArray(new NamedExpression[keys.size()]),
aggExprs.toArray(new NamedExpression[aggExprs.size()]), 1.0f);
@@ -91,7 +96,7 @@ public class StreamAggPrel extends AggPrelBase implements Prel{
@Override
public Iterator<Prel> iterator() {
- return PrelUtil.iter(getChild());
+ return PrelUtil.iter(getInput());
}
@Override
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/StreamAggPrule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/StreamAggPrule.java
index 929cb6d53..ea7927ccb 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/StreamAggPrule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/StreamAggPrule.java
@@ -20,27 +20,27 @@ package org.apache.drill.exec.planner.physical;
import java.util.List;
import java.util.logging.Logger;
-import net.hydromatic.optiq.util.BitSets;
+import org.apache.calcite.util.BitSets;
import org.apache.drill.exec.planner.logical.DrillAggregateRel;
import org.apache.drill.exec.planner.logical.RelOptHelper;
import org.apache.drill.exec.planner.physical.AggPrelBase.OperatorPhase;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.RelCollation;
-import org.eigenbase.rel.RelCollationImpl;
-import org.eigenbase.rel.RelFieldCollation;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.trace.EigenbaseTrace;
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.RelCollation;
+import org.apache.calcite.rel.RelCollationImpl;
+import org.apache.calcite.rel.RelFieldCollation;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.util.trace.CalciteTrace;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
public class StreamAggPrule extends AggPruleBase {
public static final RelOptRule INSTANCE = new StreamAggPrule();
- protected static final Logger tracer = EigenbaseTrace.getPlannerTracer();
+ protected static final Logger tracer = CalciteTrace.getPlannerTracer();
private StreamAggPrule() {
super(RelOptHelper.some(DrillAggregateRel.class, RelOptHelper.any(RelNode.class)), "StreamAggPrule");
@@ -54,7 +54,7 @@ public class StreamAggPrule extends AggPruleBase {
@Override
public void onMatch(RelOptRuleCall call) {
final DrillAggregateRel aggregate = (DrillAggregateRel) call.rel(0);
- RelNode input = aggregate.getChild();
+ RelNode input = aggregate.getInput();
final RelCollation collation = getCollation(aggregate);
RelTraitSet traits = null;
@@ -80,16 +80,26 @@ public class StreamAggPrule extends AggPruleBase {
RelTraitSet traits = newTraitSet(Prel.DRILL_PHYSICAL, toDist);
RelNode newInput = convert(rel, traits);
- StreamAggPrel phase1Agg = new StreamAggPrel(aggregate.getCluster(), traits, newInput,
+ StreamAggPrel phase1Agg = new StreamAggPrel(
+ aggregate.getCluster(),
+ traits,
+ newInput,
+ aggregate.indicator,
aggregate.getGroupSet(),
+ aggregate.getGroupSets(),
aggregate.getAggCallList(),
OperatorPhase.PHASE_1of2);
UnionExchangePrel exch =
new UnionExchangePrel(phase1Agg.getCluster(), singleDistTrait, phase1Agg);
- return new StreamAggPrel(aggregate.getCluster(), singleDistTrait, exch,
+ return new StreamAggPrel(
+ aggregate.getCluster(),
+ singleDistTrait,
+ exch,
+ aggregate.indicator,
aggregate.getGroupSet(),
+ aggregate.getGroupSets(),
phase1Agg.getPhase2AggCalls(),
OperatorPhase.PHASE_2of2);
}
@@ -132,8 +142,13 @@ public class StreamAggPrule extends AggPruleBase {
RelTraitSet traits = newTraitSet(Prel.DRILL_PHYSICAL, collation, toDist);
RelNode newInput = convert(rel, traits);
- StreamAggPrel phase1Agg = new StreamAggPrel(aggregate.getCluster(), traits, newInput,
+ StreamAggPrel phase1Agg = new StreamAggPrel(
+ aggregate.getCluster(),
+ traits,
+ newInput,
+ aggregate.indicator,
aggregate.getGroupSet(),
+ aggregate.getGroupSets(),
aggregate.getAggCallList(),
OperatorPhase.PHASE_1of2);
@@ -145,8 +160,13 @@ public class StreamAggPrule extends AggPruleBase {
collation,
numEndPoints);
- return new StreamAggPrel(aggregate.getCluster(), exch.getTraitSet(), exch,
+ return new StreamAggPrel(
+ aggregate.getCluster(),
+ exch.getTraitSet(),
+ exch,
+ aggregate.indicator,
aggregate.getGroupSet(),
+ aggregate.getGroupSets(),
phase1Agg.getPhase2AggCalls(),
OperatorPhase.PHASE_2of2);
}
@@ -163,8 +183,15 @@ public class StreamAggPrule extends AggPruleBase {
final RelNode convertedInput = convert(input, traits);
- StreamAggPrel newAgg = new StreamAggPrel(aggregate.getCluster(), traits, convertedInput, aggregate.getGroupSet(),
- aggregate.getAggCallList(), OperatorPhase.PHASE_1of1);
+ StreamAggPrel newAgg = new StreamAggPrel(
+ aggregate.getCluster(),
+ traits,
+ convertedInput,
+ aggregate.indicator,
+ aggregate.getGroupSet(),
+ aggregate.getGroupSets(),
+ aggregate.getAggCallList(),
+ OperatorPhase.PHASE_1of1);
call.transformTo(newAgg);
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SubsetTransformer.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SubsetTransformer.java
index 72e06d947..485885a01 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SubsetTransformer.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SubsetTransformer.java
@@ -17,13 +17,13 @@
*/
package org.apache.drill.exec.planner.physical;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.ConventionTraitDef;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelTrait;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.relopt.volcano.RelSubset;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.ConventionTraitDef;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelTrait;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.plan.volcano.RelSubset;
public abstract class SubsetTransformer<T extends RelNode, E extends Exception> {
static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(SubsetTransformer.class);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/TopNPrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/TopNPrel.java
index ac1811bce..06c131a42 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/TopNPrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/TopNPrel.java
@@ -25,14 +25,14 @@ import org.apache.drill.exec.physical.config.TopN;
import org.apache.drill.exec.planner.cost.DrillCostBase;
import org.apache.drill.exec.planner.cost.DrillCostBase.DrillCostFactory;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.rel.RelCollation;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.RelWriter;
-import org.eigenbase.rel.metadata.RelMetadataQuery;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptCost;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelCollation;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.RelWriter;
+import org.apache.calcite.rel.metadata.RelMetadataQuery;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelTraitSet;
public class TopNPrel extends SinglePrel {
@@ -52,11 +52,11 @@ public class TopNPrel extends SinglePrel {
@Override
public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException {
- Prel child = (Prel) this.getChild();
+ Prel child = (Prel) this.getInput();
PhysicalOperator childPOP = child.getPhysicalOperator(creator);
- TopN topN = new TopN(childPOP, PrelUtil.getOrdering(this.collation, getChild().getRowType()), false, this.limit);
+ TopN topN = new TopN(childPOP, PrelUtil.getOrdering(this.collation, getInput().getRowType()), false, this.limit);
return creator.addMetadata(this, topN);
}
@@ -71,7 +71,7 @@ public class TopNPrel extends SinglePrel {
//We use multiplier 0.05 for TopN operator, and 0.1 for Sort, to make TopN a preferred choice.
return super.computeSelfCost(planner).multiplyBy(0.05);
}
- RelNode child = this.getChild();
+ RelNode child = this.getInput();
double inputRows = RelMetadataQuery.getRowCount(child);
int numSortFields = this.collation.getFieldCollations().size();
double cpuCost = DrillCostBase.COMPARE_CPU_COST * numSortFields * inputRows * (Math.log(limit)/Math.log(2));
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionAllPrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionAllPrel.java
index d5698f760..ff2ad1bdf 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionAllPrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionAllPrel.java
@@ -25,14 +25,15 @@ import org.apache.drill.exec.physical.config.UnionAll;
import org.apache.drill.exec.planner.cost.DrillCostBase;
import org.apache.drill.exec.planner.cost.DrillCostBase.DrillCostFactory;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.UnionRelBase;
-import org.eigenbase.rel.metadata.RelMetadataQuery;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptCost;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelTraitSet;
+
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.metadata.RelMetadataQuery;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.core.Union;
import com.google.common.collect.Lists;
@@ -46,7 +47,7 @@ public class UnionAllPrel extends UnionPrel {
@Override
- public UnionRelBase copy(RelTraitSet traitSet, List<RelNode> inputs, boolean all) {
+ public Union copy(RelTraitSet traitSet, List<RelNode> inputs, boolean all) {
try {
return new UnionAllPrel(this.getCluster(), traitSet, inputs,
false /* don't check compatibility during copy */);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionAllPrule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionAllPrule.java
index fa533f75f..0503b4482 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionAllPrule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionAllPrule.java
@@ -22,18 +22,18 @@ import java.util.logging.Logger;
import org.apache.drill.exec.planner.logical.DrillUnionRel;
import org.apache.drill.exec.planner.logical.RelOptHelper;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.trace.EigenbaseTrace;
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.util.trace.CalciteTrace;
import com.google.common.collect.Lists;
public class UnionAllPrule extends Prule {
public static final RelOptRule INSTANCE = new UnionAllPrule();
- protected static final Logger tracer = EigenbaseTrace.getPlannerTracer();
+ protected static final Logger tracer = CalciteTrace.getPlannerTracer();
private UnionAllPrule() {
super(
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionDistinctPrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionDistinctPrel.java
index 05086edea..4ef33756c 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionDistinctPrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionDistinctPrel.java
@@ -25,14 +25,14 @@ import org.apache.drill.exec.physical.config.UnionAll;
import org.apache.drill.exec.planner.cost.DrillCostBase;
import org.apache.drill.exec.planner.cost.DrillCostBase.DrillCostFactory;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.UnionRelBase;
-import org.eigenbase.rel.metadata.RelMetadataQuery;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptCost;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.metadata.RelMetadataQuery;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.core.Union;
import com.google.common.collect.Lists;
@@ -45,7 +45,7 @@ public class UnionDistinctPrel extends UnionPrel {
@Override
- public UnionRelBase copy(RelTraitSet traitSet, List<RelNode> inputs, boolean all) {
+ public Union copy(RelTraitSet traitSet, List<RelNode> inputs, boolean all) {
try {
return new UnionDistinctPrel(this.getCluster(), traitSet, inputs,
false /* don't check compatibility during copy */);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionDistinctPrule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionDistinctPrule.java
index fd85448a4..8b4d62dce 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionDistinctPrule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionDistinctPrule.java
@@ -22,18 +22,18 @@ import java.util.logging.Logger;
import org.apache.drill.exec.planner.logical.DrillUnionRel;
import org.apache.drill.exec.planner.logical.RelOptHelper;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.trace.EigenbaseTrace;
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.util.trace.CalciteTrace;
import com.google.common.collect.Lists;
public class UnionDistinctPrule extends Prule {
public static final RelOptRule INSTANCE = new UnionDistinctPrule();
- protected static final Logger tracer = EigenbaseTrace.getPlannerTracer();
+ protected static final Logger tracer = CalciteTrace.getPlannerTracer();
private UnionDistinctPrule() {
super(
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionExchangePrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionExchangePrel.java
index c35328b45..6d73b2fed 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionExchangePrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionExchangePrel.java
@@ -25,12 +25,12 @@ import org.apache.drill.exec.physical.config.UnionExchange;
import org.apache.drill.exec.planner.cost.DrillCostBase;
import org.apache.drill.exec.planner.cost.DrillCostBase.DrillCostFactory;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.metadata.RelMetadataQuery;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptCost;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.metadata.RelMetadataQuery;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelTraitSet;
public class UnionExchangePrel extends ExchangePrel {
@@ -56,7 +56,7 @@ public class UnionExchangePrel extends ExchangePrel {
return super.computeSelfCost(planner).multiplyBy(.1);
}
- RelNode child = this.getChild();
+ RelNode child = this.getInput();
double inputRows = RelMetadataQuery.getRowCount(child);
int rowWidth = child.getRowType().getFieldCount() * DrillCostBase.AVG_FIELD_WIDTH;
double svrCpuCost = DrillCostBase.SVR_CPU_COST * inputRows;
@@ -71,7 +71,7 @@ public class UnionExchangePrel extends ExchangePrel {
}
public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException {
- Prel child = (Prel) this.getChild();
+ Prel child = (Prel) this.getInput();
PhysicalOperator childPOP = child.getPhysicalOperator(creator);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionPrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionPrel.java
index 630348987..f0440ad4a 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionPrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnionPrel.java
@@ -23,10 +23,10 @@ import java.util.List;
import org.apache.drill.exec.planner.common.DrillUnionRelBase;
import org.apache.drill.exec.planner.physical.visitor.PrelVisitor;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelTraitSet;
public abstract class UnionPrel extends DrillUnionRelBase implements Prel{
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnorderedDeMuxExchangePrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnorderedDeMuxExchangePrel.java
index 79253c74a..e04f6d0e5 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnorderedDeMuxExchangePrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnorderedDeMuxExchangePrel.java
@@ -25,9 +25,9 @@ import org.apache.drill.exec.physical.base.PhysicalOperator;
import org.apache.drill.exec.physical.config.UnorderedDeMuxExchange;
import org.apache.drill.exec.planner.physical.DrillDistributionTrait.DistributionField;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelTraitSet;
public class UnorderedDeMuxExchangePrel extends ExchangePrel {
@@ -45,11 +45,11 @@ public class UnorderedDeMuxExchangePrel extends ExchangePrel {
@Override
public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException {
- Prel child = (Prel) this.getChild();
+ Prel child = (Prel) this.getInput();
PhysicalOperator childPOP = child.getPhysicalOperator(creator);
- UnorderedDeMuxExchange p = new UnorderedDeMuxExchange(childPOP, PrelUtil.getHashExpression(this.fields, getChild().getRowType()));
+ UnorderedDeMuxExchange p = new UnorderedDeMuxExchange(childPOP, PrelUtil.getHashExpression(this.fields, getInput().getRowType()));
return creator.addMetadata(this, p);
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnorderedMuxExchangePrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnorderedMuxExchangePrel.java
index 8ab05a0b7..d08b09389 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnorderedMuxExchangePrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnorderedMuxExchangePrel.java
@@ -24,9 +24,9 @@ import java.util.List;
import org.apache.drill.exec.physical.base.PhysicalOperator;
import org.apache.drill.exec.physical.config.UnorderedMuxExchange;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelTraitSet;
public class UnorderedMuxExchangePrel extends ExchangePrel {
@@ -41,7 +41,7 @@ public class UnorderedMuxExchangePrel extends ExchangePrel {
@Override
public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException {
- Prel child = (Prel) this.getChild();
+ Prel child = (Prel) this.getInput();
PhysicalOperator childPOP = child.getPhysicalOperator(creator);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ValuesPrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ValuesPrel.java
index f8963459f..be5bb1939 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ValuesPrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ValuesPrel.java
@@ -24,10 +24,10 @@ import org.apache.drill.common.JSONOptions;
import org.apache.drill.exec.physical.config.Values;
import org.apache.drill.exec.planner.physical.visitor.PrelVisitor;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.rel.AbstractRelNode;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.reltype.RelDataType;
+import org.apache.calcite.rel.AbstractRelNode;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.type.RelDataType;
import com.google.common.collect.Iterators;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ValuesPrule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ValuesPrule.java
index dbe45ca32..85d568fe5 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ValuesPrule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ValuesPrule.java
@@ -19,10 +19,11 @@ package org.apache.drill.exec.planner.physical;
import java.io.IOException;
+import org.apache.calcite.plan.RelOptRule;
import org.apache.drill.exec.planner.logical.DrillValuesRel;
import org.apache.drill.exec.planner.logical.RelOptHelper;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
public class ValuesPrule extends RelOptRule {
private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(ValuesPrule.class);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/WindowPrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/WindowPrel.java
index f23a073cf..4f6551a8b 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/WindowPrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/WindowPrel.java
@@ -19,7 +19,7 @@
package org.apache.drill.exec.planner.physical;
import com.google.common.collect.Lists;
-import net.hydromatic.optiq.util.BitSets;
+
import org.apache.drill.common.expression.ExpressionPosition;
import org.apache.drill.common.expression.FieldReference;
import org.apache.drill.common.expression.FunctionCall;
@@ -32,13 +32,14 @@ import org.apache.drill.exec.physical.config.WindowPOP;
import org.apache.drill.exec.planner.common.DrillWindowRelBase;
import org.apache.drill.exec.planner.physical.visitor.PrelVisitor;
import org.apache.drill.exec.record.BatchSchema;
-import org.eigenbase.rel.AggregateCall;
-import org.eigenbase.rel.RelFieldCollation;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.rex.RexLiteral;
+import org.apache.calcite.rel.core.AggregateCall;
+import org.apache.calcite.rel.RelFieldCollation;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rex.RexLiteral;
+import org.apache.calcite.util.BitSets;
import java.io.IOException;
import java.util.Collections;
@@ -53,32 +54,32 @@ public class WindowPrel extends DrillWindowRelBase implements Prel {
RelNode child,
List<RexLiteral> constants,
RelDataType rowType,
- Window window) {
+ Group window) {
super(cluster, traits, child, constants, rowType, Collections.singletonList(window));
}
@Override
public RelNode copy(RelTraitSet traitSet, List<RelNode> inputs) {
- return new WindowPrel(getCluster(), traitSet, sole(inputs), constants, getRowType(), windows.get(0));
+ return new WindowPrel(getCluster(), traitSet, sole(inputs), constants, getRowType(), groups.get(0));
}
@Override
public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException {
- Prel child = (Prel) this.getChild();
+ Prel child = (Prel) this.getInput();
PhysicalOperator childPOP = child.getPhysicalOperator(creator);
- final List<String> childFields = getChild().getRowType().getFieldNames();
+ final List<String> childFields = getInput().getRowType().getFieldNames();
// We don't support distinct partitions
- checkState(windows.size() == 1, "Only one window is expected in WindowPrel");
+ checkState(groups.size() == 1, "Only one window is expected in WindowPrel");
- Window window = windows.get(0);
+ Group window = groups.get(0);
List<NamedExpression> withins = Lists.newArrayList();
List<NamedExpression> aggs = Lists.newArrayList();
List<Order.Ordering> orderings = Lists.newArrayList();
- for (int group : BitSets.toIter(window.groupSet)) {
+ for (int group : BitSets.toIter(window.keys)) {
FieldReference fr = new FieldReference(childFields.get(group), ExpressionPosition.UNKNOWN);
withins.add(new NamedExpression(fr, fr));
}
@@ -141,6 +142,6 @@ public class WindowPrel extends DrillWindowRelBase implements Prel {
@Override
public Iterator<Prel> iterator() {
- return PrelUtil.iter(getChild());
+ return PrelUtil.iter(getInput());
}
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/WindowPrule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/WindowPrule.java
index 796c65420..db9218ad9 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/WindowPrule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/WindowPrule.java
@@ -22,23 +22,24 @@ import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
-import net.hydromatic.linq4j.Ord;
-import net.hydromatic.optiq.util.BitSets;
+import com.sun.java.swing.plaf.windows.resources.windows;
+import org.apache.calcite.linq4j.Ord;
+import org.apache.calcite.rel.core.Window;
+import org.apache.calcite.util.BitSets;
import org.apache.drill.exec.planner.logical.DrillRel;
import org.apache.drill.exec.planner.logical.DrillWindowRel;
import org.apache.drill.exec.planner.logical.RelOptHelper;
-import org.eigenbase.rel.RelCollation;
-import org.eigenbase.rel.RelCollationImpl;
-import org.eigenbase.rel.RelFieldCollation;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.WindowRelBase;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.reltype.RelDataTypeField;
-import org.eigenbase.reltype.RelRecordType;
-import org.eigenbase.sql.SqlAggFunction;
+import org.apache.calcite.rel.RelCollation;
+import org.apache.calcite.rel.RelCollationImpl;
+import org.apache.calcite.rel.RelFieldCollation;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeField;
+import org.apache.calcite.rel.type.RelRecordType;
+import org.apache.calcite.sql.SqlAggFunction;
import java.util.List;
@@ -57,8 +58,8 @@ public class WindowPrule extends RelOptRule {
// TODO: Order window based on existing partition by
//input.getTraitSet().subsumes()
- for (final Ord<WindowRelBase.Window> w : Ord.zip(window.windows)) {
- WindowRelBase.Window windowBase = w.getValue();
+ for (final Ord<Window.Group> w : Ord.zip(window.groups)) {
+ Window.Group windowBase = w.getValue();
DrillDistributionTrait distOnAllKeys =
new DrillDistributionTrait(DrillDistributionTrait.DistributionType.HASH_DISTRIBUTED,
ImmutableList.copyOf(getDistributionFields(windowBase)));
@@ -85,16 +86,16 @@ public class WindowPrule extends RelOptRule {
RelDataType rowType = new RelRecordType(newRowFields);
- List<WindowRelBase.RexWinAggCall> newWinAggCalls = Lists.newArrayList();
- for(Ord<WindowRelBase.RexWinAggCall> aggOrd : Ord.zip(windowBase.aggCalls)) {
- WindowRelBase.RexWinAggCall aggCall = aggOrd.getValue();
- newWinAggCalls.add(new WindowRelBase.RexWinAggCall(
+ List<Window.RexWinAggCall> newWinAggCalls = Lists.newArrayList();
+ for(Ord<Window.RexWinAggCall> aggOrd : Ord.zip(windowBase.aggCalls)) {
+ Window.RexWinAggCall aggCall = aggOrd.getValue();
+ newWinAggCalls.add(new Window.RexWinAggCall(
(SqlAggFunction)aggCall.getOperator(), aggCall.getType(), aggCall.getOperands(), aggOrd.i)
);
}
- windowBase = new WindowRelBase.Window(
- windowBase.groupSet,
+ windowBase = new Window.Group(
+ windowBase.keys,
windowBase.isRows,
windowBase.lowerBound,
windowBase.upperBound,
@@ -114,9 +115,9 @@ public class WindowPrule extends RelOptRule {
call.transformTo(input);
}
- private RelCollation getCollation(WindowRelBase.Window window) {
+ private RelCollation getCollation(Window.Group window) {
List<RelFieldCollation> fields = Lists.newArrayList();
- for (int group : BitSets.toIter(window.groupSet)) {
+ for (int group : BitSets.toIter(window.keys)) {
fields.add(new RelFieldCollation(group));
}
@@ -127,9 +128,9 @@ public class WindowPrule extends RelOptRule {
return RelCollationImpl.of(fields);
}
- private List<DrillDistributionTrait.DistributionField> getDistributionFields(WindowRelBase.Window window) {
+ private List<DrillDistributionTrait.DistributionField> getDistributionFields(Window.Group window) {
List<DrillDistributionTrait.DistributionField> groupByFields = Lists.newArrayList();
- for (int group : BitSets.toIter(window.groupSet)) {
+ for (int group : BitSets.toIter(window.keys)) {
DrillDistributionTrait.DistributionField field = new DrillDistributionTrait.DistributionField(group);
groupByFields.add(field);
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/WriterPrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/WriterPrel.java
index dc3d6dfa2..ceecb037a 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/WriterPrel.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/WriterPrel.java
@@ -26,9 +26,9 @@ import org.apache.drill.exec.planner.common.DrillWriterRelBase;
import org.apache.drill.exec.planner.logical.CreateTableEntry;
import org.apache.drill.exec.planner.physical.visitor.PrelVisitor;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelTraitSet;
public class WriterPrel extends DrillWriterRelBase implements Prel {
@@ -46,7 +46,7 @@ public class WriterPrel extends DrillWriterRelBase implements Prel {
@Override
public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException {
- Prel child = (Prel) this.getChild();
+ Prel child = (Prel) this.getInput();
PhysicalOperator g = getCreateTableEntry().getWriter(child.getPhysicalOperator(creator));
return creator.addMetadata(this, g);
}
@@ -54,7 +54,7 @@ public class WriterPrel extends DrillWriterRelBase implements Prel {
@Override
public Iterator<Prel> iterator() {
- return PrelUtil.iter(getChild());
+ return PrelUtil.iter(getInput());
}
@Override
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/WriterPrule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/WriterPrule.java
index 6bd89b0b0..579066574 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/WriterPrule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/WriterPrule.java
@@ -21,10 +21,10 @@ import org.apache.drill.exec.planner.common.DrillWriterRelBase;
import org.apache.drill.exec.planner.logical.DrillRel;
import org.apache.drill.exec.planner.logical.DrillWriterRel;
import org.apache.drill.exec.planner.logical.RelOptHelper;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelTraitSet;
public class WriterPrule extends Prule{
public static final RelOptRule INSTANCE = new WriterPrule();
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/explain/NumberingRelWriter.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/explain/NumberingRelWriter.java
index 387a4424f..a54e350ef 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/explain/NumberingRelWriter.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/explain/NumberingRelWriter.java
@@ -22,19 +22,18 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import net.hydromatic.linq4j.Ord;
-import net.hydromatic.optiq.runtime.FlatLists;
-import net.hydromatic.optiq.runtime.Spacer;
-
+import org.apache.calcite.avatica.util.Spacer;
+import org.apache.calcite.linq4j.Ord;
+import org.apache.calcite.runtime.FlatLists;
import org.apache.drill.exec.planner.physical.HashJoinPrel;
import org.apache.drill.exec.planner.physical.Prel;
import org.apache.drill.exec.planner.physical.explain.PrelSequencer.OpId;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.RelWriter;
-import org.eigenbase.rel.metadata.RelMetadataQuery;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.sql.SqlExplainLevel;
-import org.eigenbase.util.Pair;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.RelWriter;
+import org.apache.calcite.rel.metadata.RelMetadataQuery;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.sql.SqlExplainLevel;
+import org.apache.calcite.util.Pair;
import com.google.common.collect.ImmutableList;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/explain/PrelSequencer.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/explain/PrelSequencer.java
index cb6d6565e..afa61e9ba 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/explain/PrelSequencer.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/explain/PrelSequencer.java
@@ -27,8 +27,8 @@ import java.util.Queue;
import org.apache.drill.exec.planner.physical.ExchangePrel;
import org.apache.drill.exec.planner.physical.Prel;
import org.apache.drill.exec.planner.physical.visitor.BasePrelVisitor;
-import org.eigenbase.rel.RelWriter;
-import org.eigenbase.sql.SqlExplainLevel;
+import org.apache.calcite.rel.RelWriter;
+import org.apache.calcite.sql.SqlExplainLevel;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/ComplexToJsonPrelVisitor.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/ComplexToJsonPrelVisitor.java
index 37b2f8b58..fc115d99f 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/ComplexToJsonPrelVisitor.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/ComplexToJsonPrelVisitor.java
@@ -22,7 +22,7 @@ import java.util.Collections;
import org.apache.drill.exec.planner.physical.ComplexToJsonPrel;
import org.apache.drill.exec.planner.physical.Prel;
import org.apache.drill.exec.planner.physical.ScreenPrel;
-import org.eigenbase.rel.RelNode;
+import org.apache.calcite.rel.RelNode;
public class ComplexToJsonPrelVisitor extends BasePrelVisitor<Prel, Void, RuntimeException> {
@@ -34,7 +34,7 @@ public class ComplexToJsonPrelVisitor extends BasePrelVisitor<Prel, Void, Runtim
@Override
public Prel visitScreen(ScreenPrel prel, Void value) throws RuntimeException {
- return prel.copy(prel.getTraitSet(), Collections.singletonList((RelNode)new ComplexToJsonPrel((Prel)prel.getChild())));
+ return prel.copy(prel.getTraitSet(), Collections.singletonList((RelNode)new ComplexToJsonPrel((Prel)prel.getInput())));
}
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/ExcessiveExchangeIdentifier.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/ExcessiveExchangeIdentifier.java
index 9d748021d..cbd54be1b 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/ExcessiveExchangeIdentifier.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/ExcessiveExchangeIdentifier.java
@@ -24,7 +24,7 @@ import org.apache.drill.exec.planner.physical.ExchangePrel;
import org.apache.drill.exec.planner.physical.Prel;
import org.apache.drill.exec.planner.physical.ScanPrel;
import org.apache.drill.exec.planner.physical.ScreenPrel;
-import org.eigenbase.rel.RelNode;
+import org.apache.calcite.rel.RelNode;
import com.google.common.collect.Lists;
@@ -46,7 +46,7 @@ public class ExcessiveExchangeIdentifier extends BasePrelVisitor<Prel, Excessive
public Prel visitExchange(ExchangePrel prel, MajorFragmentStat parent) throws RuntimeException {
parent.add(prel);
MajorFragmentStat newFrag = new MajorFragmentStat();
- Prel newChild = ((Prel) prel.getChild()).accept(this, newFrag);
+ Prel newChild = ((Prel) prel.getInput()).accept(this, newFrag);
if (newFrag.isSingular() && parent.isSingular()) {
return newChild;
@@ -58,7 +58,7 @@ public class ExcessiveExchangeIdentifier extends BasePrelVisitor<Prel, Excessive
@Override
public Prel visitScreen(ScreenPrel prel, MajorFragmentStat s) throws RuntimeException {
s.setSingular();
- RelNode child = ((Prel)prel.getChild()).accept(this, s);
+ RelNode child = ((Prel)prel.getInput()).accept(this, s);
return (Prel) prel.copy(prel.getTraitSet(), Collections.singletonList(child));
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/FinalColumnReorderer.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/FinalColumnReorderer.java
index 375d69f06..ef738fad8 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/FinalColumnReorderer.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/FinalColumnReorderer.java
@@ -26,10 +26,10 @@ import org.apache.drill.exec.planner.physical.ProjectPrel;
import org.apache.drill.exec.planner.physical.ScreenPrel;
import org.apache.drill.exec.planner.physical.UnionPrel;
import org.apache.drill.exec.planner.physical.WriterPrel;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.rex.RexBuilder;
-import org.eigenbase.rex.RexNode;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rex.RexBuilder;
+import org.apache.calcite.rex.RexNode;
import com.google.common.collect.Lists;
@@ -44,7 +44,7 @@ public class FinalColumnReorderer extends BasePrelVisitor<Prel, Void, RuntimeExc
@Override
public Prel visitScreen(ScreenPrel prel, Void value) throws RuntimeException {
- Prel newChild = ((Prel) prel.getChild()).accept(this, value);
+ Prel newChild = ((Prel) prel.getInput()).accept(this, value);
return prel.copy(prel.getTraitSet(), Collections.singletonList( (RelNode) addTrivialOrderedProjectPrel(newChild, true)));
}
@@ -76,7 +76,7 @@ public class FinalColumnReorderer extends BasePrelVisitor<Prel, Void, RuntimeExc
@Override
public Prel visitWriter(WriterPrel prel, Void value) throws RuntimeException {
- Prel newChild = ((Prel) prel.getChild()).accept(this, null);
+ Prel newChild = ((Prel) prel.getInput()).accept(this, null);
return prel.copy(prel.getTraitSet(), Collections.singletonList( (RelNode) addTrivialOrderedProjectPrel(newChild, true)));
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/InsertLocalExchangeVisitor.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/InsertLocalExchangeVisitor.java
index ccf890d76..d8311c75f 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/InsertLocalExchangeVisitor.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/InsertLocalExchangeVisitor.java
@@ -31,12 +31,12 @@ import org.apache.drill.exec.planner.physical.UnorderedDeMuxExchangePrel;
import org.apache.drill.exec.planner.physical.UnorderedMuxExchangePrel;
import org.apache.drill.exec.planner.sql.DrillSqlOperator;
import org.apache.drill.exec.server.options.OptionManager;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.reltype.RelDataTypeField;
-import org.eigenbase.rex.RexBuilder;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.rex.RexUtil;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeField;
+import org.apache.calcite.rex.RexBuilder;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.rex.RexUtil;
import java.util.Collections;
import java.util.List;
@@ -67,7 +67,7 @@ public class InsertLocalExchangeVisitor extends BasePrelVisitor<Prel, Void, Runt
@Override
public Prel visitExchange(ExchangePrel prel, Void value) throws RuntimeException {
- Prel child = ((Prel)prel.getChild()).accept(this, null);
+ Prel child = ((Prel)prel.getInput()).accept(this, null);
// Whenever we encounter a HashToRandomExchangePrel
// If MuxExchange is enabled, insert a UnorderedMuxExchangePrel before HashToRandomExchangePrel.
// If DeMuxExchange is enabled, insert a UnorderedDeMuxExchangePrel after HashToRandomExchangePrel.
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/JoinPrelRenameVisitor.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/JoinPrelRenameVisitor.java
index fa750c23a..6726f1bb5 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/JoinPrelRenameVisitor.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/JoinPrelRenameVisitor.java
@@ -22,7 +22,7 @@ import java.util.List;
import org.apache.drill.exec.planner.physical.JoinPrel;
import org.apache.drill.exec.planner.physical.Prel;
-import org.eigenbase.rel.RelNode;
+import org.apache.calcite.rel.RelNode;
import com.google.common.collect.Lists;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/MemoryEstimationVisitor.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/MemoryEstimationVisitor.java
index 0fd1dd005..37d2cb512 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/MemoryEstimationVisitor.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/MemoryEstimationVisitor.java
@@ -21,7 +21,7 @@ import org.apache.drill.exec.ExecConstants;
import org.apache.drill.exec.planner.cost.DrillCostBase;
import org.apache.drill.exec.planner.physical.Prel;
import org.apache.drill.exec.server.options.OptionManager;
-import org.eigenbase.rel.metadata.RelMetadataQuery;
+import org.apache.calcite.rel.metadata.RelMetadataQuery;
public class MemoryEstimationVisitor extends BasePrelVisitor<Double, Void, RuntimeException> {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/ProducerConsumerPrelVisitor.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/ProducerConsumerPrelVisitor.java
index 2cbf790f8..79758f5d7 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/ProducerConsumerPrelVisitor.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/ProducerConsumerPrelVisitor.java
@@ -22,7 +22,7 @@ import java.util.List;
import org.apache.drill.exec.planner.physical.Prel;
import org.apache.drill.exec.planner.physical.ProducerConsumerPrel;
import org.apache.drill.exec.planner.physical.ScanPrel;
-import org.eigenbase.rel.RelNode;
+import org.apache.calcite.rel.RelNode;
import com.google.common.collect.Lists;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RelUniqifier.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RelUniqifier.java
index 6ef9776cb..0bcfba5f1 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RelUniqifier.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RelUniqifier.java
@@ -21,7 +21,7 @@ import java.util.List;
import java.util.Set;
import org.apache.drill.exec.planner.physical.Prel;
-import org.eigenbase.rel.RelNode;
+import org.apache.calcite.rel.RelNode;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RewriteProjectToFlatten.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RewriteProjectToFlatten.java
index bedc7bc94..21a95b87a 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RewriteProjectToFlatten.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RewriteProjectToFlatten.java
@@ -18,31 +18,20 @@
package org.apache.drill.exec.planner.physical.visitor;
import com.google.common.collect.Lists;
-import net.hydromatic.optiq.tools.RelConversionException;
-import org.apache.drill.common.exceptions.DrillRuntimeException;
-import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry;
+import org.apache.calcite.tools.RelConversionException;
import org.apache.drill.exec.planner.physical.FlattenPrel;
import org.apache.drill.exec.planner.physical.Prel;
import org.apache.drill.exec.planner.physical.ProjectPrel;
-import org.apache.drill.exec.planner.physical.visitor.BasePrelVisitor;
import org.apache.drill.exec.planner.types.RelDataTypeDrillImpl;
import org.apache.drill.exec.planner.types.RelDataTypeHolder;
-import org.eigenbase.rel.ProjectRelBase;
-import org.eigenbase.rel.RelShuttleImpl;
import org.apache.drill.exec.planner.sql.DrillOperatorTable;
-import org.eigenbase.rel.ProjectRel;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.reltype.RelDataTypeFactory;
-import org.eigenbase.reltype.RelDataTypeField;
-import org.eigenbase.reltype.RelDataTypeFieldImpl;
-import org.eigenbase.reltype.RelRecordType;
-import org.eigenbase.rex.RexBuilder;
-import org.eigenbase.rex.RexCall;
-import org.eigenbase.rex.RexLiteral;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.sql.SqlFunction;
-import org.eigenbase.sql.SqlOperator;
-import org.eigenbase.util.NlsString;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.rel.type.RelDataTypeField;
+import org.apache.calcite.rel.type.RelRecordType;
+import org.apache.calcite.rex.RexBuilder;
+import org.apache.calcite.rex.RexCall;
+import org.apache.calcite.rex.RexNode;
import java.util.ArrayList;
import java.util.List;
@@ -107,7 +96,7 @@ public class RewriteProjectToFlatten extends BasePrelVisitor<Prel, Object, RelCo
return flatten;
}
- Prel child = ((Prel)project.getChild()).accept(this, null);
+ Prel child = ((Prel)project.getInput()).accept(this, null);
return (Prel) project.copy(project.getTraitSet(), child, exprList, new RelRecordType(relDataTypes));
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RexVisitorComplexExprSplitter.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RexVisitorComplexExprSplitter.java
index 9742a907a..da829734f 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RexVisitorComplexExprSplitter.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RexVisitorComplexExprSplitter.java
@@ -21,19 +21,19 @@ import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry;
import org.apache.drill.exec.planner.physical.ProjectPrel;
import org.apache.drill.exec.planner.types.RelDataTypeDrillImpl;
import org.apache.drill.exec.planner.types.RelDataTypeHolder;
-import org.eigenbase.reltype.RelDataTypeFactory;
-import org.eigenbase.rex.RexBuilder;
-import org.eigenbase.rex.RexCall;
-import org.eigenbase.rex.RexCorrelVariable;
-import org.eigenbase.rex.RexDynamicParam;
-import org.eigenbase.rex.RexFieldAccess;
-import org.eigenbase.rex.RexInputRef;
-import org.eigenbase.rex.RexLiteral;
-import org.eigenbase.rex.RexLocalRef;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.rex.RexOver;
-import org.eigenbase.rex.RexRangeRef;
-import org.eigenbase.rex.RexVisitorImpl;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.rex.RexBuilder;
+import org.apache.calcite.rex.RexCall;
+import org.apache.calcite.rex.RexCorrelVariable;
+import org.apache.calcite.rex.RexDynamicParam;
+import org.apache.calcite.rex.RexFieldAccess;
+import org.apache.calcite.rex.RexInputRef;
+import org.apache.calcite.rex.RexLiteral;
+import org.apache.calcite.rex.RexLocalRef;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.rex.RexOver;
+import org.apache.calcite.rex.RexRangeRef;
+import org.apache.calcite.rex.RexVisitorImpl;
import java.util.ArrayList;
import java.util.List;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/SelectionVectorPrelVisitor.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/SelectionVectorPrelVisitor.java
index 4e4d6c113..58e29f096 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/SelectionVectorPrelVisitor.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/SelectionVectorPrelVisitor.java
@@ -22,7 +22,7 @@ import java.util.List;
import org.apache.drill.exec.planner.physical.Prel;
import org.apache.drill.exec.planner.physical.SelectionVectorRemoverPrel;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
-import org.eigenbase.rel.RelNode;
+import org.apache.calcite.rel.RelNode;
import com.google.common.collect.Lists;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/SplitUpComplexExpressions.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/SplitUpComplexExpressions.java
index 9e01c428f..ebc825bd5 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/SplitUpComplexExpressions.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/SplitUpComplexExpressions.java
@@ -20,38 +20,24 @@ package org.apache.drill.exec.planner.physical.visitor;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
-import net.hydromatic.optiq.tools.RelConversionException;
+import org.apache.calcite.tools.RelConversionException;
import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry;
import org.apache.drill.exec.planner.StarColumnHelper;
-import org.apache.drill.exec.planner.logical.DrillRel;
-import org.apache.drill.exec.planner.logical.DrillScanRel;
-import org.apache.drill.exec.planner.logical.DrillTable;
-import org.apache.drill.exec.planner.physical.FlattenPrel;
import org.apache.drill.exec.planner.physical.Prel;
import org.apache.drill.exec.planner.physical.PrelUtil;
import org.apache.drill.exec.planner.physical.ProjectPrel;
-import org.apache.drill.exec.planner.physical.PrelUtil.ProjectPushInfo;
-import org.apache.drill.exec.planner.physical.visitor.BasePrelVisitor;
import org.apache.drill.exec.planner.types.RelDataTypeDrillImpl;
import org.apache.drill.exec.planner.types.RelDataTypeHolder;
-import org.eigenbase.rel.ProjectRelBase;
-import org.eigenbase.rel.RelShuttleImpl;
import org.apache.drill.exec.planner.sql.DrillOperatorTable;
-import org.eigenbase.rel.ProjectRel;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.reltype.RelDataTypeFactory;
-import org.eigenbase.reltype.RelDataTypeField;
-import org.eigenbase.reltype.RelDataTypeFieldImpl;
-import org.eigenbase.reltype.RelRecordType;
-import org.eigenbase.rex.RexBuilder;
-import org.eigenbase.rex.RexCall;
-import org.eigenbase.rex.RexLiteral;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.sql.SqlFunction;
-import org.eigenbase.sql.SqlOperator;
-import org.eigenbase.sql.type.SqlTypeName;
-import org.eigenbase.util.NlsString;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.rel.type.RelDataTypeField;
+import org.apache.calcite.rel.type.RelDataTypeFieldImpl;
+import org.apache.calcite.rel.type.RelRecordType;
+import org.apache.calcite.rex.RexBuilder;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.sql.type.SqlTypeName;
import java.util.ArrayList;
import java.util.List;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/StarColumnConverter.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/StarColumnConverter.java
index 9f4924e7d..7a471d7f1 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/StarColumnConverter.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/StarColumnConverter.java
@@ -24,23 +24,21 @@ import java.util.HashSet;
import java.util.List;
import java.util.concurrent.atomic.AtomicLong;
-import com.google.common.base.Preconditions;
+import org.apache.calcite.rel.rules.ProjectRemoveRule;
import org.apache.drill.exec.planner.StarColumnHelper;
-import org.apache.drill.exec.planner.physical.JoinPrel;
import org.apache.drill.exec.planner.physical.Prel;
import org.apache.drill.exec.planner.physical.ProjectAllowDupPrel;
import org.apache.drill.exec.planner.physical.ProjectPrel;
import org.apache.drill.exec.planner.physical.ScanPrel;
import org.apache.drill.exec.planner.physical.ScreenPrel;
import org.apache.drill.exec.planner.physical.WriterPrel;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.rules.RemoveTrivialProjectRule;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.reltype.RelDataTypeField;
-import org.eigenbase.rex.RexInputRef;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.rex.RexUtil;
-import org.eigenbase.util.Pair;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeField;
+import org.apache.calcite.rex.RexInputRef;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.rex.RexUtil;
+import org.apache.calcite.util.Pair;
import com.google.common.collect.Lists;
@@ -81,7 +79,7 @@ public class StarColumnConverter extends BasePrelVisitor<Prel, Void, RuntimeExce
if (prefixedForStar) {
if (!prefixedForWriter) {
// Prefix is added for SELECT only, not for CTAS writer.
- return insertProjUnderScreenOrWriter(prel, prel.getChild().getRowType(), child);
+ return insertProjUnderScreenOrWriter(prel, prel.getInput().getRowType(), child);
} else {
// Prefix is added under CTAS Writer. We need create a new Screen with the converted child.
return (Prel) prel.copy(prel.getTraitSet(), Collections.<RelNode>singletonList(child));
@@ -97,7 +95,7 @@ public class StarColumnConverter extends BasePrelVisitor<Prel, Void, RuntimeExce
Prel child = ((Prel) prel.getInput(0)).accept(this, null);
if (prefixedForStar) {
prefixedForWriter = true;
- return insertProjUnderScreenOrWriter(prel, prel.getChild().getRowType(), child);
+ return insertProjUnderScreenOrWriter(prel, prel.getInput().getRowType(), child);
} else {
return prel;
}
@@ -135,7 +133,7 @@ public class StarColumnConverter extends BasePrelVisitor<Prel, Void, RuntimeExce
// Require prefix rename : there exists other expression, in addition to a star column.
if (!prefixedForStar // not set yet.
- && StarColumnHelper.containsStarColumnInProject(prel.getChild().getRowType(), proj.getProjects())
+ && StarColumnHelper.containsStarColumnInProject(prel.getInput().getRowType(), proj.getProjects())
&& prel.getRowType().getFieldNames().size() > 1) {
prefixedForStar = true;
}
@@ -164,7 +162,7 @@ public class StarColumnConverter extends BasePrelVisitor<Prel, Void, RuntimeExce
ProjectPrel newProj = (ProjectPrel) proj.copy(proj.getTraitSet(), child, proj.getProjects(), rowType);
- if (RemoveTrivialProjectRule.isTrivial(newProj)) {
+ if (ProjectRemoveRule.isTrivial(newProj)) {
return (Prel) child;
} else {
return newProj;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/SwapHashJoinVisitor.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/SwapHashJoinVisitor.java
index 18d5e6043..96c79028e 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/SwapHashJoinVisitor.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/SwapHashJoinVisitor.java
@@ -23,9 +23,9 @@ import org.apache.drill.exec.planner.physical.HashJoinPrel;
import org.apache.drill.exec.planner.physical.JoinPrel;
import org.apache.drill.exec.planner.physical.Prel;
import org.apache.drill.exec.planner.physical.PrelUtil;
-import org.eigenbase.rel.JoinRelType;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rex.RexNode;
+import org.apache.calcite.rel.core.JoinRelType;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rex.RexNode;
import java.util.List;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/Checker.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/Checker.java
index a22da177b..42aa72872 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/Checker.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/Checker.java
@@ -17,10 +17,10 @@
*/
package org.apache.drill.exec.planner.sql;
-import org.eigenbase.sql.SqlCallBinding;
-import org.eigenbase.sql.SqlOperandCountRange;
-import org.eigenbase.sql.SqlOperator;
-import org.eigenbase.sql.type.SqlOperandTypeChecker;
+import org.apache.calcite.sql.SqlCallBinding;
+import org.apache.calcite.sql.SqlOperandCountRange;
+import org.apache.calcite.sql.SqlOperator;
+import org.apache.calcite.sql.type.SqlOperandTypeChecker;
class Checker implements SqlOperandTypeChecker {
private SqlOperandCountRange range;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillConvertletTable.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillConvertletTable.java
index 7c8989762..78404d4ea 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillConvertletTable.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillConvertletTable.java
@@ -19,12 +19,12 @@ package org.apache.drill.exec.planner.sql;
import java.util.HashMap;
-import org.eigenbase.sql.SqlCall;
-import org.eigenbase.sql.SqlOperator;
-import org.eigenbase.sql.fun.SqlStdOperatorTable;
-import org.eigenbase.sql2rel.SqlRexConvertlet;
-import org.eigenbase.sql2rel.SqlRexConvertletTable;
-import org.eigenbase.sql2rel.StandardConvertletTable;
+import org.apache.calcite.sql.SqlCall;
+import org.apache.calcite.sql.SqlOperator;
+import org.apache.calcite.sql.fun.SqlStdOperatorTable;
+import org.apache.calcite.sql2rel.SqlRexConvertlet;
+import org.apache.calcite.sql2rel.SqlRexConvertletTable;
+import org.apache.calcite.sql2rel.StandardConvertletTable;
public class DrillConvertletTable implements SqlRexConvertletTable{
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillExtractConvertlet.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillExtractConvertlet.java
index 31aa36458..7bf2584c2 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillExtractConvertlet.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillExtractConvertlet.java
@@ -20,15 +20,15 @@ package org.apache.drill.exec.planner.sql;
import java.util.LinkedList;
import java.util.List;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.reltype.RelDataTypeFactory;
-import org.eigenbase.rex.RexBuilder;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.sql.SqlCall;
-import org.eigenbase.sql.SqlNode;
-import org.eigenbase.sql.type.SqlTypeName;
-import org.eigenbase.sql2rel.SqlRexContext;
-import org.eigenbase.sql2rel.SqlRexConvertlet;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.rex.RexBuilder;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.sql.SqlCall;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.type.SqlTypeName;
+import org.apache.calcite.sql2rel.SqlRexContext;
+import org.apache.calcite.sql2rel.SqlRexConvertlet;
public class DrillExtractConvertlet implements SqlRexConvertlet {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillOperatorTable.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillOperatorTable.java
index 97d873c50..b319863a0 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillOperatorTable.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillOperatorTable.java
@@ -20,12 +20,12 @@ package org.apache.drill.exec.planner.sql;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Lists;
import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry;
-import org.eigenbase.sql.SqlFunctionCategory;
-import org.eigenbase.sql.SqlIdentifier;
-import org.eigenbase.sql.SqlOperator;
-import org.eigenbase.sql.SqlOperatorTable;
-import org.eigenbase.sql.SqlSyntax;
-import org.eigenbase.sql.fun.SqlStdOperatorTable;
+import org.apache.calcite.sql.SqlFunctionCategory;
+import org.apache.calcite.sql.SqlIdentifier;
+import org.apache.calcite.sql.SqlOperator;
+import org.apache.calcite.sql.SqlOperatorTable;
+import org.apache.calcite.sql.SqlSyntax;
+import org.apache.calcite.sql.fun.SqlStdOperatorTable;
import java.util.List;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillSqlAggOperator.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillSqlAggOperator.java
index 7ab2e9fb7..213620162 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillSqlAggOperator.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillSqlAggOperator.java
@@ -19,17 +19,17 @@ package org.apache.drill.exec.planner.sql;
import java.util.List;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.reltype.RelDataTypeFactory;
-import org.eigenbase.sql.SqlAggFunction;
-import org.eigenbase.sql.SqlCall;
-import org.eigenbase.sql.SqlFunctionCategory;
-import org.eigenbase.sql.SqlIdentifier;
-import org.eigenbase.sql.SqlKind;
-import org.eigenbase.sql.parser.SqlParserPos;
-import org.eigenbase.sql.type.SqlTypeName;
-import org.eigenbase.sql.validate.SqlValidator;
-import org.eigenbase.sql.validate.SqlValidatorScope;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.sql.SqlAggFunction;
+import org.apache.calcite.sql.SqlCall;
+import org.apache.calcite.sql.SqlFunctionCategory;
+import org.apache.calcite.sql.SqlIdentifier;
+import org.apache.calcite.sql.SqlKind;
+import org.apache.calcite.sql.parser.SqlParserPos;
+import org.apache.calcite.sql.type.SqlTypeName;
+import org.apache.calcite.sql.validate.SqlValidator;
+import org.apache.calcite.sql.validate.SqlValidatorScope;
import com.google.common.collect.ImmutableList;
@@ -51,13 +51,13 @@ public class DrillSqlAggOperator extends SqlAggFunction {
// return new RelDataTypeDrillImpl(new RelDataTypeHolder(), factory);
}
- @Override
- public List<RelDataType> getParameterTypes(RelDataTypeFactory typeFactory) {
- return ImmutableList.of(typeFactory.createSqlType(SqlTypeName.ANY));
- }
-
- @Override
- public RelDataType getReturnType(RelDataTypeFactory typeFactory) {
- return getAny(typeFactory);
- }
+// @Override
+// public List<RelDataType> getParameterTypes(RelDataTypeFactory typeFactory) {
+// return ImmutableList.of(typeFactory.createSqlType(SqlTypeName.ANY));
+// }
+//
+// @Override
+// public RelDataType getReturnType(RelDataTypeFactory typeFactory) {
+// return getAny(typeFactory);
+// }
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillSqlOperator.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillSqlOperator.java
index 7bd48c80a..776da3fc4 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillSqlOperator.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillSqlOperator.java
@@ -21,17 +21,17 @@ package org.apache.drill.exec.planner.sql;
import com.google.common.base.Preconditions;
import org.apache.drill.common.types.TypeProtos.MajorType;
import org.apache.drill.common.types.TypeProtos.MinorType;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.reltype.RelDataTypeFactory;
-import org.eigenbase.sql.SqlCall;
-import org.eigenbase.sql.SqlFunction;
-import org.eigenbase.sql.SqlFunctionCategory;
-import org.eigenbase.sql.SqlIdentifier;
-import org.eigenbase.sql.SqlOperatorBinding;
-import org.eigenbase.sql.parser.SqlParserPos;
-import org.eigenbase.sql.type.SqlTypeName;
-import org.eigenbase.sql.validate.SqlValidator;
-import org.eigenbase.sql.validate.SqlValidatorScope;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.sql.SqlCall;
+import org.apache.calcite.sql.SqlFunction;
+import org.apache.calcite.sql.SqlFunctionCategory;
+import org.apache.calcite.sql.SqlIdentifier;
+import org.apache.calcite.sql.SqlOperatorBinding;
+import org.apache.calcite.sql.parser.SqlParserPos;
+import org.apache.calcite.sql.type.SqlTypeName;
+import org.apache.calcite.sql.validate.SqlValidator;
+import org.apache.calcite.sql.validate.SqlValidatorScope;
public class DrillSqlOperator extends SqlFunction {
static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(DrillSqlOperator.class);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillSqlWorker.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillSqlWorker.java
index d56f1dbcf..ebe7aeb44 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillSqlWorker.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillSqlWorker.java
@@ -21,13 +21,14 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-import net.hydromatic.optiq.config.Lex;
-import net.hydromatic.optiq.tools.FrameworkConfig;
-import net.hydromatic.optiq.tools.Frameworks;
-import net.hydromatic.optiq.tools.Planner;
-import net.hydromatic.optiq.tools.RelConversionException;
-import net.hydromatic.optiq.tools.RuleSet;
-import net.hydromatic.optiq.tools.ValidationException;
+import org.apache.calcite.config.Lex;
+import org.apache.calcite.rel.rules.ProjectToWindowRule;
+import org.apache.calcite.tools.FrameworkConfig;
+import org.apache.calcite.tools.Frameworks;
+import org.apache.calcite.tools.Planner;
+import org.apache.calcite.tools.RelConversionException;
+import org.apache.calcite.tools.RuleSet;
+import org.apache.calcite.tools.ValidationException;
import org.apache.drill.common.exceptions.UserException;
import org.apache.drill.exec.ops.QueryContext;
@@ -44,23 +45,25 @@ import org.apache.drill.exec.planner.sql.handlers.SqlHandlerConfig;
import org.apache.drill.exec.planner.sql.parser.DrillSqlCall;
import org.apache.drill.exec.planner.sql.parser.SqlCreateTable;
import org.apache.drill.exec.planner.sql.parser.impl.DrillParserWithCompoundIdConverter;
+import org.apache.drill.exec.proto.UserBitShared.DrillPBError.ErrorType;
+import org.apache.drill.exec.planner.types.DrillRelDataTypeSystem;
import org.apache.drill.exec.store.StoragePluginRegistry;
import org.apache.drill.exec.testing.ExecutionControlsInjector;
import org.apache.drill.exec.util.Pointer;
import org.apache.drill.exec.work.foreman.ForemanException;
import org.apache.drill.exec.work.foreman.ForemanSetupException;
-import org.apache.hadoop.security.AccessControlException;
-import org.eigenbase.rel.RelCollationTraitDef;
-import org.eigenbase.rel.rules.ReduceExpressionsRule;
-import org.eigenbase.rel.rules.WindowedAggSplitterRule;
-import org.eigenbase.relopt.ConventionTraitDef;
-import org.eigenbase.relopt.RelOptCostFactory;
-import org.eigenbase.relopt.RelTraitDef;
-import org.eigenbase.relopt.hep.HepPlanner;
-import org.eigenbase.relopt.hep.HepProgramBuilder;
-import org.eigenbase.sql.SqlNode;
-import org.eigenbase.sql.parser.SqlParseException;
-import org.eigenbase.sql.parser.SqlParser;
+import org.apache.calcite.rel.RelCollationTraitDef;
+import org.apache.calcite.rel.rules.ReduceExpressionsRule;
+import org.apache.calcite.plan.ConventionTraitDef;
+import org.apache.calcite.plan.RelOptCostFactory;
+import org.apache.calcite.plan.RelTraitDef;
+import org.apache.calcite.plan.hep.HepPlanner;
+import org.apache.calcite.plan.hep.HepProgramBuilder;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.parser.SqlAbstractParserImpl;
+import org.apache.calcite.sql.parser.SqlParseException;
+import org.apache.calcite.sql.parser.SqlParser;
+import org.apache.calcite.sql.parser.SqlParserImplFactory;
public class DrillSqlWorker {
// private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(DrillSqlWorker.class);
@@ -84,8 +87,11 @@ public class DrillSqlWorker {
int idMaxLength = (int)context.getPlannerSettings().getIdentifierMaxLength();
FrameworkConfig config = Frameworks.newConfigBuilder() //
- .parserConfig(new SqlParser.ParserConfigImpl(Lex.MYSQL, idMaxLength)) //
- .parserFactory(DrillParserWithCompoundIdConverter.FACTORY) //
+ .parserConfig(SqlParser.configBuilder()
+ .setLex(Lex.MYSQL)
+ .setIdentifierMaxLength(idMaxLength)
+ .setParserFactory(DrillParserWithCompoundIdConverter.FACTORY)
+ .build()) //
.defaultSchema(context.getNewDefaultSchema()) //
.operatorTable(context.getDrillOperatorTable()) //
.traitDefs(traitDefs) //
@@ -94,14 +100,15 @@ public class DrillSqlWorker {
.ruleSets(getRules(context)) //
.costFactory(costFactory) //
.executor(new DrillConstExecutor(context.getFunctionRegistry(), context))
+ .typeSystem(DrillRelDataTypeSystem.DRILL_REL_DATATYPE_SYSTEM) //
.build();
this.planner = Frameworks.getPlanner(config);
HepProgramBuilder builder = new HepProgramBuilder();
builder.addRuleClass(ReduceExpressionsRule.class);
- builder.addRuleClass(WindowedAggSplitterRule.class);
+ builder.addRuleClass(ProjectToWindowRule.class);
this.hepPlanner = new HepPlanner(builder.build());
hepPlanner.addRule(ReduceExpressionsRule.CALC_INSTANCE);
- hepPlanner.addRule(WindowedAggSplitterRule.PROJECT);
+ hepPlanner.addRule(ProjectToWindowRule.PROJECT);
}
private RuleSet[] getRules(QueryContext context) {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DynamicReturnType.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DynamicReturnType.java
index 1fe1d27de..c43a8a24b 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DynamicReturnType.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DynamicReturnType.java
@@ -17,7 +17,7 @@
*/
package org.apache.drill.exec.planner.sql;
-import org.eigenbase.sql.type.ExplicitReturnTypeInference;
+import org.apache.calcite.sql.type.ExplicitReturnTypeInference;
class DynamicReturnType extends ExplicitReturnTypeInference {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DynamicType.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DynamicType.java
index 7255dae99..8bd5532a0 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DynamicType.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DynamicType.java
@@ -17,10 +17,10 @@
*/
package org.apache.drill.exec.planner.sql;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.reltype.RelDataTypeFactory;
-import org.eigenbase.reltype.RelProtoDataType;
-import org.eigenbase.sql.type.SqlTypeName;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.rel.type.RelProtoDataType;
+import org.apache.calcite.sql.type.SqlTypeName;
class DynamicType implements RelProtoDataType {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/FixedRange.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/FixedRange.java
index 91a7c65d1..16527452b 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/FixedRange.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/FixedRange.java
@@ -17,7 +17,7 @@
*/
package org.apache.drill.exec.planner.sql;
-import org.eigenbase.sql.SqlOperandCountRange;
+import org.apache.calcite.sql.SqlOperandCountRange;
class FixedRange implements SqlOperandCountRange{
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/AbstractSqlHandler.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/AbstractSqlHandler.java
index 56c2a42cd..96fd877a7 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/AbstractSqlHandler.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/AbstractSqlHandler.java
@@ -20,14 +20,14 @@ package org.apache.drill.exec.planner.sql.handlers;
import java.io.IOException;
import java.util.List;
-import net.hydromatic.optiq.SchemaPlus;
-import net.hydromatic.optiq.tools.RelConversionException;
-import net.hydromatic.optiq.tools.ValidationException;
+import org.apache.calcite.schema.SchemaPlus;
+import org.apache.calcite.tools.RelConversionException;
+import org.apache.calcite.tools.ValidationException;
import org.apache.drill.exec.physical.PhysicalPlan;
import org.apache.drill.exec.store.AbstractSchema;
import org.apache.drill.exec.work.foreman.ForemanSetupException;
-import org.eigenbase.sql.SqlNode;
+import org.apache.calcite.sql.SqlNode;
import com.google.common.base.Joiner;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/CreateTableHandler.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/CreateTableHandler.java
index 3e990c6bd..f2097bef1 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/CreateTableHandler.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/CreateTableHandler.java
@@ -19,9 +19,10 @@ package org.apache.drill.exec.planner.sql.handlers;
import java.io.IOException;
-import net.hydromatic.optiq.SchemaPlus;
-import net.hydromatic.optiq.tools.RelConversionException;
-import net.hydromatic.optiq.tools.ValidationException;
+import org.apache.calcite.schema.SchemaPlus;
+import org.apache.calcite.tools.Planner;
+import org.apache.calcite.tools.RelConversionException;
+import org.apache.calcite.tools.ValidationException;
import org.apache.drill.exec.physical.PhysicalPlan;
import org.apache.drill.exec.physical.base.PhysicalOperator;
@@ -36,8 +37,11 @@ import org.apache.drill.exec.planner.sql.parser.SqlCreateTable;
import org.apache.drill.exec.store.AbstractSchema;
import org.apache.drill.exec.util.Pointer;
import org.apache.drill.exec.work.foreman.ForemanSetupException;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.sql.SqlNode;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptUtil;
+import org.apache.calcite.plan.hep.HepPlanner;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.sql.SqlNode;
public class CreateTableHandler extends DefaultSqlHandler {
public CreateTableHandler(SqlHandlerConfig config, Pointer<String> textPlan) {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/DefaultSqlHandler.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/DefaultSqlHandler.java
index 5ee502d27..22f9803bb 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/DefaultSqlHandler.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/DefaultSqlHandler.java
@@ -22,9 +22,9 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
-import net.hydromatic.optiq.tools.Planner;
-import net.hydromatic.optiq.tools.RelConversionException;
-import net.hydromatic.optiq.tools.ValidationException;
+import org.apache.calcite.tools.Planner;
+import org.apache.calcite.tools.RelConversionException;
+import org.apache.calcite.tools.ValidationException;
import org.apache.drill.common.JSONOptions;
import org.apache.drill.common.logical.PlanProperties;
@@ -66,13 +66,13 @@ import org.apache.drill.exec.util.Pointer;
import org.apache.drill.exec.work.foreman.ForemanSetupException;
import org.apache.drill.exec.work.foreman.SqlUnsupportedException;
import org.apache.drill.exec.work.foreman.UnsupportedRelOperatorException;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelOptUtil;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.relopt.hep.HepPlanner;
-import org.eigenbase.sql.SqlExplainLevel;
-import org.eigenbase.sql.SqlNode;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelOptUtil;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.plan.hep.HepPlanner;
+import org.apache.calcite.sql.SqlExplainLevel;
+import org.apache.calcite.sql.SqlNode;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.google.common.base.Preconditions;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/DescribeTableHandler.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/DescribeTableHandler.java
index 709a77fa5..15721d52d 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/DescribeTableHandler.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/DescribeTableHandler.java
@@ -22,9 +22,9 @@ import static org.apache.drill.exec.planner.sql.parser.DrillParserUtil.CHARSET;
import java.util.List;
-import net.hydromatic.optiq.SchemaPlus;
-import net.hydromatic.optiq.tools.Planner;
-import net.hydromatic.optiq.tools.RelConversionException;
+import org.apache.calcite.schema.SchemaPlus;
+import org.apache.calcite.tools.Planner;
+import org.apache.calcite.tools.RelConversionException;
import org.apache.drill.exec.ops.QueryContext;
import org.apache.drill.exec.planner.sql.parser.DrillParserUtil;
@@ -32,15 +32,15 @@ import org.apache.drill.exec.planner.sql.parser.SqlDescribeTable;
import org.apache.drill.exec.store.AbstractSchema;
import org.apache.drill.exec.store.ischema.InfoSchemaConstants;
import org.apache.drill.exec.work.foreman.ForemanSetupException;
-import org.eigenbase.relopt.hep.HepPlanner;
-import org.eigenbase.sql.SqlIdentifier;
-import org.eigenbase.sql.SqlLiteral;
-import org.eigenbase.sql.SqlNode;
-import org.eigenbase.sql.SqlNodeList;
-import org.eigenbase.sql.SqlSelect;
-import org.eigenbase.sql.fun.SqlStdOperatorTable;
-import org.eigenbase.sql.parser.SqlParserPos;
-import org.eigenbase.util.Util;
+import org.apache.calcite.plan.hep.HepPlanner;
+import org.apache.calcite.sql.SqlIdentifier;
+import org.apache.calcite.sql.SqlLiteral;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.SqlNodeList;
+import org.apache.calcite.sql.SqlSelect;
+import org.apache.calcite.sql.fun.SqlStdOperatorTable;
+import org.apache.calcite.sql.parser.SqlParserPos;
+import org.apache.calcite.util.Util;
import com.google.common.collect.ImmutableList;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ExplainHandler.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ExplainHandler.java
index 1cce6a57e..d1420dff9 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ExplainHandler.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ExplainHandler.java
@@ -19,8 +19,8 @@ package org.apache.drill.exec.planner.sql.handlers;
import java.io.IOException;
-import net.hydromatic.optiq.tools.RelConversionException;
-import net.hydromatic.optiq.tools.ValidationException;
+import org.apache.calcite.tools.RelConversionException;
+import org.apache.calcite.tools.ValidationException;
import org.apache.drill.common.logical.LogicalPlan;
import org.apache.drill.common.logical.PlanProperties.Generator.ResultMode;
@@ -34,12 +34,12 @@ import org.apache.drill.exec.planner.physical.Prel;
import org.apache.drill.exec.planner.physical.explain.PrelSequencer;
import org.apache.drill.exec.planner.sql.DirectPlan;
import org.apache.drill.exec.work.foreman.ForemanSetupException;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptUtil;
-import org.eigenbase.sql.SqlExplain;
-import org.eigenbase.sql.SqlExplainLevel;
-import org.eigenbase.sql.SqlLiteral;
-import org.eigenbase.sql.SqlNode;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptUtil;
+import org.apache.calcite.sql.SqlExplain;
+import org.apache.calcite.sql.SqlExplainLevel;
+import org.apache.calcite.sql.SqlLiteral;
+import org.apache.calcite.sql.SqlNode;
public class ExplainHandler extends DefaultSqlHandler {
static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(ExplainHandler.class);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/SetOptionHandler.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/SetOptionHandler.java
index dc63ef95c..19c9f7fb5 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/SetOptionHandler.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/SetOptionHandler.java
@@ -19,17 +19,17 @@ package org.apache.drill.exec.planner.sql.handlers;
import java.io.IOException;
-import net.hydromatic.optiq.tools.RelConversionException;
-import net.hydromatic.optiq.tools.ValidationException;
+import org.apache.calcite.tools.RelConversionException;
+import org.apache.calcite.tools.ValidationException;
import org.apache.drill.exec.ops.QueryContext;
import org.apache.drill.exec.physical.PhysicalPlan;
import org.apache.drill.exec.planner.sql.DirectPlan;
import org.apache.drill.exec.server.options.OptionValue;
import org.apache.drill.exec.work.foreman.ForemanSetupException;
-import org.eigenbase.sql.SqlLiteral;
-import org.eigenbase.sql.SqlNode;
-import org.eigenbase.sql.SqlSetOption;
+import org.apache.calcite.sql.SqlLiteral;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.SqlSetOption;
public class SetOptionHandler extends AbstractSqlHandler {
// private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(SetOptionHandler.class);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ShowFileHandler.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ShowFileHandler.java
index 2504ed99f..706237544 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ShowFileHandler.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ShowFileHandler.java
@@ -21,9 +21,9 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-import net.hydromatic.optiq.SchemaPlus;
-import net.hydromatic.optiq.tools.RelConversionException;
-import net.hydromatic.optiq.tools.ValidationException;
+import org.apache.calcite.schema.SchemaPlus;
+import org.apache.calcite.tools.RelConversionException;
+import org.apache.calcite.tools.ValidationException;
import org.apache.drill.exec.physical.PhysicalPlan;
import org.apache.drill.exec.planner.sql.DirectPlan;
@@ -33,8 +33,8 @@ import org.apache.drill.exec.store.dfs.WorkspaceSchemaFactory.WorkspaceSchema;
import org.apache.drill.exec.store.dfs.DrillFileSystem;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.Path;
-import org.eigenbase.sql.SqlIdentifier;
-import org.eigenbase.sql.SqlNode;
+import org.apache.calcite.sql.SqlIdentifier;
+import org.apache.calcite.sql.SqlNode;
public class ShowFileHandler extends DefaultSqlHandler {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ShowSchemasHandler.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ShowSchemasHandler.java
index ef3e1b04a..a037be3db 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ShowSchemasHandler.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ShowSchemasHandler.java
@@ -20,18 +20,18 @@ package org.apache.drill.exec.planner.sql.handlers;
import java.util.List;
-import net.hydromatic.optiq.tools.RelConversionException;
+import org.apache.calcite.tools.RelConversionException;
import org.apache.drill.exec.planner.sql.parser.DrillParserUtil;
import org.apache.drill.exec.planner.sql.parser.SqlShowSchemas;
import org.apache.drill.exec.store.ischema.InfoSchemaConstants;
import org.apache.drill.exec.work.foreman.ForemanSetupException;
-import org.eigenbase.sql.SqlIdentifier;
-import org.eigenbase.sql.SqlNode;
-import org.eigenbase.sql.SqlNodeList;
-import org.eigenbase.sql.SqlSelect;
-import org.eigenbase.sql.fun.SqlStdOperatorTable;
-import org.eigenbase.sql.parser.SqlParserPos;
+import org.apache.calcite.sql.SqlIdentifier;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.SqlNodeList;
+import org.apache.calcite.sql.SqlSelect;
+import org.apache.calcite.sql.fun.SqlStdOperatorTable;
+import org.apache.calcite.sql.parser.SqlParserPos;
import com.google.common.collect.ImmutableList;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ShowTablesHandler.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ShowTablesHandler.java
index be53c8428..4ac81e98d 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ShowTablesHandler.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ShowTablesHandler.java
@@ -22,21 +22,21 @@ import static org.apache.drill.exec.planner.sql.parser.DrillParserUtil.CHARSET;
import java.util.List;
-import net.hydromatic.optiq.SchemaPlus;
-import net.hydromatic.optiq.tools.RelConversionException;
+import org.apache.calcite.schema.SchemaPlus;
+import org.apache.calcite.tools.RelConversionException;
import org.apache.drill.exec.planner.sql.parser.DrillParserUtil;
import org.apache.drill.exec.planner.sql.parser.SqlShowTables;
import org.apache.drill.exec.store.AbstractSchema;
import org.apache.drill.exec.store.ischema.InfoSchemaConstants;
import org.apache.drill.exec.work.foreman.ForemanSetupException;
-import org.eigenbase.sql.SqlIdentifier;
-import org.eigenbase.sql.SqlLiteral;
-import org.eigenbase.sql.SqlNode;
-import org.eigenbase.sql.SqlNodeList;
-import org.eigenbase.sql.SqlSelect;
-import org.eigenbase.sql.fun.SqlStdOperatorTable;
-import org.eigenbase.sql.parser.SqlParserPos;
+import org.apache.calcite.sql.SqlIdentifier;
+import org.apache.calcite.sql.SqlLiteral;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.SqlNodeList;
+import org.apache.calcite.sql.SqlSelect;
+import org.apache.calcite.sql.fun.SqlStdOperatorTable;
+import org.apache.calcite.sql.parser.SqlParserPos;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/SqlHandlerConfig.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/SqlHandlerConfig.java
index 132a2c97b..4027fe6c4 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/SqlHandlerConfig.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/SqlHandlerConfig.java
@@ -18,9 +18,9 @@
package org.apache.drill.exec.planner.sql.handlers;
-import net.hydromatic.optiq.tools.Planner;
+import org.apache.calcite.tools.Planner;
import org.apache.drill.exec.ops.QueryContext;
-import org.eigenbase.relopt.hep.HepPlanner;
+import org.apache.calcite.plan.hep.HepPlanner;
public class SqlHandlerConfig {
private final QueryContext context;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/SqlHandlerUtil.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/SqlHandlerUtil.java
index c347bef6c..2572ace2a 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/SqlHandlerUtil.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/SqlHandlerUtil.java
@@ -17,19 +17,21 @@
*/
package org.apache.drill.exec.planner.sql.handlers;
-import net.hydromatic.optiq.Table;
-import net.hydromatic.optiq.tools.Planner;
-import net.hydromatic.optiq.tools.RelConversionException;
-import net.hydromatic.optiq.tools.ValidationException;
+import org.apache.calcite.schema.Table;
+import org.apache.calcite.tools.Planner;
+import org.apache.calcite.tools.RelConversionException;
import org.apache.drill.common.exceptions.DrillException;
import org.apache.drill.exec.planner.common.DrillRelOptUtil;
import org.apache.drill.exec.planner.sql.DirectPlan;
import org.apache.drill.exec.planner.types.DrillFixedRelDataTypeImpl;
import org.apache.drill.exec.store.AbstractSchema;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptUtil;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.sql.SqlNode;
+
+import org.apache.calcite.tools.ValidationException;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptUtil;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.drill.exec.store.ischema.Records;
import java.util.List;
@@ -81,7 +83,8 @@ public class SqlHandlerUtil {
// SELECT col1, median(col2), avg(col3) FROM sourcetbl GROUP BY col1 ;
// Similary for CREATE VIEW.
- return DrillRelOptUtil.createRename(validatedQueryRelNode, tableFieldNames);
+ return RelOptUtil.createRename(validatedQueryRelNode, tableFieldNames);
+ // return DrillRelOptUtil.createRename(validatedQueryRelNode, tableFieldNames);
}
return validatedQueryRelNode;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/UseSchemaHandler.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/UseSchemaHandler.java
index f99aea383..e17e275d5 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/UseSchemaHandler.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/UseSchemaHandler.java
@@ -19,15 +19,15 @@ package org.apache.drill.exec.planner.sql.handlers;
import java.io.IOException;
-import net.hydromatic.optiq.tools.RelConversionException;
-import net.hydromatic.optiq.tools.ValidationException;
+import org.apache.calcite.tools.RelConversionException;
+import org.apache.calcite.tools.ValidationException;
import org.apache.drill.exec.ops.QueryContext;
import org.apache.drill.exec.physical.PhysicalPlan;
import org.apache.drill.exec.planner.sql.DirectPlan;
import org.apache.drill.exec.planner.sql.parser.SqlUseSchema;
import org.apache.drill.exec.work.foreman.ForemanSetupException;
-import org.eigenbase.sql.SqlNode;
+import org.apache.calcite.sql.SqlNode;
public class UseSchemaHandler extends AbstractSqlHandler {
QueryContext context;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ViewHandler.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ViewHandler.java
index 00fc5228e..2428b45f0 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ViewHandler.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ViewHandler.java
@@ -20,12 +20,12 @@ package org.apache.drill.exec.planner.sql.handlers;
import java.io.IOException;
import java.util.List;
-import net.hydromatic.optiq.Schema.TableType;
-import net.hydromatic.optiq.SchemaPlus;
-import net.hydromatic.optiq.Table;
-import net.hydromatic.optiq.tools.Planner;
-import net.hydromatic.optiq.tools.RelConversionException;
-import net.hydromatic.optiq.tools.ValidationException;
+import org.apache.calcite.schema.Schema;
+import org.apache.calcite.schema.SchemaPlus;
+import org.apache.calcite.schema.Table;
+import org.apache.calcite.tools.Planner;
+import org.apache.calcite.tools.RelConversionException;
+import org.apache.calcite.tools.ValidationException;
import org.apache.drill.exec.dotdrill.View;
import org.apache.drill.exec.ops.QueryContext;
@@ -36,8 +36,8 @@ import org.apache.drill.exec.planner.sql.parser.SqlDropView;
import org.apache.drill.exec.store.AbstractSchema;
import org.apache.drill.exec.store.dfs.WorkspaceSchemaFactory.WorkspaceSchema;
import org.apache.drill.exec.work.foreman.ForemanSetupException;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.sql.SqlNode;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.sql.SqlNode;
import com.google.common.collect.ImmutableList;
@@ -92,14 +92,14 @@ public abstract class ViewHandler extends AbstractSqlHandler {
final Table existingTable = SqlHandlerUtil.getTableFromSchema(drillSchema, viewName);
if (existingTable != null) {
- if (existingTable.getJdbcTableType() != TableType.VIEW) {
+ if (existingTable.getJdbcTableType() != Schema.TableType.VIEW) {
// existing table is not a view
throw new ValidationException(
String.format("A non-view table with given name [%s] already exists in schema [%s]",
viewName, schemaPath));
}
- if (existingTable.getJdbcTableType() == TableType.VIEW && !createView.getReplace()) {
+ if (existingTable.getJdbcTableType() == Schema.TableType.VIEW && !createView.getReplace()) {
// existing table is a view and create view has no "REPLACE" clause
throw new ValidationException(
String.format("A view with given name [%s] already exists in schema [%s]",
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/CompoundIdentifierConverter.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/CompoundIdentifierConverter.java
index eb9794167..bfa89a501 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/CompoundIdentifierConverter.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/CompoundIdentifierConverter.java
@@ -20,14 +20,14 @@ package org.apache.drill.exec.planner.sql.parser;
import java.util.List;
import java.util.Map;
-import org.eigenbase.sql.SqlCall;
-import org.eigenbase.sql.SqlIdentifier;
-import org.eigenbase.sql.SqlJoin;
-import org.eigenbase.sql.SqlNode;
-import org.eigenbase.sql.SqlOrderBy;
-import org.eigenbase.sql.SqlSelect;
-import org.eigenbase.sql.util.SqlShuttle;
-import org.eigenbase.sql.util.SqlVisitor;
+import org.apache.calcite.sql.SqlCall;
+import org.apache.calcite.sql.SqlIdentifier;
+import org.apache.calcite.sql.SqlJoin;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.SqlOrderBy;
+import org.apache.calcite.sql.SqlSelect;
+import org.apache.calcite.sql.util.SqlShuttle;
+import org.apache.calcite.sql.util.SqlVisitor;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Maps;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/DrillCompoundIdentifier.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/DrillCompoundIdentifier.java
index d5fa215f0..fe96be437 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/DrillCompoundIdentifier.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/DrillCompoundIdentifier.java
@@ -20,12 +20,12 @@ package org.apache.drill.exec.planner.sql.parser;
import java.util.Collections;
import java.util.List;
-import org.eigenbase.sql.SqlBasicCall;
-import org.eigenbase.sql.SqlIdentifier;
-import org.eigenbase.sql.SqlLiteral;
-import org.eigenbase.sql.SqlNode;
-import org.eigenbase.sql.fun.SqlStdOperatorTable;
-import org.eigenbase.sql.parser.SqlParserPos;
+import org.apache.calcite.sql.SqlBasicCall;
+import org.apache.calcite.sql.SqlIdentifier;
+import org.apache.calcite.sql.SqlLiteral;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.fun.SqlStdOperatorTable;
+import org.apache.calcite.sql.parser.SqlParserPos;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/DrillParserUtil.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/DrillParserUtil.java
index cba5a1865..b6eb31afc 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/DrillParserUtil.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/DrillParserUtil.java
@@ -20,10 +20,10 @@ package org.apache.drill.exec.planner.sql.parser;
import java.util.List;
-import org.eigenbase.sql.SqlNode;
-import org.eigenbase.sql.SqlOperator;
-import org.eigenbase.sql.parser.SqlParserPos;
-import org.eigenbase.sql.parser.SqlParserUtil;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.SqlOperator;
+import org.apache.calcite.sql.parser.SqlParserPos;
+import org.apache.calcite.sql.parser.SqlParserUtil;
import com.google.common.collect.Lists;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/DrillSqlCall.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/DrillSqlCall.java
index 3e8d4f1dc..007b75406 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/DrillSqlCall.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/DrillSqlCall.java
@@ -17,16 +17,16 @@
*/
package org.apache.drill.exec.planner.sql.parser;
-import net.hydromatic.optiq.tools.Planner;
+import org.apache.calcite.tools.Planner;
import org.apache.drill.exec.ops.QueryContext;
import org.apache.drill.exec.planner.sql.handlers.AbstractSqlHandler;
import org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler;
import org.apache.drill.exec.planner.sql.handlers.SqlHandlerConfig;
+import org.apache.calcite.plan.hep.HepPlanner;
+import org.apache.calcite.sql.SqlCall;
+import org.apache.calcite.sql.parser.SqlParserPos;
import org.apache.drill.exec.util.Pointer;
-import org.eigenbase.relopt.hep.HepPlanner;
-import org.eigenbase.sql.SqlCall;
-import org.eigenbase.sql.parser.SqlParserPos;
/**
* SqlCall interface with addition of method to get the handler.
@@ -44,4 +44,4 @@ public abstract class DrillSqlCall extends SqlCall {
public AbstractSqlHandler getSqlHandler(SqlHandlerConfig config, Pointer<String> textPlan) {
return new DefaultSqlHandler(config, textPlan);
}
-} \ No newline at end of file
+}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlCreateTable.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlCreateTable.java
index ae1c744c5..9fd9d92aa 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlCreateTable.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlCreateTable.java
@@ -19,27 +19,27 @@ package org.apache.drill.exec.planner.sql.parser;
import java.util.List;
-import net.hydromatic.optiq.tools.Planner;
+import org.apache.calcite.tools.Planner;
import org.apache.drill.exec.ops.QueryContext;
import org.apache.drill.exec.planner.sql.handlers.AbstractSqlHandler;
import org.apache.drill.exec.planner.sql.handlers.CreateTableHandler;
import org.apache.drill.exec.planner.sql.handlers.SqlHandlerConfig;
-import org.apache.drill.exec.util.Pointer;
-import org.eigenbase.relopt.hep.HepPlanner;
-import org.eigenbase.sql.SqlCall;
-import org.eigenbase.sql.SqlIdentifier;
-import org.eigenbase.sql.SqlKind;
-import org.eigenbase.sql.SqlLiteral;
-import org.eigenbase.sql.SqlNode;
-import org.eigenbase.sql.SqlNodeList;
-import org.eigenbase.sql.SqlOperator;
-import org.eigenbase.sql.SqlSpecialOperator;
-import org.eigenbase.sql.SqlWriter;
-import org.eigenbase.sql.parser.SqlParserPos;
+import org.apache.calcite.plan.hep.HepPlanner;
+import org.apache.calcite.sql.SqlCall;
+import org.apache.calcite.sql.SqlIdentifier;
+import org.apache.calcite.sql.SqlKind;
+import org.apache.calcite.sql.SqlLiteral;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.SqlNodeList;
+import org.apache.calcite.sql.SqlOperator;
+import org.apache.calcite.sql.SqlSpecialOperator;
+import org.apache.calcite.sql.SqlWriter;
+import org.apache.calcite.sql.parser.SqlParserPos;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
+import org.apache.drill.exec.util.Pointer;
public class SqlCreateTable extends DrillSqlCall {
public static final SqlSpecialOperator OPERATOR = new SqlSpecialOperator("CREATE_TABLE", SqlKind.OTHER) {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlCreateView.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlCreateView.java
index b7352b4b4..57cfde905 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlCreateView.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlCreateView.java
@@ -22,16 +22,16 @@ import com.google.common.collect.Lists;
import org.apache.drill.exec.planner.sql.handlers.AbstractSqlHandler;
import org.apache.drill.exec.planner.sql.handlers.SqlHandlerConfig;
import org.apache.drill.exec.planner.sql.handlers.ViewHandler;
-import org.eigenbase.sql.SqlCall;
-import org.eigenbase.sql.SqlIdentifier;
-import org.eigenbase.sql.SqlKind;
-import org.eigenbase.sql.SqlLiteral;
-import org.eigenbase.sql.SqlNode;
-import org.eigenbase.sql.SqlNodeList;
-import org.eigenbase.sql.SqlOperator;
-import org.eigenbase.sql.SqlSpecialOperator;
-import org.eigenbase.sql.SqlWriter;
-import org.eigenbase.sql.parser.SqlParserPos;
+import org.apache.calcite.sql.SqlCall;
+import org.apache.calcite.sql.SqlIdentifier;
+import org.apache.calcite.sql.SqlKind;
+import org.apache.calcite.sql.SqlLiteral;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.SqlNodeList;
+import org.apache.calcite.sql.SqlOperator;
+import org.apache.calcite.sql.SqlSpecialOperator;
+import org.apache.calcite.sql.SqlWriter;
+import org.apache.calcite.sql.parser.SqlParserPos;
import java.util.List;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlDescribeTable.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlDescribeTable.java
index 7d464e144..3a09aeaf5 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlDescribeTable.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlDescribeTable.java
@@ -19,22 +19,22 @@ package org.apache.drill.exec.planner.sql.parser;
import java.util.List;
-import net.hydromatic.optiq.tools.Planner;
+import org.apache.calcite.tools.Planner;
import org.apache.drill.exec.ops.QueryContext;
import org.apache.drill.exec.planner.sql.handlers.AbstractSqlHandler;
import org.apache.drill.exec.planner.sql.handlers.DescribeTableHandler;
import org.apache.drill.exec.planner.sql.handlers.SqlHandlerConfig;
-import org.eigenbase.relopt.hep.HepPlanner;
-import org.eigenbase.sql.SqlCall;
-import org.eigenbase.sql.SqlIdentifier;
-import org.eigenbase.sql.SqlKind;
-import org.eigenbase.sql.SqlLiteral;
-import org.eigenbase.sql.SqlNode;
-import org.eigenbase.sql.SqlOperator;
-import org.eigenbase.sql.SqlSpecialOperator;
-import org.eigenbase.sql.SqlWriter;
-import org.eigenbase.sql.parser.SqlParserPos;
+import org.apache.calcite.plan.hep.HepPlanner;
+import org.apache.calcite.sql.SqlCall;
+import org.apache.calcite.sql.SqlIdentifier;
+import org.apache.calcite.sql.SqlKind;
+import org.apache.calcite.sql.SqlLiteral;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.SqlOperator;
+import org.apache.calcite.sql.SqlSpecialOperator;
+import org.apache.calcite.sql.SqlWriter;
+import org.apache.calcite.sql.parser.SqlParserPos;
import com.google.common.collect.Lists;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlDropView.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlDropView.java
index a0d6f7b2d..473dbcbde 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlDropView.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlDropView.java
@@ -20,22 +20,22 @@ package org.apache.drill.exec.planner.sql.parser;
import java.util.Collections;
import java.util.List;
-import net.hydromatic.optiq.tools.Planner;
+import org.apache.calcite.tools.Planner;
import org.apache.drill.exec.ops.QueryContext;
import org.apache.drill.exec.planner.sql.handlers.AbstractSqlHandler;
import org.apache.drill.exec.planner.sql.handlers.SqlHandlerConfig;
import org.apache.drill.exec.planner.sql.handlers.ViewHandler.DropView;
-import org.eigenbase.relopt.hep.HepPlanner;
-import org.eigenbase.sql.SqlCall;
-import org.eigenbase.sql.SqlIdentifier;
-import org.eigenbase.sql.SqlKind;
-import org.eigenbase.sql.SqlLiteral;
-import org.eigenbase.sql.SqlNode;
-import org.eigenbase.sql.SqlOperator;
-import org.eigenbase.sql.SqlSpecialOperator;
-import org.eigenbase.sql.SqlWriter;
-import org.eigenbase.sql.parser.SqlParserPos;
+import org.apache.calcite.plan.hep.HepPlanner;
+import org.apache.calcite.sql.SqlCall;
+import org.apache.calcite.sql.SqlIdentifier;
+import org.apache.calcite.sql.SqlKind;
+import org.apache.calcite.sql.SqlLiteral;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.SqlOperator;
+import org.apache.calcite.sql.SqlSpecialOperator;
+import org.apache.calcite.sql.SqlWriter;
+import org.apache.calcite.sql.parser.SqlParserPos;
import com.google.common.collect.ImmutableList;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlShowFiles.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlShowFiles.java
index 38abfeb83..8df33241b 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlShowFiles.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlShowFiles.java
@@ -20,22 +20,22 @@ package org.apache.drill.exec.planner.sql.parser;
import java.util.Collections;
import java.util.List;
-import net.hydromatic.optiq.tools.Planner;
+import org.apache.calcite.tools.Planner;
import org.apache.drill.exec.ops.QueryContext;
import org.apache.drill.exec.planner.sql.handlers.AbstractSqlHandler;
import org.apache.drill.exec.planner.sql.handlers.ShowFileHandler;
import org.apache.drill.exec.planner.sql.handlers.SqlHandlerConfig;
-import org.eigenbase.relopt.hep.HepPlanner;
-import org.eigenbase.sql.SqlCall;
-import org.eigenbase.sql.SqlIdentifier;
-import org.eigenbase.sql.SqlKind;
-import org.eigenbase.sql.SqlLiteral;
-import org.eigenbase.sql.SqlNode;
-import org.eigenbase.sql.SqlOperator;
-import org.eigenbase.sql.SqlSpecialOperator;
-import org.eigenbase.sql.SqlWriter;
-import org.eigenbase.sql.parser.SqlParserPos;
+import org.apache.calcite.plan.hep.HepPlanner;
+import org.apache.calcite.sql.SqlCall;
+import org.apache.calcite.sql.SqlIdentifier;
+import org.apache.calcite.sql.SqlKind;
+import org.apache.calcite.sql.SqlLiteral;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.SqlOperator;
+import org.apache.calcite.sql.SqlSpecialOperator;
+import org.apache.calcite.sql.SqlWriter;
+import org.apache.calcite.sql.parser.SqlParserPos;
/**
* Sql parse tree node to represent statement:
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlShowSchemas.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlShowSchemas.java
index 9d8771a11..6e95e100c 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlShowSchemas.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlShowSchemas.java
@@ -19,21 +19,21 @@ package org.apache.drill.exec.planner.sql.parser;
import java.util.List;
-import net.hydromatic.optiq.tools.Planner;
+import org.apache.calcite.tools.Planner;
import org.apache.drill.exec.ops.QueryContext;
import org.apache.drill.exec.planner.sql.handlers.AbstractSqlHandler;
import org.apache.drill.exec.planner.sql.handlers.ShowSchemasHandler;
import org.apache.drill.exec.planner.sql.handlers.SqlHandlerConfig;
-import org.eigenbase.relopt.hep.HepPlanner;
-import org.eigenbase.sql.SqlCall;
-import org.eigenbase.sql.SqlKind;
-import org.eigenbase.sql.SqlLiteral;
-import org.eigenbase.sql.SqlNode;
-import org.eigenbase.sql.SqlOperator;
-import org.eigenbase.sql.SqlSpecialOperator;
-import org.eigenbase.sql.SqlWriter;
-import org.eigenbase.sql.parser.SqlParserPos;
+import org.apache.calcite.plan.hep.HepPlanner;
+import org.apache.calcite.sql.SqlCall;
+import org.apache.calcite.sql.SqlKind;
+import org.apache.calcite.sql.SqlLiteral;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.SqlOperator;
+import org.apache.calcite.sql.SqlSpecialOperator;
+import org.apache.calcite.sql.SqlWriter;
+import org.apache.calcite.sql.parser.SqlParserPos;
import com.google.common.collect.Lists;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlShowTables.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlShowTables.java
index da3f0fd1b..4d4ab09e7 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlShowTables.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlShowTables.java
@@ -21,15 +21,15 @@ import com.google.common.collect.Lists;
import org.apache.drill.exec.planner.sql.handlers.AbstractSqlHandler;
import org.apache.drill.exec.planner.sql.handlers.ShowTablesHandler;
import org.apache.drill.exec.planner.sql.handlers.SqlHandlerConfig;
-import org.eigenbase.sql.SqlCall;
-import org.eigenbase.sql.SqlIdentifier;
-import org.eigenbase.sql.SqlKind;
-import org.eigenbase.sql.SqlLiteral;
-import org.eigenbase.sql.SqlNode;
-import org.eigenbase.sql.SqlOperator;
-import org.eigenbase.sql.SqlSpecialOperator;
-import org.eigenbase.sql.SqlWriter;
-import org.eigenbase.sql.parser.SqlParserPos;
+import org.apache.calcite.sql.SqlCall;
+import org.apache.calcite.sql.SqlIdentifier;
+import org.apache.calcite.sql.SqlKind;
+import org.apache.calcite.sql.SqlLiteral;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.SqlOperator;
+import org.apache.calcite.sql.SqlSpecialOperator;
+import org.apache.calcite.sql.SqlWriter;
+import org.apache.calcite.sql.parser.SqlParserPos;
import java.util.List;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlUseSchema.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlUseSchema.java
index c8af0021d..2f8eeb8ee 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlUseSchema.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlUseSchema.java
@@ -20,15 +20,15 @@ package org.apache.drill.exec.planner.sql.parser;
import org.apache.drill.exec.planner.sql.handlers.AbstractSqlHandler;
import org.apache.drill.exec.planner.sql.handlers.SqlHandlerConfig;
import org.apache.drill.exec.planner.sql.handlers.UseSchemaHandler;
-import org.eigenbase.sql.SqlCall;
-import org.eigenbase.sql.SqlIdentifier;
-import org.eigenbase.sql.SqlKind;
-import org.eigenbase.sql.SqlLiteral;
-import org.eigenbase.sql.SqlNode;
-import org.eigenbase.sql.SqlOperator;
-import org.eigenbase.sql.SqlSpecialOperator;
-import org.eigenbase.sql.SqlWriter;
-import org.eigenbase.sql.parser.SqlParserPos;
+import org.apache.calcite.sql.SqlCall;
+import org.apache.calcite.sql.SqlIdentifier;
+import org.apache.calcite.sql.SqlKind;
+import org.apache.calcite.sql.SqlLiteral;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.SqlOperator;
+import org.apache.calcite.sql.SqlSpecialOperator;
+import org.apache.calcite.sql.SqlWriter;
+import org.apache.calcite.sql.parser.SqlParserPos;
import java.util.Collections;
import java.util.List;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/UnsupportedOperatorsVisitor.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/UnsupportedOperatorsVisitor.java
index 4830fe188..45bf26ffa 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/UnsupportedOperatorsVisitor.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/UnsupportedOperatorsVisitor.java
@@ -21,15 +21,15 @@ import org.apache.drill.exec.ExecConstants;
import org.apache.drill.exec.exception.UnsupportedOperatorCollector;
import org.apache.drill.exec.ops.QueryContext;
import org.apache.drill.exec.work.foreman.SqlUnsupportedException;
-import org.eigenbase.sql.SqlCall;
-import org.eigenbase.sql.SqlKind;
-import org.eigenbase.sql.SqlJoin;
-import org.eigenbase.sql.JoinType;
-import org.eigenbase.sql.SqlNode;
-import org.eigenbase.sql.type.SqlTypeName;
-import org.eigenbase.sql.util.SqlShuttle;
-import org.eigenbase.sql.SqlDataTypeSpec;
-import org.eigenbase.sql.SqlSetOperator;
+import org.apache.calcite.sql.SqlCall;
+import org.apache.calcite.sql.SqlKind;
+import org.apache.calcite.sql.SqlJoin;
+import org.apache.calcite.sql.JoinType;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.type.SqlTypeName;
+import org.apache.calcite.sql.util.SqlShuttle;
+import org.apache.calcite.sql.SqlDataTypeSpec;
+import org.apache.calcite.sql.SqlSetOperator;
import java.util.List;
import com.google.common.collect.Lists;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/impl/DrillParserWithCompoundIdConverter.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/impl/DrillParserWithCompoundIdConverter.java
index be333c08b..6048d847a 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/impl/DrillParserWithCompoundIdConverter.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/impl/DrillParserWithCompoundIdConverter.java
@@ -21,15 +21,15 @@ import java.io.Reader;
import org.apache.drill.exec.planner.physical.PlannerSettings;
import org.apache.drill.exec.planner.sql.parser.CompoundIdentifierConverter;
-import org.eigenbase.sql.SqlNode;
-import org.eigenbase.sql.parser.SqlAbstractParserImpl;
-import org.eigenbase.sql.parser.SqlParserImplFactory;
-import org.eigenbase.sql.util.SqlVisitor;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.parser.SqlAbstractParserImpl;
+import org.apache.calcite.sql.parser.SqlParserImplFactory;
+import org.apache.calcite.sql.util.SqlVisitor;
public class DrillParserWithCompoundIdConverter extends DrillParserImpl {
/**
- * {@link org.eigenbase.sql.parser.SqlParserImplFactory} implementation for creating parser.
+ * {@link org.apache.calcite.sql.parser.SqlParserImplFactory} implementation for creating parser.
*/
public static final SqlParserImplFactory FACTORY = new SqlParserImplFactory() {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/torel/ConversionContext.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/torel/ConversionContext.java
index 5f9061a35..4c027e1fc 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/torel/ConversionContext.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/torel/ConversionContext.java
@@ -20,8 +20,7 @@ package org.apache.drill.exec.planner.torel;
import java.util.List;
import java.util.Map;
-import net.hydromatic.optiq.SchemaPlus;
-import net.hydromatic.optiq.prepare.Prepare;
+import org.apache.calcite.prepare.Prepare;
import org.apache.drill.common.expression.LogicalExpression;
import org.apache.drill.common.logical.LogicalPlan;
@@ -43,16 +42,16 @@ import org.apache.drill.exec.planner.logical.DrillSortRel;
import org.apache.drill.exec.planner.logical.DrillUnionRel;
import org.apache.drill.exec.planner.logical.ScanFieldDeterminer;
import org.apache.drill.exec.planner.logical.ScanFieldDeterminer.FieldList;
-import org.eigenbase.rel.InvalidRelException;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptTable;
-import org.eigenbase.relopt.RelOptTable.ToRelContext;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.reltype.RelDataTypeFactory;
-import org.eigenbase.rex.RexBuilder;
-import org.eigenbase.rex.RexNode;
+import org.apache.calcite.rel.InvalidRelException;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptTable;
+import org.apache.calcite.plan.RelOptTable.ToRelContext;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.rex.RexBuilder;
+import org.apache.calcite.rex.RexNode;
public class ConversionContext implements ToRelContext {
static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(ConversionContext.class);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/types/DrillFixedRelDataTypeImpl.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/types/DrillFixedRelDataTypeImpl.java
index d88f883b0..e23b35328 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/types/DrillFixedRelDataTypeImpl.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/types/DrillFixedRelDataTypeImpl.java
@@ -20,13 +20,13 @@ package org.apache.drill.exec.planner.types;
import java.util.Collections;
import java.util.List;
-import org.eigenbase.reltype.RelDataTypeFactory;
-import org.eigenbase.reltype.RelDataTypeField;
-import org.eigenbase.reltype.RelDataTypeFieldImpl;
-import org.eigenbase.reltype.RelDataTypeImpl;
-import org.eigenbase.reltype.RelDataTypePrecedenceList;
-import org.eigenbase.sql.type.SqlTypeExplicitPrecedenceList;
-import org.eigenbase.sql.type.SqlTypeName;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.rel.type.RelDataTypeField;
+import org.apache.calcite.rel.type.RelDataTypeFieldImpl;
+import org.apache.calcite.rel.type.RelDataTypeImpl;
+import org.apache.calcite.rel.type.RelDataTypePrecedenceList;
+import org.apache.calcite.sql.type.SqlTypeExplicitPrecedenceList;
+import org.apache.calcite.sql.type.SqlTypeName;
import com.google.common.collect.Lists;
@@ -54,17 +54,7 @@ public class DrillFixedRelDataTypeImpl extends RelDataTypeImpl {
}
@Override
- public List<RelDataTypeField> getFieldList() {
- return fields;
- }
-
- @Override
- public int getFieldCount() {
- return fields.size();
- }
-
- @Override
- public RelDataTypeField getField(String fieldName, boolean caseSensitive) {
+ public RelDataTypeField getField(String fieldName, boolean caseSensitive, boolean elideRecord) {
// return the field with given name if available.
for (RelDataTypeField f : fields) {
if (fieldName.equalsIgnoreCase(f.getName())) {
@@ -75,6 +65,16 @@ public class DrillFixedRelDataTypeImpl extends RelDataTypeImpl {
}
@Override
+ public List<RelDataTypeField> getFieldList() {
+ return fields;
+ }
+
+ @Override
+ public int getFieldCount() {
+ return fields.size();
+ }
+
+ @Override
public List<String> getFieldNames() {
List<String> fieldNames = Lists.newArrayList();
for (RelDataTypeField f : fields) {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/types/DrillRelDataTypeSystem.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/types/DrillRelDataTypeSystem.java
new file mode 100644
index 000000000..d4c868bdc
--- /dev/null
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/types/DrillRelDataTypeSystem.java
@@ -0,0 +1,39 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.drill.exec.planner.types;
+
+import org.apache.calcite.rel.type.RelDataTypeSystem;
+import org.apache.calcite.rel.type.RelDataTypeSystemImpl;
+import org.apache.calcite.sql.type.SqlTypeName;
+
+public class DrillRelDataTypeSystem extends RelDataTypeSystemImpl {
+
+ public static final RelDataTypeSystem DRILL_REL_DATATYPE_SYSTEM = new DrillRelDataTypeSystem();
+
+ @Override
+ public int getMaxNumericScale() {
+ return 38;
+ }
+
+ @Override
+ public int getMaxNumericPrecision() {
+ return 38;
+ }
+
+}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/types/RelDataTypeDrillImpl.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/types/RelDataTypeDrillImpl.java
index 559cf68ee..25ce5931c 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/types/RelDataTypeDrillImpl.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/types/RelDataTypeDrillImpl.java
@@ -20,13 +20,13 @@ package org.apache.drill.exec.planner.types;
import java.util.Collections;
import java.util.List;
-import org.eigenbase.reltype.RelDataTypeFactory;
-import org.eigenbase.reltype.RelDataTypeFamily;
-import org.eigenbase.reltype.RelDataTypeField;
-import org.eigenbase.reltype.RelDataTypeImpl;
-import org.eigenbase.reltype.RelDataTypePrecedenceList;
-import org.eigenbase.sql.type.SqlTypeExplicitPrecedenceList;
-import org.eigenbase.sql.type.SqlTypeName;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.rel.type.RelDataTypeFamily;
+import org.apache.calcite.rel.type.RelDataTypeField;
+import org.apache.calcite.rel.type.RelDataTypeImpl;
+import org.apache.calcite.rel.type.RelDataTypePrecedenceList;
+import org.apache.calcite.sql.type.SqlTypeExplicitPrecedenceList;
+import org.apache.calcite.sql.type.SqlTypeName;
/* We use an instance of this class as the row type for
* Drill table. Since we don't know the schema before hand
@@ -57,7 +57,7 @@ public class RelDataTypeDrillImpl extends RelDataTypeImpl {
}
@Override
- public RelDataTypeField getField(String fieldName, boolean caseSensitive) {
+ public RelDataTypeField getField(String fieldName, boolean caseSensitive, boolean elideRecord) {
return holder.getField(typeFactory, fieldName);
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/types/RelDataTypeHolder.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/types/RelDataTypeHolder.java
index 1485aa32e..483b2776f 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/types/RelDataTypeHolder.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/types/RelDataTypeHolder.java
@@ -19,10 +19,10 @@ package org.apache.drill.exec.planner.types;
import java.util.List;
-import org.eigenbase.reltype.RelDataTypeFactory;
-import org.eigenbase.reltype.RelDataTypeField;
-import org.eigenbase.reltype.RelDataTypeFieldImpl;
-import org.eigenbase.sql.type.SqlTypeName;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.rel.type.RelDataTypeField;
+import org.apache.calcite.rel.type.RelDataTypeFieldImpl;
+import org.apache.calcite.sql.type.SqlTypeName;
import com.google.common.collect.Lists;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/rpc/user/UserSession.java b/exec/java-exec/src/main/java/org/apache/drill/exec/rpc/user/UserSession.java
index e6317929a..527bac073 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/rpc/user/UserSession.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/rpc/user/UserSession.java
@@ -20,7 +20,7 @@ package org.apache.drill.exec.rpc.user;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
-import net.hydromatic.optiq.SchemaPlus;
+import org.apache.calcite.schema.SchemaPlus;
import org.apache.drill.exec.proto.UserBitShared.UserCredentials;
import org.apache.drill.exec.proto.UserProtos.Property;
@@ -145,7 +145,7 @@ public class UserSession {
/**
* Get default schema from current default schema path and given schema tree.
* @param rootSchema
- * @return A {@link net.hydromatic.optiq.SchemaPlus} object.
+ * @return A {@link org.apache.calcite.schema.SchemaPlus} object.
*/
public SchemaPlus getDefaultSchema(SchemaPlus rootSchema) {
return findSchema(rootSchema, getProp(SCHEMA));
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/FallbackOptionManager.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/FallbackOptionManager.java
index 682bfea79..0af816df2 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/FallbackOptionManager.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/FallbackOptionManager.java
@@ -20,7 +20,7 @@ package org.apache.drill.exec.server.options;
import java.util.Iterator;
import org.apache.drill.exec.server.options.OptionValue.OptionType;
-import org.eigenbase.sql.SqlLiteral;
+import org.apache.calcite.sql.SqlLiteral;
import com.google.common.collect.Iterables;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/OptionManager.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/OptionManager.java
index 0fed1fb12..1bdc10810 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/OptionManager.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/OptionManager.java
@@ -17,12 +17,7 @@
*/
package org.apache.drill.exec.server.options;
-import org.apache.drill.exec.server.options.OptionValue.OptionType;
-import org.apache.drill.exec.server.options.TypeValidators.BooleanValidator;
-import org.apache.drill.exec.server.options.TypeValidators.DoubleValidator;
-import org.apache.drill.exec.server.options.TypeValidators.LongValidator;
-import org.apache.drill.exec.server.options.TypeValidators.StringValidator;
-import org.eigenbase.sql.SqlLiteral;
+import org.apache.calcite.sql.SqlLiteral;
public interface OptionManager extends Iterable<OptionValue> {
public OptionValue getOption(String name);
@@ -32,15 +27,15 @@ public interface OptionManager extends Iterable<OptionValue> {
public OptionManager getSystemManager();
public OptionList getOptionList();
- public boolean getOption(BooleanValidator validator);
- public double getOption(DoubleValidator validator);
- public long getOption(LongValidator validator);
- public String getOption(StringValidator validator);
+ public boolean getOption(TypeValidators.BooleanValidator validator);
+ public double getOption(TypeValidators.DoubleValidator validator);
+ public long getOption(TypeValidators.LongValidator validator);
+ public String getOption(TypeValidators.StringValidator validator);
public interface OptionAdmin {
public void registerOptionType(OptionValidator validator);
public OptionValidator getValidator(String name);
public void validate(OptionValue v) throws SetOptionException;
- public OptionValue validate(String name, SqlLiteral value, OptionType optionType) throws SetOptionException;
+ public OptionValue validate(String name, SqlLiteral value, OptionValue.OptionType optionType) throws SetOptionException;
}
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/OptionValidator.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/OptionValidator.java
index 90ce3a169..31a25fc5e 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/OptionValidator.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/OptionValidator.java
@@ -18,8 +18,7 @@
package org.apache.drill.exec.server.options;
import org.apache.drill.common.exceptions.ExpressionParsingException;
-import org.apache.drill.exec.server.options.OptionValue.OptionType;
-import org.eigenbase.sql.SqlLiteral;
+import org.apache.calcite.sql.SqlLiteral;
/**
* Validates the values provided to Drill options.
@@ -47,7 +46,7 @@ public abstract class OptionValidator {
* while allowing some flexibility for users
* @throws ExpressionParsingException - message to describe error with value, including range or list of expected values
*/
- public abstract OptionValue validate(SqlLiteral value, OptionType optionType) throws ExpressionParsingException;
+ public abstract OptionValue validate(SqlLiteral value, OptionValue.OptionType optionType) throws ExpressionParsingException;
public String getOptionName() {
return optionName;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/SystemOptionManager.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/SystemOptionManager.java
index 3dc7c14f2..a394efe8c 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/SystemOptionManager.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/SystemOptionManager.java
@@ -37,7 +37,7 @@ import org.apache.drill.exec.server.options.TypeValidators.StringValidator;
import org.apache.drill.exec.store.sys.PStore;
import org.apache.drill.exec.store.sys.PStoreConfig;
import org.apache.drill.exec.store.sys.PStoreProvider;
-import org.eigenbase.sql.SqlLiteral;
+import org.apache.calcite.sql.SqlLiteral;
import com.google.common.collect.Maps;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/TypeValidators.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/TypeValidators.java
index e7b1eb3d1..b8597b724 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/TypeValidators.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/TypeValidators.java
@@ -26,9 +26,10 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.drill.common.exceptions.ExpressionParsingException;
import org.apache.drill.exec.server.options.OptionValue.Kind;
import org.apache.drill.exec.server.options.OptionValue.OptionType;
-import org.eigenbase.sql.SqlLiteral;
-import org.eigenbase.sql.type.SqlTypeName;
-import org.eigenbase.util.NlsString;
+
+import org.apache.calcite.sql.type.SqlTypeName;
+import org.apache.calcite.sql.SqlLiteral;
+import org.apache.calcite.util.NlsString;
public class TypeValidators {
// private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TypeValidators.class);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/AbstractSchema.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/AbstractSchema.java
index 9477a5957..2d6ac4f06 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/AbstractSchema.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/AbstractSchema.java
@@ -22,12 +22,12 @@ import java.util.Collections;
import java.util.List;
import java.util.Set;
-import net.hydromatic.linq4j.expressions.DefaultExpression;
-import net.hydromatic.linq4j.expressions.Expression;
-import net.hydromatic.optiq.Function;
-import net.hydromatic.optiq.Schema;
-import net.hydromatic.optiq.SchemaPlus;
-import net.hydromatic.optiq.Table;
+import org.apache.calcite.linq4j.tree.DefaultExpression;
+import org.apache.calcite.linq4j.tree.Expression;
+import org.apache.calcite.schema.Function;
+import org.apache.calcite.schema.Schema;
+import org.apache.calcite.schema.SchemaPlus;
+import org.apache.calcite.schema.Table;
import org.apache.drill.exec.planner.logical.CreateTableEntry;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/PartitionExplorerImpl.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/PartitionExplorerImpl.java
index 024ca09ff..b092ff374 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/PartitionExplorerImpl.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/PartitionExplorerImpl.java
@@ -17,7 +17,7 @@
******************************************************************************/
package org.apache.drill.exec.store;
-import net.hydromatic.optiq.SchemaPlus;
+import org.apache.calcite.schema.SchemaPlus;
import java.util.List;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/RecordDataType.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/RecordDataType.java
index 889db12aa..a562b77ce 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/RecordDataType.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/RecordDataType.java
@@ -18,9 +18,9 @@
package org.apache.drill.exec.store;
import com.google.common.collect.Lists;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.reltype.RelDataTypeFactory;
-import org.eigenbase.sql.type.SqlTypeName;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.sql.type.SqlTypeName;
import java.util.List;
@@ -30,7 +30,7 @@ import java.util.List;
public abstract class RecordDataType {
/**
- * @return the {@link org.eigenbase.sql.type.SqlTypeName} of columns in the table
+ * @return the {@link org.apache.calcite.sql.type.SqlTypeName} of columns in the table
*/
public abstract List<SqlTypeName> getFieldSqlTypeNames();
@@ -40,10 +40,10 @@ public abstract class RecordDataType {
public abstract List<String> getFieldNames();
/**
- * This method constructs a {@link org.eigenbase.reltype.RelDataType} based on the
+ * This method constructs a {@link org.apache.calcite.rel.type.RelDataType} based on the
* {@link org.apache.drill.exec.store.RecordDataType}'s field sql types and field names.
*
- * @param factory helps construct a {@link org.eigenbase.reltype.RelDataType}
+ * @param factory helps construct a {@link org.apache.calcite.rel.type.RelDataType}
* @return the constructed type
*/
public final RelDataType getRowType(RelDataTypeFactory factory) {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/SchemaFactory.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/SchemaFactory.java
index e2dc6135d..b28c3c208 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/SchemaFactory.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/SchemaFactory.java
@@ -17,7 +17,7 @@
*/
package org.apache.drill.exec.store;
-import net.hydromatic.optiq.SchemaPlus;
+import org.apache.calcite.schema.SchemaPlus;
import org.apache.drill.exec.ops.QueryContext;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/StoragePluginOptimizerRule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/StoragePluginOptimizerRule.java
index 32ec6fffa..8b4f0e648 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/StoragePluginOptimizerRule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/StoragePluginOptimizerRule.java
@@ -17,8 +17,8 @@
*/
package org.apache.drill.exec.store;
-import org.eigenbase.relopt.RelOptRule;
-import org.eigenbase.relopt.RelOptRuleOperand;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleOperand;
public abstract class StoragePluginOptimizerRule extends RelOptRule {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/StoragePluginRegistry.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/StoragePluginRegistry.java
index bda4cc844..80a0876ad 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/StoragePluginRegistry.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/StoragePluginRegistry.java
@@ -31,8 +31,8 @@ import java.util.Set;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.TimeUnit;
-import net.hydromatic.optiq.SchemaPlus;
-import net.hydromatic.optiq.tools.RuleSet;
+import org.apache.calcite.schema.SchemaPlus;
+import org.apache.calcite.tools.RuleSet;
import org.apache.drill.common.config.DrillConfig;
import org.apache.drill.common.exceptions.DrillRuntimeException;
@@ -56,7 +56,7 @@ import org.apache.drill.exec.store.sys.PStore;
import org.apache.drill.exec.store.sys.PStoreConfig;
import org.apache.drill.exec.store.sys.SystemTablePlugin;
import org.apache.drill.exec.store.sys.SystemTablePluginConfig;
-import org.eigenbase.relopt.RelOptRule;
+import org.apache.calcite.plan.RelOptRule;
import com.google.common.base.Charsets;
import com.google.common.base.Stopwatch;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/SubSchemaWrapper.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/SubSchemaWrapper.java
index c79255092..4e50bc1cb 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/SubSchemaWrapper.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/SubSchemaWrapper.java
@@ -21,8 +21,9 @@ import java.util.Collection;
import java.util.List;
import java.util.Set;
-import net.hydromatic.optiq.Function;
-import net.hydromatic.optiq.Table;
+import org.apache.calcite.schema.Function;
+import org.apache.calcite.schema.Schema;
+import org.apache.calcite.schema.Table;
import org.apache.drill.exec.planner.logical.CreateTableEntry;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/FileSystemPlugin.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/FileSystemPlugin.java
index 93fb0a08e..4ae0cc8d6 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/FileSystemPlugin.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/FileSystemPlugin.java
@@ -22,7 +22,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
-import net.hydromatic.optiq.SchemaPlus;
+import org.apache.calcite.schema.SchemaPlus;
import org.apache.drill.common.JSONOptions;
import org.apache.drill.common.exceptions.ExecutionSetupException;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/FileSystemSchemaFactory.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/FileSystemSchemaFactory.java
index 30d8d2592..fa9aa892b 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/FileSystemSchemaFactory.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/FileSystemSchemaFactory.java
@@ -23,9 +23,10 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
-import net.hydromatic.optiq.Function;
-import net.hydromatic.optiq.SchemaPlus;
-import net.hydromatic.optiq.Table;
+import org.apache.calcite.schema.Function;
+import org.apache.calcite.schema.Schema;
+import org.apache.calcite.schema.SchemaPlus;
+import org.apache.calcite.schema.Table;
import org.apache.drill.exec.ops.QueryContext;
import org.apache.drill.exec.planner.logical.CreateTableEntry;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/WorkspaceSchemaFactory.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/WorkspaceSchemaFactory.java
index 7cd50b02b..916564df7 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/WorkspaceSchemaFactory.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/WorkspaceSchemaFactory.java
@@ -27,7 +27,7 @@ import java.util.regex.Pattern;
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableList;
-import net.hydromatic.optiq.Table;
+import org.apache.calcite.schema.Table;
import org.apache.drill.common.config.DrillConfig;
import org.apache.drill.common.exceptions.ExecutionSetupException;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/InfoSchemaDrillTable.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/InfoSchemaDrillTable.java
index ab94727ac..423294057 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/InfoSchemaDrillTable.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/InfoSchemaDrillTable.java
@@ -19,8 +19,8 @@ package org.apache.drill.exec.store.ischema;
import org.apache.drill.common.logical.StoragePluginConfig;
import org.apache.drill.exec.planner.logical.DrillTable;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.reltype.RelDataTypeFactory;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
public class InfoSchemaDrillTable extends DrillTable{
static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(InfoSchemaDrillTable.class);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/InfoSchemaPushFilterIntoRecordGenerator.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/InfoSchemaPushFilterIntoRecordGenerator.java
index 61cc47b22..0cf12b4b5 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/InfoSchemaPushFilterIntoRecordGenerator.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/InfoSchemaPushFilterIntoRecordGenerator.java
@@ -27,10 +27,10 @@ import org.apache.drill.exec.planner.physical.FilterPrel;
import org.apache.drill.exec.planner.physical.ProjectPrel;
import org.apache.drill.exec.planner.physical.ScanPrel;
import org.apache.drill.exec.store.StoragePluginOptimizerRule;
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptRuleCall;
-import org.eigenbase.relopt.RelOptRuleOperand;
-import org.eigenbase.rex.RexNode;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelOptRuleOperand;
+import org.apache.calcite.rex.RexNode;
import com.google.common.collect.ImmutableList;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/InfoSchemaStoragePlugin.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/InfoSchemaStoragePlugin.java
index 4dfde7d3d..0a9c32cc9 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/InfoSchemaStoragePlugin.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/InfoSchemaStoragePlugin.java
@@ -23,8 +23,8 @@ import java.util.Map;
import java.util.Set;
import com.google.common.collect.ImmutableSet;
-import net.hydromatic.optiq.SchemaPlus;
-import net.hydromatic.optiq.Table;
+import org.apache.calcite.schema.SchemaPlus;
+import org.apache.calcite.schema.Table;
import org.apache.drill.common.JSONOptions;
import org.apache.drill.common.expression.SchemaPath;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/InfoSchemaTable.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/InfoSchemaTable.java
index 66ba2e3c0..0e9ca538c 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/InfoSchemaTable.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/InfoSchemaTable.java
@@ -22,9 +22,9 @@ import java.util.List;
import org.apache.drill.common.types.TypeProtos.MajorType;
import org.apache.drill.common.types.TypeProtos.MinorType;
import org.apache.drill.common.types.Types;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.reltype.RelDataTypeFactory;
-import org.eigenbase.sql.type.SqlTypeName;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.sql.type.SqlTypeName;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/RecordGenerator.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/RecordGenerator.java
index 5b132c635..772b9e447 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/RecordGenerator.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/RecordGenerator.java
@@ -21,18 +21,18 @@ import java.util.List;
import java.util.Map;
import com.google.common.collect.ImmutableMap;
-import net.hydromatic.optiq.Schema.TableType;
-import net.hydromatic.optiq.SchemaPlus;
-import net.hydromatic.optiq.Table;
-import net.hydromatic.optiq.jdbc.JavaTypeFactoryImpl;
+import org.apache.calcite.schema.Schema.TableType;
+import org.apache.calcite.schema.SchemaPlus;
+import org.apache.calcite.schema.Table;
+import org.apache.calcite.jdbc.JavaTypeFactoryImpl;
import org.apache.drill.exec.planner.logical.DrillViewInfoProvider;
import org.apache.drill.exec.store.AbstractSchema;
import org.apache.drill.exec.store.RecordReader;
import org.apache.drill.exec.store.ischema.InfoSchemaFilter.Result;
import org.apache.drill.exec.store.pojo.PojoRecordReader;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.reltype.RelDataTypeField;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeField;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/Records.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/Records.java
index ec8ee2bb7..f14fa7ec0 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/Records.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/Records.java
@@ -18,9 +18,9 @@
package org.apache.drill.exec.store.ischema;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.reltype.RelDataTypeField;
-import org.eigenbase.sql.type.SqlTypeName;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeField;
+import org.apache.calcite.sql.type.SqlTypeName;
public class Records {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/SelectedTable.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/SelectedTable.java
index 2c0a50318..088736b00 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/SelectedTable.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/SelectedTable.java
@@ -17,7 +17,7 @@
*/
package org.apache.drill.exec.store.ischema;
-import net.hydromatic.optiq.SchemaPlus;
+import org.apache.calcite.schema.SchemaPlus;
import org.apache.drill.exec.store.RecordReader;
import org.apache.drill.exec.store.ischema.InfoSchemaTable.Catalogs;
@@ -25,8 +25,8 @@ import org.apache.drill.exec.store.ischema.InfoSchemaTable.Columns;
import org.apache.drill.exec.store.ischema.InfoSchemaTable.Schemata;
import org.apache.drill.exec.store.ischema.InfoSchemaTable.Tables;
import org.apache.drill.exec.store.ischema.InfoSchemaTable.Views;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.reltype.RelDataTypeFactory;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
public enum SelectedTable{
CATALOGS(new Catalogs()),
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/mock/MockStorageEngine.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/mock/MockStorageEngine.java
index 1689300e3..d68fd5288 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/mock/MockStorageEngine.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/mock/MockStorageEngine.java
@@ -21,7 +21,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-import net.hydromatic.optiq.SchemaPlus;
+import org.apache.calcite.schema.SchemaPlus;
import org.apache.drill.common.JSONOptions;
import org.apache.drill.common.expression.SchemaPath;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/pojo/PojoDataType.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/pojo/PojoDataType.java
index 2acb72760..9b04fd84e 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/pojo/PojoDataType.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/pojo/PojoDataType.java
@@ -22,10 +22,12 @@ import java.lang.reflect.Modifier;
import java.sql.Timestamp;
import java.util.List;
-import org.apache.drill.exec.store.RecordDataType;
-import org.eigenbase.sql.type.SqlTypeName;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.sql.type.SqlTypeName;
import com.google.common.collect.Lists;
+import org.apache.drill.exec.store.RecordDataType;
/**
* This class uses reflection of a Java class to construct a {@link org.apache.drill.exec.store.RecordDataType}.
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/StaticDrillTable.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/StaticDrillTable.java
index d9374cb0e..8b7225ebb 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/StaticDrillTable.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/StaticDrillTable.java
@@ -20,8 +20,9 @@ package org.apache.drill.exec.store.sys;
import org.apache.drill.exec.planner.logical.DrillTable;
import org.apache.drill.exec.store.RecordDataType;
import org.apache.drill.exec.store.StoragePlugin;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.reltype.RelDataTypeFactory;
+import org.apache.drill.exec.store.pojo.PojoDataType;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
/**
* A {@link org.apache.drill.exec.planner.logical.DrillTable} with a defined schema
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/SystemTable.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/SystemTable.java
index e2ac9ed37..9a5aa655b 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/SystemTable.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/SystemTable.java
@@ -22,6 +22,10 @@ import org.apache.drill.exec.ops.FragmentContext;
import org.apache.drill.exec.server.options.DrillConfigIterator;
import org.apache.drill.exec.server.options.OptionManager;
import org.apache.drill.exec.server.options.OptionValue;
+import org.apache.drill.exec.store.RecordDataType;
+import org.apache.drill.exec.store.pojo.PojoDataType;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
import java.util.Iterator;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/SystemTablePlugin.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/SystemTablePlugin.java
index a13c945f0..bac02cada 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/SystemTablePlugin.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/SystemTablePlugin.java
@@ -25,7 +25,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Sets;
-import net.hydromatic.optiq.SchemaPlus;
+import org.apache.calcite.schema.SchemaPlus;
import org.apache.drill.common.JSONOptions;
import org.apache.drill.common.expression.SchemaPath;
import org.apache.drill.common.logical.StoragePluginConfig;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/UnsupportedDataTypeException.java b/exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/UnsupportedDataTypeException.java
index 305e6d3d2..ca1628377 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/UnsupportedDataTypeException.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/UnsupportedDataTypeException.java
@@ -17,7 +17,7 @@
*/
package org.apache.drill.exec.work.foreman;
-import org.eigenbase.sql.SqlDataTypeSpec;
+import org.apache.calcite.sql.SqlDataTypeSpec;
public class UnsupportedDataTypeException extends SqlUnsupportedException {
public UnsupportedDataTypeException(String drillJiraNumber, String message) {
diff --git a/exec/java-exec/src/test/java/org/apache/drill/PlanTestBase.java b/exec/java-exec/src/test/java/org/apache/drill/PlanTestBase.java
index 474497851..f9096814a 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/PlanTestBase.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/PlanTestBase.java
@@ -31,8 +31,8 @@ import org.apache.drill.exec.record.VectorWrapper;
import org.apache.drill.exec.rpc.user.QueryDataBatch;
import org.apache.drill.exec.vector.NullableVarCharVector;
import org.apache.drill.exec.vector.ValueVector;
-import org.eigenbase.sql.SqlExplain.Depth;
-import org.eigenbase.sql.SqlExplainLevel;
+import org.apache.calcite.sql.SqlExplain.Depth;
+import org.apache.calcite.sql.SqlExplainLevel;
import com.google.common.base.Strings;
diff --git a/exec/java-exec/src/test/java/org/apache/drill/PlanningBase.java b/exec/java-exec/src/test/java/org/apache/drill/PlanningBase.java
index e7f689617..e0ca68e26 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/PlanningBase.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/PlanningBase.java
@@ -22,8 +22,8 @@ import java.net.URL;
import mockit.Mocked;
import mockit.NonStrictExpectations;
-import net.hydromatic.optiq.SchemaPlus;
-import net.hydromatic.optiq.jdbc.SimpleOptiqSchema;
+import org.apache.calcite.schema.SchemaPlus;
+import org.apache.calcite.jdbc.SimpleCalciteSchema;
import org.apache.drill.common.config.DrillConfig;
import org.apache.drill.common.util.TestTools;
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/planner/logical/FilterSplitTest.java b/exec/java-exec/src/test/java/org/apache/drill/exec/planner/logical/FilterSplitTest.java
index 7c85c1978..41414c903 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/planner/logical/FilterSplitTest.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/planner/logical/FilterSplitTest.java
@@ -21,15 +21,15 @@ import static org.junit.Assert.*;
import java.util.BitSet;
-import net.hydromatic.optiq.impl.java.JavaTypeFactory;
-import net.hydromatic.optiq.jdbc.JavaTypeFactoryImpl;
+import org.apache.calcite.adapter.java.JavaTypeFactory;
+import org.apache.calcite.jdbc.JavaTypeFactoryImpl;
import org.apache.drill.exec.planner.logical.partition.FindPartitionConditions;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.rex.RexBuilder;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.sql.fun.SqlStdOperatorTable;
-import org.eigenbase.sql.type.SqlTypeName;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rex.RexBuilder;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.sql.fun.SqlStdOperatorTable;
+import org.apache.calcite.sql.type.SqlTypeName;
import org.junit.Test;
public class FilterSplitTest {
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/sql/TestSqlBracketlessSyntax.java b/exec/java-exec/src/test/java/org/apache/drill/exec/sql/TestSqlBracketlessSyntax.java
index a5bcdecb0..4a3323d03 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/sql/TestSqlBracketlessSyntax.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/sql/TestSqlBracketlessSyntax.java
@@ -17,19 +17,19 @@
*/
package org.apache.drill.exec.sql;
-import net.hydromatic.optiq.config.Lex;
-import net.hydromatic.optiq.jdbc.SimpleOptiqSchema;
-import net.hydromatic.optiq.tools.FrameworkConfig;
-import net.hydromatic.optiq.tools.Frameworks;
-import net.hydromatic.optiq.tools.Planner;
+import org.apache.calcite.config.Lex;
+import org.apache.calcite.jdbc.SimpleCalciteSchema;
+import org.apache.calcite.tools.FrameworkConfig;
+import org.apache.calcite.tools.Frameworks;
+import org.apache.calcite.tools.Planner;
import org.apache.drill.exec.planner.physical.PlannerSettings;
import org.apache.drill.exec.planner.sql.DrillConvertletTable;
import org.apache.drill.exec.planner.sql.parser.CompoundIdentifierConverter;
import org.apache.drill.exec.planner.sql.parser.impl.DrillParserImpl;
import org.apache.drill.test.DrillAssert;
-import org.eigenbase.sql.SqlNode;
-import org.eigenbase.sql.parser.SqlParser;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.parser.SqlParser;
import org.junit.Test;
public class TestSqlBracketlessSyntax {
@@ -38,9 +38,12 @@ public class TestSqlBracketlessSyntax {
@Test
public void checkComplexExpressionParsing() throws Exception{
FrameworkConfig config = Frameworks.newConfigBuilder() //
- .parserConfig(new SqlParser.ParserConfigImpl(Lex.MYSQL, PlannerSettings.DEFAULT_IDENTIFIER_MAX_LENGTH))
- .parserFactory(DrillParserImpl.FACTORY) //
- .defaultSchema(SimpleOptiqSchema.createRootSchema(false)) //
+ .parserConfig(SqlParser.configBuilder()
+ .setLex(Lex.MYSQL)
+ .setIdentifierMaxLength(PlannerSettings.DEFAULT_IDENTIFIER_MAX_LENGTH)
+ .setParserFactory(DrillParserImpl.FACTORY)
+ .build()) //
+ .defaultSchema(SimpleCalciteSchema.createRootSchema(false)) //
.convertletTable(new DrillConvertletTable()) //
.build();
Planner planner = Frameworks.getPlanner(config);