You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by se...@apache.org on 2016/11/08 03:19:08 UTC
hive git commit: HIVE-14990 : run all tests for MM tables and fix the
issues that are found - more issues (Sergey Shelukhin)
Repository: hive
Updated Branches:
refs/heads/hive-14535 1f6c5ac4f -> 46e765712
HIVE-14990 : run all tests for MM tables and fix the issues that are found - more issues (Sergey Shelukhin)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/46e76571
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/46e76571
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/46e76571
Branch: refs/heads/hive-14535
Commit: 46e765712a0ce87e3896676c8fa59f37beb0adb0
Parents: 1f6c5ac
Author: Sergey Shelukhin <se...@apache.org>
Authored: Mon Nov 7 19:09:19 2016 -0800
Committer: Sergey Shelukhin <se...@apache.org>
Committed: Mon Nov 7 19:12:13 2016 -0800
----------------------------------------------------------------------
.../hadoop/hive/metastore/HiveMetaStore.java | 13 +-
.../hadoop/hive/metastore/MetaStoreUtils.java | 1 -
.../ql/optimizer/AbstractBucketJoinProc.java | 6 +
.../hive/ql/parse/LoadSemanticAnalyzer.java | 8 +-
.../test/results/clientpositive/mm_all2.q.out | 495 +++++++++++
.../results/clientpositive/mm_conversions.q.out | 861 +++++++++++++++++++
6 files changed, 1379 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/46e76571/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
----------------------------------------------------------------------
diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java b/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
index db77b8c..2801192 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
@@ -6445,7 +6445,8 @@ public class HiveMetaStore extends ThriftHiveMetastore {
@Override
public GetNextWriteIdResult get_next_write_id(GetNextWriteIdRequest req) throws TException {
RawStore ms = getMS();
- String dbName = req.getDbName(), tblName = req.getTblName();
+ String dbName = HiveStringUtils.normalizeIdentifier(req.getDbName()),
+ tblName = HiveStringUtils.normalizeIdentifier(req.getTblName());
startFunction("get_next_write_id", " : db=" + dbName + " tbl=" + tblName);
Exception exception = null;
long writeId = -1;
@@ -6503,7 +6504,8 @@ public class HiveMetaStore extends ThriftHiveMetastore {
@Override
public FinalizeWriteIdResult finalize_write_id(FinalizeWriteIdRequest req) throws TException {
RawStore ms = getMS();
- String dbName = req.getDbName(), tblName = req.getTblName();
+ String dbName = HiveStringUtils.normalizeIdentifier(req.getDbName()),
+ tblName = HiveStringUtils.normalizeIdentifier(req.getTblName());
long writeId = req.getWriteId();
boolean commit = req.isCommit();
startFunction("finalize_write_id", " : db=" + dbName + " tbl=" + tblName
@@ -6514,6 +6516,10 @@ public class HiveMetaStore extends ThriftHiveMetastore {
ms.openTransaction();
try {
MTableWrite tw = getActiveTableWrite(ms, dbName, tblName, writeId);
+ if (tw == null) {
+ throw new MetaException("Write ID " + writeId + " for " + dbName + "." + tblName
+ + " does not exist or is not active");
+ }
tw.setState(String.valueOf(commit ? MM_WRITE_COMMITTED : MM_WRITE_ABORTED));
ms.updateTableWrite(tw);
ok = true;
@@ -6541,7 +6547,8 @@ public class HiveMetaStore extends ThriftHiveMetastore {
public HeartbeatWriteIdResult heartbeat_write_id(HeartbeatWriteIdRequest req)
throws TException {
RawStore ms = getMS();
- String dbName = req.getDbName(), tblName = req.getTblName();
+ String dbName = HiveStringUtils.normalizeIdentifier(req.getDbName()),
+ tblName = HiveStringUtils.normalizeIdentifier(req.getTblName());
long writeId = req.getWriteId();
startFunction("heartbeat_write_id", " : db="
+ dbName + " tbl=" + tblName + " writeId=" + writeId);
http://git-wip-us.apache.org/repos/asf/hive/blob/46e76571/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreUtils.java
----------------------------------------------------------------------
diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreUtils.java b/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreUtils.java
index 53bdec0..2942bf3 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreUtils.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreUtils.java
@@ -1944,5 +1944,4 @@ public class MetaStoreUtils {
hasProps = removedSet.contains(hive_metastoreConstants.TABLE_TRANSACTIONAL_PROPERTIES);
return hasTxn || hasProps;
}
-
}
http://git-wip-us.apache.org/repos/asf/hive/blob/46e76571/ql/src/java/org/apache/hadoop/hive/ql/optimizer/AbstractBucketJoinProc.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/AbstractBucketJoinProc.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/AbstractBucketJoinProc.java
index a0bc19f..02bdd91 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/AbstractBucketJoinProc.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/AbstractBucketJoinProc.java
@@ -34,10 +34,12 @@ import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hive.common.FileUtils;
+import org.apache.hadoop.hive.metastore.MetaStoreUtils;
import org.apache.hadoop.hive.ql.ErrorMsg;
import org.apache.hadoop.hive.ql.exec.MapJoinOperator;
import org.apache.hadoop.hive.ql.exec.Operator;
import org.apache.hadoop.hive.ql.exec.TableScanOperator;
+import org.apache.hadoop.hive.ql.exec.Utilities;
import org.apache.hadoop.hive.ql.lib.Node;
import org.apache.hadoop.hive.ql.lib.NodeProcessor;
import org.apache.hadoop.hive.ql.lib.NodeProcessorCtx;
@@ -262,6 +264,10 @@ abstract public class AbstractBucketJoinProc implements NodeProcessor {
}
Table tbl = tso.getConf().getTableMetadata();
+ if (MetaStoreUtils.isInsertOnlyTable(tbl.getParameters())) {
+ Utilities.LOG14535.debug("No bucketed join on MM table " + tbl.getTableName());
+ return false;
+ }
if (tbl.isPartitioned()) {
PrunedPartitionList prunedParts = pGraphContext.getPrunedPartitions(alias, tso);
List<Partition> partitions = prunedParts.getNotDeniedPartns();
http://git-wip-us.apache.org/repos/asf/hive/blob/46e76571/ql/src/java/org/apache/hadoop/hive/ql/parse/LoadSemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/LoadSemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/LoadSemanticAnalyzer.java
index bc6ef13..527d394 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/LoadSemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/LoadSemanticAnalyzer.java
@@ -211,12 +211,18 @@ public class LoadSemanticAnalyzer extends BaseSemanticAnalyzer {
if(ts.tableHandle.isStoredAsSubDirectories()) {
throw new SemanticException(ErrorMsg.LOAD_INTO_STORED_AS_DIR.getMsg());
}
-
List<FieldSchema> parts = ts.tableHandle.getPartitionKeys();
if ((parts != null && parts.size() > 0)
&& (ts.partSpec == null || ts.partSpec.size() == 0)) {
throw new SemanticException(ErrorMsg.NEED_PARTITION_ERROR.getMsg());
}
+ /* TODO# enable later - fails srcbucket creation in 14990
+ List<String> bucketCols = ts.tableHandle.getBucketCols();
+ if (bucketCols != null && !bucketCols.isEmpty()
+ && MetaStoreUtils.isInsertOnlyTable(ts.tableHandle.getMetadata())) {
+ throw new SemanticException("Cannot load into a bucketed insert-only table. Please load into"
+ + " an intermediate table and use insert... select to allow Hive to enforce bucketing.");
+ }*/
// make sure the arguments make sense
List<FileStatus> files = applyConstraintsAndGetFiles(fromURI, fromTree, isLocal);
http://git-wip-us.apache.org/repos/asf/hive/blob/46e76571/ql/src/test/results/clientpositive/mm_all2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/mm_all2.q.out b/ql/src/test/results/clientpositive/mm_all2.q.out
new file mode 100644
index 0000000..67c4052
--- /dev/null
+++ b/ql/src/test/results/clientpositive/mm_all2.q.out
@@ -0,0 +1,495 @@
+PREHOOK: query: -- Bucketing tests are slow and some tablesample ones don't work w/o MM
+
+-- Force multiple writers when reading
+drop table intermediate
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: -- Bucketing tests are slow and some tablesample ones don't work w/o MM
+
+-- Force multiple writers when reading
+drop table intermediate
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: create table intermediate(key int) partitioned by (p int) stored as orc
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@intermediate
+POSTHOOK: query: create table intermediate(key int) partitioned by (p int) stored as orc
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@intermediate
+PREHOOK: query: insert into table intermediate partition(p='455') select distinct key from src where key >= 0 order by key desc limit 2
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: default@intermediate@p=455
+POSTHOOK: query: insert into table intermediate partition(p='455') select distinct key from src where key >= 0 order by key desc limit 2
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: default@intermediate@p=455
+POSTHOOK: Lineage: intermediate PARTITION(p=455).key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+PREHOOK: query: insert into table intermediate partition(p='456') select distinct key from src where key is not null order by key asc limit 2
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: default@intermediate@p=456
+POSTHOOK: query: insert into table intermediate partition(p='456') select distinct key from src where key is not null order by key asc limit 2
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: default@intermediate@p=456
+POSTHOOK: Lineage: intermediate PARTITION(p=456).key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+PREHOOK: query: insert into table intermediate partition(p='457') select distinct key from src where key >= 100 order by key asc limit 2
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: default@intermediate@p=457
+POSTHOOK: query: insert into table intermediate partition(p='457') select distinct key from src where key >= 100 order by key asc limit 2
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: default@intermediate@p=457
+POSTHOOK: Lineage: intermediate PARTITION(p=457).key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+PREHOOK: query: drop table bucket0_mm
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: drop table bucket0_mm
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: create table bucket0_mm(key int, id int)
+clustered by (key) into 2 buckets
+tblproperties("transactional"="true", "transactional_properties"="insert_only")
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@bucket0_mm
+POSTHOOK: query: create table bucket0_mm(key int, id int)
+clustered by (key) into 2 buckets
+tblproperties("transactional"="true", "transactional_properties"="insert_only")
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@bucket0_mm
+PREHOOK: query: insert into table bucket0_mm select key, key from intermediate
+PREHOOK: type: QUERY
+PREHOOK: Input: default@intermediate
+PREHOOK: Input: default@intermediate@p=455
+PREHOOK: Input: default@intermediate@p=456
+PREHOOK: Input: default@intermediate@p=457
+PREHOOK: Output: default@bucket0_mm
+POSTHOOK: query: insert into table bucket0_mm select key, key from intermediate
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@intermediate
+POSTHOOK: Input: default@intermediate@p=455
+POSTHOOK: Input: default@intermediate@p=456
+POSTHOOK: Input: default@intermediate@p=457
+POSTHOOK: Output: default@bucket0_mm
+POSTHOOK: Lineage: bucket0_mm.id SIMPLE [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: bucket0_mm.key SIMPLE [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: select * from bucket0_mm
+PREHOOK: type: QUERY
+PREHOOK: Input: default@bucket0_mm
+#### A masked pattern was here ####
+POSTHOOK: query: select * from bucket0_mm
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@bucket0_mm
+#### A masked pattern was here ####
+100 100
+10 10
+0 0
+98 98
+103 103
+97 97
+PREHOOK: query: select * from bucket0_mm tablesample (bucket 1 out of 2) s
+PREHOOK: type: QUERY
+PREHOOK: Input: default@bucket0_mm
+#### A masked pattern was here ####
+POSTHOOK: query: select * from bucket0_mm tablesample (bucket 1 out of 2) s
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@bucket0_mm
+#### A masked pattern was here ####
+100 100
+10 10
+0 0
+98 98
+PREHOOK: query: select * from bucket0_mm tablesample (bucket 2 out of 2) s
+PREHOOK: type: QUERY
+PREHOOK: Input: default@bucket0_mm
+#### A masked pattern was here ####
+POSTHOOK: query: select * from bucket0_mm tablesample (bucket 2 out of 2) s
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@bucket0_mm
+#### A masked pattern was here ####
+103 103
+97 97
+PREHOOK: query: insert into table bucket0_mm select key, key from intermediate
+PREHOOK: type: QUERY
+PREHOOK: Input: default@intermediate
+PREHOOK: Input: default@intermediate@p=455
+PREHOOK: Input: default@intermediate@p=456
+PREHOOK: Input: default@intermediate@p=457
+PREHOOK: Output: default@bucket0_mm
+POSTHOOK: query: insert into table bucket0_mm select key, key from intermediate
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@intermediate
+POSTHOOK: Input: default@intermediate@p=455
+POSTHOOK: Input: default@intermediate@p=456
+POSTHOOK: Input: default@intermediate@p=457
+POSTHOOK: Output: default@bucket0_mm
+POSTHOOK: Lineage: bucket0_mm.id SIMPLE [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: bucket0_mm.key SIMPLE [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: select * from bucket0_mm
+PREHOOK: type: QUERY
+PREHOOK: Input: default@bucket0_mm
+#### A masked pattern was here ####
+POSTHOOK: query: select * from bucket0_mm
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@bucket0_mm
+#### A masked pattern was here ####
+100 100
+10 10
+0 0
+98 98
+98 98
+10 10
+0 0
+100 100
+103 103
+97 97
+97 97
+103 103
+PREHOOK: query: select * from bucket0_mm tablesample (bucket 1 out of 2) s
+PREHOOK: type: QUERY
+PREHOOK: Input: default@bucket0_mm
+#### A masked pattern was here ####
+POSTHOOK: query: select * from bucket0_mm tablesample (bucket 1 out of 2) s
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@bucket0_mm
+#### A masked pattern was here ####
+100 100
+10 10
+0 0
+98 98
+98 98
+10 10
+0 0
+100 100
+PREHOOK: query: select * from bucket0_mm tablesample (bucket 2 out of 2) s
+PREHOOK: type: QUERY
+PREHOOK: Input: default@bucket0_mm
+#### A masked pattern was here ####
+POSTHOOK: query: select * from bucket0_mm tablesample (bucket 2 out of 2) s
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@bucket0_mm
+#### A masked pattern was here ####
+103 103
+97 97
+97 97
+103 103
+PREHOOK: query: drop table bucket0_mm
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@bucket0_mm
+PREHOOK: Output: default@bucket0_mm
+POSTHOOK: query: drop table bucket0_mm
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@bucket0_mm
+POSTHOOK: Output: default@bucket0_mm
+PREHOOK: query: drop table bucket1_mm
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: drop table bucket1_mm
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: create table bucket1_mm(key int, id int) partitioned by (key2 int)
+clustered by (key) sorted by (key) into 2 buckets
+tblproperties("transactional"="true", "transactional_properties"="insert_only")
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@bucket1_mm
+POSTHOOK: query: create table bucket1_mm(key int, id int) partitioned by (key2 int)
+clustered by (key) sorted by (key) into 2 buckets
+tblproperties("transactional"="true", "transactional_properties"="insert_only")
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@bucket1_mm
+PREHOOK: query: insert into table bucket1_mm partition (key2)
+select key + 1, key, key - 1 from intermediate
+union all
+select key - 1, key, key + 1 from intermediate
+PREHOOK: type: QUERY
+PREHOOK: Input: default@intermediate
+PREHOOK: Input: default@intermediate@p=455
+PREHOOK: Input: default@intermediate@p=456
+PREHOOK: Input: default@intermediate@p=457
+PREHOOK: Output: default@bucket1_mm
+POSTHOOK: query: insert into table bucket1_mm partition (key2)
+select key + 1, key, key - 1 from intermediate
+union all
+select key - 1, key, key + 1 from intermediate
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@intermediate
+POSTHOOK: Input: default@intermediate@p=455
+POSTHOOK: Input: default@intermediate@p=456
+POSTHOOK: Input: default@intermediate@p=457
+POSTHOOK: Output: default@bucket1_mm@key2=-1
+POSTHOOK: Output: default@bucket1_mm@key2=1
+POSTHOOK: Output: default@bucket1_mm@key2=101
+POSTHOOK: Output: default@bucket1_mm@key2=102
+POSTHOOK: Output: default@bucket1_mm@key2=104
+POSTHOOK: Output: default@bucket1_mm@key2=11
+POSTHOOK: Output: default@bucket1_mm@key2=9
+POSTHOOK: Output: default@bucket1_mm@key2=96
+POSTHOOK: Output: default@bucket1_mm@key2=97
+POSTHOOK: Output: default@bucket1_mm@key2=98
+POSTHOOK: Output: default@bucket1_mm@key2=99
+POSTHOOK: Lineage: bucket1_mm PARTITION(key2=-1).id EXPRESSION [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: bucket1_mm PARTITION(key2=-1).key EXPRESSION [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: bucket1_mm PARTITION(key2=101).id EXPRESSION [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: bucket1_mm PARTITION(key2=101).key EXPRESSION [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: bucket1_mm PARTITION(key2=102).id EXPRESSION [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: bucket1_mm PARTITION(key2=102).key EXPRESSION [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: bucket1_mm PARTITION(key2=104).id EXPRESSION [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: bucket1_mm PARTITION(key2=104).key EXPRESSION [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: bucket1_mm PARTITION(key2=11).id EXPRESSION [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: bucket1_mm PARTITION(key2=11).key EXPRESSION [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: bucket1_mm PARTITION(key2=1).id EXPRESSION [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: bucket1_mm PARTITION(key2=1).key EXPRESSION [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: bucket1_mm PARTITION(key2=96).id EXPRESSION [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: bucket1_mm PARTITION(key2=96).key EXPRESSION [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: bucket1_mm PARTITION(key2=97).id EXPRESSION [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: bucket1_mm PARTITION(key2=97).key EXPRESSION [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: bucket1_mm PARTITION(key2=98).id EXPRESSION [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: bucket1_mm PARTITION(key2=98).key EXPRESSION [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: bucket1_mm PARTITION(key2=99).id EXPRESSION [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: bucket1_mm PARTITION(key2=99).key EXPRESSION [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: bucket1_mm PARTITION(key2=9).id EXPRESSION [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: bucket1_mm PARTITION(key2=9).key EXPRESSION [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: select * from bucket1_mm
+PREHOOK: type: QUERY
+PREHOOK: Input: default@bucket1_mm
+PREHOOK: Input: default@bucket1_mm@key2=-1
+PREHOOK: Input: default@bucket1_mm@key2=1
+PREHOOK: Input: default@bucket1_mm@key2=101
+PREHOOK: Input: default@bucket1_mm@key2=102
+PREHOOK: Input: default@bucket1_mm@key2=104
+PREHOOK: Input: default@bucket1_mm@key2=11
+PREHOOK: Input: default@bucket1_mm@key2=9
+PREHOOK: Input: default@bucket1_mm@key2=96
+PREHOOK: Input: default@bucket1_mm@key2=97
+PREHOOK: Input: default@bucket1_mm@key2=98
+PREHOOK: Input: default@bucket1_mm@key2=99
+#### A masked pattern was here ####
+POSTHOOK: query: select * from bucket1_mm
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@bucket1_mm
+POSTHOOK: Input: default@bucket1_mm@key2=-1
+POSTHOOK: Input: default@bucket1_mm@key2=1
+POSTHOOK: Input: default@bucket1_mm@key2=101
+POSTHOOK: Input: default@bucket1_mm@key2=102
+POSTHOOK: Input: default@bucket1_mm@key2=104
+POSTHOOK: Input: default@bucket1_mm@key2=11
+POSTHOOK: Input: default@bucket1_mm@key2=9
+POSTHOOK: Input: default@bucket1_mm@key2=96
+POSTHOOK: Input: default@bucket1_mm@key2=97
+POSTHOOK: Input: default@bucket1_mm@key2=98
+POSTHOOK: Input: default@bucket1_mm@key2=99
+#### A masked pattern was here ####
+97 98 99
+101 100 99
+104 103 102
+102 103 104
+99 100 101
+11 10 9
+98 97 96
+99 98 97
+96 97 98
+-1 0 1
+9 10 11
+1 0 -1
+PREHOOK: query: select * from bucket1_mm tablesample (bucket 1 out of 2) s
+PREHOOK: type: QUERY
+PREHOOK: Input: default@bucket1_mm
+PREHOOK: Input: default@bucket1_mm@key2=-1
+PREHOOK: Input: default@bucket1_mm@key2=1
+PREHOOK: Input: default@bucket1_mm@key2=101
+PREHOOK: Input: default@bucket1_mm@key2=102
+PREHOOK: Input: default@bucket1_mm@key2=104
+PREHOOK: Input: default@bucket1_mm@key2=11
+PREHOOK: Input: default@bucket1_mm@key2=9
+PREHOOK: Input: default@bucket1_mm@key2=96
+PREHOOK: Input: default@bucket1_mm@key2=97
+PREHOOK: Input: default@bucket1_mm@key2=98
+PREHOOK: Input: default@bucket1_mm@key2=99
+#### A masked pattern was here ####
+POSTHOOK: query: select * from bucket1_mm tablesample (bucket 1 out of 2) s
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@bucket1_mm
+POSTHOOK: Input: default@bucket1_mm@key2=-1
+POSTHOOK: Input: default@bucket1_mm@key2=1
+POSTHOOK: Input: default@bucket1_mm@key2=101
+POSTHOOK: Input: default@bucket1_mm@key2=102
+POSTHOOK: Input: default@bucket1_mm@key2=104
+POSTHOOK: Input: default@bucket1_mm@key2=11
+POSTHOOK: Input: default@bucket1_mm@key2=9
+POSTHOOK: Input: default@bucket1_mm@key2=96
+POSTHOOK: Input: default@bucket1_mm@key2=97
+POSTHOOK: Input: default@bucket1_mm@key2=98
+POSTHOOK: Input: default@bucket1_mm@key2=99
+#### A masked pattern was here ####
+104 103 102
+102 103 104
+98 97 96
+96 97 98
+PREHOOK: query: select * from bucket1_mm tablesample (bucket 2 out of 2) s
+PREHOOK: type: QUERY
+PREHOOK: Input: default@bucket1_mm
+PREHOOK: Input: default@bucket1_mm@key2=-1
+PREHOOK: Input: default@bucket1_mm@key2=1
+PREHOOK: Input: default@bucket1_mm@key2=101
+PREHOOK: Input: default@bucket1_mm@key2=102
+PREHOOK: Input: default@bucket1_mm@key2=104
+PREHOOK: Input: default@bucket1_mm@key2=11
+PREHOOK: Input: default@bucket1_mm@key2=9
+PREHOOK: Input: default@bucket1_mm@key2=96
+PREHOOK: Input: default@bucket1_mm@key2=97
+PREHOOK: Input: default@bucket1_mm@key2=98
+PREHOOK: Input: default@bucket1_mm@key2=99
+#### A masked pattern was here ####
+POSTHOOK: query: select * from bucket1_mm tablesample (bucket 2 out of 2) s
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@bucket1_mm
+POSTHOOK: Input: default@bucket1_mm@key2=-1
+POSTHOOK: Input: default@bucket1_mm@key2=1
+POSTHOOK: Input: default@bucket1_mm@key2=101
+POSTHOOK: Input: default@bucket1_mm@key2=102
+POSTHOOK: Input: default@bucket1_mm@key2=104
+POSTHOOK: Input: default@bucket1_mm@key2=11
+POSTHOOK: Input: default@bucket1_mm@key2=9
+POSTHOOK: Input: default@bucket1_mm@key2=96
+POSTHOOK: Input: default@bucket1_mm@key2=97
+POSTHOOK: Input: default@bucket1_mm@key2=98
+POSTHOOK: Input: default@bucket1_mm@key2=99
+#### A masked pattern was here ####
+97 98 99
+101 100 99
+99 100 101
+11 10 9
+99 98 97
+-1 0 1
+9 10 11
+1 0 -1
+PREHOOK: query: drop table bucket1_mm
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@bucket1_mm
+PREHOOK: Output: default@bucket1_mm
+POSTHOOK: query: drop table bucket1_mm
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@bucket1_mm
+POSTHOOK: Output: default@bucket1_mm
+PREHOOK: query: drop table bucket2_mm
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: drop table bucket2_mm
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: create table bucket2_mm(key int, id int)
+clustered by (key) into 10 buckets
+tblproperties("transactional"="true", "transactional_properties"="insert_only")
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@bucket2_mm
+POSTHOOK: query: create table bucket2_mm(key int, id int)
+clustered by (key) into 10 buckets
+tblproperties("transactional"="true", "transactional_properties"="insert_only")
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@bucket2_mm
+PREHOOK: query: insert into table bucket2_mm select key, key from intermediate where key == 0
+PREHOOK: type: QUERY
+PREHOOK: Input: default@intermediate
+PREHOOK: Input: default@intermediate@p=455
+PREHOOK: Input: default@intermediate@p=456
+PREHOOK: Input: default@intermediate@p=457
+PREHOOK: Output: default@bucket2_mm
+POSTHOOK: query: insert into table bucket2_mm select key, key from intermediate where key == 0
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@intermediate
+POSTHOOK: Input: default@intermediate@p=455
+POSTHOOK: Input: default@intermediate@p=456
+POSTHOOK: Input: default@intermediate@p=457
+POSTHOOK: Output: default@bucket2_mm
+POSTHOOK: Lineage: bucket2_mm.id SIMPLE [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: bucket2_mm.key SIMPLE [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: select * from bucket2_mm
+PREHOOK: type: QUERY
+PREHOOK: Input: default@bucket2_mm
+#### A masked pattern was here ####
+POSTHOOK: query: select * from bucket2_mm
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@bucket2_mm
+#### A masked pattern was here ####
+0 0
+PREHOOK: query: select * from bucket2_mm tablesample (bucket 1 out of 10) s
+PREHOOK: type: QUERY
+PREHOOK: Input: default@bucket2_mm
+#### A masked pattern was here ####
+POSTHOOK: query: select * from bucket2_mm tablesample (bucket 1 out of 10) s
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@bucket2_mm
+#### A masked pattern was here ####
+0 0
+PREHOOK: query: select * from bucket2_mm tablesample (bucket 4 out of 10) s
+PREHOOK: type: QUERY
+PREHOOK: Input: default@bucket2_mm
+#### A masked pattern was here ####
+POSTHOOK: query: select * from bucket2_mm tablesample (bucket 4 out of 10) s
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@bucket2_mm
+#### A masked pattern was here ####
+PREHOOK: query: insert into table bucket2_mm select key, key from intermediate where key in (0, 103)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@intermediate
+PREHOOK: Input: default@intermediate@p=455
+PREHOOK: Input: default@intermediate@p=456
+PREHOOK: Input: default@intermediate@p=457
+PREHOOK: Output: default@bucket2_mm
+POSTHOOK: query: insert into table bucket2_mm select key, key from intermediate where key in (0, 103)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@intermediate
+POSTHOOK: Input: default@intermediate@p=455
+POSTHOOK: Input: default@intermediate@p=456
+POSTHOOK: Input: default@intermediate@p=457
+POSTHOOK: Output: default@bucket2_mm
+POSTHOOK: Lineage: bucket2_mm.id SIMPLE [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: bucket2_mm.key SIMPLE [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: select * from bucket2_mm
+PREHOOK: type: QUERY
+PREHOOK: Input: default@bucket2_mm
+#### A masked pattern was here ####
+POSTHOOK: query: select * from bucket2_mm
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@bucket2_mm
+#### A masked pattern was here ####
+103 103
+0 0
+0 0
+PREHOOK: query: select * from bucket2_mm tablesample (bucket 1 out of 10) s
+PREHOOK: type: QUERY
+PREHOOK: Input: default@bucket2_mm
+#### A masked pattern was here ####
+POSTHOOK: query: select * from bucket2_mm tablesample (bucket 1 out of 10) s
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@bucket2_mm
+#### A masked pattern was here ####
+0 0
+0 0
+PREHOOK: query: select * from bucket2_mm tablesample (bucket 4 out of 10) s
+PREHOOK: type: QUERY
+PREHOOK: Input: default@bucket2_mm
+#### A masked pattern was here ####
+POSTHOOK: query: select * from bucket2_mm tablesample (bucket 4 out of 10) s
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@bucket2_mm
+#### A masked pattern was here ####
+103 103
+PREHOOK: query: drop table bucket2_mm
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@bucket2_mm
+PREHOOK: Output: default@bucket2_mm
+POSTHOOK: query: drop table bucket2_mm
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@bucket2_mm
+POSTHOOK: Output: default@bucket2_mm
+PREHOOK: query: drop table intermediate
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@intermediate
+PREHOOK: Output: default@intermediate
+POSTHOOK: query: drop table intermediate
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@intermediate
+POSTHOOK: Output: default@intermediate
http://git-wip-us.apache.org/repos/asf/hive/blob/46e76571/ql/src/test/results/clientpositive/mm_conversions.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/mm_conversions.q.out b/ql/src/test/results/clientpositive/mm_conversions.q.out
new file mode 100644
index 0000000..bb9629a
--- /dev/null
+++ b/ql/src/test/results/clientpositive/mm_conversions.q.out
@@ -0,0 +1,861 @@
+PREHOOK: query: -- Force multiple writers when reading
+drop table intermediate
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: -- Force multiple writers when reading
+drop table intermediate
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: create table intermediate(key int) partitioned by (p int) stored as orc
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@intermediate
+POSTHOOK: query: create table intermediate(key int) partitioned by (p int) stored as orc
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@intermediate
+PREHOOK: query: insert into table intermediate partition(p='455') select distinct key from src where key >= 0 order by key desc limit 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: default@intermediate@p=455
+POSTHOOK: query: insert into table intermediate partition(p='455') select distinct key from src where key >= 0 order by key desc limit 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: default@intermediate@p=455
+POSTHOOK: Lineage: intermediate PARTITION(p=455).key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+PREHOOK: query: insert into table intermediate partition(p='456') select distinct key from src where key is not null order by key asc limit 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: default@intermediate@p=456
+POSTHOOK: query: insert into table intermediate partition(p='456') select distinct key from src where key is not null order by key asc limit 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: default@intermediate@p=456
+POSTHOOK: Lineage: intermediate PARTITION(p=456).key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+PREHOOK: query: insert into table intermediate partition(p='457') select distinct key from src where key >= 100 order by key asc limit 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: default@intermediate@p=457
+POSTHOOK: query: insert into table intermediate partition(p='457') select distinct key from src where key >= 100 order by key asc limit 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: default@intermediate@p=457
+POSTHOOK: Lineage: intermediate PARTITION(p=457).key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+PREHOOK: query: drop table simple_from_mm
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: drop table simple_from_mm
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: create table simple_from_mm(key int) stored as orc tblproperties ("transactional"="true", "transactional_properties"="insert_only")
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@simple_from_mm
+POSTHOOK: query: create table simple_from_mm(key int) stored as orc tblproperties ("transactional"="true", "transactional_properties"="insert_only")
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@simple_from_mm
+PREHOOK: query: insert into table simple_from_mm select key from intermediate
+PREHOOK: type: QUERY
+PREHOOK: Input: default@intermediate
+PREHOOK: Input: default@intermediate@p=455
+PREHOOK: Input: default@intermediate@p=456
+PREHOOK: Input: default@intermediate@p=457
+PREHOOK: Output: default@simple_from_mm
+POSTHOOK: query: insert into table simple_from_mm select key from intermediate
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@intermediate
+POSTHOOK: Input: default@intermediate@p=455
+POSTHOOK: Input: default@intermediate@p=456
+POSTHOOK: Input: default@intermediate@p=457
+POSTHOOK: Output: default@simple_from_mm
+POSTHOOK: Lineage: simple_from_mm.key SIMPLE [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: insert into table simple_from_mm select key from intermediate
+PREHOOK: type: QUERY
+PREHOOK: Input: default@intermediate
+PREHOOK: Input: default@intermediate@p=455
+PREHOOK: Input: default@intermediate@p=456
+PREHOOK: Input: default@intermediate@p=457
+PREHOOK: Output: default@simple_from_mm
+POSTHOOK: query: insert into table simple_from_mm select key from intermediate
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@intermediate
+POSTHOOK: Input: default@intermediate@p=455
+POSTHOOK: Input: default@intermediate@p=456
+POSTHOOK: Input: default@intermediate@p=457
+POSTHOOK: Output: default@simple_from_mm
+POSTHOOK: Lineage: simple_from_mm.key SIMPLE [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: select * from simple_from_mm
+PREHOOK: type: QUERY
+PREHOOK: Input: default@simple_from_mm
+#### A masked pattern was here ####
+POSTHOOK: query: select * from simple_from_mm
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@simple_from_mm
+#### A masked pattern was here ####
+98
+100
+0
+98
+100
+0
+PREHOOK: query: alter table simple_from_mm unset tblproperties('transactional_properties', 'transactional')
+PREHOOK: type: ALTERTABLE_PROPERTIES
+PREHOOK: Input: default@simple_from_mm
+PREHOOK: Output: default@simple_from_mm
+POSTHOOK: query: alter table simple_from_mm unset tblproperties('transactional_properties', 'transactional')
+POSTHOOK: type: ALTERTABLE_PROPERTIES
+POSTHOOK: Input: default@simple_from_mm
+POSTHOOK: Output: default@simple_from_mm
+PREHOOK: query: select * from simple_from_mm
+PREHOOK: type: QUERY
+PREHOOK: Input: default@simple_from_mm
+#### A masked pattern was here ####
+POSTHOOK: query: select * from simple_from_mm
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@simple_from_mm
+#### A masked pattern was here ####
+PREHOOK: query: insert into table simple_from_mm select key from intermediate
+PREHOOK: type: QUERY
+PREHOOK: Input: default@intermediate
+PREHOOK: Input: default@intermediate@p=455
+PREHOOK: Input: default@intermediate@p=456
+PREHOOK: Input: default@intermediate@p=457
+PREHOOK: Output: default@simple_from_mm
+POSTHOOK: query: insert into table simple_from_mm select key from intermediate
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@intermediate
+POSTHOOK: Input: default@intermediate@p=455
+POSTHOOK: Input: default@intermediate@p=456
+POSTHOOK: Input: default@intermediate@p=457
+POSTHOOK: Output: default@simple_from_mm
+POSTHOOK: Lineage: simple_from_mm.key SIMPLE [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: select * from simple_from_mm
+PREHOOK: type: QUERY
+PREHOOK: Input: default@simple_from_mm
+#### A masked pattern was here ####
+POSTHOOK: query: select * from simple_from_mm
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@simple_from_mm
+#### A masked pattern was here ####
+98
+100
+0
+PREHOOK: query: alter table simple_from_mm set tblproperties("transactional"="true", "transactional_properties"="insert_only")
+PREHOOK: type: ALTERTABLE_PROPERTIES
+PREHOOK: Input: default@simple_from_mm
+PREHOOK: Output: default@simple_from_mm
+POSTHOOK: query: alter table simple_from_mm set tblproperties("transactional"="true", "transactional_properties"="insert_only")
+POSTHOOK: type: ALTERTABLE_PROPERTIES
+POSTHOOK: Input: default@simple_from_mm
+POSTHOOK: Output: default@simple_from_mm
+PREHOOK: query: select * from simple_from_mm
+PREHOOK: type: QUERY
+PREHOOK: Input: default@simple_from_mm
+#### A masked pattern was here ####
+POSTHOOK: query: select * from simple_from_mm
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@simple_from_mm
+#### A masked pattern was here ####
+98
+100
+0
+PREHOOK: query: insert into table simple_from_mm select key from intermediate
+PREHOOK: type: QUERY
+PREHOOK: Input: default@intermediate
+PREHOOK: Input: default@intermediate@p=455
+PREHOOK: Input: default@intermediate@p=456
+PREHOOK: Input: default@intermediate@p=457
+PREHOOK: Output: default@simple_from_mm
+POSTHOOK: query: insert into table simple_from_mm select key from intermediate
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@intermediate
+POSTHOOK: Input: default@intermediate@p=455
+POSTHOOK: Input: default@intermediate@p=456
+POSTHOOK: Input: default@intermediate@p=457
+POSTHOOK: Output: default@simple_from_mm
+POSTHOOK: Lineage: simple_from_mm.key SIMPLE [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: select * from simple_from_mm
+PREHOOK: type: QUERY
+PREHOOK: Input: default@simple_from_mm
+#### A masked pattern was here ####
+POSTHOOK: query: select * from simple_from_mm
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@simple_from_mm
+#### A masked pattern was here ####
+98
+100
+0
+100
+98
+0
+PREHOOK: query: alter table simple_from_mm set tblproperties("transactional"="false", 'transactional_properties'='false')
+PREHOOK: type: ALTERTABLE_PROPERTIES
+PREHOOK: Input: default@simple_from_mm
+PREHOOK: Output: default@simple_from_mm
+POSTHOOK: query: alter table simple_from_mm set tblproperties("transactional"="false", 'transactional_properties'='false')
+POSTHOOK: type: ALTERTABLE_PROPERTIES
+POSTHOOK: Input: default@simple_from_mm
+POSTHOOK: Output: default@simple_from_mm
+PREHOOK: query: select * from simple_from_mm
+PREHOOK: type: QUERY
+PREHOOK: Input: default@simple_from_mm
+#### A masked pattern was here ####
+POSTHOOK: query: select * from simple_from_mm
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@simple_from_mm
+#### A masked pattern was here ####
+100
+98
+0
+98
+100
+0
+PREHOOK: query: insert into table simple_from_mm select key from intermediate
+PREHOOK: type: QUERY
+PREHOOK: Input: default@intermediate
+PREHOOK: Input: default@intermediate@p=455
+PREHOOK: Input: default@intermediate@p=456
+PREHOOK: Input: default@intermediate@p=457
+PREHOOK: Output: default@simple_from_mm
+POSTHOOK: query: insert into table simple_from_mm select key from intermediate
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@intermediate
+POSTHOOK: Input: default@intermediate@p=455
+POSTHOOK: Input: default@intermediate@p=456
+POSTHOOK: Input: default@intermediate@p=457
+POSTHOOK: Output: default@simple_from_mm
+POSTHOOK: Lineage: simple_from_mm.key SIMPLE [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: select * from simple_from_mm
+PREHOOK: type: QUERY
+PREHOOK: Input: default@simple_from_mm
+#### A masked pattern was here ####
+POSTHOOK: query: select * from simple_from_mm
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@simple_from_mm
+#### A masked pattern was here ####
+98
+100
+0
+98
+100
+0
+100
+98
+0
+PREHOOK: query: drop table simple_from_mm
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@simple_from_mm
+PREHOOK: Output: default@simple_from_mm
+POSTHOOK: query: drop table simple_from_mm
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@simple_from_mm
+POSTHOOK: Output: default@simple_from_mm
+PREHOOK: query: drop table simple_to_mm
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: drop table simple_to_mm
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: create table simple_to_mm(key int) stored as orc
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@simple_to_mm
+POSTHOOK: query: create table simple_to_mm(key int) stored as orc
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@simple_to_mm
+PREHOOK: query: insert into table simple_to_mm select key from intermediate
+PREHOOK: type: QUERY
+PREHOOK: Input: default@intermediate
+PREHOOK: Input: default@intermediate@p=455
+PREHOOK: Input: default@intermediate@p=456
+PREHOOK: Input: default@intermediate@p=457
+PREHOOK: Output: default@simple_to_mm
+POSTHOOK: query: insert into table simple_to_mm select key from intermediate
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@intermediate
+POSTHOOK: Input: default@intermediate@p=455
+POSTHOOK: Input: default@intermediate@p=456
+POSTHOOK: Input: default@intermediate@p=457
+POSTHOOK: Output: default@simple_to_mm
+POSTHOOK: Lineage: simple_to_mm.key SIMPLE [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: insert into table simple_to_mm select key from intermediate
+PREHOOK: type: QUERY
+PREHOOK: Input: default@intermediate
+PREHOOK: Input: default@intermediate@p=455
+PREHOOK: Input: default@intermediate@p=456
+PREHOOK: Input: default@intermediate@p=457
+PREHOOK: Output: default@simple_to_mm
+POSTHOOK: query: insert into table simple_to_mm select key from intermediate
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@intermediate
+POSTHOOK: Input: default@intermediate@p=455
+POSTHOOK: Input: default@intermediate@p=456
+POSTHOOK: Input: default@intermediate@p=457
+POSTHOOK: Output: default@simple_to_mm
+POSTHOOK: Lineage: simple_to_mm.key SIMPLE [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: select * from simple_to_mm
+PREHOOK: type: QUERY
+PREHOOK: Input: default@simple_to_mm
+#### A masked pattern was here ####
+POSTHOOK: query: select * from simple_to_mm
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@simple_to_mm
+#### A masked pattern was here ####
+98
+100
+0
+100
+98
+0
+PREHOOK: query: alter table simple_to_mm set tblproperties("transactional"="true", "transactional_properties"="insert_only")
+PREHOOK: type: ALTERTABLE_PROPERTIES
+PREHOOK: Input: default@simple_to_mm
+PREHOOK: Output: default@simple_to_mm
+POSTHOOK: query: alter table simple_to_mm set tblproperties("transactional"="true", "transactional_properties"="insert_only")
+POSTHOOK: type: ALTERTABLE_PROPERTIES
+POSTHOOK: Input: default@simple_to_mm
+POSTHOOK: Output: default@simple_to_mm
+PREHOOK: query: select * from simple_to_mm
+PREHOOK: type: QUERY
+PREHOOK: Input: default@simple_to_mm
+#### A masked pattern was here ####
+POSTHOOK: query: select * from simple_to_mm
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@simple_to_mm
+#### A masked pattern was here ####
+98
+100
+0
+100
+98
+0
+PREHOOK: query: insert into table simple_to_mm select key from intermediate
+PREHOOK: type: QUERY
+PREHOOK: Input: default@intermediate
+PREHOOK: Input: default@intermediate@p=455
+PREHOOK: Input: default@intermediate@p=456
+PREHOOK: Input: default@intermediate@p=457
+PREHOOK: Output: default@simple_to_mm
+POSTHOOK: query: insert into table simple_to_mm select key from intermediate
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@intermediate
+POSTHOOK: Input: default@intermediate@p=455
+POSTHOOK: Input: default@intermediate@p=456
+POSTHOOK: Input: default@intermediate@p=457
+POSTHOOK: Output: default@simple_to_mm
+POSTHOOK: Lineage: simple_to_mm.key SIMPLE [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: insert into table simple_to_mm select key from intermediate
+PREHOOK: type: QUERY
+PREHOOK: Input: default@intermediate
+PREHOOK: Input: default@intermediate@p=455
+PREHOOK: Input: default@intermediate@p=456
+PREHOOK: Input: default@intermediate@p=457
+PREHOOK: Output: default@simple_to_mm
+POSTHOOK: query: insert into table simple_to_mm select key from intermediate
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@intermediate
+POSTHOOK: Input: default@intermediate@p=455
+POSTHOOK: Input: default@intermediate@p=456
+POSTHOOK: Input: default@intermediate@p=457
+POSTHOOK: Output: default@simple_to_mm
+POSTHOOK: Lineage: simple_to_mm.key SIMPLE [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: select * from simple_to_mm
+PREHOOK: type: QUERY
+PREHOOK: Input: default@simple_to_mm
+#### A masked pattern was here ####
+POSTHOOK: query: select * from simple_to_mm
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@simple_to_mm
+#### A masked pattern was here ####
+98
+100
+0
+100
+98
+0
+100
+98
+0
+98
+100
+0
+PREHOOK: query: drop table simple_to_mm
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@simple_to_mm
+PREHOOK: Output: default@simple_to_mm
+POSTHOOK: query: drop table simple_to_mm
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@simple_to_mm
+POSTHOOK: Output: default@simple_to_mm
+PREHOOK: query: drop table part_from_mm
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: drop table part_from_mm
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: create table part_from_mm(key int) partitioned by (key_mm int) stored as orc tblproperties ("transactional"="true", "transactional_properties"="insert_only")
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_from_mm
+POSTHOOK: query: create table part_from_mm(key int) partitioned by (key_mm int) stored as orc tblproperties ("transactional"="true", "transactional_properties"="insert_only")
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_from_mm
+PREHOOK: query: insert into table part_from_mm partition(key_mm='455') select key from intermediate
+PREHOOK: type: QUERY
+PREHOOK: Input: default@intermediate
+PREHOOK: Input: default@intermediate@p=455
+PREHOOK: Input: default@intermediate@p=456
+PREHOOK: Input: default@intermediate@p=457
+PREHOOK: Output: default@part_from_mm@key_mm=455
+POSTHOOK: query: insert into table part_from_mm partition(key_mm='455') select key from intermediate
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@intermediate
+POSTHOOK: Input: default@intermediate@p=455
+POSTHOOK: Input: default@intermediate@p=456
+POSTHOOK: Input: default@intermediate@p=457
+POSTHOOK: Output: default@part_from_mm@key_mm=455
+POSTHOOK: Lineage: part_from_mm PARTITION(key_mm=455).key SIMPLE [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: insert into table part_from_mm partition(key_mm='455') select key from intermediate
+PREHOOK: type: QUERY
+PREHOOK: Input: default@intermediate
+PREHOOK: Input: default@intermediate@p=455
+PREHOOK: Input: default@intermediate@p=456
+PREHOOK: Input: default@intermediate@p=457
+PREHOOK: Output: default@part_from_mm@key_mm=455
+POSTHOOK: query: insert into table part_from_mm partition(key_mm='455') select key from intermediate
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@intermediate
+POSTHOOK: Input: default@intermediate@p=455
+POSTHOOK: Input: default@intermediate@p=456
+POSTHOOK: Input: default@intermediate@p=457
+POSTHOOK: Output: default@part_from_mm@key_mm=455
+POSTHOOK: Lineage: part_from_mm PARTITION(key_mm=455).key SIMPLE [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: insert into table part_from_mm partition(key_mm='456') select key from intermediate
+PREHOOK: type: QUERY
+PREHOOK: Input: default@intermediate
+PREHOOK: Input: default@intermediate@p=455
+PREHOOK: Input: default@intermediate@p=456
+PREHOOK: Input: default@intermediate@p=457
+PREHOOK: Output: default@part_from_mm@key_mm=456
+POSTHOOK: query: insert into table part_from_mm partition(key_mm='456') select key from intermediate
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@intermediate
+POSTHOOK: Input: default@intermediate@p=455
+POSTHOOK: Input: default@intermediate@p=456
+POSTHOOK: Input: default@intermediate@p=457
+POSTHOOK: Output: default@part_from_mm@key_mm=456
+POSTHOOK: Lineage: part_from_mm PARTITION(key_mm=456).key SIMPLE [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: select * from part_from_mm
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_from_mm
+PREHOOK: Input: default@part_from_mm@key_mm=455
+PREHOOK: Input: default@part_from_mm@key_mm=456
+#### A masked pattern was here ####
+POSTHOOK: query: select * from part_from_mm
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_from_mm
+POSTHOOK: Input: default@part_from_mm@key_mm=455
+POSTHOOK: Input: default@part_from_mm@key_mm=456
+#### A masked pattern was here ####
+98 456
+100 456
+0 456
+98 455
+100 455
+0 455
+98 455
+100 455
+0 455
+PREHOOK: query: alter table part_from_mm unset tblproperties('transactional_properties', 'transactional')
+PREHOOK: type: ALTERTABLE_PROPERTIES
+PREHOOK: Input: default@part_from_mm
+PREHOOK: Output: default@part_from_mm
+POSTHOOK: query: alter table part_from_mm unset tblproperties('transactional_properties', 'transactional')
+POSTHOOK: type: ALTERTABLE_PROPERTIES
+POSTHOOK: Input: default@part_from_mm
+POSTHOOK: Output: default@part_from_mm
+PREHOOK: query: select * from part_from_mm
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_from_mm
+PREHOOK: Input: default@part_from_mm@key_mm=455
+PREHOOK: Input: default@part_from_mm@key_mm=456
+#### A masked pattern was here ####
+POSTHOOK: query: select * from part_from_mm
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_from_mm
+POSTHOOK: Input: default@part_from_mm@key_mm=455
+POSTHOOK: Input: default@part_from_mm@key_mm=456
+#### A masked pattern was here ####
+PREHOOK: query: insert into table part_from_mm partition(key_mm='456') select key from intermediate
+PREHOOK: type: QUERY
+PREHOOK: Input: default@intermediate
+PREHOOK: Input: default@intermediate@p=455
+PREHOOK: Input: default@intermediate@p=456
+PREHOOK: Input: default@intermediate@p=457
+PREHOOK: Output: default@part_from_mm@key_mm=456
+POSTHOOK: query: insert into table part_from_mm partition(key_mm='456') select key from intermediate
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@intermediate
+POSTHOOK: Input: default@intermediate@p=455
+POSTHOOK: Input: default@intermediate@p=456
+POSTHOOK: Input: default@intermediate@p=457
+POSTHOOK: Output: default@part_from_mm@key_mm=456
+POSTHOOK: Lineage: part_from_mm PARTITION(key_mm=456).key SIMPLE [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: insert into table part_from_mm partition(key_mm='457') select key from intermediate
+PREHOOK: type: QUERY
+PREHOOK: Input: default@intermediate
+PREHOOK: Input: default@intermediate@p=455
+PREHOOK: Input: default@intermediate@p=456
+PREHOOK: Input: default@intermediate@p=457
+PREHOOK: Output: default@part_from_mm@key_mm=457
+POSTHOOK: query: insert into table part_from_mm partition(key_mm='457') select key from intermediate
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@intermediate
+POSTHOOK: Input: default@intermediate@p=455
+POSTHOOK: Input: default@intermediate@p=456
+POSTHOOK: Input: default@intermediate@p=457
+POSTHOOK: Output: default@part_from_mm@key_mm=457
+POSTHOOK: Lineage: part_from_mm PARTITION(key_mm=457).key SIMPLE [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: select * from part_from_mm
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_from_mm
+PREHOOK: Input: default@part_from_mm@key_mm=455
+PREHOOK: Input: default@part_from_mm@key_mm=456
+PREHOOK: Input: default@part_from_mm@key_mm=457
+#### A masked pattern was here ####
+POSTHOOK: query: select * from part_from_mm
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_from_mm
+POSTHOOK: Input: default@part_from_mm@key_mm=455
+POSTHOOK: Input: default@part_from_mm@key_mm=456
+POSTHOOK: Input: default@part_from_mm@key_mm=457
+#### A masked pattern was here ####
+98 456
+100 456
+0 456
+98 457
+100 457
+0 457
+PREHOOK: query: alter table part_from_mm set tblproperties("transactional"="true", "transactional_properties"="insert_only")
+PREHOOK: type: ALTERTABLE_PROPERTIES
+PREHOOK: Input: default@part_from_mm
+PREHOOK: Output: default@part_from_mm
+POSTHOOK: query: alter table part_from_mm set tblproperties("transactional"="true", "transactional_properties"="insert_only")
+POSTHOOK: type: ALTERTABLE_PROPERTIES
+POSTHOOK: Input: default@part_from_mm
+POSTHOOK: Output: default@part_from_mm
+PREHOOK: query: select * from part_from_mm
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_from_mm
+PREHOOK: Input: default@part_from_mm@key_mm=455
+PREHOOK: Input: default@part_from_mm@key_mm=456
+PREHOOK: Input: default@part_from_mm@key_mm=457
+#### A masked pattern was here ####
+POSTHOOK: query: select * from part_from_mm
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_from_mm
+POSTHOOK: Input: default@part_from_mm@key_mm=455
+POSTHOOK: Input: default@part_from_mm@key_mm=456
+POSTHOOK: Input: default@part_from_mm@key_mm=457
+#### A masked pattern was here ####
+98 456
+100 456
+0 456
+98 457
+100 457
+0 457
+PREHOOK: query: insert into table part_from_mm partition(key_mm='456') select key from intermediate
+PREHOOK: type: QUERY
+PREHOOK: Input: default@intermediate
+PREHOOK: Input: default@intermediate@p=455
+PREHOOK: Input: default@intermediate@p=456
+PREHOOK: Input: default@intermediate@p=457
+PREHOOK: Output: default@part_from_mm@key_mm=456
+POSTHOOK: query: insert into table part_from_mm partition(key_mm='456') select key from intermediate
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@intermediate
+POSTHOOK: Input: default@intermediate@p=455
+POSTHOOK: Input: default@intermediate@p=456
+POSTHOOK: Input: default@intermediate@p=457
+POSTHOOK: Output: default@part_from_mm@key_mm=456
+POSTHOOK: Lineage: part_from_mm PARTITION(key_mm=456).key SIMPLE [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: insert into table part_from_mm partition(key_mm='455') select key from intermediate
+PREHOOK: type: QUERY
+PREHOOK: Input: default@intermediate
+PREHOOK: Input: default@intermediate@p=455
+PREHOOK: Input: default@intermediate@p=456
+PREHOOK: Input: default@intermediate@p=457
+PREHOOK: Output: default@part_from_mm@key_mm=455
+POSTHOOK: query: insert into table part_from_mm partition(key_mm='455') select key from intermediate
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@intermediate
+POSTHOOK: Input: default@intermediate@p=455
+POSTHOOK: Input: default@intermediate@p=456
+POSTHOOK: Input: default@intermediate@p=457
+POSTHOOK: Output: default@part_from_mm@key_mm=455
+POSTHOOK: Lineage: part_from_mm PARTITION(key_mm=455).key SIMPLE [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: select * from part_from_mm
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_from_mm
+PREHOOK: Input: default@part_from_mm@key_mm=455
+PREHOOK: Input: default@part_from_mm@key_mm=456
+PREHOOK: Input: default@part_from_mm@key_mm=457
+#### A masked pattern was here ####
+POSTHOOK: query: select * from part_from_mm
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_from_mm
+POSTHOOK: Input: default@part_from_mm@key_mm=455
+POSTHOOK: Input: default@part_from_mm@key_mm=456
+POSTHOOK: Input: default@part_from_mm@key_mm=457
+#### A masked pattern was here ####
+98 457
+100 457
+0 457
+100 456
+98 456
+0 456
+98 456
+100 456
+0 456
+98 455
+100 455
+0 455
+PREHOOK: query: alter table part_from_mm set tblproperties("transactional"="false", 'transactional_properties'='false')
+PREHOOK: type: ALTERTABLE_PROPERTIES
+PREHOOK: Input: default@part_from_mm
+PREHOOK: Output: default@part_from_mm
+POSTHOOK: query: alter table part_from_mm set tblproperties("transactional"="false", 'transactional_properties'='false')
+POSTHOOK: type: ALTERTABLE_PROPERTIES
+POSTHOOK: Input: default@part_from_mm
+POSTHOOK: Output: default@part_from_mm
+PREHOOK: query: select * from part_from_mm
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_from_mm
+PREHOOK: Input: default@part_from_mm@key_mm=455
+PREHOOK: Input: default@part_from_mm@key_mm=456
+PREHOOK: Input: default@part_from_mm@key_mm=457
+#### A masked pattern was here ####
+POSTHOOK: query: select * from part_from_mm
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_from_mm
+POSTHOOK: Input: default@part_from_mm@key_mm=455
+POSTHOOK: Input: default@part_from_mm@key_mm=456
+POSTHOOK: Input: default@part_from_mm@key_mm=457
+#### A masked pattern was here ####
+98 455
+100 455
+0 455
+98 456
+100 456
+0 456
+100 456
+98 456
+0 456
+98 457
+100 457
+0 457
+PREHOOK: query: insert into table part_from_mm partition(key_mm='457') select key from intermediate
+PREHOOK: type: QUERY
+PREHOOK: Input: default@intermediate
+PREHOOK: Input: default@intermediate@p=455
+PREHOOK: Input: default@intermediate@p=456
+PREHOOK: Input: default@intermediate@p=457
+PREHOOK: Output: default@part_from_mm@key_mm=457
+POSTHOOK: query: insert into table part_from_mm partition(key_mm='457') select key from intermediate
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@intermediate
+POSTHOOK: Input: default@intermediate@p=455
+POSTHOOK: Input: default@intermediate@p=456
+POSTHOOK: Input: default@intermediate@p=457
+POSTHOOK: Output: default@part_from_mm@key_mm=457
+POSTHOOK: Lineage: part_from_mm PARTITION(key_mm=457).key SIMPLE [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: select * from part_from_mm
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_from_mm
+PREHOOK: Input: default@part_from_mm@key_mm=455
+PREHOOK: Input: default@part_from_mm@key_mm=456
+PREHOOK: Input: default@part_from_mm@key_mm=457
+#### A masked pattern was here ####
+POSTHOOK: query: select * from part_from_mm
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_from_mm
+POSTHOOK: Input: default@part_from_mm@key_mm=455
+POSTHOOK: Input: default@part_from_mm@key_mm=456
+POSTHOOK: Input: default@part_from_mm@key_mm=457
+#### A masked pattern was here ####
+98 457
+100 457
+0 457
+98 456
+100 456
+0 456
+100 456
+98 456
+0 456
+98 457
+100 457
+0 457
+98 455
+100 455
+0 455
+PREHOOK: query: drop table part_from_mm
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_from_mm
+PREHOOK: Output: default@part_from_mm
+POSTHOOK: query: drop table part_from_mm
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_from_mm
+POSTHOOK: Output: default@part_from_mm
+PREHOOK: query: drop table part_to_mm
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: drop table part_to_mm
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: create table part_to_mm(key int) partitioned by (key_mm int) stored as orc
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_to_mm
+POSTHOOK: query: create table part_to_mm(key int) partitioned by (key_mm int) stored as orc
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_to_mm
+PREHOOK: query: insert into table part_to_mm partition(key_mm='455') select key from intermediate
+PREHOOK: type: QUERY
+PREHOOK: Input: default@intermediate
+PREHOOK: Input: default@intermediate@p=455
+PREHOOK: Input: default@intermediate@p=456
+PREHOOK: Input: default@intermediate@p=457
+PREHOOK: Output: default@part_to_mm@key_mm=455
+POSTHOOK: query: insert into table part_to_mm partition(key_mm='455') select key from intermediate
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@intermediate
+POSTHOOK: Input: default@intermediate@p=455
+POSTHOOK: Input: default@intermediate@p=456
+POSTHOOK: Input: default@intermediate@p=457
+POSTHOOK: Output: default@part_to_mm@key_mm=455
+POSTHOOK: Lineage: part_to_mm PARTITION(key_mm=455).key SIMPLE [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: insert into table part_to_mm partition(key_mm='456') select key from intermediate
+PREHOOK: type: QUERY
+PREHOOK: Input: default@intermediate
+PREHOOK: Input: default@intermediate@p=455
+PREHOOK: Input: default@intermediate@p=456
+PREHOOK: Input: default@intermediate@p=457
+PREHOOK: Output: default@part_to_mm@key_mm=456
+POSTHOOK: query: insert into table part_to_mm partition(key_mm='456') select key from intermediate
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@intermediate
+POSTHOOK: Input: default@intermediate@p=455
+POSTHOOK: Input: default@intermediate@p=456
+POSTHOOK: Input: default@intermediate@p=457
+POSTHOOK: Output: default@part_to_mm@key_mm=456
+POSTHOOK: Lineage: part_to_mm PARTITION(key_mm=456).key SIMPLE [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: select * from part_to_mm
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_to_mm
+PREHOOK: Input: default@part_to_mm@key_mm=455
+PREHOOK: Input: default@part_to_mm@key_mm=456
+#### A masked pattern was here ####
+POSTHOOK: query: select * from part_to_mm
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_to_mm
+POSTHOOK: Input: default@part_to_mm@key_mm=455
+POSTHOOK: Input: default@part_to_mm@key_mm=456
+#### A masked pattern was here ####
+98 456
+100 456
+0 456
+100 455
+98 455
+0 455
+PREHOOK: query: alter table part_to_mm set tblproperties("transactional"="true", "transactional_properties"="insert_only")
+PREHOOK: type: ALTERTABLE_PROPERTIES
+PREHOOK: Input: default@part_to_mm
+PREHOOK: Output: default@part_to_mm
+POSTHOOK: query: alter table part_to_mm set tblproperties("transactional"="true", "transactional_properties"="insert_only")
+POSTHOOK: type: ALTERTABLE_PROPERTIES
+POSTHOOK: Input: default@part_to_mm
+POSTHOOK: Output: default@part_to_mm
+PREHOOK: query: select * from part_to_mm
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_to_mm
+PREHOOK: Input: default@part_to_mm@key_mm=455
+PREHOOK: Input: default@part_to_mm@key_mm=456
+#### A masked pattern was here ####
+POSTHOOK: query: select * from part_to_mm
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_to_mm
+POSTHOOK: Input: default@part_to_mm@key_mm=455
+POSTHOOK: Input: default@part_to_mm@key_mm=456
+#### A masked pattern was here ####
+98 456
+100 456
+0 456
+100 455
+98 455
+0 455
+PREHOOK: query: insert into table part_to_mm partition(key_mm='456') select key from intermediate
+PREHOOK: type: QUERY
+PREHOOK: Input: default@intermediate
+PREHOOK: Input: default@intermediate@p=455
+PREHOOK: Input: default@intermediate@p=456
+PREHOOK: Input: default@intermediate@p=457
+PREHOOK: Output: default@part_to_mm@key_mm=456
+POSTHOOK: query: insert into table part_to_mm partition(key_mm='456') select key from intermediate
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@intermediate
+POSTHOOK: Input: default@intermediate@p=455
+POSTHOOK: Input: default@intermediate@p=456
+POSTHOOK: Input: default@intermediate@p=457
+POSTHOOK: Output: default@part_to_mm@key_mm=456
+POSTHOOK: Lineage: part_to_mm PARTITION(key_mm=456).key SIMPLE [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: insert into table part_to_mm partition(key_mm='457') select key from intermediate
+PREHOOK: type: QUERY
+PREHOOK: Input: default@intermediate
+PREHOOK: Input: default@intermediate@p=455
+PREHOOK: Input: default@intermediate@p=456
+PREHOOK: Input: default@intermediate@p=457
+PREHOOK: Output: default@part_to_mm@key_mm=457
+POSTHOOK: query: insert into table part_to_mm partition(key_mm='457') select key from intermediate
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@intermediate
+POSTHOOK: Input: default@intermediate@p=455
+POSTHOOK: Input: default@intermediate@p=456
+POSTHOOK: Input: default@intermediate@p=457
+POSTHOOK: Output: default@part_to_mm@key_mm=457
+POSTHOOK: Lineage: part_to_mm PARTITION(key_mm=457).key SIMPLE [(intermediate)intermediate.FieldSchema(name:key, type:int, comment:null), ]
+PREHOOK: query: select * from part_to_mm
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_to_mm
+PREHOOK: Input: default@part_to_mm@key_mm=455
+PREHOOK: Input: default@part_to_mm@key_mm=456
+PREHOOK: Input: default@part_to_mm@key_mm=457
+#### A masked pattern was here ####
+POSTHOOK: query: select * from part_to_mm
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_to_mm
+POSTHOOK: Input: default@part_to_mm@key_mm=455
+POSTHOOK: Input: default@part_to_mm@key_mm=456
+POSTHOOK: Input: default@part_to_mm@key_mm=457
+#### A masked pattern was here ####
+98 456
+100 456
+0 456
+100 455
+98 455
+0 455
+100 457
+98 457
+0 457
+98 456
+100 456
+0 456
+PREHOOK: query: drop table part_to_mm
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_to_mm
+PREHOOK: Output: default@part_to_mm
+POSTHOOK: query: drop table part_to_mm
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_to_mm
+POSTHOOK: Output: default@part_to_mm
+PREHOOK: query: drop table intermediate
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@intermediate
+PREHOOK: Output: default@intermediate
+POSTHOOK: query: drop table intermediate
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@intermediate
+POSTHOOK: Output: default@intermediate