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