You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by jc...@apache.org on 2019/07/10 17:17:24 UTC
[hive] branch master updated: HIVE-18842: CLUSTERED ON/DISTRIBUTED
ON+SORTED ON support for materialized views (Jesus Camacho Rodriguez,
reviewed by Vineet Garg)
This is an automated email from the ASF dual-hosted git repository.
jcamacho pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/master by this push:
new 4c028b8 HIVE-18842: CLUSTERED ON/DISTRIBUTED ON+SORTED ON support for materialized views (Jesus Camacho Rodriguez, reviewed by Vineet Garg)
4c028b8 is described below
commit 4c028b8eadf8f7ad3aea2ad5ca75a6465227fa4f
Author: Jesus Camacho Rodriguez <jc...@apache.org>
AuthorDate: Tue Jul 2 01:18:46 2019 -0700
HIVE-18842: CLUSTERED ON/DISTRIBUTED ON+SORTED ON support for materialized views (Jesus Camacho Rodriguez, reviewed by Vineet Garg)
Close apache/hive#696
---
.../org/apache/hadoop/hive/conf/Constants.java | 2 +
.../test/resources/testconfiguration.properties | 3 +
.../hadoop/hive/ql/ddl/view/CreateViewDesc.java | 84 +-
.../org/apache/hadoop/hive/ql/exec/Utilities.java | 23 +
.../ql/optimizer/SortedDynPartitionOptimizer.java | 9 +
.../org/apache/hadoop/hive/ql/parse/HiveLexer.g | 1 +
.../org/apache/hadoop/hive/ql/parse/HiveParser.g | 41 +-
.../hadoop/hive/ql/parse/IdentifiersParser.g | 2 +-
.../hadoop/hive/ql/parse/SemanticAnalyzer.java | 306 ++-
.../hadoop/hive/ql/plan/ImportTableDesc.java | 3 +
.../clientnegative/materialized_view_distribute.q | 12 +
.../materialized_view_partition_cluster_same_col.q | 12 +
.../materialized_view_partition_sort_same_col.q | 12 +
.../clientnegative/materialized_view_sort.q | 12 +
.../clientpositive/materialized_view_cluster.q | 98 +
.../materialized_view_distribute_sort.q | 85 +
.../materialized_view_partition_cluster.q | 95 +
.../materialized_view_distribute.q.out | 15 +
...erialized_view_partition_cluster_same_col.q.out | 15 +
...materialized_view_partition_sort_same_col.q.out | 15 +
.../clientnegative/materialized_view_sort.q.out | 15 +
.../llap/materialized_view_cluster.q.out | 1361 ++++++++++
.../llap/materialized_view_distribute_sort.q.out | 1312 ++++++++++
.../llap/materialized_view_partition_cluster.q.out | 2605 ++++++++++++++++++++
.../llap/materialized_view_sort.q.out | 909 +++++++
25 files changed, 7009 insertions(+), 38 deletions(-)
diff --git a/common/src/java/org/apache/hadoop/hive/conf/Constants.java b/common/src/java/org/apache/hadoop/hive/conf/Constants.java
index a2e6f49..7a6ee95 100644
--- a/common/src/java/org/apache/hadoop/hive/conf/Constants.java
+++ b/common/src/java/org/apache/hadoop/hive/conf/Constants.java
@@ -69,4 +69,6 @@ public class Constants {
public static final String HADOOP_CREDENTIAL_PROVIDER_PATH_CONFIG = "hadoop.security.credential.provider.path";
public static final String MATERIALIZED_VIEW_REWRITING_TIME_WINDOW = "rewriting.time.window";
+ public static final String MATERIALIZED_VIEW_SORT_COLUMNS = "materializedview.sort.columns";
+ public static final String MATERIALIZED_VIEW_DISTRIBUTE_COLUMNS = "materializedview.distribute.columns";
}
diff --git a/itests/src/test/resources/testconfiguration.properties b/itests/src/test/resources/testconfiguration.properties
index 6d6e5db..9eb5bf6 100644
--- a/itests/src/test/resources/testconfiguration.properties
+++ b/itests/src/test/resources/testconfiguration.properties
@@ -587,6 +587,7 @@ minillaplocal.query.files=\
load_data_using_job.q,\
load_dyn_part5.q,\
lvj_mapjoin.q,\
+ materialized_view_cluster.q,\
materialized_view_create.q,\
materialized_view_create_rewrite_dummy.q,\
materialized_view_create_rewrite_multi_db.q,\
@@ -599,7 +600,9 @@ minillaplocal.query.files=\
materialized_view_create_rewrite_4.q,\
materialized_view_create_rewrite_5.q,\
materialized_view_describe.q,\
+ materialized_view_distribute_sort.q,\
materialized_view_drop.q,\
+ materialized_view_partition_cluster.q,\
materialized_view_partitioned.q,\
materialized_view_partitioned_2.q,\
materialized_view_partitioned_3.q,\
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/ddl/view/CreateViewDesc.java b/ql/src/java/org/apache/hadoop/hive/ql/ddl/view/CreateViewDesc.java
index 8e7f99b..e51465e 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/ddl/view/CreateViewDesc.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/ddl/view/CreateViewDesc.java
@@ -23,8 +23,10 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
+import org.apache.commons.collections.CollectionUtils;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hive.common.StatsSetupConst;
+import org.apache.hadoop.hive.conf.Constants;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.metastore.TableType;
import org.apache.hadoop.hive.metastore.api.FieldSchema;
@@ -70,6 +72,10 @@ public class CreateViewDesc implements DDLDesc, Serializable {
private String storageHandler; // only used for materialized views
private Map<String, String> serdeProps; // only used for materialized views
private Set<String> tablesUsed; // only used for materialized views
+ private List<String> sortColNames; // only used for materialized views
+ private List<FieldSchema> sortCols; // only used for materialized views
+ private List<String> distributeColNames; // only used for materialized views
+ private List<FieldSchema> distributeCols; // only used for materialized views
private ReplicationSpec replicationSpec = null;
private String ownerName = null;
@@ -77,14 +83,17 @@ public class CreateViewDesc implements DDLDesc, Serializable {
* Used to create a materialized view descriptor.
*/
public CreateViewDesc(String viewName, List<FieldSchema> schema, String comment, Map<String, String> tblProps,
- List<String> partColNames, boolean ifNotExists, boolean orReplace, boolean rewriteEnabled, boolean isAlterViewAs,
- String inputFormat, String outputFormat, String location,
- String serde, String storageHandler, Map<String, String> serdeProps) {
+ List<String> partColNames, List<String> sortColNames, List<String> distributeColNames,
+ boolean ifNotExists, boolean orReplace, boolean rewriteEnabled, boolean isAlterViewAs,
+ String inputFormat, String outputFormat, String location,
+ String serde, String storageHandler, Map<String, String> serdeProps) {
this.viewName = viewName;
this.schema = schema;
this.comment = comment;
this.tblProps = tblProps;
this.partColNames = partColNames;
+ this.sortColNames = sortColNames;
+ this.distributeColNames = distributeColNames;
this.ifNotExists = ifNotExists;
this.orReplace = orReplace;
@@ -104,8 +113,7 @@ public class CreateViewDesc implements DDLDesc, Serializable {
*/
public CreateViewDesc(String viewName, List<FieldSchema> schema, String comment, Map<String, String> tblProps,
List<String> partColNames, boolean ifNotExists, boolean orReplace,
- boolean isAlterViewAs,
- String inputFormat, String outputFormat, String serde) {
+ boolean isAlterViewAs, String inputFormat, String outputFormat, String serde) {
this.viewName = viewName;
this.schema = schema;
this.comment = comment;
@@ -192,6 +200,53 @@ public class CreateViewDesc implements DDLDesc, Serializable {
this.partColNames = partColNames;
}
+ public boolean isOrganized() {
+ return (sortColNames != null && !sortColNames.isEmpty()) ||
+ (distributeColNames != null && !distributeColNames.isEmpty());
+ }
+
+ @Explain(displayName = "sort columns")
+ public List<String> getSortColsString() {
+ return Utilities.getFieldSchemaString(sortCols);
+ }
+
+ public List<FieldSchema> getSortCols() {
+ return sortCols;
+ }
+
+ public void setSortCols(List<FieldSchema> sortCols) {
+ this.sortCols = sortCols;
+ }
+
+ public List<String> getSortColNames() {
+ return sortColNames;
+ }
+
+ public void setSortColNames(List<String> sortColNames) {
+ this.sortColNames = sortColNames;
+ }
+
+ @Explain(displayName = "distribute columns")
+ public List<String> getDistributeColsString() {
+ return Utilities.getFieldSchemaString(distributeCols);
+ }
+
+ public List<FieldSchema> getDistributeCols() {
+ return distributeCols;
+ }
+
+ public void setDistributeCols(List<FieldSchema> distributeCols) {
+ this.distributeCols = distributeCols;
+ }
+
+ public List<String> getDistributeColNames() {
+ return distributeColNames;
+ }
+
+ public void setDistributeColNames(List<String> distributeColNames) {
+ this.distributeColNames = distributeColNames;
+ }
+
@Explain(displayName = "comment")
public String getComment() {
return comment;
@@ -322,12 +377,22 @@ public class CreateViewDesc implements DDLDesc, Serializable {
if (getComment() != null) {
tbl.setProperty("comment", getComment());
}
- if (getTblProps() != null) {
- tbl.getTTable().getParameters().putAll(getTblProps());
+
+ if (tblProps != null) {
+ tbl.getParameters().putAll(tblProps);
+ }
+
+ if (!CollectionUtils.isEmpty(partCols)) {
+ tbl.setPartCols(partCols);
}
- if (getPartCols() != null) {
- tbl.setPartCols(getPartCols());
+ if (!CollectionUtils.isEmpty(sortColNames)) {
+ tbl.setProperty(Constants.MATERIALIZED_VIEW_SORT_COLUMNS,
+ Utilities.encodeColumnNames(sortColNames));
+ }
+ if (!CollectionUtils.isEmpty(distributeColNames)) {
+ tbl.setProperty(Constants.MATERIALIZED_VIEW_DISTRIBUTE_COLUMNS,
+ Utilities.encodeColumnNames(distributeColNames));
}
if (getInputFormat() != null) {
@@ -400,4 +465,5 @@ public class CreateViewDesc implements DDLDesc, Serializable {
public String getOwnerName() {
return this.ownerName;
}
+
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java
index 1346bed..4372663 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java
@@ -18,6 +18,7 @@
package org.apache.hadoop.hive.ql.exec;
+import com.fasterxml.jackson.databind.ObjectMapper;
import java.beans.DefaultPersistenceDelegate;
import java.beans.Encoder;
import java.beans.Expression;
@@ -218,6 +219,12 @@ import com.google.common.util.concurrent.ThreadFactoryBuilder;
*/
@SuppressWarnings({ "nls", "deprecation" })
public final class Utilities {
+
+ /**
+ * Mapper to use to serialize/deserialize JSON objects ().
+ */
+ public static final ObjectMapper JSON_MAPPER = new ObjectMapper();
+
/**
* A logger mostly used to trace-log the details of Hive table file operations. Filtering the
* logs for FileOperations (with trace logs present) allows one to debug what Hive has done with
@@ -4449,4 +4456,20 @@ public final class Utilities {
loader == null ? "null" : loader.getClass().getSimpleName());
}
}
+
+ public static String encodeColumnNames(List<String> colNames) throws SemanticException {
+ try {
+ return JSON_MAPPER.writeValueAsString(colNames);
+ } catch (IOException e) {
+ throw new SemanticException(e);
+ }
+ }
+
+ public static List<String> decodeColumnNames(String colNamesStr) throws SemanticException {
+ try {
+ return JSON_MAPPER.readValue(colNamesStr, List.class);
+ } catch (IOException e) {
+ throw new SemanticException(e);
+ }
+ }
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/SortedDynPartitionOptimizer.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/SortedDynPartitionOptimizer.java
index 9708c47..318e230 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/SortedDynPartitionOptimizer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/SortedDynPartitionOptimizer.java
@@ -27,6 +27,7 @@ import java.util.Map;
import java.util.Set;
import java.util.Stack;
+import org.apache.hadoop.hive.conf.Constants;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.metastore.api.FieldSchema;
import org.apache.hadoop.hive.metastore.api.Order;
@@ -156,6 +157,14 @@ public class SortedDynPartitionOptimizer extends Transform {
return null;
}
+ if (destTable.isMaterializedView() &&
+ (destTable.getProperty(Constants.MATERIALIZED_VIEW_SORT_COLUMNS) != null ||
+ destTable.getProperty(Constants.MATERIALIZED_VIEW_DISTRIBUTE_COLUMNS) != null)) {
+ LOG.debug("Bailing out of sort dynamic partition optimization as destination is a materialized view"
+ + "with CLUSTER/SORT/DISTRIBUTE spec");
+ return null;
+ }
+
// unlink connection between FS and its parent
Operator<? extends OperatorDesc> fsParent = fsOp.getParentOperators().get(0);
// if all dp columns got constant folded then disable this optimization
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g b/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g
index 3ca45fe..af9fba6 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g
@@ -148,6 +148,7 @@ KW_UNIONTYPE: 'UNIONTYPE';
KW_REDUCE: 'REDUCE';
KW_PARTITIONED: 'PARTITIONED';
KW_CLUSTERED: 'CLUSTERED';
+KW_DISTRIBUTED: 'DISTRIBUTED';
KW_SORTED: 'SORTED';
KW_INTO: 'INTO';
KW_BUCKETS: 'BUCKETS';
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g b/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g
index 3a2a2d0..73f1804 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g
@@ -267,6 +267,9 @@ TOK_ALTER_MATERIALIZED_VIEW_REBUILD;
TOK_REWRITE_ENABLED;
TOK_REWRITE_DISABLED;
TOK_VIEWPARTCOLS;
+TOK_VIEWCLUSTERCOLS;
+TOK_VIEWDISTRIBUTECOLS;
+TOK_VIEWSORTCOLS;
TOK_EXPLAIN;
TOK_EXPLAIN_SQ_REWRITE;
TOK_TABLESERIALIZER;
@@ -1976,6 +1979,40 @@ viewPartition
-> ^(TOK_VIEWPARTCOLS columnNameList)
;
+viewOrganization
+@init { pushMsg("view organization specification", state); }
+@after { popMsg(state); }
+ : viewClusterSpec
+ | viewComplexSpec
+ ;
+
+viewClusterSpec
+@init { pushMsg("view cluster specification", state); }
+@after { popMsg(state); }
+ : KW_CLUSTERED KW_ON LPAREN columnNameList RPAREN
+ -> ^(TOK_VIEWCLUSTERCOLS columnNameList)
+ ;
+
+viewComplexSpec
+@init { pushMsg("view complex specification", state); }
+@after { popMsg(state); }
+ : viewDistSpec viewSortSpec
+ ;
+
+viewDistSpec
+@init { pushMsg("view distribute specification", state); }
+@after { popMsg(state); }
+ : KW_DISTRIBUTED KW_ON LPAREN colList=columnNameList RPAREN
+ -> ^(TOK_VIEWDISTRIBUTECOLS $colList)
+ ;
+
+viewSortSpec
+@init { pushMsg("view sort specification", state); }
+@after { popMsg(state); }
+ : KW_SORTED KW_ON LPAREN colList=columnNameList RPAREN
+ -> ^(TOK_VIEWSORTCOLS $colList)
+ ;
+
dropViewStatement
@init { pushMsg("drop view statement", state); }
@after { popMsg(state); }
@@ -1988,7 +2025,8 @@ createMaterializedViewStatement
}
@after { popMsg(state); }
: KW_CREATE KW_MATERIALIZED KW_VIEW (ifNotExists)? name=tableName
- rewriteDisabled? tableComment? viewPartition? tableRowFormat? tableFileFormat? tableLocation?
+ rewriteDisabled? tableComment? viewPartition? viewOrganization?
+ tableRowFormat? tableFileFormat? tableLocation?
tablePropertiesPrefixed? KW_AS selectStatementWithCTE
-> ^(TOK_CREATE_MATERIALIZED_VIEW $name
ifNotExists?
@@ -1998,6 +2036,7 @@ createMaterializedViewStatement
tableFileFormat?
tableLocation?
viewPartition?
+ viewOrganization?
tablePropertiesPrefixed?
selectStatementWithCTE
)
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g b/ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g
index 013079c..1935d3f 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g
@@ -824,7 +824,7 @@ nonReserved
| KW_CASCADE | KW_CBO | KW_CHANGE | KW_CHECK | KW_CLUSTER | KW_CLUSTERED | KW_CLUSTERSTATUS | KW_COLLECTION | KW_COLUMNS
| KW_COMMENT | KW_COMPACT | KW_COMPACTIONS | KW_COMPUTE | KW_CONCATENATE | KW_CONTINUE | KW_COST | KW_DATA | KW_DAY
| KW_DATABASES | KW_DATETIME | KW_DBPROPERTIES | KW_DEFERRED | KW_DEFINED | KW_DELIMITED | KW_DEPENDENCY
- | KW_DESC | KW_DIRECTORIES | KW_DIRECTORY | KW_DISABLE | KW_DISTRIBUTE | KW_DOW | KW_ELEM_TYPE
+ | KW_DESC | KW_DIRECTORIES | KW_DIRECTORY | KW_DISABLE | KW_DISTRIBUTE | KW_DISTRIBUTED | KW_DOW | KW_ELEM_TYPE
| KW_ENABLE | KW_ENFORCED | KW_ESCAPED | KW_EXCLUSIVE | KW_EXPLAIN | KW_EXPORT | KW_FIELDS | KW_FILE | KW_FILEFORMAT
| KW_FIRST | KW_FORMAT | KW_FORMATTED | KW_FUNCTIONS | KW_HOLD_DDLTIME | KW_HOUR | KW_IDXPROPERTIES | KW_IGNORE
| KW_INDEX | KW_INDEXES | KW_INPATH | KW_INPUTDRIVER | KW_INPUTFORMAT | KW_ITEMS | KW_JAR | KW_JOINCOST | KW_KILL
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 7c58072..d474578 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
@@ -74,6 +74,7 @@ import org.apache.hadoop.hive.common.StringInternUtils;
import org.apache.hadoop.hive.common.ValidTxnList;
import org.apache.hadoop.hive.common.ValidTxnWriteIdList;
import org.apache.hadoop.hive.common.metrics.common.MetricsConstant;
+import org.apache.hadoop.hive.conf.Constants;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
import org.apache.hadoop.hive.conf.HiveConf.StrictChecks;
@@ -134,6 +135,7 @@ import org.apache.hadoop.hive.ql.exec.Task;
import org.apache.hadoop.hive.ql.exec.TaskFactory;
import org.apache.hadoop.hive.ql.exec.UnionOperator;
import org.apache.hadoop.hive.ql.exec.Utilities;
+import org.apache.hadoop.hive.ql.exec.Utilities.ReduceField;
import org.apache.hadoop.hive.ql.exec.tez.TezTask;
import org.apache.hadoop.hive.ql.hooks.Entity;
import org.apache.hadoop.hive.ql.hooks.ReadEntity;
@@ -1685,8 +1687,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
case HiveParser.TOK_DISTRIBUTEBY:
// Get the distribute by aliases - these are aliased to the entries in
- // the
- // select list
+ // the select list
queryProperties.setHasDistributeBy(true);
qbp.setDistributeByExprForClause(ctx_1.dest, ast);
if (qbp.getClusterByForClause(ctx_1.dest) != null) {
@@ -4787,6 +4788,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
col_list.addAll(new_col_list);
return newOutputRR;
}
+
String recommendName(ExprNodeDesc exp, String colAlias) {
if (!colAlias.startsWith(autogenColAliasPrfxLbl)) {
return null;
@@ -6957,7 +6959,135 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
}
}
- @SuppressWarnings("unchecked")
+ private Operator genMaterializedViewDataOrgPlan(Table destinationTable, String sortColsStr, String distributeColsStr,
+ RowResolver inputRR, Operator input) throws SemanticException {
+ Map<String, Integer> colNameToIdx = new HashMap<>();
+ for (int i = 0; i < destinationTable.getCols().size(); i++) {
+ colNameToIdx.put(destinationTable.getCols().get(i).getName(), i);
+ }
+ List<ColumnInfo> colInfos = inputRR.getColumnInfos();
+ List<ColumnInfo> sortColInfos = new ArrayList<>();
+ if (sortColsStr != null) {
+ Utilities.decodeColumnNames(sortColsStr)
+ .forEach(s -> sortColInfos.add(colInfos.get(colNameToIdx.get(s))));
+ }
+ List<ColumnInfo> distributeColInfos = new ArrayList<>();
+ if (distributeColsStr != null) {
+ Utilities.decodeColumnNames(distributeColsStr)
+ .forEach(s -> distributeColInfos.add(colInfos.get(colNameToIdx.get(s))));
+ }
+ return genMaterializedViewDataOrgPlan(sortColInfos, distributeColInfos, inputRR, input);
+ }
+
+ private Operator genMaterializedViewDataOrgPlan(List<ColumnInfo> sortColInfos, List<ColumnInfo> distributeColInfos,
+ RowResolver inputRR, Operator input) {
+ // In this case, we will introduce a RS and immediately after a SEL that restores
+ // the row schema to what follow-up operations are expecting
+ Set<String> keys = sortColInfos.stream()
+ .map(ColumnInfo::getInternalName)
+ .collect(Collectors.toSet());
+ Set<String> distributeKeys = distributeColInfos.stream()
+ .map(ColumnInfo::getInternalName)
+ .collect(Collectors.toSet());
+ ArrayList<ExprNodeDesc> keyCols = new ArrayList<>();
+ ArrayList<String> keyColNames = new ArrayList<>();
+ StringBuilder order = new StringBuilder();
+ StringBuilder nullOrder = new StringBuilder();
+ ArrayList<ExprNodeDesc> valCols = new ArrayList<>();
+ ArrayList<String> valColNames = new ArrayList<>();
+ ArrayList<ExprNodeDesc> partCols = new ArrayList<>();
+ Map<String, ExprNodeDesc> colExprMap = new HashMap<>();
+ Map<String, String> nameMapping = new HashMap<>();
+ // map _col0 to KEY._col0, etc
+ for (ColumnInfo ci : inputRR.getRowSchema().getSignature()) {
+ ExprNodeColumnDesc e = new ExprNodeColumnDesc(ci);
+ String columnName = ci.getInternalName();
+ if (keys.contains(columnName)) {
+ // key (sort column)
+ keyColNames.add(columnName);
+ keyCols.add(e);
+ colExprMap.put(Utilities.ReduceField.KEY + "." + columnName, e);
+ nameMapping.put(columnName, Utilities.ReduceField.KEY + "." + columnName);
+ order.append("+");
+ nullOrder.append("a");
+ } else {
+ // value
+ valColNames.add(columnName);
+ valCols.add(e);
+ colExprMap.put(Utilities.ReduceField.VALUE + "." + columnName, e);
+ nameMapping.put(columnName, Utilities.ReduceField.VALUE + "." + columnName);
+ }
+ if (distributeKeys.contains(columnName)) {
+ // distribute column
+ partCols.add(e.clone());
+ }
+ }
+ // Create Key/Value TableDesc. When the operator plan is split into MR tasks,
+ // the reduce operator will initialize Extract operator with information
+ // from Key and Value TableDesc
+ List<FieldSchema> fields = PlanUtils.getFieldSchemasFromColumnList(keyCols,
+ keyColNames, 0, "");
+ TableDesc keyTable = PlanUtils.getReduceKeyTableDesc(fields, order.toString(), nullOrder.toString());
+ List<FieldSchema> valFields = PlanUtils.getFieldSchemasFromColumnList(valCols,
+ valColNames, 0, "");
+ TableDesc valueTable = PlanUtils.getReduceValueTableDesc(valFields);
+ List<List<Integer>> distinctColumnIndices = new ArrayList<>();
+ // Number of reducers is set to default (-1)
+ ReduceSinkDesc rsConf = new ReduceSinkDesc(keyCols, keyCols.size(), valCols,
+ keyColNames, distinctColumnIndices, valColNames, -1, partCols, -1, keyTable,
+ valueTable, Operation.NOT_ACID);
+ RowResolver rsRR = new RowResolver();
+ ArrayList<ColumnInfo> rsSignature = new ArrayList<>();
+ for (int index = 0; index < input.getSchema().getSignature().size(); index++) {
+ ColumnInfo colInfo = new ColumnInfo(input.getSchema().getSignature().get(index));
+ String[] nm = inputRR.reverseLookup(colInfo.getInternalName());
+ String[] nm2 = inputRR.getAlternateMappings(colInfo.getInternalName());
+ colInfo.setInternalName(nameMapping.get(colInfo.getInternalName()));
+ rsSignature.add(colInfo);
+ rsRR.put(nm[0], nm[1], colInfo);
+ if (nm2 != null) {
+ rsRR.addMappingOnly(nm2[0], nm2[1], colInfo);
+ }
+ }
+ Operator<?> result = putOpInsertMap(OperatorFactory.getAndMakeChild(
+ rsConf, new RowSchema(rsSignature), input), rsRR);
+ result.setColumnExprMap(colExprMap);
+
+ // Create SEL operator
+ RowResolver selRR = new RowResolver();
+ ArrayList<ColumnInfo> selSignature = new ArrayList<>();
+ List<ExprNodeDesc> columnExprs = new ArrayList<>();
+ List<String> colNames = new ArrayList<>();
+ Map<String, ExprNodeDesc> selColExprMap = new HashMap<>();
+ for (int index = 0; index < input.getSchema().getSignature().size(); index++) {
+ ColumnInfo colInfo = new ColumnInfo(input.getSchema().getSignature().get(index));
+ String[] nm = inputRR.reverseLookup(colInfo.getInternalName());
+ String[] nm2 = inputRR.getAlternateMappings(colInfo.getInternalName());
+ selSignature.add(colInfo);
+ selRR.put(nm[0], nm[1], colInfo);
+ if (nm2 != null) {
+ selRR.addMappingOnly(nm2[0], nm2[1], colInfo);
+ }
+ String colName = colInfo.getInternalName();
+ ExprNodeDesc exprNodeDesc;
+ if (keys.contains(colName)) {
+ exprNodeDesc = new ExprNodeColumnDesc(colInfo.getType(), ReduceField.KEY.toString() + "." + colName, null, false);
+ columnExprs.add(exprNodeDesc);
+ } else {
+ exprNodeDesc = new ExprNodeColumnDesc(colInfo.getType(), ReduceField.VALUE.toString() + "." + colName, null, false);
+ columnExprs.add(exprNodeDesc);
+ }
+ colNames.add(colName);
+ selColExprMap.put(colName, exprNodeDesc);
+ }
+ SelectDesc selConf = new SelectDesc(columnExprs, colNames);
+ result = putOpInsertMap(OperatorFactory.getAndMakeChild(
+ selConf, new RowSchema(selSignature), result), selRR);
+ result.setColumnExprMap(selColExprMap);
+
+ return result;
+ }
+
private void setStatsForNonNativeTable(String dbName, String tableName) throws SemanticException {
String qTableName = DDLSemanticAnalyzer.getDotName(new String[] { dbName,
tableName });
@@ -7297,8 +7427,19 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
// Add NOT NULL constraint check
input = genConstraintsPlan(dest, qb, input);
- // Add sorting/bucketing if needed
- input = genBucketingSortingDest(dest, input, qb, tableDescriptor, destinationTable, rsCtx);
+ if (destinationTable.isMaterializedView() &&
+ mvRebuildMode == MaterializationRebuildMode.INSERT_OVERWRITE_REBUILD) {
+ // Data organization (DISTRIBUTED, SORTED, CLUSTERED) for materialized view
+ // TODO: We only do this for a full rebuild
+ String sortColsStr = destinationTable.getProperty(Constants.MATERIALIZED_VIEW_SORT_COLUMNS);
+ String distributeColsStr = destinationTable.getProperty(Constants.MATERIALIZED_VIEW_DISTRIBUTE_COLUMNS);
+ if (sortColsStr != null || distributeColsStr != null) {
+ input = genMaterializedViewDataOrgPlan(destinationTable, sortColsStr, distributeColsStr, inputRR, input);
+ }
+ } else {
+ // Add sorting/bucketing if needed
+ input = genBucketingSortingDest(dest, input, qb, tableDescriptor, destinationTable, rsCtx);
+ }
idToTableNameMap.put(String.valueOf(destTableId), destinationTable.getTableName());
currentTableId = destTableId;
@@ -7414,8 +7555,19 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
// Add NOT NULL constraint check
input = genConstraintsPlan(dest, qb, input);
- // Add sorting/bucketing if needed
- input = genBucketingSortingDest(dest, input, qb, tableDescriptor, destinationTable, rsCtx);
+ if (destinationTable.isMaterializedView() &&
+ mvRebuildMode == MaterializationRebuildMode.INSERT_OVERWRITE_REBUILD) {
+ // Data organization (DISTRIBUTED, SORTED, CLUSTERED) for materialized view
+ // TODO: We only do this for a full rebuild
+ String sortColsStr = destinationTable.getProperty(Constants.MATERIALIZED_VIEW_SORT_COLUMNS);
+ String distributeColsStr = destinationTable.getProperty(Constants.MATERIALIZED_VIEW_DISTRIBUTE_COLUMNS);
+ if (sortColsStr != null || distributeColsStr != null) {
+ input = genMaterializedViewDataOrgPlan(destinationTable, sortColsStr, distributeColsStr, inputRR, input);
+ }
+ } else {
+ // Add sorting/bucketing if needed
+ input = genBucketingSortingDest(dest, input, qb, tableDescriptor, destinationTable, rsCtx);
+ }
idToTableNameMap.put(String.valueOf(destTableId), destinationTable.getTableName());
currentTableId = destTableId;
@@ -7479,7 +7631,13 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
List<FieldSchema> fieldSchemas = null;
List<FieldSchema> partitionColumns = null;
List<String> partitionColumnNames = null;
+ List<FieldSchema> sortColumns = null;
+ List<String> sortColumnNames = null;
+ List<FieldSchema> distributeColumns = null;
+ List<String> distributeColumnNames = null;
List<ColumnInfo> fileSinkColInfos = null;
+ List<ColumnInfo> sortColInfos = null;
+ List<ColumnInfo> distributeColInfos = null;
CreateTableDesc tblDesc = qb.getTableDesc();
CreateViewDesc viewDesc = qb.getViewDesc();
if (tblDesc != null) {
@@ -7518,7 +7676,13 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
fieldSchemas = new ArrayList<>();
partitionColumns = new ArrayList<>();
partitionColumnNames = viewDesc.getPartColNames();
+ sortColumns = new ArrayList<>();
+ sortColumnNames = viewDesc.getSortColNames();
+ distributeColumns = new ArrayList<>();
+ distributeColumnNames = viewDesc.getDistributeColNames();
fileSinkColInfos = new ArrayList<>();
+ sortColInfos = new ArrayList<>();
+ distributeColInfos = new ArrayList<>();
destTableIsTemporary = false;
destTableIsMaterialization = false;
}
@@ -7552,8 +7716,8 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
}
if (!CollectionUtils.isEmpty(partitionColumnNames)) {
ColsAndTypes ct = deriveFileSinkColTypes(
- inputRR, partitionColumnNames, fieldSchemas, partitionColumns,
- fileSinkColInfos);
+ inputRR, partitionColumnNames, sortColumnNames, distributeColumnNames, fieldSchemas, partitionColumns,
+ sortColumns, distributeColumns, fileSinkColInfos, sortColInfos, distributeColInfos);
cols = ct.cols;
colTypes = ct.colTypes;
dpCtx = new DynamicPartitionCtx(partitionColumnNames,
@@ -7564,7 +7728,9 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
dpCtx.setRootPath(queryTmpdir);
isPartitioned = true;
} else {
- ColsAndTypes ct = deriveFileSinkColTypes(inputRR, fieldSchemas);
+ ColsAndTypes ct = deriveFileSinkColTypes(
+ inputRR, sortColumnNames, distributeColumnNames, fieldSchemas, sortColumns, distributeColumns,
+ sortColInfos, distributeColInfos);
cols = ct.cols;
colTypes = ct.colTypes;
isPartitioned = false;
@@ -7577,6 +7743,10 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
} else if (viewDesc != null) {
viewDesc.setSchema(new ArrayList<>(fieldSchemas));
viewDesc.setPartCols(new ArrayList<>(partitionColumns));
+ if (viewDesc.isOrganized()) {
+ viewDesc.setSortCols(new ArrayList<>(sortColumns));
+ viewDesc.setDistributeCols(new ArrayList<>(distributeColumns));
+ }
}
boolean isDestTempFile = true;
@@ -7633,6 +7803,11 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
destTableIsFullAcid = AcidUtils.isFullAcidTable(destinationTable);
+ // Data organization (DISTRIBUTED, SORTED, CLUSTERED) for materialized view
+ if (viewDesc != null && viewDesc.isOrganized()) {
+ input = genMaterializedViewDataOrgPlan(sortColInfos, distributeColInfos, inputRR, input);
+ }
+
if (isPartitioned) {
// Create a SELECT that may reorder the columns if needed
RowResolver rowResolver = new RowResolver();
@@ -7654,7 +7829,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
input.setColumnExprMap(colExprMap);
// If this is a partitioned CTAS or MV statement, we are going to create a LoadTableDesc
- // object. Although the table does not exist in metastore, we will swamp the CreateTableTask
+ // object. Although the table does not exist in metastore, we will swap the CreateTableTask
// and MoveTask resulting from this LoadTable so in this specific case, first we create
// the metastore table, then we move and commit the partitions. At least for the time being,
// this order needs to be enforced because metastore expects a table to exist before we can
@@ -7817,20 +7992,25 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
serdeClassName.equalsIgnoreCase(ArrowColumnarBatchSerDe.class.getName());
}
- private ColsAndTypes deriveFileSinkColTypes(RowResolver inputRR, List<FieldSchema> field_schemas)
- throws SemanticException {
- return deriveFileSinkColTypes(inputRR, new ArrayList<>(), field_schemas, new ArrayList<>(), new ArrayList<>());
+ private ColsAndTypes deriveFileSinkColTypes(RowResolver inputRR, List<String> sortColumnNames, List<String> distributeColumnNames,
+ List<FieldSchema> fieldSchemas, List<FieldSchema> sortColumns, List<FieldSchema> distributeColumns,
+ List<ColumnInfo> sortColInfos, List<ColumnInfo> distributeColInfos) throws SemanticException {
+ return deriveFileSinkColTypes(inputRR, new ArrayList<>(), sortColumnNames, distributeColumnNames,
+ fieldSchemas, new ArrayList<>(), sortColumns, distributeColumns, new ArrayList<>(),
+ sortColInfos, distributeColInfos);
}
private ColsAndTypes deriveFileSinkColTypes(
- RowResolver inputRR, List<String> partitionColumnNames,
- List<FieldSchema> columns, List<FieldSchema> partitionColumns,
- List<ColumnInfo> fileSinkColInfos) throws SemanticException {
+ RowResolver inputRR, List<String> partitionColumnNames, List<String> sortColumnNames, List<String> distributeColumnNames,
+ List<FieldSchema> columns, List<FieldSchema> partitionColumns, List<FieldSchema> sortColumns, List<FieldSchema> distributeColumns,
+ List<ColumnInfo> fileSinkColInfos, List<ColumnInfo> sortColInfos, List<ColumnInfo> distributeColInfos) throws SemanticException {
ColsAndTypes result = new ColsAndTypes("", "");
List<String> allColumns = new ArrayList<>();
List<ColumnInfo> colInfos = inputRR.getColumnInfos();
List<ColumnInfo> nonPartColInfos = new ArrayList<>();
SortedMap<Integer, Pair<FieldSchema, ColumnInfo>> partColInfos = new TreeMap<>();
+ SortedMap<Integer, Pair<FieldSchema, ColumnInfo>> sColInfos = new TreeMap<>();
+ SortedMap<Integer, Pair<FieldSchema, ColumnInfo>> dColInfos = new TreeMap<>();
boolean first = true;
int numNonPartitionedCols = colInfos.size() - partitionColumnNames.size();
if (numNonPartitionedCols <= 0) {
@@ -7865,6 +8045,18 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
partColInfos.put(idx, Pair.of(col, colInfo));
isPartitionCol = true;
} else {
+ if (sortColumnNames != null) {
+ idx = sortColumnNames.indexOf(colName);
+ if (idx >= 0) {
+ sColInfos.put(idx, Pair.of(col, colInfo));
+ }
+ }
+ if (distributeColumnNames != null) {
+ idx = distributeColumnNames.indexOf(colName);
+ if (idx >= 0) {
+ dColInfos.put(idx, Pair.of(col, colInfo));
+ }
+ }
columns.add(col);
nonPartColInfos.add(colInfo);
}
@@ -7907,10 +8099,33 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
"Partition columns: " + partitionColumnNames);
}
+ if (sortColumnNames != null && sColInfos.size() != sortColumnNames.size()) {
+ throw new SemanticException("Table declaration contains cluster/sort columns that are not present " +
+ "in query result schema. " +
+ "Query columns: " + allColumns + ". " +
+ "Organization columns: " + sortColumnNames);
+ }
+
+ if (distributeColumnNames != null && dColInfos.size() != distributeColumnNames.size()) {
+ throw new SemanticException("Table declaration contains cluster/distribute columns that are not present " +
+ "in query result schema. " +
+ "Query columns: " + allColumns + ". " +
+ "Organization columns: " + distributeColumnNames);
+ }
+
// FileSinkColInfos comprise nonPartCols followed by partCols
fileSinkColInfos.addAll(nonPartColInfos);
partitionColumns.addAll(partColInfos.values().stream().map(Pair::getLeft).collect(Collectors.toList()));
fileSinkColInfos.addAll(partColInfos.values().stream().map(Pair::getRight).collect(Collectors.toList()));
+ // data org columns
+ if (sortColumnNames != null) {
+ sortColumns.addAll(sColInfos.values().stream().map(Pair::getLeft).collect(Collectors.toList()));
+ sortColInfos.addAll(sColInfos.values().stream().map(Pair::getRight).collect(Collectors.toList()));
+ }
+ if (distributeColumnNames != null) {
+ distributeColumns.addAll(dColInfos.values().stream().map(Pair::getLeft).collect(Collectors.toList()));
+ distributeColInfos.addAll(dColInfos.values().stream().map(Pair::getRight).collect(Collectors.toList()));
+ }
return result;
}
@@ -13717,6 +13932,8 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
ASTNode selectStmt = null;
Map<String, String> tblProps = null;
List<String> partColNames = null;
+ List<String> sortColNames = null;
+ List<String> distributeColNames = null;
boolean isMaterialized = ast.getToken().getType() == HiveParser.TOK_CREATE_MATERIALIZED_VIEW;
boolean isRebuild = false;
String location = null;
@@ -13760,6 +13977,19 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
case HiveParser.TOK_VIEWPARTCOLS:
partColNames = getColumnNames((ASTNode) child.getChild(0));
break;
+ case HiveParser.TOK_VIEWCLUSTERCOLS:
+ assert distributeColNames == null && sortColNames == null;
+ distributeColNames = getColumnNames((ASTNode) child.getChild(0));
+ sortColNames = new ArrayList<>(distributeColNames);
+ break;
+ case HiveParser.TOK_VIEWDISTRIBUTECOLS:
+ assert distributeColNames == null;
+ distributeColNames = getColumnNames((ASTNode) child.getChild(0));
+ break;
+ case HiveParser.TOK_VIEWSORTCOLS:
+ assert sortColNames == null;
+ sortColNames = getColumnNames((ASTNode) child.getChild(0));
+ break;
case HiveParser.TOK_TABLEROWFORMAT:
rowFormatParams.analyzeRowFormat(child);
break;
@@ -13787,16 +14017,38 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
throw new SemanticException("Can't combine IF NOT EXISTS and OR REPLACE.");
}
- if (isMaterialized && !ifNotExists) {
- // Verify that the table does not already exist
- // dumpTable is only used to check the conflict for non-temporary tables
- try {
- Table dumpTable = db.newTable(dbDotTable);
- if (null != db.getTable(dumpTable.getDbName(), dumpTable.getTableName(), false) && !ctx.isExplainSkipExecution()) {
- throw new SemanticException(ErrorMsg.TABLE_ALREADY_EXISTS.getMsg(dbDotTable));
+ if (isMaterialized) {
+ if (!ifNotExists) {
+ // Verify that the table does not already exist
+ // dumpTable is only used to check the conflict for non-temporary tables
+ try {
+ Table dumpTable = db.newTable(dbDotTable);
+ if (null != db.getTable(dumpTable.getDbName(), dumpTable.getTableName(), false) && !ctx.isExplainSkipExecution()) {
+ throw new SemanticException(ErrorMsg.TABLE_ALREADY_EXISTS.getMsg(dbDotTable));
+ }
+ } catch (HiveException e) {
+ throw new SemanticException(e);
+ }
+ }
+ if (partColNames != null && (distributeColNames != null || sortColNames != null)) {
+ // Verify that partition columns and data organization columns are not overlapping
+ Set<String> partColNamesSet = new HashSet<>(partColNames);
+ if (distributeColNames != null) {
+ for (String colName : distributeColNames) {
+ if (partColNamesSet.contains(colName)) {
+ throw new SemanticException("Same column cannot be present in partition and cluster/distribute clause. "
+ + "Column name: " + colName);
+ }
+ }
+ }
+ if (sortColNames != null) {
+ for (String colName : sortColNames) {
+ if (partColNamesSet.contains(colName)) {
+ throw new SemanticException("Same column cannot be present in partition and cluster/sort clause. "
+ + "Column name: " + colName);
+ }
+ }
}
- } catch (HiveException e) {
- throw new SemanticException(e);
}
}
@@ -13810,7 +14062,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
if (isMaterialized) {
createVwDesc = new CreateViewDesc(
- dbDotTable, cols, comment, tblProps, partColNames,
+ dbDotTable, cols, comment, tblProps, partColNames, sortColNames, distributeColNames,
ifNotExists, isRebuild, rewriteEnabled, isAlterViewAs,
storageFormat.getInputFormat(), storageFormat.getOutputFormat(),
location, storageFormat.getSerde(), storageFormat.getStorageHandler(),
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/plan/ImportTableDesc.java b/ql/src/java/org/apache/hadoop/hive/ql/plan/ImportTableDesc.java
index 73a7d33..6e2754a 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/plan/ImportTableDesc.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/plan/ImportTableDesc.java
@@ -24,6 +24,7 @@ import java.util.List;
import java.util.Map;
import com.google.common.collect.ImmutableSet;
+import org.apache.hadoop.hive.conf.Constants;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.metastore.TableType;
import org.apache.hadoop.hive.metastore.api.FieldSchema;
@@ -101,6 +102,8 @@ public class ImportTableDesc {
null, // comment passed as table params
table.getParameters(),
table.getPartColNames(),
+ null, // sort columns passed as table params (if present)
+ null, // distribute columns passed as table params (if present)
false,false,false,false,
table.getSd().getInputFormat(),
table.getSd().getOutputFormat(),
diff --git a/ql/src/test/queries/clientnegative/materialized_view_distribute.q b/ql/src/test/queries/clientnegative/materialized_view_distribute.q
new file mode 100644
index 0000000..1fb9a48
--- /dev/null
+++ b/ql/src/test/queries/clientnegative/materialized_view_distribute.q
@@ -0,0 +1,12 @@
+--! qt:dataset:src
+
+-- SORT_QUERY_RESULTS
+
+set hive.support.concurrency=true;
+set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
+
+CREATE TABLE src_txn stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src;
+
+CREATE MATERIALIZED VIEW distribute_mv_1 DISTRIBUTED ON (key) STORED AS TEXTFILE AS
+SELECT value, key FROM src_txn where key > 200 and key < 250;
diff --git a/ql/src/test/queries/clientnegative/materialized_view_partition_cluster_same_col.q b/ql/src/test/queries/clientnegative/materialized_view_partition_cluster_same_col.q
new file mode 100644
index 0000000..f161595
--- /dev/null
+++ b/ql/src/test/queries/clientnegative/materialized_view_partition_cluster_same_col.q
@@ -0,0 +1,12 @@
+--! qt:dataset:src
+
+-- SORT_QUERY_RESULTS
+
+set hive.support.concurrency=true;
+set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
+
+CREATE TABLE src_txn stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src;
+
+CREATE MATERIALIZED VIEW cluster_mv_1 PARTITIONED ON (key) CLUSTERED ON (key) AS
+SELECT value, key, key + 100 as partkey FROM src_txn where key > 200 and key < 250;
diff --git a/ql/src/test/queries/clientnegative/materialized_view_partition_sort_same_col.q b/ql/src/test/queries/clientnegative/materialized_view_partition_sort_same_col.q
new file mode 100644
index 0000000..d04e63e
--- /dev/null
+++ b/ql/src/test/queries/clientnegative/materialized_view_partition_sort_same_col.q
@@ -0,0 +1,12 @@
+--! qt:dataset:src
+
+-- SORT_QUERY_RESULTS
+
+set hive.support.concurrency=true;
+set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
+
+CREATE TABLE src_txn stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src;
+
+CREATE MATERIALIZED VIEW cluster_mv_1 PARTITIONED ON (key) DISTRIBUTED ON (value) SORTED ON (key) AS
+SELECT value, key, key + 100 as partkey FROM src_txn where key > 200 and key < 250;
diff --git a/ql/src/test/queries/clientnegative/materialized_view_sort.q b/ql/src/test/queries/clientnegative/materialized_view_sort.q
new file mode 100644
index 0000000..3410189
--- /dev/null
+++ b/ql/src/test/queries/clientnegative/materialized_view_sort.q
@@ -0,0 +1,12 @@
+--! qt:dataset:src
+
+-- SORT_QUERY_RESULTS
+
+set hive.support.concurrency=true;
+set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
+
+CREATE TABLE src_txn stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src;
+
+CREATE MATERIALIZED VIEW distribute_mv_1 SORTED ON (key) AS
+SELECT value, key FROM src_txn where key > 200 and key < 250;
diff --git a/ql/src/test/queries/clientpositive/materialized_view_cluster.q b/ql/src/test/queries/clientpositive/materialized_view_cluster.q
new file mode 100644
index 0000000..c9d3058
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/materialized_view_cluster.q
@@ -0,0 +1,98 @@
+--! qt:dataset:src
+
+-- SORT_QUERY_RESULTS
+
+set hive.support.concurrency=true;
+set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
+
+CREATE TABLE src_txn stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src;
+
+EXPLAIN
+CREATE MATERIALIZED VIEW cluster_mv_1 CLUSTERED ON (key) STORED AS TEXTFILE AS
+SELECT value, key FROM src_txn where key > 200 and key < 250;
+
+CREATE MATERIALIZED VIEW cluster_mv_1 CLUSTERED ON (key) STORED AS TEXTFILE AS
+SELECT value, key FROM src_txn where key > 200 and key < 250;
+
+DESCRIBE FORMATTED cluster_mv_1;
+
+dfs -ls ${system:test.warehouse.dir}/../localfs/warehouse/cluster_mv_1/;
+dfs -cat ${system:test.warehouse.dir}/../localfs/warehouse/cluster_mv_1/*;
+
+EXPLAIN
+SELECT * FROM cluster_mv_1 where key = 238;
+
+SELECT * FROM cluster_mv_1 where key = 238;
+
+CREATE MATERIALIZED VIEW cluster_mv_2 CLUSTERED ON (value) STORED AS TEXTFILE AS
+SELECT key, value FROM src_txn where key > 200 and key < 250;
+
+dfs -ls ${system:test.warehouse.dir}/../localfs/warehouse/cluster_mv_2/;
+dfs -cat ${system:test.warehouse.dir}/../localfs/warehouse/cluster_mv_2/*;
+
+EXPLAIN
+SELECT * FROM cluster_mv_2 where value = 'val_238';
+
+SELECT * FROM cluster_mv_2 where value = 'val_238';
+
+EXPLAIN
+SELECT value FROM cluster_mv_2 where key = 238;
+
+SELECT value FROM cluster_mv_2 where key = 238;
+
+INSERT INTO src_txn VALUES (238, 'val_238_n');
+
+EXPLAIN
+ALTER MATERIALIZED VIEW cluster_mv_1 REBUILD;
+
+ALTER MATERIALIZED VIEW cluster_mv_1 REBUILD;
+
+SELECT * FROM cluster_mv_1 where key = 238;
+
+SELECT * FROM cluster_mv_2 where key = 238;
+
+CREATE TABLE src_txn_2 stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src;
+
+CREATE MATERIALIZED VIEW cluster_mv_3 CLUSTERED ON (key) STORED AS TEXTFILE AS
+SELECT src_txn.value, src_txn.key FROM src_txn, src_txn_2
+WHERE src_txn.key = src_txn_2.key
+ AND src_txn.key > 200 AND src_txn.key < 250;
+
+dfs -ls ${system:test.warehouse.dir}/../localfs/warehouse/cluster_mv_3/;
+dfs -cat ${system:test.warehouse.dir}/../localfs/warehouse/cluster_mv_3/*;
+
+INSERT INTO src_txn VALUES (238, 'val_238_n2');
+
+EXPLAIN
+ALTER MATERIALIZED VIEW cluster_mv_3 REBUILD;
+
+ALTER MATERIALIZED VIEW cluster_mv_3 REBUILD;
+
+SELECT * FROM cluster_mv_3 where key = 238;
+
+CREATE MATERIALIZED VIEW cluster_mv_4 CLUSTERED ON (key,`tes"t`,`te*#"s"t`) STORED AS TEXTFILE AS
+SELECT value, key, key+1 as `tes"t`, key+2 as `te*#"s"t` FROM src_txn where key > 200 and key < 250;
+
+DESCRIBE FORMATTED cluster_mv_4;
+
+INSERT INTO src_txn VALUES (238, 'val_238_n2');
+
+set hive.materializedview.rebuild.incremental=false;
+
+EXPLAIN
+ALTER MATERIALIZED VIEW cluster_mv_3 REBUILD;
+
+ALTER MATERIALIZED VIEW cluster_mv_3 REBUILD;
+
+SELECT * FROM cluster_mv_3 where key = 238;
+
+EXPLAIN
+ALTER MATERIALIZED VIEW cluster_mv_4 REBUILD;
+
+ALTER MATERIALIZED VIEW cluster_mv_4 REBUILD;
+
+SELECT * FROM cluster_mv_4 where key = 238;
+
+DESCRIBE FORMATTED cluster_mv_4;
diff --git a/ql/src/test/queries/clientpositive/materialized_view_distribute_sort.q b/ql/src/test/queries/clientpositive/materialized_view_distribute_sort.q
new file mode 100644
index 0000000..241ce7f
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/materialized_view_distribute_sort.q
@@ -0,0 +1,85 @@
+--! qt:dataset:src
+
+set hive.support.concurrency=true;
+set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
+
+CREATE TABLE src_txn stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src;
+
+EXPLAIN
+CREATE MATERIALIZED VIEW distribute_mv_1 DISTRIBUTED ON (key) SORTED ON (value) STORED AS TEXTFILE AS
+SELECT value, key FROM src_txn where key > 200 and key < 250;
+
+CREATE MATERIALIZED VIEW distribute_mv_1 DISTRIBUTED ON (key) SORTED ON (value) STORED AS TEXTFILE AS
+SELECT value, key FROM src_txn where key > 200 and key < 250;
+
+DESCRIBE FORMATTED distribute_mv_1;
+
+dfs -ls ${system:test.warehouse.dir}/../localfs/warehouse/distribute_mv_1/;
+dfs -cat ${system:test.warehouse.dir}/../localfs/warehouse/distribute_mv_1/*;
+
+EXPLAIN
+SELECT * FROM distribute_mv_1 where key = 238;
+
+SELECT * FROM distribute_mv_1 where key = 238;
+
+EXPLAIN
+CREATE MATERIALIZED VIEW distribute_mv_2 DISTRIBUTED ON (value) SORTED ON (value, key) STORED AS TEXTFILE AS
+SELECT key, value FROM src_txn where key > 200 and key < 250;
+
+CREATE MATERIALIZED VIEW distribute_mv_2 DISTRIBUTED ON (value) SORTED ON (value, key) STORED AS TEXTFILE AS
+SELECT key, value FROM src_txn where key > 200 and key < 250;
+
+DESCRIBE FORMATTED distribute_mv_2;
+
+dfs -ls ${system:test.warehouse.dir}/../localfs/warehouse/distribute_mv_2/;
+dfs -cat ${system:test.warehouse.dir}/../localfs/warehouse/distribute_mv_2/*;
+
+EXPLAIN
+SELECT * FROM distribute_mv_2 where value = 'val_238';
+
+SELECT * FROM distribute_mv_2 where value = 'val_238';
+
+EXPLAIN
+SELECT value FROM distribute_mv_2 where key = 238;
+
+SELECT value FROM distribute_mv_2 where key = 238;
+
+INSERT INTO src_txn VALUES (238, 'val_238_n');
+
+EXPLAIN
+ALTER MATERIALIZED VIEW distribute_mv_1 REBUILD;
+
+ALTER MATERIALIZED VIEW distribute_mv_1 REBUILD;
+
+SELECT * FROM distribute_mv_1 where key = 238;
+
+SELECT * FROM distribute_mv_2 where key = 238;
+
+CREATE TABLE src_txn_2 stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src;
+
+EXPLAIN
+CREATE MATERIALIZED VIEW distribute_mv_3 DISTRIBUTED ON (key) SORTED ON (value, key) STORED AS TEXTFILE AS
+SELECT src_txn.value, src_txn.key FROM src_txn, src_txn_2
+WHERE src_txn.key = src_txn_2.key
+ AND src_txn.key > 200 AND src_txn.key < 250;
+
+CREATE MATERIALIZED VIEW distribute_mv_3 DISTRIBUTED ON (key) SORTED ON (value, key) STORED AS TEXTFILE AS
+SELECT src_txn.value, src_txn.key FROM src_txn, src_txn_2
+WHERE src_txn.key = src_txn_2.key
+ AND src_txn.key > 200 AND src_txn.key < 250;
+
+DESCRIBE FORMATTED distribute_mv_3;
+
+dfs -ls ${system:test.warehouse.dir}/../localfs/warehouse/distribute_mv_3/;
+dfs -cat ${system:test.warehouse.dir}/../localfs/warehouse/distribute_mv_3/*;
+
+INSERT INTO src_txn VALUES (238, 'val_238_n2');
+
+EXPLAIN
+ALTER MATERIALIZED VIEW distribute_mv_3 REBUILD;
+
+ALTER MATERIALIZED VIEW distribute_mv_3 REBUILD;
+
+SELECT * FROM distribute_mv_3 where key = 238;
diff --git a/ql/src/test/queries/clientpositive/materialized_view_partition_cluster.q b/ql/src/test/queries/clientpositive/materialized_view_partition_cluster.q
new file mode 100644
index 0000000..a079605
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/materialized_view_partition_cluster.q
@@ -0,0 +1,95 @@
+--! qt:dataset:src
+
+-- SORT_QUERY_RESULTS
+
+set hive.support.concurrency=true;
+set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
+
+CREATE TABLE src_txn stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src;
+
+EXPLAIN
+CREATE MATERIALIZED VIEW cluster_mv_1 PARTITIONED ON (partkey) CLUSTERED ON (key) AS
+SELECT value, key, key + 100 as partkey FROM src_txn where key > 200 and key < 250;
+
+CREATE MATERIALIZED VIEW cluster_mv_1 PARTITIONED ON (partkey) CLUSTERED ON (key) AS
+SELECT value, key, key + 100 as partkey FROM src_txn where key > 200 and key < 250;
+
+DESCRIBE FORMATTED cluster_mv_1;
+
+dfs -ls ${system:test.warehouse.dir}/../localfs/warehouse/cluster_mv_1/;
+
+EXPLAIN
+SELECT * FROM cluster_mv_1 where key = 238;
+
+SELECT * FROM cluster_mv_1 where key = 238;
+
+CREATE MATERIALIZED VIEW cluster_mv_2 PARTITIONED ON (partkey) CLUSTERED ON (value) AS
+SELECT key, value, key + 100 as partkey FROM src_txn where key > 200 and key < 250;
+
+dfs -ls ${system:test.warehouse.dir}/../localfs/warehouse/cluster_mv_2/;
+
+EXPLAIN
+SELECT * FROM cluster_mv_2 where value = 'val_238';
+
+SELECT * FROM cluster_mv_2 where value = 'val_238';
+
+EXPLAIN
+SELECT value FROM cluster_mv_2 where key = 238;
+
+SELECT value FROM cluster_mv_2 where key = 238;
+
+INSERT INTO src_txn VALUES (238, 'val_238_n');
+
+EXPLAIN
+ALTER MATERIALIZED VIEW cluster_mv_1 REBUILD;
+
+ALTER MATERIALIZED VIEW cluster_mv_1 REBUILD;
+
+SELECT * FROM cluster_mv_1 where key = 238;
+
+SELECT * FROM cluster_mv_2 where key = 238;
+
+CREATE TABLE src_txn_2 stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src;
+
+CREATE MATERIALIZED VIEW cluster_mv_3 PARTITIONED ON (partkey) CLUSTERED ON (key) AS
+SELECT src_txn.key + 100 as partkey, src_txn.value, src_txn.key FROM src_txn, src_txn_2
+WHERE src_txn.key = src_txn_2.key
+ AND src_txn.key > 200 AND src_txn.key < 250;
+
+dfs -ls ${system:test.warehouse.dir}/../localfs/warehouse/cluster_mv_3/;
+
+INSERT INTO src_txn VALUES (238, 'val_238_n2');
+
+EXPLAIN
+ALTER MATERIALIZED VIEW cluster_mv_3 REBUILD;
+
+ALTER MATERIALIZED VIEW cluster_mv_3 REBUILD;
+
+SELECT * FROM cluster_mv_3 where key = 238;
+
+CREATE MATERIALIZED VIEW cluster_mv_4 PARTITIONED ON (partkey) CLUSTERED ON (key,`tes"t`,`te*#"s"t`) AS
+SELECT src_txn.key + 100 as partkey, value, key, key+1 as `tes"t`, key+2 as `te*#"s"t` FROM src_txn where key > 200 and key < 250;
+
+DESCRIBE FORMATTED cluster_mv_4;
+
+INSERT INTO src_txn VALUES (238, 'val_238_n2');
+
+set hive.materializedview.rebuild.incremental=false;
+
+EXPLAIN
+ALTER MATERIALIZED VIEW cluster_mv_3 REBUILD;
+
+ALTER MATERIALIZED VIEW cluster_mv_3 REBUILD;
+
+SELECT * FROM cluster_mv_3 where key = 238;
+
+EXPLAIN
+ALTER MATERIALIZED VIEW cluster_mv_4 REBUILD;
+
+ALTER MATERIALIZED VIEW cluster_mv_4 REBUILD;
+
+SELECT * FROM cluster_mv_4 where key = 238;
+
+DESCRIBE FORMATTED cluster_mv_4;
diff --git a/ql/src/test/results/clientnegative/materialized_view_distribute.q.out b/ql/src/test/results/clientnegative/materialized_view_distribute.q.out
new file mode 100644
index 0000000..1636bfb
--- /dev/null
+++ b/ql/src/test/results/clientnegative/materialized_view_distribute.q.out
@@ -0,0 +1,15 @@
+PREHOOK: query: CREATE TABLE src_txn stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src
+PREHOOK: type: CREATETABLE_AS_SELECT
+PREHOOK: Input: default@src
+PREHOOK: Output: database:default
+PREHOOK: Output: default@src_txn
+POSTHOOK: query: CREATE TABLE src_txn stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src
+POSTHOOK: type: CREATETABLE_AS_SELECT
+POSTHOOK: Input: default@src
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@src_txn
+POSTHOOK: Lineage: src_txn.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: src_txn.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+FAILED: ParseException line 3:62 mismatched input 'STORED' expecting SORTED near ')' in view sort specification
diff --git a/ql/src/test/results/clientnegative/materialized_view_partition_cluster_same_col.q.out b/ql/src/test/results/clientnegative/materialized_view_partition_cluster_same_col.q.out
new file mode 100644
index 0000000..0e55852
--- /dev/null
+++ b/ql/src/test/results/clientnegative/materialized_view_partition_cluster_same_col.q.out
@@ -0,0 +1,15 @@
+PREHOOK: query: CREATE TABLE src_txn stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src
+PREHOOK: type: CREATETABLE_AS_SELECT
+PREHOOK: Input: default@src
+PREHOOK: Output: database:default
+PREHOOK: Output: default@src_txn
+POSTHOOK: query: CREATE TABLE src_txn stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src
+POSTHOOK: type: CREATETABLE_AS_SELECT
+POSTHOOK: Input: default@src
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@src_txn
+POSTHOOK: Lineage: src_txn.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: src_txn.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+FAILED: SemanticException Same column cannot be present in partition and cluster/distribute clause. Column name: key
diff --git a/ql/src/test/results/clientnegative/materialized_view_partition_sort_same_col.q.out b/ql/src/test/results/clientnegative/materialized_view_partition_sort_same_col.q.out
new file mode 100644
index 0000000..9fe5de7
--- /dev/null
+++ b/ql/src/test/results/clientnegative/materialized_view_partition_sort_same_col.q.out
@@ -0,0 +1,15 @@
+PREHOOK: query: CREATE TABLE src_txn stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src
+PREHOOK: type: CREATETABLE_AS_SELECT
+PREHOOK: Input: default@src
+PREHOOK: Output: database:default
+PREHOOK: Output: default@src_txn
+POSTHOOK: query: CREATE TABLE src_txn stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src
+POSTHOOK: type: CREATETABLE_AS_SELECT
+POSTHOOK: Input: default@src
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@src_txn
+POSTHOOK: Lineage: src_txn.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: src_txn.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+FAILED: SemanticException Same column cannot be present in partition and cluster/sort clause. Column name: key
diff --git a/ql/src/test/results/clientnegative/materialized_view_sort.q.out b/ql/src/test/results/clientnegative/materialized_view_sort.q.out
new file mode 100644
index 0000000..dcd72a5
--- /dev/null
+++ b/ql/src/test/results/clientnegative/materialized_view_sort.q.out
@@ -0,0 +1,15 @@
+PREHOOK: query: CREATE TABLE src_txn stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src
+PREHOOK: type: CREATETABLE_AS_SELECT
+PREHOOK: Input: default@src
+PREHOOK: Output: database:default
+PREHOOK: Output: default@src_txn
+POSTHOOK: query: CREATE TABLE src_txn stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src
+POSTHOOK: type: CREATETABLE_AS_SELECT
+POSTHOOK: Input: default@src
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@src_txn
+POSTHOOK: Lineage: src_txn.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: src_txn.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+FAILED: ParseException line 3:41 mismatched input 'SORTED' expecting AS near 'distribute_mv_1' in create materialized view statement
diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_cluster.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_cluster.q.out
new file mode 100644
index 0000000..1747783
--- /dev/null
+++ b/ql/src/test/results/clientpositive/llap/materialized_view_cluster.q.out
@@ -0,0 +1,1361 @@
+PREHOOK: query: CREATE TABLE src_txn stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src
+PREHOOK: type: CREATETABLE_AS_SELECT
+PREHOOK: Input: default@src
+PREHOOK: Output: database:default
+PREHOOK: Output: default@src_txn
+POSTHOOK: query: CREATE TABLE src_txn stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src
+POSTHOOK: type: CREATETABLE_AS_SELECT
+POSTHOOK: Input: default@src
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@src_txn
+POSTHOOK: Lineage: src_txn.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: src_txn.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+PREHOOK: query: EXPLAIN
+CREATE MATERIALIZED VIEW cluster_mv_1 CLUSTERED ON (key) STORED AS TEXTFILE AS
+SELECT value, key FROM src_txn where key > 200 and key < 250
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@src_txn
+PREHOOK: Output: database:default
+PREHOOK: Output: default@cluster_mv_1
+POSTHOOK: query: EXPLAIN
+CREATE MATERIALIZED VIEW cluster_mv_1 CLUSTERED ON (key) STORED AS TEXTFILE AS
+SELECT value, key FROM src_txn where key > 200 and key < 250
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@cluster_mv_1
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-4 depends on stages: Stage-0, Stage-2
+ Stage-3 depends on stages: Stage-4
+ Stage-5 depends on stages: Stage-3
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (CUSTOM_SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: src_txn
+ filterExpr: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 55 Data size: 9790 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: value (type: string), key (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 55 Data size: 9790 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col1 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col1 (type: string)
+ Statistics: Num rows: 55 Data size: 9790 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: string)
+ Execution mode: vectorized, llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Select Operator
+ expressions: VALUE._col0 (type: string), KEY._col1 (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 55 Data size: 9790 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 55 Data size: 9790 Basic stats: COMPLETE Column stats: COMPLETE
+ 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
+ name: default.cluster_mv_1
+ Select Operator
+ expressions: _col0 (type: string), _col1 (type: string)
+ outputColumnNames: col1, col2
+ Statistics: Num rows: 55 Data size: 9790 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: compute_stats(col1, 'hll'), compute_stats(col2, 'hll')
+ minReductionHashAggr: 0.9818182
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ sort order:
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>), _col1 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>)
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-2
+ Dependency Collection
+
+ Stage: Stage-4
+ Create View
+ distribute columns: key string
+ columns: value string, key string
+ sort columns: key string
+ expanded text: SELECT `src_txn`.`value`, `src_txn`.`key` FROM `default`.`src_txn` where `src_txn`.`key` > 200 and `src_txn`.`key` < 250
+ name: default.cluster_mv_1
+ original text: SELECT value, key FROM src_txn where key > 200 and key < 250
+ rewrite enabled: true
+
+ Stage: Stage-3
+ Stats Work
+ Basic Stats Work:
+ Column Stats Desc:
+ Columns: value, key
+ Column Types: string, string
+ Table: default.cluster_mv_1
+
+ Stage: Stage-5
+ Materialized View Update
+ name: default.cluster_mv_1
+ retrieveAndInclude: true
+
+ Stage: Stage-0
+ Move Operator
+ files:
+ hdfs directory: true
+#### A masked pattern was here ####
+
+PREHOOK: query: CREATE MATERIALIZED VIEW cluster_mv_1 CLUSTERED ON (key) STORED AS TEXTFILE AS
+SELECT value, key FROM src_txn where key > 200 and key < 250
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@src_txn
+PREHOOK: Output: database:default
+PREHOOK: Output: default@cluster_mv_1
+POSTHOOK: query: CREATE MATERIALIZED VIEW cluster_mv_1 CLUSTERED ON (key) STORED AS TEXTFILE AS
+SELECT value, key FROM src_txn where key > 200 and key < 250
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@cluster_mv_1
+PREHOOK: query: DESCRIBE FORMATTED cluster_mv_1
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@cluster_mv_1
+POSTHOOK: query: DESCRIBE FORMATTED cluster_mv_1
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@cluster_mv_1
+# col_name data_type comment
+value string
+key string
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MATERIALIZED_VIEW
+Table Parameters:
+ COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\"key\":\"true\",\"value\":\"true\"}}
+ bucketing_version 2
+ materializedview.distribute.columns [\"key\"]
+ materializedview.sort.columns [\"key\"]
+ numFiles 2
+ numRows 55
+ rawDataSize 605
+ totalSize 660
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+
+# Materialized View Information
+Original Query: SELECT value, key FROM src_txn where key > 200 and key < 250
+Expanded Query: SELECT `src_txn`.`value`, `src_txn`.`key` FROM `default`.`src_txn` where `src_txn`.`key` > 200 and `src_txn`.`key` < 250
+Rewrite Enabled: Yes
+Outdated for Rewriting: No
+Found 2 items
+#### A masked pattern was here ####
+val_201201
+val_203203
+val_203203
+val_205205
+val_205205
+val_209209
+val_209209
+val_213213
+val_213213
+val_218218
+val_221221
+val_221221
+val_223223
+val_223223
+val_226226
+val_233233
+val_233233
+val_237237
+val_237237
+val_239239
+val_239239
+val_241241
+val_242242
+val_242242
+val_247247
+val_248248
+val_202202
+val_207207
+val_207207
+val_208208
+val_208208
+val_208208
+val_214214
+val_216216
+val_216216
+val_217217
+val_217217
+val_219219
+val_219219
+val_222222
+val_224224
+val_224224
+val_228228
+val_229229
+val_229229
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_235235
+val_238238
+val_238238
+val_244244
+val_249249
+PREHOOK: query: EXPLAIN
+SELECT * FROM cluster_mv_1 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cluster_mv_1
+#### A masked pattern was here ####
+POSTHOOK: query: EXPLAIN
+SELECT * FROM cluster_mv_1 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cluster_mv_1
+#### A masked pattern was here ####
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: cluster_mv_1
+ filterExpr: (UDFToDouble(key) = 238.0D) (type: boolean)
+ Filter Operator
+ predicate: (UDFToDouble(key) = 238.0D) (type: boolean)
+ Select Operator
+ expressions: value (type: string), key (type: string)
+ outputColumnNames: _col0, _col1
+ ListSink
+
+PREHOOK: query: SELECT * FROM cluster_mv_1 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cluster_mv_1
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM cluster_mv_1 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cluster_mv_1
+#### A masked pattern was here ####
+val_238 238
+val_238 238
+PREHOOK: query: CREATE MATERIALIZED VIEW cluster_mv_2 CLUSTERED ON (value) STORED AS TEXTFILE AS
+SELECT key, value FROM src_txn where key > 200 and key < 250
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@src_txn
+PREHOOK: Output: database:default
+PREHOOK: Output: default@cluster_mv_2
+POSTHOOK: query: CREATE MATERIALIZED VIEW cluster_mv_2 CLUSTERED ON (value) STORED AS TEXTFILE AS
+SELECT key, value FROM src_txn where key > 200 and key < 250
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@cluster_mv_2
+Found 2 items
+#### A masked pattern was here ####
+202val_202
+203val_203
+203val_203
+205val_205
+205val_205
+213val_213
+213val_213
+214val_214
+216val_216
+216val_216
+218val_218
+221val_221
+221val_221
+228val_228
+229val_229
+229val_229
+233val_233
+233val_233
+235val_235
+237val_237
+237val_237
+238val_238
+238val_238
+239val_239
+239val_239
+241val_241
+248val_248
+201val_201
+207val_207
+207val_207
+208val_208
+208val_208
+208val_208
+209val_209
+209val_209
+217val_217
+217val_217
+219val_219
+219val_219
+222val_222
+223val_223
+223val_223
+224val_224
+224val_224
+226val_226
+230val_230
+230val_230
+230val_230
+230val_230
+230val_230
+242val_242
+242val_242
+244val_244
+247val_247
+249val_249
+PREHOOK: query: EXPLAIN
+SELECT * FROM cluster_mv_2 where value = 'val_238'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cluster_mv_2
+#### A masked pattern was here ####
+POSTHOOK: query: EXPLAIN
+SELECT * FROM cluster_mv_2 where value = 'val_238'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cluster_mv_2
+#### A masked pattern was here ####
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: cluster_mv_2
+ filterExpr: (value = 'val_238') (type: boolean)
+ Filter Operator
+ predicate: (value = 'val_238') (type: boolean)
+ Select Operator
+ expressions: key (type: string), 'val_238' (type: string)
+ outputColumnNames: _col0, _col1
+ ListSink
+
+PREHOOK: query: SELECT * FROM cluster_mv_2 where value = 'val_238'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cluster_mv_2
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM cluster_mv_2 where value = 'val_238'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cluster_mv_2
+#### A masked pattern was here ####
+238 val_238
+238 val_238
+PREHOOK: query: EXPLAIN
+SELECT value FROM cluster_mv_2 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cluster_mv_2
+#### A masked pattern was here ####
+POSTHOOK: query: EXPLAIN
+SELECT value FROM cluster_mv_2 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cluster_mv_2
+#### A masked pattern was here ####
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: cluster_mv_2
+ filterExpr: (UDFToDouble(key) = 238.0D) (type: boolean)
+ Filter Operator
+ predicate: (UDFToDouble(key) = 238.0D) (type: boolean)
+ Select Operator
+ expressions: value (type: string)
+ outputColumnNames: _col0
+ ListSink
+
+PREHOOK: query: SELECT value FROM cluster_mv_2 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cluster_mv_2
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT value FROM cluster_mv_2 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cluster_mv_2
+#### A masked pattern was here ####
+val_238
+val_238
+PREHOOK: query: INSERT INTO src_txn VALUES (238, 'val_238_n')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@src_txn
+POSTHOOK: query: INSERT INTO src_txn VALUES (238, 'val_238_n')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@src_txn
+POSTHOOK: Lineage: src_txn.key SCRIPT []
+POSTHOOK: Lineage: src_txn.value SCRIPT []
+PREHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cluster_mv_1 REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_txn
+PREHOOK: Output: default@cluster_mv_1
+POSTHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cluster_mv_1 REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Output: default@cluster_mv_1
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
+ Stage-3 depends on stages: Stage-0
+ Stage-4 depends on stages: Stage-3
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (CUSTOM_SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: src_txn
+ filterExpr: ((ROW__ID.writeid > 1L) and (UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 501 Data size: 90180 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((ROW__ID.writeid > 1L) and (UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 18 Data size: 3240 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: value (type: string), key (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 18 Data size: 3240 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 18 Data size: 3240 Basic stats: COMPLETE Column stats: COMPLETE
+ 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
+ name: default.cluster_mv_1
+ Select Operator
+ expressions: _col0 (type: string), _col1 (type: string)
+ outputColumnNames: value, key
+ Statistics: Num rows: 18 Data size: 3240 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: compute_stats(value, 'hll'), compute_stats(key, 'hll')
+ minReductionHashAggr: 0.9444444
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ sort order:
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>), _col1 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>)
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-2
+ Dependency Collection
+
+ Stage: Stage-0
+ Move Operator
+ tables:
+ replace: false
+ 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
+ name: default.cluster_mv_1
+
+ Stage: Stage-3
+ Stats Work
+ Basic Stats Work:
+ Column Stats Desc:
+ Columns: value, key
+ Column Types: string, string
+ Table: default.cluster_mv_1
+
+ Stage: Stage-4
+ Materialized View Update
+ name: default.cluster_mv_1
+ updateCreationMetadata: true
+
+PREHOOK: query: ALTER MATERIALIZED VIEW cluster_mv_1 REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_txn
+PREHOOK: Output: default@cluster_mv_1
+POSTHOOK: query: ALTER MATERIALIZED VIEW cluster_mv_1 REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Output: default@cluster_mv_1
+POSTHOOK: Lineage: cluster_mv_1.key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1.value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+PREHOOK: query: SELECT * FROM cluster_mv_1 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cluster_mv_1
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM cluster_mv_1 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cluster_mv_1
+#### A masked pattern was here ####
+val_238 238
+val_238 238
+val_238_n 238
+PREHOOK: query: SELECT * FROM cluster_mv_2 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cluster_mv_2
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM cluster_mv_2 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cluster_mv_2
+#### A masked pattern was here ####
+238 val_238
+238 val_238
+PREHOOK: query: CREATE TABLE src_txn_2 stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src
+PREHOOK: type: CREATETABLE_AS_SELECT
+PREHOOK: Input: default@src
+PREHOOK: Output: database:default
+PREHOOK: Output: default@src_txn_2
+POSTHOOK: query: CREATE TABLE src_txn_2 stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src
+POSTHOOK: type: CREATETABLE_AS_SELECT
+POSTHOOK: Input: default@src
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@src_txn_2
+POSTHOOK: Lineage: src_txn_2.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: src_txn_2.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+PREHOOK: query: CREATE MATERIALIZED VIEW cluster_mv_3 CLUSTERED ON (key) STORED AS TEXTFILE AS
+SELECT src_txn.value, src_txn.key FROM src_txn, src_txn_2
+WHERE src_txn.key = src_txn_2.key
+ AND src_txn.key > 200 AND src_txn.key < 250
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@src_txn
+PREHOOK: Input: default@src_txn_2
+PREHOOK: Output: database:default
+PREHOOK: Output: default@cluster_mv_3
+POSTHOOK: query: CREATE MATERIALIZED VIEW cluster_mv_3 CLUSTERED ON (key) STORED AS TEXTFILE AS
+SELECT src_txn.value, src_txn.key FROM src_txn, src_txn_2
+WHERE src_txn.key = src_txn_2.key
+ AND src_txn.key > 200 AND src_txn.key < 250
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Input: default@src_txn_2
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@cluster_mv_3
+Found 1 items
+#### A masked pattern was here ####
+val_201201
+val_202202
+val_203203
+val_203203
+val_203203
+val_203203
+val_205205
+val_205205
+val_205205
+val_205205
+val_207207
+val_207207
+val_207207
+val_207207
+val_208208
+val_208208
+val_208208
+val_208208
+val_208208
+val_208208
+val_208208
+val_208208
+val_208208
+val_209209
+val_209209
+val_209209
+val_209209
+val_213213
+val_213213
+val_213213
+val_213213
+val_214214
+val_216216
+val_216216
+val_216216
+val_216216
+val_217217
+val_217217
+val_217217
+val_217217
+val_218218
+val_219219
+val_219219
+val_219219
+val_219219
+val_221221
+val_221221
+val_221221
+val_221221
+val_222222
+val_223223
+val_223223
+val_223223
+val_223223
+val_224224
+val_224224
+val_224224
+val_224224
+val_226226
+val_228228
+val_229229
+val_229229
+val_229229
+val_229229
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_233233
+val_233233
+val_233233
+val_233233
+val_235235
+val_237237
+val_237237
+val_237237
+val_237237
+val_238238
+val_238238
+val_238238
+val_238238
+val_238_n238
+val_238_n238
+val_239239
+val_239239
+val_239239
+val_239239
+val_241241
+val_242242
+val_242242
+val_242242
+val_242242
+val_244244
+val_247247
+val_248248
+val_249249
+PREHOOK: query: INSERT INTO src_txn VALUES (238, 'val_238_n2')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@src_txn
+POSTHOOK: query: INSERT INTO src_txn VALUES (238, 'val_238_n2')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@src_txn
+POSTHOOK: Lineage: src_txn.key SCRIPT []
+POSTHOOK: Lineage: src_txn.value SCRIPT []
+PREHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cluster_mv_3 REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_txn
+PREHOOK: Input: default@src_txn_2
+PREHOOK: Output: default@cluster_mv_3
+POSTHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cluster_mv_3 REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Input: default@src_txn_2
+POSTHOOK: Output: default@cluster_mv_3
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
+ Stage-3 depends on stages: Stage-0
+ Stage-4 depends on stages: Stage-3
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (CUSTOM_SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: src_txn
+ filterExpr: ((ROW__ID.writeid > 2L) and (UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 502 Data size: 90862 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((ROW__ID.writeid > 2L) and (UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 18 Data size: 3258 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: key (type: string), value (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 18 Data size: 3258 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: string)
+ Statistics: Num rows: 18 Data size: 3258 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: string)
+ Execution mode: vectorized, llap
+ LLAP IO: may be used (ACID table)
+ Map 4
+ Map Operator Tree:
+ TableScan
+ alias: src_txn_2
+ filterExpr: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 55 Data size: 4785 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: key (type: string)
+ outputColumnNames: _col0
+ Statistics: Num rows: 55 Data size: 4785 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: string)
+ Statistics: Num rows: 55 Data size: 4785 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: vectorized, llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: string)
+ 1 _col0 (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 18 Data size: 3258 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col1 (type: string), _col0 (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 18 Data size: 3258 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 18 Data size: 3258 Basic stats: COMPLETE Column stats: COMPLETE
+ 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
+ name: default.cluster_mv_3
+ Select Operator
+ expressions: _col0 (type: string), _col1 (type: string)
+ outputColumnNames: value, key
+ Statistics: Num rows: 18 Data size: 3258 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: compute_stats(value, 'hll'), compute_stats(key, 'hll')
+ minReductionHashAggr: 0.9444444
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ sort order:
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>), _col1 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>)
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-2
+ Dependency Collection
+
+ Stage: Stage-0
+ Move Operator
+ tables:
+ replace: false
+ 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
+ name: default.cluster_mv_3
+
+ Stage: Stage-3
+ Stats Work
+ Basic Stats Work:
+ Column Stats Desc:
+ Columns: value, key
+ Column Types: string, string
+ Table: default.cluster_mv_3
+
+ Stage: Stage-4
+ Materialized View Update
+ name: default.cluster_mv_3
+ updateCreationMetadata: true
+
+PREHOOK: query: ALTER MATERIALIZED VIEW cluster_mv_3 REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_txn
+PREHOOK: Input: default@src_txn_2
+PREHOOK: Output: default@cluster_mv_3
+POSTHOOK: query: ALTER MATERIALIZED VIEW cluster_mv_3 REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Input: default@src_txn_2
+POSTHOOK: Output: default@cluster_mv_3
+POSTHOOK: Lineage: cluster_mv_3.key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3.value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+PREHOOK: query: SELECT * FROM cluster_mv_3 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cluster_mv_3
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM cluster_mv_3 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cluster_mv_3
+#### A masked pattern was here ####
+val_238 238
+val_238 238
+val_238 238
+val_238 238
+val_238_n 238
+val_238_n 238
+val_238_n2 238
+val_238_n2 238
+PREHOOK: query: CREATE MATERIALIZED VIEW cluster_mv_4 CLUSTERED ON (key,`tes"t`,`te*#"s"t`) STORED AS TEXTFILE AS
+SELECT value, key, key+1 as `tes"t`, key+2 as `te*#"s"t` FROM src_txn where key > 200 and key < 250
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@src_txn
+PREHOOK: Output: database:default
+PREHOOK: Output: default@cluster_mv_4
+POSTHOOK: query: CREATE MATERIALIZED VIEW cluster_mv_4 CLUSTERED ON (key,`tes"t`,`te*#"s"t`) STORED AS TEXTFILE AS
+SELECT value, key, key+1 as `tes"t`, key+2 as `te*#"s"t` FROM src_txn where key > 200 and key < 250
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@cluster_mv_4
+PREHOOK: query: DESCRIBE FORMATTED cluster_mv_4
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@cluster_mv_4
+POSTHOOK: query: DESCRIBE FORMATTED cluster_mv_4
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@cluster_mv_4
+# col_name data_type comment
+value string
+key string
+tes"t double
+te*#"s"t double
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MATERIALIZED_VIEW
+Table Parameters:
+ COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\"key\":\"true\",\"te*#\\\"s\\\"t\":\"true\",\"tes\\\"t\":\"true\",\"value\":\"true\"}}
+ bucketing_version 2
+ materializedview.distribute.columns [\"key\",\"tes\\\"t\",\"te*#\\\"s\\\"t\"]
+ materializedview.sort.columns [\"key\",\"tes\\\"t\",\"te*#\\\"s\\\"t\"]
+ numFiles 2
+ numRows 57
+ rawDataSize 1316
+ totalSize 1373
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+
+# Materialized View Information
+Original Query: SELECT value, key, key+1 as tes"t, key+2 as te*#"s"t FROM src_txn where key > 200 and key < 250
+Expanded Query: SELECT `src_txn`.`value`, `src_txn`.`key`, `src_txn`.`key`+1 as `tes"t`, `src_txn`.`key`+2 as `te*#"s"t` FROM `default`.`src_txn` where `src_txn`.`key` > 200 and `src_txn`.`key` < 250
+Rewrite Enabled: Yes
+Outdated for Rewriting: No
+PREHOOK: query: INSERT INTO src_txn VALUES (238, 'val_238_n2')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@src_txn
+POSTHOOK: query: INSERT INTO src_txn VALUES (238, 'val_238_n2')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@src_txn
+POSTHOOK: Lineage: src_txn.key SCRIPT []
+POSTHOOK: Lineage: src_txn.value SCRIPT []
+PREHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cluster_mv_3 REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_txn
+PREHOOK: Input: default@src_txn_2
+PREHOOK: Output: default@cluster_mv_3
+POSTHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cluster_mv_3 REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Input: default@src_txn_2
+POSTHOOK: Output: default@cluster_mv_3
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
+ Stage-3 depends on stages: Stage-0
+ Stage-4 depends on stages: Stage-3
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 5 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (ONE_TO_ONE_EDGE)
+ Reducer 4 <- Reducer 3 (CUSTOM_SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: src_txn
+ filterExpr: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 503 Data size: 91043 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 55 Data size: 9955 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: key (type: string), value (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 55 Data size: 9955 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: string)
+ Statistics: Num rows: 55 Data size: 9955 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: string)
+ Execution mode: vectorized, llap
+ LLAP IO: may be used (ACID table)
+ Map 5
+ Map Operator Tree:
+ TableScan
+ alias: src_txn_2
+ filterExpr: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 55 Data size: 4785 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: key (type: string)
+ outputColumnNames: _col0
+ Statistics: Num rows: 55 Data size: 4785 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: string)
+ Statistics: Num rows: 55 Data size: 4785 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: vectorized, llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: string)
+ 1 _col0 (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 55 Data size: 9955 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col1 (type: string), _col0 (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 55 Data size: 9955 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col1 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col1 (type: string)
+ Statistics: Num rows: 55 Data size: 9955 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: string)
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Select Operator
+ expressions: VALUE._col0 (type: string), KEY._col1 (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 55 Data size: 9955 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 55 Data size: 9955 Basic stats: COMPLETE Column stats: COMPLETE
+ 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
+ name: default.cluster_mv_3
+ Select Operator
+ expressions: _col0 (type: string), _col1 (type: string)
+ outputColumnNames: value, key
+ Statistics: Num rows: 55 Data size: 9955 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: compute_stats(value, 'hll'), compute_stats(key, 'hll')
+ minReductionHashAggr: 0.9818182
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ sort order:
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>), _col1 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>)
+ Reducer 4
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-2
+ Dependency Collection
+
+ Stage: Stage-0
+ Move Operator
+ tables:
+ replace: true
+ 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
+ name: default.cluster_mv_3
+
+ Stage: Stage-3
+ Stats Work
+ Basic Stats Work:
+ Column Stats Desc:
+ Columns: value, key
+ Column Types: string, string
+ Table: default.cluster_mv_3
+
+ Stage: Stage-4
+ Materialized View Update
+ name: default.cluster_mv_3
+ updateCreationMetadata: true
+
+PREHOOK: query: ALTER MATERIALIZED VIEW cluster_mv_3 REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_txn
+PREHOOK: Input: default@src_txn_2
+PREHOOK: Output: default@cluster_mv_3
+POSTHOOK: query: ALTER MATERIALIZED VIEW cluster_mv_3 REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Input: default@src_txn_2
+POSTHOOK: Output: default@cluster_mv_3
+POSTHOOK: Lineage: cluster_mv_3.key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3.value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+PREHOOK: query: SELECT * FROM cluster_mv_3 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cluster_mv_3
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM cluster_mv_3 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cluster_mv_3
+#### A masked pattern was here ####
+val_238 238
+val_238 238
+val_238 238
+val_238 238
+val_238_n 238
+val_238_n 238
+val_238_n2 238
+val_238_n2 238
+val_238_n2 238
+val_238_n2 238
+PREHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cluster_mv_4 REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_txn
+PREHOOK: Output: default@cluster_mv_4
+POSTHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cluster_mv_4 REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Output: default@cluster_mv_4
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
+ Stage-3 depends on stages: Stage-0
+ Stage-4 depends on stages: Stage-3
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (CUSTOM_SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: src_txn
+ filterExpr: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 503 Data size: 91043 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 55 Data size: 9955 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: value (type: string), key (type: string), (UDFToDouble(key) + 1.0D) (type: double), (UDFToDouble(key) + 2.0D) (type: double)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 55 Data size: 10835 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col1 (type: string), _col2 (type: double), _col3 (type: double)
+ sort order: +++
+ Map-reduce partition columns: _col1 (type: string), _col2 (type: double), _col3 (type: double)
+ Statistics: Num rows: 55 Data size: 10835 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: string)
+ Execution mode: vectorized, llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Select Operator
+ expressions: VALUE._col0 (type: string), KEY._col1 (type: string), KEY._col2 (type: double), KEY._col3 (type: double)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 55 Data size: 10835 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 55 Data size: 10835 Basic stats: COMPLETE Column stats: COMPLETE
+ 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
+ name: default.cluster_mv_4
+ Select Operator
+ expressions: _col0 (type: string), _col1 (type: string), _col2 (type: double), _col3 (type: double)
+ outputColumnNames: value, key, tes"t, te*#"s"t
+ Statistics: Num rows: 55 Data size: 10835 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: compute_stats(value, 'hll'), compute_stats(key, 'hll'), compute_stats(tes"t, 'hll'), compute_stats(te*#"s"t, 'hll')
+ minReductionHashAggr: 0.9818182
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 1 Data size: 1728 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ sort order:
+ Statistics: Num rows: 1 Data size: 1728 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>), _col1 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>), _col2 (type: struct<columntype:string,min:double,max:double,countnulls:bigint,bitvector:binary>), _col3 (type: struct<columntype:string,min:double,max:double,countnulls:bigint,bitvector:binary>)
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1), compute_stats(VALUE._col2), compute_stats(VALUE._col3)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 1 Data size: 1760 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 1760 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-2
+ Dependency Collection
+
+ Stage: Stage-0
+ Move Operator
+ tables:
+ replace: true
+ 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
+ name: default.cluster_mv_4
+
+ Stage: Stage-3
+ Stats Work
+ Basic Stats Work:
+ Column Stats Desc:
+ Columns: value, key, tes"t, te*#"s"t
+ Column Types: string, string, double, double
+ Table: default.cluster_mv_4
+
+ Stage: Stage-4
+ Materialized View Update
+ name: default.cluster_mv_4
+ updateCreationMetadata: true
+
+PREHOOK: query: ALTER MATERIALIZED VIEW cluster_mv_4 REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_txn
+PREHOOK: Output: default@cluster_mv_4
+POSTHOOK: query: ALTER MATERIALIZED VIEW cluster_mv_4 REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Output: default@cluster_mv_4
+POSTHOOK: Lineage: cluster_mv_4.key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4.te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4.tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4.value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+PREHOOK: query: SELECT * FROM cluster_mv_4 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cluster_mv_4
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM cluster_mv_4 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cluster_mv_4
+#### A masked pattern was here ####
+val_238 238 239.0 240.0
+val_238 238 239.0 240.0
+val_238_n 238 239.0 240.0
+val_238_n2 238 239.0 240.0
+val_238_n2 238 239.0 240.0
+PREHOOK: query: DESCRIBE FORMATTED cluster_mv_4
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@cluster_mv_4
+POSTHOOK: query: DESCRIBE FORMATTED cluster_mv_4
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@cluster_mv_4
+# col_name data_type comment
+value string
+key string
+tes"t double
+te*#"s"t double
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MATERIALIZED_VIEW
+Table Parameters:
+ COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\"key\":\"true\",\"te*#\\\"s\\\"t\":\"true\",\"tes\\\"t\":\"true\",\"value\":\"true\"}}
+ bucketing_version 2
+ materializedview.distribute.columns [\"key\",\"tes\\\"t\",\"te*#\\\"s\\\"t\"]
+ materializedview.sort.columns [\"key\",\"tes\\\"t\",\"te*#\\\"s\\\"t\"]
+ numFiles 2
+ numRows 58
+ rawDataSize 1342
+ totalSize 1400
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+
+# Materialized View Information
+Original Query: SELECT value, key, key+1 as tes"t, key+2 as te*#"s"t FROM src_txn where key > 200 and key < 250
+Expanded Query: SELECT `src_txn`.`value`, `src_txn`.`key`, `src_txn`.`key`+1 as `tes"t`, `src_txn`.`key`+2 as `te*#"s"t` FROM `default`.`src_txn` where `src_txn`.`key` > 200 and `src_txn`.`key` < 250
+Rewrite Enabled: Yes
+Outdated for Rewriting: No
diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_distribute_sort.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_distribute_sort.q.out
new file mode 100644
index 0000000..56acb6a
--- /dev/null
+++ b/ql/src/test/results/clientpositive/llap/materialized_view_distribute_sort.q.out
@@ -0,0 +1,1312 @@
+PREHOOK: query: CREATE TABLE src_txn stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src
+PREHOOK: type: CREATETABLE_AS_SELECT
+PREHOOK: Input: default@src
+PREHOOK: Output: database:default
+PREHOOK: Output: default@src_txn
+POSTHOOK: query: CREATE TABLE src_txn stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src
+POSTHOOK: type: CREATETABLE_AS_SELECT
+POSTHOOK: Input: default@src
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@src_txn
+POSTHOOK: Lineage: src_txn.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: src_txn.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+PREHOOK: query: EXPLAIN
+CREATE MATERIALIZED VIEW distribute_mv_1 DISTRIBUTED ON (key) SORTED ON (value) STORED AS TEXTFILE AS
+SELECT value, key FROM src_txn where key > 200 and key < 250
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@src_txn
+PREHOOK: Output: database:default
+PREHOOK: Output: default@distribute_mv_1
+POSTHOOK: query: EXPLAIN
+CREATE MATERIALIZED VIEW distribute_mv_1 DISTRIBUTED ON (key) SORTED ON (value) STORED AS TEXTFILE AS
+SELECT value, key FROM src_txn where key > 200 and key < 250
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@distribute_mv_1
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-4 depends on stages: Stage-0, Stage-2
+ Stage-3 depends on stages: Stage-4
+ Stage-5 depends on stages: Stage-3
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (CUSTOM_SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: src_txn
+ filterExpr: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 55 Data size: 9790 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: value (type: string), key (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 55 Data size: 9790 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col1 (type: string)
+ Statistics: Num rows: 55 Data size: 9790 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: string)
+ Execution mode: vectorized, llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY._col0 (type: string), VALUE._col1 (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 55 Data size: 9790 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 55 Data size: 9790 Basic stats: COMPLETE Column stats: COMPLETE
+ 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
+ name: default.distribute_mv_1
+ Select Operator
+ expressions: _col0 (type: string), _col1 (type: string)
+ outputColumnNames: col1, col2
+ Statistics: Num rows: 55 Data size: 9790 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: compute_stats(col1, 'hll'), compute_stats(col2, 'hll')
+ minReductionHashAggr: 0.9818182
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ sort order:
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>), _col1 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>)
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-2
+ Dependency Collection
+
+ Stage: Stage-4
+ Create View
+ distribute columns: key string
+ columns: value string, key string
+ sort columns: value string
+ expanded text: SELECT `src_txn`.`value`, `src_txn`.`key` FROM `default`.`src_txn` where `src_txn`.`key` > 200 and `src_txn`.`key` < 250
+ name: default.distribute_mv_1
+ original text: SELECT value, key FROM src_txn where key > 200 and key < 250
+ rewrite enabled: true
+
+ Stage: Stage-3
+ Stats Work
+ Basic Stats Work:
+ Column Stats Desc:
+ Columns: value, key
+ Column Types: string, string
+ Table: default.distribute_mv_1
+
+ Stage: Stage-5
+ Materialized View Update
+ name: default.distribute_mv_1
+ retrieveAndInclude: true
+
+ Stage: Stage-0
+ Move Operator
+ files:
+ hdfs directory: true
+#### A masked pattern was here ####
+
+PREHOOK: query: CREATE MATERIALIZED VIEW distribute_mv_1 DISTRIBUTED ON (key) SORTED ON (value) STORED AS TEXTFILE AS
+SELECT value, key FROM src_txn where key > 200 and key < 250
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@src_txn
+PREHOOK: Output: database:default
+PREHOOK: Output: default@distribute_mv_1
+POSTHOOK: query: CREATE MATERIALIZED VIEW distribute_mv_1 DISTRIBUTED ON (key) SORTED ON (value) STORED AS TEXTFILE AS
+SELECT value, key FROM src_txn where key > 200 and key < 250
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@distribute_mv_1
+PREHOOK: query: DESCRIBE FORMATTED distribute_mv_1
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@distribute_mv_1
+POSTHOOK: query: DESCRIBE FORMATTED distribute_mv_1
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@distribute_mv_1
+# col_name data_type comment
+value string
+key string
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MATERIALIZED_VIEW
+Table Parameters:
+ COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\"key\":\"true\",\"value\":\"true\"}}
+ bucketing_version 2
+ materializedview.distribute.columns [\"key\"]
+ materializedview.sort.columns [\"value\"]
+ numFiles 1
+ numRows 55
+ rawDataSize 605
+ totalSize 660
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+
+# Materialized View Information
+Original Query: SELECT value, key FROM src_txn where key > 200 and key < 250
+Expanded Query: SELECT `src_txn`.`value`, `src_txn`.`key` FROM `default`.`src_txn` where `src_txn`.`key` > 200 and `src_txn`.`key` < 250
+Rewrite Enabled: Yes
+Outdated for Rewriting: No
+Found 1 items
+#### A masked pattern was here ####
+val_201201
+val_202202
+val_203203
+val_203203
+val_205205
+val_205205
+val_207207
+val_207207
+val_208208
+val_208208
+val_208208
+val_209209
+val_209209
+val_213213
+val_213213
+val_214214
+val_216216
+val_216216
+val_217217
+val_217217
+val_218218
+val_219219
+val_219219
+val_221221
+val_221221
+val_222222
+val_223223
+val_223223
+val_224224
+val_224224
+val_226226
+val_228228
+val_229229
+val_229229
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_233233
+val_233233
+val_235235
+val_237237
+val_237237
+val_238238
+val_238238
+val_239239
+val_239239
+val_241241
+val_242242
+val_242242
+val_244244
+val_247247
+val_248248
+val_249249
+PREHOOK: query: EXPLAIN
+SELECT * FROM distribute_mv_1 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@distribute_mv_1
+#### A masked pattern was here ####
+POSTHOOK: query: EXPLAIN
+SELECT * FROM distribute_mv_1 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@distribute_mv_1
+#### A masked pattern was here ####
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: distribute_mv_1
+ filterExpr: (UDFToDouble(key) = 238.0D) (type: boolean)
+ Filter Operator
+ predicate: (UDFToDouble(key) = 238.0D) (type: boolean)
+ Select Operator
+ expressions: value (type: string), key (type: string)
+ outputColumnNames: _col0, _col1
+ ListSink
+
+PREHOOK: query: SELECT * FROM distribute_mv_1 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@distribute_mv_1
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM distribute_mv_1 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@distribute_mv_1
+#### A masked pattern was here ####
+val_238 238
+val_238 238
+PREHOOK: query: EXPLAIN
+CREATE MATERIALIZED VIEW distribute_mv_2 DISTRIBUTED ON (value) SORTED ON (value, key) STORED AS TEXTFILE AS
+SELECT key, value FROM src_txn where key > 200 and key < 250
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@src_txn
+PREHOOK: Output: database:default
+PREHOOK: Output: default@distribute_mv_2
+POSTHOOK: query: EXPLAIN
+CREATE MATERIALIZED VIEW distribute_mv_2 DISTRIBUTED ON (value) SORTED ON (value, key) STORED AS TEXTFILE AS
+SELECT key, value FROM src_txn where key > 200 and key < 250
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@distribute_mv_2
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-4 depends on stages: Stage-0, Stage-2
+ Stage-3 depends on stages: Stage-4
+ Stage-5 depends on stages: Stage-3
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (CUSTOM_SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: src_txn
+ filterExpr: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 55 Data size: 9790 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: key (type: string), value (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 55 Data size: 9790 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: string), _col1 (type: string)
+ sort order: ++
+ Map-reduce partition columns: _col1 (type: string)
+ Statistics: Num rows: 55 Data size: 9790 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: vectorized, llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY._col0 (type: string), KEY._col1 (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 55 Data size: 9790 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 55 Data size: 9790 Basic stats: COMPLETE Column stats: COMPLETE
+ 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
+ name: default.distribute_mv_2
+ Select Operator
+ expressions: _col0 (type: string), _col1 (type: string)
+ outputColumnNames: col1, col2
+ Statistics: Num rows: 55 Data size: 9790 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: compute_stats(col1, 'hll'), compute_stats(col2, 'hll')
+ minReductionHashAggr: 0.9818182
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ sort order:
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>), _col1 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>)
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-2
+ Dependency Collection
+
+ Stage: Stage-4
+ Create View
+ distribute columns: value string
+ columns: key string, value string
+ sort columns: value string, key string
+ expanded text: SELECT `src_txn`.`key`, `src_txn`.`value` FROM `default`.`src_txn` where `src_txn`.`key` > 200 and `src_txn`.`key` < 250
+ name: default.distribute_mv_2
+ original text: SELECT key, value FROM src_txn where key > 200 and key < 250
+ rewrite enabled: true
+
+ Stage: Stage-3
+ Stats Work
+ Basic Stats Work:
+ Column Stats Desc:
+ Columns: key, value
+ Column Types: string, string
+ Table: default.distribute_mv_2
+
+ Stage: Stage-5
+ Materialized View Update
+ name: default.distribute_mv_2
+ retrieveAndInclude: true
+
+ Stage: Stage-0
+ Move Operator
+ files:
+ hdfs directory: true
+#### A masked pattern was here ####
+
+PREHOOK: query: CREATE MATERIALIZED VIEW distribute_mv_2 DISTRIBUTED ON (value) SORTED ON (value, key) STORED AS TEXTFILE AS
+SELECT key, value FROM src_txn where key > 200 and key < 250
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@src_txn
+PREHOOK: Output: database:default
+PREHOOK: Output: default@distribute_mv_2
+POSTHOOK: query: CREATE MATERIALIZED VIEW distribute_mv_2 DISTRIBUTED ON (value) SORTED ON (value, key) STORED AS TEXTFILE AS
+SELECT key, value FROM src_txn where key > 200 and key < 250
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@distribute_mv_2
+PREHOOK: query: DESCRIBE FORMATTED distribute_mv_2
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@distribute_mv_2
+POSTHOOK: query: DESCRIBE FORMATTED distribute_mv_2
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@distribute_mv_2
+# col_name data_type comment
+key string
+value string
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MATERIALIZED_VIEW
+Table Parameters:
+ COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\"key\":\"true\",\"value\":\"true\"}}
+ bucketing_version 2
+ materializedview.distribute.columns [\"value\"]
+ materializedview.sort.columns [\"value\",\"key\"]
+ numFiles 1
+ numRows 55
+ rawDataSize 605
+ totalSize 660
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+
+# Materialized View Information
+Original Query: SELECT key, value FROM src_txn where key > 200 and key < 250
+Expanded Query: SELECT `src_txn`.`key`, `src_txn`.`value` FROM `default`.`src_txn` where `src_txn`.`key` > 200 and `src_txn`.`key` < 250
+Rewrite Enabled: Yes
+Outdated for Rewriting: No
+Found 1 items
+#### A masked pattern was here ####
+201val_201
+202val_202
+203val_203
+203val_203
+205val_205
+205val_205
+207val_207
+207val_207
+208val_208
+208val_208
+208val_208
+209val_209
+209val_209
+213val_213
+213val_213
+214val_214
+216val_216
+216val_216
+217val_217
+217val_217
+218val_218
+219val_219
+219val_219
+221val_221
+221val_221
+222val_222
+223val_223
+223val_223
+224val_224
+224val_224
+226val_226
+228val_228
+229val_229
+229val_229
+230val_230
+230val_230
+230val_230
+230val_230
+230val_230
+233val_233
+233val_233
+235val_235
+237val_237
+237val_237
+238val_238
+238val_238
+239val_239
+239val_239
+241val_241
+242val_242
+242val_242
+244val_244
+247val_247
+248val_248
+249val_249
+PREHOOK: query: EXPLAIN
+SELECT * FROM distribute_mv_2 where value = 'val_238'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@distribute_mv_2
+#### A masked pattern was here ####
+POSTHOOK: query: EXPLAIN
+SELECT * FROM distribute_mv_2 where value = 'val_238'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@distribute_mv_2
+#### A masked pattern was here ####
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: distribute_mv_2
+ filterExpr: (value = 'val_238') (type: boolean)
+ Filter Operator
+ predicate: (value = 'val_238') (type: boolean)
+ Select Operator
+ expressions: key (type: string), 'val_238' (type: string)
+ outputColumnNames: _col0, _col1
+ ListSink
+
+PREHOOK: query: SELECT * FROM distribute_mv_2 where value = 'val_238'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@distribute_mv_2
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM distribute_mv_2 where value = 'val_238'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@distribute_mv_2
+#### A masked pattern was here ####
+238 val_238
+238 val_238
+PREHOOK: query: EXPLAIN
+SELECT value FROM distribute_mv_2 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@distribute_mv_2
+#### A masked pattern was here ####
+POSTHOOK: query: EXPLAIN
+SELECT value FROM distribute_mv_2 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@distribute_mv_2
+#### A masked pattern was here ####
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: distribute_mv_2
+ filterExpr: (UDFToDouble(key) = 238.0D) (type: boolean)
+ Filter Operator
+ predicate: (UDFToDouble(key) = 238.0D) (type: boolean)
+ Select Operator
+ expressions: value (type: string)
+ outputColumnNames: _col0
+ ListSink
+
+PREHOOK: query: SELECT value FROM distribute_mv_2 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@distribute_mv_2
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT value FROM distribute_mv_2 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@distribute_mv_2
+#### A masked pattern was here ####
+val_238
+val_238
+PREHOOK: query: INSERT INTO src_txn VALUES (238, 'val_238_n')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@src_txn
+POSTHOOK: query: INSERT INTO src_txn VALUES (238, 'val_238_n')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@src_txn
+POSTHOOK: Lineage: src_txn.key SCRIPT []
+POSTHOOK: Lineage: src_txn.value SCRIPT []
+PREHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW distribute_mv_1 REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_txn
+PREHOOK: Output: default@distribute_mv_1
+POSTHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW distribute_mv_1 REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Output: default@distribute_mv_1
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
+ Stage-3 depends on stages: Stage-0
+ Stage-4 depends on stages: Stage-3
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (CUSTOM_SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: src_txn
+ filterExpr: ((ROW__ID.writeid > 1L) and (UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 501 Data size: 90180 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((ROW__ID.writeid > 1L) and (UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 18 Data size: 3240 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: value (type: string), key (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 18 Data size: 3240 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 18 Data size: 3240 Basic stats: COMPLETE Column stats: COMPLETE
+ 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
+ name: default.distribute_mv_1
+ Select Operator
+ expressions: _col0 (type: string), _col1 (type: string)
+ outputColumnNames: value, key
+ Statistics: Num rows: 18 Data size: 3240 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: compute_stats(value, 'hll'), compute_stats(key, 'hll')
+ minReductionHashAggr: 0.9444444
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ sort order:
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>), _col1 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>)
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-2
+ Dependency Collection
+
+ Stage: Stage-0
+ Move Operator
+ tables:
+ replace: false
+ 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
+ name: default.distribute_mv_1
+
+ Stage: Stage-3
+ Stats Work
+ Basic Stats Work:
+ Column Stats Desc:
+ Columns: value, key
+ Column Types: string, string
+ Table: default.distribute_mv_1
+
+ Stage: Stage-4
+ Materialized View Update
+ name: default.distribute_mv_1
+ updateCreationMetadata: true
+
+PREHOOK: query: ALTER MATERIALIZED VIEW distribute_mv_1 REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_txn
+PREHOOK: Output: default@distribute_mv_1
+POSTHOOK: query: ALTER MATERIALIZED VIEW distribute_mv_1 REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Output: default@distribute_mv_1
+POSTHOOK: Lineage: distribute_mv_1.key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: distribute_mv_1.value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+PREHOOK: query: SELECT * FROM distribute_mv_1 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@distribute_mv_1
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM distribute_mv_1 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@distribute_mv_1
+#### A masked pattern was here ####
+val_238 238
+val_238 238
+val_238_n 238
+PREHOOK: query: SELECT * FROM distribute_mv_2 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@distribute_mv_2
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM distribute_mv_2 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@distribute_mv_2
+#### A masked pattern was here ####
+238 val_238
+238 val_238
+PREHOOK: query: CREATE TABLE src_txn_2 stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src
+PREHOOK: type: CREATETABLE_AS_SELECT
+PREHOOK: Input: default@src
+PREHOOK: Output: database:default
+PREHOOK: Output: default@src_txn_2
+POSTHOOK: query: CREATE TABLE src_txn_2 stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src
+POSTHOOK: type: CREATETABLE_AS_SELECT
+POSTHOOK: Input: default@src
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@src_txn_2
+POSTHOOK: Lineage: src_txn_2.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: src_txn_2.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+PREHOOK: query: EXPLAIN
+CREATE MATERIALIZED VIEW distribute_mv_3 DISTRIBUTED ON (key) SORTED ON (value, key) STORED AS TEXTFILE AS
+SELECT src_txn.value, src_txn.key FROM src_txn, src_txn_2
+WHERE src_txn.key = src_txn_2.key
+ AND src_txn.key > 200 AND src_txn.key < 250
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@src_txn
+PREHOOK: Input: default@src_txn_2
+PREHOOK: Output: database:default
+PREHOOK: Output: default@distribute_mv_3
+POSTHOOK: query: EXPLAIN
+CREATE MATERIALIZED VIEW distribute_mv_3 DISTRIBUTED ON (key) SORTED ON (value, key) STORED AS TEXTFILE AS
+SELECT src_txn.value, src_txn.key FROM src_txn, src_txn_2
+WHERE src_txn.key = src_txn_2.key
+ AND src_txn.key > 200 AND src_txn.key < 250
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Input: default@src_txn_2
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@distribute_mv_3
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-4 depends on stages: Stage-0, Stage-2
+ Stage-3 depends on stages: Stage-4
+ Stage-5 depends on stages: Stage-3
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 5 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
+ Reducer 4 <- Reducer 3 (CUSTOM_SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: src_txn
+ filterExpr: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 501 Data size: 90180 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 55 Data size: 9900 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: key (type: string), value (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 55 Data size: 9900 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: string)
+ Statistics: Num rows: 55 Data size: 9900 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: string)
+ Execution mode: vectorized, llap
+ LLAP IO: may be used (ACID table)
+ Map 5
+ Map Operator Tree:
+ TableScan
+ alias: src_txn_2
+ filterExpr: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 55 Data size: 4785 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: key (type: string)
+ outputColumnNames: _col0
+ Statistics: Num rows: 55 Data size: 4785 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: string)
+ Statistics: Num rows: 55 Data size: 4785 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: vectorized, llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: string)
+ 1 _col0 (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 55 Data size: 9900 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col1 (type: string), _col0 (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 55 Data size: 9900 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: string), _col1 (type: string)
+ sort order: ++
+ Map-reduce partition columns: _col1 (type: string)
+ Statistics: Num rows: 55 Data size: 9900 Basic stats: COMPLETE Column stats: COMPLETE
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY._col0 (type: string), KEY._col1 (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 55 Data size: 9900 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 55 Data size: 9900 Basic stats: COMPLETE Column stats: COMPLETE
+ 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
+ name: default.distribute_mv_3
+ Select Operator
+ expressions: _col0 (type: string), _col1 (type: string)
+ outputColumnNames: col1, col2
+ Statistics: Num rows: 55 Data size: 9900 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: compute_stats(col1, 'hll'), compute_stats(col2, 'hll')
+ minReductionHashAggr: 0.9818182
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ sort order:
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>), _col1 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>)
+ Reducer 4
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-2
+ Dependency Collection
+
+ Stage: Stage-4
+ Create View
+ distribute columns: key string
+ columns: value string, key string
+ sort columns: value string, key string
+ expanded text: SELECT `src_txn`.`value`, `src_txn`.`key` FROM `default`.`src_txn`, `default`.`src_txn_2`
+WHERE `src_txn`.`key` = `src_txn_2`.`key`
+ AND `src_txn`.`key` > 200 AND `src_txn`.`key` < 250
+ name: default.distribute_mv_3
+ original text: SELECT src_txn.value, src_txn.key FROM src_txn, src_txn_2
+WHERE src_txn.key = src_txn_2.key
+ AND src_txn.key > 200 AND src_txn.key < 250
+ rewrite enabled: true
+
+ Stage: Stage-3
+ Stats Work
+ Basic Stats Work:
+ Column Stats Desc:
+ Columns: value, key
+ Column Types: string, string
+ Table: default.distribute_mv_3
+
+ Stage: Stage-5
+ Materialized View Update
+ name: default.distribute_mv_3
+ retrieveAndInclude: true
+
+ Stage: Stage-0
+ Move Operator
+ files:
+ hdfs directory: true
+#### A masked pattern was here ####
+
+PREHOOK: query: CREATE MATERIALIZED VIEW distribute_mv_3 DISTRIBUTED ON (key) SORTED ON (value, key) STORED AS TEXTFILE AS
+SELECT src_txn.value, src_txn.key FROM src_txn, src_txn_2
+WHERE src_txn.key = src_txn_2.key
+ AND src_txn.key > 200 AND src_txn.key < 250
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@src_txn
+PREHOOK: Input: default@src_txn_2
+PREHOOK: Output: database:default
+PREHOOK: Output: default@distribute_mv_3
+POSTHOOK: query: CREATE MATERIALIZED VIEW distribute_mv_3 DISTRIBUTED ON (key) SORTED ON (value, key) STORED AS TEXTFILE AS
+SELECT src_txn.value, src_txn.key FROM src_txn, src_txn_2
+WHERE src_txn.key = src_txn_2.key
+ AND src_txn.key > 200 AND src_txn.key < 250
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Input: default@src_txn_2
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@distribute_mv_3
+PREHOOK: query: DESCRIBE FORMATTED distribute_mv_3
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@distribute_mv_3
+POSTHOOK: query: DESCRIBE FORMATTED distribute_mv_3
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@distribute_mv_3
+# col_name data_type comment
+value string
+key string
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MATERIALIZED_VIEW
+Table Parameters:
+ COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\"key\":\"true\",\"value\":\"true\"}}
+ bucketing_version 2
+ materializedview.distribute.columns [\"key\"]
+ materializedview.sort.columns [\"value\",\"key\"]
+ numFiles 1
+ numRows 117
+ rawDataSize 1291
+ totalSize 1408
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+
+# Materialized View Information
+Original Query: SELECT src_txn.value, src_txn.key FROM src_txn, src_txn_2
+ WHERE src_txn.key = src_txn_2.key
+ AND src_txn.key > 200 AND src_txn.key < 250
+Expanded Query: SELECT `src_txn`.`value`, `src_txn`.`key` FROM `default`.`src_txn`, `default`.`src_txn_2`
+ WHERE `src_txn`.`key` = `src_txn_2`.`key`
+ AND `src_txn`.`key` > 200 AND `src_txn`.`key` < 250
+Rewrite Enabled: Yes
+Outdated for Rewriting: No
+Found 1 items
+#### A masked pattern was here ####
+val_201201
+val_202202
+val_203203
+val_203203
+val_203203
+val_203203
+val_205205
+val_205205
+val_205205
+val_205205
+val_207207
+val_207207
+val_207207
+val_207207
+val_208208
+val_208208
+val_208208
+val_208208
+val_208208
+val_208208
+val_208208
+val_208208
+val_208208
+val_209209
+val_209209
+val_209209
+val_209209
+val_213213
+val_213213
+val_213213
+val_213213
+val_214214
+val_216216
+val_216216
+val_216216
+val_216216
+val_217217
+val_217217
+val_217217
+val_217217
+val_218218
+val_219219
+val_219219
+val_219219
+val_219219
+val_221221
+val_221221
+val_221221
+val_221221
+val_222222
+val_223223
+val_223223
+val_223223
+val_223223
+val_224224
+val_224224
+val_224224
+val_224224
+val_226226
+val_228228
+val_229229
+val_229229
+val_229229
+val_229229
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_233233
+val_233233
+val_233233
+val_233233
+val_235235
+val_237237
+val_237237
+val_237237
+val_237237
+val_238238
+val_238238
+val_238238
+val_238238
+val_238_n238
+val_238_n238
+val_239239
+val_239239
+val_239239
+val_239239
+val_241241
+val_242242
+val_242242
+val_242242
+val_242242
+val_244244
+val_247247
+val_248248
+val_249249
+PREHOOK: query: INSERT INTO src_txn VALUES (238, 'val_238_n2')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@src_txn
+POSTHOOK: query: INSERT INTO src_txn VALUES (238, 'val_238_n2')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@src_txn
+POSTHOOK: Lineage: src_txn.key SCRIPT []
+POSTHOOK: Lineage: src_txn.value SCRIPT []
+PREHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW distribute_mv_3 REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_txn
+PREHOOK: Input: default@src_txn_2
+PREHOOK: Output: default@distribute_mv_3
+POSTHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW distribute_mv_3 REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Input: default@src_txn_2
+POSTHOOK: Output: default@distribute_mv_3
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
+ Stage-3 depends on stages: Stage-0
+ Stage-4 depends on stages: Stage-3
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (CUSTOM_SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: src_txn
+ filterExpr: ((ROW__ID.writeid > 2L) and (UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 502 Data size: 90862 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((ROW__ID.writeid > 2L) and (UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 18 Data size: 3258 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: key (type: string), value (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 18 Data size: 3258 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: string)
+ Statistics: Num rows: 18 Data size: 3258 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: string)
+ Execution mode: vectorized, llap
+ LLAP IO: may be used (ACID table)
+ Map 4
+ Map Operator Tree:
+ TableScan
+ alias: src_txn_2
+ filterExpr: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 55 Data size: 4785 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: key (type: string)
+ outputColumnNames: _col0
+ Statistics: Num rows: 55 Data size: 4785 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: string)
+ Statistics: Num rows: 55 Data size: 4785 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: vectorized, llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: string)
+ 1 _col0 (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 18 Data size: 3258 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col1 (type: string), _col0 (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 18 Data size: 3258 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 18 Data size: 3258 Basic stats: COMPLETE Column stats: COMPLETE
+ 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
+ name: default.distribute_mv_3
+ Select Operator
+ expressions: _col0 (type: string), _col1 (type: string)
+ outputColumnNames: value, key
+ Statistics: Num rows: 18 Data size: 3258 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: compute_stats(value, 'hll'), compute_stats(key, 'hll')
+ minReductionHashAggr: 0.9444444
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ sort order:
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>), _col1 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>)
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-2
+ Dependency Collection
+
+ Stage: Stage-0
+ Move Operator
+ tables:
+ replace: false
+ 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
+ name: default.distribute_mv_3
+
+ Stage: Stage-3
+ Stats Work
+ Basic Stats Work:
+ Column Stats Desc:
+ Columns: value, key
+ Column Types: string, string
+ Table: default.distribute_mv_3
+
+ Stage: Stage-4
+ Materialized View Update
+ name: default.distribute_mv_3
+ updateCreationMetadata: true
+
+PREHOOK: query: ALTER MATERIALIZED VIEW distribute_mv_3 REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_txn
+PREHOOK: Input: default@src_txn_2
+PREHOOK: Output: default@distribute_mv_3
+POSTHOOK: query: ALTER MATERIALIZED VIEW distribute_mv_3 REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Input: default@src_txn_2
+POSTHOOK: Output: default@distribute_mv_3
+POSTHOOK: Lineage: distribute_mv_3.key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: distribute_mv_3.value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+PREHOOK: query: SELECT * FROM distribute_mv_3 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@distribute_mv_3
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM distribute_mv_3 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@distribute_mv_3
+#### A masked pattern was here ####
+val_238 238
+val_238 238
+val_238 238
+val_238 238
+val_238_n 238
+val_238_n 238
+val_238_n2 238
+val_238_n2 238
diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_partition_cluster.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_partition_cluster.q.out
new file mode 100644
index 0000000..3f8038c
--- /dev/null
+++ b/ql/src/test/results/clientpositive/llap/materialized_view_partition_cluster.q.out
@@ -0,0 +1,2605 @@
+PREHOOK: query: CREATE TABLE src_txn stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src
+PREHOOK: type: CREATETABLE_AS_SELECT
+PREHOOK: Input: default@src
+PREHOOK: Output: database:default
+PREHOOK: Output: default@src_txn
+POSTHOOK: query: CREATE TABLE src_txn stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src
+POSTHOOK: type: CREATETABLE_AS_SELECT
+POSTHOOK: Input: default@src
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@src_txn
+POSTHOOK: Lineage: src_txn.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: src_txn.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+PREHOOK: query: EXPLAIN
+CREATE MATERIALIZED VIEW cluster_mv_1 PARTITIONED ON (partkey) CLUSTERED ON (key) AS
+SELECT value, key, key + 100 as partkey FROM src_txn where key > 200 and key < 250
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@src_txn
+PREHOOK: Output: database:default
+PREHOOK: Output: default@cluster_mv_1
+PREHOOK: Output: default@cluster_mv_1
+POSTHOOK: query: EXPLAIN
+CREATE MATERIALIZED VIEW cluster_mv_1 PARTITIONED ON (partkey) CLUSTERED ON (key) AS
+SELECT value, key, key + 100 as partkey FROM src_txn where key > 200 and key < 250
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@cluster_mv_1
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-4 depends on stages: Stage-2
+ Stage-0 depends on stages: Stage-4
+ Stage-3 depends on stages: Stage-0, Stage-4
+ Stage-5 depends on stages: Stage-3
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: src_txn
+ filterExpr: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 55 Data size: 9790 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: value (type: string), key (type: string), (UDFToDouble(key) + 100.0D) (type: double)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 55 Data size: 10230 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col1 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col1 (type: string)
+ Statistics: Num rows: 55 Data size: 10230 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: string), _col2 (type: double)
+ Execution mode: vectorized, llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Select Operator
+ expressions: VALUE._col0 (type: string), KEY._col1 (type: string), VALUE._col2 (type: double)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 55 Data size: 10230 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 55 Data size: 10230 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cluster_mv_1
+ Select Operator
+ expressions: _col0 (type: string), _col1 (type: string), _col2 (type: double)
+ outputColumnNames: col1, col2, col3
+ Statistics: Num rows: 55 Data size: 10230 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: compute_stats(col1, 'hll'), compute_stats(col2, 'hll')
+ keys: col3 (type: double)
+ minReductionHashAggr: 0.5090909
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 27 Data size: 23976 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: double)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: double)
+ Statistics: Num rows: 27 Data size: 23976 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>), _col2 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>)
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1)
+ keys: KEY._col0 (type: double)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 27 Data size: 23976 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col1 (type: struct<columntype:string,maxlength:bigint,avglength:double,countnulls:bigint,numdistinctvalues:bigint,ndvbitvector:binary>), _col2 (type: struct<columntype:string,maxlength:bigint,avglength:double,countnulls:bigint,numdistinctvalues:bigint,ndvbitvector:binary>), _col0 (type: double)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 27 Data size: 23976 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 27 Data size: 23976 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-2
+ Dependency Collection
+
+ Stage: Stage-4
+ Create View
+ distribute columns: key string
+ partition columns: partkey double
+ columns: value string, key string
+ sort columns: key string
+ expanded text: SELECT `value`, `key`, `partkey` FROM (SELECT `src_txn`.`value`, `src_txn`.`key`, `src_txn`.`key` + 100 as `partkey` FROM `default`.`src_txn` where `src_txn`.`key` > 200 and `src_txn`.`key` < 250) `cluster_mv_1`
+ name: default.cluster_mv_1
+ original text: SELECT value, key, key + 100 as partkey FROM src_txn where key > 200 and key < 250
+ rewrite enabled: true
+
+ Stage: Stage-0
+ Move Operator
+ tables:
+ partition:
+ partkey
+ replace: false
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cluster_mv_1
+
+ Stage: Stage-3
+ Stats Work
+ Basic Stats Work:
+ Column Stats Desc:
+ Columns: value, key
+ Column Types: string, string
+ Table: default.cluster_mv_1
+
+ Stage: Stage-5
+ Materialized View Update
+ name: default.cluster_mv_1
+ retrieveAndInclude: true
+
+PREHOOK: query: CREATE MATERIALIZED VIEW cluster_mv_1 PARTITIONED ON (partkey) CLUSTERED ON (key) AS
+SELECT value, key, key + 100 as partkey FROM src_txn where key > 200 and key < 250
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@src_txn
+PREHOOK: Output: database:default
+PREHOOK: Output: default@cluster_mv_1
+PREHOOK: Output: default@cluster_mv_1
+POSTHOOK: query: CREATE MATERIALIZED VIEW cluster_mv_1 PARTITIONED ON (partkey) CLUSTERED ON (key) AS
+SELECT value, key, key + 100 as partkey FROM src_txn where key > 200 and key < 250
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@cluster_mv_1
+POSTHOOK: Output: default@cluster_mv_1@partkey=301.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=302.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=303.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=305.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=307.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=308.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=309.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=313.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=314.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=316.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=317.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=318.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=319.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=321.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=322.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=323.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=324.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=326.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=328.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=329.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=330.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=333.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=335.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=337.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=338.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=339.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=341.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=342.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=344.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=347.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=348.0
+POSTHOOK: Output: default@cluster_mv_1@partkey=349.0
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=301.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=301.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=302.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=302.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=303.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=303.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=305.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=305.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=307.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=307.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=308.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=308.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=309.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=309.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=313.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=313.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=314.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=314.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=316.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=316.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=317.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=317.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=318.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=318.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=319.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=319.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=321.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=321.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=322.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=322.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=323.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=323.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=324.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=324.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=326.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=326.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=328.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=328.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=329.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=329.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=330.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=330.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=333.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=333.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=335.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=335.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=337.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=337.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=338.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=338.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=339.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=339.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=341.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=341.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=342.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=342.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=344.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=344.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=347.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=347.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=348.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=348.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=349.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=349.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+PREHOOK: query: DESCRIBE FORMATTED cluster_mv_1
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@cluster_mv_1
+POSTHOOK: query: DESCRIBE FORMATTED cluster_mv_1
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@cluster_mv_1
+# col_name data_type comment
+value string
+key string
+
+# Partition Information
+# col_name data_type comment
+partkey double
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MATERIALIZED_VIEW
+Table Parameters:
+ COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\"}
+ bucketing_version 2
+ materializedview.distribute.columns [\"key\"]
+ materializedview.sort.columns [\"key\"]
+ numFiles 32
+ numPartitions 32
+ numRows 55
+ rawDataSize 9790
+ totalSize 10806
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+InputFormat: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+
+# Materialized View Information
+Original Query: SELECT value, key, key + 100 as partkey FROM src_txn where key > 200 and key < 250
+Expanded Query: SELECT `value`, `key`, `partkey` FROM (SELECT `src_txn`.`value`, `src_txn`.`key`, `src_txn`.`key` + 100 as `partkey` FROM `default`.`src_txn` where `src_txn`.`key` > 200 and `src_txn`.`key` < 250) `cluster_mv_1`
+Rewrite Enabled: Yes
+Outdated for Rewriting: No
+Found 32 items
+#### A masked pattern was here ####
+PREHOOK: query: EXPLAIN
+SELECT * FROM cluster_mv_1 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cluster_mv_1
+PREHOOK: Input: default@cluster_mv_1@partkey=301.0
+PREHOOK: Input: default@cluster_mv_1@partkey=302.0
+PREHOOK: Input: default@cluster_mv_1@partkey=303.0
+PREHOOK: Input: default@cluster_mv_1@partkey=305.0
+PREHOOK: Input: default@cluster_mv_1@partkey=307.0
+PREHOOK: Input: default@cluster_mv_1@partkey=308.0
+PREHOOK: Input: default@cluster_mv_1@partkey=309.0
+PREHOOK: Input: default@cluster_mv_1@partkey=313.0
+PREHOOK: Input: default@cluster_mv_1@partkey=314.0
+PREHOOK: Input: default@cluster_mv_1@partkey=316.0
+PREHOOK: Input: default@cluster_mv_1@partkey=317.0
+PREHOOK: Input: default@cluster_mv_1@partkey=318.0
+PREHOOK: Input: default@cluster_mv_1@partkey=319.0
+PREHOOK: Input: default@cluster_mv_1@partkey=321.0
+PREHOOK: Input: default@cluster_mv_1@partkey=322.0
+PREHOOK: Input: default@cluster_mv_1@partkey=323.0
+PREHOOK: Input: default@cluster_mv_1@partkey=324.0
+PREHOOK: Input: default@cluster_mv_1@partkey=326.0
+PREHOOK: Input: default@cluster_mv_1@partkey=328.0
+PREHOOK: Input: default@cluster_mv_1@partkey=329.0
+PREHOOK: Input: default@cluster_mv_1@partkey=330.0
+PREHOOK: Input: default@cluster_mv_1@partkey=333.0
+PREHOOK: Input: default@cluster_mv_1@partkey=335.0
+PREHOOK: Input: default@cluster_mv_1@partkey=337.0
+PREHOOK: Input: default@cluster_mv_1@partkey=338.0
+PREHOOK: Input: default@cluster_mv_1@partkey=339.0
+PREHOOK: Input: default@cluster_mv_1@partkey=341.0
+PREHOOK: Input: default@cluster_mv_1@partkey=342.0
+PREHOOK: Input: default@cluster_mv_1@partkey=344.0
+PREHOOK: Input: default@cluster_mv_1@partkey=347.0
+PREHOOK: Input: default@cluster_mv_1@partkey=348.0
+PREHOOK: Input: default@cluster_mv_1@partkey=349.0
+#### A masked pattern was here ####
+POSTHOOK: query: EXPLAIN
+SELECT * FROM cluster_mv_1 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cluster_mv_1
+POSTHOOK: Input: default@cluster_mv_1@partkey=301.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=302.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=303.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=305.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=307.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=308.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=309.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=313.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=314.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=316.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=317.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=318.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=319.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=321.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=322.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=323.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=324.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=326.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=328.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=329.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=330.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=333.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=335.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=337.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=338.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=339.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=341.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=342.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=344.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=347.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=348.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=349.0
+#### A masked pattern was here ####
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: cluster_mv_1
+ filterExpr: (UDFToDouble(key) = 238.0D) (type: boolean)
+ Filter Operator
+ predicate: (UDFToDouble(key) = 238.0D) (type: boolean)
+ Select Operator
+ expressions: value (type: string), key (type: string), partkey (type: double)
+ outputColumnNames: _col0, _col1, _col2
+ ListSink
+
+PREHOOK: query: SELECT * FROM cluster_mv_1 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cluster_mv_1
+PREHOOK: Input: default@cluster_mv_1@partkey=301.0
+PREHOOK: Input: default@cluster_mv_1@partkey=302.0
+PREHOOK: Input: default@cluster_mv_1@partkey=303.0
+PREHOOK: Input: default@cluster_mv_1@partkey=305.0
+PREHOOK: Input: default@cluster_mv_1@partkey=307.0
+PREHOOK: Input: default@cluster_mv_1@partkey=308.0
+PREHOOK: Input: default@cluster_mv_1@partkey=309.0
+PREHOOK: Input: default@cluster_mv_1@partkey=313.0
+PREHOOK: Input: default@cluster_mv_1@partkey=314.0
+PREHOOK: Input: default@cluster_mv_1@partkey=316.0
+PREHOOK: Input: default@cluster_mv_1@partkey=317.0
+PREHOOK: Input: default@cluster_mv_1@partkey=318.0
+PREHOOK: Input: default@cluster_mv_1@partkey=319.0
+PREHOOK: Input: default@cluster_mv_1@partkey=321.0
+PREHOOK: Input: default@cluster_mv_1@partkey=322.0
+PREHOOK: Input: default@cluster_mv_1@partkey=323.0
+PREHOOK: Input: default@cluster_mv_1@partkey=324.0
+PREHOOK: Input: default@cluster_mv_1@partkey=326.0
+PREHOOK: Input: default@cluster_mv_1@partkey=328.0
+PREHOOK: Input: default@cluster_mv_1@partkey=329.0
+PREHOOK: Input: default@cluster_mv_1@partkey=330.0
+PREHOOK: Input: default@cluster_mv_1@partkey=333.0
+PREHOOK: Input: default@cluster_mv_1@partkey=335.0
+PREHOOK: Input: default@cluster_mv_1@partkey=337.0
+PREHOOK: Input: default@cluster_mv_1@partkey=338.0
+PREHOOK: Input: default@cluster_mv_1@partkey=339.0
+PREHOOK: Input: default@cluster_mv_1@partkey=341.0
+PREHOOK: Input: default@cluster_mv_1@partkey=342.0
+PREHOOK: Input: default@cluster_mv_1@partkey=344.0
+PREHOOK: Input: default@cluster_mv_1@partkey=347.0
+PREHOOK: Input: default@cluster_mv_1@partkey=348.0
+PREHOOK: Input: default@cluster_mv_1@partkey=349.0
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM cluster_mv_1 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cluster_mv_1
+POSTHOOK: Input: default@cluster_mv_1@partkey=301.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=302.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=303.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=305.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=307.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=308.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=309.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=313.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=314.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=316.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=317.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=318.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=319.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=321.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=322.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=323.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=324.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=326.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=328.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=329.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=330.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=333.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=335.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=337.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=338.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=339.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=341.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=342.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=344.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=347.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=348.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=349.0
+#### A masked pattern was here ####
+val_238 238 338.0
+val_238 238 338.0
+PREHOOK: query: CREATE MATERIALIZED VIEW cluster_mv_2 PARTITIONED ON (partkey) CLUSTERED ON (value) AS
+SELECT key, value, key + 100 as partkey FROM src_txn where key > 200 and key < 250
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@src_txn
+PREHOOK: Output: database:default
+PREHOOK: Output: default@cluster_mv_2
+PREHOOK: Output: default@cluster_mv_2
+POSTHOOK: query: CREATE MATERIALIZED VIEW cluster_mv_2 PARTITIONED ON (partkey) CLUSTERED ON (value) AS
+SELECT key, value, key + 100 as partkey FROM src_txn where key > 200 and key < 250
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@cluster_mv_2
+POSTHOOK: Output: default@cluster_mv_2@partkey=301.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=302.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=303.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=305.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=307.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=308.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=309.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=313.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=314.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=316.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=317.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=318.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=319.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=321.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=322.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=323.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=324.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=326.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=328.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=329.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=330.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=333.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=335.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=337.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=338.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=339.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=341.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=342.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=344.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=347.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=348.0
+POSTHOOK: Output: default@cluster_mv_2@partkey=349.0
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=301.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=301.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=302.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=302.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=303.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=303.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=305.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=305.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=307.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=307.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=308.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=308.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=309.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=309.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=313.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=313.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=314.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=314.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=316.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=316.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=317.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=317.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=318.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=318.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=319.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=319.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=321.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=321.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=322.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=322.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=323.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=323.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=324.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=324.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=326.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=326.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=328.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=328.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=329.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=329.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=330.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=330.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=333.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=333.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=335.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=335.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=337.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=337.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=338.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=338.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=339.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=339.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=341.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=341.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=342.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=342.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=344.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=344.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=347.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=347.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=348.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=348.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=349.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_2 PARTITION(partkey=349.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+Found 32 items
+#### A masked pattern was here ####
+PREHOOK: query: EXPLAIN
+SELECT * FROM cluster_mv_2 where value = 'val_238'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cluster_mv_2
+PREHOOK: Input: default@cluster_mv_2@partkey=301.0
+PREHOOK: Input: default@cluster_mv_2@partkey=302.0
+PREHOOK: Input: default@cluster_mv_2@partkey=303.0
+PREHOOK: Input: default@cluster_mv_2@partkey=305.0
+PREHOOK: Input: default@cluster_mv_2@partkey=307.0
+PREHOOK: Input: default@cluster_mv_2@partkey=308.0
+PREHOOK: Input: default@cluster_mv_2@partkey=309.0
+PREHOOK: Input: default@cluster_mv_2@partkey=313.0
+PREHOOK: Input: default@cluster_mv_2@partkey=314.0
+PREHOOK: Input: default@cluster_mv_2@partkey=316.0
+PREHOOK: Input: default@cluster_mv_2@partkey=317.0
+PREHOOK: Input: default@cluster_mv_2@partkey=318.0
+PREHOOK: Input: default@cluster_mv_2@partkey=319.0
+PREHOOK: Input: default@cluster_mv_2@partkey=321.0
+PREHOOK: Input: default@cluster_mv_2@partkey=322.0
+PREHOOK: Input: default@cluster_mv_2@partkey=323.0
+PREHOOK: Input: default@cluster_mv_2@partkey=324.0
+PREHOOK: Input: default@cluster_mv_2@partkey=326.0
+PREHOOK: Input: default@cluster_mv_2@partkey=328.0
+PREHOOK: Input: default@cluster_mv_2@partkey=329.0
+PREHOOK: Input: default@cluster_mv_2@partkey=330.0
+PREHOOK: Input: default@cluster_mv_2@partkey=333.0
+PREHOOK: Input: default@cluster_mv_2@partkey=335.0
+PREHOOK: Input: default@cluster_mv_2@partkey=337.0
+PREHOOK: Input: default@cluster_mv_2@partkey=338.0
+PREHOOK: Input: default@cluster_mv_2@partkey=339.0
+PREHOOK: Input: default@cluster_mv_2@partkey=341.0
+PREHOOK: Input: default@cluster_mv_2@partkey=342.0
+PREHOOK: Input: default@cluster_mv_2@partkey=344.0
+PREHOOK: Input: default@cluster_mv_2@partkey=347.0
+PREHOOK: Input: default@cluster_mv_2@partkey=348.0
+PREHOOK: Input: default@cluster_mv_2@partkey=349.0
+#### A masked pattern was here ####
+POSTHOOK: query: EXPLAIN
+SELECT * FROM cluster_mv_2 where value = 'val_238'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cluster_mv_2
+POSTHOOK: Input: default@cluster_mv_2@partkey=301.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=302.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=303.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=305.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=307.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=308.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=309.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=313.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=314.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=316.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=317.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=318.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=319.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=321.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=322.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=323.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=324.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=326.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=328.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=329.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=330.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=333.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=335.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=337.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=338.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=339.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=341.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=342.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=344.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=347.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=348.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=349.0
+#### A masked pattern was here ####
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: cluster_mv_2
+ filterExpr: (value = 'val_238') (type: boolean)
+ Filter Operator
+ predicate: (value = 'val_238') (type: boolean)
+ Select Operator
+ expressions: key (type: string), 'val_238' (type: string), partkey (type: double)
+ outputColumnNames: _col0, _col1, _col2
+ ListSink
+
+PREHOOK: query: SELECT * FROM cluster_mv_2 where value = 'val_238'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cluster_mv_2
+PREHOOK: Input: default@cluster_mv_2@partkey=301.0
+PREHOOK: Input: default@cluster_mv_2@partkey=302.0
+PREHOOK: Input: default@cluster_mv_2@partkey=303.0
+PREHOOK: Input: default@cluster_mv_2@partkey=305.0
+PREHOOK: Input: default@cluster_mv_2@partkey=307.0
+PREHOOK: Input: default@cluster_mv_2@partkey=308.0
+PREHOOK: Input: default@cluster_mv_2@partkey=309.0
+PREHOOK: Input: default@cluster_mv_2@partkey=313.0
+PREHOOK: Input: default@cluster_mv_2@partkey=314.0
+PREHOOK: Input: default@cluster_mv_2@partkey=316.0
+PREHOOK: Input: default@cluster_mv_2@partkey=317.0
+PREHOOK: Input: default@cluster_mv_2@partkey=318.0
+PREHOOK: Input: default@cluster_mv_2@partkey=319.0
+PREHOOK: Input: default@cluster_mv_2@partkey=321.0
+PREHOOK: Input: default@cluster_mv_2@partkey=322.0
+PREHOOK: Input: default@cluster_mv_2@partkey=323.0
+PREHOOK: Input: default@cluster_mv_2@partkey=324.0
+PREHOOK: Input: default@cluster_mv_2@partkey=326.0
+PREHOOK: Input: default@cluster_mv_2@partkey=328.0
+PREHOOK: Input: default@cluster_mv_2@partkey=329.0
+PREHOOK: Input: default@cluster_mv_2@partkey=330.0
+PREHOOK: Input: default@cluster_mv_2@partkey=333.0
+PREHOOK: Input: default@cluster_mv_2@partkey=335.0
+PREHOOK: Input: default@cluster_mv_2@partkey=337.0
+PREHOOK: Input: default@cluster_mv_2@partkey=338.0
+PREHOOK: Input: default@cluster_mv_2@partkey=339.0
+PREHOOK: Input: default@cluster_mv_2@partkey=341.0
+PREHOOK: Input: default@cluster_mv_2@partkey=342.0
+PREHOOK: Input: default@cluster_mv_2@partkey=344.0
+PREHOOK: Input: default@cluster_mv_2@partkey=347.0
+PREHOOK: Input: default@cluster_mv_2@partkey=348.0
+PREHOOK: Input: default@cluster_mv_2@partkey=349.0
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM cluster_mv_2 where value = 'val_238'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cluster_mv_2
+POSTHOOK: Input: default@cluster_mv_2@partkey=301.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=302.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=303.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=305.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=307.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=308.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=309.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=313.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=314.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=316.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=317.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=318.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=319.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=321.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=322.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=323.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=324.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=326.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=328.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=329.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=330.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=333.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=335.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=337.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=338.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=339.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=341.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=342.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=344.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=347.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=348.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=349.0
+#### A masked pattern was here ####
+238 val_238 338.0
+238 val_238 338.0
+PREHOOK: query: EXPLAIN
+SELECT value FROM cluster_mv_2 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cluster_mv_2
+PREHOOK: Input: default@cluster_mv_2@partkey=301.0
+PREHOOK: Input: default@cluster_mv_2@partkey=302.0
+PREHOOK: Input: default@cluster_mv_2@partkey=303.0
+PREHOOK: Input: default@cluster_mv_2@partkey=305.0
+PREHOOK: Input: default@cluster_mv_2@partkey=307.0
+PREHOOK: Input: default@cluster_mv_2@partkey=308.0
+PREHOOK: Input: default@cluster_mv_2@partkey=309.0
+PREHOOK: Input: default@cluster_mv_2@partkey=313.0
+PREHOOK: Input: default@cluster_mv_2@partkey=314.0
+PREHOOK: Input: default@cluster_mv_2@partkey=316.0
+PREHOOK: Input: default@cluster_mv_2@partkey=317.0
+PREHOOK: Input: default@cluster_mv_2@partkey=318.0
+PREHOOK: Input: default@cluster_mv_2@partkey=319.0
+PREHOOK: Input: default@cluster_mv_2@partkey=321.0
+PREHOOK: Input: default@cluster_mv_2@partkey=322.0
+PREHOOK: Input: default@cluster_mv_2@partkey=323.0
+PREHOOK: Input: default@cluster_mv_2@partkey=324.0
+PREHOOK: Input: default@cluster_mv_2@partkey=326.0
+PREHOOK: Input: default@cluster_mv_2@partkey=328.0
+PREHOOK: Input: default@cluster_mv_2@partkey=329.0
+PREHOOK: Input: default@cluster_mv_2@partkey=330.0
+PREHOOK: Input: default@cluster_mv_2@partkey=333.0
+PREHOOK: Input: default@cluster_mv_2@partkey=335.0
+PREHOOK: Input: default@cluster_mv_2@partkey=337.0
+PREHOOK: Input: default@cluster_mv_2@partkey=338.0
+PREHOOK: Input: default@cluster_mv_2@partkey=339.0
+PREHOOK: Input: default@cluster_mv_2@partkey=341.0
+PREHOOK: Input: default@cluster_mv_2@partkey=342.0
+PREHOOK: Input: default@cluster_mv_2@partkey=344.0
+PREHOOK: Input: default@cluster_mv_2@partkey=347.0
+PREHOOK: Input: default@cluster_mv_2@partkey=348.0
+PREHOOK: Input: default@cluster_mv_2@partkey=349.0
+#### A masked pattern was here ####
+POSTHOOK: query: EXPLAIN
+SELECT value FROM cluster_mv_2 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cluster_mv_2
+POSTHOOK: Input: default@cluster_mv_2@partkey=301.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=302.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=303.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=305.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=307.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=308.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=309.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=313.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=314.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=316.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=317.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=318.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=319.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=321.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=322.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=323.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=324.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=326.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=328.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=329.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=330.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=333.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=335.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=337.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=338.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=339.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=341.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=342.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=344.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=347.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=348.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=349.0
+#### A masked pattern was here ####
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: cluster_mv_2
+ filterExpr: (UDFToDouble(key) = 238.0D) (type: boolean)
+ Filter Operator
+ predicate: (UDFToDouble(key) = 238.0D) (type: boolean)
+ Select Operator
+ expressions: value (type: string)
+ outputColumnNames: _col0
+ ListSink
+
+PREHOOK: query: SELECT value FROM cluster_mv_2 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cluster_mv_2
+PREHOOK: Input: default@cluster_mv_2@partkey=301.0
+PREHOOK: Input: default@cluster_mv_2@partkey=302.0
+PREHOOK: Input: default@cluster_mv_2@partkey=303.0
+PREHOOK: Input: default@cluster_mv_2@partkey=305.0
+PREHOOK: Input: default@cluster_mv_2@partkey=307.0
+PREHOOK: Input: default@cluster_mv_2@partkey=308.0
+PREHOOK: Input: default@cluster_mv_2@partkey=309.0
+PREHOOK: Input: default@cluster_mv_2@partkey=313.0
+PREHOOK: Input: default@cluster_mv_2@partkey=314.0
+PREHOOK: Input: default@cluster_mv_2@partkey=316.0
+PREHOOK: Input: default@cluster_mv_2@partkey=317.0
+PREHOOK: Input: default@cluster_mv_2@partkey=318.0
+PREHOOK: Input: default@cluster_mv_2@partkey=319.0
+PREHOOK: Input: default@cluster_mv_2@partkey=321.0
+PREHOOK: Input: default@cluster_mv_2@partkey=322.0
+PREHOOK: Input: default@cluster_mv_2@partkey=323.0
+PREHOOK: Input: default@cluster_mv_2@partkey=324.0
+PREHOOK: Input: default@cluster_mv_2@partkey=326.0
+PREHOOK: Input: default@cluster_mv_2@partkey=328.0
+PREHOOK: Input: default@cluster_mv_2@partkey=329.0
+PREHOOK: Input: default@cluster_mv_2@partkey=330.0
+PREHOOK: Input: default@cluster_mv_2@partkey=333.0
+PREHOOK: Input: default@cluster_mv_2@partkey=335.0
+PREHOOK: Input: default@cluster_mv_2@partkey=337.0
+PREHOOK: Input: default@cluster_mv_2@partkey=338.0
+PREHOOK: Input: default@cluster_mv_2@partkey=339.0
+PREHOOK: Input: default@cluster_mv_2@partkey=341.0
+PREHOOK: Input: default@cluster_mv_2@partkey=342.0
+PREHOOK: Input: default@cluster_mv_2@partkey=344.0
+PREHOOK: Input: default@cluster_mv_2@partkey=347.0
+PREHOOK: Input: default@cluster_mv_2@partkey=348.0
+PREHOOK: Input: default@cluster_mv_2@partkey=349.0
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT value FROM cluster_mv_2 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cluster_mv_2
+POSTHOOK: Input: default@cluster_mv_2@partkey=301.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=302.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=303.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=305.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=307.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=308.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=309.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=313.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=314.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=316.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=317.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=318.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=319.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=321.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=322.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=323.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=324.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=326.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=328.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=329.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=330.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=333.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=335.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=337.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=338.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=339.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=341.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=342.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=344.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=347.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=348.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=349.0
+#### A masked pattern was here ####
+val_238
+val_238
+PREHOOK: query: INSERT INTO src_txn VALUES (238, 'val_238_n')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@src_txn
+POSTHOOK: query: INSERT INTO src_txn VALUES (238, 'val_238_n')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@src_txn
+POSTHOOK: Lineage: src_txn.key SCRIPT []
+POSTHOOK: Lineage: src_txn.value SCRIPT []
+PREHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cluster_mv_1 REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_txn
+PREHOOK: Output: default@cluster_mv_1
+POSTHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cluster_mv_1 REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_txn
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
+ Stage-3 depends on stages: Stage-0
+ Stage-4 depends on stages: Stage-3
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: src_txn
+ filterExpr: ((ROW__ID.writeid > 1L) and (UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 501 Data size: 90180 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((ROW__ID.writeid > 1L) and (UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 18 Data size: 3240 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: value (type: string), key (type: string), (UDFToDouble(key) + 100.0D) (type: double)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 18 Data size: 3384 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 18 Data size: 3384 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cluster_mv_1
+ Select Operator
+ expressions: _col0 (type: string), _col1 (type: string), _col2 (type: double)
+ outputColumnNames: value, key, partkey
+ Statistics: Num rows: 18 Data size: 3384 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: compute_stats(value, 'hll'), compute_stats(key, 'hll')
+ keys: partkey (type: double)
+ minReductionHashAggr: 0.5
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 9 Data size: 7992 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: double)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: double)
+ Statistics: Num rows: 9 Data size: 7992 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>), _col2 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>)
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1)
+ keys: KEY._col0 (type: double)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 9 Data size: 7992 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col1 (type: struct<columntype:string,maxlength:bigint,avglength:double,countnulls:bigint,numdistinctvalues:bigint,ndvbitvector:binary>), _col2 (type: struct<columntype:string,maxlength:bigint,avglength:double,countnulls:bigint,numdistinctvalues:bigint,ndvbitvector:binary>), _col0 (type: double)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 9 Data size: 7992 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 9 Data size: 7992 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-2
+ Dependency Collection
+
+ Stage: Stage-0
+ Move Operator
+ tables:
+ partition:
+ partkey
+ replace: false
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cluster_mv_1
+
+ Stage: Stage-3
+ Stats Work
+ Basic Stats Work:
+ Column Stats Desc:
+ Columns: value, key
+ Column Types: string, string
+ Table: default.cluster_mv_1
+
+ Stage: Stage-4
+ Materialized View Update
+ name: default.cluster_mv_1
+ updateCreationMetadata: true
+
+PREHOOK: query: ALTER MATERIALIZED VIEW cluster_mv_1 REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_txn
+PREHOOK: Output: default@cluster_mv_1
+POSTHOOK: query: ALTER MATERIALIZED VIEW cluster_mv_1 REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Output: default@cluster_mv_1@partkey=338.0
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=338.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_1 PARTITION(partkey=338.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+PREHOOK: query: SELECT * FROM cluster_mv_1 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cluster_mv_1
+PREHOOK: Input: default@cluster_mv_1@partkey=301.0
+PREHOOK: Input: default@cluster_mv_1@partkey=302.0
+PREHOOK: Input: default@cluster_mv_1@partkey=303.0
+PREHOOK: Input: default@cluster_mv_1@partkey=305.0
+PREHOOK: Input: default@cluster_mv_1@partkey=307.0
+PREHOOK: Input: default@cluster_mv_1@partkey=308.0
+PREHOOK: Input: default@cluster_mv_1@partkey=309.0
+PREHOOK: Input: default@cluster_mv_1@partkey=313.0
+PREHOOK: Input: default@cluster_mv_1@partkey=314.0
+PREHOOK: Input: default@cluster_mv_1@partkey=316.0
+PREHOOK: Input: default@cluster_mv_1@partkey=317.0
+PREHOOK: Input: default@cluster_mv_1@partkey=318.0
+PREHOOK: Input: default@cluster_mv_1@partkey=319.0
+PREHOOK: Input: default@cluster_mv_1@partkey=321.0
+PREHOOK: Input: default@cluster_mv_1@partkey=322.0
+PREHOOK: Input: default@cluster_mv_1@partkey=323.0
+PREHOOK: Input: default@cluster_mv_1@partkey=324.0
+PREHOOK: Input: default@cluster_mv_1@partkey=326.0
+PREHOOK: Input: default@cluster_mv_1@partkey=328.0
+PREHOOK: Input: default@cluster_mv_1@partkey=329.0
+PREHOOK: Input: default@cluster_mv_1@partkey=330.0
+PREHOOK: Input: default@cluster_mv_1@partkey=333.0
+PREHOOK: Input: default@cluster_mv_1@partkey=335.0
+PREHOOK: Input: default@cluster_mv_1@partkey=337.0
+PREHOOK: Input: default@cluster_mv_1@partkey=338.0
+PREHOOK: Input: default@cluster_mv_1@partkey=339.0
+PREHOOK: Input: default@cluster_mv_1@partkey=341.0
+PREHOOK: Input: default@cluster_mv_1@partkey=342.0
+PREHOOK: Input: default@cluster_mv_1@partkey=344.0
+PREHOOK: Input: default@cluster_mv_1@partkey=347.0
+PREHOOK: Input: default@cluster_mv_1@partkey=348.0
+PREHOOK: Input: default@cluster_mv_1@partkey=349.0
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM cluster_mv_1 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cluster_mv_1
+POSTHOOK: Input: default@cluster_mv_1@partkey=301.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=302.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=303.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=305.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=307.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=308.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=309.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=313.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=314.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=316.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=317.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=318.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=319.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=321.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=322.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=323.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=324.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=326.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=328.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=329.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=330.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=333.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=335.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=337.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=338.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=339.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=341.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=342.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=344.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=347.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=348.0
+POSTHOOK: Input: default@cluster_mv_1@partkey=349.0
+#### A masked pattern was here ####
+val_238 238 338.0
+val_238 238 338.0
+val_238_n 238 338.0
+PREHOOK: query: SELECT * FROM cluster_mv_2 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cluster_mv_2
+PREHOOK: Input: default@cluster_mv_2@partkey=301.0
+PREHOOK: Input: default@cluster_mv_2@partkey=302.0
+PREHOOK: Input: default@cluster_mv_2@partkey=303.0
+PREHOOK: Input: default@cluster_mv_2@partkey=305.0
+PREHOOK: Input: default@cluster_mv_2@partkey=307.0
+PREHOOK: Input: default@cluster_mv_2@partkey=308.0
+PREHOOK: Input: default@cluster_mv_2@partkey=309.0
+PREHOOK: Input: default@cluster_mv_2@partkey=313.0
+PREHOOK: Input: default@cluster_mv_2@partkey=314.0
+PREHOOK: Input: default@cluster_mv_2@partkey=316.0
+PREHOOK: Input: default@cluster_mv_2@partkey=317.0
+PREHOOK: Input: default@cluster_mv_2@partkey=318.0
+PREHOOK: Input: default@cluster_mv_2@partkey=319.0
+PREHOOK: Input: default@cluster_mv_2@partkey=321.0
+PREHOOK: Input: default@cluster_mv_2@partkey=322.0
+PREHOOK: Input: default@cluster_mv_2@partkey=323.0
+PREHOOK: Input: default@cluster_mv_2@partkey=324.0
+PREHOOK: Input: default@cluster_mv_2@partkey=326.0
+PREHOOK: Input: default@cluster_mv_2@partkey=328.0
+PREHOOK: Input: default@cluster_mv_2@partkey=329.0
+PREHOOK: Input: default@cluster_mv_2@partkey=330.0
+PREHOOK: Input: default@cluster_mv_2@partkey=333.0
+PREHOOK: Input: default@cluster_mv_2@partkey=335.0
+PREHOOK: Input: default@cluster_mv_2@partkey=337.0
+PREHOOK: Input: default@cluster_mv_2@partkey=338.0
+PREHOOK: Input: default@cluster_mv_2@partkey=339.0
+PREHOOK: Input: default@cluster_mv_2@partkey=341.0
+PREHOOK: Input: default@cluster_mv_2@partkey=342.0
+PREHOOK: Input: default@cluster_mv_2@partkey=344.0
+PREHOOK: Input: default@cluster_mv_2@partkey=347.0
+PREHOOK: Input: default@cluster_mv_2@partkey=348.0
+PREHOOK: Input: default@cluster_mv_2@partkey=349.0
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM cluster_mv_2 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cluster_mv_2
+POSTHOOK: Input: default@cluster_mv_2@partkey=301.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=302.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=303.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=305.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=307.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=308.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=309.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=313.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=314.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=316.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=317.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=318.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=319.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=321.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=322.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=323.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=324.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=326.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=328.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=329.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=330.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=333.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=335.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=337.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=338.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=339.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=341.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=342.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=344.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=347.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=348.0
+POSTHOOK: Input: default@cluster_mv_2@partkey=349.0
+#### A masked pattern was here ####
+238 val_238 338.0
+238 val_238 338.0
+PREHOOK: query: CREATE TABLE src_txn_2 stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src
+PREHOOK: type: CREATETABLE_AS_SELECT
+PREHOOK: Input: default@src
+PREHOOK: Output: database:default
+PREHOOK: Output: default@src_txn_2
+POSTHOOK: query: CREATE TABLE src_txn_2 stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src
+POSTHOOK: type: CREATETABLE_AS_SELECT
+POSTHOOK: Input: default@src
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@src_txn_2
+POSTHOOK: Lineage: src_txn_2.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: src_txn_2.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+PREHOOK: query: CREATE MATERIALIZED VIEW cluster_mv_3 PARTITIONED ON (partkey) CLUSTERED ON (key) AS
+SELECT src_txn.key + 100 as partkey, src_txn.value, src_txn.key FROM src_txn, src_txn_2
+WHERE src_txn.key = src_txn_2.key
+ AND src_txn.key > 200 AND src_txn.key < 250
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@src_txn
+PREHOOK: Input: default@src_txn_2
+PREHOOK: Output: database:default
+PREHOOK: Output: default@cluster_mv_3
+PREHOOK: Output: default@cluster_mv_3
+POSTHOOK: query: CREATE MATERIALIZED VIEW cluster_mv_3 PARTITIONED ON (partkey) CLUSTERED ON (key) AS
+SELECT src_txn.key + 100 as partkey, src_txn.value, src_txn.key FROM src_txn, src_txn_2
+WHERE src_txn.key = src_txn_2.key
+ AND src_txn.key > 200 AND src_txn.key < 250
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Input: default@src_txn_2
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@cluster_mv_3
+POSTHOOK: Output: default@cluster_mv_3@partkey=301.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=302.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=303.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=305.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=307.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=308.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=309.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=313.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=314.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=316.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=317.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=318.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=319.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=321.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=322.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=323.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=324.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=326.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=328.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=329.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=330.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=333.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=335.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=337.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=338.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=339.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=341.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=342.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=344.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=347.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=348.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=349.0
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=301.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=301.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=302.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=302.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=303.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=303.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=305.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=305.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=307.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=307.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=308.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=308.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=309.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=309.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=313.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=313.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=314.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=314.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=316.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=316.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=317.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=317.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=318.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=318.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=319.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=319.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=321.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=321.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=322.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=322.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=323.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=323.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=324.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=324.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=326.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=326.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=328.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=328.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=329.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=329.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=330.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=330.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=333.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=333.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=335.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=335.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=337.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=337.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=338.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=338.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=339.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=339.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=341.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=341.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=342.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=342.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=344.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=344.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=347.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=347.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=348.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=348.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=349.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=349.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+Found 32 items
+#### A masked pattern was here ####
+PREHOOK: query: INSERT INTO src_txn VALUES (238, 'val_238_n2')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@src_txn
+POSTHOOK: query: INSERT INTO src_txn VALUES (238, 'val_238_n2')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@src_txn
+POSTHOOK: Lineage: src_txn.key SCRIPT []
+POSTHOOK: Lineage: src_txn.value SCRIPT []
+PREHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cluster_mv_3 REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_txn
+PREHOOK: Input: default@src_txn_2
+PREHOOK: Output: default@cluster_mv_3
+POSTHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cluster_mv_3 REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Input: default@src_txn_2
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
+ Stage-3 depends on stages: Stage-0
+ Stage-4 depends on stages: Stage-3
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: src_txn
+ filterExpr: ((ROW__ID.writeid > 2L) and (UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 502 Data size: 90862 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((ROW__ID.writeid > 2L) and (UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 18 Data size: 3258 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: key (type: string), value (type: string), (UDFToDouble(key) + 100.0D) (type: double)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 18 Data size: 3402 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: string)
+ Statistics: Num rows: 18 Data size: 3402 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: string), _col2 (type: double)
+ Execution mode: vectorized, llap
+ LLAP IO: may be used (ACID table)
+ Map 4
+ Map Operator Tree:
+ TableScan
+ alias: src_txn_2
+ filterExpr: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 55 Data size: 4785 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: key (type: string)
+ outputColumnNames: _col0
+ Statistics: Num rows: 55 Data size: 4785 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: string)
+ Statistics: Num rows: 55 Data size: 4785 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: vectorized, llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: string)
+ 1 _col0 (type: string)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 18 Data size: 3402 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col1 (type: string), _col0 (type: string), _col2 (type: double)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 18 Data size: 3402 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 18 Data size: 3402 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cluster_mv_3
+ Select Operator
+ expressions: _col0 (type: string), _col1 (type: string), _col2 (type: double)
+ outputColumnNames: value, key, partkey
+ Statistics: Num rows: 18 Data size: 3402 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: compute_stats(value, 'hll'), compute_stats(key, 'hll')
+ keys: partkey (type: double)
+ minReductionHashAggr: 0.5
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 9 Data size: 7992 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: double)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: double)
+ Statistics: Num rows: 9 Data size: 7992 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>), _col2 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>)
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1)
+ keys: KEY._col0 (type: double)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 9 Data size: 7992 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col1 (type: struct<columntype:string,maxlength:bigint,avglength:double,countnulls:bigint,numdistinctvalues:bigint,ndvbitvector:binary>), _col2 (type: struct<columntype:string,maxlength:bigint,avglength:double,countnulls:bigint,numdistinctvalues:bigint,ndvbitvector:binary>), _col0 (type: double)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 9 Data size: 7992 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 9 Data size: 7992 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-2
+ Dependency Collection
+
+ Stage: Stage-0
+ Move Operator
+ tables:
+ partition:
+ partkey
+ replace: false
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cluster_mv_3
+
+ Stage: Stage-3
+ Stats Work
+ Basic Stats Work:
+ Column Stats Desc:
+ Columns: value, key
+ Column Types: string, string
+ Table: default.cluster_mv_3
+
+ Stage: Stage-4
+ Materialized View Update
+ name: default.cluster_mv_3
+ updateCreationMetadata: true
+
+PREHOOK: query: ALTER MATERIALIZED VIEW cluster_mv_3 REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_txn
+PREHOOK: Input: default@src_txn_2
+PREHOOK: Output: default@cluster_mv_3
+POSTHOOK: query: ALTER MATERIALIZED VIEW cluster_mv_3 REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Input: default@src_txn_2
+POSTHOOK: Output: default@cluster_mv_3@partkey=338.0
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=338.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=338.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+PREHOOK: query: SELECT * FROM cluster_mv_3 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cluster_mv_3
+PREHOOK: Input: default@cluster_mv_3@partkey=301.0
+PREHOOK: Input: default@cluster_mv_3@partkey=302.0
+PREHOOK: Input: default@cluster_mv_3@partkey=303.0
+PREHOOK: Input: default@cluster_mv_3@partkey=305.0
+PREHOOK: Input: default@cluster_mv_3@partkey=307.0
+PREHOOK: Input: default@cluster_mv_3@partkey=308.0
+PREHOOK: Input: default@cluster_mv_3@partkey=309.0
+PREHOOK: Input: default@cluster_mv_3@partkey=313.0
+PREHOOK: Input: default@cluster_mv_3@partkey=314.0
+PREHOOK: Input: default@cluster_mv_3@partkey=316.0
+PREHOOK: Input: default@cluster_mv_3@partkey=317.0
+PREHOOK: Input: default@cluster_mv_3@partkey=318.0
+PREHOOK: Input: default@cluster_mv_3@partkey=319.0
+PREHOOK: Input: default@cluster_mv_3@partkey=321.0
+PREHOOK: Input: default@cluster_mv_3@partkey=322.0
+PREHOOK: Input: default@cluster_mv_3@partkey=323.0
+PREHOOK: Input: default@cluster_mv_3@partkey=324.0
+PREHOOK: Input: default@cluster_mv_3@partkey=326.0
+PREHOOK: Input: default@cluster_mv_3@partkey=328.0
+PREHOOK: Input: default@cluster_mv_3@partkey=329.0
+PREHOOK: Input: default@cluster_mv_3@partkey=330.0
+PREHOOK: Input: default@cluster_mv_3@partkey=333.0
+PREHOOK: Input: default@cluster_mv_3@partkey=335.0
+PREHOOK: Input: default@cluster_mv_3@partkey=337.0
+PREHOOK: Input: default@cluster_mv_3@partkey=338.0
+PREHOOK: Input: default@cluster_mv_3@partkey=339.0
+PREHOOK: Input: default@cluster_mv_3@partkey=341.0
+PREHOOK: Input: default@cluster_mv_3@partkey=342.0
+PREHOOK: Input: default@cluster_mv_3@partkey=344.0
+PREHOOK: Input: default@cluster_mv_3@partkey=347.0
+PREHOOK: Input: default@cluster_mv_3@partkey=348.0
+PREHOOK: Input: default@cluster_mv_3@partkey=349.0
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM cluster_mv_3 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cluster_mv_3
+POSTHOOK: Input: default@cluster_mv_3@partkey=301.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=302.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=303.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=305.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=307.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=308.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=309.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=313.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=314.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=316.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=317.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=318.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=319.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=321.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=322.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=323.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=324.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=326.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=328.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=329.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=330.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=333.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=335.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=337.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=338.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=339.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=341.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=342.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=344.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=347.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=348.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=349.0
+#### A masked pattern was here ####
+val_238 238 338.0
+val_238 238 338.0
+val_238 238 338.0
+val_238 238 338.0
+val_238_n 238 338.0
+val_238_n 238 338.0
+val_238_n2 238 338.0
+val_238_n2 238 338.0
+PREHOOK: query: CREATE MATERIALIZED VIEW cluster_mv_4 PARTITIONED ON (partkey) CLUSTERED ON (key,`tes"t`,`te*#"s"t`) AS
+SELECT src_txn.key + 100 as partkey, value, key, key+1 as `tes"t`, key+2 as `te*#"s"t` FROM src_txn where key > 200 and key < 250
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@src_txn
+PREHOOK: Output: database:default
+PREHOOK: Output: default@cluster_mv_4
+PREHOOK: Output: default@cluster_mv_4
+POSTHOOK: query: CREATE MATERIALIZED VIEW cluster_mv_4 PARTITIONED ON (partkey) CLUSTERED ON (key,`tes"t`,`te*#"s"t`) AS
+SELECT src_txn.key + 100 as partkey, value, key, key+1 as `tes"t`, key+2 as `te*#"s"t` FROM src_txn where key > 200 and key < 250
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@cluster_mv_4
+POSTHOOK: Output: default@cluster_mv_4@partkey=301.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=302.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=303.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=305.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=307.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=308.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=309.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=313.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=314.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=316.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=317.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=318.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=319.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=321.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=322.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=323.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=324.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=326.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=328.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=329.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=330.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=333.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=335.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=337.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=338.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=339.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=341.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=342.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=344.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=347.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=348.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=349.0
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=301.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=301.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=301.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=301.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=302.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=302.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=302.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=302.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=303.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=303.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=303.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=303.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=305.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=305.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=305.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=305.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=307.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=307.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=307.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=307.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=308.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=308.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=308.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=308.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=309.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=309.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=309.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=309.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=313.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=313.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=313.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=313.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=314.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=314.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=314.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=314.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=316.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=316.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=316.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=316.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=317.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=317.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=317.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=317.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=318.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=318.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=318.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=318.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=319.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=319.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=319.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=319.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=321.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=321.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=321.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=321.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=322.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=322.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=322.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=322.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=323.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=323.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=323.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=323.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=324.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=324.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=324.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=324.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=326.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=326.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=326.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=326.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=328.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=328.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=328.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=328.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=329.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=329.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=329.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=329.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=330.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=330.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=330.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=330.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=333.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=333.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=333.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=333.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=335.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=335.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=335.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=335.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=337.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=337.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=337.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=337.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=338.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=338.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=338.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=338.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=339.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=339.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=339.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=339.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=341.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=341.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=341.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=341.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=342.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=342.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=342.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=342.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=344.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=344.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=344.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=344.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=347.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=347.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=347.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=347.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=348.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=348.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=348.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=348.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=349.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=349.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=349.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=349.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+PREHOOK: query: DESCRIBE FORMATTED cluster_mv_4
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@cluster_mv_4
+POSTHOOK: query: DESCRIBE FORMATTED cluster_mv_4
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@cluster_mv_4
+# col_name data_type comment
+value string
+key string
+tes"t double
+te*#"s"t double
+
+# Partition Information
+# col_name data_type comment
+partkey double
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MATERIALIZED_VIEW
+Table Parameters:
+ COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\"}
+ bucketing_version 2
+ materializedview.distribute.columns [\"key\",\"tes\\\"t\",\"te*#\\\"s\\\"t\"]
+ materializedview.sort.columns [\"key\",\"tes\\\"t\",\"te*#\\\"s\\\"t\"]
+ numFiles 32
+ numPartitions 32
+ numRows 57
+ rawDataSize 11062
+ totalSize 17102
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+InputFormat: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+
+# Materialized View Information
+Original Query: SELECT src_txn.key + 100 as partkey, value, key, key+1 as tes"t, key+2 as te*#"s"t FROM src_txn where key > 200 and key < 250
+Expanded Query: SELECT `value`, `key`, `tes"t`, `te*#"s"t`, `partkey` FROM (SELECT `src_txn`.`key` + 100 as `partkey`, `src_txn`.`value`, `src_txn`.`key`, `src_txn`.`key`+1 as `tes"t`, `src_txn`.`key`+2 as `te*#"s"t` FROM `default`.`src_txn` where `src_txn`.`key` > 200 and `src_txn`.`key` < 250) `cluster_mv_4`
+Rewrite Enabled: Yes
+Outdated for Rewriting: No
+PREHOOK: query: INSERT INTO src_txn VALUES (238, 'val_238_n2')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@src_txn
+POSTHOOK: query: INSERT INTO src_txn VALUES (238, 'val_238_n2')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@src_txn
+POSTHOOK: Lineage: src_txn.key SCRIPT []
+POSTHOOK: Lineage: src_txn.value SCRIPT []
+PREHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cluster_mv_3 REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_txn
+PREHOOK: Input: default@src_txn_2
+PREHOOK: Output: default@cluster_mv_3
+POSTHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cluster_mv_3 REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Input: default@src_txn_2
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
+ Stage-3 depends on stages: Stage-0
+ Stage-4 depends on stages: Stage-3
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 5 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (ONE_TO_ONE_EDGE)
+ Reducer 4 <- Reducer 3 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: src_txn
+ filterExpr: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 503 Data size: 91043 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 55 Data size: 9955 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: key (type: string), value (type: string), (UDFToDouble(key) + 100.0D) (type: double)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 55 Data size: 10395 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: string)
+ Statistics: Num rows: 55 Data size: 10395 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: string), _col2 (type: double)
+ Execution mode: vectorized, llap
+ LLAP IO: may be used (ACID table)
+ Map 5
+ Map Operator Tree:
+ TableScan
+ alias: src_txn_2
+ filterExpr: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 55 Data size: 4785 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: key (type: string)
+ outputColumnNames: _col0
+ Statistics: Num rows: 55 Data size: 4785 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: string)
+ Statistics: Num rows: 55 Data size: 4785 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: vectorized, llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: string)
+ 1 _col0 (type: string)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 55 Data size: 10395 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col1 (type: string), _col0 (type: string), _col2 (type: double)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 55 Data size: 10395 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col1 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col1 (type: string)
+ Statistics: Num rows: 55 Data size: 10395 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: string), _col2 (type: double)
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Select Operator
+ expressions: VALUE._col0 (type: string), KEY._col1 (type: string), VALUE._col2 (type: double)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 55 Data size: 10395 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 55 Data size: 10395 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cluster_mv_3
+ Select Operator
+ expressions: _col0 (type: string), _col1 (type: string), _col2 (type: double)
+ outputColumnNames: value, key, partkey
+ Statistics: Num rows: 55 Data size: 10395 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: compute_stats(value, 'hll'), compute_stats(key, 'hll')
+ keys: partkey (type: double)
+ minReductionHashAggr: 0.5090909
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 27 Data size: 23976 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: double)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: double)
+ Statistics: Num rows: 27 Data size: 23976 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>), _col2 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>)
+ Reducer 4
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1)
+ keys: KEY._col0 (type: double)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 27 Data size: 23976 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col1 (type: struct<columntype:string,maxlength:bigint,avglength:double,countnulls:bigint,numdistinctvalues:bigint,ndvbitvector:binary>), _col2 (type: struct<columntype:string,maxlength:bigint,avglength:double,countnulls:bigint,numdistinctvalues:bigint,ndvbitvector:binary>), _col0 (type: double)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 27 Data size: 23976 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 27 Data size: 23976 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-2
+ Dependency Collection
+
+ Stage: Stage-0
+ Move Operator
+ tables:
+ partition:
+ partkey
+ replace: true
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cluster_mv_3
+
+ Stage: Stage-3
+ Stats Work
+ Basic Stats Work:
+ Column Stats Desc:
+ Columns: value, key
+ Column Types: string, string
+ Table: default.cluster_mv_3
+
+ Stage: Stage-4
+ Materialized View Update
+ name: default.cluster_mv_3
+ updateCreationMetadata: true
+
+PREHOOK: query: ALTER MATERIALIZED VIEW cluster_mv_3 REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_txn
+PREHOOK: Input: default@src_txn_2
+PREHOOK: Output: default@cluster_mv_3
+POSTHOOK: query: ALTER MATERIALIZED VIEW cluster_mv_3 REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Input: default@src_txn_2
+POSTHOOK: Output: default@cluster_mv_3@partkey=301.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=302.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=303.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=305.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=307.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=308.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=309.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=313.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=314.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=316.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=317.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=318.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=319.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=321.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=322.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=323.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=324.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=326.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=328.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=329.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=330.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=333.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=335.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=337.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=338.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=339.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=341.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=342.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=344.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=347.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=348.0
+POSTHOOK: Output: default@cluster_mv_3@partkey=349.0
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=301.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=301.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=302.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=302.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=303.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=303.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=305.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=305.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=307.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=307.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=308.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=308.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=309.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=309.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=313.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=313.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=314.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=314.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=316.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=316.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=317.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=317.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=318.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=318.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=319.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=319.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=321.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=321.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=322.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=322.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=323.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=323.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=324.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=324.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=326.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=326.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=328.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=328.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=329.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=329.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=330.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=330.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=333.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=333.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=335.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=335.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=337.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=337.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=338.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=338.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=339.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=339.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=341.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=341.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=342.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=342.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=344.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=344.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=347.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=347.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=348.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=348.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=349.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_3 PARTITION(partkey=349.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+PREHOOK: query: SELECT * FROM cluster_mv_3 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cluster_mv_3
+PREHOOK: Input: default@cluster_mv_3@partkey=301.0
+PREHOOK: Input: default@cluster_mv_3@partkey=302.0
+PREHOOK: Input: default@cluster_mv_3@partkey=303.0
+PREHOOK: Input: default@cluster_mv_3@partkey=305.0
+PREHOOK: Input: default@cluster_mv_3@partkey=307.0
+PREHOOK: Input: default@cluster_mv_3@partkey=308.0
+PREHOOK: Input: default@cluster_mv_3@partkey=309.0
+PREHOOK: Input: default@cluster_mv_3@partkey=313.0
+PREHOOK: Input: default@cluster_mv_3@partkey=314.0
+PREHOOK: Input: default@cluster_mv_3@partkey=316.0
+PREHOOK: Input: default@cluster_mv_3@partkey=317.0
+PREHOOK: Input: default@cluster_mv_3@partkey=318.0
+PREHOOK: Input: default@cluster_mv_3@partkey=319.0
+PREHOOK: Input: default@cluster_mv_3@partkey=321.0
+PREHOOK: Input: default@cluster_mv_3@partkey=322.0
+PREHOOK: Input: default@cluster_mv_3@partkey=323.0
+PREHOOK: Input: default@cluster_mv_3@partkey=324.0
+PREHOOK: Input: default@cluster_mv_3@partkey=326.0
+PREHOOK: Input: default@cluster_mv_3@partkey=328.0
+PREHOOK: Input: default@cluster_mv_3@partkey=329.0
+PREHOOK: Input: default@cluster_mv_3@partkey=330.0
+PREHOOK: Input: default@cluster_mv_3@partkey=333.0
+PREHOOK: Input: default@cluster_mv_3@partkey=335.0
+PREHOOK: Input: default@cluster_mv_3@partkey=337.0
+PREHOOK: Input: default@cluster_mv_3@partkey=338.0
+PREHOOK: Input: default@cluster_mv_3@partkey=339.0
+PREHOOK: Input: default@cluster_mv_3@partkey=341.0
+PREHOOK: Input: default@cluster_mv_3@partkey=342.0
+PREHOOK: Input: default@cluster_mv_3@partkey=344.0
+PREHOOK: Input: default@cluster_mv_3@partkey=347.0
+PREHOOK: Input: default@cluster_mv_3@partkey=348.0
+PREHOOK: Input: default@cluster_mv_3@partkey=349.0
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM cluster_mv_3 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cluster_mv_3
+POSTHOOK: Input: default@cluster_mv_3@partkey=301.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=302.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=303.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=305.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=307.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=308.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=309.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=313.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=314.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=316.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=317.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=318.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=319.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=321.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=322.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=323.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=324.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=326.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=328.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=329.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=330.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=333.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=335.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=337.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=338.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=339.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=341.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=342.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=344.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=347.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=348.0
+POSTHOOK: Input: default@cluster_mv_3@partkey=349.0
+#### A masked pattern was here ####
+val_238 238 338.0
+val_238 238 338.0
+val_238 238 338.0
+val_238 238 338.0
+val_238_n 238 338.0
+val_238_n 238 338.0
+val_238_n2 238 338.0
+val_238_n2 238 338.0
+val_238_n2 238 338.0
+val_238_n2 238 338.0
+PREHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cluster_mv_4 REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_txn
+PREHOOK: Output: default@cluster_mv_4
+POSTHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cluster_mv_4 REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_txn
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
+ Stage-3 depends on stages: Stage-0
+ Stage-4 depends on stages: Stage-3
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: src_txn
+ filterExpr: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 503 Data size: 91043 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 55 Data size: 9955 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: value (type: string), key (type: string), (UDFToDouble(key) + 1.0D) (type: double), (UDFToDouble(key) + 2.0D) (type: double), (UDFToDouble(key) + 100.0D) (type: double)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4
+ Statistics: Num rows: 55 Data size: 11275 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col1 (type: string), _col2 (type: double), _col3 (type: double)
+ sort order: +++
+ Map-reduce partition columns: _col1 (type: string), _col2 (type: double), _col3 (type: double)
+ Statistics: Num rows: 55 Data size: 11275 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: string), _col4 (type: double)
+ Execution mode: vectorized, llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Select Operator
+ expressions: VALUE._col0 (type: string), KEY._col1 (type: string), KEY._col2 (type: double), KEY._col3 (type: double), VALUE._col4 (type: double)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4
+ Statistics: Num rows: 55 Data size: 11275 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 55 Data size: 11275 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cluster_mv_4
+ Select Operator
+ expressions: _col0 (type: string), _col1 (type: string), _col2 (type: double), _col3 (type: double), _col4 (type: double)
+ outputColumnNames: value, key, tes"t, te*#"s"t, partkey
+ Statistics: Num rows: 55 Data size: 11275 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: compute_stats(value, 'hll'), compute_stats(key, 'hll'), compute_stats(tes"t, 'hll'), compute_stats(te*#"s"t, 'hll')
+ keys: partkey (type: double)
+ minReductionHashAggr: 0.5090909
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4
+ Statistics: Num rows: 27 Data size: 46872 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: double)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: double)
+ Statistics: Num rows: 27 Data size: 46872 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>), _col2 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>), _col3 (type: struct<columntype:string,min:double,max:double,countnulls:bigint,bitvector:binary>), _col4 (type: struct<columntype:string,min:double,max:double,countnulls:bigint,bitvector:binary>)
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1), compute_stats(VALUE._col2), compute_stats(VALUE._col3)
+ keys: KEY._col0 (type: double)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4
+ Statistics: Num rows: 27 Data size: 47736 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col1 (type: struct<columntype:string,maxlength:bigint,avglength:double,countnulls:bigint,numdistinctvalues:bigint,ndvbitvector:binary>), _col2 (type: struct<columntype:string,maxlength:bigint,avglength:double,countnulls:bigint,numdistinctvalues:bigint,ndvbitvector:binary>), _col3 (type: struct<columntype:string,min:double,max:double,countnulls:bigint,numdistinctvalues:bigint,ndvbitvector:binary>), _col4 (type: struct<columntype:string,min:double,max:double [...]
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4
+ Statistics: Num rows: 27 Data size: 47736 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 27 Data size: 47736 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-2
+ Dependency Collection
+
+ Stage: Stage-0
+ Move Operator
+ tables:
+ partition:
+ partkey
+ replace: true
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cluster_mv_4
+
+ Stage: Stage-3
+ Stats Work
+ Basic Stats Work:
+ Column Stats Desc:
+ Columns: value, key, tes"t, te*#"s"t
+ Column Types: string, string, double, double
+ Table: default.cluster_mv_4
+
+ Stage: Stage-4
+ Materialized View Update
+ name: default.cluster_mv_4
+ updateCreationMetadata: true
+
+PREHOOK: query: ALTER MATERIALIZED VIEW cluster_mv_4 REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_txn
+PREHOOK: Output: default@cluster_mv_4
+POSTHOOK: query: ALTER MATERIALIZED VIEW cluster_mv_4 REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Output: default@cluster_mv_4@partkey=301.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=302.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=303.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=305.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=307.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=308.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=309.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=313.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=314.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=316.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=317.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=318.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=319.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=321.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=322.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=323.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=324.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=326.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=328.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=329.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=330.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=333.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=335.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=337.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=338.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=339.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=341.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=342.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=344.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=347.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=348.0
+POSTHOOK: Output: default@cluster_mv_4@partkey=349.0
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=301.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=301.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=301.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=301.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=302.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=302.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=302.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=302.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=303.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=303.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=303.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=303.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=305.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=305.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=305.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=305.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=307.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=307.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=307.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=307.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=308.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=308.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=308.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=308.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=309.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=309.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=309.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=309.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=313.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=313.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=313.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=313.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=314.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=314.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=314.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=314.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=316.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=316.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=316.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=316.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=317.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=317.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=317.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=317.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=318.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=318.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=318.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=318.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=319.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=319.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=319.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=319.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=321.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=321.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=321.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=321.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=322.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=322.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=322.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=322.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=323.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=323.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=323.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=323.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=324.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=324.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=324.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=324.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=326.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=326.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=326.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=326.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=328.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=328.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=328.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=328.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=329.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=329.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=329.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=329.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=330.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=330.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=330.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=330.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=333.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=333.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=333.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=333.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=335.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=335.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=335.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=335.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=337.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=337.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=337.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=337.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=338.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=338.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=338.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=338.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=339.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=339.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=339.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=339.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=341.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=341.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=341.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=341.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=342.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=342.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=342.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=342.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=344.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=344.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=344.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=344.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=347.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=347.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=347.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=347.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=348.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=348.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=348.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=348.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=349.0).key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=349.0).te*#"s"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=349.0).tes"t EXPRESSION [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: cluster_mv_4 PARTITION(partkey=349.0).value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+PREHOOK: query: SELECT * FROM cluster_mv_4 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cluster_mv_4
+PREHOOK: Input: default@cluster_mv_4@partkey=301.0
+PREHOOK: Input: default@cluster_mv_4@partkey=302.0
+PREHOOK: Input: default@cluster_mv_4@partkey=303.0
+PREHOOK: Input: default@cluster_mv_4@partkey=305.0
+PREHOOK: Input: default@cluster_mv_4@partkey=307.0
+PREHOOK: Input: default@cluster_mv_4@partkey=308.0
+PREHOOK: Input: default@cluster_mv_4@partkey=309.0
+PREHOOK: Input: default@cluster_mv_4@partkey=313.0
+PREHOOK: Input: default@cluster_mv_4@partkey=314.0
+PREHOOK: Input: default@cluster_mv_4@partkey=316.0
+PREHOOK: Input: default@cluster_mv_4@partkey=317.0
+PREHOOK: Input: default@cluster_mv_4@partkey=318.0
+PREHOOK: Input: default@cluster_mv_4@partkey=319.0
+PREHOOK: Input: default@cluster_mv_4@partkey=321.0
+PREHOOK: Input: default@cluster_mv_4@partkey=322.0
+PREHOOK: Input: default@cluster_mv_4@partkey=323.0
+PREHOOK: Input: default@cluster_mv_4@partkey=324.0
+PREHOOK: Input: default@cluster_mv_4@partkey=326.0
+PREHOOK: Input: default@cluster_mv_4@partkey=328.0
+PREHOOK: Input: default@cluster_mv_4@partkey=329.0
+PREHOOK: Input: default@cluster_mv_4@partkey=330.0
+PREHOOK: Input: default@cluster_mv_4@partkey=333.0
+PREHOOK: Input: default@cluster_mv_4@partkey=335.0
+PREHOOK: Input: default@cluster_mv_4@partkey=337.0
+PREHOOK: Input: default@cluster_mv_4@partkey=338.0
+PREHOOK: Input: default@cluster_mv_4@partkey=339.0
+PREHOOK: Input: default@cluster_mv_4@partkey=341.0
+PREHOOK: Input: default@cluster_mv_4@partkey=342.0
+PREHOOK: Input: default@cluster_mv_4@partkey=344.0
+PREHOOK: Input: default@cluster_mv_4@partkey=347.0
+PREHOOK: Input: default@cluster_mv_4@partkey=348.0
+PREHOOK: Input: default@cluster_mv_4@partkey=349.0
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM cluster_mv_4 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cluster_mv_4
+POSTHOOK: Input: default@cluster_mv_4@partkey=301.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=302.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=303.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=305.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=307.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=308.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=309.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=313.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=314.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=316.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=317.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=318.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=319.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=321.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=322.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=323.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=324.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=326.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=328.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=329.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=330.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=333.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=335.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=337.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=338.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=339.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=341.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=342.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=344.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=347.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=348.0
+POSTHOOK: Input: default@cluster_mv_4@partkey=349.0
+#### A masked pattern was here ####
+val_238 238 239.0 240.0 338.0
+val_238 238 239.0 240.0 338.0
+val_238_n 238 239.0 240.0 338.0
+val_238_n2 238 239.0 240.0 338.0
+val_238_n2 238 239.0 240.0 338.0
+PREHOOK: query: DESCRIBE FORMATTED cluster_mv_4
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@cluster_mv_4
+POSTHOOK: query: DESCRIBE FORMATTED cluster_mv_4
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@cluster_mv_4
+# col_name data_type comment
+value string
+key string
+tes"t double
+te*#"s"t double
+
+# Partition Information
+# col_name data_type comment
+partkey double
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MATERIALIZED_VIEW
+Table Parameters:
+ COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\"}
+ bucketing_version 2
+ materializedview.distribute.columns [\"key\",\"tes\\\"t\",\"te*#\\\"s\\\"t\"]
+ materializedview.sort.columns [\"key\",\"tes\\\"t\",\"te*#\\\"s\\\"t\"]
+ numFiles 32
+ numPartitions 32
+ numRows 58
+ rawDataSize 11257
+ totalSize 17105
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+InputFormat: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+
+# Materialized View Information
+Original Query: SELECT src_txn.key + 100 as partkey, value, key, key+1 as tes"t, key+2 as te*#"s"t FROM src_txn where key > 200 and key < 250
+Expanded Query: SELECT `value`, `key`, `tes"t`, `te*#"s"t`, `partkey` FROM (SELECT `src_txn`.`key` + 100 as `partkey`, `src_txn`.`value`, `src_txn`.`key`, `src_txn`.`key`+1 as `tes"t`, `src_txn`.`key`+2 as `te*#"s"t` FROM `default`.`src_txn` where `src_txn`.`key` > 200 and `src_txn`.`key` < 250) `cluster_mv_4`
+Rewrite Enabled: Yes
+Outdated for Rewriting: No
diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_sort.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_sort.q.out
new file mode 100644
index 0000000..d610468
--- /dev/null
+++ b/ql/src/test/results/clientpositive/llap/materialized_view_sort.q.out
@@ -0,0 +1,909 @@
+PREHOOK: query: CREATE TABLE src_txn stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src
+PREHOOK: type: CREATETABLE_AS_SELECT
+PREHOOK: Input: default@src
+PREHOOK: Output: database:default
+PREHOOK: Output: default@src_txn
+POSTHOOK: query: CREATE TABLE src_txn stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src
+POSTHOOK: type: CREATETABLE_AS_SELECT
+POSTHOOK: Input: default@src
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@src_txn
+POSTHOOK: Lineage: src_txn.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: src_txn.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+PREHOOK: query: EXPLAIN
+CREATE MATERIALIZED VIEW sort_mv_1 SORTED ON (key) STORED AS TEXTFILE AS
+SELECT value, key FROM src_txn where key > 200 and key < 250
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@src_txn
+PREHOOK: Output: database:default
+PREHOOK: Output: default@sort_mv_1
+POSTHOOK: query: EXPLAIN
+CREATE MATERIALIZED VIEW sort_mv_1 SORTED ON (key) STORED AS TEXTFILE AS
+SELECT value, key FROM src_txn where key > 200 and key < 250
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@sort_mv_1
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-4 depends on stages: Stage-0, Stage-2
+ Stage-3 depends on stages: Stage-4
+ Stage-5 depends on stages: Stage-3
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (CUSTOM_SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: src_txn
+ filterExpr: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 55 Data size: 9790 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: value (type: string), key (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 55 Data size: 9790 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col1 (type: string)
+ sort order: +
+ Statistics: Num rows: 55 Data size: 9790 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: string)
+ Execution mode: vectorized, llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Select Operator
+ expressions: VALUE._col0 (type: string), KEY._col1 (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 55 Data size: 9790 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 55 Data size: 9790 Basic stats: COMPLETE Column stats: COMPLETE
+ 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
+ name: default.sort_mv_1
+ Select Operator
+ expressions: _col0 (type: string), _col1 (type: string)
+ outputColumnNames: col1, col2
+ Statistics: Num rows: 55 Data size: 9790 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: compute_stats(col1, 'hll'), compute_stats(col2, 'hll')
+ minReductionHashAggr: 0.9818182
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ sort order:
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>), _col1 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>)
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-2
+ Dependency Collection
+
+ Stage: Stage-4
+ Create View
+ columns: value string, key string
+ sort columns: key string
+ expanded text: SELECT `src_txn`.`value`, `src_txn`.`key` FROM `default`.`src_txn` where `src_txn`.`key` > 200 and `src_txn`.`key` < 250
+ name: default.sort_mv_1
+ original text: SELECT value, key FROM src_txn where key > 200 and key < 250
+ rewrite enabled: true
+
+ Stage: Stage-3
+ Stats Work
+ Basic Stats Work:
+ Column Stats Desc:
+ Columns: value, key
+ Column Types: string, string
+ Table: default.sort_mv_1
+
+ Stage: Stage-5
+ Materialized View Work
+
+ Stage: Stage-0
+ Move Operator
+ files:
+ hdfs directory: true
+#### A masked pattern was here ####
+
+PREHOOK: query: CREATE MATERIALIZED VIEW sort_mv_1 SORTED ON (key) STORED AS TEXTFILE AS
+SELECT value, key FROM src_txn where key > 200 and key < 250
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@src_txn
+PREHOOK: Output: database:default
+PREHOOK: Output: default@sort_mv_1
+POSTHOOK: query: CREATE MATERIALIZED VIEW sort_mv_1 SORTED ON (key) STORED AS TEXTFILE AS
+SELECT value, key FROM src_txn where key > 200 and key < 250
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@sort_mv_1
+PREHOOK: query: DESCRIBE FORMATTED sort_mv_1
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@sort_mv_1
+POSTHOOK: query: DESCRIBE FORMATTED sort_mv_1
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@sort_mv_1
+# col_name data_type comment
+value string
+key string
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MATERIALIZED_VIEW
+Table Parameters:
+ COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\"key\":\"true\",\"value\":\"true\"}}
+ bucketing_version 2
+ materializedview.sort.columns [\"key\"]
+ numFiles 1
+ numRows 55
+ rawDataSize 605
+ totalSize 660
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+
+# Materialized View Information
+Original Query: SELECT value, key FROM src_txn where key > 200 and key < 250
+Expanded Query: SELECT `src_txn`.`value`, `src_txn`.`key` FROM `default`.`src_txn` where `src_txn`.`key` > 200 and `src_txn`.`key` < 250
+Rewrite Enabled: Yes
+Outdated for Rewriting: No
+Found 1 items
+#### A masked pattern was here ####
+val_201201
+val_202202
+val_203203
+val_203203
+val_205205
+val_205205
+val_207207
+val_207207
+val_208208
+val_208208
+val_208208
+val_209209
+val_209209
+val_213213
+val_213213
+val_214214
+val_216216
+val_216216
+val_217217
+val_217217
+val_218218
+val_219219
+val_219219
+val_221221
+val_221221
+val_222222
+val_223223
+val_223223
+val_224224
+val_224224
+val_226226
+val_228228
+val_229229
+val_229229
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_233233
+val_233233
+val_235235
+val_237237
+val_237237
+val_238238
+val_238238
+val_239239
+val_239239
+val_241241
+val_242242
+val_242242
+val_244244
+val_247247
+val_248248
+val_249249
+PREHOOK: query: EXPLAIN
+SELECT * FROM sort_mv_1 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@sort_mv_1
+#### A masked pattern was here ####
+POSTHOOK: query: EXPLAIN
+SELECT * FROM sort_mv_1 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@sort_mv_1
+#### A masked pattern was here ####
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: sort_mv_1
+ filterExpr: (UDFToDouble(key) = 238.0D) (type: boolean)
+ Filter Operator
+ predicate: (UDFToDouble(key) = 238.0D) (type: boolean)
+ Select Operator
+ expressions: value (type: string), key (type: string)
+ outputColumnNames: _col0, _col1
+ ListSink
+
+PREHOOK: query: SELECT * FROM sort_mv_1 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@sort_mv_1
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM sort_mv_1 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@sort_mv_1
+#### A masked pattern was here ####
+val_238 238
+val_238 238
+PREHOOK: query: CREATE MATERIALIZED VIEW sort_mv_2 SORTED ON (value) STORED AS TEXTFILE AS
+SELECT key, value FROM src_txn where key > 200 and key < 250
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@src_txn
+PREHOOK: Output: database:default
+PREHOOK: Output: default@sort_mv_2
+POSTHOOK: query: CREATE MATERIALIZED VIEW sort_mv_2 SORTED ON (value) STORED AS TEXTFILE AS
+SELECT key, value FROM src_txn where key > 200 and key < 250
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@sort_mv_2
+Found 1 items
+#### A masked pattern was here ####
+201val_201
+202val_202
+203val_203
+203val_203
+205val_205
+205val_205
+207val_207
+207val_207
+208val_208
+208val_208
+208val_208
+209val_209
+209val_209
+213val_213
+213val_213
+214val_214
+216val_216
+216val_216
+217val_217
+217val_217
+218val_218
+219val_219
+219val_219
+221val_221
+221val_221
+222val_222
+223val_223
+223val_223
+224val_224
+224val_224
+226val_226
+228val_228
+229val_229
+229val_229
+230val_230
+230val_230
+230val_230
+230val_230
+230val_230
+233val_233
+233val_233
+235val_235
+237val_237
+237val_237
+238val_238
+238val_238
+239val_239
+239val_239
+241val_241
+242val_242
+242val_242
+244val_244
+247val_247
+248val_248
+249val_249
+PREHOOK: query: EXPLAIN
+SELECT * FROM sort_mv_2 where value = 'val_238'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@sort_mv_2
+#### A masked pattern was here ####
+POSTHOOK: query: EXPLAIN
+SELECT * FROM sort_mv_2 where value = 'val_238'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@sort_mv_2
+#### A masked pattern was here ####
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: sort_mv_2
+ filterExpr: (value = 'val_238') (type: boolean)
+ Filter Operator
+ predicate: (value = 'val_238') (type: boolean)
+ Select Operator
+ expressions: key (type: string), 'val_238' (type: string)
+ outputColumnNames: _col0, _col1
+ ListSink
+
+PREHOOK: query: SELECT * FROM sort_mv_2 where value = 'val_238'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@sort_mv_2
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM sort_mv_2 where value = 'val_238'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@sort_mv_2
+#### A masked pattern was here ####
+238 val_238
+238 val_238
+PREHOOK: query: EXPLAIN
+SELECT value FROM sort_mv_2 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@sort_mv_2
+#### A masked pattern was here ####
+POSTHOOK: query: EXPLAIN
+SELECT value FROM sort_mv_2 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@sort_mv_2
+#### A masked pattern was here ####
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: sort_mv_2
+ filterExpr: (UDFToDouble(key) = 238.0D) (type: boolean)
+ Filter Operator
+ predicate: (UDFToDouble(key) = 238.0D) (type: boolean)
+ Select Operator
+ expressions: value (type: string)
+ outputColumnNames: _col0
+ ListSink
+
+PREHOOK: query: SELECT value FROM sort_mv_2 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@sort_mv_2
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT value FROM sort_mv_2 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@sort_mv_2
+#### A masked pattern was here ####
+val_238
+val_238
+PREHOOK: query: INSERT INTO src_txn VALUES (238, 'val_238_n')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@src_txn
+POSTHOOK: query: INSERT INTO src_txn VALUES (238, 'val_238_n')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@src_txn
+POSTHOOK: Lineage: src_txn.key SCRIPT []
+POSTHOOK: Lineage: src_txn.value SCRIPT []
+PREHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW sort_mv_1 REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_txn
+PREHOOK: Output: default@sort_mv_1
+POSTHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW sort_mv_1 REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Output: default@sort_mv_1
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
+ Stage-3 depends on stages: Stage-0
+ Stage-4 depends on stages: Stage-3
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (CUSTOM_SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: src_txn
+ filterExpr: ((ROW__ID.writeid > 1L) and (UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 501 Data size: 90180 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((ROW__ID.writeid > 1L) and (UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 18 Data size: 3240 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: value (type: string), key (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 18 Data size: 3240 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 18 Data size: 3240 Basic stats: COMPLETE Column stats: COMPLETE
+ 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
+ name: default.sort_mv_1
+ Select Operator
+ expressions: _col0 (type: string), _col1 (type: string)
+ outputColumnNames: value, key
+ Statistics: Num rows: 18 Data size: 3240 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: compute_stats(value, 'hll'), compute_stats(key, 'hll')
+ minReductionHashAggr: 0.9444444
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ sort order:
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>), _col1 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>)
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-2
+ Dependency Collection
+
+ Stage: Stage-0
+ Move Operator
+ tables:
+ replace: false
+ 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
+ name: default.sort_mv_1
+
+ Stage: Stage-3
+ Stats Work
+ Basic Stats Work:
+ Column Stats Desc:
+ Columns: value, key
+ Column Types: string, string
+ Table: default.sort_mv_1
+
+ Stage: Stage-4
+ Materialized View Work
+
+PREHOOK: query: ALTER MATERIALIZED VIEW sort_mv_1 REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_txn
+PREHOOK: Output: default@sort_mv_1
+POSTHOOK: query: ALTER MATERIALIZED VIEW sort_mv_1 REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Output: default@sort_mv_1
+POSTHOOK: Lineage: sort_mv_1.key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: sort_mv_1.value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+PREHOOK: query: SELECT * FROM sort_mv_1 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@sort_mv_1
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM sort_mv_1 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@sort_mv_1
+#### A masked pattern was here ####
+val_238 238
+val_238 238
+val_238_n 238
+PREHOOK: query: SELECT * FROM sort_mv_2 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@sort_mv_2
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM sort_mv_2 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@sort_mv_2
+#### A masked pattern was here ####
+238 val_238
+238 val_238
+PREHOOK: query: CREATE TABLE src_txn_2 stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src
+PREHOOK: type: CREATETABLE_AS_SELECT
+PREHOOK: Input: default@src
+PREHOOK: Output: database:default
+PREHOOK: Output: default@src_txn_2
+POSTHOOK: query: CREATE TABLE src_txn_2 stored as orc TBLPROPERTIES ('transactional' = 'true')
+AS SELECT * FROM src
+POSTHOOK: type: CREATETABLE_AS_SELECT
+POSTHOOK: Input: default@src
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@src_txn_2
+POSTHOOK: Lineage: src_txn_2.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: src_txn_2.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+PREHOOK: query: CREATE MATERIALIZED VIEW sort_mv_3 SORTED ON (key) STORED AS TEXTFILE AS
+SELECT src_txn.value, src_txn.key FROM src_txn, src_txn_2
+WHERE src_txn.key = src_txn_2.key
+ AND src_txn.key > 200 AND src_txn.key < 250
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@src_txn
+PREHOOK: Input: default@src_txn_2
+PREHOOK: Output: database:default
+PREHOOK: Output: default@sort_mv_3
+POSTHOOK: query: CREATE MATERIALIZED VIEW sort_mv_3 SORTED ON (key) STORED AS TEXTFILE AS
+SELECT src_txn.value, src_txn.key FROM src_txn, src_txn_2
+WHERE src_txn.key = src_txn_2.key
+ AND src_txn.key > 200 AND src_txn.key < 250
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Input: default@src_txn_2
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@sort_mv_3
+Found 1 items
+#### A masked pattern was here ####
+val_201201
+val_202202
+val_203203
+val_203203
+val_203203
+val_203203
+val_205205
+val_205205
+val_205205
+val_205205
+val_207207
+val_207207
+val_207207
+val_207207
+val_208208
+val_208208
+val_208208
+val_208208
+val_208208
+val_208208
+val_208208
+val_208208
+val_208208
+val_209209
+val_209209
+val_209209
+val_209209
+val_213213
+val_213213
+val_213213
+val_213213
+val_214214
+val_216216
+val_216216
+val_216216
+val_216216
+val_217217
+val_217217
+val_217217
+val_217217
+val_218218
+val_219219
+val_219219
+val_219219
+val_219219
+val_221221
+val_221221
+val_221221
+val_221221
+val_222222
+val_223223
+val_223223
+val_223223
+val_223223
+val_224224
+val_224224
+val_224224
+val_224224
+val_226226
+val_228228
+val_229229
+val_229229
+val_229229
+val_229229
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_230230
+val_233233
+val_233233
+val_233233
+val_233233
+val_235235
+val_237237
+val_237237
+val_237237
+val_237237
+val_238_n238
+val_238238
+val_238238
+val_238238
+val_238238
+val_238_n238
+val_239239
+val_239239
+val_239239
+val_239239
+val_241241
+val_242242
+val_242242
+val_242242
+val_242242
+val_244244
+val_247247
+val_248248
+val_249249
+PREHOOK: query: INSERT INTO src_txn VALUES (238, 'val_238_n2')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@src_txn
+POSTHOOK: query: INSERT INTO src_txn VALUES (238, 'val_238_n2')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@src_txn
+POSTHOOK: Lineage: src_txn.key SCRIPT []
+POSTHOOK: Lineage: src_txn.value SCRIPT []
+PREHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW sort_mv_3 REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_txn
+PREHOOK: Input: default@src_txn_2
+PREHOOK: Output: default@sort_mv_3
+POSTHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW sort_mv_3 REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Input: default@src_txn_2
+POSTHOOK: Output: default@sort_mv_3
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
+ Stage-3 depends on stages: Stage-0
+ Stage-4 depends on stages: Stage-3
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (CUSTOM_SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: src_txn
+ filterExpr: ((ROW__ID.writeid > 2L) and (UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 502 Data size: 90862 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((ROW__ID.writeid > 2L) and (UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 18 Data size: 3258 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: key (type: string), value (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 18 Data size: 3258 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: string)
+ Statistics: Num rows: 18 Data size: 3258 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: string)
+ Execution mode: vectorized, llap
+ LLAP IO: may be used (ACID table)
+ Map 4
+ Map Operator Tree:
+ TableScan
+ alias: src_txn_2
+ filterExpr: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((UDFToDouble(key) > 200.0D) and (UDFToDouble(key) < 250.0D)) (type: boolean)
+ Statistics: Num rows: 55 Data size: 4785 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: key (type: string)
+ outputColumnNames: _col0
+ Statistics: Num rows: 55 Data size: 4785 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: string)
+ Statistics: Num rows: 55 Data size: 4785 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: vectorized, llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: string)
+ 1 _col0 (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 18 Data size: 3258 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col1 (type: string), _col0 (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 18 Data size: 3258 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 18 Data size: 3258 Basic stats: COMPLETE Column stats: COMPLETE
+ 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
+ name: default.sort_mv_3
+ Select Operator
+ expressions: _col0 (type: string), _col1 (type: string)
+ outputColumnNames: value, key
+ Statistics: Num rows: 18 Data size: 3258 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: compute_stats(value, 'hll'), compute_stats(key, 'hll')
+ minReductionHashAggr: 0.9444444
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ sort order:
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>), _col1 (type: struct<columntype:string,maxlength:bigint,sumlength:bigint,count:bigint,countnulls:bigint,bitvector:binary>)
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 880 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-2
+ Dependency Collection
+
+ Stage: Stage-0
+ Move Operator
+ tables:
+ replace: false
+ 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
+ name: default.sort_mv_3
+
+ Stage: Stage-3
+ Stats Work
+ Basic Stats Work:
+ Column Stats Desc:
+ Columns: value, key
+ Column Types: string, string
+ Table: default.sort_mv_3
+
+ Stage: Stage-4
+ Materialized View Work
+
+PREHOOK: query: ALTER MATERIALIZED VIEW sort_mv_3 REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_txn
+PREHOOK: Input: default@src_txn_2
+PREHOOK: Output: default@sort_mv_3
+POSTHOOK: query: ALTER MATERIALIZED VIEW sort_mv_3 REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_txn
+POSTHOOK: Input: default@src_txn_2
+POSTHOOK: Output: default@sort_mv_3
+POSTHOOK: Lineage: sort_mv_3.key SIMPLE [(src_txn)src_txn.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: sort_mv_3.value SIMPLE [(src_txn)src_txn.FieldSchema(name:value, type:string, comment:null), ]
+PREHOOK: query: SELECT * FROM sort_mv_3 where key = 238
+PREHOOK: type: QUERY
+PREHOOK: Input: default@sort_mv_3
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM sort_mv_3 where key = 238
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@sort_mv_3
+#### A masked pattern was here ####
+val_238 238
+val_238 238
+val_238 238
+val_238 238
+val_238_n 238
+val_238_n 238
+val_238_n2 238
+val_238_n2 238