Repository: drill Updated Branches: refs/heads/master fb1d3f384 -> 45a82c457
DRILL-1169: Add Calcite's UnionToDistinctRule to DrillRuleSets to implement Union-Distinct Project: http://git-wip-us.apache.org/repos/asf/drill/repo Commit: http://git-wip-us.apache.org/repos/asf/drill/commit/45a82c45 Tree: http://git-wip-us.apache.org/repos/asf/drill/tree/45a82c45 Diff: http://git-wip-us.apache.org/repos/asf/drill/diff/45a82c45 Branch: refs/heads/master Commit: 45a82c4577b0c582202e02f5401a559b669dc992 Parents: fb1d3f3 Author: Hsuan-Yi Chu <[email protected]> Authored: Wed Jun 3 16:55:42 2015 -0700 Committer: Jinfeng Ni <[email protected]> Committed: Fri Jun 12 14:19:03 2015 -0700 ---------------------------------------------------------------------- .../exec/planner/logical/DrillRuleSets.java | 8 +- .../exec/planner/logical/DrillUnionAllRule.java | 67 ++ .../exec/planner/logical/DrillUnionRel.java | 2 + .../exec/planner/logical/DrillUnionRule.java | 61 -- .../sql/parser/UnsupportedOperatorsVisitor.java | 11 - .../apache/drill/TestDisabledFunctionality.java | 18 - .../org/apache/drill/TestUnionDistinct.java | 683 +++++++++++++++++++ .../TestUnionDistinctQueries/q1.tsv | 5 + .../TestUnionDistinctQueries/q10.tsv | 30 + .../TestUnionDistinctQueries/q11.tsv | 30 + .../TestUnionDistinctQueries/q12.tsv | 30 + .../TestUnionDistinctQueries/q13.tsv | 20 + .../TestUnionDistinctQueries/q14.tsv | 30 + .../TestUnionDistinctQueries/q15.tsv | 8 + .../TestUnionDistinctQueries/q16.tsv | 3 + .../TestUnionDistinctQueries/q17.tsv | 5 + .../TestUnionDistinctQueries/q18_1.tsv | 4 + .../TestUnionDistinctQueries/q18_2.tsv | 13 + .../TestUnionDistinctQueries/q18_3.tsv | 13 + .../TestUnionDistinctQueries/q2.tsv | 4 + .../TestUnionDistinctQueries/q3.tsv | 5 + .../TestUnionDistinctQueries/q4.tsv | 25 + .../TestUnionDistinctQueries/q5.tsv | 5 + .../TestUnionDistinctQueries/q6.tsv | 6 + .../TestUnionDistinctQueries/q6_1.tsv | 25 + .../TestUnionDistinctQueries/q7.tsv | 2 + .../TestUnionDistinctQueries/q8.tsv | 30 + .../TestUnionDistinctQueries/q9.tsv | 20 + ...testAggregationOnUnionDistinctOperator_1.tsv | 4 + ...testAggregationOnUnionDistinctOperator_2.tsv | 4 + ...jectDownOverUnionDistinctImplicitCasting.tsv | 10 + ...tProjectFiltertPushDownOverUnionDistinct.tsv | 6 + ...jectPushDownOverUnionDistinctWithProject.tsv | 30 + ...tPushDownOverUnionDistinctWithoutProject.tsv | 30 + ...tPushDownProjectColumnReorderingAndAlias.tsv | 30 + ...tWithExpressionPushDownOverUnionDistinct.tsv | 30 + 36 files changed, 1214 insertions(+), 93 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillRuleSets.java ---------------------------------------------------------------------- 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 655ad92..d9b1354 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 @@ -28,6 +28,7 @@ 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.rel.rules.UnionToDistinctRule; import org.apache.calcite.tools.RuleSet; import org.apache.calcite.rel.rules.FilterMergeRule; @@ -121,6 +122,9 @@ public class DrillRuleSets { if (DRILL_BASIC_RULES == null) { DRILL_BASIC_RULES = new DrillRuleSet(ImmutableSet.<RelOptRule> builder().add( // + // Add support for Distinct Union (by using Union-All followed by Distinct) + UnionToDistinctRule.INSTANCE, + // Add support for WHERE style joins. DrillFilterJoinRules.DRILL_FILTER_ON_JOIN, DrillFilterJoinRules.DRILL_JOIN, @@ -165,7 +169,7 @@ public class DrillRuleSets { DrillLimitRule.INSTANCE, DrillSortRule.INSTANCE, DrillJoinRule.INSTANCE, - DrillUnionRule.INSTANCE, + DrillUnionAllRule.INSTANCE, DrillValuesRule.INSTANCE ) .build()); @@ -208,8 +212,6 @@ public class DrillRuleSets { ruleList.add(UnionAllPrule.INSTANCE); ruleList.add(ValuesPrule.INSTANCE); - // ruleList.add(UnionDistinctPrule.INSTANCE); - if (ps.isHashAggEnabled()) { ruleList.add(HashAggPrule.INSTANCE); } http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillUnionAllRule.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillUnionAllRule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillUnionAllRule.java new file mode 100644 index 0000000..10c0118 --- /dev/null +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillUnionAllRule.java @@ -0,0 +1,67 @@ +/** + * 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.logical; + +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Logger; + +import org.apache.drill.exec.planner.common.DrillUnionRelBase; +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 LogicalUnion} to a {@link DrillUnionRelBase}, implemented by a "union" operation. + */ +public class DrillUnionAllRule extends RelOptRule { + public static final RelOptRule INSTANCE = new DrillUnionAllRule(); + protected static final Logger tracer = CalciteTrace.getPlannerTracer(); + + private DrillUnionAllRule() { + super(RelOptHelper.any(LogicalUnion.class, Convention.NONE), "DrillUnionRule"); + } + + @Override + public void onMatch(RelOptRuleCall call) { + final LogicalUnion union = (LogicalUnion) call.rel(0); + + // This rule applies to Union-All only + if(!union.all) { + return; + } + + final RelTraitSet traits = union.getTraitSet().plus(DrillRel.DRILL_LOGICAL); + final List<RelNode> convertedInputs = new ArrayList<>(); + for (RelNode input : union.getInputs()) { + final RelNode convertedInput = convert(input, input.getTraitSet().plus(DrillRel.DRILL_LOGICAL)); + convertedInputs.add(convertedInput); + } + try { + call.transformTo(new DrillUnionRel(union.getCluster(), traits, convertedInputs, union.all, + true /* check compatibility */)); + } catch (InvalidRelException e) { + tracer.warning(e.toString()) ; + } + } +} http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillUnionRel.java ---------------------------------------------------------------------- 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 566c558..905b3df 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 @@ -24,6 +24,8 @@ 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.cost.DrillCostBase; +import org.apache.drill.exec.planner.cost.DrillRelOptCostFactory; import org.apache.drill.exec.planner.torel.ConversionContext; import org.apache.calcite.rel.InvalidRelException; import org.apache.calcite.rel.RelNode; http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillUnionRule.java ---------------------------------------------------------------------- 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 deleted file mode 100644 index e0f9e2d..0000000 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillUnionRule.java +++ /dev/null @@ -1,61 +0,0 @@ -/** - * 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.logical; - -import java.util.ArrayList; -import java.util.List; -import java.util.logging.Logger; - -import org.apache.drill.exec.planner.common.DrillUnionRelBase; -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 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 = CalciteTrace.getPlannerTracer(); - - private DrillUnionRule() { - super(RelOptHelper.any(LogicalUnion.class, Convention.NONE), "DrillUnionRule"); - } - - @Override - public void onMatch(RelOptRuleCall call) { - 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()) { - final RelNode convertedInput = convert(input, input.getTraitSet().plus(DrillRel.DRILL_LOGICAL)); - convertedInputs.add(convertedInput); - } - try { - call.transformTo(new DrillUnionRel(union.getCluster(), traits, convertedInputs, union.all, - true /* check compatibility */)); - } catch (InvalidRelException e) { - tracer.warning(e.toString()) ; - } - } -} http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/UnsupportedOperatorsVisitor.java ---------------------------------------------------------------------- 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 b92de3b..f3c54cc 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 @@ -138,17 +138,6 @@ public class UnsupportedOperatorsVisitor extends SqlShuttle { throw new UnsupportedOperationException(); } - // Disable unsupported Union - if(sqlCall.getKind() == SqlKind.UNION) { - SqlSetOperator op = (SqlSetOperator) sqlCall.getOperator(); - if(!op.isAll()) { - unsupportedOperatorCollector.setException(SqlUnsupportedException.ExceptionType.RELATIONAL, - sqlCall.getOperator().getName() + " is not supported\n" + - "See Apache Drill JIRA: DRILL-1921"); - throw new UnsupportedOperationException(); - } - } - // Disable unsupported JOINs if(sqlCall.getKind() == SqlKind.JOIN) { SqlJoin join = (SqlJoin) sqlCall; http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/java/org/apache/drill/TestDisabledFunctionality.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/java/org/apache/drill/TestDisabledFunctionality.java b/exec/java-exec/src/test/java/org/apache/drill/TestDisabledFunctionality.java index 5d8cd95..f53cc0f 100644 --- a/exec/java-exec/src/test/java/org/apache/drill/TestDisabledFunctionality.java +++ b/exec/java-exec/src/test/java/org/apache/drill/TestDisabledFunctionality.java @@ -77,24 +77,6 @@ public class TestDisabledFunctionality extends BaseTestQuery{ } } - @Test(expected = UnsupportedRelOperatorException.class) // see DRILL-1921 - public void testDisabledUnion() throws Exception { - try { - test("(select n_name as name from cp.`tpch/nation.parquet`) UNION (select r_name as name from cp.`tpch/region.parquet`)"); - } catch(UserException ex) { - throwAsUnsupportedException(ex); - } - } - - @Test(expected = UnsupportedRelOperatorException.class) // see DRILL-1921 - public void testDisabledUnionDistinct() throws Exception { - try { - test("(select n_name as name from cp.`tpch/nation.parquet`) UNION DISTINCT (select r_name as name from cp.`tpch/region.parquet`)"); - } catch(UserException ex) { - throwAsUnsupportedException(ex); - } - } - @Test(expected = UnsupportedRelOperatorException.class) // see DRILL-1921 public void testDisabledIntersect() throws Exception { try { http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/java/org/apache/drill/TestUnionDistinct.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/java/org/apache/drill/TestUnionDistinct.java b/exec/java-exec/src/test/java/org/apache/drill/TestUnionDistinct.java new file mode 100644 index 0000000..8f85b4d --- /dev/null +++ b/exec/java-exec/src/test/java/org/apache/drill/TestUnionDistinct.java @@ -0,0 +1,683 @@ +/** + * 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; + +import org.apache.drill.common.exceptions.UserException; +import org.apache.drill.common.types.TypeProtos; +import org.apache.drill.common.util.FileUtils; +import org.apache.drill.exec.work.foreman.SqlUnsupportedException; +import org.apache.drill.exec.work.foreman.UnsupportedRelOperatorException; +import org.junit.Test; + +public class TestUnionDistinct extends BaseTestQuery { + private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestUnionDistinct.class); + + @Test // Simple Unionover two scans + public void testUnionDistinct1() throws Exception { + String query = "(select n_regionkey from cp.`tpch/nation.parquet`) union (select r_regionkey from cp.`tpch/region.parquet`)"; + + testBuilder() + .sqlQuery(query) + .unOrdered() + .csvBaselineFile("testframework/testUnionDistinctQueries/q1.tsv") + .baselineTypes(TypeProtos.MinorType.INT) + .baselineColumns("n_regionkey") + .build() + .run(); + } + + @Test // Union over inner joins + public void testUnionDistinct2() throws Exception { + String query = "select n1.n_nationkey from cp.`tpch/nation.parquet` n1 inner join cp.`tpch/region.parquet` r1 on n1.n_regionkey = r1.r_regionkey where n1.n_nationkey in (1, 2) \n" + + "union \n" + + "select n2.n_nationkey from cp.`tpch/nation.parquet` n2 inner join cp.`tpch/region.parquet` r2 on n2.n_regionkey = r2.r_regionkey where n2.n_nationkey in (1, 2, 3, 4)"; + + testBuilder() + .sqlQuery(query) + .unOrdered() + .csvBaselineFile("testframework/testUnionDistinctQueries/q2.tsv") + .baselineTypes(TypeProtos.MinorType.INT) + .baselineColumns("n_nationkey") + .build() + .run(); + } + + @Test // Union over grouped aggregates + public void testUnionDistinct3() throws Exception { + String query = "select n1.n_nationkey from cp.`tpch/nation.parquet` n1 where n1.n_nationkey in (1, 2) group by n1.n_nationkey \n" + + "union \n" + + "select r1.r_regionkey from cp.`tpch/region.parquet` r1 group by r1.r_regionkey"; + + testBuilder() + .sqlQuery(query) + .unOrdered() + .csvBaselineFile("testframework/testUnionDistinctQueries/q3.tsv") + .baselineTypes(TypeProtos.MinorType.INT) + .baselineColumns("n_nationkey") + .build() + .run(); + } + + @Test // Chain of Unions + public void testUnionDistinct4() throws Exception { + String query = "select n_regionkey from cp.`tpch/nation.parquet` \n" + + "union select r_regionkey from cp.`tpch/region.parquet` \n" + + "union select n_nationkey from cp.`tpch/nation.parquet` \n" + + "union select c_custkey from cp.`tpch/customer.parquet` where c_custkey < 5"; + + testBuilder() + .sqlQuery(query) + .unOrdered() + .csvBaselineFile("testframework/testUnionDistinctQueries/q4.tsv") + .baselineTypes(TypeProtos.MinorType.INT) + .baselineColumns("n_regionkey") + .build() + .run(); + } + + @Test // Union of all columns in the table + public void testUnionDistinct5() throws Exception { + String query = "select r_name, r_comment, r_regionkey from cp.`tpch/region.parquet` r1 \n" + + "union \n" + + "select r_name, r_comment, r_regionkey from cp.`tpch/region.parquet` r2"; + + testBuilder() + .sqlQuery(query) + .unOrdered() + .csvBaselineFile("testframework/testUnionDistinctQueries/q5.tsv") + .baselineTypes(TypeProtos.MinorType.VARCHAR, TypeProtos.MinorType.VARCHAR, TypeProtos.MinorType.INT) + .baselineColumns("r_name", "r_comment", "r_regionkey") + .build() + .run(); + } + + @Test // Union-Distinct where same column is projected twice in right child + public void testUnionDistinct6() throws Exception { + String query = "select n_nationkey, n_regionkey from cp.`tpch/nation.parquet` where n_regionkey = 1 \n" + + "union \n" + + "select r_regionkey, r_regionkey from cp.`tpch/region.parquet` where r_regionkey = 2"; + + testBuilder() + .sqlQuery(query) + .unOrdered() + .csvBaselineFile("testframework/testUnionDistinctQueries/q6.tsv") + .baselineTypes(TypeProtos.MinorType.INT, TypeProtos.MinorType.INT) + .baselineColumns("n_nationkey", "n_regionkey") + .build() + .run(); + } + + @Test // Union-Distinct where same column is projected twice in left and right child + public void testUnionDistinct6_1() throws Exception { + String query = "select n_nationkey, n_nationkey from cp.`tpch/nation.parquet` union \n" + + "select r_regionkey, r_regionkey from cp.`tpch/region.parquet`"; + + testBuilder() + .sqlQuery(query) + .unOrdered() + .csvBaselineFile("testframework/testUnionDistinctQueries/q6_1.tsv") + .baselineTypes(TypeProtos.MinorType.INT, TypeProtos.MinorType.INT) + .baselineColumns("n_nationkey", "n_nationkey0") + .build() + .run(); + } + + @Test // Union-Distinct of two string literals of different lengths + public void testUnionDistinct7() throws Exception { + String query = "select 'abc' as col from cp.`tpch/region.parquet` union \n" + + "select 'abcdefgh' from cp.`tpch/region.parquet`"; + + testBuilder() + .sqlQuery(query) + .unOrdered() + .csvBaselineFile("testframework/testUnionDistinctQueries/q7.tsv") + .baselineTypes(TypeProtos.MinorType.VARCHAR) + .baselineColumns("col") + .build() + .run(); + } + + @Test // Union-Distinct of two character columns of different lengths + public void testUnionDistinct8() throws Exception { + String query = "select n_name, n_nationkey from cp.`tpch/nation.parquet` union \n" + + "select r_comment, r_regionkey from cp.`tpch/region.parquet`"; + + testBuilder() + .sqlQuery(query) + .unOrdered() + .csvBaselineFile("testframework/testUnionDistinctQueries/q8.tsv") + .baselineTypes(TypeProtos.MinorType.VARCHAR, TypeProtos.MinorType.INT) + .baselineColumns("n_name", "n_nationkey") + .build() + .run(); + } + + @Test // Union-Distinct of * column from JSON files in different directories + public void testUnionDistinct9() throws Exception { + String file0 = FileUtils.getResourceAsFile("/multilevel/json/1994/Q1/orders_94_q1.json").toURI().toString(); + String file1 = FileUtils.getResourceAsFile("/multilevel/json/1995/Q1/orders_95_q1.json").toURI().toString(); + String query = String.format("select o_custkey, o_orderstatus, o_totalprice, o_orderdate, o_orderpriority, o_clerk, o_shippriority, o_comment, o_orderkey from dfs_test.`%s` union \n" + + "select o_custkey, o_orderstatus, o_totalprice, o_orderdate, o_orderpriority, o_clerk, o_shippriority, o_comment, o_orderkey from dfs_test.`%s`", file0, file1); + + testBuilder() + .sqlQuery(query) + .unOrdered() + .csvBaselineFile("testframework/testUnionDistinctQueries/q9.tsv") + .baselineTypes(TypeProtos.MinorType.BIGINT, TypeProtos.MinorType.VARCHAR, TypeProtos.MinorType.FLOAT8, TypeProtos.MinorType.VARCHAR, + TypeProtos.MinorType.VARCHAR, TypeProtos.MinorType.VARCHAR, TypeProtos.MinorType.BIGINT,TypeProtos.MinorType.VARCHAR, TypeProtos.MinorType.BIGINT) + .baselineColumns("o_custkey", "o_orderstatus", "o_totalprice", "o_orderdate", + "o_orderpriority", "o_clerk", "o_shippriority", "o_comment", "o_orderkey") + .build() + .run(); + } + + @Test // Union-Distinct constant literals + public void testUnionDistinct10() throws Exception { + String query = "(select n_name, 'LEFT' as LiteralConstant, n_nationkey, '1' as NumberConstant from cp.`tpch/nation.parquet`) \n" + + "union \n" + + "(select 'RIGHT', r_name, '2', r_regionkey from cp.`tpch/region.parquet`)"; + + testBuilder() + .sqlQuery(query) + .unOrdered() + .csvBaselineFile("testframework/testUnionDistinctQueries/q10.tsv") + .baselineTypes(TypeProtos.MinorType.VARCHAR, TypeProtos.MinorType.VARCHAR, TypeProtos.MinorType.INT, TypeProtos.MinorType.INT) + .baselineColumns("n_name", "LiteralConstant", "n_nationkey", "NumberConstant") + .build() + .run(); + } + + @Test + public void testUnionDistinctViewExpandableStar() throws Exception { + test("use dfs_test.tmp"); + test("create view nation_view_testunion as select n_name, n_nationkey from cp.`tpch/nation.parquet`;"); + test("create view region_view_testunion as select r_name, r_regionkey from cp.`tpch/region.parquet`;"); + + String query1 = "(select * from dfs_test.tmp.`nation_view_testunion`) \n" + + "union \n" + + "(select * from dfs_test.tmp.`region_view_testunion`)"; + + String query2 = "(select r_name, r_regionkey from cp.`tpch/region.parquet`) \n" + + "union \n" + + "(select * from dfs_test.tmp.`nation_view_testunion`)"; + + try { + testBuilder() + .sqlQuery(query1) + .unOrdered() + .csvBaselineFile("testframework/testUnionDistinctQueries/q11.tsv") + .baselineTypes(TypeProtos.MinorType.VARCHAR, TypeProtos.MinorType.INT) + .baselineColumns("n_name", "n_nationkey") + .build() + .run(); + + testBuilder() + .sqlQuery(query2) + .unOrdered() + .csvBaselineFile("testframework/testUnionDistinctQueries/q12.tsv") + .baselineTypes(TypeProtos.MinorType.VARCHAR, TypeProtos.MinorType.INT) + .baselineColumns("r_name", "r_regionkey") + .build() + .run(); + } finally { + test("drop view nation_view_testunion"); + test("drop view region_view_testunion"); + } + } + + @Test(expected = UnsupportedRelOperatorException.class) + public void testUnionDistinctViewUnExpandableStar() throws Exception { + test("use dfs_test.tmp"); + test("create view nation_view_testunion as select * from cp.`tpch/nation.parquet`;"); + + try { + String query = "(select * from dfs_test.tmp.`nation_view_testunion`) \n" + + "union (select * from cp.`tpch/region.parquet`)"; + test(query); + } catch(UserException ex) { + SqlUnsupportedException.errorClassNameToException(ex.getOrCreatePBError(false).getException().getExceptionClass()); + throw ex; + } finally { + test("drop view nation_view_testunion"); + } + } + + @Test + public void testDiffDataTypesAndModes() throws Exception { + test("use dfs_test.tmp"); + test("create view nation_view_testunion as select n_name, n_nationkey from cp.`tpch/nation.parquet`;"); + test("create view region_view_testunion as select r_name, r_regionkey from cp.`tpch/region.parquet`;"); + + String t1 = "(select n_comment, n_regionkey from cp.`tpch/nation.parquet` limit 5)"; + String t2 = "(select * from nation_view_testunion limit 5)"; + String t3 = "(select full_name, store_id from cp.`employee.json` limit 5)"; + String t4 = "(select * from region_view_testunion limit 5)"; + + String query1 = t1 + " union " + t2 + " union " + t3 + " union " + t4; + + try { + testBuilder() + .sqlQuery(query1) + .unOrdered() + .csvBaselineFile("testframework/testUnionDistinctQueries/q13.tsv") + .baselineTypes(TypeProtos.MinorType.VARCHAR, TypeProtos.MinorType.BIGINT) + .baselineColumns("n_comment", "n_regionkey") + .build() + .run(); + } finally { + test("drop view nation_view_testunion"); + test("drop view region_view_testunion"); + } + } + + @Test + public void testDistinctOverUnionDistinctwithFullyQualifiedColumnNames() throws Exception { + String query = "select distinct sq.x1, sq.x2 \n" + + "from \n" + + "((select n_regionkey as a1, n_name as b1 from cp.`tpch/nation.parquet`) \n" + + "union \n" + + "(select r_regionkey as a2, r_name as b2 from cp.`tpch/region.parquet`)) as sq(x1,x2)"; + + testBuilder() + .sqlQuery(query) + .unOrdered() + .csvBaselineFile("testframework/testUnionDistinctQueries/q14.tsv") + .baselineTypes(TypeProtos.MinorType.INT, TypeProtos.MinorType.VARCHAR) + .baselineColumns("x1", "x2") + .build() + .run(); + } + + @Test + public void testUnionDistinctContainsColumnANumericConstant() throws Exception { + String query = "(select n_nationkey, n_regionkey, n_name from cp.`tpch/nation.parquet` limit 5) \n" + + "union \n" + + "(select 1, n_regionkey, 'abc' from cp.`tpch/nation.parquet` limit 5)"; + + testBuilder() + .sqlQuery(query) + .unOrdered() + .csvBaselineFile("testframework/testUnionDistinctQueries/q15.tsv") + .baselineTypes(TypeProtos.MinorType.INT, TypeProtos.MinorType.INT, TypeProtos.MinorType.VARCHAR) + .baselineColumns("n_nationkey", "n_regionkey", "n_name") + .build().run(); + } + + @Test + public void testUnionDistinctEmptySides() throws Exception { + String query1 = "(select n_nationkey, n_regionkey, n_name from cp.`tpch/nation.parquet` limit 0) \n" + + "union \n" + + "(select 1, n_regionkey, 'abc' from cp.`tpch/nation.parquet` limit 5)"; + + String query2 = "(select n_nationkey, n_regionkey, n_name from cp.`tpch/nation.parquet` limit 5) \n" + + "union \n" + + "(select 1, n_regionkey, 'abc' from cp.`tpch/nation.parquet` limit 0)"; + + testBuilder() + .sqlQuery(query1) + .unOrdered() + .csvBaselineFile("testframework/testUnionDistinctQueries/q16.tsv") + .baselineTypes(TypeProtos.MinorType.INT, TypeProtos.MinorType.INT, TypeProtos.MinorType.VARCHAR) + .baselineColumns("n_nationkey", "n_regionkey", "n_name") + .build() + .run(); + + testBuilder() + .sqlQuery(query2) + .unOrdered() + .csvBaselineFile("testframework/testUnionDistinctQueries/q17.tsv") + .baselineTypes(TypeProtos.MinorType.INT, TypeProtos.MinorType.INT, TypeProtos.MinorType.VARCHAR) + .baselineColumns("n_nationkey", "n_regionkey", "n_name") + .build() + .run(); + } + + @Test + public void testAggregationOnUnionDistinctOperator() throws Exception { + String root = FileUtils.getResourceAsFile("/store/text/data/t.json").toURI().toString(); + String query1 = String.format( + "(select calc1, max(b1) as `max`, min(b1) as `min`, count(c1) as `count` \n" + + "from (select a1 + 10 as calc1, b1, c1 from dfs_test.`%s` \n" + + "union \n" + + "select a1 + 100 as diff1, b1 as diff2, c1 as diff3 from dfs_test.`%s`) \n" + + "group by calc1 order by calc1)", root, root); + + String query2 = String.format( + "(select calc1, min(b1) as `min`, max(b1) as `max`, count(c1) as `count` \n" + + "from (select a1 + 10 as calc1, b1, c1 from dfs_test.`%s` \n" + + "union \n" + + "select a1 + 100 as diff1, b1 as diff2, c1 as diff3 from dfs_test.`%s`) \n" + + "group by calc1 order by calc1)", root, root); + + testBuilder() + .sqlQuery(query1) + .unOrdered() + .csvBaselineFile("testframework/testUnionDistinctQueries/testAggregationOnUnionDistinctOperator_1.tsv") + .baselineTypes(TypeProtos.MinorType.BIGINT, TypeProtos.MinorType.BIGINT, TypeProtos.MinorType.BIGINT, TypeProtos.MinorType.BIGINT) + .baselineColumns("calc1", "max", "min", "count") + .build() + .run(); + + testBuilder() + .sqlQuery(query2) + .unOrdered() + .csvBaselineFile("testframework/testUnionDistinctQueries/testAggregationOnUnionDistinctOperator_2.tsv") + .baselineTypes(TypeProtos.MinorType.BIGINT, TypeProtos.MinorType.BIGINT, TypeProtos.MinorType.BIGINT, TypeProtos.MinorType.BIGINT) + .baselineColumns("calc1", "min", "max", "count") + .build() + .run(); + } + + @Test(expected = UserException.class) + public void testUnionDistinctImplicitCastingFailure() throws Exception { + String rootInt = FileUtils.getResourceAsFile("/store/json/intData.json").toURI().toString(); + String rootBoolean = FileUtils.getResourceAsFile("/store/json/booleanData.json").toURI().toString(); + + String query = String.format( + "(select key from dfs_test.`%s` \n" + + "union \n" + + "select key from dfs_test.`%s` )", rootInt, rootBoolean); + + test(query); + } + + @Test + public void testDateAndTimestampJson() throws Exception { + String rootDate = FileUtils.getResourceAsFile("/store/json/dateData.json").toURI().toString(); + String rootTimpStmp = FileUtils.getResourceAsFile("/store/json/timeStmpData.json").toURI().toString(); + + String query1 = String.format( + "(select max(key) as key from dfs_test.`%s` \n" + + "union \n" + + "select key from dfs_test.`%s`)", rootDate, rootTimpStmp); + + String query2 = String.format( + "select key from dfs_test.`%s` \n" + + "union \n" + + "select max(key) as key from dfs_test.`%s`", rootDate, rootTimpStmp); + + String query3 = String.format( + "select key from dfs_test.`%s` \n" + + "union \n" + + "select max(key) as key from dfs_test.`%s`", rootDate, rootTimpStmp); + + testBuilder() + .sqlQuery(query1) + .unOrdered() + .csvBaselineFile("testframework/testUnionDistinctQueries/q18_1.tsv") + .baselineTypes(TypeProtos.MinorType.VARCHAR) + .baselineColumns("key") + .build() + .run(); + + testBuilder() + .sqlQuery(query2) + .unOrdered() + .csvBaselineFile("testframework/testUnionDistinctQueries/q18_2.tsv") + .baselineTypes(TypeProtos.MinorType.VARCHAR) + .baselineColumns("key") + .build() + .run(); + + testBuilder() + .sqlQuery(query3) + .unOrdered() + .csvBaselineFile("testframework/testUnionDistinctQueries/q18_3.tsv") + .baselineTypes(TypeProtos.MinorType.VARCHAR) + .baselineColumns("key") + .build() + .run(); + } + + @Test + public void testUnionDistinctOneInputContainsAggFunction() throws Exception { + String root = FileUtils.getResourceAsFile("/multilevel/csv/1994/Q1/orders_94_q1.csv").toURI().toString(); + String query1 = String.format("select * from ((select count(c1) as ct from (select columns[0] c1 from dfs.`%s`)) \n" + + "union \n" + + "(select columns[0] c2 from dfs.`%s`)) order by ct limit 3", root, root); + + String query2 = String.format("select * from ((select columns[0] ct from dfs.`%s`) \n" + + "union \n" + + "(select count(c1) as c2 from (select columns[0] c1 from dfs.`%s`))) order by ct limit 3", root, root); + + String query3 = String.format("select * from ((select count(c1) as ct from (select columns[0] c1 from dfs.`%s`) )\n" + + "union \n" + + "(select count(c1) as c2 from (select columns[0] c1 from dfs.`%s`))) order by ct", root, root); + + testBuilder() + .sqlQuery(query1) + .unOrdered() + .baselineColumns("ct") + .baselineValues((long) 10) + .baselineValues((long) 66) + .baselineValues((long) 99) + .build() + .run(); + + testBuilder() + .sqlQuery(query2) + .unOrdered() + .baselineColumns("ct") + .baselineValues((long) 10) + .baselineValues((long) 66) + .baselineValues((long) 99) + .build() + .run(); + + testBuilder() + .sqlQuery(query3) + .unOrdered() + .baselineColumns("ct") + .baselineValues((long) 10) + .build() + .run(); + } + + @Test + public void testUnionDistinctDiffTypesAtPlanning() throws Exception { + String query = "select count(c1) as ct from (select cast(r_regionkey as int) c1 from cp.`tpch/region.parquet`) \n" + + "union \n" + + "(select cast(r_regionkey as int) c2 from cp.`tpch/region.parquet`)"; + testBuilder() + .sqlQuery(query) + .unOrdered() + .baselineColumns("ct") + .baselineValues((long) 5) + .baselineValues((long) 0) + .baselineValues((long) 1) + .baselineValues((long) 2) + .baselineValues((long) 3) + .baselineValues((long) 4) + .build() + .run(); + } + + @Test + public void testUnionDistinctRightEmptyJson() throws Exception { + String rootEmpty = FileUtils.getResourceAsFile("/project/pushdown/empty.json").toURI().toString(); + String rootSimple = FileUtils.getResourceAsFile("/store/json/booleanData.json").toURI().toString(); + + String queryRightEmpty = String.format( + "select key from dfs_test.`%s` \n" + + "union \n" + + "select key from dfs_test.`%s`", rootSimple, rootEmpty); + + testBuilder() + .sqlQuery(queryRightEmpty) + .unOrdered() + .baselineColumns("key") + .baselineValues(true) + .baselineValues(false) + .build() + .run(); + } + + @Test + public void testFilterPushDownOverUnionDistinct() throws Exception { + String query = "select n_regionkey from \n" + + "(select n_regionkey from cp.`tpch/nation.parquet` union select r_regionkey from cp.`tpch/region.parquet`) \n" + + "where n_regionkey > 0 and n_regionkey < 2 \n" + + "order by n_regionkey"; + + testBuilder() + .sqlQuery(query) + .ordered() + .baselineColumns("n_regionkey") + .baselineValues(1) + .build() + .run(); + } + + @Test + public void testInListPushDownOverUnionDistinct() throws Exception { + String query = "select n_nationkey \n" + + "from (select n1.n_nationkey from cp.`tpch/nation.parquet` n1 inner join cp.`tpch/region.parquet` r1 on n1.n_regionkey = r1.r_regionkey \n" + + "union \n" + + "select n2.n_nationkey from cp.`tpch/nation.parquet` n2 inner join cp.`tpch/region.parquet` r2 on n2.n_regionkey = r2.r_regionkey) \n" + + "where n_nationkey in (1, 2)"; + + testBuilder() + .sqlQuery(query) + .unOrdered() + .baselineColumns("n_nationkey") + .baselineValues(1) + .baselineValues(2) + .build() + .run(); + } + + @Test + public void testFilterPushDownOverUnionDistinctCSV() throws Exception { + String root = FileUtils.getResourceAsFile("/multilevel/csv/1994/Q1/orders_94_q1.csv").toURI().toString(); + String query = String.format("select ct \n" + + "from ((select count(c1) as ct from (select columns[0] c1 from dfs.`%s`)) \n" + + "union \n" + + "(select columns[0] c2 from dfs.`%s`)) \n" + + "where ct < 100", root, root); + + testBuilder() + .sqlQuery(query) + .ordered() + .baselineColumns("ct") + .baselineValues((long) 10) + .baselineValues((long) 66) + .baselineValues((long) 99) + .build() + .run(); + } + + @Test + public void testProjectPushDownOverUnionDistinctWithProject() throws Exception { + String query = "select n_nationkey, n_name from \n" + + "(select n_nationkey, n_name, n_comment from cp.`tpch/nation.parquet` \n" + + "union select r_regionkey, r_name, r_comment from cp.`tpch/region.parquet`)"; + + testBuilder() + .sqlQuery(query) + .unOrdered() + .csvBaselineFile("testframework/testUnionDistinctQueries/testProjectPushDownOverUnionDistinctWithProject.tsv") + .baselineTypes(TypeProtos.MinorType.INT, TypeProtos.MinorType.VARCHAR) + .baselineColumns("n_nationkey", "n_name") + .build() + .run(); + } + + @Test + public void testProjectPushDownOverUnionDistinctWithoutProject() throws Exception { + String query = "select n_nationkey from \n" + + "(select n_nationkey, n_name, n_comment from cp.`tpch/nation.parquet` \n" + + "union select r_regionkey, r_name, r_comment from cp.`tpch/region.parquet`)"; + + testBuilder() + .sqlQuery(query) + .unOrdered() + .csvBaselineFile("testframework/testUnionDistinctQueries/testProjectPushDownOverUnionDistinctWithoutProject.tsv") + .baselineTypes(TypeProtos.MinorType.INT) + .baselineColumns("n_nationkey") + .build() + .run(); + } + + @Test + public void testProjectWithExpressionPushDownOverUnionDistinct() throws Exception { + String query = "select 2 * n_nationkey as col from \n" + + "(select n_nationkey, n_name, n_comment from cp.`tpch/nation.parquet` \n" + + "union select r_regionkey, r_name, r_comment from cp.`tpch/region.parquet`)"; + + // Validate the result + testBuilder() + .sqlQuery(query) + .unOrdered() + .csvBaselineFile("testframework/testUnionDistinctQueries/testProjectWithExpressionPushDownOverUnionDistinct.tsv") + .baselineTypes(TypeProtos.MinorType.INT) + .baselineColumns("col") + .build() + .run(); + } + + @Test + public void testProjectDownOverUnionDistinctImplicitCasting() throws Exception { + String root = FileUtils.getResourceAsFile("/store/text/data/nations.csv").toURI().toString(); + String query = String.format("select 2 * n_nationkey as col from \n" + + "(select n_nationkey, n_name, n_comment from cp.`tpch/nation.parquet` \n" + + "union select columns[0], columns[1], columns[2] from dfs.`%s`) \n" + + "order by col limit 10", root); + + testBuilder() + .sqlQuery(query) + .unOrdered() + .csvBaselineFile("testframework/testUnionDistinctQueries/testProjectDownOverUnionDistinctImplicitCasting.tsv") + .baselineTypes(TypeProtos.MinorType.INT) + .baselineColumns("col") + .build() + .run(); + } + + @Test + public void testProjectPushDownProjectColumnReorderingAndAlias() throws Exception { + String query = "select n_comment as col1, n_nationkey as col2, n_name as col3 from \n" + + "(select n_nationkey, n_name, n_comment from cp.`tpch/nation.parquet` \n" + + "union select r_regionkey, r_name, r_comment from cp.`tpch/region.parquet`)"; + + testBuilder() + .sqlQuery(query) + .unOrdered() + .csvBaselineFile("testframework/testUnionDistinctQueries/testProjectPushDownProjectColumnReorderingAndAlias.tsv") + .baselineTypes(TypeProtos.MinorType.VARCHAR, TypeProtos.MinorType.INT, TypeProtos.MinorType.VARCHAR) + .baselineColumns("col1", "col2", "col3") + .build() + .run(); + } + + @Test + public void testProjectFiltertPushDownOverUnionDistinct() throws Exception { + String query = "select n_nationkey from \n" + + "(select n_nationkey, n_name, n_comment from cp.`tpch/nation.parquet` \n" + + "union select r_regionkey, r_name, r_comment from cp.`tpch/region.parquet`) \n" + + "where n_nationkey > 0 and n_nationkey < 4"; + + testBuilder() + .sqlQuery(query) + .unOrdered() + .csvBaselineFile("testframework/testUnionDistinctQueries/testProjectFiltertPushDownOverUnionDistinct.tsv") + .baselineTypes(TypeProtos.MinorType.INT) + .baselineColumns("n_nationkey") + .build() + .run(); + } +} http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q1.tsv ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q1.tsv b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q1.tsv new file mode 100644 index 0000000..0254fe8 --- /dev/null +++ b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q1.tsv @@ -0,0 +1,5 @@ +0 +1 +4 +3 +2 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q10.tsv ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q10.tsv b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q10.tsv new file mode 100644 index 0000000..c883125 --- /dev/null +++ b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q10.tsv @@ -0,0 +1,30 @@ +ALGERIA LEFT 0 1 +ARGENTINA LEFT 1 1 +BRAZIL LEFT 2 1 +CANADA LEFT 3 1 +EGYPT LEFT 4 1 +ETHIOPIA LEFT 5 1 +FRANCE LEFT 6 1 +GERMANY LEFT 7 1 +INDIA LEFT 8 1 +INDONESIA LEFT 9 1 +IRAN LEFT 10 1 +IRAQ LEFT 11 1 +JAPAN LEFT 12 1 +JORDAN LEFT 13 1 +KENYA LEFT 14 1 +MOROCCO LEFT 15 1 +MOZAMBIQUE LEFT 16 1 +PERU LEFT 17 1 +CHINA LEFT 18 1 +ROMANIA LEFT 19 1 +SAUDI ARABIA LEFT 20 1 +VIETNAM LEFT 21 1 +RUSSIA LEFT 22 1 +UNITED KINGDOM LEFT 23 1 +UNITED STATES LEFT 24 1 +RIGHT AFRICA 2 0 +RIGHT AMERICA 2 1 +RIGHT ASIA 2 2 +RIGHT EUROPE 2 3 +RIGHT MIDDLE EAST 2 4 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q11.tsv ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q11.tsv b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q11.tsv new file mode 100644 index 0000000..2d5b701 --- /dev/null +++ b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q11.tsv @@ -0,0 +1,30 @@ +ALGERIA 0 +ARGENTINA 1 +BRAZIL 2 +CANADA 3 +EGYPT 4 +ETHIOPIA 5 +FRANCE 6 +GERMANY 7 +INDIA 8 +INDONESIA 9 +IRAN 10 +IRAQ 11 +JAPAN 12 +JORDAN 13 +KENYA 14 +MOROCCO 15 +MOZAMBIQUE 16 +PERU 17 +CHINA 18 +ROMANIA 19 +SAUDI ARABIA 20 +VIETNAM 21 +RUSSIA 22 +UNITED KINGDOM 23 +UNITED STATES 24 +AFRICA 0 +AMERICA 1 +ASIA 2 +EUROPE 3 +MIDDLE EAST 4 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q12.tsv ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q12.tsv b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q12.tsv new file mode 100644 index 0000000..44f9209 --- /dev/null +++ b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q12.tsv @@ -0,0 +1,30 @@ +AFRICA 0 +AMERICA 1 +ASIA 2 +EUROPE 3 +MIDDLE EAST 4 +ALGERIA 0 +ARGENTINA 1 +BRAZIL 2 +CANADA 3 +EGYPT 4 +ETHIOPIA 5 +FRANCE 6 +GERMANY 7 +INDIA 8 +INDONESIA 9 +IRAN 10 +IRAQ 11 +JAPAN 12 +JORDAN 13 +KENYA 14 +MOROCCO 15 +MOZAMBIQUE 16 +PERU 17 +CHINA 18 +ROMANIA 19 +SAUDI ARABIA 20 +VIETNAM 21 +RUSSIA 22 +UNITED KINGDOM 23 +UNITED STATES 24 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q13.tsv ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q13.tsv b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q13.tsv new file mode 100644 index 0000000..a207902 --- /dev/null +++ b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q13.tsv @@ -0,0 +1,20 @@ + haggle. carefully final deposits detect slyly agai 0 +al foxes promise slyly according to the regular accounts. bold requests alon 1 +y alongside of the pending deposits. carefully special packages are about the ironic forges. slyly special 1 +eas hang ironic, silent packages. slyly regular packages are furiously over the tithes. fluffily bold 1 +y above the carefully unusual theodolites. final dugouts are quickly across the furiously regular d 4 +ALGERIA 0 +ARGENTINA 1 +BRAZIL 2 +CANADA 3 +EGYPT 4 +Sheri Nowmer 0 +Derrick Whelply 0 +Michael Spence 0 +Maya Gutierrez 0 +Roberta Damstra 0 +AFRICA 0 +AMERICA 1 +ASIA 2 +EUROPE 3 +MIDDLE EAST 4 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q14.tsv ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q14.tsv b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q14.tsv new file mode 100644 index 0000000..754dca8 --- /dev/null +++ b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q14.tsv @@ -0,0 +1,30 @@ +0 ALGERIA +1 ARGENTINA +1 BRAZIL +1 CANADA +4 EGYPT +0 ETHIOPIA +3 FRANCE +3 GERMANY +2 INDIA +2 INDONESIA +4 IRAN +4 IRAQ +2 JAPAN +4 JORDAN +0 KENYA +0 MOROCCO +0 MOZAMBIQUE +1 PERU +2 CHINA +3 ROMANIA +4 SAUDI ARABIA +2 VIETNAM +3 RUSSIA +3 UNITED KINGDOM +1 UNITED STATES +0 AFRICA +1 AMERICA +2 ASIA +3 EUROPE +4 MIDDLE EAST \ No newline at end of file http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q15.tsv ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q15.tsv b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q15.tsv new file mode 100644 index 0000000..e142333 --- /dev/null +++ b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q15.tsv @@ -0,0 +1,8 @@ +0 0 ALGERIA +1 1 ARGENTINA +2 1 BRAZIL +3 1 CANADA +4 4 EGYPT +1 0 abc +1 1 abc +1 4 abc \ No newline at end of file http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q16.tsv ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q16.tsv b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q16.tsv new file mode 100644 index 0000000..aa6e733 --- /dev/null +++ b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q16.tsv @@ -0,0 +1,3 @@ +1 0 abc +1 1 abc +1 4 abc \ No newline at end of file http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q17.tsv ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q17.tsv b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q17.tsv new file mode 100644 index 0000000..27aa989 --- /dev/null +++ b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q17.tsv @@ -0,0 +1,5 @@ +0 0 ALGERIA +1 1 ARGENTINA +2 1 BRAZIL +3 1 CANADA +4 4 EGYPT \ No newline at end of file http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q18_1.tsv ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q18_1.tsv b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q18_1.tsv new file mode 100644 index 0000000..5cb3a5e --- /dev/null +++ b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q18_1.tsv @@ -0,0 +1,4 @@ +2011-07-26 +2015-03-26 19:04:55.542 +2015-03-26 19:04:55.543 +2015-03-26 19:04:55.544 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q18_2.tsv ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q18_2.tsv b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q18_2.tsv new file mode 100644 index 0000000..123efc6 --- /dev/null +++ b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q18_2.tsv @@ -0,0 +1,13 @@ +2009-03-03 +2001-08-27 +2011-07-26 +1970-09-02 +1983-04-24 +2007-02-01 +1977-08-03 +1962-05-14 +1950-02-16 +1983-09-05 +2000-09-09 +1960-08-18 +2015-03-26 19:04:55.544 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q18_3.tsv ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q18_3.tsv b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q18_3.tsv new file mode 100644 index 0000000..123efc6 --- /dev/null +++ b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q18_3.tsv @@ -0,0 +1,13 @@ +2009-03-03 +2001-08-27 +2011-07-26 +1970-09-02 +1983-04-24 +2007-02-01 +1977-08-03 +1962-05-14 +1950-02-16 +1983-09-05 +2000-09-09 +1960-08-18 +2015-03-26 19:04:55.544 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q2.tsv ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q2.tsv b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q2.tsv new file mode 100644 index 0000000..b178657 --- /dev/null +++ b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q2.tsv @@ -0,0 +1,4 @@ +1 +2 +3 +4 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q3.tsv ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q3.tsv b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q3.tsv new file mode 100644 index 0000000..59dd464 --- /dev/null +++ b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q3.tsv @@ -0,0 +1,5 @@ +1 +2 +0 +3 +4 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q4.tsv ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q4.tsv b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q4.tsv new file mode 100644 index 0000000..7472138 --- /dev/null +++ b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q4.tsv @@ -0,0 +1,25 @@ +0 +1 +4 +3 +2 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q5.tsv ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q5.tsv b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q5.tsv new file mode 100644 index 0000000..b803523 --- /dev/null +++ b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q5.tsv @@ -0,0 +1,5 @@ +AFRICA lar deposits. blithely final packages cajole. regular waters are final requests. regular accounts are according to 0 +AMERICA hs use ironic, even requests. s 1 +ASIA ges. thinly even pinto beans ca 2 +EUROPE ly final courts cajole furiously final excuse 3 +MIDDLE EAST uickly special accounts cajole carefully blithely close requests. carefully final asymptotes haggle furiousl 4 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q6.tsv ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q6.tsv b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q6.tsv new file mode 100644 index 0000000..e7127dd --- /dev/null +++ b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q6.tsv @@ -0,0 +1,6 @@ +1 1 +2 1 +3 1 +17 1 +24 1 +2 2 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q6_1.tsv ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q6_1.tsv b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q6_1.tsv new file mode 100644 index 0000000..d32c846 --- /dev/null +++ b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q6_1.tsv @@ -0,0 +1,25 @@ +0 0 +1 1 +2 2 +3 3 +4 4 +5 5 +6 6 +7 7 +8 8 +9 9 +10 10 +11 11 +12 12 +13 13 +14 14 +15 15 +16 16 +17 17 +18 18 +19 19 +20 20 +21 21 +22 22 +23 23 +24 24 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q7.tsv ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q7.tsv b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q7.tsv new file mode 100644 index 0000000..3e75b5f --- /dev/null +++ b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q7.tsv @@ -0,0 +1,2 @@ +abc +abcdefgh \ No newline at end of file http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q8.tsv ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q8.tsv b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q8.tsv new file mode 100644 index 0000000..4e9cb34 --- /dev/null +++ b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q8.tsv @@ -0,0 +1,30 @@ +ALGERIA 0 +ARGENTINA 1 +BRAZIL 2 +CANADA 3 +EGYPT 4 +ETHIOPIA 5 +FRANCE 6 +GERMANY 7 +INDIA 8 +INDONESIA 9 +IRAN 10 +IRAQ 11 +JAPAN 12 +JORDAN 13 +KENYA 14 +MOROCCO 15 +MOZAMBIQUE 16 +PERU 17 +CHINA 18 +ROMANIA 19 +SAUDI ARABIA 20 +VIETNAM 21 +RUSSIA 22 +UNITED KINGDOM 23 +UNITED STATES 24 +lar deposits. blithely final packages cajole. regular waters are final requests. regular accounts are according to 0 +hs use ironic, even requests. s 1 +ges. thinly even pinto beans ca 2 +ly final courts cajole furiously final excuse 3 +uickly special accounts cajole carefully blithely close requests. carefully final asymptotes haggle furiousl 4 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q9.tsv ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q9.tsv b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q9.tsv new file mode 100644 index 0000000..2fd5e7b --- /dev/null +++ b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/q9.tsv @@ -0,0 +1,20 @@ +1292 F 104190.66 1994-01-20T00:00:00.000-08:00 5-LOW Clerk#000000743 0 y pending requests integrate 66 +890 F 108594.87 1994-03-13T00:00:00.000-08:00 4-NOT SPECIFIED Clerk#000000973 0 e carefully ironic packages. pending 99 +1180 F 67636.54 1994-01-01T00:00:00.000-08:00 4-NOT SPECIFIED Clerk#000000735 0 efully dogged deposits. furiou 290 +1411 F 88375.89 1994-03-13T00:00:00.000-08:00 1-URGENT Clerk#000000923 0 dolites. carefully regular pinto beans cajol 291 +392 F 121127.17 1994-03-26T00:00:00.000-08:00 1-URGENT Clerk#000000959 0 arefully pending foxes sleep blithely. slyly express accoun 323 +1066 F 25542.02 1994-03-08T00:00:00.000-08:00 2-HIGH Clerk#000000932 0 ke slyly bold pinto beans. blithely regular accounts against the spe 352 +1270 F 3266.69 1994-02-17T00:00:00.000-08:00 2-HIGH Clerk#000000062 0 ing to the regular asymptotes. final, pending foxes about the blithely sil 389 +547 F 132531.73 1994-02-06T00:00:00.000-08:00 3-MEDIUM Clerk#000000468 0 ironic, even packages. thinly unusual accounts sleep along the slyly unusual 417 +793 F 34950.94 1994-03-10T00:00:00.000-08:00 1-URGENT Clerk#000000448 0 special pinto beans use quickly furiously even depende 673 +553 F 53948.73 1994-02-13T00:00:00.000-08:00 3-MEDIUM Clerk#000000437 0 ts haggle quickly across the slyl 833 +163 P 95469.44 1995-03-18T00:00:00.000-08:00 1-URGENT Clerk#000000632 0 ular requests are blithely pending orbits-- even requests against the deposit 65 +602 F 119718.02 1995-01-25T00:00:00.000-08:00 2-HIGH Clerk#000000648 0 haggle quickly. stealthily bold asymptotes haggle among the furiously even re 386 +475 P 213638.07 1995-03-05T00:00:00.000-08:00 4-NOT SPECIFIED Clerk#000000293 0 d theodolites. boldly bold foxes since the pack 450 +578 P 261882.19 1995-03-25T00:00:00.000-08:00 2-HIGH Clerk#000000354 0 g dependencies. regular accounts 643 +1333 F 75392.93 1995-03-18T00:00:00.000-08:00 1-URGENT Clerk#000000191 0 kly express requests. fluffily silent accounts poach furiously 775 +1367 F 192178.48 1995-01-05T00:00:00.000-08:00 1-URGENT Clerk#000000516 0 posits. ironic, pending requests cajole. even theodol 802 +490 P 88281.28 1995-03-20T00:00:00.000-08:00 1-URGENT Clerk#000000316 0 wake quickly against 897 +658 F 315638.02 1995-03-02T00:00:00.000-08:00 5-LOW Clerk#000000450 0 ithely express pinto beans. 928 +275 F 41838.38 1995-02-11T00:00:00.000-08:00 1-URGENT Clerk#000000125 0 t, even deposits hang about the slyly special i 1056 +1232 P 131664.83 1995-03-04T00:00:00.000-08:00 3-MEDIUM Clerk#000000006 0 re quickly along the blithe 1092 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testAggregationOnUnionDistinctOperator_1.tsv ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testAggregationOnUnionDistinctOperator_1.tsv b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testAggregationOnUnionDistinctOperator_1.tsv new file mode 100644 index 0000000..d114555 --- /dev/null +++ b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testAggregationOnUnionDistinctOperator_1.tsv @@ -0,0 +1,4 @@ +10 2 1 4 +20 5 3 4 +100 2 1 4 +110 5 3 4 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testAggregationOnUnionDistinctOperator_2.tsv ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testAggregationOnUnionDistinctOperator_2.tsv b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testAggregationOnUnionDistinctOperator_2.tsv new file mode 100644 index 0000000..53d874e --- /dev/null +++ b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testAggregationOnUnionDistinctOperator_2.tsv @@ -0,0 +1,4 @@ +10 1 2 4 +20 3 5 4 +100 1 2 4 +110 3 5 4 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testProjectDownOverUnionDistinctImplicitCasting.tsv ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testProjectDownOverUnionDistinctImplicitCasting.tsv b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testProjectDownOverUnionDistinctImplicitCasting.tsv new file mode 100644 index 0000000..7c84ba7 --- /dev/null +++ b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testProjectDownOverUnionDistinctImplicitCasting.tsv @@ -0,0 +1,10 @@ +0 +0 +2 +2 +4 +4 +6 +6 +8 +8 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testProjectFiltertPushDownOverUnionDistinct.tsv ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testProjectFiltertPushDownOverUnionDistinct.tsv b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testProjectFiltertPushDownOverUnionDistinct.tsv new file mode 100644 index 0000000..c7a7ace --- /dev/null +++ b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testProjectFiltertPushDownOverUnionDistinct.tsv @@ -0,0 +1,6 @@ +1 +2 +3 +1 +2 +3 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testProjectPushDownOverUnionDistinctWithProject.tsv ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testProjectPushDownOverUnionDistinctWithProject.tsv b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testProjectPushDownOverUnionDistinctWithProject.tsv new file mode 100644 index 0000000..7d708b0 --- /dev/null +++ b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testProjectPushDownOverUnionDistinctWithProject.tsv @@ -0,0 +1,30 @@ +0 ALGERIA +1 ARGENTINA +2 BRAZIL +3 CANADA +4 EGYPT +5 ETHIOPIA +6 FRANCE +7 GERMANY +8 INDIA +9 INDONESIA +10 IRAN +11 IRAQ +12 JAPAN +13 JORDAN +14 KENYA +15 MOROCCO +16 MOZAMBIQUE +17 PERU +18 CHINA +19 ROMANIA +20 SAUDI ARABIA +21 VIETNAM +22 RUSSIA +23 UNITED KINGDOM +24 UNITED STATES +0 AFRICA +1 AMERICA +2 ASIA +3 EUROPE +4 MIDDLE EAST \ No newline at end of file http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testProjectPushDownOverUnionDistinctWithoutProject.tsv ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testProjectPushDownOverUnionDistinctWithoutProject.tsv b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testProjectPushDownOverUnionDistinctWithoutProject.tsv new file mode 100644 index 0000000..c977edd --- /dev/null +++ b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testProjectPushDownOverUnionDistinctWithoutProject.tsv @@ -0,0 +1,30 @@ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +0 +1 +2 +3 +4 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testProjectPushDownProjectColumnReorderingAndAlias.tsv ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testProjectPushDownProjectColumnReorderingAndAlias.tsv b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testProjectPushDownProjectColumnReorderingAndAlias.tsv new file mode 100644 index 0000000..05bb0ff --- /dev/null +++ b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testProjectPushDownProjectColumnReorderingAndAlias.tsv @@ -0,0 +1,30 @@ + haggle. carefully final deposits detect slyly agai 0 ALGERIA +al foxes promise slyly according to the regular accounts. bold requests alon 1 ARGENTINA +y alongside of the pending deposits. carefully special packages are about the ironic forges. slyly special 2 BRAZIL +eas hang ironic, silent packages. slyly regular packages are furiously over the tithes. fluffily bold 3 CANADA +y above the carefully unusual theodolites. final dugouts are quickly across the furiously regular d 4 EGYPT +ven packages wake quickly. regu 5 ETHIOPIA +refully final requests. regular, ironi 6 FRANCE +l platelets. regular accounts x-ray: unusual, regular acco 7 GERMANY +ss excuses cajole slyly across the packages. deposits print aroun 8 INDIA + slyly express asymptotes. regular deposits haggle slyly. carefully ironic hockey players sleep blithely. carefull 9 INDONESIA +efully alongside of the slyly final dependencies. 10 IRAN +nic deposits boost atop the quickly final requests? quickly regula 11 IRAQ +ously. final, express gifts cajole a 12 JAPAN +ic deposits are blithely about the carefully regular pa 13 JORDAN + pending excuses haggle furiously deposits. pending, express pinto beans wake fluffily past t 14 KENYA +rns. blithely bold courts among the closely regular packages use furiously bold platelets? 15 MOROCCO +s. ironic, unusual asymptotes wake blithely r 16 MOZAMBIQUE +platelets. blithely pending dependencies use fluffily across the even pinto beans. carefully silent accoun 17 PERU +c dependencies. furiously express notornis sleep slyly regular accounts. ideas sleep. depos 18 CHINA +ular asymptotes are about the furious multipliers. express dependencies nag above the ironically ironic account 19 ROMANIA +ts. silent requests haggle. closely express packages sleep across the blithely 20 SAUDI ARABIA +hely enticingly express accounts. even, final 21 VIETNAM + requests against the platelets use never according to the quickly regular pint 22 RUSSIA +eans boost carefully special requests. accounts are. carefull 23 UNITED KINGDOM +y final packages. slow foxes cajole quickly. quickly silent platelets breach ironic accounts. unusual pinto be 24 UNITED STATES +lar deposits. blithely final packages cajole. regular waters are final requests. regular accounts are according to 0 AFRICA +hs use ironic, even requests. s 1 AMERICA +ges. thinly even pinto beans ca 2 ASIA +ly final courts cajole furiously final excuse 3 EUROPE +uickly special accounts cajole carefully blithely close requests. carefully final asymptotes haggle furiousl 4 MIDDLE EAST \ No newline at end of file http://git-wip-us.apache.org/repos/asf/drill/blob/45a82c45/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testProjectWithExpressionPushDownOverUnionDistinct.tsv ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testProjectWithExpressionPushDownOverUnionDistinct.tsv b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testProjectWithExpressionPushDownOverUnionDistinct.tsv new file mode 100644 index 0000000..4a9efcd --- /dev/null +++ b/exec/java-exec/src/test/resources/testframework/TestUnionDistinctQueries/testProjectWithExpressionPushDownOverUnionDistinct.tsv @@ -0,0 +1,30 @@ +0 +2 +4 +6 +8 +10 +12 +14 +16 +18 +20 +22 +24 +26 +28 +30 +32 +34 +36 +38 +40 +42 +44 +46 +48 +0 +2 +4 +6 +8 \ No newline at end of file
