diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/metainfo/annotation/OpTraitsRulesProcFactory.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/metainfo/annotation/OpTraitsRulesProcFactory.java index 8f751260a0..a9d6a5c942 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/metainfo/annotation/OpTraitsRulesProcFactory.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/metainfo/annotation/OpTraitsRulesProcFactory.java @@ -18,6 +18,8 @@ package org.apache.hadoop.hive.ql.optimizer.metainfo.annotation; +import com.google.common.collect.ArrayListMultimap; +import com.google.common.collect.Multimap; import java.util.*; import java.util.Map.Entry; @@ -124,18 +126,25 @@ public Object process(Node nd, Stack stack, NodeProcessorCtx procCtx, continue; } // Fetch the column expression. There should be atleast one. - Map colMap = new HashMap<>(); + Multimap colMap = ArrayListMultimap.create(); boolean found = false; ExprNodeDescUtils.getExprNodeColumnDesc(entry.getValue(), colMap); for (Integer hashCode : colMap.keySet()) { - ExprNodeColumnDesc expr = (ExprNodeColumnDesc) colMap.get(hashCode); - if (expr.getColumn().equals(col)) { - bucketCols.add(entry.getKey()); - found = true; + Collection exprs = colMap.get(hashCode); + for (ExprNodeColumnDesc expr : exprs) { + if (expr.getColumn().equals(col)) { + bucketCols.add(entry.getKey()); + found = true; + break; + } + } + if (found) { break; } } - if (found) break; + if (found) { + break; + } } // column exprmap. } // cols } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java index 43dfceef61..9dd6954f35 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java @@ -5174,12 +5174,12 @@ public Object post(Object t) { List col_list, RowResolver inputRR) { // Build a map of Hive column Names (ExprNodeColumnDesc Name) // to the positions of those projections in the input - Map hashCodeTocolumnDescMap = new HashMap(); + Multimap hashCodeTocolumnDescMap = ArrayListMultimap.create(); ExprNodeDescUtils.getExprNodeColumnDesc(col_list, hashCodeTocolumnDescMap); ImmutableMap.Builder hiveColNameToInputPosMapBuilder = new ImmutableMap.Builder(); String exprNodecolName; - for (ExprNodeDesc exprDesc : hashCodeTocolumnDescMap.values()) { - exprNodecolName = ((ExprNodeColumnDesc) exprDesc).getColumn(); + for (ExprNodeColumnDesc exprDesc : hashCodeTocolumnDescMap.values()) { + exprNodecolName = exprDesc.getColumn(); hiveColNameToInputPosMapBuilder.put(exprNodecolName, inputRR.getPosition(exprNodecolName)); } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java index 674818670c..ce5796699d 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java @@ -20,6 +20,8 @@ import static org.apache.hadoop.hive.conf.HiveConf.ConfVars.HIVESTATSDBCLASS; +import com.google.common.collect.ArrayListMultimap; +import com.google.common.collect.Multimap; import java.io.FileNotFoundException; import java.io.IOException; import java.security.AccessControlException; @@ -3513,7 +3515,7 @@ private Operator genNotNullFilterForJoinSourcePlan(QB qb, Operator input, if (joinKeys == null || joinKeys.length == 0) { return input; } - Map hashes = new HashMap(); + Multimap hashes = ArrayListMultimap.create(); if (input instanceof FilterOperator) { ExprNodeDescUtils.getExprNodeColumnDesc(Arrays.asList(((FilterDesc)input.getConf()).getPredicate()), hashes); } @@ -3526,7 +3528,14 @@ private Operator genNotNullFilterForJoinSourcePlan(QB qb, Operator input, // virtual column, since those columns can never be null. continue; } - if(null != hashes.get(joinKeys[i].hashCode())) { + boolean skip = false; + for (ExprNodeColumnDesc node : hashes.get(joinKeys[i].hashCode())) { + if (node.isSame(joinKeys[i])) { + skip = true; + break; + } + } + if (skip) { // there is already a predicate on this src. continue; } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeDescUtils.java b/ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeDescUtils.java index 29ceb7f981..d887ca8015 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeDescUtils.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeDescUtils.java @@ -18,6 +18,8 @@ package org.apache.hadoop.hive.ql.plan; +import com.google.common.collect.Multimap; +import java.util.Collection; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.hadoop.hive.ql.exec.ColumnInfo; @@ -577,44 +579,51 @@ private static ExprNodeConstantDesc foldConstant(ExprNodeGenericFuncDesc func) { } catch (Exception e) { return null; } - } - - public static void getExprNodeColumnDesc(List exprDescList, - Map hashCodeTocolumnDescMap) { - for (ExprNodeDesc exprNodeDesc : exprDescList) { - getExprNodeColumnDesc(exprNodeDesc, hashCodeTocolumnDescMap); - } - } - - /** - * Get Map of ExprNodeColumnDesc HashCode to ExprNodeColumnDesc. - * - * @param exprDesc - * @param hashCodeToColumnDescMap - * Assumption: If two ExprNodeColumnDesc have same hash code then - * they are logically referring to same projection - */ - public static void getExprNodeColumnDesc(ExprNodeDesc exprDesc, - Map hashCodeToColumnDescMap) { - if (exprDesc instanceof ExprNodeColumnDesc) { - hashCodeToColumnDescMap.put(exprDesc.hashCode(), exprDesc); - } else if (exprDesc instanceof ExprNodeColumnListDesc) { - for (ExprNodeDesc child : exprDesc.getChildren()) { - getExprNodeColumnDesc(child, hashCodeToColumnDescMap); - } - } else if (exprDesc instanceof ExprNodeGenericFuncDesc) { - for (ExprNodeDesc child : exprDesc.getChildren()) { - getExprNodeColumnDesc(child, hashCodeToColumnDescMap); - } - } else if (exprDesc instanceof ExprNodeFieldDesc) { - getExprNodeColumnDesc(((ExprNodeFieldDesc) exprDesc).getDesc(), - hashCodeToColumnDescMap); - } else if( exprDesc instanceof ExprNodeSubQueryDesc) { - getExprNodeColumnDesc(((ExprNodeSubQueryDesc) exprDesc).getSubQueryLhs(), - hashCodeToColumnDescMap); - } + } + + public static void getExprNodeColumnDesc(List exprDescList, + Multimap hashCodeTocolumnDescMap) { + for (ExprNodeDesc exprNodeDesc : exprDescList) { + getExprNodeColumnDesc(exprNodeDesc, hashCodeTocolumnDescMap); + } + } - } + /** + * Get Map of ExprNodeColumnDesc HashCode to ExprNodeColumnDesc. + * + * @param exprDesc + * @param hashCodeToColumnDescMap + */ + public static void getExprNodeColumnDesc(ExprNodeDesc exprDesc, + Multimap hashCodeToColumnDescMap) { + if (exprDesc instanceof ExprNodeColumnDesc) { + Collection nodes = hashCodeToColumnDescMap.get(exprDesc.hashCode()); + boolean insert = true; + for (ExprNodeColumnDesc node : nodes) { + if (node.isSame(exprDesc)) { + insert = false; + break; + } + } + if (insert) { + nodes.add((ExprNodeColumnDesc) exprDesc); + } + } else if (exprDesc instanceof ExprNodeColumnListDesc) { + for (ExprNodeDesc child : exprDesc.getChildren()) { + getExprNodeColumnDesc(child, hashCodeToColumnDescMap); + } + } else if (exprDesc instanceof ExprNodeGenericFuncDesc) { + for (ExprNodeDesc child : exprDesc.getChildren()) { + getExprNodeColumnDesc(child, hashCodeToColumnDescMap); + } + } else if (exprDesc instanceof ExprNodeFieldDesc) { + getExprNodeColumnDesc(((ExprNodeFieldDesc) exprDesc).getDesc(), + hashCodeToColumnDescMap); + } else if(exprDesc instanceof ExprNodeSubQueryDesc) { + getExprNodeColumnDesc(((ExprNodeSubQueryDesc) exprDesc).getSubQueryLhs(), + hashCodeToColumnDescMap); + } + } public static boolean isConstant(ExprNodeDesc value) { if (value instanceof ExprNodeConstantDesc) { diff --git a/ql/src/test/queries/clientpositive/collision.q b/ql/src/test/queries/clientpositive/collision.q new file mode 100644 index 0000000000..8725fef1a7 --- /dev/null +++ b/ql/src/test/queries/clientpositive/collision.q @@ -0,0 +1,337 @@ +create database cpn; +create database cpn_view; + +drop table if exists cpn.mytable_1000_n; +CREATE external TABLE IF NOT EXISTS cpn.mytable_1000_n ( +col0 decimal(18,0), +col1 decimal(18,0), +col2 char(1), +col4 decimal(18,0), +col5 char(1), +col6 char(1), +col7 decimal(18,0), +col8 decimal(18,5), +col9 decimal(28,0), +col10 int, +col13 decimal(18,0), +col15 string, +col16 timestamp, +col17 string, +col18 string, +col19 char(1), +col21 char(10), +col20 char(1), +col22 char(3), +col23 timestamp, +col11 char(3), +col24 decimal(18,9), +col25 decimal(18,5), +col26 char(1), +col27 decimal(18,5), +col28 char(5), +col75 string, +col29 char(1), +col30 decimal(18,5), +col31 decimal(18,5), +col72 int, +col32 decimal(18,0), +col33 char(1), +col34 char(5), +col35 string, +col36 string, +col37 decimal(18,0), +col38 tinyint, +col73 string, +col39 char(1), +parent_col9 decimal(28,0), +col40 tinyint, +col41 tinyint, +col42 decimal(18,0), +col89 string, +col90 char(1), +col91 decimal(18,0), +col83 string, +col81 decimal(18,0), +col92 decimal(18,0), +col93 decimal(18,0), +col94 string, +col80 int, +col95 decimal(18,5), +col96 string, +col97 char(1), +col78 decimal(18,0), +col98 tinyint, +col87 string, +col99 decimal(18,5), +col100 string, +col101 char(1), +col14 decimal(18,0), +col102 tinyint, +col85 string, +col103 decimal(18,5), +col104 string, +col105 char(1), +col67 decimal(18,0), +col79 tinyint, +col106 string, +col107 timestamp, +col43 char(10), +col82 decimal(18,0), +col84 decimal(18,0), +col108 decimal(18,0), +col109 decimal(18,0), +col110 date, +col111 date, +col86 int, +col88 int, +col112 tinyint, +col113 tinyint, +col44 string, +col45 string, +col46 char(1), +col47 string, +col48 decimal(18,0), +col49 decimal(18,0), +col50 tinyint, +col51 string, +col12 char(3), +col52 decimal(18,9), +col53 decimal(18,5), +col54 decimal(18,5), +col55 char(1), +col56 tinyint, +col57 string, +col58 int, +col59 char(5), +col60 decimal(18,0), +col76 decimal(28,0), +col61 string, +col62 string, +col74 decimal(18,5), +col65 int, +col63 smallint, +col64 char(1), +col66 string, +col68 int, +col69 string, +col114 date, +col115 decimal(18,0), +col70 string, +col71 string, +col77 int, +col116 timestamp, +col117 timestamp) +partitioned by (col3 date) +stored as orc; + +EXPLAIN CBO +CREATE OR REPLACE VIEW cpn_view.myview_1000_n AS +SELECT +col0 +,col1 +,col2 +,col3 +,col4 +,col5 +,col6 +,col7 +,COALESCE(col8,0.0) AS col8 +,COALESCE(col9,0) as col9 +,col10 +,CASE WHEN COALESCE(col11,'$')='X' THEN 'Y' ELSE col11 END as Alt_col11 +,CASE WHEN COALESCE(col12,'$')='X' THEN 'Y' ELSE col12 END as Alt_col12 +,col13 +,(Case WHEN trim(col5) IN ('A','B','C') THEN COALESCE(col14,-1) ELSE COALESCE(col14,1) END) AS col14 +,col15 +,col16 +,col17 +,col18 +,col19 +,col20 +,col21 +,col22 +,col23 +,COALESCE(trim(col11),'Z') AS col11 +,col24 +,col25 +,col26 +,col27 +,col28 +,col29 +,col30 +,col31 +,col32 +,col33 +,col34 +,col35 +,col36 +,col37 +,col38 +,COALESCE(trim(col39),'N') AS col39 +,COALESCE(Parent_col9,-999) AS Parent_col9 +,COALESCE(col40,-1) AS col40 +,col41 +,col42 +,CASE WHEN trim(col43)='' THEN 'U' ELSE COALESCE(trim(col43),'U') END AS col43 +,col44 +,col45 +,col46 +,col47 +,col48 +,col49 +,col50 +,col51 +,col12 +,col52 +,col53 +,col54 +,col55 +,col56 +,col57 +,COALESCE(col58,-1) AS col58 +,col59 +,col60 +,col61 +,col62 +,(CASE WHEN trim(cast(col63 as string))='' THEN '-1' ELSE COALESCE(trim(cast(col63 as string)),'-1')END) AS col63 +,col64 +,col65 +,col66 +,COALESCE(col67,-999) as col67 +,col68 +,col69 +,col70 +,col71 +,col72 +,col73 +,col74 +,col75 +,col76 +,col77 +,col116 +,col117 +,COALESCE(col78,-1) AS col78 +,col79 as col79 +,col114 +,col115 +,COALESCE(col92,'-99') AS col92 +,COALESCE(col80,-1) AS col80 +,col81 +,col93 +,col82 as col82 +,col83 +,col89 AS col118 +,COALESCE(col84,'-99') AS col84 +,col85 +,col86 +,col87 +,COALESCE(col88,'-99') AS col88 +FROM cpn.mytable_1000_n; + +CREATE OR REPLACE VIEW cpn_view.myview_1000_n AS +SELECT +col0 +,col1 +,col2 +,col3 +,col4 +,col5 +,col6 +,col7 +,COALESCE(col8,0.0) AS col8 +,COALESCE(col9,0) as col9 +,col10 +,CASE WHEN COALESCE(col11,'$')='X' THEN 'Y' ELSE col11 END as Alt_col11 +,CASE WHEN COALESCE(col12,'$')='X' THEN 'Y' ELSE col12 END as Alt_col12 +,col13 +,(Case WHEN trim(col5) IN ('A','B','C') THEN COALESCE(col14,-1) ELSE COALESCE(col14,1) END) AS col14 +,col15 +,col16 +,col17 +,col18 +,col19 +,col20 +,col21 +,col22 +,col23 +,COALESCE(trim(col11),'Z') AS col11 +,col24 +,col25 +,col26 +,col27 +,col28 +,col29 +,col30 +,col31 +,col32 +,col33 +,col34 +,col35 +,col36 +,col37 +,col38 +,COALESCE(trim(col39),'N') AS col39 +,COALESCE(Parent_col9,-999) AS Parent_col9 +,COALESCE(col40,-1) AS col40 +,col41 +,col42 +,CASE WHEN trim(col43)='' THEN 'U' ELSE COALESCE(trim(col43),'U') END AS col43 +,col44 +,col45 +,col46 +,col47 +,col48 +,col49 +,col50 +,col51 +,col12 +,col52 +,col53 +,col54 +,col55 +,col56 +,col57 +,COALESCE(col58,-1) AS col58 +,col59 +,col60 +,col61 +,col62 +,(CASE WHEN trim(cast(col63 as string))='' THEN '-1' ELSE COALESCE(trim(cast(col63 as string)),'-1')END) AS col63 +,col64 +,col65 +,col66 +,COALESCE(col67,-999) as col67 +,col68 +,col69 +,col70 +,col71 +,col72 +,col73 +,col74 +,col75 +,col76 +,col77 +,col116 +,col117 +,COALESCE(col78,-1) AS col78 +,col79 as col79 +,col114 +,col115 +,COALESCE(col92,'-99') AS col92 +,COALESCE(col80,-1) AS col80 +,col81 +,col93 +,col82 as col82 +,col83 +,col89 AS col118 +,COALESCE(col84,'-99') AS col84 +,col85 +,col86 +,col87 +,COALESCE(col88,'-99') AS col88 +FROM cpn.mytable_1000_n; + +select * from cpn_view.myview_1000_n; + +drop view cpn_view.myview_1000_n; +drop table cpn.mytable_1000_n; diff --git a/ql/src/test/results/clientpositive/collision.q.out b/ql/src/test/results/clientpositive/collision.q.out new file mode 100644 index 0000000000..4b889df49d --- /dev/null +++ b/ql/src/test/results/clientpositive/collision.q.out @@ -0,0 +1,819 @@ +PREHOOK: query: create database cpn +PREHOOK: type: CREATEDATABASE +PREHOOK: Output: database:cpn +POSTHOOK: query: create database cpn +POSTHOOK: type: CREATEDATABASE +POSTHOOK: Output: database:cpn +PREHOOK: query: create database cpn_view +PREHOOK: type: CREATEDATABASE +PREHOOK: Output: database:cpn_view +POSTHOOK: query: create database cpn_view +POSTHOOK: type: CREATEDATABASE +POSTHOOK: Output: database:cpn_view +PREHOOK: query: drop table if exists cpn.mytable_1000_n +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists cpn.mytable_1000_n +POSTHOOK: type: DROPTABLE +PREHOOK: query: CREATE external TABLE IF NOT EXISTS cpn.mytable_1000_n ( +col0 decimal(18,0), +col1 decimal(18,0), +col2 char(1), +col4 decimal(18,0), +col5 char(1), +col6 char(1), +col7 decimal(18,0), +col8 decimal(18,5), +col9 decimal(28,0), +col10 int, +col13 decimal(18,0), +col15 string, +col16 timestamp, +col17 string, +col18 string, +col19 char(1), +col21 char(10), +col20 char(1), +col22 char(3), +col23 timestamp, +col11 char(3), +col24 decimal(18,9), +col25 decimal(18,5), +col26 char(1), +col27 decimal(18,5), +col28 char(5), +col75 string, +col29 char(1), +col30 decimal(18,5), +col31 decimal(18,5), +col72 int, +col32 decimal(18,0), +col33 char(1), +col34 char(5), +col35 string, +col36 string, +col37 decimal(18,0), +col38 tinyint, +col73 string, +col39 char(1), +parent_col9 decimal(28,0), +col40 tinyint, +col41 tinyint, +col42 decimal(18,0), +col89 string, +col90 char(1), +col91 decimal(18,0), +col83 string, +col81 decimal(18,0), +col92 decimal(18,0), +col93 decimal(18,0), +col94 string, +col80 int, +col95 decimal(18,5), +col96 string, +col97 char(1), +col78 decimal(18,0), +col98 tinyint, +col87 string, +col99 decimal(18,5), +col100 string, +col101 char(1), +col14 decimal(18,0), +col102 tinyint, +col85 string, +col103 decimal(18,5), +col104 string, +col105 char(1), +col67 decimal(18,0), +col79 tinyint, +col106 string, +col107 timestamp, +col43 char(10), +col82 decimal(18,0), +col84 decimal(18,0), +col108 decimal(18,0), +col109 decimal(18,0), +col110 date, +col111 date, +col86 int, +col88 int, +col112 tinyint, +col113 tinyint, +col44 string, +col45 string, +col46 char(1), +col47 string, +col48 decimal(18,0), +col49 decimal(18,0), +col50 tinyint, +col51 string, +col12 char(3), +col52 decimal(18,9), +col53 decimal(18,5), +col54 decimal(18,5), +col55 char(1), +col56 tinyint, +col57 string, +col58 int, +col59 char(5), +col60 decimal(18,0), +col76 decimal(28,0), +col61 string, +col62 string, +col74 decimal(18,5), +col65 int, +col63 smallint, +col64 char(1), +col66 string, +col68 int, +col69 string, +col114 date, +col115 decimal(18,0), +col70 string, +col71 string, +col77 int, +col116 timestamp, +col117 timestamp) +partitioned by (col3 date) +stored as orc +PREHOOK: type: CREATETABLE +PREHOOK: Output: cpn@mytable_1000_n +PREHOOK: Output: database:cpn +POSTHOOK: query: CREATE external TABLE IF NOT EXISTS cpn.mytable_1000_n ( +col0 decimal(18,0), +col1 decimal(18,0), +col2 char(1), +col4 decimal(18,0), +col5 char(1), +col6 char(1), +col7 decimal(18,0), +col8 decimal(18,5), +col9 decimal(28,0), +col10 int, +col13 decimal(18,0), +col15 string, +col16 timestamp, +col17 string, +col18 string, +col19 char(1), +col21 char(10), +col20 char(1), +col22 char(3), +col23 timestamp, +col11 char(3), +col24 decimal(18,9), +col25 decimal(18,5), +col26 char(1), +col27 decimal(18,5), +col28 char(5), +col75 string, +col29 char(1), +col30 decimal(18,5), +col31 decimal(18,5), +col72 int, +col32 decimal(18,0), +col33 char(1), +col34 char(5), +col35 string, +col36 string, +col37 decimal(18,0), +col38 tinyint, +col73 string, +col39 char(1), +parent_col9 decimal(28,0), +col40 tinyint, +col41 tinyint, +col42 decimal(18,0), +col89 string, +col90 char(1), +col91 decimal(18,0), +col83 string, +col81 decimal(18,0), +col92 decimal(18,0), +col93 decimal(18,0), +col94 string, +col80 int, +col95 decimal(18,5), +col96 string, +col97 char(1), +col78 decimal(18,0), +col98 tinyint, +col87 string, +col99 decimal(18,5), +col100 string, +col101 char(1), +col14 decimal(18,0), +col102 tinyint, +col85 string, +col103 decimal(18,5), +col104 string, +col105 char(1), +col67 decimal(18,0), +col79 tinyint, +col106 string, +col107 timestamp, +col43 char(10), +col82 decimal(18,0), +col84 decimal(18,0), +col108 decimal(18,0), +col109 decimal(18,0), +col110 date, +col111 date, +col86 int, +col88 int, +col112 tinyint, +col113 tinyint, +col44 string, +col45 string, +col46 char(1), +col47 string, +col48 decimal(18,0), +col49 decimal(18,0), +col50 tinyint, +col51 string, +col12 char(3), +col52 decimal(18,9), +col53 decimal(18,5), +col54 decimal(18,5), +col55 char(1), +col56 tinyint, +col57 string, +col58 int, +col59 char(5), +col60 decimal(18,0), +col76 decimal(28,0), +col61 string, +col62 string, +col74 decimal(18,5), +col65 int, +col63 smallint, +col64 char(1), +col66 string, +col68 int, +col69 string, +col114 date, +col115 decimal(18,0), +col70 string, +col71 string, +col77 int, +col116 timestamp, +col117 timestamp) +partitioned by (col3 date) +stored as orc +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: cpn@mytable_1000_n +POSTHOOK: Output: database:cpn +PREHOOK: query: EXPLAIN CBO +CREATE OR REPLACE VIEW cpn_view.myview_1000_n AS +SELECT +col0 +,col1 +,col2 +,col3 +,col4 +,col5 +,col6 +,col7 +,COALESCE(col8,0.0) AS col8 +,COALESCE(col9,0) as col9 +,col10 +,CASE WHEN COALESCE(col11,'$')='X' THEN 'Y' ELSE col11 END as Alt_col11 +,CASE WHEN COALESCE(col12,'$')='X' THEN 'Y' ELSE col12 END as Alt_col12 +,col13 +,(Case WHEN trim(col5) IN ('A','B','C') THEN COALESCE(col14,-1) ELSE COALESCE(col14,1) END) AS col14 +,col15 +,col16 +,col17 +,col18 +,col19 +,col20 +,col21 +,col22 +,col23 +,COALESCE(trim(col11),'Z') AS col11 +,col24 +,col25 +,col26 +,col27 +,col28 +,col29 +,col30 +,col31 +,col32 +,col33 +,col34 +,col35 +,col36 +,col37 +,col38 +,COALESCE(trim(col39),'N') AS col39 +,COALESCE(Parent_col9,-999) AS Parent_col9 +,COALESCE(col40,-1) AS col40 +,col41 +,col42 +,CASE WHEN trim(col43)='' THEN 'U' ELSE COALESCE(trim(col43),'U') END AS col43 +,col44 +,col45 +,col46 +,col47 +,col48 +,col49 +,col50 +,col51 +,col12 +,col52 +,col53 +,col54 +,col55 +,col56 +,col57 +,COALESCE(col58,-1) AS col58 +,col59 +,col60 +,col61 +,col62 +,(CASE WHEN trim(cast(col63 as string))='' THEN '-1' ELSE COALESCE(trim(cast(col63 as string)),'-1')END) AS col63 +,col64 +,col65 +,col66 +,COALESCE(col67,-999) as col67 +,col68 +,col69 +,col70 +,col71 +,col72 +,col73 +,col74 +,col75 +,col76 +,col77 +,col116 +,col117 +,COALESCE(col78,-1) AS col78 +,col79 as col79 +,col114 +,col115 +,COALESCE(col92,'-99') AS col92 +,COALESCE(col80,-1) AS col80 +,col81 +,col93 +,col82 as col82 +,col83 +,col89 AS col118 +,COALESCE(col84,'-99') AS col84 +,col85 +,col86 +,col87 +,COALESCE(col88,'-99') AS col88 +FROM cpn.mytable_1000_n +PREHOOK: type: CREATEVIEW +PREHOOK: Input: cpn@mytable_1000_n +PREHOOK: Output: cpn_view@myview_1000_n +PREHOOK: Output: database:cpn_view +POSTHOOK: query: EXPLAIN CBO +CREATE OR REPLACE VIEW cpn_view.myview_1000_n AS +SELECT +col0 +,col1 +,col2 +,col3 +,col4 +,col5 +,col6 +,col7 +,COALESCE(col8,0.0) AS col8 +,COALESCE(col9,0) as col9 +,col10 +,CASE WHEN COALESCE(col11,'$')='X' THEN 'Y' ELSE col11 END as Alt_col11 +,CASE WHEN COALESCE(col12,'$')='X' THEN 'Y' ELSE col12 END as Alt_col12 +,col13 +,(Case WHEN trim(col5) IN ('A','B','C') THEN COALESCE(col14,-1) ELSE COALESCE(col14,1) END) AS col14 +,col15 +,col16 +,col17 +,col18 +,col19 +,col20 +,col21 +,col22 +,col23 +,COALESCE(trim(col11),'Z') AS col11 +,col24 +,col25 +,col26 +,col27 +,col28 +,col29 +,col30 +,col31 +,col32 +,col33 +,col34 +,col35 +,col36 +,col37 +,col38 +,COALESCE(trim(col39),'N') AS col39 +,COALESCE(Parent_col9,-999) AS Parent_col9 +,COALESCE(col40,-1) AS col40 +,col41 +,col42 +,CASE WHEN trim(col43)='' THEN 'U' ELSE COALESCE(trim(col43),'U') END AS col43 +,col44 +,col45 +,col46 +,col47 +,col48 +,col49 +,col50 +,col51 +,col12 +,col52 +,col53 +,col54 +,col55 +,col56 +,col57 +,COALESCE(col58,-1) AS col58 +,col59 +,col60 +,col61 +,col62 +,(CASE WHEN trim(cast(col63 as string))='' THEN '-1' ELSE COALESCE(trim(cast(col63 as string)),'-1')END) AS col63 +,col64 +,col65 +,col66 +,COALESCE(col67,-999) as col67 +,col68 +,col69 +,col70 +,col71 +,col72 +,col73 +,col74 +,col75 +,col76 +,col77 +,col116 +,col117 +,COALESCE(col78,-1) AS col78 +,col79 as col79 +,col114 +,col115 +,COALESCE(col92,'-99') AS col92 +,COALESCE(col80,-1) AS col80 +,col81 +,col93 +,col82 as col82 +,col83 +,col89 AS col118 +,COALESCE(col84,'-99') AS col84 +,col85 +,col86 +,col87 +,COALESCE(col88,'-99') AS col88 +FROM cpn.mytable_1000_n +POSTHOOK: type: CREATEVIEW +POSTHOOK: Input: cpn@mytable_1000_n +POSTHOOK: Output: cpn_view@myview_1000_n +POSTHOOK: Output: database:cpn_view +CBO PLAN: +HiveProject(col0=[$0], col1=[$1], col2=[$2], col3=[$118], col4=[$3], col5=[$4], col6=[$5], col7=[$6], col8=[CASE(IS NOT NULL($7), $7, 0:DECIMAL(1, 0))], col9=[CASE(IS NOT NULL($8), $8, 0:DECIMAL(28, 0))], col10=[$9], alt_col11=[CASE(CASE(IS NOT NULL($20), =(CAST($20):VARCHAR(2147483647) CHARACTER SET "UTF-16LE", _UTF-16LE'X'), false), _UTF-16LE'Y':VARCHAR(2147483647) CHARACTER SET "UTF-16LE", CAST($20):VARCHAR(2147483647) CHARACTER SET "UTF-16LE")], alt_col12=[CASE(CASE(IS NOT NULL($91), =(CAST($91):VARCHAR(2147483647) CHARACTER SET "UTF-16LE", _UTF-16LE'X'), false), _UTF-16LE'Y':VARCHAR(2147483647) CHARACTER SET "UTF-16LE", CAST($91):VARCHAR(2147483647) CHARACTER SET "UTF-16LE")], col13=[$10], col14=[CASE(IN(trim($4), _UTF-16LE'A', _UTF-16LE'B', _UTF-16LE'C'), CASE(IS NOT NULL($62), $62, -1:DECIMAL(18, 0)), CASE(IS NOT NULL($62), $62, 1:DECIMAL(18, 0)))], col15=[$11], col16=[$12], col17=[$13], col18=[$14], col19=[$15], col20=[$17], col21=[$16], col22=[$18], col23=[$19], col11=[CASE(IS NOT NULL(trim($20)), trim($20), _UTF-16LE'Z':VARCHAR(2147483647) CHARACTER SET "UTF-16LE")], col24=[$21], col25=[$22], col26=[$23], col27=[$24], col28=[$25], col29=[$27], col30=[$28], col31=[$29], col32=[$31], col33=[$32], col34=[$33], col35=[$34], col36=[$35], col37=[$36], col38=[$37], col39=[CASE(IS NOT NULL(trim($39)), trim($39), _UTF-16LE'N':VARCHAR(2147483647) CHARACTER SET "UTF-16LE")], parent_col9=[CASE(IS NOT NULL($40), $40, -999:DECIMAL(28, 0))], col40=[CASE(IS NOT NULL($41), CAST($41):INTEGER, -1)], col41=[$42], col42=[$43], col43=[CASE(=(trim($72), _UTF-16LE''), _UTF-16LE'U':VARCHAR(2147483647) CHARACTER SET "UTF-16LE", CASE(IS NOT NULL(trim($72)), trim($72), _UTF-16LE'U':VARCHAR(2147483647) CHARACTER SET "UTF-16LE"))], col44=[$83], col45=[$84], col46=[$85], col47=[$86], col48=[$87], col49=[$88], col50=[$89], col51=[$90], col12=[$91], col52=[$92], col53=[$93], col54=[$94], col55=[$95], col56=[$96], col57=[$97], col58=[CASE(IS NOT NULL($98), $98, -1)], col59=[$99], col60=[$100], col61=[$102], col62=[$103], col63=[CASE(=(trim(CAST($106):VARCHAR(2147483647) CHARACTER SET "UTF-16LE"), _UTF-16LE''), _UTF-16LE'-1':VARCHAR(2147483647) CHARACTER SET "UTF-16LE", CASE(IS NOT NULL(trim(CAST($106):VARCHAR(2147483647) CHARACTER SET "UTF-16LE")), trim(CAST($106):VARCHAR(2147483647) CHARACTER SET "UTF-16LE"), _UTF-16LE'-1':VARCHAR(2147483647) CHARACTER SET "UTF-16LE"))], col64=[$107], col65=[$105], col66=[$108], col67=[CASE(IS NOT NULL($68), $68, -999:DECIMAL(18, 0))], col68=[$109], col69=[$110], col70=[$113], col71=[$114], col72=[$30], col73=[$38], col74=[$104], col75=[$26], col76=[$101], col77=[$115], col116=[$116], col117=[$117], col78=[CASE(IS NOT NULL($56), $56, -1:DECIMAL(18, 0))], col79=[$69], col114=[$111], col115=[$112], col92=[CASE(IS NOT NULL($49), CAST($49):VARCHAR(2147483647) CHARACTER SET "UTF-16LE", _UTF-16LE'-99':VARCHAR(2147483647) CHARACTER SET "UTF-16LE")], col80=[CASE(IS NOT NULL($52), $52, -1)], col81=[$48], col93=[$50], col82=[$73], col83=[$47], col118=[$44], col84=[CASE(IS NOT NULL($74), CAST($74):VARCHAR(2147483647) CHARACTER SET "UTF-16LE", _UTF-16LE'-99':VARCHAR(2147483647) CHARACTER SET "UTF-16LE")], col85=[$64], col86=[$79], col87=[$58], col88=[CASE(IS NOT NULL($80), CAST($80):VARCHAR(2147483647) CHARACTER SET "UTF-16LE", _UTF-16LE'-99':VARCHAR(2147483647) CHARACTER SET "UTF-16LE")]) + HiveTableScan(table=[[cpn, mytable_1000_n]], table:alias=[mytable_1000_n]) + +PREHOOK: query: CREATE OR REPLACE VIEW cpn_view.myview_1000_n AS +SELECT +col0 +,col1 +,col2 +,col3 +,col4 +,col5 +,col6 +,col7 +,COALESCE(col8,0.0) AS col8 +,COALESCE(col9,0) as col9 +,col10 +,CASE WHEN COALESCE(col11,'$')='X' THEN 'Y' ELSE col11 END as Alt_col11 +,CASE WHEN COALESCE(col12,'$')='X' THEN 'Y' ELSE col12 END as Alt_col12 +,col13 +,(Case WHEN trim(col5) IN ('A','B','C') THEN COALESCE(col14,-1) ELSE COALESCE(col14,1) END) AS col14 +,col15 +,col16 +,col17 +,col18 +,col19 +,col20 +,col21 +,col22 +,col23 +,COALESCE(trim(col11),'Z') AS col11 +,col24 +,col25 +,col26 +,col27 +,col28 +,col29 +,col30 +,col31 +,col32 +,col33 +,col34 +,col35 +,col36 +,col37 +,col38 +,COALESCE(trim(col39),'N') AS col39 +,COALESCE(Parent_col9,-999) AS Parent_col9 +,COALESCE(col40,-1) AS col40 +,col41 +,col42 +,CASE WHEN trim(col43)='' THEN 'U' ELSE COALESCE(trim(col43),'U') END AS col43 +,col44 +,col45 +,col46 +,col47 +,col48 +,col49 +,col50 +,col51 +,col12 +,col52 +,col53 +,col54 +,col55 +,col56 +,col57 +,COALESCE(col58,-1) AS col58 +,col59 +,col60 +,col61 +,col62 +,(CASE WHEN trim(cast(col63 as string))='' THEN '-1' ELSE COALESCE(trim(cast(col63 as string)),'-1')END) AS col63 +,col64 +,col65 +,col66 +,COALESCE(col67,-999) as col67 +,col68 +,col69 +,col70 +,col71 +,col72 +,col73 +,col74 +,col75 +,col76 +,col77 +,col116 +,col117 +,COALESCE(col78,-1) AS col78 +,col79 as col79 +,col114 +,col115 +,COALESCE(col92,'-99') AS col92 +,COALESCE(col80,-1) AS col80 +,col81 +,col93 +,col82 as col82 +,col83 +,col89 AS col118 +,COALESCE(col84,'-99') AS col84 +,col85 +,col86 +,col87 +,COALESCE(col88,'-99') AS col88 +FROM cpn.mytable_1000_n +PREHOOK: type: CREATEVIEW +PREHOOK: Input: cpn@mytable_1000_n +PREHOOK: Output: cpn_view@myview_1000_n +PREHOOK: Output: database:cpn_view +POSTHOOK: query: CREATE OR REPLACE VIEW cpn_view.myview_1000_n AS +SELECT +col0 +,col1 +,col2 +,col3 +,col4 +,col5 +,col6 +,col7 +,COALESCE(col8,0.0) AS col8 +,COALESCE(col9,0) as col9 +,col10 +,CASE WHEN COALESCE(col11,'$')='X' THEN 'Y' ELSE col11 END as Alt_col11 +,CASE WHEN COALESCE(col12,'$')='X' THEN 'Y' ELSE col12 END as Alt_col12 +,col13 +,(Case WHEN trim(col5) IN ('A','B','C') THEN COALESCE(col14,-1) ELSE COALESCE(col14,1) END) AS col14 +,col15 +,col16 +,col17 +,col18 +,col19 +,col20 +,col21 +,col22 +,col23 +,COALESCE(trim(col11),'Z') AS col11 +,col24 +,col25 +,col26 +,col27 +,col28 +,col29 +,col30 +,col31 +,col32 +,col33 +,col34 +,col35 +,col36 +,col37 +,col38 +,COALESCE(trim(col39),'N') AS col39 +,COALESCE(Parent_col9,-999) AS Parent_col9 +,COALESCE(col40,-1) AS col40 +,col41 +,col42 +,CASE WHEN trim(col43)='' THEN 'U' ELSE COALESCE(trim(col43),'U') END AS col43 +,col44 +,col45 +,col46 +,col47 +,col48 +,col49 +,col50 +,col51 +,col12 +,col52 +,col53 +,col54 +,col55 +,col56 +,col57 +,COALESCE(col58,-1) AS col58 +,col59 +,col60 +,col61 +,col62 +,(CASE WHEN trim(cast(col63 as string))='' THEN '-1' ELSE COALESCE(trim(cast(col63 as string)),'-1')END) AS col63 +,col64 +,col65 +,col66 +,COALESCE(col67,-999) as col67 +,col68 +,col69 +,col70 +,col71 +,col72 +,col73 +,col74 +,col75 +,col76 +,col77 +,col116 +,col117 +,COALESCE(col78,-1) AS col78 +,col79 as col79 +,col114 +,col115 +,COALESCE(col92,'-99') AS col92 +,COALESCE(col80,-1) AS col80 +,col81 +,col93 +,col82 as col82 +,col83 +,col89 AS col118 +,COALESCE(col84,'-99') AS col84 +,col85 +,col86 +,col87 +,COALESCE(col88,'-99') AS col88 +FROM cpn.mytable_1000_n +POSTHOOK: type: CREATEVIEW +POSTHOOK: Input: cpn@mytable_1000_n +POSTHOOK: Output: cpn_view@myview_1000_n +POSTHOOK: Output: database:cpn_view +POSTHOOK: Lineage: myview_1000_n.alt_col11 EXPRESSION [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col11, type:char(3), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.alt_col12 EXPRESSION [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col12, type:char(3), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col0 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col0, type:decimal(18,0), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col1 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col1, type:decimal(18,0), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col10 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col10, type:int, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col11 EXPRESSION [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col11, type:char(3), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col114 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col114, type:date, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col115 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col115, type:decimal(18,0), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col116 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col116, type:timestamp, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col117 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col117, type:timestamp, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col118 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col89, type:string, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col12 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col12, type:char(3), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col13 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col13, type:decimal(18,0), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col14 EXPRESSION [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col5, type:char(1), comment:null), (mytable_1000_n)mytable_1000_n.FieldSchema(name:col14, type:decimal(18,0), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col15 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col15, type:string, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col16 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col16, type:timestamp, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col17 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col17, type:string, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col18 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col18, type:string, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col19 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col19, type:char(1), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col2 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col2, type:char(1), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col20 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col20, type:char(1), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col21 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col21, type:char(10), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col22 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col22, type:char(3), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col23 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col23, type:timestamp, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col24 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col24, type:decimal(18,9), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col25 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col25, type:decimal(18,5), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col26 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col26, type:char(1), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col27 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col27, type:decimal(18,5), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col28 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col28, type:char(5), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col29 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col29, type:char(1), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col3 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col3, type:date, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col30 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col30, type:decimal(18,5), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col31 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col31, type:decimal(18,5), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col32 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col32, type:decimal(18,0), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col33 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col33, type:char(1), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col34 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col34, type:char(5), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col35 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col35, type:string, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col36 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col36, type:string, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col37 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col37, type:decimal(18,0), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col38 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col38, type:tinyint, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col39 EXPRESSION [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col39, type:char(1), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col4 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col4, type:decimal(18,0), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col40 EXPRESSION [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col40, type:tinyint, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col41 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col41, type:tinyint, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col42 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col42, type:decimal(18,0), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col43 EXPRESSION [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col43, type:char(10), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col44 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col44, type:string, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col45 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col45, type:string, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col46 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col46, type:char(1), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col47 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col47, type:string, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col48 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col48, type:decimal(18,0), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col49 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col49, type:decimal(18,0), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col5 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col5, type:char(1), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col50 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col50, type:tinyint, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col51 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col51, type:string, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col52 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col52, type:decimal(18,9), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col53 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col53, type:decimal(18,5), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col54 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col54, type:decimal(18,5), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col55 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col55, type:char(1), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col56 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col56, type:tinyint, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col57 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col57, type:string, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col58 EXPRESSION [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col58, type:int, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col59 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col59, type:char(5), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col6 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col6, type:char(1), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col60 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col60, type:decimal(18,0), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col61 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col61, type:string, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col62 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col62, type:string, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col63 EXPRESSION [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col63, type:smallint, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col64 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col64, type:char(1), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col65 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col65, type:int, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col66 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col66, type:string, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col67 EXPRESSION [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col67, type:decimal(18,0), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col68 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col68, type:int, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col69 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col69, type:string, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col7 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col7, type:decimal(18,0), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col70 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col70, type:string, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col71 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col71, type:string, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col72 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col72, type:int, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col73 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col73, type:string, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col74 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col74, type:decimal(18,5), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col75 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col75, type:string, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col76 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col76, type:decimal(28,0), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col77 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col77, type:int, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col78 EXPRESSION [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col78, type:decimal(18,0), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col79 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col79, type:tinyint, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col8 EXPRESSION [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col8, type:decimal(18,5), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col80 EXPRESSION [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col80, type:int, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col81 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col81, type:decimal(18,0), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col82 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col82, type:decimal(18,0), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col83 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col83, type:string, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col84 EXPRESSION [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col84, type:decimal(18,0), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col85 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col85, type:string, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col86 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col86, type:int, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col87 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col87, type:string, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col88 EXPRESSION [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col88, type:int, comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col9 EXPRESSION [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col9, type:decimal(28,0), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col92 EXPRESSION [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col92, type:decimal(18,0), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.col93 SIMPLE [(mytable_1000_n)mytable_1000_n.FieldSchema(name:col93, type:decimal(18,0), comment:null), ] +POSTHOOK: Lineage: myview_1000_n.parent_col9 EXPRESSION [(mytable_1000_n)mytable_1000_n.FieldSchema(name:parent_col9, type:decimal(28,0), comment:null), ] +PREHOOK: query: select * from cpn_view.myview_1000_n +PREHOOK: type: QUERY +PREHOOK: Input: cpn@mytable_1000_n +PREHOOK: Input: cpn_view@myview_1000_n +#### A masked pattern was here #### +POSTHOOK: query: select * from cpn_view.myview_1000_n +POSTHOOK: type: QUERY +POSTHOOK: Input: cpn@mytable_1000_n +POSTHOOK: Input: cpn_view@myview_1000_n +#### A masked pattern was here #### +PREHOOK: query: drop view cpn_view.myview_1000_n +PREHOOK: type: DROPVIEW +PREHOOK: Input: cpn_view@myview_1000_n +PREHOOK: Output: cpn_view@myview_1000_n +POSTHOOK: query: drop view cpn_view.myview_1000_n +POSTHOOK: type: DROPVIEW +POSTHOOK: Input: cpn_view@myview_1000_n +POSTHOOK: Output: cpn_view@myview_1000_n +PREHOOK: query: drop table cpn.mytable_1000_n +PREHOOK: type: DROPTABLE +PREHOOK: Input: cpn@mytable_1000_n +PREHOOK: Output: cpn@mytable_1000_n +POSTHOOK: query: drop table cpn.mytable_1000_n +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: cpn@mytable_1000_n +POSTHOOK: Output: cpn@mytable_1000_n