merge master
Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/3ac277ce Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/3ac277ce Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/3ac277ce Branch: refs/heads/ecarm002/interval_join_merge Commit: 3ac277ce9d4a7c420805470f73f2978e8e8c3116 Parents: c2e48a7 c89d668 Author: Preston Carman <prest...@apache.org> Authored: Wed Sep 7 11:09:50 2016 -0700 Committer: Preston Carman <prest...@apache.org> Committed: Wed Sep 7 11:09:50 2016 -0700 ---------------------------------------------------------------------- .../asterix/optimizer/base/RuleCollections.java | 2 + .../rules/am/InvertedIndexAccessMethod.java | 7 +- .../subplan/InlineAllNtsInSubplanVisitor.java | 16 +- ...ineSubplanInputForNestedTupleSourceRule.java | 154 +++++----- .../rules/subplan/SubplanFlatteningUtil.java | 78 +++-- .../LangExpressionToPlanTranslator.java | 29 +- .../queries/join-singletonbranch-2.sqlpp | 43 +++ .../queries/join-singletonbranch-3.sqlpp | 42 +++ .../queries/join-singletonbranch.sqlpp | 41 +++ .../tpcds/query-ASTERIXDB-1581-correlated.sqlpp | 96 +++++++ .../queries/tpcds/query-ASTERIXDB-1581.sqlpp | 96 +++++++ .../optimizerts/results/filter-nested.plan | 4 +- .../results/join-singletonbranch-2.plan | 28 ++ .../results/join-singletonbranch-3.plan | 23 ++ .../results/join-singletonbranch.plan | 28 ++ .../optimizerts/results/nest_aggregate.plan | 6 +- .../tpcds/query-ASTERIXDB-1581-correlated.plan | 281 +++++++++++++++++++ .../results/tpcds/query-ASTERIXDB-1581.plan | 180 ++++++++++++ .../results/udfs/query-ASTERIXDB-1018.plan | 79 +++--- .../results/udfs/query-ASTERIXDB-1019.plan | 79 +++--- .../aggregate_join/aggregate_join.1.ddl.sqlpp | 31 ++ .../aggregate_join.2.update.sqlpp | 23 ++ .../aggregate_join/aggregate_join.3.query.sqlpp | 26 ++ .../aggregate_join_external.1.ddl.sqlpp | 55 ++++ .../aggregate_join_external.3.query.sqlpp | 27 ++ .../query-ASTERIXDB-1581-2.1.ddl.sqlpp | 82 ++++++ .../query-ASTERIXDB-1581-2.2.update.sqlpp | 26 ++ .../query-ASTERIXDB-1581-2.3.query.sqlpp | 33 +++ .../query-ASTERIXDB-1581-3.1.ddl.sqlpp | 82 ++++++ .../query-ASTERIXDB-1581-3.2.update.sqlpp | 26 ++ .../query-ASTERIXDB-1581-3.3.query.sqlpp | 32 +++ .../query-ASTERIXDB-1581-4.1.ddl.sqlpp | 82 ++++++ .../query-ASTERIXDB-1581-4.2.update.sqlpp | 26 ++ .../query-ASTERIXDB-1581-4.3.query.sqlpp | 32 +++ .../query-ASTERIXDB-1581-5.1.ddl.sqlpp | 82 ++++++ .../query-ASTERIXDB-1581-5.2.update.sqlpp | 26 ++ .../query-ASTERIXDB-1581-5.3.query.sqlpp | 32 +++ .../query-ASTERIXDB-1581-6.1.ddl.sqlpp | 82 ++++++ .../query-ASTERIXDB-1581-6.2.update.sqlpp | 26 ++ .../query-ASTERIXDB-1581-6.3.query.sqlpp | 35 +++ ...uery-ASTERIXDB-1581-correlated-2.1.ddl.sqlpp | 82 ++++++ ...y-ASTERIXDB-1581-correlated-2.2.update.sqlpp | 26 ++ ...ry-ASTERIXDB-1581-correlated-2.3.query.sqlpp | 34 +++ .../query-ASTERIXDB-1581-correlated.1.ddl.sqlpp | 82 ++++++ ...ery-ASTERIXDB-1581-correlated.2.update.sqlpp | 26 ++ ...uery-ASTERIXDB-1581-correlated.3.query.sqlpp | 34 +++ .../query-ASTERIXDB-1581.1.ddl.sqlpp | 82 ++++++ .../query-ASTERIXDB-1581.2.update.sqlpp | 26 ++ .../query-ASTERIXDB-1581.3.query.sqlpp | 29 ++ .../aggregate_join/aggregate_join.1.adm | 1 + .../aggregate_join_external.1.adm | 5 + .../query-ASTERIXDB-1581-2.1.adm | 1 + .../query-ASTERIXDB-1581-4.1.adm | 1 + .../query-ASTERIXDB-1581-6.1.adm | 1 + .../query-ASTERIXDB-1581-correlated.1.adm | 1 + .../query-ASTERIXDB-1581.1.adm | 1 + .../resources/runtimets/testsuite_sqlpp.xml | 50 ++++ .../metadata/declared/AqlDataSource.java | 1 + .../core/algebra/metadata/IDataSource.java | 3 + .../visitors/CardinalityInferenceVisitor.java | 162 +++++++++-- .../IsomorphismVariableMappingVisitor.java | 29 +- ...OperatorDeepCopyWithNewVariablesVisitor.java | 34 ++- .../logical/visitors/VariableUtilities.java | 23 +- .../physical/DataSourceScanPOperator.java | 25 ++ .../physical/EmptyTupleSourcePOperator.java | 4 +- .../algebra/util/OperatorManipulationUtil.java | 3 +- .../algebra/util/OperatorPropertiesUtil.java | 7 +- .../piglet/metadata/PigletFileDataSource.java | 7 + .../rules/EnforceStructuralPropertiesRule.java | 14 +- ...moveCartesianProductWithEmptyBranchRule.java | 6 +- .../rules/SimpleUnnestToProductRule.java | 74 +++-- .../rules/SwitchInnerJoinBranchRule.java | 61 ++++ ...inateSubplanWithInputCardinalityOneRule.java | 2 +- ...placeNtsWithSubplanInputOperatorVisitor.java | 3 +- 74 files changed, 2823 insertions(+), 295 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3ac277ce/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3ac277ce/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineAllNtsInSubplanVisitor.java ---------------------------------------------------------------------- diff --cc asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineAllNtsInSubplanVisitor.java index 8f54972,8e5fa79..975eeac --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineAllNtsInSubplanVisitor.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineAllNtsInSubplanVisitor.java @@@ -66,10 -67,8 +67,9 @@@ import org.apache.hyracks.algebricks.co import org.apache.hyracks.algebricks.core.algebra.operators.logical.MaterializeOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.NestedTupleSourceOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.OrderOperator; - import org.apache.hyracks.algebricks.core.algebra.operators.logical.OrderOperator.IOrder; import org.apache.hyracks.algebricks.core.algebra.operators.logical.PartitioningSplitOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ProjectOperator; +import org.apache.hyracks.algebricks.core.algebra.operators.logical.RangeForwardOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ReplicateOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.RunningAggregateOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ScriptOperator; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3ac277ce/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/CardinalityInferenceVisitor.java ---------------------------------------------------------------------- diff --cc hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/CardinalityInferenceVisitor.java index 58f6e5d,ae98d05..3a48dca --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/CardinalityInferenceVisitor.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/CardinalityInferenceVisitor.java @@@ -40,10 -48,8 +48,9 @@@ import org.apache.hyracks.algebricks.co import org.apache.hyracks.algebricks.core.algebra.operators.logical.MaterializeOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.NestedTupleSourceOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.OrderOperator; - import org.apache.hyracks.algebricks.core.algebra.operators.logical.LeftOuterUnnestOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.PartitioningSplitOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ProjectOperator; +import org.apache.hyracks.algebricks.core.algebra.operators.logical.RangeForwardOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ReplicateOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.RunningAggregateOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ScriptOperator; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3ac277ce/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/IsomorphismVariableMappingVisitor.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3ac277ce/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalOperatorDeepCopyWithNewVariablesVisitor.java ---------------------------------------------------------------------- diff --cc hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalOperatorDeepCopyWithNewVariablesVisitor.java index 7a5a89a,54acf2f..3beff19 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalOperatorDeepCopyWithNewVariablesVisitor.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalOperatorDeepCopyWithNewVariablesVisitor.java @@@ -51,11 -52,8 +52,9 @@@ import org.apache.hyracks.algebricks.co import org.apache.hyracks.algebricks.core.algebra.operators.logical.MaterializeOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.NestedTupleSourceOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.OrderOperator; - import org.apache.hyracks.algebricks.core.algebra.operators.logical.OrderOperator.IOrder; - import org.apache.hyracks.algebricks.core.algebra.operators.logical.LeftOuterUnnestOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.PartitioningSplitOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ProjectOperator; +import org.apache.hyracks.algebricks.core.algebra.operators.logical.RangeForwardOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ReplicateOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.RunningAggregateOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ScriptOperator; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3ac277ce/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/util/OperatorPropertiesUtil.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3ac277ce/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/EnforceStructuralPropertiesRule.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3ac277ce/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/subplan/ReplaceNtsWithSubplanInputOperatorVisitor.java ----------------------------------------------------------------------