Repository: hive Updated Branches: refs/heads/master bc1c434f1 -> bbb312f36
http://git-wip-us.apache.org/repos/asf/hive/blob/bbb312f3/testutils/ptest2/src/test/resources/HIVE-11271.4.patch ---------------------------------------------------------------------- diff --git a/testutils/ptest2/src/test/resources/HIVE-11271.4.patch b/testutils/ptest2/src/test/resources/HIVE-11271.4.patch new file mode 100644 index 0000000..4a07c37 --- /dev/null +++ b/testutils/ptest2/src/test/resources/HIVE-11271.4.patch @@ -0,0 +1,606 @@ +diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcCtx.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcCtx.java +index c076d4e112a7edab2106f11fe6224247887313cf..8bcb464de540eda7c14a8c6783bb19a09071af7b 100644 +--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcCtx.java ++++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcCtx.java +@@ -25,7 +25,9 @@ + + import org.apache.hadoop.hive.ql.exec.ColumnInfo; + import org.apache.hadoop.hive.ql.exec.CommonJoinOperator; ++import org.apache.hadoop.hive.ql.exec.FilterOperator; + import org.apache.hadoop.hive.ql.exec.Operator; ++import org.apache.hadoop.hive.ql.exec.OperatorFactory; + import org.apache.hadoop.hive.ql.exec.RowSchema; + import org.apache.hadoop.hive.ql.exec.SelectOperator; + import org.apache.hadoop.hive.ql.exec.UnionOperator; +@@ -33,6 +35,7 @@ + import org.apache.hadoop.hive.ql.lib.NodeProcessorCtx; + import org.apache.hadoop.hive.ql.parse.ParseContext; + import org.apache.hadoop.hive.ql.parse.SemanticException; ++import org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc; + import org.apache.hadoop.hive.ql.plan.ExprNodeDesc; + import org.apache.hadoop.hive.ql.plan.OperatorDesc; + import org.apache.hadoop.hive.ql.plan.SelectDesc; +@@ -241,4 +244,65 @@ public ParseContext getParseContext() { + } + return columns; + } ++ ++ /** ++ * If the input filter operator has direct child(ren) which are union operator, ++ * and the filter's column is not the same as union's ++ * create select operator between them. The select operator has same number of columns as ++ * pruned child operator. ++ * ++ * @param curOp ++ * The filter operator which need to handle children. ++ * @throws SemanticException ++ */ ++ public void handleFilterUnionChildren(Operator<? extends OperatorDesc> curOp) ++ throws SemanticException { ++ if (curOp.getChildOperators() == null || !(curOp instanceof FilterOperator)) { ++ return; ++ } ++ List<String> parentPrunList = prunedColLists.get(curOp); ++ if(parentPrunList == null || parentPrunList.size() == 0) { ++ return; ++ } ++ FilterOperator filOp = (FilterOperator)curOp; ++ List<String> prunList = null; ++ List<Integer>[] childToParentIndex = null; ++ ++ for (Operator<? extends OperatorDesc> child : curOp.getChildOperators()) { ++ if (child instanceof UnionOperator) { ++ prunList = prunedColLists.get(child); ++ if (prunList == null || prunList.size() == 0 || parentPrunList.size() == prunList.size()) { ++ continue; ++ } ++ ++ ArrayList<ExprNodeDesc> exprs = new ArrayList<ExprNodeDesc>(); ++ ArrayList<String> outputColNames = new ArrayList<String>(); ++ Map<String, ExprNodeDesc> colExprMap = new HashMap<String, ExprNodeDesc>(); ++ ArrayList<ColumnInfo> outputRS = new ArrayList<ColumnInfo>(); ++ for (ColumnInfo colInfo : child.getSchema().getSignature()) { ++ if (!prunList.contains(colInfo.getInternalName())) { ++ continue; ++ } ++ ExprNodeDesc colDesc = new ExprNodeColumnDesc(colInfo.getType(), ++ colInfo.getInternalName(), colInfo.getTabAlias(), colInfo.getIsVirtualCol()); ++ exprs.add(colDesc); ++ outputColNames.add(colInfo.getInternalName()); ++ ColumnInfo newCol = new ColumnInfo(colInfo.getInternalName(), colInfo.getType(), ++ colInfo.getTabAlias(), colInfo.getIsVirtualCol(), colInfo.isHiddenVirtualCol()); ++ newCol.setAlias(colInfo.getAlias()); ++ outputRS.add(newCol); ++ colExprMap.put(colInfo.getInternalName(), colDesc); ++ } ++ SelectDesc select = new SelectDesc(exprs, outputColNames, false); ++ curOp.removeChild(child); ++ SelectOperator sel = (SelectOperator) OperatorFactory.getAndMakeChild( ++ select, new RowSchema(outputRS), curOp); ++ OperatorFactory.makeChild(sel, child); ++ sel.setColumnExprMap(colExprMap); ++ ++ } ++ ++ } ++ } ++ + } +diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcFactory.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcFactory.java +index ac4236c53adf6fa36ad43b2e9029d335f12efde2..2dc15f9f0ae96bdc7f33f3d97ad41c88117734d0 100644 +--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcFactory.java ++++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcFactory.java +@@ -108,7 +108,7 @@ public Object process(Node nd, Stack<Node> stack, NodeProcessorCtx ctx, + filterOpPrunedColListsOrderPreserved); + + pruneOperator(cppCtx, op, cppCtx.getPrunedColLists().get(op)); +- ++ cppCtx.handleFilterUnionChildren(op); + return null; + } + } +diff --git a/ql/src/test/queries/clientpositive/unionall_unbalancedppd.q b/ql/src/test/queries/clientpositive/unionall_unbalancedppd.q +new file mode 100644 +index 0000000000000000000000000000000000000000..0825c2d94d0f9815c7ff88549c77662e53adf928 +--- /dev/null ++++ b/ql/src/test/queries/clientpositive/unionall_unbalancedppd.q +@@ -0,0 +1,120 @@ ++set hive.optimize.ppd=true; ++drop table if exists union_all_bug_test_1; ++drop table if exists union_all_bug_test_2; ++create table if not exists union_all_bug_test_1 ++( ++f1 int, ++f2 int ++); ++ ++create table if not exists union_all_bug_test_2 ++( ++f1 int ++); ++ ++explain SELECT f1 ++FROM ( ++ ++SELECT ++f1 ++, if('helloworld' like '%hello%' ,f1,f2) as filter ++FROM union_all_bug_test_1 ++ ++union all ++ ++select ++f1 ++, 0 as filter ++from union_all_bug_test_2 ++) A ++WHERE (filter = 1); ++ ++SELECT f1 ++FROM ( ++ ++SELECT ++f1 ++, if('helloworld' like '%hello%' ,f1,f2) as filter ++FROM union_all_bug_test_1 ++ ++union all ++ ++select ++f1 ++, 0 as filter ++from union_all_bug_test_2 ++) A ++WHERE (filter = 1); ++ ++insert into table union_all_bug_test_1 values (1,1); ++insert into table union_all_bug_test_2 values (1); ++insert into table union_all_bug_test_1 values (0,0); ++insert into table union_all_bug_test_2 values (0); ++ ++SELECT f1 ++FROM ( ++ ++SELECT ++f1 ++, if('helloworld' like '%hello%' ,f1,f2) as filter ++FROM union_all_bug_test_1 ++ ++union all ++ ++select ++f1 ++, 0 as filter ++from union_all_bug_test_2 ++) A ++WHERE (filter = 1); ++ ++SELECT f1 ++FROM ( ++ ++SELECT ++f1 ++, if('helloworld' like '%hello%' ,f1,f2) as filter ++FROM union_all_bug_test_1 ++ ++union all ++ ++select ++f1 ++, 0 as filter ++from union_all_bug_test_2 ++) A ++WHERE (filter = 0); ++ ++SELECT f1 ++FROM ( ++ ++SELECT ++f1 ++, if('helloworld' like '%hello%' ,f1,f2) as filter ++FROM union_all_bug_test_1 ++ ++union all ++ ++select ++f1 ++, 0 as filter ++from union_all_bug_test_2 ++) A ++WHERE (filter = 1 or filter = 0); ++ ++SELECT f1 ++FROM ( ++ ++SELECT ++f1 ++, if('helloworld' like '%hello%' ,f1,f2) as filter ++FROM union_all_bug_test_1 ++ ++union all ++ ++select ++f1 ++, 0 as filter ++from union_all_bug_test_2 ++) A ++WHERE (f1 = 1); +diff --git a/ql/src/test/results/clientpositive/unionall_unbalancedppd.q.out b/ql/src/test/results/clientpositive/unionall_unbalancedppd.q.out +new file mode 100644 +index 0000000000000000000000000000000000000000..46828e9db772f20b47c3ae6aac1239bbcbabd752 +--- /dev/null ++++ b/ql/src/test/results/clientpositive/unionall_unbalancedppd.q.out +@@ -0,0 +1,373 @@ ++PREHOOK: query: drop table if exists union_all_bug_test_1 ++PREHOOK: type: DROPTABLE ++POSTHOOK: query: drop table if exists union_all_bug_test_1 ++POSTHOOK: type: DROPTABLE ++PREHOOK: query: drop table if exists union_all_bug_test_2 ++PREHOOK: type: DROPTABLE ++POSTHOOK: query: drop table if exists union_all_bug_test_2 ++POSTHOOK: type: DROPTABLE ++PREHOOK: query: create table if not exists union_all_bug_test_1 ++( ++f1 int, ++f2 int ++) ++PREHOOK: type: CREATETABLE ++PREHOOK: Output: database:default ++PREHOOK: Output: default@union_all_bug_test_1 ++POSTHOOK: query: create table if not exists union_all_bug_test_1 ++( ++f1 int, ++f2 int ++) ++POSTHOOK: type: CREATETABLE ++POSTHOOK: Output: database:default ++POSTHOOK: Output: default@union_all_bug_test_1 ++PREHOOK: query: create table if not exists union_all_bug_test_2 ++( ++f1 int ++) ++PREHOOK: type: CREATETABLE ++PREHOOK: Output: database:default ++PREHOOK: Output: default@union_all_bug_test_2 ++POSTHOOK: query: create table if not exists union_all_bug_test_2 ++( ++f1 int ++) ++POSTHOOK: type: CREATETABLE ++POSTHOOK: Output: database:default ++POSTHOOK: Output: default@union_all_bug_test_2 ++PREHOOK: query: explain SELECT f1 ++FROM ( ++ ++SELECT ++f1 ++, if('helloworld' like '%hello%' ,f1,f2) as filter ++FROM union_all_bug_test_1 ++ ++union all ++ ++select ++f1 ++, 0 as filter ++from union_all_bug_test_2 ++) A ++WHERE (filter = 1) ++PREHOOK: type: QUERY ++POSTHOOK: query: explain SELECT f1 ++FROM ( ++ ++SELECT ++f1 ++, if('helloworld' like '%hello%' ,f1,f2) as filter ++FROM union_all_bug_test_1 ++ ++union all ++ ++select ++f1 ++, 0 as filter ++from union_all_bug_test_2 ++) A ++WHERE (filter = 1) ++POSTHOOK: type: QUERY ++STAGE DEPENDENCIES: ++ Stage-1 is a root stage ++ Stage-0 depends on stages: Stage-1 ++ ++STAGE PLANS: ++ Stage: Stage-1 ++ Map Reduce ++ Map Operator Tree: ++ TableScan ++ alias: union_all_bug_test_1 ++ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE ++ Filter Operator ++ predicate: (if(true, f1, f2) = 1) (type: boolean) ++ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE ++ Select Operator ++ expressions: f1 (type: int) ++ outputColumnNames: _col0 ++ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE ++ Union ++ Statistics: Num rows: 2 Data size: 0 Basic stats: PARTIAL Column stats: NONE ++ File Output Operator ++ compressed: false ++ Statistics: Num rows: 2 Data size: 0 Basic stats: PARTIAL Column stats: NONE ++ table: ++ input format: org.apache.hadoop.mapred.TextInputFormat ++ output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat ++ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe ++ TableScan ++ alias: union_all_bug_test_2 ++ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE ++ Filter Operator ++ predicate: false (type: boolean) ++ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE ++ Select Operator ++ expressions: f1 (type: int) ++ outputColumnNames: _col0 ++ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE ++ Union ++ Statistics: Num rows: 2 Data size: 0 Basic stats: PARTIAL Column stats: NONE ++ File Output Operator ++ compressed: false ++ Statistics: Num rows: 2 Data size: 0 Basic stats: PARTIAL Column stats: NONE ++ table: ++ input format: org.apache.hadoop.mapred.TextInputFormat ++ output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat ++ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe ++ ++ Stage: Stage-0 ++ Fetch Operator ++ limit: -1 ++ Processor Tree: ++ ListSink ++ ++PREHOOK: query: SELECT f1 ++FROM ( ++ ++SELECT ++f1 ++, if('helloworld' like '%hello%' ,f1,f2) as filter ++FROM union_all_bug_test_1 ++ ++union all ++ ++select ++f1 ++, 0 as filter ++from union_all_bug_test_2 ++) A ++WHERE (filter = 1) ++PREHOOK: type: QUERY ++PREHOOK: Input: default@union_all_bug_test_1 ++PREHOOK: Input: default@union_all_bug_test_2 ++#### A masked pattern was here #### ++POSTHOOK: query: SELECT f1 ++FROM ( ++ ++SELECT ++f1 ++, if('helloworld' like '%hello%' ,f1,f2) as filter ++FROM union_all_bug_test_1 ++ ++union all ++ ++select ++f1 ++, 0 as filter ++from union_all_bug_test_2 ++) A ++WHERE (filter = 1) ++POSTHOOK: type: QUERY ++POSTHOOK: Input: default@union_all_bug_test_1 ++POSTHOOK: Input: default@union_all_bug_test_2 ++#### A masked pattern was here #### ++PREHOOK: query: insert into table union_all_bug_test_1 values (1,1) ++PREHOOK: type: QUERY ++PREHOOK: Input: default@values__tmp__table__1 ++PREHOOK: Output: default@union_all_bug_test_1 ++POSTHOOK: query: insert into table union_all_bug_test_1 values (1,1) ++POSTHOOK: type: QUERY ++POSTHOOK: Input: default@values__tmp__table__1 ++POSTHOOK: Output: default@union_all_bug_test_1 ++POSTHOOK: Lineage: union_all_bug_test_1.f1 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ] ++POSTHOOK: Lineage: union_all_bug_test_1.f2 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ] ++PREHOOK: query: insert into table union_all_bug_test_2 values (1) ++PREHOOK: type: QUERY ++PREHOOK: Input: default@values__tmp__table__2 ++PREHOOK: Output: default@union_all_bug_test_2 ++POSTHOOK: query: insert into table union_all_bug_test_2 values (1) ++POSTHOOK: type: QUERY ++POSTHOOK: Input: default@values__tmp__table__2 ++POSTHOOK: Output: default@union_all_bug_test_2 ++POSTHOOK: Lineage: union_all_bug_test_2.f1 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ] ++PREHOOK: query: insert into table union_all_bug_test_1 values (0,0) ++PREHOOK: type: QUERY ++PREHOOK: Input: default@values__tmp__table__3 ++PREHOOK: Output: default@union_all_bug_test_1 ++POSTHOOK: query: insert into table union_all_bug_test_1 values (0,0) ++POSTHOOK: type: QUERY ++POSTHOOK: Input: default@values__tmp__table__3 ++POSTHOOK: Output: default@union_all_bug_test_1 ++POSTHOOK: Lineage: union_all_bug_test_1.f1 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ] ++POSTHOOK: Lineage: union_all_bug_test_1.f2 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ] ++PREHOOK: query: insert into table union_all_bug_test_2 values (0) ++PREHOOK: type: QUERY ++PREHOOK: Input: default@values__tmp__table__4 ++PREHOOK: Output: default@union_all_bug_test_2 ++POSTHOOK: query: insert into table union_all_bug_test_2 values (0) ++POSTHOOK: type: QUERY ++POSTHOOK: Input: default@values__tmp__table__4 ++POSTHOOK: Output: default@union_all_bug_test_2 ++POSTHOOK: Lineage: union_all_bug_test_2.f1 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ] ++PREHOOK: query: SELECT f1 ++FROM ( ++ ++SELECT ++f1 ++, if('helloworld' like '%hello%' ,f1,f2) as filter ++FROM union_all_bug_test_1 ++ ++union all ++ ++select ++f1 ++, 0 as filter ++from union_all_bug_test_2 ++) A ++WHERE (filter = 1) ++PREHOOK: type: QUERY ++PREHOOK: Input: default@union_all_bug_test_1 ++PREHOOK: Input: default@union_all_bug_test_2 ++#### A masked pattern was here #### ++POSTHOOK: query: SELECT f1 ++FROM ( ++ ++SELECT ++f1 ++, if('helloworld' like '%hello%' ,f1,f2) as filter ++FROM union_all_bug_test_1 ++ ++union all ++ ++select ++f1 ++, 0 as filter ++from union_all_bug_test_2 ++) A ++WHERE (filter = 1) ++POSTHOOK: type: QUERY ++POSTHOOK: Input: default@union_all_bug_test_1 ++POSTHOOK: Input: default@union_all_bug_test_2 ++#### A masked pattern was here #### ++1 ++PREHOOK: query: SELECT f1 ++FROM ( ++ ++SELECT ++f1 ++, if('helloworld' like '%hello%' ,f1,f2) as filter ++FROM union_all_bug_test_1 ++ ++union all ++ ++select ++f1 ++, 0 as filter ++from union_all_bug_test_2 ++) A ++WHERE (filter = 0) ++PREHOOK: type: QUERY ++PREHOOK: Input: default@union_all_bug_test_1 ++PREHOOK: Input: default@union_all_bug_test_2 ++#### A masked pattern was here #### ++POSTHOOK: query: SELECT f1 ++FROM ( ++ ++SELECT ++f1 ++, if('helloworld' like '%hello%' ,f1,f2) as filter ++FROM union_all_bug_test_1 ++ ++union all ++ ++select ++f1 ++, 0 as filter ++from union_all_bug_test_2 ++) A ++WHERE (filter = 0) ++POSTHOOK: type: QUERY ++POSTHOOK: Input: default@union_all_bug_test_1 ++POSTHOOK: Input: default@union_all_bug_test_2 ++#### A masked pattern was here #### ++0 ++1 ++0 ++PREHOOK: query: SELECT f1 ++FROM ( ++ ++SELECT ++f1 ++, if('helloworld' like '%hello%' ,f1,f2) as filter ++FROM union_all_bug_test_1 ++ ++union all ++ ++select ++f1 ++, 0 as filter ++from union_all_bug_test_2 ++) A ++WHERE (filter = 1 or filter = 0) ++PREHOOK: type: QUERY ++PREHOOK: Input: default@union_all_bug_test_1 ++PREHOOK: Input: default@union_all_bug_test_2 ++#### A masked pattern was here #### ++POSTHOOK: query: SELECT f1 ++FROM ( ++ ++SELECT ++f1 ++, if('helloworld' like '%hello%' ,f1,f2) as filter ++FROM union_all_bug_test_1 ++ ++union all ++ ++select ++f1 ++, 0 as filter ++from union_all_bug_test_2 ++) A ++WHERE (filter = 1 or filter = 0) ++POSTHOOK: type: QUERY ++POSTHOOK: Input: default@union_all_bug_test_1 ++POSTHOOK: Input: default@union_all_bug_test_2 ++#### A masked pattern was here #### ++1 ++0 ++1 ++0 ++PREHOOK: query: SELECT f1 ++FROM ( ++ ++SELECT ++f1 ++, if('helloworld' like '%hello%' ,f1,f2) as filter ++FROM union_all_bug_test_1 ++ ++union all ++ ++select ++f1 ++, 0 as filter ++from union_all_bug_test_2 ++) A ++WHERE (f1 = 1) ++PREHOOK: type: QUERY ++PREHOOK: Input: default@union_all_bug_test_1 ++PREHOOK: Input: default@union_all_bug_test_2 ++#### A masked pattern was here #### ++POSTHOOK: query: SELECT f1 ++FROM ( ++ ++SELECT ++f1 ++, if('helloworld' like '%hello%' ,f1,f2) as filter ++FROM union_all_bug_test_1 ++ ++union all ++ ++select ++f1 ++, 0 as filter ++from union_all_bug_test_2 ++) A ++WHERE (f1 = 1) ++POSTHOOK: type: QUERY ++POSTHOOK: Input: default@union_all_bug_test_1 ++POSTHOOK: Input: default@union_all_bug_test_2 ++#### A masked pattern was here #### ++1 ++1 http://git-wip-us.apache.org/repos/asf/hive/blob/bbb312f3/testutils/ptest2/src/test/resources/HIVE-9377.1.patch ---------------------------------------------------------------------- diff --git a/testutils/ptest2/src/test/resources/HIVE-9377.1.patch b/testutils/ptest2/src/test/resources/HIVE-9377.1.patch new file mode 100644 index 0000000..9d2d5b6 --- /dev/null +++ b/testutils/ptest2/src/test/resources/HIVE-9377.1.patch @@ -0,0 +1,25 @@ +Index: ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFInFile.java +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +--- ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFInFile.java (date 1421263954000) ++++ ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFInFile.java (revision ) +@@ -140,6 +140,17 @@ + } + + @Override ++ public void copyToNewInstance(Object newInstance) throws UDFArgumentException { ++ super.copyToNewInstance(newInstance); // Asserts the class invariant. (Same types.) ++ GenericUDFInFile that = (GenericUDFInFile)newInstance; ++ if (that != this) { ++ that.set = (this.set == null ? null : (HashSet<String>)this.set.clone()); ++ that.strObjectInspector = this.strObjectInspector; ++ that.fileObjectInspector = this.fileObjectInspector; ++ } ++ } ++ ++ @Override + public String getDisplayString(String[] children) { + assert (children.length == 2); + return "in_file(" + children[0] + ", " + children[1] + ")"; http://git-wip-us.apache.org/repos/asf/hive/blob/bbb312f3/testutils/ptest2/src/test/resources/remove-test.patch ---------------------------------------------------------------------- diff --git a/testutils/ptest2/src/test/resources/remove-test.patch b/testutils/ptest2/src/test/resources/remove-test.patch new file mode 100644 index 0000000..3eac9d7 --- /dev/null +++ b/testutils/ptest2/src/test/resources/remove-test.patch @@ -0,0 +1,33 @@ +diff --git a/ql/src/test/queries/clientpositive/join0.q b/ql/src/test/queries/clientpositive/join0.q +deleted file mode 100644 +index 6ef6843..0000000 +--- a/ql/src/test/queries/clientpositive/join0.q ++++ /dev/null +@@ -1,27 +0,0 @@ +-set hive.explain.user=false; +--- JAVA_VERSION_SPECIFIC_OUTPUT +--- SORT_QUERY_RESULTS +- +-EXPLAIN +-SELECT src1.key as k1, src1.value as v1, +- src2.key as k2, src2.value as v2 FROM +- (SELECT * FROM src WHERE src.key < 10) src1 +- JOIN +- (SELECT * FROM src WHERE src.key < 10) src2 +- SORT BY k1, v1, k2, v2; +- +-EXPLAIN FORMATTED +-SELECT src1.key as k1, src1.value as v1, +- src2.key as k2, src2.value as v2 FROM +- (SELECT * FROM src WHERE src.key < 10) src1 +- JOIN +- (SELECT * FROM src WHERE src.key < 10) src2 +- SORT BY k1, v1, k2, v2; +- +-SELECT src1.key as k1, src1.value as v1, +- src2.key as k2, src2.value as v2 FROM +- (SELECT * FROM src WHERE src.key < 10) src1 +- JOIN +- (SELECT * FROM src WHERE src.key < 10) src2 +- SORT BY k1, v1, k2, v2; +-
