You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by jc...@apache.org on 2018/04/10 09:29:39 UTC
[01/24] hive git commit: HIVE-18839: Implement incremental rebuild
for materialized views (only insert operations in source tables) (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Repository: hive
Updated Branches:
refs/heads/master dcd9b5941 -> be420098f
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnHandler.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnHandler.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnHandler.java
index a79242b..9256b7a 100644
--- a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnHandler.java
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnHandler.java
@@ -63,9 +63,11 @@ import org.apache.hadoop.classification.InterfaceStability;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hive.common.ValidReadTxnList;
import org.apache.hadoop.hive.common.ValidTxnList;
+import org.apache.hadoop.hive.common.ValidWriteIdList;
import org.apache.hadoop.hive.common.classification.RetrySemantics;
import org.apache.hadoop.hive.metastore.DatabaseProduct;
import org.apache.hadoop.hive.metastore.MaterializationsInvalidationCache;
+import org.apache.hadoop.hive.metastore.MaterializationsRebuildLockHandler;
import org.apache.hadoop.hive.metastore.Warehouse;
import org.apache.hadoop.hive.metastore.MetaStoreListenerNotifier;
import org.apache.hadoop.hive.metastore.TransactionalMetaStoreEventListener;
@@ -854,9 +856,18 @@ abstract class TxnHandler implements TxnStore, TxnStore.MutexAPI {
@Override
@RetrySemantics.Idempotent("No-op if already committed")
public void commitTxn(CommitTxnRequest rqst)
- throws NoSuchTxnException, TxnAbortedException, MetaException {
+ throws NoSuchTxnException, TxnAbortedException, MetaException {
+ MaterializationsRebuildLockHandler materializationsRebuildLockHandler =
+ MaterializationsRebuildLockHandler.get();
+ String fullyQualifiedName = null;
+ String dbName = null;
+ String tblName = null;
+ long writeId = 0L;
+ long timestamp = 0L;
+ boolean isUpdateDelete = false;
long txnid = rqst.getTxnid();
long sourceTxnId = -1;
+
try {
Connection dbConn = null;
Statement stmt = null;
@@ -905,6 +916,7 @@ abstract class TxnHandler implements TxnStore, TxnStore.MutexAPI {
quoteChar(OpertaionType.UPDATE.sqlConst) + "," + quoteChar(OpertaionType.DELETE.sqlConst) + ")";
rs = stmt.executeQuery(sqlGenerator.addLimitClause(1, "tc_operation_type " + conflictSQLSuffix));
if (rs.next()) {
+ isUpdateDelete = true;
close(rs);
//if here it means currently committing txn performed update/delete and we should check WW conflict
/**
@@ -1007,6 +1019,17 @@ abstract class TxnHandler implements TxnStore, TxnStore.MutexAPI {
LOG.info("Expected to move at least one record from txn_components to " +
"completed_txn_components when committing txn! " + JavaUtils.txnIdToString(txnid));
}
+ // Obtain information that we need to update registry
+ s = "select ctc_database, ctc_table, ctc_writeid, ctc_timestamp from COMPLETED_TXN_COMPONENTS where ctc_txnid = " + txnid;
+ LOG.debug("Going to extract table modification information for invalidation cache <" + s + ">");
+ rs = stmt.executeQuery(s);
+ if (rs.next()) {
+ dbName = rs.getString(1);
+ tblName = rs.getString(2);
+ fullyQualifiedName = Warehouse.getQualifiedName(dbName, tblName);
+ writeId = rs.getLong(3);
+ timestamp = rs.getTimestamp(4, Calendar.getInstance(TimeZone.getTimeZone("UTC"))).getTime();
+ }
s = "delete from TXN_COMPONENTS where tc_txnid = " + txnid;
LOG.debug("Going to execute update <" + s + ">");
modCount = stmt.executeUpdate(s);
@@ -1021,16 +1044,6 @@ abstract class TxnHandler implements TxnStore, TxnStore.MutexAPI {
modCount = stmt.executeUpdate(s);
LOG.info("Removed committed transaction: (" + txnid + ") from MIN_HISTORY_LEVEL");
- // Update registry with modifications
- s = "select ctc_database, ctc_table, ctc_timestamp from COMPLETED_TXN_COMPONENTS where ctc_txnid = " + txnid;
- rs = stmt.executeQuery(s);
- if (rs.next()) {
- LOG.debug("Going to register table modification in invalidation cache <" + s + ">");
- MaterializationsInvalidationCache.get().notifyTableModification(
- rs.getString(1), rs.getString(2), txnid,
- rs.getTimestamp(3, Calendar.getInstance(TimeZone.getTimeZone("UTC"))).getTime());
- }
-
if (rqst.isSetReplPolicy()) {
s = "delete from REPL_TXN_MAP where RTM_SRC_TXN_ID = " + sourceTxnId +
" and RTM_REPL_POLICY = " + quoteString(rqst.getReplPolicy());
@@ -1043,10 +1056,20 @@ abstract class TxnHandler implements TxnStore, TxnStore.MutexAPI {
EventMessage.EventType.COMMIT_TXN, new CommitTxnEvent(txnid, dbConn, sqlGenerator));
}
- close(rs);
-
+ MaterializationsInvalidationCache materializationsInvalidationCache =
+ MaterializationsInvalidationCache.get();
+ if (materializationsInvalidationCache.containsMaterialization(dbName, tblName) &&
+ !materializationsRebuildLockHandler.readyToCommitResource(dbName, tblName, txnid)) {
+ throw new MetaException(
+ "Another process is rebuilding the materialized view " + fullyQualifiedName);
+ }
LOG.debug("Going to commit");
+ close(rs);
dbConn.commit();
+
+ // Update registry with modifications
+ materializationsInvalidationCache.notifyTableModification(
+ dbName, tblName, writeId, timestamp, isUpdateDelete);
} catch (SQLException e) {
LOG.debug("Going to rollback");
rollbackDBConn(dbConn);
@@ -1057,6 +1080,9 @@ abstract class TxnHandler implements TxnStore, TxnStore.MutexAPI {
close(commitIdRs);
close(lockHandle, stmt, dbConn);
unlockInternal();
+ if (fullyQualifiedName != null) {
+ materializationsRebuildLockHandler.unlockResource(dbName, tblName, txnid);
+ }
}
} catch (RetryException e) {
commitTxn(rqst);
@@ -1384,9 +1410,9 @@ abstract class TxnHandler implements TxnStore, TxnStore.MutexAPI {
@Override
@RetrySemantics.ReadOnly
public BasicTxnInfo getFirstCompletedTransactionForTableAfterCommit(
- String inputDbName, String inputTableName, ValidTxnList txnList)
+ String inputDbName, String inputTableName, ValidWriteIdList txnList)
throws MetaException {
- final List<Long> openTxns = Arrays.asList(ArrayUtils.toObject(txnList.getInvalidTransactions()));
+ final List<Long> openTxns = Arrays.asList(ArrayUtils.toObject(txnList.getInvalidWriteIds()));
Connection dbConn = null;
Statement stmt = null;
@@ -1395,12 +1421,12 @@ abstract class TxnHandler implements TxnStore, TxnStore.MutexAPI {
dbConn = getDbConn(Connection.TRANSACTION_READ_COMMITTED);
stmt = dbConn.createStatement();
stmt.setMaxRows(1);
- String s = "select ctc_timestamp, ctc_txnid, ctc_database, ctc_table "
+ String s = "select ctc_timestamp, ctc_writeid, ctc_database, ctc_table "
+ "from COMPLETED_TXN_COMPONENTS "
+ "where ctc_database=" + quoteString(inputDbName) + " and ctc_table=" + quoteString(inputTableName)
- + " and ctc_txnid > " + txnList.getHighWatermark()
- + (txnList.getInvalidTransactions().length == 0 ?
- " " : " or ctc_txnid IN(" + StringUtils.join(",", openTxns) + ") ")
+ + " and ctc_writeid > " + txnList.getHighWatermark()
+ + (txnList.getInvalidWriteIds().length == 0 ?
+ " " : " or ctc_writeid IN(" + StringUtils.join(",", openTxns) + ") ")
+ "order by ctc_timestamp asc";
if (LOG.isDebugEnabled()) {
LOG.debug("Going to execute query <" + s + ">");
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnStore.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnStore.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnStore.java
index e72d327..6d8b845 100644
--- a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnStore.java
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnStore.java
@@ -22,6 +22,7 @@ import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.classification.InterfaceStability;
import org.apache.hadoop.conf.Configurable;
import org.apache.hadoop.hive.common.ValidTxnList;
+import org.apache.hadoop.hive.common.ValidWriteIdList;
import org.apache.hadoop.hive.common.classification.RetrySemantics;
import org.apache.hadoop.hive.metastore.api.*;
@@ -123,7 +124,7 @@ public interface TxnStore extends Configurable {
*/
@RetrySemantics.Idempotent
public BasicTxnInfo getFirstCompletedTransactionForTableAfterCommit(
- String inputDbName, String inputTableName, ValidTxnList txnList)
+ String inputDbName, String inputTableName, ValidWriteIdList txnList)
throws MetaException;
/**
* Gets the list of valid write ids for the given table wrt to current txn
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/standalone-metastore/src/main/thrift/hive_metastore.thrift
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/thrift/hive_metastore.thrift b/standalone-metastore/src/main/thrift/hive_metastore.thrift
index 7450439..612afe1 100644
--- a/standalone-metastore/src/main/thrift/hive_metastore.thrift
+++ b/standalone-metastore/src/main/thrift/hive_metastore.thrift
@@ -1227,7 +1227,8 @@ struct TableMeta {
struct Materialization {
1: required set<string> tablesUsed;
2: optional string validTxnList
- 3: required i64 invalidationTime;
+ 3: optional i64 invalidationTime;
+ 4: optional bool sourceTablesUpdateDeleteModified;
}
// Data types for workload management.
@@ -2163,6 +2164,8 @@ service ThriftHiveMetastore extends fb303.FacebookService
void add_serde(1: SerDeInfo serde) throws(1:AlreadyExistsException o1, 2:MetaException o2)
SerDeInfo get_serde(1: GetSerdeRequest rqst) throws(1:NoSuchObjectException o1, 2:MetaException o2)
+ LockResponse get_lock_materialization_rebuild(1: string dbName, 2: string tableName, 3: i64 txnId)
+ bool heartbeat_lock_materialization_rebuild(1: string dbName, 2: string tableName, 3: i64 txnId)
}
// * Note about the DDL_TIME: When creating or altering a table or a partition,
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClientPreCatalog.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClientPreCatalog.java b/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClientPreCatalog.java
index 7d37262..ecddc7b 100644
--- a/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClientPreCatalog.java
+++ b/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClientPreCatalog.java
@@ -3321,4 +3321,16 @@ public class HiveMetaStoreClientPreCatalog implements IMetaStoreClient, AutoClos
public SerDeInfo getSerDe(String serDeName) throws TException {
throw new UnsupportedOperationException();
}
+
+ /** {@inheritDoc} */
+ @Override
+ public LockResponse lockMaterializationRebuild(String dbName, String tableName, long txnId) throws TException {
+ throw new UnsupportedOperationException();
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public boolean heartbeatLockMaterializationRebuild(String dbName, String tableName, long txnId) throws TException {
+ throw new UnsupportedOperationException();
+ }
}
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/TestMetaStoreMaterializationsCacheCleaner.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/TestMetaStoreMaterializationsCacheCleaner.java b/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/TestMetaStoreMaterializationsCacheCleaner.java
index 7a871e1..8debcce 100644
--- a/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/TestMetaStoreMaterializationsCacheCleaner.java
+++ b/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/TestMetaStoreMaterializationsCacheCleaner.java
@@ -65,16 +65,16 @@ public class TestMetaStoreMaterializationsCacheCleaner {
// This is a dummy test, invalidation cache is not supposed to
// record any information.
MaterializationsInvalidationCache.get().notifyTableModification(
- DB_NAME, TBL_NAME_1, 1, 1);
+ DB_NAME, TBL_NAME_1, 1, 1, false);
int id = 2;
BasicTxnInfo txn2 = createTxnInfo(DB_NAME, TBL_NAME_1, id);
MaterializationsInvalidationCache.get().notifyTableModification(
- DB_NAME, TBL_NAME_1, id, id);
+ DB_NAME, TBL_NAME_1, id, id, false);
// Create tbl2 (nothing to do)
id = 3;
BasicTxnInfo txn3 = createTxnInfo(DB_NAME, TBL_NAME_1, id);
MaterializationsInvalidationCache.get().notifyTableModification(
- DB_NAME, TBL_NAME_2, id, id);
+ DB_NAME, TBL_NAME_2, id, id, false);
// Cleanup (current = 4, duration = 4) -> Does nothing
long removed = MaterializationsInvalidationCache.get().cleanup(0L);
Assert.assertEquals(0L, removed);
@@ -92,6 +92,7 @@ public class TestMetaStoreMaterializationsCacheCleaner {
when(mv1.getCreationMetadata()).thenReturn(mockCM1);
MaterializationsInvalidationCache.get().createMaterializedView(mockCM1.getDbName(), mockCM1.getTblName(),
mockCM1.getTablesUsed(), mockCM1.getValidTxnList());
+ // Format <txnId>$<table_name>:<hwm>:<minOpenWriteId>:<open_writeids>:<abort_writeids>$<table_name>
Map<String, Materialization> invalidationInfos =
MaterializationsInvalidationCache.get().getMaterializationInvalidationInfo(
DB_NAME, ImmutableList.of(MV_NAME_1));
@@ -99,11 +100,11 @@ public class TestMetaStoreMaterializationsCacheCleaner {
id = 10;
BasicTxnInfo txn10 = createTxnInfo(DB_NAME, TBL_NAME_2, id);
MaterializationsInvalidationCache.get().notifyTableModification(
- DB_NAME, TBL_NAME_2, id, id);
+ DB_NAME, TBL_NAME_2, id, id, false);
id = 9;
BasicTxnInfo txn9 = createTxnInfo(DB_NAME, TBL_NAME_1, id);
MaterializationsInvalidationCache.get().notifyTableModification(
- DB_NAME, TBL_NAME_1, id, id);
+ DB_NAME, TBL_NAME_1, id, id, false);
// Cleanup (current = 12, duration = 4) -> Removes txn1, txn2, txn3
removed = MaterializationsInvalidationCache.get().cleanup(8L);
Assert.assertEquals(0L, removed);
@@ -132,15 +133,15 @@ public class TestMetaStoreMaterializationsCacheCleaner {
Assert.assertTrue(invalidationInfos.isEmpty());
// Create tbl3 (nothing to do)
MaterializationsInvalidationCache.get().notifyTableModification(
- DB_NAME, TBL_NAME_3, 11, 11);
+ DB_NAME, TBL_NAME_3, 11, 11, false);
MaterializationsInvalidationCache.get().notifyTableModification(
- DB_NAME, TBL_NAME_3, 18, 18);
+ DB_NAME, TBL_NAME_3, 18, 18, false);
MaterializationsInvalidationCache.get().notifyTableModification(
- DB_NAME, TBL_NAME_1, 14, 14);
+ DB_NAME, TBL_NAME_1, 14, 14, false);
MaterializationsInvalidationCache.get().notifyTableModification(
- DB_NAME, TBL_NAME_1, 17, 17);
+ DB_NAME, TBL_NAME_1, 17, 17, false);
MaterializationsInvalidationCache.get().notifyTableModification(
- DB_NAME, TBL_NAME_2, 16, 16);
+ DB_NAME, TBL_NAME_2, 16, 16, false);
// Cleanup (current = 20, duration = 4) -> Removes txn10, txn11
removed = MaterializationsInvalidationCache.get().cleanup(16L);
Assert.assertEquals(0L, removed);
@@ -149,11 +150,11 @@ public class TestMetaStoreMaterializationsCacheCleaner {
DB_NAME, ImmutableList.of(MV_NAME_1, MV_NAME_2));
Assert.assertTrue(invalidationInfos.isEmpty());
MaterializationsInvalidationCache.get().notifyTableModification(
- DB_NAME, TBL_NAME_1, 12, 12);
+ DB_NAME, TBL_NAME_1, 12, 12, false);
MaterializationsInvalidationCache.get().notifyTableModification(
- DB_NAME, TBL_NAME_2, 15, 15);
+ DB_NAME, TBL_NAME_2, 15, 15, false);
MaterializationsInvalidationCache.get().notifyTableModification(
- DB_NAME, TBL_NAME_2, 7, 7);
+ DB_NAME, TBL_NAME_2, 7, 7, false);
invalidationInfos =
MaterializationsInvalidationCache.get().getMaterializationInvalidationInfo(
DB_NAME, ImmutableList.of(MV_NAME_1, MV_NAME_2));
@@ -205,16 +206,16 @@ public class TestMetaStoreMaterializationsCacheCleaner {
// Cleanup (current = 24, duration = 4) -> Removes txn9, txn14, txn15, txn16, txn17, txn18
// Create tbl1 (nothing to do)
MaterializationsInvalidationCache.get().notifyTableModification(
- DB_NAME, TBL_NAME_1, 1, 1);
+ DB_NAME, TBL_NAME_1, 1, 1, false);
int id = 2;
BasicTxnInfo txn2 = createTxnInfo(DB_NAME, TBL_NAME_1, id);
MaterializationsInvalidationCache.get().notifyTableModification(
- DB_NAME, TBL_NAME_1, id, id);
+ DB_NAME, TBL_NAME_1, id, id, false);
// Create tbl2 (nothing to do)
id = 3;
BasicTxnInfo txn3 = createTxnInfo(DB_NAME, TBL_NAME_1, id);
MaterializationsInvalidationCache.get().notifyTableModification(
- DB_NAME, TBL_NAME_2, id, id);
+ DB_NAME, TBL_NAME_2, id, id, false);
// Cleanup (current = 4, duration = 4) -> Does nothing
long removed = MaterializationsInvalidationCache.get().cleanup(0L);
Assert.assertEquals(0L, removed);
@@ -228,7 +229,8 @@ public class TestMetaStoreMaterializationsCacheCleaner {
DB_NAME + "." + TBL_NAME_1,
DB_NAME + "." + TBL_NAME_2));
// Create txn list (highWatermark=4;minOpenTxn=Long.MAX_VALUE)
- mockCM1.setValidTxnList("3:" + Long.MAX_VALUE + "::");
+ mockCM1.setValidTxnList("3$" + DB_NAME + "." + TBL_NAME_1 + ":3:" + Long.MAX_VALUE + "::" +
+ "$" + DB_NAME + "." + TBL_NAME_2 + ":3:" + Long.MAX_VALUE + "::");
when(mv1.getCreationMetadata()).thenReturn(mockCM1);
MaterializationsInvalidationCache.get().createMaterializedView(mockCM1.getDbName(), mockCM1.getTblName(),
mockCM1.getTablesUsed(), mockCM1.getValidTxnList());
@@ -239,11 +241,11 @@ public class TestMetaStoreMaterializationsCacheCleaner {
id = 10;
BasicTxnInfo txn10 = createTxnInfo(DB_NAME, TBL_NAME_2, id);
MaterializationsInvalidationCache.get().notifyTableModification(
- DB_NAME, TBL_NAME_2, id, id);
+ DB_NAME, TBL_NAME_2, id, id, false);
id = 9;
BasicTxnInfo txn9 = createTxnInfo(DB_NAME, TBL_NAME_1, id);
MaterializationsInvalidationCache.get().notifyTableModification(
- DB_NAME, TBL_NAME_1, id, id);
+ DB_NAME, TBL_NAME_1, id, id, false);
// Cleanup (current = 12, duration = 4) -> Removes txn1, txn2, txn3
removed = MaterializationsInvalidationCache.get().cleanup(8L);
Assert.assertEquals(3L, removed);
@@ -261,7 +263,8 @@ public class TestMetaStoreMaterializationsCacheCleaner {
DB_NAME + "." + TBL_NAME_1,
DB_NAME + "." + TBL_NAME_2));
// Create txn list (highWatermark=10;minOpenTxn=Long.MAX_VALUE)
- mockCM2.setValidTxnList("10:" + Long.MAX_VALUE + "::");
+ mockCM2.setValidTxnList("10$" + DB_NAME + "." + TBL_NAME_1 + ":10:" + Long.MAX_VALUE + "::" +
+ "$" + DB_NAME + "." + TBL_NAME_2 + ":10:" + Long.MAX_VALUE + "::");
when(mv2.getCreationMetadata()).thenReturn(mockCM2);
MaterializationsInvalidationCache.get().createMaterializedView(mockCM2.getDbName(), mockCM2.getTblName(),
mockCM2.getTablesUsed(), mockCM2.getValidTxnList());
@@ -273,15 +276,15 @@ public class TestMetaStoreMaterializationsCacheCleaner {
Assert.assertEquals(0L, invalidationInfos.get(MV_NAME_2).getInvalidationTime());
// Create tbl3 (nothing to do)
MaterializationsInvalidationCache.get().notifyTableModification(
- DB_NAME, TBL_NAME_3, 11, 11);
+ DB_NAME, TBL_NAME_3, 11, 11, false);
MaterializationsInvalidationCache.get().notifyTableModification(
- DB_NAME, TBL_NAME_3, 18, 18);
+ DB_NAME, TBL_NAME_3, 18, 18, false);
MaterializationsInvalidationCache.get().notifyTableModification(
- DB_NAME, TBL_NAME_1, 14, 14);
+ DB_NAME, TBL_NAME_1, 14, 14, false);
MaterializationsInvalidationCache.get().notifyTableModification(
- DB_NAME, TBL_NAME_1, 17, 17);
+ DB_NAME, TBL_NAME_1, 17, 17, false);
MaterializationsInvalidationCache.get().notifyTableModification(
- DB_NAME, TBL_NAME_2, 16, 16);
+ DB_NAME, TBL_NAME_2, 16, 16, false);
// Cleanup (current = 20, duration = 4) -> Removes txn10, txn11
removed = MaterializationsInvalidationCache.get().cleanup(16L);
Assert.assertEquals(2L, removed);
@@ -291,11 +294,11 @@ public class TestMetaStoreMaterializationsCacheCleaner {
Assert.assertEquals(9L, invalidationInfos.get(MV_NAME_1).getInvalidationTime());
Assert.assertEquals(14L, invalidationInfos.get(MV_NAME_2).getInvalidationTime());
MaterializationsInvalidationCache.get().notifyTableModification(
- DB_NAME, TBL_NAME_1, 12, 12);
+ DB_NAME, TBL_NAME_1, 12, 12, false);
MaterializationsInvalidationCache.get().notifyTableModification(
- DB_NAME, TBL_NAME_2, 15, 15);
+ DB_NAME, TBL_NAME_2, 15, 15, false);
MaterializationsInvalidationCache.get().notifyTableModification(
- DB_NAME, TBL_NAME_2, 7, 7);
+ DB_NAME, TBL_NAME_2, 7, 7, false);
invalidationInfos =
MaterializationsInvalidationCache.get().getMaterializationInvalidationInfo(
DB_NAME, ImmutableList.of(MV_NAME_1, MV_NAME_2));
[02/24] hive git commit: HIVE-18839: Implement incremental rebuild
for materialized views (only insert operations in source tables) (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/standalone-metastore/src/gen/thrift/gen-php/metastore/ThriftHiveMetastore.php
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/gen/thrift/gen-php/metastore/ThriftHiveMetastore.php b/standalone-metastore/src/gen/thrift/gen-php/metastore/ThriftHiveMetastore.php
index 5e3dff1..7a8a42a 100644
--- a/standalone-metastore/src/gen/thrift/gen-php/metastore/ThriftHiveMetastore.php
+++ b/standalone-metastore/src/gen/thrift/gen-php/metastore/ThriftHiveMetastore.php
@@ -1514,6 +1514,20 @@ interface ThriftHiveMetastoreIf extends \FacebookServiceIf {
* @throws \metastore\MetaException
*/
public function get_serde(\metastore\GetSerdeRequest $rqst);
+ /**
+ * @param string $dbName
+ * @param string $tableName
+ * @param int $txnId
+ * @return \metastore\LockResponse
+ */
+ public function get_lock_materialization_rebuild($dbName, $tableName, $txnId);
+ /**
+ * @param string $dbName
+ * @param string $tableName
+ * @param int $txnId
+ * @return bool
+ */
+ public function heartbeat_lock_materialization_rebuild($dbName, $tableName, $txnId);
}
class ThriftHiveMetastoreClient extends \FacebookServiceClient implements \metastore\ThriftHiveMetastoreIf {
@@ -12887,6 +12901,112 @@ class ThriftHiveMetastoreClient extends \FacebookServiceClient implements \metas
throw new \Exception("get_serde failed: unknown result");
}
+ public function get_lock_materialization_rebuild($dbName, $tableName, $txnId)
+ {
+ $this->send_get_lock_materialization_rebuild($dbName, $tableName, $txnId);
+ return $this->recv_get_lock_materialization_rebuild();
+ }
+
+ public function send_get_lock_materialization_rebuild($dbName, $tableName, $txnId)
+ {
+ $args = new \metastore\ThriftHiveMetastore_get_lock_materialization_rebuild_args();
+ $args->dbName = $dbName;
+ $args->tableName = $tableName;
+ $args->txnId = $txnId;
+ $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+ if ($bin_accel)
+ {
+ thrift_protocol_write_binary($this->output_, 'get_lock_materialization_rebuild', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+ }
+ else
+ {
+ $this->output_->writeMessageBegin('get_lock_materialization_rebuild', TMessageType::CALL, $this->seqid_);
+ $args->write($this->output_);
+ $this->output_->writeMessageEnd();
+ $this->output_->getTransport()->flush();
+ }
+ }
+
+ public function recv_get_lock_materialization_rebuild()
+ {
+ $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
+ if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\metastore\ThriftHiveMetastore_get_lock_materialization_rebuild_result', $this->input_->isStrictRead());
+ else
+ {
+ $rseqid = 0;
+ $fname = null;
+ $mtype = 0;
+
+ $this->input_->readMessageBegin($fname, $mtype, $rseqid);
+ if ($mtype == TMessageType::EXCEPTION) {
+ $x = new TApplicationException();
+ $x->read($this->input_);
+ $this->input_->readMessageEnd();
+ throw $x;
+ }
+ $result = new \metastore\ThriftHiveMetastore_get_lock_materialization_rebuild_result();
+ $result->read($this->input_);
+ $this->input_->readMessageEnd();
+ }
+ if ($result->success !== null) {
+ return $result->success;
+ }
+ throw new \Exception("get_lock_materialization_rebuild failed: unknown result");
+ }
+
+ public function heartbeat_lock_materialization_rebuild($dbName, $tableName, $txnId)
+ {
+ $this->send_heartbeat_lock_materialization_rebuild($dbName, $tableName, $txnId);
+ return $this->recv_heartbeat_lock_materialization_rebuild();
+ }
+
+ public function send_heartbeat_lock_materialization_rebuild($dbName, $tableName, $txnId)
+ {
+ $args = new \metastore\ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_args();
+ $args->dbName = $dbName;
+ $args->tableName = $tableName;
+ $args->txnId = $txnId;
+ $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+ if ($bin_accel)
+ {
+ thrift_protocol_write_binary($this->output_, 'heartbeat_lock_materialization_rebuild', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+ }
+ else
+ {
+ $this->output_->writeMessageBegin('heartbeat_lock_materialization_rebuild', TMessageType::CALL, $this->seqid_);
+ $args->write($this->output_);
+ $this->output_->writeMessageEnd();
+ $this->output_->getTransport()->flush();
+ }
+ }
+
+ public function recv_heartbeat_lock_materialization_rebuild()
+ {
+ $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
+ if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\metastore\ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_result', $this->input_->isStrictRead());
+ else
+ {
+ $rseqid = 0;
+ $fname = null;
+ $mtype = 0;
+
+ $this->input_->readMessageBegin($fname, $mtype, $rseqid);
+ if ($mtype == TMessageType::EXCEPTION) {
+ $x = new TApplicationException();
+ $x->read($this->input_);
+ $this->input_->readMessageEnd();
+ throw $x;
+ }
+ $result = new \metastore\ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_result();
+ $result->read($this->input_);
+ $this->input_->readMessageEnd();
+ }
+ if ($result->success !== null) {
+ return $result->success;
+ }
+ throw new \Exception("heartbeat_lock_materialization_rebuild failed: unknown result");
+ }
+
}
// HELPER FUNCTIONS AND STRUCTURES
@@ -57981,4 +58101,401 @@ class ThriftHiveMetastore_get_serde_result {
}
+class ThriftHiveMetastore_get_lock_materialization_rebuild_args {
+ static $_TSPEC;
+
+ /**
+ * @var string
+ */
+ public $dbName = null;
+ /**
+ * @var string
+ */
+ public $tableName = null;
+ /**
+ * @var int
+ */
+ public $txnId = null;
+
+ public function __construct($vals=null) {
+ if (!isset(self::$_TSPEC)) {
+ self::$_TSPEC = array(
+ 1 => array(
+ 'var' => 'dbName',
+ 'type' => TType::STRING,
+ ),
+ 2 => array(
+ 'var' => 'tableName',
+ 'type' => TType::STRING,
+ ),
+ 3 => array(
+ 'var' => 'txnId',
+ 'type' => TType::I64,
+ ),
+ );
+ }
+ if (is_array($vals)) {
+ if (isset($vals['dbName'])) {
+ $this->dbName = $vals['dbName'];
+ }
+ if (isset($vals['tableName'])) {
+ $this->tableName = $vals['tableName'];
+ }
+ if (isset($vals['txnId'])) {
+ $this->txnId = $vals['txnId'];
+ }
+ }
+ }
+
+ public function getName() {
+ return 'ThriftHiveMetastore_get_lock_materialization_rebuild_args';
+ }
+
+ public function read($input)
+ {
+ $xfer = 0;
+ $fname = null;
+ $ftype = 0;
+ $fid = 0;
+ $xfer += $input->readStructBegin($fname);
+ while (true)
+ {
+ $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+ if ($ftype == TType::STOP) {
+ break;
+ }
+ switch ($fid)
+ {
+ case 1:
+ if ($ftype == TType::STRING) {
+ $xfer += $input->readString($this->dbName);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 2:
+ if ($ftype == TType::STRING) {
+ $xfer += $input->readString($this->tableName);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 3:
+ if ($ftype == TType::I64) {
+ $xfer += $input->readI64($this->txnId);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ default:
+ $xfer += $input->skip($ftype);
+ break;
+ }
+ $xfer += $input->readFieldEnd();
+ }
+ $xfer += $input->readStructEnd();
+ return $xfer;
+ }
+
+ public function write($output) {
+ $xfer = 0;
+ $xfer += $output->writeStructBegin('ThriftHiveMetastore_get_lock_materialization_rebuild_args');
+ if ($this->dbName !== null) {
+ $xfer += $output->writeFieldBegin('dbName', TType::STRING, 1);
+ $xfer += $output->writeString($this->dbName);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->tableName !== null) {
+ $xfer += $output->writeFieldBegin('tableName', TType::STRING, 2);
+ $xfer += $output->writeString($this->tableName);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->txnId !== null) {
+ $xfer += $output->writeFieldBegin('txnId', TType::I64, 3);
+ $xfer += $output->writeI64($this->txnId);
+ $xfer += $output->writeFieldEnd();
+ }
+ $xfer += $output->writeFieldStop();
+ $xfer += $output->writeStructEnd();
+ return $xfer;
+ }
+
+}
+
+class ThriftHiveMetastore_get_lock_materialization_rebuild_result {
+ static $_TSPEC;
+
+ /**
+ * @var \metastore\LockResponse
+ */
+ public $success = null;
+
+ public function __construct($vals=null) {
+ if (!isset(self::$_TSPEC)) {
+ self::$_TSPEC = array(
+ 0 => array(
+ 'var' => 'success',
+ 'type' => TType::STRUCT,
+ 'class' => '\metastore\LockResponse',
+ ),
+ );
+ }
+ if (is_array($vals)) {
+ if (isset($vals['success'])) {
+ $this->success = $vals['success'];
+ }
+ }
+ }
+
+ public function getName() {
+ return 'ThriftHiveMetastore_get_lock_materialization_rebuild_result';
+ }
+
+ public function read($input)
+ {
+ $xfer = 0;
+ $fname = null;
+ $ftype = 0;
+ $fid = 0;
+ $xfer += $input->readStructBegin($fname);
+ while (true)
+ {
+ $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+ if ($ftype == TType::STOP) {
+ break;
+ }
+ switch ($fid)
+ {
+ case 0:
+ if ($ftype == TType::STRUCT) {
+ $this->success = new \metastore\LockResponse();
+ $xfer += $this->success->read($input);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ default:
+ $xfer += $input->skip($ftype);
+ break;
+ }
+ $xfer += $input->readFieldEnd();
+ }
+ $xfer += $input->readStructEnd();
+ return $xfer;
+ }
+
+ public function write($output) {
+ $xfer = 0;
+ $xfer += $output->writeStructBegin('ThriftHiveMetastore_get_lock_materialization_rebuild_result');
+ if ($this->success !== null) {
+ if (!is_object($this->success)) {
+ throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+ }
+ $xfer += $output->writeFieldBegin('success', TType::STRUCT, 0);
+ $xfer += $this->success->write($output);
+ $xfer += $output->writeFieldEnd();
+ }
+ $xfer += $output->writeFieldStop();
+ $xfer += $output->writeStructEnd();
+ return $xfer;
+ }
+
+}
+
+class ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_args {
+ static $_TSPEC;
+
+ /**
+ * @var string
+ */
+ public $dbName = null;
+ /**
+ * @var string
+ */
+ public $tableName = null;
+ /**
+ * @var int
+ */
+ public $txnId = null;
+
+ public function __construct($vals=null) {
+ if (!isset(self::$_TSPEC)) {
+ self::$_TSPEC = array(
+ 1 => array(
+ 'var' => 'dbName',
+ 'type' => TType::STRING,
+ ),
+ 2 => array(
+ 'var' => 'tableName',
+ 'type' => TType::STRING,
+ ),
+ 3 => array(
+ 'var' => 'txnId',
+ 'type' => TType::I64,
+ ),
+ );
+ }
+ if (is_array($vals)) {
+ if (isset($vals['dbName'])) {
+ $this->dbName = $vals['dbName'];
+ }
+ if (isset($vals['tableName'])) {
+ $this->tableName = $vals['tableName'];
+ }
+ if (isset($vals['txnId'])) {
+ $this->txnId = $vals['txnId'];
+ }
+ }
+ }
+
+ public function getName() {
+ return 'ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_args';
+ }
+
+ public function read($input)
+ {
+ $xfer = 0;
+ $fname = null;
+ $ftype = 0;
+ $fid = 0;
+ $xfer += $input->readStructBegin($fname);
+ while (true)
+ {
+ $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+ if ($ftype == TType::STOP) {
+ break;
+ }
+ switch ($fid)
+ {
+ case 1:
+ if ($ftype == TType::STRING) {
+ $xfer += $input->readString($this->dbName);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 2:
+ if ($ftype == TType::STRING) {
+ $xfer += $input->readString($this->tableName);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 3:
+ if ($ftype == TType::I64) {
+ $xfer += $input->readI64($this->txnId);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ default:
+ $xfer += $input->skip($ftype);
+ break;
+ }
+ $xfer += $input->readFieldEnd();
+ }
+ $xfer += $input->readStructEnd();
+ return $xfer;
+ }
+
+ public function write($output) {
+ $xfer = 0;
+ $xfer += $output->writeStructBegin('ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_args');
+ if ($this->dbName !== null) {
+ $xfer += $output->writeFieldBegin('dbName', TType::STRING, 1);
+ $xfer += $output->writeString($this->dbName);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->tableName !== null) {
+ $xfer += $output->writeFieldBegin('tableName', TType::STRING, 2);
+ $xfer += $output->writeString($this->tableName);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->txnId !== null) {
+ $xfer += $output->writeFieldBegin('txnId', TType::I64, 3);
+ $xfer += $output->writeI64($this->txnId);
+ $xfer += $output->writeFieldEnd();
+ }
+ $xfer += $output->writeFieldStop();
+ $xfer += $output->writeStructEnd();
+ return $xfer;
+ }
+
+}
+
+class ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_result {
+ static $_TSPEC;
+
+ /**
+ * @var bool
+ */
+ public $success = null;
+
+ public function __construct($vals=null) {
+ if (!isset(self::$_TSPEC)) {
+ self::$_TSPEC = array(
+ 0 => array(
+ 'var' => 'success',
+ 'type' => TType::BOOL,
+ ),
+ );
+ }
+ if (is_array($vals)) {
+ if (isset($vals['success'])) {
+ $this->success = $vals['success'];
+ }
+ }
+ }
+
+ public function getName() {
+ return 'ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_result';
+ }
+
+ public function read($input)
+ {
+ $xfer = 0;
+ $fname = null;
+ $ftype = 0;
+ $fid = 0;
+ $xfer += $input->readStructBegin($fname);
+ while (true)
+ {
+ $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+ if ($ftype == TType::STOP) {
+ break;
+ }
+ switch ($fid)
+ {
+ case 0:
+ if ($ftype == TType::BOOL) {
+ $xfer += $input->readBool($this->success);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ default:
+ $xfer += $input->skip($ftype);
+ break;
+ }
+ $xfer += $input->readFieldEnd();
+ }
+ $xfer += $input->readStructEnd();
+ return $xfer;
+ }
+
+ public function write($output) {
+ $xfer = 0;
+ $xfer += $output->writeStructBegin('ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_result');
+ if ($this->success !== null) {
+ $xfer += $output->writeFieldBegin('success', TType::BOOL, 0);
+ $xfer += $output->writeBool($this->success);
+ $xfer += $output->writeFieldEnd();
+ }
+ $xfer += $output->writeFieldStop();
+ $xfer += $output->writeStructEnd();
+ return $xfer;
+ }
+
+}
+
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/standalone-metastore/src/gen/thrift/gen-php/metastore/Types.php
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/gen/thrift/gen-php/metastore/Types.php b/standalone-metastore/src/gen/thrift/gen-php/metastore/Types.php
index d4fcc88..14416b4 100644
--- a/standalone-metastore/src/gen/thrift/gen-php/metastore/Types.php
+++ b/standalone-metastore/src/gen/thrift/gen-php/metastore/Types.php
@@ -23975,6 +23975,10 @@ class Materialization {
* @var int
*/
public $invalidationTime = null;
+ /**
+ * @var bool
+ */
+ public $sourceTablesUpdateDeleteModified = null;
public function __construct($vals=null) {
if (!isset(self::$_TSPEC)) {
@@ -23995,6 +23999,10 @@ class Materialization {
'var' => 'invalidationTime',
'type' => TType::I64,
),
+ 4 => array(
+ 'var' => 'sourceTablesUpdateDeleteModified',
+ 'type' => TType::BOOL,
+ ),
);
}
if (is_array($vals)) {
@@ -24007,6 +24015,9 @@ class Materialization {
if (isset($vals['invalidationTime'])) {
$this->invalidationTime = $vals['invalidationTime'];
}
+ if (isset($vals['sourceTablesUpdateDeleteModified'])) {
+ $this->sourceTablesUpdateDeleteModified = $vals['sourceTablesUpdateDeleteModified'];
+ }
}
}
@@ -24064,6 +24075,13 @@ class Materialization {
$xfer += $input->skip($ftype);
}
break;
+ case 4:
+ if ($ftype == TType::BOOL) {
+ $xfer += $input->readBool($this->sourceTablesUpdateDeleteModified);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
default:
$xfer += $input->skip($ftype);
break;
@@ -24108,6 +24126,11 @@ class Materialization {
$xfer += $output->writeI64($this->invalidationTime);
$xfer += $output->writeFieldEnd();
}
+ if ($this->sourceTablesUpdateDeleteModified !== null) {
+ $xfer += $output->writeFieldBegin('sourceTablesUpdateDeleteModified', TType::BOOL, 4);
+ $xfer += $output->writeBool($this->sourceTablesUpdateDeleteModified);
+ $xfer += $output->writeFieldEnd();
+ }
$xfer += $output->writeFieldStop();
$xfer += $output->writeStructEnd();
return $xfer;
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/standalone-metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore-remote
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore-remote b/standalone-metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore-remote
index d39690f..079c7fc 100755
--- a/standalone-metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore-remote
+++ b/standalone-metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore-remote
@@ -224,6 +224,8 @@ if len(sys.argv) <= 1 or sys.argv[1] == '--help':
print(' void set_schema_version_state(SetSchemaVersionStateRequest rqst)')
print(' void add_serde(SerDeInfo serde)')
print(' SerDeInfo get_serde(GetSerdeRequest rqst)')
+ print(' LockResponse get_lock_materialization_rebuild(string dbName, string tableName, i64 txnId)')
+ print(' bool heartbeat_lock_materialization_rebuild(string dbName, string tableName, i64 txnId)')
print(' string getName()')
print(' string getVersion()')
print(' fb_status getStatus()')
@@ -1493,6 +1495,18 @@ elif cmd == 'get_serde':
sys.exit(1)
pp.pprint(client.get_serde(eval(args[0]),))
+elif cmd == 'get_lock_materialization_rebuild':
+ if len(args) != 3:
+ print('get_lock_materialization_rebuild requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.get_lock_materialization_rebuild(args[0],args[1],eval(args[2]),))
+
+elif cmd == 'heartbeat_lock_materialization_rebuild':
+ if len(args) != 3:
+ print('heartbeat_lock_materialization_rebuild requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.heartbeat_lock_materialization_rebuild(args[0],args[1],eval(args[2]),))
+
elif cmd == 'getName':
if len(args) != 0:
print('getName requires 0 args')
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/standalone-metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore.py
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore.py b/standalone-metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore.py
index f8ffeac..b0e64d8 100644
--- a/standalone-metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore.py
+++ b/standalone-metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore.py
@@ -1548,6 +1548,24 @@ class Iface(fb303.FacebookService.Iface):
"""
pass
+ def get_lock_materialization_rebuild(self, dbName, tableName, txnId):
+ """
+ Parameters:
+ - dbName
+ - tableName
+ - txnId
+ """
+ pass
+
+ def heartbeat_lock_materialization_rebuild(self, dbName, tableName, txnId):
+ """
+ Parameters:
+ - dbName
+ - tableName
+ - txnId
+ """
+ pass
+
class Client(fb303.FacebookService.Client, Iface):
"""
@@ -8711,6 +8729,76 @@ class Client(fb303.FacebookService.Client, Iface):
raise result.o2
raise TApplicationException(TApplicationException.MISSING_RESULT, "get_serde failed: unknown result")
+ def get_lock_materialization_rebuild(self, dbName, tableName, txnId):
+ """
+ Parameters:
+ - dbName
+ - tableName
+ - txnId
+ """
+ self.send_get_lock_materialization_rebuild(dbName, tableName, txnId)
+ return self.recv_get_lock_materialization_rebuild()
+
+ def send_get_lock_materialization_rebuild(self, dbName, tableName, txnId):
+ self._oprot.writeMessageBegin('get_lock_materialization_rebuild', TMessageType.CALL, self._seqid)
+ args = get_lock_materialization_rebuild_args()
+ args.dbName = dbName
+ args.tableName = tableName
+ args.txnId = txnId
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_get_lock_materialization_rebuild(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = get_lock_materialization_rebuild_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.success is not None:
+ return result.success
+ raise TApplicationException(TApplicationException.MISSING_RESULT, "get_lock_materialization_rebuild failed: unknown result")
+
+ def heartbeat_lock_materialization_rebuild(self, dbName, tableName, txnId):
+ """
+ Parameters:
+ - dbName
+ - tableName
+ - txnId
+ """
+ self.send_heartbeat_lock_materialization_rebuild(dbName, tableName, txnId)
+ return self.recv_heartbeat_lock_materialization_rebuild()
+
+ def send_heartbeat_lock_materialization_rebuild(self, dbName, tableName, txnId):
+ self._oprot.writeMessageBegin('heartbeat_lock_materialization_rebuild', TMessageType.CALL, self._seqid)
+ args = heartbeat_lock_materialization_rebuild_args()
+ args.dbName = dbName
+ args.tableName = tableName
+ args.txnId = txnId
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_heartbeat_lock_materialization_rebuild(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = heartbeat_lock_materialization_rebuild_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.success is not None:
+ return result.success
+ raise TApplicationException(TApplicationException.MISSING_RESULT, "heartbeat_lock_materialization_rebuild failed: unknown result")
+
class Processor(fb303.FacebookService.Processor, Iface, TProcessor):
def __init__(self, handler):
@@ -8915,6 +9003,8 @@ class Processor(fb303.FacebookService.Processor, Iface, TProcessor):
self._processMap["set_schema_version_state"] = Processor.process_set_schema_version_state
self._processMap["add_serde"] = Processor.process_add_serde
self._processMap["get_serde"] = Processor.process_get_serde
+ self._processMap["get_lock_materialization_rebuild"] = Processor.process_get_lock_materialization_rebuild
+ self._processMap["heartbeat_lock_materialization_rebuild"] = Processor.process_heartbeat_lock_materialization_rebuild
def process(self, iprot, oprot):
(name, type, seqid) = iprot.readMessageBegin()
@@ -13889,6 +13979,44 @@ class Processor(fb303.FacebookService.Processor, Iface, TProcessor):
oprot.writeMessageEnd()
oprot.trans.flush()
+ def process_get_lock_materialization_rebuild(self, seqid, iprot, oprot):
+ args = get_lock_materialization_rebuild_args()
+ args.read(iprot)
+ iprot.readMessageEnd()
+ result = get_lock_materialization_rebuild_result()
+ try:
+ result.success = self._handler.get_lock_materialization_rebuild(args.dbName, args.tableName, args.txnId)
+ msg_type = TMessageType.REPLY
+ except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
+ raise
+ except Exception as ex:
+ msg_type = TMessageType.EXCEPTION
+ logging.exception(ex)
+ result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
+ oprot.writeMessageBegin("get_lock_materialization_rebuild", msg_type, seqid)
+ result.write(oprot)
+ oprot.writeMessageEnd()
+ oprot.trans.flush()
+
+ def process_heartbeat_lock_materialization_rebuild(self, seqid, iprot, oprot):
+ args = heartbeat_lock_materialization_rebuild_args()
+ args.read(iprot)
+ iprot.readMessageEnd()
+ result = heartbeat_lock_materialization_rebuild_result()
+ try:
+ result.success = self._handler.heartbeat_lock_materialization_rebuild(args.dbName, args.tableName, args.txnId)
+ msg_type = TMessageType.REPLY
+ except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
+ raise
+ except Exception as ex:
+ msg_type = TMessageType.EXCEPTION
+ logging.exception(ex)
+ result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
+ oprot.writeMessageBegin("heartbeat_lock_materialization_rebuild", msg_type, seqid)
+ result.write(oprot)
+ oprot.writeMessageEnd()
+ oprot.trans.flush()
+
# HELPER FUNCTIONS AND STRUCTURES
@@ -47281,3 +47409,314 @@ class get_serde_result:
def __ne__(self, other):
return not (self == other)
+
+class get_lock_materialization_rebuild_args:
+ """
+ Attributes:
+ - dbName
+ - tableName
+ - txnId
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'dbName', None, None, ), # 1
+ (2, TType.STRING, 'tableName', None, None, ), # 2
+ (3, TType.I64, 'txnId', None, None, ), # 3
+ )
+
+ def __init__(self, dbName=None, tableName=None, txnId=None,):
+ self.dbName = dbName
+ self.tableName = tableName
+ self.txnId = txnId
+
+ def read(self, iprot):
+ if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+ fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+ return
+ iprot.readStructBegin()
+ while True:
+ (fname, ftype, fid) = iprot.readFieldBegin()
+ if ftype == TType.STOP:
+ break
+ if fid == 1:
+ if ftype == TType.STRING:
+ self.dbName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.tableName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.I64:
+ self.txnId = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ else:
+ iprot.skip(ftype)
+ iprot.readFieldEnd()
+ iprot.readStructEnd()
+
+ def write(self, oprot):
+ if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+ oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+ return
+ oprot.writeStructBegin('get_lock_materialization_rebuild_args')
+ if self.dbName is not None:
+ oprot.writeFieldBegin('dbName', TType.STRING, 1)
+ oprot.writeString(self.dbName)
+ oprot.writeFieldEnd()
+ if self.tableName is not None:
+ oprot.writeFieldBegin('tableName', TType.STRING, 2)
+ oprot.writeString(self.tableName)
+ oprot.writeFieldEnd()
+ if self.txnId is not None:
+ oprot.writeFieldBegin('txnId', TType.I64, 3)
+ oprot.writeI64(self.txnId)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.dbName)
+ value = (value * 31) ^ hash(self.tableName)
+ value = (value * 31) ^ hash(self.txnId)
+ return value
+
+ def __repr__(self):
+ L = ['%s=%r' % (key, value)
+ for key, value in self.__dict__.iteritems()]
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+ def __eq__(self, other):
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not (self == other)
+
+class get_lock_materialization_rebuild_result:
+ """
+ Attributes:
+ - success
+ """
+
+ thrift_spec = (
+ (0, TType.STRUCT, 'success', (LockResponse, LockResponse.thrift_spec), None, ), # 0
+ )
+
+ def __init__(self, success=None,):
+ self.success = success
+
+ def read(self, iprot):
+ if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+ fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+ return
+ iprot.readStructBegin()
+ while True:
+ (fname, ftype, fid) = iprot.readFieldBegin()
+ if ftype == TType.STOP:
+ break
+ if fid == 0:
+ if ftype == TType.STRUCT:
+ self.success = LockResponse()
+ self.success.read(iprot)
+ else:
+ iprot.skip(ftype)
+ else:
+ iprot.skip(ftype)
+ iprot.readFieldEnd()
+ iprot.readStructEnd()
+
+ def write(self, oprot):
+ if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+ oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+ return
+ oprot.writeStructBegin('get_lock_materialization_rebuild_result')
+ if self.success is not None:
+ oprot.writeFieldBegin('success', TType.STRUCT, 0)
+ self.success.write(oprot)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.success)
+ return value
+
+ def __repr__(self):
+ L = ['%s=%r' % (key, value)
+ for key, value in self.__dict__.iteritems()]
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+ def __eq__(self, other):
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not (self == other)
+
+class heartbeat_lock_materialization_rebuild_args:
+ """
+ Attributes:
+ - dbName
+ - tableName
+ - txnId
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'dbName', None, None, ), # 1
+ (2, TType.STRING, 'tableName', None, None, ), # 2
+ (3, TType.I64, 'txnId', None, None, ), # 3
+ )
+
+ def __init__(self, dbName=None, tableName=None, txnId=None,):
+ self.dbName = dbName
+ self.tableName = tableName
+ self.txnId = txnId
+
+ def read(self, iprot):
+ if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+ fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+ return
+ iprot.readStructBegin()
+ while True:
+ (fname, ftype, fid) = iprot.readFieldBegin()
+ if ftype == TType.STOP:
+ break
+ if fid == 1:
+ if ftype == TType.STRING:
+ self.dbName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.tableName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.I64:
+ self.txnId = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ else:
+ iprot.skip(ftype)
+ iprot.readFieldEnd()
+ iprot.readStructEnd()
+
+ def write(self, oprot):
+ if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+ oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+ return
+ oprot.writeStructBegin('heartbeat_lock_materialization_rebuild_args')
+ if self.dbName is not None:
+ oprot.writeFieldBegin('dbName', TType.STRING, 1)
+ oprot.writeString(self.dbName)
+ oprot.writeFieldEnd()
+ if self.tableName is not None:
+ oprot.writeFieldBegin('tableName', TType.STRING, 2)
+ oprot.writeString(self.tableName)
+ oprot.writeFieldEnd()
+ if self.txnId is not None:
+ oprot.writeFieldBegin('txnId', TType.I64, 3)
+ oprot.writeI64(self.txnId)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.dbName)
+ value = (value * 31) ^ hash(self.tableName)
+ value = (value * 31) ^ hash(self.txnId)
+ return value
+
+ def __repr__(self):
+ L = ['%s=%r' % (key, value)
+ for key, value in self.__dict__.iteritems()]
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+ def __eq__(self, other):
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not (self == other)
+
+class heartbeat_lock_materialization_rebuild_result:
+ """
+ Attributes:
+ - success
+ """
+
+ thrift_spec = (
+ (0, TType.BOOL, 'success', None, None, ), # 0
+ )
+
+ def __init__(self, success=None,):
+ self.success = success
+
+ def read(self, iprot):
+ if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+ fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+ return
+ iprot.readStructBegin()
+ while True:
+ (fname, ftype, fid) = iprot.readFieldBegin()
+ if ftype == TType.STOP:
+ break
+ if fid == 0:
+ if ftype == TType.BOOL:
+ self.success = iprot.readBool()
+ else:
+ iprot.skip(ftype)
+ else:
+ iprot.skip(ftype)
+ iprot.readFieldEnd()
+ iprot.readStructEnd()
+
+ def write(self, oprot):
+ if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+ oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+ return
+ oprot.writeStructBegin('heartbeat_lock_materialization_rebuild_result')
+ if self.success is not None:
+ oprot.writeFieldBegin('success', TType.BOOL, 0)
+ oprot.writeBool(self.success)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.success)
+ return value
+
+ def __repr__(self):
+ L = ['%s=%r' % (key, value)
+ for key, value in self.__dict__.iteritems()]
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+ def __eq__(self, other):
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not (self == other)
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/standalone-metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py b/standalone-metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py
index 972db1f..f2f61e0 100644
--- a/standalone-metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py
+++ b/standalone-metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py
@@ -16941,6 +16941,7 @@ class Materialization:
- tablesUsed
- validTxnList
- invalidationTime
+ - sourceTablesUpdateDeleteModified
"""
thrift_spec = (
@@ -16948,12 +16949,14 @@ class Materialization:
(1, TType.SET, 'tablesUsed', (TType.STRING,None), None, ), # 1
(2, TType.STRING, 'validTxnList', None, None, ), # 2
(3, TType.I64, 'invalidationTime', None, None, ), # 3
+ (4, TType.BOOL, 'sourceTablesUpdateDeleteModified', None, None, ), # 4
)
- def __init__(self, tablesUsed=None, validTxnList=None, invalidationTime=None,):
+ def __init__(self, tablesUsed=None, validTxnList=None, invalidationTime=None, sourceTablesUpdateDeleteModified=None,):
self.tablesUsed = tablesUsed
self.validTxnList = validTxnList
self.invalidationTime = invalidationTime
+ self.sourceTablesUpdateDeleteModified = sourceTablesUpdateDeleteModified
def read(self, iprot):
if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
@@ -16984,6 +16987,11 @@ class Materialization:
self.invalidationTime = iprot.readI64()
else:
iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.BOOL:
+ self.sourceTablesUpdateDeleteModified = iprot.readBool()
+ else:
+ iprot.skip(ftype)
else:
iprot.skip(ftype)
iprot.readFieldEnd()
@@ -17009,14 +17017,16 @@ class Materialization:
oprot.writeFieldBegin('invalidationTime', TType.I64, 3)
oprot.writeI64(self.invalidationTime)
oprot.writeFieldEnd()
+ if self.sourceTablesUpdateDeleteModified is not None:
+ oprot.writeFieldBegin('sourceTablesUpdateDeleteModified', TType.BOOL, 4)
+ oprot.writeBool(self.sourceTablesUpdateDeleteModified)
+ oprot.writeFieldEnd()
oprot.writeFieldStop()
oprot.writeStructEnd()
def validate(self):
if self.tablesUsed is None:
raise TProtocol.TProtocolException(message='Required field tablesUsed is unset!')
- if self.invalidationTime is None:
- raise TProtocol.TProtocolException(message='Required field invalidationTime is unset!')
return
@@ -17025,6 +17035,7 @@ class Materialization:
value = (value * 31) ^ hash(self.tablesUsed)
value = (value * 31) ^ hash(self.validTxnList)
value = (value * 31) ^ hash(self.invalidationTime)
+ value = (value * 31) ^ hash(self.sourceTablesUpdateDeleteModified)
return value
def __repr__(self):
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/standalone-metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb b/standalone-metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb
index 94454a1..0e70e89 100644
--- a/standalone-metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb
+++ b/standalone-metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb
@@ -3814,18 +3814,19 @@ class Materialization
TABLESUSED = 1
VALIDTXNLIST = 2
INVALIDATIONTIME = 3
+ SOURCETABLESUPDATEDELETEMODIFIED = 4
FIELDS = {
TABLESUSED => {:type => ::Thrift::Types::SET, :name => 'tablesUsed', :element => {:type => ::Thrift::Types::STRING}},
VALIDTXNLIST => {:type => ::Thrift::Types::STRING, :name => 'validTxnList', :optional => true},
- INVALIDATIONTIME => {:type => ::Thrift::Types::I64, :name => 'invalidationTime'}
+ INVALIDATIONTIME => {:type => ::Thrift::Types::I64, :name => 'invalidationTime', :optional => true},
+ SOURCETABLESUPDATEDELETEMODIFIED => {:type => ::Thrift::Types::BOOL, :name => 'sourceTablesUpdateDeleteModified', :optional => true}
}
def struct_fields; FIELDS; end
def validate
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field tablesUsed is unset!') unless @tablesUsed
- raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field invalidationTime is unset!') unless @invalidationTime
end
::Thrift::Struct.generate_accessors self
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/standalone-metastore/src/gen/thrift/gen-rb/thrift_hive_metastore.rb
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/gen/thrift/gen-rb/thrift_hive_metastore.rb b/standalone-metastore/src/gen/thrift/gen-rb/thrift_hive_metastore.rb
index c103675..58ebd29 100644
--- a/standalone-metastore/src/gen/thrift/gen-rb/thrift_hive_metastore.rb
+++ b/standalone-metastore/src/gen/thrift/gen-rb/thrift_hive_metastore.rb
@@ -3348,6 +3348,36 @@ module ThriftHiveMetastore
raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_serde failed: unknown result')
end
+ def get_lock_materialization_rebuild(dbName, tableName, txnId)
+ send_get_lock_materialization_rebuild(dbName, tableName, txnId)
+ return recv_get_lock_materialization_rebuild()
+ end
+
+ def send_get_lock_materialization_rebuild(dbName, tableName, txnId)
+ send_message('get_lock_materialization_rebuild', Get_lock_materialization_rebuild_args, :dbName => dbName, :tableName => tableName, :txnId => txnId)
+ end
+
+ def recv_get_lock_materialization_rebuild()
+ result = receive_message(Get_lock_materialization_rebuild_result)
+ return result.success unless result.success.nil?
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_lock_materialization_rebuild failed: unknown result')
+ end
+
+ def heartbeat_lock_materialization_rebuild(dbName, tableName, txnId)
+ send_heartbeat_lock_materialization_rebuild(dbName, tableName, txnId)
+ return recv_heartbeat_lock_materialization_rebuild()
+ end
+
+ def send_heartbeat_lock_materialization_rebuild(dbName, tableName, txnId)
+ send_message('heartbeat_lock_materialization_rebuild', Heartbeat_lock_materialization_rebuild_args, :dbName => dbName, :tableName => tableName, :txnId => txnId)
+ end
+
+ def recv_heartbeat_lock_materialization_rebuild()
+ result = receive_message(Heartbeat_lock_materialization_rebuild_result)
+ return result.success unless result.success.nil?
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'heartbeat_lock_materialization_rebuild failed: unknown result')
+ end
+
end
class Processor < ::FacebookService::Processor
@@ -5875,6 +5905,20 @@ module ThriftHiveMetastore
write_result(result, oprot, 'get_serde', seqid)
end
+ def process_get_lock_materialization_rebuild(seqid, iprot, oprot)
+ args = read_args(iprot, Get_lock_materialization_rebuild_args)
+ result = Get_lock_materialization_rebuild_result.new()
+ result.success = @handler.get_lock_materialization_rebuild(args.dbName, args.tableName, args.txnId)
+ write_result(result, oprot, 'get_lock_materialization_rebuild', seqid)
+ end
+
+ def process_heartbeat_lock_materialization_rebuild(seqid, iprot, oprot)
+ args = read_args(iprot, Heartbeat_lock_materialization_rebuild_args)
+ result = Heartbeat_lock_materialization_rebuild_result.new()
+ result.success = @handler.heartbeat_lock_materialization_rebuild(args.dbName, args.tableName, args.txnId)
+ write_result(result, oprot, 'heartbeat_lock_materialization_rebuild', seqid)
+ end
+
end
# HELPER FUNCTIONS AND STRUCTURES
@@ -13301,5 +13345,77 @@ module ThriftHiveMetastore
::Thrift::Struct.generate_accessors self
end
+ class Get_lock_materialization_rebuild_args
+ include ::Thrift::Struct, ::Thrift::Struct_Union
+ DBNAME = 1
+ TABLENAME = 2
+ TXNID = 3
+
+ FIELDS = {
+ DBNAME => {:type => ::Thrift::Types::STRING, :name => 'dbName'},
+ TABLENAME => {:type => ::Thrift::Types::STRING, :name => 'tableName'},
+ TXNID => {:type => ::Thrift::Types::I64, :name => 'txnId'}
+ }
+
+ def struct_fields; FIELDS; end
+
+ def validate
+ end
+
+ ::Thrift::Struct.generate_accessors self
+ end
+
+ class Get_lock_materialization_rebuild_result
+ include ::Thrift::Struct, ::Thrift::Struct_Union
+ SUCCESS = 0
+
+ FIELDS = {
+ SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::LockResponse}
+ }
+
+ def struct_fields; FIELDS; end
+
+ def validate
+ end
+
+ ::Thrift::Struct.generate_accessors self
+ end
+
+ class Heartbeat_lock_materialization_rebuild_args
+ include ::Thrift::Struct, ::Thrift::Struct_Union
+ DBNAME = 1
+ TABLENAME = 2
+ TXNID = 3
+
+ FIELDS = {
+ DBNAME => {:type => ::Thrift::Types::STRING, :name => 'dbName'},
+ TABLENAME => {:type => ::Thrift::Types::STRING, :name => 'tableName'},
+ TXNID => {:type => ::Thrift::Types::I64, :name => 'txnId'}
+ }
+
+ def struct_fields; FIELDS; end
+
+ def validate
+ end
+
+ ::Thrift::Struct.generate_accessors self
+ end
+
+ class Heartbeat_lock_materialization_rebuild_result
+ include ::Thrift::Struct, ::Thrift::Struct_Union
+ SUCCESS = 0
+
+ FIELDS = {
+ SUCCESS => {:type => ::Thrift::Types::BOOL, :name => 'success'}
+ }
+
+ def struct_fields; FIELDS; end
+
+ def validate
+ end
+
+ ::Thrift::Struct.generate_accessors self
+ end
+
end
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
index c81b8fa..30922ba 100644
--- a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
@@ -8367,6 +8367,18 @@ public class HiveMetaStore extends ThriftHiveMetastore {
endFunction("get_serde", serde != null, ex);
}
}
+
+ @Override
+ public LockResponse get_lock_materialization_rebuild(String dbName, String tableName, long txnId)
+ throws TException {
+ return MaterializationsRebuildLockHandler.get().lockResource(dbName, tableName, txnId);
+ }
+
+ @Override
+ public boolean heartbeat_lock_materialization_rebuild(String dbName, String tableName, long txnId)
+ throws TException {
+ return MaterializationsRebuildLockHandler.get().refreshLockResource(dbName, tableName, txnId);
+ }
}
private static IHMSHandler newRetryingHMSHandler(IHMSHandler baseHandler, Configuration conf)
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java
index ebbf465..95a3767 100644
--- a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java
@@ -3127,4 +3127,14 @@ public class HiveMetaStoreClient implements IMetaStoreClient, AutoCloseable {
else if (max <= Short.MAX_VALUE) return (short)max;
else return Short.MAX_VALUE;
}
+
+ @Override
+ public LockResponse lockMaterializationRebuild(String dbName, String tableName, long txnId) throws TException {
+ return client.get_lock_materialization_rebuild(dbName, tableName, txnId);
+ }
+
+ @Override
+ public boolean heartbeatLockMaterializationRebuild(String dbName, String tableName, long txnId) throws TException {
+ return client.heartbeat_lock_materialization_rebuild(dbName, tableName, txnId);
+ }
}
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java
index b2c40c2..98674cf 100644
--- a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java
@@ -3613,4 +3613,25 @@ public interface IMetaStoreClient {
* @throws TException general thrift error
*/
SerDeInfo getSerDe(String serDeName) throws TException;
+
+ /**
+ * Acquire the materialization rebuild lock for a given view. We need to specify the fully
+ * qualified name of the materialized view and the open transaction ID so we can identify
+ * uniquely the lock.
+ * @param dbName db name for the materialized view
+ * @param tableName table name for the materialized view
+ * @param txnId transaction id for the rebuild
+ * @return the response from the metastore, where the lock id is equal to the txn id and
+ * the status can be either ACQUIRED or NOT ACQUIRED
+ */
+ LockResponse lockMaterializationRebuild(String dbName, String tableName, long txnId) throws TException;
+
+ /**
+ * Method to refresh the acquisition of a given materialization rebuild lock.
+ * @param dbName db name for the materialized view
+ * @param tableName table name for the materialized view
+ * @param txnId transaction id for the rebuild
+ * @return true if the lock could be renewed, false otherwise
+ */
+ boolean heartbeatLockMaterializationRebuild(String dbName, String tableName, long txnId) throws TException;
}
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/MaterializationInvalidationInfo.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/MaterializationInvalidationInfo.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/MaterializationInvalidationInfo.java
deleted file mode 100644
index 3d77407..0000000
--- a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/MaterializationInvalidationInfo.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.hive.metastore;
-
-import java.util.Set;
-import java.util.concurrent.atomic.AtomicLong;
-
-import org.apache.hadoop.hive.metastore.api.Materialization;
-import org.apache.hadoop.hive.metastore.api.Table;
-
-/**
- * Contains information about the invalidation of a materialization,
- * including the materialization name, the tables that it uses, and
- * the invalidation time, i.e., the first moment t0 after the
- * materialization was created at which one of the tables that it uses
- * was modified.
- */
-@SuppressWarnings("serial")
-public class MaterializationInvalidationInfo extends Materialization {
-
- private AtomicLong invalidationTime;
-
- public MaterializationInvalidationInfo(Set<String> tablesUsed, String validTxnList) {
- super(tablesUsed, 0);
- this.setValidTxnList(validTxnList);
- this.invalidationTime = new AtomicLong(0);
- }
-
- public boolean compareAndSetInvalidationTime(long expect, long update) {
- boolean success = invalidationTime.compareAndSet(expect, update);
- if (success) {
- super.setInvalidationTime(update);
- }
- return success;
- }
-
- public long getInvalidationTime() {
- return invalidationTime.get();
- }
-
- public void setInvalidationTime(long invalidationTime) {
- throw new UnsupportedOperationException("You should call compareAndSetInvalidationTime instead");
- }
-
-}
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/MaterializationsInvalidationCache.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/MaterializationsInvalidationCache.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/MaterializationsInvalidationCache.java
index 80cb1de..99c5abc 100644
--- a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/MaterializationsInvalidationCache.java
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/MaterializationsInvalidationCache.java
@@ -26,15 +26,17 @@ import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.ConcurrentSkipListMap;
+import java.util.concurrent.ConcurrentSkipListSet;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hive.common.ValidReadTxnList;
-import org.apache.hadoop.hive.common.ValidTxnList;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
+import org.apache.hadoop.hive.common.ValidTxnWriteIdList;
+import org.apache.hadoop.hive.common.ValidWriteIdList;
import org.apache.hadoop.hive.metastore.api.BasicTxnInfo;
+import org.apache.hadoop.hive.metastore.api.LockResponse;
import org.apache.hadoop.hive.metastore.api.Materialization;
import org.apache.hadoop.hive.metastore.api.MetaException;
import org.apache.hadoop.hive.metastore.api.Table;
@@ -65,10 +67,12 @@ public final class MaterializationsInvalidationCache {
/* Key is the database name. Each value is a map from the unique view qualified name to
* the materialization invalidation info. This invalidation object contains information
- * such as the tables used by the materialized view or the invalidation time, i.e., first
- * modification of the tables used by materialized view after the view was created. */
- private final ConcurrentMap<String, ConcurrentMap<String, MaterializationInvalidationInfo>> materializations =
- new ConcurrentHashMap<String, ConcurrentMap<String, MaterializationInvalidationInfo>>();
+ * such as the tables used by the materialized view, whether there was any update or
+ * delete in the source tables since the materialized view was created or rebuilt,
+ * or the invalidation time, i.e., first modification of the tables used by materialized
+ * view after the view was created. */
+ private final ConcurrentMap<String, ConcurrentMap<String, Materialization>> materializations =
+ new ConcurrentHashMap<>();
/*
* Key is a qualified table name. The value is a (sorted) tree map (supporting concurrent
@@ -77,7 +81,10 @@ public final class MaterializationsInvalidationCache {
* materialization.
*/
private final ConcurrentMap<String, ConcurrentSkipListMap<Long, Long>> tableModifications =
- new ConcurrentHashMap<String, ConcurrentSkipListMap<Long, Long>>();
+ new ConcurrentHashMap<>();
+
+ private final ConcurrentMap<String, ConcurrentSkipListSet<Long>> updateDeleteTableModifications =
+ new ConcurrentHashMap<>();
/* Whether the cache has been initialized or not. */
private boolean initialized;
@@ -188,9 +195,9 @@ public final class MaterializationsInvalidationCache {
return;
}
// We are going to create the map for each view in the given database
- ConcurrentMap<String, MaterializationInvalidationInfo> cq =
- new ConcurrentHashMap<String, MaterializationInvalidationInfo>();
- final ConcurrentMap<String, MaterializationInvalidationInfo> prevCq = materializations.putIfAbsent(
+ ConcurrentMap<String, Materialization> cq =
+ new ConcurrentHashMap<String, Materialization>();
+ final ConcurrentMap<String, Materialization> prevCq = materializations.putIfAbsent(
dbName, cq);
if (prevCq != null) {
cq = prevCq;
@@ -204,13 +211,15 @@ public final class MaterializationsInvalidationCache {
}
if (opType == OpType.CREATE || opType == OpType.ALTER) {
// You store the materialized view
- cq.put(tableName, new MaterializationInvalidationInfo(tablesUsed, validTxnList));
+ Materialization materialization = new Materialization(tablesUsed);
+ materialization.setValidTxnList(validTxnList);
+ cq.put(tableName, materialization);
} else {
- ValidTxnList txnList = new ValidReadTxnList(validTxnList);
+ ValidTxnWriteIdList txnList = new ValidTxnWriteIdList(validTxnList);
for (String qNameTableUsed : tablesUsed) {
+ ValidWriteIdList tableTxnList = txnList.getTableValidWriteIdList(qNameTableUsed);
// First we insert a new tree set to keep table modifications, unless it already exists
- ConcurrentSkipListMap<Long, Long> modificationsTree =
- new ConcurrentSkipListMap<Long, Long>();
+ ConcurrentSkipListMap<Long, Long> modificationsTree = new ConcurrentSkipListMap<>();
final ConcurrentSkipListMap<Long, Long> prevModificationsTree = tableModifications.putIfAbsent(
qNameTableUsed, modificationsTree);
if (prevModificationsTree != null) {
@@ -222,7 +231,7 @@ public final class MaterializationsInvalidationCache {
try {
String[] names = qNameTableUsed.split("\\.");
BasicTxnInfo e = handler.getTxnHandler().getFirstCompletedTransactionForTableAfterCommit(
- names[0], names[1], txnList);
+ names[0], names[1], tableTxnList);
if (!e.isIsnull()) {
modificationsTree.put(e.getTxnid(), e.getTime());
// We do not need to do anything more for current table, as we detected
@@ -236,7 +245,9 @@ public final class MaterializationsInvalidationCache {
}
}
// For LOAD, you only add it if it does exist as you might be loading an outdated MV
- cq.putIfAbsent(tableName, new MaterializationInvalidationInfo(tablesUsed, validTxnList));
+ Materialization materialization = new Materialization(tablesUsed);
+ materialization.setValidTxnList(validTxnList);
+ cq.putIfAbsent(tableName, materialization);
}
if (LOG.isDebugEnabled()) {
LOG.debug("Cached materialized view for rewriting in invalidation cache: " +
@@ -249,7 +260,7 @@ public final class MaterializationsInvalidationCache {
* invalidation for the MVs that use that table.
*/
public void notifyTableModification(String dbName, String tableName,
- long txnId, long newModificationTime) {
+ long txnId, long newModificationTime, boolean isUpdateDelete) {
if (disable) {
// Nothing to do
return;
@@ -258,8 +269,18 @@ public final class MaterializationsInvalidationCache {
LOG.debug("Notification for table {} in database {} received -> id: {}, time: {}",
tableName, dbName, txnId, newModificationTime);
}
- ConcurrentSkipListMap<Long, Long> modificationsTree =
- new ConcurrentSkipListMap<Long, Long>();
+ if (isUpdateDelete) {
+ // We update first the update/delete modifications record
+ ConcurrentSkipListSet<Long> modificationsSet = new ConcurrentSkipListSet<>();
+ final ConcurrentSkipListSet<Long> prevModificationsSet =
+ updateDeleteTableModifications.putIfAbsent(Warehouse.getQualifiedName(dbName, tableName),
+ modificationsSet);
+ if (prevModificationsSet != null) {
+ modificationsSet = prevModificationsSet;
+ }
+ modificationsSet.add(txnId);
+ }
+ ConcurrentSkipListMap<Long, Long> modificationsTree = new ConcurrentSkipListMap<>();
final ConcurrentSkipListMap<Long, Long> prevModificationsTree =
tableModifications.putIfAbsent(Warehouse.getQualifiedName(dbName, tableName), modificationsTree);
if (prevModificationsTree != null) {
@@ -293,30 +314,21 @@ public final class MaterializationsInvalidationCache {
if (materializations.get(dbName) != null) {
ImmutableMap.Builder<String, Materialization> m = ImmutableMap.builder();
for (String materializationName : materializationNames) {
- MaterializationInvalidationInfo materialization =
+ Materialization materialization =
materializations.get(dbName).get(materializationName);
if (materialization == null) {
LOG.debug("Materialization {} skipped as there is no information "
+ "in the invalidation cache about it", materializationName);
continue;
}
- long invalidationTime = getInvalidationTime(materialization);
- // We need to check whether previous value is zero, as data modification
- // in another table used by the materialized view might have modified
- // the value too
- boolean modified = materialization.compareAndSetInvalidationTime(0L, invalidationTime);
- while (!modified) {
- long currentInvalidationTime = materialization.getInvalidationTime();
- if (invalidationTime < currentInvalidationTime) {
- // It was set by other table modification, but it was after this table modification
- // hence we need to set it
- modified = materialization.compareAndSetInvalidationTime(currentInvalidationTime, invalidationTime);
- } else {
- // Nothing to do
- modified = true;
- }
- }
- m.put(materializationName, materialization);
+ // We create a deep copy of the materialization, as we need to set the time
+ // and whether any update/delete operation happen on the tables that it uses
+ // since it was created.
+ Materialization materializationCopy = new Materialization(
+ materialization.getTablesUsed());
+ materializationCopy.setValidTxnList(materialization.getValidTxnList());
+ enrichWithInvalidationInfo(materializationCopy);
+ m.put(materializationName, materializationCopy);
}
Map<String, Materialization> result = m.build();
if (LOG.isDebugEnabled()) {
@@ -327,50 +339,65 @@ public final class MaterializationsInvalidationCache {
return ImmutableMap.of();
}
- private long getInvalidationTime(MaterializationInvalidationInfo materialization) {
- String txnListString = materialization.getValidTxnList();
- if (txnListString == null) {
+ private void enrichWithInvalidationInfo(Materialization materialization) {
+ String materializationTxnListString = materialization.getValidTxnList();
+ if (materializationTxnListString == null) {
// This can happen when the materialization was created on non-transactional tables
- return Long.MIN_VALUE;
+ materialization.setInvalidationTime(Long.MIN_VALUE);
+ return;
}
// We will obtain the modification time as follows.
// First, we obtain the first element after high watermark (if any)
// Then, we iterate through the elements from min open txn till high
// watermark, updating the modification time after creation if needed
- ValidTxnList txnList = new ValidReadTxnList(txnListString);
+ ValidTxnWriteIdList materializationTxnList = new ValidTxnWriteIdList(materializationTxnListString);
long firstModificationTimeAfterCreation = 0L;
+ boolean containsUpdateDelete = false;
for (String qNameTableUsed : materialization.getTablesUsed()) {
- final Entry<Long, Long> tn = tableModifications.get(qNameTableUsed)
- .higherEntry(txnList.getHighWatermark());
+ final ValidWriteIdList tableMaterializationTxnList =
+ materializationTxnList.getTableValidWriteIdList(qNameTableUsed);
+
+ final ConcurrentSkipListMap<Long, Long> usedTableModifications =
+ tableModifications.get(qNameTableUsed);
+ final ConcurrentSkipListSet<Long> usedUDTableModifications =
+ updateDeleteTableModifications.get(qNameTableUsed);
+ final Entry<Long, Long> tn = usedTableModifications.higherEntry(tableMaterializationTxnList.getHighWatermark());
if (tn != null) {
if (firstModificationTimeAfterCreation == 0L ||
tn.getValue() < firstModificationTimeAfterCreation) {
firstModificationTimeAfterCreation = tn.getValue();
}
+ // Check if there was any update/delete after creation
+ containsUpdateDelete = usedUDTableModifications != null &&
+ !usedUDTableModifications.tailSet(tableMaterializationTxnList.getHighWatermark(), false).isEmpty();
}
// Min open txn might be null if there were no open transactions
// when this transaction was being executed
- if (txnList.getMinOpenTxn() != null) {
+ if (tableMaterializationTxnList.getMinOpenWriteId() != null) {
// Invalid transaction list is sorted
int pos = 0;
- for (Map.Entry<Long, Long> t : tableModifications.get(qNameTableUsed)
- .subMap(txnList.getMinOpenTxn(), txnList.getHighWatermark()).entrySet()) {
- while (pos < txnList.getInvalidTransactions().length &&
- txnList.getInvalidTransactions()[pos] != t.getKey()) {
+ for (Map.Entry<Long, Long> t : usedTableModifications
+ .subMap(tableMaterializationTxnList.getMinOpenWriteId(), tableMaterializationTxnList.getHighWatermark()).entrySet()) {
+ while (pos < tableMaterializationTxnList.getInvalidWriteIds().length &&
+ tableMaterializationTxnList.getInvalidWriteIds()[pos] != t.getKey()) {
pos++;
}
- if (pos >= txnList.getInvalidTransactions().length) {
+ if (pos >= tableMaterializationTxnList.getInvalidWriteIds().length) {
break;
}
if (firstModificationTimeAfterCreation == 0L ||
t.getValue() < firstModificationTimeAfterCreation) {
firstModificationTimeAfterCreation = t.getValue();
}
+ containsUpdateDelete = containsUpdateDelete ||
+ (usedUDTableModifications != null && usedUDTableModifications.contains(t.getKey()));
}
}
}
- return firstModificationTimeAfterCreation;
+
+ materialization.setInvalidationTime(firstModificationTimeAfterCreation);
+ materialization.setSourceTablesUpdateDeleteModified(containsUpdateDelete);
}
private enum OpType {
@@ -395,16 +422,17 @@ public final class MaterializationsInvalidationCache {
// We execute the cleanup in two steps
// First we gather all the transactions that need to be kept
final Multimap<String, Long> keepTxnInfos = HashMultimap.create();
- for (Map.Entry<String, ConcurrentMap<String, MaterializationInvalidationInfo>> e : materializations.entrySet()) {
- for (MaterializationInvalidationInfo m : e.getValue().values()) {
- ValidTxnList txnList = new ValidReadTxnList(m.getValidTxnList());
+ for (Map.Entry<String, ConcurrentMap<String, Materialization>> e : materializations.entrySet()) {
+ for (Materialization m : e.getValue().values()) {
+ ValidTxnWriteIdList txnList = new ValidTxnWriteIdList(m.getValidTxnList());
boolean canBeDeleted = false;
String currentTableForInvalidatingTxn = null;
long currentInvalidatingTxnId = 0L;
long currentInvalidatingTxnTime = 0L;
for (String qNameTableUsed : m.getTablesUsed()) {
+ ValidWriteIdList tableTxnList = txnList.getTableValidWriteIdList(qNameTableUsed);
final Entry<Long, Long> tn = tableModifications.get(qNameTableUsed)
- .higherEntry(txnList.getHighWatermark());
+ .higherEntry(tableTxnList.getHighWatermark());
if (tn != null) {
if (currentInvalidatingTxnTime == 0L ||
tn.getValue() < currentInvalidatingTxnTime) {
@@ -424,16 +452,16 @@ public final class MaterializationsInvalidationCache {
currentInvalidatingTxnTime = tn.getValue();
}
}
- if (txnList.getMinOpenTxn() != null) {
+ if (tableTxnList.getMinOpenWriteId() != null) {
// Invalid transaction list is sorted
int pos = 0;
for (Entry<Long, Long> t : tableModifications.get(qNameTableUsed)
- .subMap(txnList.getMinOpenTxn(), txnList.getHighWatermark()).entrySet()) {
- while (pos < txnList.getInvalidTransactions().length &&
- txnList.getInvalidTransactions()[pos] != t.getKey()) {
+ .subMap(tableTxnList.getMinOpenWriteId(), tableTxnList.getHighWatermark()).entrySet()) {
+ while (pos < tableTxnList.getInvalidWriteIds().length &&
+ tableTxnList.getInvalidWriteIds()[pos] != t.getKey()) {
pos++;
}
- if (pos >= txnList.getInvalidTransactions().length) {
+ if (pos >= tableTxnList.getInvalidWriteIds().length) {
break;
}
if (currentInvalidatingTxnTime == 0L ||
@@ -462,6 +490,7 @@ public final class MaterializationsInvalidationCache {
long removed = 0L;
for (Entry<String, ConcurrentSkipListMap<Long, Long>> e : tableModifications.entrySet()) {
Collection<Long> c = keepTxnInfos.get(e.getKey());
+ ConcurrentSkipListSet<Long> updateDeleteForTable = updateDeleteTableModifications.get(e.getKey());
for (Iterator<Entry<Long, Long>> it = e.getValue().entrySet().iterator(); it.hasNext();) {
Entry<Long, Long> v = it.next();
// We need to check again the time because some of the transactions might not be explored
@@ -472,6 +501,9 @@ public final class MaterializationsInvalidationCache {
LOG.debug("Transaction removed from cache for table {} -> id: {}, time: {}",
e.getKey(), v.getKey(), v.getValue());
}
+ if (updateDeleteForTable != null) {
+ updateDeleteForTable.remove(v.getKey());
+ }
it.remove();
removed++;
}
@@ -480,4 +512,23 @@ public final class MaterializationsInvalidationCache {
return removed;
}
+ /**
+ * Checks whether the given materialization exists in the invalidation cache.
+ * @param dbName the database name for the materialization
+ * @param tblName the table name for the materialization
+ * @return true if we have information about the materialization in the cache,
+ * false otherwise
+ */
+ public boolean containsMaterialization(String dbName, String tblName) {
+ if (disable || dbName == null || tblName == null) {
+ return false;
+ }
+ ConcurrentMap<String, Materialization> dbMaterializations = materializations.get(dbName);
+ if (dbMaterializations == null || dbMaterializations.get(tblName) == null) {
+ // This is a table
+ return false;
+ }
+ return true;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/MaterializationsRebuildLockCleanerTask.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/MaterializationsRebuildLockCleanerTask.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/MaterializationsRebuildLockCleanerTask.java
new file mode 100644
index 0000000..8ca9ede
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/MaterializationsRebuildLockCleanerTask.java
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hive.metastore;
+
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.hive.metastore.conf.MetastoreConf;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Cleaner for the {@link MaterializationsRebuildLockHandler}. It removes outdated locks
+ * in the intervals specified by the input property.
+ */
+public class MaterializationsRebuildLockCleanerTask implements MetastoreTaskThread {
+ private static final Logger LOG = LoggerFactory.getLogger(MaterializationsRebuildLockCleanerTask.class);
+
+ private Configuration conf;
+
+ @Override
+ public long runFrequency(TimeUnit unit) {
+ return MetastoreConf.getTimeVar(conf, MetastoreConf.ConfVars.TXN_TIMEOUT, unit) / 2;
+ }
+
+ @Override
+ public void setConf(Configuration configuration) {
+ conf = configuration;
+ }
+
+ @Override
+ public Configuration getConf() {
+ return conf;
+ }
+
+ @Override
+ public void run() {
+ long removedCnt = MaterializationsRebuildLockHandler.get().cleanupResourceLocks(
+ MetastoreConf.getTimeVar(conf, MetastoreConf.ConfVars.TXN_TIMEOUT, TimeUnit.MILLISECONDS));
+ if (removedCnt > 0) {
+ if (LOG.isDebugEnabled()) {
+ LOG.info("Number of materialization locks deleted: " + removedCnt);
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/MaterializationsRebuildLockHandler.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/MaterializationsRebuildLockHandler.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/MaterializationsRebuildLockHandler.java
new file mode 100644
index 0000000..dd31226
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/MaterializationsRebuildLockHandler.java
@@ -0,0 +1,216 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hive.metastore;
+
+import org.apache.hadoop.hive.metastore.api.LockResponse;
+import org.apache.hadoop.hive.metastore.api.LockState;
+import org.apache.hadoop.hive.metastore.api.MetaException;
+
+import java.util.Iterator;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.atomic.AtomicLong;
+import java.util.concurrent.atomic.AtomicReference;
+
+/**
+ * This is a lock handler implementation for the materializations rebuild.
+ * It is lightweight: it does not persist any information to metastore db.
+ * Its states are as follows:
+ * 1) request lock -> 2) ACQUIRED -> 4) COMMIT_READY -> 6) release lock
+ * -> 5) EXPIRED ->
+ * -> 3) NOT_ACQUIRED
+ * First, the rebuild operation will ACQUIRE the lock. If other rebuild
+ * operation for the same operation is already running, we lock status
+ * will be NOT_ACQUIRED.
+ * Before committing the rebuild, the txn handler will signal the handler
+ * that it is ready to commit the resource (move state to COMMIT_READY).
+ * We make sure the lock is still available before moving to the new state.
+ * A lock will not be able to expire when it is in COMMIT_READY state.
+ * The unlock method is always call by the txn handler, no matter whether
+ * the transaction succeeds or not, e.g., due to an Exception.
+ * From ACQUIRED, locks can be also moved to EXPIRED state when they
+ * expire. From EXPIRED, they can only be released.
+ */
+public class MaterializationsRebuildLockHandler {
+
+ /* Singleton */
+ private static final MaterializationsRebuildLockHandler SINGLETON = new MaterializationsRebuildLockHandler();
+
+ private final ConcurrentMap<String, ResourceLock> locks = new ConcurrentHashMap<>();
+
+ private MaterializationsRebuildLockHandler() {
+ }
+
+ /**
+ * Get instance of MaterializationsRebuildLockHandler.
+ *
+ * @return the singleton
+ */
+ public static MaterializationsRebuildLockHandler get() {
+ return SINGLETON;
+ }
+
+ /**
+ * Lock materialized view (first step for rebuild). Response contains a lock id
+ * that corresponds to the input transaction id, and whether the lock was
+ * ACQUIRED or NOT_ACQUIRED.
+ * @param dbName the db name of the materialization
+ * @param tableName the table name of the materialization
+ * @param txnId the transaction id for the rebuild
+ * @return the response to the lock request
+ */
+ public LockResponse lockResource(String dbName, String tableName, long txnId) {
+ final ResourceLock prevResourceLock = locks.putIfAbsent(
+ Warehouse.getQualifiedName(dbName, tableName),
+ new ResourceLock(txnId, System.nanoTime(), State.ACQUIRED));
+ if (prevResourceLock != null) {
+ return new LockResponse(txnId, LockState.NOT_ACQUIRED);
+ }
+ return new LockResponse(txnId, LockState.ACQUIRED);
+ }
+
+ /**
+ * Moves from ACQUIRED state to COMMIT_READY.
+ * @param dbName the db name of the materialization
+ * @param tableName the table name of the materialization
+ * @param txnId the transaction id for the rebuild
+ * @return true if the lock was still active and we could move the materialization
+ * to COMMIT_READY state, false otherwise
+ */
+ public boolean readyToCommitResource(String dbName, String tableName, long txnId) {
+ final ResourceLock prevResourceLock = locks.get(Warehouse.getQualifiedName(dbName, tableName));
+ if (prevResourceLock == null || prevResourceLock.txnId != txnId) {
+ // Lock was outdated and it was removed (then maybe another transaction picked it up)
+ return false;
+ }
+ return prevResourceLock.state.compareAndSet(State.ACQUIRED, State.COMMIT_READY);
+ }
+
+ /**
+ * Heartbeats a certain lock and refreshes its timer.
+ * @param dbName the db name of the materialization
+ * @param tableName the table name of the materialization
+ * @param txnId the transaction id for the rebuild
+ * @throws MetaException
+ */
+ public boolean refreshLockResource(String dbName, String tableName, long txnId) {
+ final ResourceLock prevResourceLock = locks.get(Warehouse.getQualifiedName(dbName, tableName));
+ if (prevResourceLock == null || prevResourceLock.txnId != txnId ||
+ prevResourceLock.state.get() != State.ACQUIRED) {
+ // Lock was outdated and it was removed (then maybe another transaction picked it up)
+ // or changed its state
+ return false;
+ }
+ prevResourceLock.lastHeartBeatTime.set(System.currentTimeMillis());
+ return true;
+ }
+
+ /**
+ * Releases a certain lock.
+ * @param dbName the db name of the materialization
+ * @param tableName the table name of the materialization
+ * @param txnId the transaction id for the rebuild
+ * @return true if the lock could be released properly, false otherwise
+ * @throws MetaException
+ */
+ public boolean unlockResource(String dbName, String tableName, long txnId) {
+ final String fullyQualifiedName = Warehouse.getQualifiedName(dbName, tableName);
+ final ResourceLock prevResourceLock = locks.get(fullyQualifiedName);
+ if (prevResourceLock == null || prevResourceLock.txnId != txnId) {
+ return false;
+ }
+ return locks.remove(fullyQualifiedName, prevResourceLock);
+ }
+
+ /**
+ * Method that removes from the handler those locks that have expired.
+ * @param timeout time after which we consider the locks to have expired
+ * @throws MetaException
+ */
+ public long cleanupResourceLocks(long timeout) {
+ long removed = 0L;
+ final long currentTime = System.currentTimeMillis();
+ for (Iterator<Map.Entry<String, ResourceLock>> it = locks.entrySet().iterator(); it.hasNext();) {
+ final ResourceLock resourceLock = it.next().getValue();
+ if (currentTime - resourceLock.lastHeartBeatTime.get() > timeout) {
+ if (resourceLock.state.compareAndSet(State.ACQUIRED, State.EXPIRED)) {
+ it.remove();
+ removed++;
+ }
+ }
+ }
+ return removed;
+ }
+
+ /**
+ * This class represents a lock that consists of transaction id,
+ * last refresh time, and state.
+ */
+ private class ResourceLock {
+ final long txnId;
+ final AtomicLong lastHeartBeatTime;
+ final AtomicStateEnum state;
+
+ ResourceLock(long txnId, long lastHeartBeatTime, State state) {
+ this.txnId = txnId;
+ this.lastHeartBeatTime = new AtomicLong(lastHeartBeatTime);
+ this.state = new AtomicStateEnum(state);
+ }
+ }
+
+ private enum State {
+ // This is the initial state for a lock
+ ACQUIRED,
+ // This means that the lock is being committed at this instant, hence
+ // the cleaner should not remove it even if it times out. If transaction
+ // fails, the finally clause will remove the lock
+ COMMIT_READY,
+ // This means that the lock is ready to be cleaned, hence it cannot
+ // be committed anymore
+ EXPIRED;
+ }
+
+ /**
+ * Wrapper class around State enum to make its operations atomic.
+ */
+ private class AtomicStateEnum {
+ private final AtomicReference<State> ref;
+
+ public AtomicStateEnum(final State initialValue) {
+ this.ref = new AtomicReference<State>(initialValue);
+ }
+
+ public void set(final State newValue) {
+ this.ref.set(newValue);
+ }
+
+ public State get() {
+ return this.ref.get();
+ }
+
+ public State getAndSet(final State newValue) {
+ return this.ref.getAndSet(newValue);
+ }
+
+ public boolean compareAndSet(final State expect, final State update) {
+ return this.ref.compareAndSet(expect, update);
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/conf/MetastoreConf.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/conf/MetastoreConf.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/conf/MetastoreConf.java
index 940a1bf..f007261 100644
--- a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/conf/MetastoreConf.java
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/conf/MetastoreConf.java
@@ -22,6 +22,7 @@ import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hive.metastore.DefaultStorageSchemaReader;
import org.apache.hadoop.hive.metastore.HiveAlterHandler;
import org.apache.hadoop.hive.metastore.MaterializationsCacheCleanerTask;
+import org.apache.hadoop.hive.metastore.MaterializationsRebuildLockCleanerTask;
import org.apache.hadoop.hive.metastore.MetastoreTaskThread;
import org.apache.hadoop.hive.metastore.events.EventCleanerTask;
import org.apache.hadoop.hive.metastore.security.MetastoreDelegationTokenManager;
@@ -728,7 +729,8 @@ public class MetastoreConf {
TASK_THREADS_ALWAYS("metastore.task.threads.always", "metastore.task.threads.always",
EventCleanerTask.class.getName() + "," +
"org.apache.hadoop.hive.metastore.repl.DumpDirCleanerTask" + "," +
- MaterializationsCacheCleanerTask.class.getName(),
+ MaterializationsCacheCleanerTask.class.getName() + "," +
+ MaterializationsRebuildLockCleanerTask.class.getName(),
"Comma separated list of tasks that will be started in separate threads. These will " +
"always be started, regardless of whether the metastore is running in embedded mode " +
"or in server mode. They must implement " + MetastoreTaskThread.class.getName()),
[16/24] hive git commit: HIVE-18839: Implement incremental rebuild
for materialized views (only insert operations in source tables) (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_6.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_6.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_6.q.out
new file mode 100644
index 0000000..80c21ed
--- /dev/null
+++ b/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_6.q.out
@@ -0,0 +1,896 @@
+PREHOOK: query: create table emps (
+ empid int,
+ deptno int,
+ name varchar(256),
+ salary float,
+ commission int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@emps
+POSTHOOK: query: create table emps (
+ empid int,
+ deptno int,
+ name varchar(256),
+ salary float,
+ commission int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@emps
+PREHOOK: query: insert into emps values (100, 10, 'Bill', 10000, 1000), (200, 20, 'Eric', 8000, 500),
+ (150, 10, 'Sebastian', 7000, null), (110, 10, 'Theodore', 10000, 250), (110, 10, 'Bill', 10000, 250)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@emps
+POSTHOOK: query: insert into emps values (100, 10, 'Bill', 10000, 1000), (200, 20, 'Eric', 8000, 500),
+ (150, 10, 'Sebastian', 7000, null), (110, 10, 'Theodore', 10000, 250), (110, 10, 'Bill', 10000, 250)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@emps
+POSTHOOK: Lineage: emps.commission SCRIPT []
+POSTHOOK: Lineage: emps.deptno SCRIPT []
+POSTHOOK: Lineage: emps.empid SCRIPT []
+POSTHOOK: Lineage: emps.name SCRIPT []
+POSTHOOK: Lineage: emps.salary SCRIPT []
+PREHOOK: query: analyze table emps compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@emps
+PREHOOK: Output: default@emps
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table emps compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: default@emps
+#### A masked pattern was here ####
+PREHOOK: query: create table depts (
+ deptno int,
+ name varchar(256),
+ locationid int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@depts
+POSTHOOK: query: create table depts (
+ deptno int,
+ name varchar(256),
+ locationid int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@depts
+PREHOOK: query: insert into depts values (10, 'Sales', 10), (30, 'Marketing', null), (20, 'HR', 20)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@depts
+POSTHOOK: query: insert into depts values (10, 'Sales', 10), (30, 'Marketing', null), (20, 'HR', 20)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@depts
+POSTHOOK: Lineage: depts.deptno SCRIPT []
+POSTHOOK: Lineage: depts.locationid SCRIPT []
+POSTHOOK: Lineage: depts.name SCRIPT []
+PREHOOK: query: analyze table depts compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@depts
+PREHOOK: Output: default@depts
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table depts compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@depts
+POSTHOOK: Output: default@depts
+#### A masked pattern was here ####
+PREHOOK: query: create table dependents (
+ empid int,
+ name varchar(256))
+stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@dependents
+POSTHOOK: query: create table dependents (
+ empid int,
+ name varchar(256))
+stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@dependents
+PREHOOK: query: insert into dependents values (10, 'Michael'), (10, 'Jane')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@dependents
+POSTHOOK: query: insert into dependents values (10, 'Michael'), (10, 'Jane')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@dependents
+POSTHOOK: Lineage: dependents.empid SCRIPT []
+POSTHOOK: Lineage: dependents.name SCRIPT []
+PREHOOK: query: analyze table dependents compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dependents
+PREHOOK: Output: default@dependents
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table dependents compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dependents
+POSTHOOK: Output: default@dependents
+#### A masked pattern was here ####
+PREHOOK: query: create table locations (
+ locationid int,
+ name varchar(256))
+stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@locations
+POSTHOOK: query: create table locations (
+ locationid int,
+ name varchar(256))
+stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@locations
+PREHOOK: query: insert into locations values (10, 'San Francisco'), (10, 'San Diego')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@locations
+POSTHOOK: query: insert into locations values (10, 'San Francisco'), (10, 'San Diego')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@locations
+POSTHOOK: Lineage: locations.locationid SCRIPT []
+POSTHOOK: Lineage: locations.name SCRIPT []
+PREHOOK: query: analyze table locations compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@locations
+PREHOOK: Output: default@locations
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table locations compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@locations
+POSTHOOK: Output: default@locations
+#### A masked pattern was here ####
+PREHOOK: query: alter table emps add constraint pk1 primary key (empid) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table emps add constraint pk1 primary key (empid) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table depts add constraint pk2 primary key (deptno) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table depts add constraint pk2 primary key (deptno) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table dependents add constraint pk3 primary key (empid) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table dependents add constraint pk3 primary key (empid) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table locations add constraint pk4 primary key (locationid) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table locations add constraint pk4 primary key (locationid) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table emps add constraint fk1 foreign key (deptno) references depts(deptno) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table emps add constraint fk1 foreign key (deptno) references depts(deptno) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table depts add constraint fk2 foreign key (locationid) references locations(locationid) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table depts add constraint fk2 foreign key (locationid) references locations(locationid) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table emps change column deptno deptno int constraint nn1 not null disable novalidate rely
+PREHOOK: type: ALTERTABLE_RENAMECOL
+PREHOOK: Input: default@emps
+PREHOOK: Output: default@emps
+POSTHOOK: query: alter table emps change column deptno deptno int constraint nn1 not null disable novalidate rely
+POSTHOOK: type: ALTERTABLE_RENAMECOL
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: default@emps
+PREHOOK: query: alter table depts change column locationid locationid int constraint nn2 not null disable novalidate rely
+PREHOOK: type: ALTERTABLE_RENAMECOL
+PREHOOK: Input: default@depts
+PREHOOK: Output: default@depts
+POSTHOOK: query: alter table depts change column locationid locationid int constraint nn2 not null disable novalidate rely
+POSTHOOK: type: ALTERTABLE_RENAMECOL
+POSTHOOK: Input: default@depts
+POSTHOOK: Output: default@depts
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select name, deptno, salary, count(*) + 1 as c, sum(empid) as s
+from emps where deptno >= 10 group by name, deptno, salary
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select name, deptno, salary, count(*) + 1 as c, sum(empid) as s
+from emps where deptno >= 10 group by name, deptno, salary
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select salary, sum(empid) + 1 as s
+from emps where deptno > 10 group by salary
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select salary, sum(empid) + 1 as s
+from emps where deptno > 10 group by salary
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.mv1
+ Statistics: Num rows: 4 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: (deptno > 10) (type: boolean)
+ Statistics: Num rows: 4 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: salary (type: float), s (type: bigint)
+ outputColumnNames: salary, s
+ Statistics: Num rows: 4 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: sum(s)
+ keys: salary (type: float)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: float)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: float)
+ Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: bigint)
+ Execution mode: llap
+ LLAP IO: all inputs
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: sum(VALUE._col0)
+ keys: KEY._col0 (type: float)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col0 (type: float), (_col1 + 1L) (type: bigint)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select salary, sum(empid) + 1 as s
+from emps where deptno > 10 group by salary
+PREHOOK: type: QUERY
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select salary, sum(empid) + 1 as s
+from emps where deptno > 10 group by salary
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+8000.0 201
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select name, deptno, salary, count(*) + 1 as c, sum(empid) as s
+from emps where deptno >= 15 group by name, deptno, salary
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select name, deptno, salary, count(*) + 1 as c, sum(empid) as s
+from emps where deptno >= 15 group by name, deptno, salary
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select salary + 1, sum(empid) + 1 as s
+from emps where deptno > 15 group by salary
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select salary + 1, sum(empid) + 1 as s
+from emps where deptno > 15 group by salary
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.mv1
+ Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: (deptno > 15) (type: boolean)
+ Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: salary (type: float), s (type: bigint)
+ outputColumnNames: salary, s
+ Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: sum(s)
+ keys: salary (type: float)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: float)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: float)
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: bigint)
+ Execution mode: llap
+ LLAP IO: all inputs
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: sum(VALUE._col0)
+ keys: KEY._col0 (type: float)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: (_col0 + 1.0) (type: float), (_col1 + 1L) (type: bigint)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select salary + 1, sum(empid) + 1 as s
+from emps where deptno > 15 group by salary
+PREHOOK: type: QUERY
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select salary + 1, sum(empid) + 1 as s
+from emps where deptno > 15 group by salary
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+8001.0 201
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select depts.name
+from emps
+join depts on (emps.deptno = depts.deptno)
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select depts.name
+from emps
+join depts on (emps.deptno = depts.deptno)
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select dependents.empid
+from emps
+join depts on (emps.deptno = depts.deptno)
+join dependents on (depts.name = dependents.name)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select dependents.empid
+from emps
+join depts on (emps.deptno = depts.deptno)
+join dependents on (depts.name = dependents.name)
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 3 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.mv1
+ Statistics: Num rows: 5 Data size: 440 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: name is not null (type: boolean)
+ Statistics: Num rows: 5 Data size: 440 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: name (type: varchar(256))
+ outputColumnNames: _col0
+ Statistics: Num rows: 5 Data size: 440 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: varchar(256))
+ sort order: +
+ Map-reduce partition columns: _col0 (type: varchar(256))
+ Statistics: Num rows: 5 Data size: 440 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: all inputs
+ Map 3
+ Map Operator Tree:
+ TableScan
+ alias: dependents
+ Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: name is not null (type: boolean)
+ Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: empid (type: int), name (type: varchar(256))
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col1 (type: varchar(256))
+ sort order: +
+ Map-reduce partition columns: _col1 (type: varchar(256))
+ Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: int)
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: varchar(256))
+ 1 _col1 (type: varchar(256))
+ outputColumnNames: _col1
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col1 (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select dependents.empid
+from emps
+join depts on (emps.deptno = depts.deptno)
+join dependents on (depts.name = dependents.name)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select dependents.empid
+from emps
+join depts on (emps.deptno = depts.deptno)
+join dependents on (depts.name = dependents.name)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select depts.name
+from emps
+join depts on (emps.deptno = depts.deptno)
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select depts.name
+from emps
+join depts on (emps.deptno = depts.deptno)
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select dependents.empid
+from depts
+join dependents on (depts.name = dependents.name)
+join locations on (locations.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select dependents.empid
+from depts
+join dependents on (depts.name = dependents.name)
+join locations on (locations.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 3 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.mv1
+ Statistics: Num rows: 5 Data size: 440 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: name is not null (type: boolean)
+ Statistics: Num rows: 5 Data size: 440 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: name (type: varchar(256))
+ outputColumnNames: _col0
+ Statistics: Num rows: 5 Data size: 440 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: varchar(256))
+ sort order: +
+ Map-reduce partition columns: _col0 (type: varchar(256))
+ Statistics: Num rows: 5 Data size: 440 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: all inputs
+ Map 3
+ Map Operator Tree:
+ TableScan
+ alias: locations
+ Statistics: Num rows: 2 Data size: 190 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: name is not null (type: boolean)
+ Statistics: Num rows: 2 Data size: 190 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: name (type: varchar(256))
+ outputColumnNames: _col0
+ Statistics: Num rows: 2 Data size: 190 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: varchar(256))
+ sort order: +
+ Map-reduce partition columns: _col0 (type: varchar(256))
+ Statistics: Num rows: 2 Data size: 190 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 4
+ Map Operator Tree:
+ TableScan
+ alias: dependents
+ Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: name is not null (type: boolean)
+ Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: empid (type: int), name (type: varchar(256))
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col1 (type: varchar(256))
+ sort order: +
+ Map-reduce partition columns: _col1 (type: varchar(256))
+ Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: int)
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ Inner Join 0 to 2
+ keys:
+ 0 _col0 (type: varchar(256))
+ 1 _col0 (type: varchar(256))
+ 2 _col1 (type: varchar(256))
+ outputColumnNames: _col2
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col2 (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select dependents.empid
+from depts
+join dependents on (depts.name = dependents.name)
+join locations on (locations.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@locations
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select dependents.empid
+from depts
+join dependents on (depts.name = dependents.name)
+join locations on (locations.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@locations
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select emps.empid, emps.deptno, emps.name as name1, emps.salary, emps.commission, dependents.name as name2
+from emps join dependents on (emps.empid = dependents.empid)
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select emps.empid, emps.deptno, emps.name as name1, emps.salary, emps.commission, dependents.name as name2
+from emps join dependents on (emps.empid = dependents.empid)
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select emps.empid, dependents.empid, emps.deptno
+from emps
+join dependents on (emps.empid = dependents.empid)
+join depts a on (emps.deptno=a.deptno)
+where emps.name = 'Bill'
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select emps.empid, dependents.empid, emps.deptno
+from emps
+join dependents on (emps.empid = dependents.empid)
+join depts a on (emps.deptno=a.deptno)
+where emps.name = 'Bill'
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 3 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: a
+ Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: deptno (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 3
+ Map Operator Tree:
+ TableScan
+ alias: default.mv1
+ Statistics: Num rows: 1 Data size: 92 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: (UDFToString(name1) = 'Bill') (type: boolean)
+ Statistics: Num rows: 1 Data size: 92 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: empid (type: int), deptno (type: int)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col1 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col1 (type: int)
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: int)
+ Execution mode: llap
+ LLAP IO: all inputs
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: int)
+ 1 _col1 (type: int)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col1 (type: int), _col1 (type: int), _col0 (type: int)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select emps.empid, dependents.empid, emps.deptno
+from emps
+join dependents on (emps.empid = dependents.empid)
+join depts a on (emps.deptno=a.deptno)
+where emps.name = 'Bill'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select emps.empid, dependents.empid, emps.deptno
+from emps
+join dependents on (emps.empid = dependents.empid)
+join depts a on (emps.deptno=a.deptno)
+where emps.name = 'Bill'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_7.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_7.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_7.q.out
new file mode 100644
index 0000000..a199902
--- /dev/null
+++ b/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_7.q.out
@@ -0,0 +1,1022 @@
+PREHOOK: query: create table emps (
+ empid int,
+ deptno int,
+ name varchar(256),
+ salary float,
+ commission int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@emps
+POSTHOOK: query: create table emps (
+ empid int,
+ deptno int,
+ name varchar(256),
+ salary float,
+ commission int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@emps
+PREHOOK: query: insert into emps values (100, 10, 'Bill', 10000, 1000), (200, 20, 'Eric', 8000, 500),
+ (150, 10, 'Sebastian', 7000, null), (110, 10, 'Theodore', 10000, 250)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@emps
+POSTHOOK: query: insert into emps values (100, 10, 'Bill', 10000, 1000), (200, 20, 'Eric', 8000, 500),
+ (150, 10, 'Sebastian', 7000, null), (110, 10, 'Theodore', 10000, 250)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@emps
+POSTHOOK: Lineage: emps.commission SCRIPT []
+POSTHOOK: Lineage: emps.deptno SCRIPT []
+POSTHOOK: Lineage: emps.empid SCRIPT []
+POSTHOOK: Lineage: emps.name SCRIPT []
+POSTHOOK: Lineage: emps.salary SCRIPT []
+PREHOOK: query: analyze table emps compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@emps
+PREHOOK: Output: default@emps
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table emps compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: default@emps
+#### A masked pattern was here ####
+PREHOOK: query: create table depts (
+ deptno int,
+ name varchar(256),
+ locationid int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@depts
+POSTHOOK: query: create table depts (
+ deptno int,
+ name varchar(256),
+ locationid int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@depts
+PREHOOK: query: insert into depts values (10, 'Sales', 10), (30, 'Marketing', null), (20, 'HR', 20)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@depts
+POSTHOOK: query: insert into depts values (10, 'Sales', 10), (30, 'Marketing', null), (20, 'HR', 20)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@depts
+POSTHOOK: Lineage: depts.deptno SCRIPT []
+POSTHOOK: Lineage: depts.locationid SCRIPT []
+POSTHOOK: Lineage: depts.name SCRIPT []
+PREHOOK: query: analyze table depts compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@depts
+PREHOOK: Output: default@depts
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table depts compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@depts
+POSTHOOK: Output: default@depts
+#### A masked pattern was here ####
+PREHOOK: query: create table dependents (
+ empid int,
+ name varchar(256))
+stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@dependents
+POSTHOOK: query: create table dependents (
+ empid int,
+ name varchar(256))
+stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@dependents
+PREHOOK: query: insert into dependents values (10, 'Michael'), (10, 'Jane')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@dependents
+POSTHOOK: query: insert into dependents values (10, 'Michael'), (10, 'Jane')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@dependents
+POSTHOOK: Lineage: dependents.empid SCRIPT []
+POSTHOOK: Lineage: dependents.name SCRIPT []
+PREHOOK: query: analyze table dependents compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dependents
+PREHOOK: Output: default@dependents
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table dependents compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dependents
+POSTHOOK: Output: default@dependents
+#### A masked pattern was here ####
+PREHOOK: query: create table locations (
+ locationid int,
+ name varchar(256))
+stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@locations
+POSTHOOK: query: create table locations (
+ locationid int,
+ name varchar(256))
+stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@locations
+PREHOOK: query: insert into locations values (10, 'San Francisco'), (10, 'San Diego')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@locations
+POSTHOOK: query: insert into locations values (10, 'San Francisco'), (10, 'San Diego')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@locations
+POSTHOOK: Lineage: locations.locationid SCRIPT []
+POSTHOOK: Lineage: locations.name SCRIPT []
+PREHOOK: query: analyze table locations compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@locations
+PREHOOK: Output: default@locations
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table locations compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@locations
+POSTHOOK: Output: default@locations
+#### A masked pattern was here ####
+PREHOOK: query: alter table emps add constraint pk1 primary key (empid) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table emps add constraint pk1 primary key (empid) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table depts add constraint pk2 primary key (deptno) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table depts add constraint pk2 primary key (deptno) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table dependents add constraint pk3 primary key (empid) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table dependents add constraint pk3 primary key (empid) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table locations add constraint pk4 primary key (locationid) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table locations add constraint pk4 primary key (locationid) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table emps add constraint fk1 foreign key (deptno) references depts(deptno) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table emps add constraint fk1 foreign key (deptno) references depts(deptno) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table depts add constraint fk2 foreign key (locationid) references locations(locationid) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table depts add constraint fk2 foreign key (locationid) references locations(locationid) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table emps change column deptno deptno int constraint nn1 not null disable novalidate rely
+PREHOOK: type: ALTERTABLE_RENAMECOL
+PREHOOK: Input: default@emps
+PREHOOK: Output: default@emps
+POSTHOOK: query: alter table emps change column deptno deptno int constraint nn1 not null disable novalidate rely
+POSTHOOK: type: ALTERTABLE_RENAMECOL
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: default@emps
+PREHOOK: query: alter table depts change column locationid locationid int constraint nn2 not null disable novalidate rely
+PREHOOK: type: ALTERTABLE_RENAMECOL
+PREHOOK: Input: default@depts
+PREHOOK: Output: default@depts
+POSTHOOK: query: alter table depts change column locationid locationid int constraint nn2 not null disable novalidate rely
+POSTHOOK: type: ALTERTABLE_RENAMECOL
+POSTHOOK: Input: default@depts
+POSTHOOK: Output: default@depts
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select depts.deptno, dependents.empid
+from depts
+join dependents on (depts.name = dependents.name)
+join locations on (locations.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+where depts.deptno > 11
+group by depts.deptno, dependents.empid
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@locations
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select depts.deptno, dependents.empid
+from depts
+join dependents on (depts.name = dependents.name)
+join locations on (locations.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+where depts.deptno > 11
+group by depts.deptno, dependents.empid
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@locations
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select dependents.empid, depts.deptno
+from depts
+join dependents on (depts.name = dependents.name)
+join locations on (locations.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+where depts.deptno > 10
+group by dependents.empid, depts.deptno
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select dependents.empid, depts.deptno
+from depts
+join dependents on (depts.name = dependents.name)
+join locations on (locations.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+where depts.deptno > 10
+group by dependents.empid, depts.deptno
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Map 10 <- Union 4 (CONTAINS)
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 6 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (SIMPLE_EDGE), Union 4 (CONTAINS)
+ Reducer 5 <- Union 4 (SIMPLE_EDGE)
+ Reducer 8 <- Map 7 (SIMPLE_EDGE), Map 9 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: dependents
+ Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: name is not null (type: boolean)
+ Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: empid (type: int), name (type: varchar(256))
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col1 (type: varchar(256))
+ sort order: +
+ Map-reduce partition columns: _col1 (type: varchar(256))
+ Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: int)
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 10
+ Map Operator Tree:
+ TableScan
+ alias: default.mv1
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: empid (type: int), deptno (type: int)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ keys: _col0 (type: int), _col1 (type: int)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int), _col1 (type: int)
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: int), _col1 (type: int)
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: all inputs
+ Map 6
+ Map Operator Tree:
+ TableScan
+ alias: locations
+ Statistics: Num rows: 2 Data size: 190 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: name is not null (type: boolean)
+ Statistics: Num rows: 2 Data size: 190 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: name (type: varchar(256))
+ outputColumnNames: _col0
+ Statistics: Num rows: 2 Data size: 190 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: varchar(256))
+ sort order: +
+ Map-reduce partition columns: _col0 (type: varchar(256))
+ Statistics: Num rows: 2 Data size: 190 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 7
+ Map Operator Tree:
+ TableScan
+ alias: depts
+ Statistics: Num rows: 3 Data size: 279 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((deptno <= 11) and (deptno > 10) and name is not null) (type: boolean)
+ Statistics: Num rows: 1 Data size: 93 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: deptno (type: int), name (type: varchar(256))
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 93 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 1 Data size: 93 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: varchar(256))
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 9
+ Map Operator Tree:
+ TableScan
+ alias: emps
+ Statistics: Num rows: 4 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((deptno <= 11) and (deptno > 10)) (type: boolean)
+ Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: deptno (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ Inner Join 0 to 2
+ keys:
+ 0 _col1 (type: varchar(256))
+ 1 _col0 (type: varchar(256))
+ 2 _col1 (type: varchar(256))
+ outputColumnNames: _col0, _col3
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ keys: _col0 (type: int), _col3 (type: int)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int), _col1 (type: int)
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: int), _col1 (type: int)
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ keys: KEY._col0 (type: int), KEY._col1 (type: int)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ keys: _col0 (type: int), _col1 (type: int)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int), _col1 (type: int)
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: int), _col1 (type: int)
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Reducer 5
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ keys: KEY._col0 (type: int), KEY._col1 (type: int)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+ Reducer 8
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: int)
+ 1 _col0 (type: int)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 93 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col1 (type: varchar(256))
+ sort order: +
+ Map-reduce partition columns: _col1 (type: varchar(256))
+ Statistics: Num rows: 1 Data size: 93 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: int)
+ Union 4
+ Vertex: Union 4
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select dependents.empid, depts.deptno
+from depts
+join dependents on (depts.name = dependents.name)
+join locations on (locations.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+where depts.deptno > 10
+group by dependents.empid, depts.deptno
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@locations
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select dependents.empid, depts.deptno
+from depts
+join dependents on (depts.name = dependents.name)
+join locations on (locations.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+where depts.deptno > 10
+group by dependents.empid, depts.deptno
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@locations
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select depts.deptno, dependents.empid, count(emps.salary) as s
+from depts
+join dependents on (depts.name = dependents.name)
+join locations on (locations.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+where depts.deptno > 11 and depts.deptno < 19
+group by depts.deptno, dependents.empid
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@locations
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select depts.deptno, dependents.empid, count(emps.salary) as s
+from depts
+join dependents on (depts.name = dependents.name)
+join locations on (locations.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+where depts.deptno > 11 and depts.deptno < 19
+group by depts.deptno, dependents.empid
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@locations
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select dependents.empid, count(emps.salary) + 1
+from depts
+join dependents on (depts.name = dependents.name)
+join locations on (locations.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+where depts.deptno > 10 and depts.deptno < 20
+group by dependents.empid
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select dependents.empid, count(emps.salary) + 1
+from depts
+join dependents on (depts.name = dependents.name)
+join locations on (locations.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+where depts.deptno > 10 and depts.deptno < 20
+group by dependents.empid
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 11 <- Map 10 (SIMPLE_EDGE), Union 4 (CONTAINS)
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 6 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (SIMPLE_EDGE), Union 4 (CONTAINS)
+ Reducer 5 <- Union 4 (SIMPLE_EDGE)
+ Reducer 8 <- Map 7 (SIMPLE_EDGE), Map 9 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: dependents
+ Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: name is not null (type: boolean)
+ Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: empid (type: int), name (type: varchar(256))
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col1 (type: varchar(256))
+ sort order: +
+ Map-reduce partition columns: _col1 (type: varchar(256))
+ Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: int)
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 10
+ Map Operator Tree:
+ TableScan
+ alias: default.mv1
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: empid (type: int), s (type: bigint)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: $sum0(_col1)
+ keys: _col0 (type: int)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: bigint)
+ Execution mode: llap
+ LLAP IO: all inputs
+ Map 6
+ Map Operator Tree:
+ TableScan
+ alias: locations
+ Statistics: Num rows: 2 Data size: 190 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: name is not null (type: boolean)
+ Statistics: Num rows: 2 Data size: 190 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: name (type: varchar(256))
+ outputColumnNames: _col0
+ Statistics: Num rows: 2 Data size: 190 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: varchar(256))
+ sort order: +
+ Map-reduce partition columns: _col0 (type: varchar(256))
+ Statistics: Num rows: 2 Data size: 190 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 7
+ Map Operator Tree:
+ TableScan
+ alias: emps
+ Statistics: Num rows: 4 Data size: 32 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: (((deptno <= 11) or (deptno >= 19)) and (deptno < 20) and (deptno > 10)) (type: boolean)
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: deptno (type: int), salary (type: float)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: float)
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 9
+ Map Operator Tree:
+ TableScan
+ alias: depts
+ Statistics: Num rows: 3 Data size: 279 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: (((deptno <= 11) or (deptno >= 19)) and (deptno < 20) and (deptno > 10) and name is not null) (type: boolean)
+ Statistics: Num rows: 1 Data size: 93 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: deptno (type: int), name (type: varchar(256))
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 93 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 1 Data size: 93 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: varchar(256))
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Reducer 11
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: $sum0(VALUE._col0)
+ keys: KEY._col0 (type: int)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: $sum0(_col1)
+ keys: _col0 (type: int)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: bigint)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ Inner Join 0 to 2
+ keys:
+ 0 _col1 (type: varchar(256))
+ 1 _col0 (type: varchar(256))
+ 2 _col3 (type: varchar(256))
+ outputColumnNames: _col0, _col4
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: count(_col4)
+ keys: _col0 (type: int)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: bigint)
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: count(VALUE._col0)
+ keys: KEY._col0 (type: int)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: $sum0(_col1)
+ keys: _col0 (type: int)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: bigint)
+ Reducer 5
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: $sum0(VALUE._col0)
+ keys: KEY._col0 (type: int)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col0 (type: int), (_col1 + 1L) (type: bigint)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+ Reducer 8
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: int)
+ 1 _col0 (type: int)
+ outputColumnNames: _col1, _col3
+ Statistics: Num rows: 1 Data size: 93 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col3 (type: varchar(256))
+ sort order: +
+ Map-reduce partition columns: _col3 (type: varchar(256))
+ Statistics: Num rows: 1 Data size: 93 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: float)
+ Union 4
+ Vertex: Union 4
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select dependents.empid, count(emps.salary) + 1
+from depts
+join dependents on (depts.name = dependents.name)
+join locations on (locations.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+where depts.deptno > 10 and depts.deptno < 20
+group by dependents.empid
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@locations
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select dependents.empid, count(emps.salary) + 1
+from depts
+join dependents on (depts.name = dependents.name)
+join locations on (locations.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+where depts.deptno > 10 and depts.deptno < 20
+group by dependents.empid
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@locations
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select depts.deptno, dependents.empid
+from depts
+join dependents on (depts.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+where depts.deptno >= 10
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select depts.deptno, dependents.empid
+from depts
+join dependents on (depts.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+where depts.deptno >= 10
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select dependents.empid
+from depts
+join dependents on (depts.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+where depts.deptno > 0
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select dependents.empid
+from depts
+join dependents on (depts.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+where depts.deptno > 0
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Map 7 <- Union 4 (CONTAINS)
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 5 (SIMPLE_EDGE)
+ Reducer 3 <- Map 6 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE), Union 4 (CONTAINS)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: depts
+ Statistics: Num rows: 3 Data size: 279 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((deptno < 10) and (deptno > 0) and name is not null) (type: boolean)
+ Statistics: Num rows: 1 Data size: 93 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: deptno (type: int), name (type: varchar(256))
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 93 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 1 Data size: 93 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: varchar(256))
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 5
+ Map Operator Tree:
+ TableScan
+ alias: emps
+ Statistics: Num rows: 4 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((deptno < 10) and (deptno > 0)) (type: boolean)
+ Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: deptno (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 6
+ Map Operator Tree:
+ TableScan
+ alias: dependents
+ Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: name is not null (type: boolean)
+ Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: empid (type: int), name (type: varchar(256))
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col1 (type: varchar(256))
+ sort order: +
+ Map-reduce partition columns: _col1 (type: varchar(256))
+ Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: int)
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 7
+ Map Operator Tree:
+ TableScan
+ alias: default.mv1
+ Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: empid (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+ Execution mode: llap
+ LLAP IO: all inputs
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: int)
+ 1 _col0 (type: int)
+ outputColumnNames: _col1
+ Statistics: Num rows: 1 Data size: 89 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col1 (type: varchar(256))
+ sort order: +
+ Map-reduce partition columns: _col1 (type: varchar(256))
+ Statistics: Num rows: 1 Data size: 89 Basic stats: COMPLETE Column stats: COMPLETE
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col1 (type: varchar(256))
+ 1 _col1 (type: varchar(256))
+ outputColumnNames: _col3
+ Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col3 (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+ Union 4
+ Vertex: Union 4
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select dependents.empid
+from depts
+join dependents on (depts.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+where depts.deptno > 0
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select dependents.empid
+from depts
+join dependents on (depts.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+where depts.deptno > 0
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
[23/24] hive git commit: HIVE-18839: Implement incremental rebuild
for materialized views (only insert operations in source tables) (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/java/org/apache/hadoop/hive/ql/parse/MaterializedViewRebuildSemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/MaterializedViewRebuildSemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/MaterializedViewRebuildSemanticAnalyzer.java
index 75eb50c..e5af95b 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/MaterializedViewRebuildSemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/MaterializedViewRebuildSemanticAnalyzer.java
@@ -18,33 +18,19 @@
package org.apache.hadoop.hive.ql.parse;
-import org.apache.hadoop.hive.common.HiveStatsUtils;
-import org.apache.hadoop.hive.conf.HiveConf;
-import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
-import org.apache.hadoop.hive.conf.HiveVariableSource;
-import org.apache.hadoop.hive.conf.VariableSubstitution;
-import org.apache.hadoop.hive.metastore.api.FieldSchema;
+import org.apache.hadoop.hive.metastore.api.LockState;
import org.apache.hadoop.hive.ql.Context;
import org.apache.hadoop.hive.ql.ErrorMsg;
import org.apache.hadoop.hive.ql.QueryState;
-import org.apache.hadoop.hive.ql.exec.Utilities;
-import org.apache.hadoop.hive.ql.metadata.HiveException;
+import org.apache.hadoop.hive.ql.io.AcidUtils;
+import org.apache.hadoop.hive.ql.lockmgr.HiveTxnManager;
+import org.apache.hadoop.hive.ql.lockmgr.LockException;
import org.apache.hadoop.hive.ql.metadata.Table;
import org.apache.hadoop.hive.ql.session.SessionState;
import org.apache.hadoop.hive.ql.session.SessionState.LogHelper;
-import org.apache.hadoop.hive.serde.serdeConstants;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
/**
* MaterializedViewRebuildSemanticAnalyzer.
* Rewrites ALTER MATERIALIZED VIEW _mv_name_ REBUILD statement into
@@ -54,7 +40,6 @@ public class MaterializedViewRebuildSemanticAnalyzer extends CalcitePlanner {
private static final Logger LOG =
LoggerFactory.getLogger(MaterializedViewRebuildSemanticAnalyzer.class);
- static final private LogHelper console = new LogHelper(LOG);
public MaterializedViewRebuildSemanticAnalyzer(QueryState queryState) throws SemanticException {
@@ -64,7 +49,7 @@ public class MaterializedViewRebuildSemanticAnalyzer extends CalcitePlanner {
@Override
public void analyzeInternal(ASTNode ast) throws SemanticException {
- if (rewrittenRebuild) {
+ if (mvRebuildMode != MaterializationRebuildMode.NONE) {
super.analyzeInternal(ast);
return;
}
@@ -86,14 +71,35 @@ public class MaterializedViewRebuildSemanticAnalyzer extends CalcitePlanner {
throw new SemanticException(ErrorMsg.MATERIALIZED_VIEW_DEF_EMPTY);
}
Context ctx = new Context(queryState.getConf());
- rewrittenAST = ParseUtils.parse("insert overwrite table `" +
- dbDotTable + "` " + viewText, ctx);
+ rewrittenAST = ParseUtils.parse("insert overwrite table " +
+ "`" + qualifiedTableName[0] + "`.`" + qualifiedTableName[1] + "` " +
+ viewText, ctx);
this.ctx.addRewrittenStatementContext(ctx);
+
+ if (!this.ctx.isExplainPlan() && AcidUtils.isTransactionalTable(tab)) {
+ // Acquire lock for the given materialized view. Only one rebuild per materialized
+ // view can be triggered at a given time, as otherwise we might produce incorrect
+ // results if incremental maintenance is triggered.
+ HiveTxnManager txnManager = SessionState.get().getTxnMgr();
+ LockState state;
+ try {
+ state = txnManager.acquireMaterializationRebuildLock(
+ qualifiedTableName[0], qualifiedTableName[1], txnManager.getCurrentTxnId()).getState();
+ } catch (LockException e) {
+ throw new SemanticException("Exception acquiring lock for rebuilding the materialized view", e);
+ }
+ if (state != LockState.ACQUIRED) {
+ throw new SemanticException("Another process is rebuilding the materialized view " + dbDotTable);
+ }
+ }
} catch (Exception e) {
throw new SemanticException(e);
}
- rewrittenRebuild = true;
- LOG.info("Rebuilding view " + dbDotTable);
+ mvRebuildMode = MaterializationRebuildMode.INSERT_OVERWRITE_REBUILD;
+ mvRebuildDbName = qualifiedTableName[0];
+ mvRebuildName = qualifiedTableName[1];
+
+ LOG.debug("Rebuilding materialized view " + dbDotTable);
super.analyzeInternal(rewrittenAST);
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
index 3b74aba..7f00108 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
@@ -346,7 +346,9 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
protected boolean noscan;
// whether this is a mv rebuild rewritten expression
- protected boolean rewrittenRebuild = false;
+ protected MaterializationRebuildMode mvRebuildMode = MaterializationRebuildMode.NONE;
+ protected String mvRebuildDbName; // Db name for materialization to rebuild
+ protected String mvRebuildName; // Name for materialization to rebuild
protected volatile boolean disableJoinMerge = false;
protected final boolean defaultJoinMerge;
@@ -2210,7 +2212,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
case HiveParser.TOK_TAB: {
TableSpec ts = new TableSpec(db, conf, ast);
if (ts.tableHandle.isView() ||
- (!rewrittenRebuild && ts.tableHandle.isMaterializedView())) {
+ (mvRebuildMode == MaterializationRebuildMode.NONE && ts.tableHandle.isMaterializedView())) {
throw new SemanticException(ErrorMsg.DML_AGAINST_VIEW.getMsg());
}
@@ -14695,4 +14697,11 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
public boolean isValidQueryMaterialization() {
return (invalidQueryMaterializationReason == null);
}
+
+ protected enum MaterializationRebuildMode {
+ NONE,
+ INSERT_OVERWRITE_REBUILD,
+ AGGREGATE_REBUILD,
+ NO_AGGREGATE_REBUILD
+ }
}
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDTFGetSplits.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDTFGetSplits.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDTFGetSplits.java
index 4c86fb8..fe570f0 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDTFGetSplits.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDTFGetSplits.java
@@ -249,7 +249,7 @@ public class GenericUDTFGetSplits extends GenericUDTF {
DriverCleanup driverCleanup = new DriverCleanup(driver, txnManager, splitsAppId.toString());
boolean needsCleanup = true;
try {
- CommandProcessorResponse cpr = driver.compileAndRespond(query);
+ CommandProcessorResponse cpr = driver.compileAndRespond(query, true);
if (cpr.getResponseCode() != 0) {
throw new HiveException("Failed to compile query: " + cpr.getException());
}
@@ -280,7 +280,7 @@ public class GenericUDTFGetSplits extends GenericUDTF {
HiveConf.setVar(conf, ConfVars.HIVE_EXECUTION_MODE, "llap");
query = "select * from " + tableName;
- cpr = driver.compileAndRespond(query);
+ cpr = driver.compileAndRespond(query, true);
if(cpr.getResponseCode() != 0) {
throw new HiveException("Failed to create temp table: "+cpr.getException());
}
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/queries/clientpositive/materialized_view_create_rewrite_4.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/materialized_view_create_rewrite_4.q b/ql/src/test/queries/clientpositive/materialized_view_create_rewrite_4.q
index c7f050b..dbea060 100644
--- a/ql/src/test/queries/clientpositive/materialized_view_create_rewrite_4.q
+++ b/ql/src/test/queries/clientpositive/materialized_view_create_rewrite_4.q
@@ -24,28 +24,30 @@ analyze table cmv_basetable_2 compute statistics for columns;
-- CREATE VIEW WITH REWRITE DISABLED
EXPLAIN
-CREATE MATERIALIZED VIEW cmv_mat_view AS
- SELECT cmv_basetable.a, cmv_basetable_2.c
+CREATE MATERIALIZED VIEW cmv_mat_view TBLPROPERTIES ('transactional'='true') AS
+ SELECT cmv_basetable.a, cmv_basetable_2.c, sum(cmv_basetable_2.d)
FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
WHERE cmv_basetable_2.c > 10.0
GROUP BY cmv_basetable.a, cmv_basetable_2.c;
-CREATE MATERIALIZED VIEW cmv_mat_view AS
- SELECT cmv_basetable.a, cmv_basetable_2.c
+CREATE MATERIALIZED VIEW cmv_mat_view TBLPROPERTIES ('transactional'='true') AS
+ SELECT cmv_basetable.a, cmv_basetable_2.c, sum(cmv_basetable_2.d)
FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
WHERE cmv_basetable_2.c > 10.0
GROUP BY cmv_basetable.a, cmv_basetable_2.c;
+analyze table cmv_mat_view compute statistics for columns;
+
DESCRIBE FORMATTED cmv_mat_view;
-- CANNOT USE THE VIEW, IT IS DISABLED FOR REWRITE
EXPLAIN
-SELECT cmv_basetable.a
+SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
WHERE cmv_basetable_2.c > 10.10
GROUP BY cmv_basetable.a, cmv_basetable_2.c;
-SELECT cmv_basetable.a
+SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
WHERE cmv_basetable_2.c > 10.10
GROUP BY cmv_basetable.a, cmv_basetable_2.c;
@@ -65,12 +67,12 @@ DESCRIBE FORMATTED cmv_mat_view;
-- CANNOT USE THE VIEW, IT IS OUTDATED
EXPLAIN
-SELECT cmv_basetable.a
+SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
WHERE cmv_basetable_2.c > 10.10
GROUP BY cmv_basetable.a, cmv_basetable_2.c;
-SELECT cmv_basetable.a
+SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
WHERE cmv_basetable_2.c > 10.10
GROUP BY cmv_basetable.a, cmv_basetable_2.c;
@@ -85,12 +87,76 @@ DESCRIBE FORMATTED cmv_mat_view;
-- NOW IT CAN BE USED AGAIN
EXPLAIN
-SELECT cmv_basetable.a
+SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c;
+
+SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c;
+
+-- NOW AN UPDATE
+UPDATE cmv_basetable_2 SET a=2 WHERE a=1;
+
+-- INCREMENTAL REBUILD CANNOT BE TRIGGERED
+EXPLAIN
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD;
+
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD;
+
+-- MV CAN BE USED
+EXPLAIN
+SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c;
+
+SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c;
+
+-- NOW A DELETE
+DELETE FROM cmv_basetable_2 WHERE a=2;
+
+-- INCREMENTAL REBUILD CANNOT BE TRIGGERED
+EXPLAIN
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD;
+
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD;
+
+-- MV CAN BE USED
+EXPLAIN
+SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c;
+
+SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c;
+
+-- NOW AN INSERT
+insert into cmv_basetable_2 values
+ (1, 'charlie', 15.8, 1);
+
+-- INCREMENTAL REBUILD CAN BE TRIGGERED AGAIN
+EXPLAIN
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD;
+
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD;
+
+-- MV CAN BE USED
+EXPLAIN
+SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
WHERE cmv_basetable_2.c > 10.10
GROUP BY cmv_basetable.a, cmv_basetable_2.c;
-SELECT cmv_basetable.a
+SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
WHERE cmv_basetable_2.c > 10.10
GROUP BY cmv_basetable.a, cmv_basetable_2.c;
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/queries/clientpositive/materialized_view_create_rewrite_5.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/materialized_view_create_rewrite_5.q b/ql/src/test/queries/clientpositive/materialized_view_create_rewrite_5.q
new file mode 100644
index 0000000..112b44c
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/materialized_view_create_rewrite_5.q
@@ -0,0 +1,123 @@
+set hive.support.concurrency=true;
+set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
+set hive.strict.checks.cartesian.product=false;
+set hive.materializedview.rewriting=true;
+
+create table cmv_basetable (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true');
+
+insert into cmv_basetable values
+ (1, 'alfred', 10.30, 2),
+ (2, 'bob', 3.14, 3),
+ (2, 'bonnie', 172342.2, 3),
+ (3, 'calvin', 978.76, 3),
+ (3, 'charlie', 9.8, 1);
+
+analyze table cmv_basetable compute statistics for columns;
+
+create table cmv_basetable_2 (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true');
+
+insert into cmv_basetable_2 values
+ (1, 'alfred', 10.30, 2),
+ (3, 'calvin', 978.76, 3);
+
+analyze table cmv_basetable_2 compute statistics for columns;
+
+CREATE MATERIALIZED VIEW cmv_mat_view ENABLE REWRITE
+ TBLPROPERTIES ('transactional'='true') AS
+ SELECT cmv_basetable.a, cmv_basetable_2.c
+ FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+ WHERE cmv_basetable_2.c > 10.0;
+analyze table cmv_mat_view compute statistics for columns;
+
+insert into cmv_basetable_2 values
+ (3, 'charlie', 15.8, 1);
+
+analyze table cmv_basetable_2 compute statistics for columns;
+
+-- CANNOT USE THE VIEW, IT IS OUTDATED
+EXPLAIN
+SELECT cmv_basetable.a
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10;
+
+SELECT cmv_basetable.a
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10;
+
+-- REBUILD
+EXPLAIN
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD;
+
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD;
+
+DESCRIBE FORMATTED cmv_mat_view;
+
+-- NOW IT CAN BE USED AGAIN
+EXPLAIN
+SELECT cmv_basetable.a
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10;
+
+SELECT cmv_basetable.a
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10;
+
+-- NOW AN UPDATE
+UPDATE cmv_basetable_2 SET a=2 WHERE a=1;
+
+-- INCREMENTAL REBUILD CANNOT BE TRIGGERED
+EXPLAIN
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD;
+
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD;
+
+-- MV CAN BE USED
+EXPLAIN
+SELECT cmv_basetable.a
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10;
+
+SELECT cmv_basetable.a
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10;
+
+-- NOW A DELETE
+DELETE FROM cmv_basetable_2 WHERE a=2;
+
+-- INCREMENTAL REBUILD CANNOT BE TRIGGERED
+EXPLAIN
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD;
+
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD;
+
+-- MV CAN BE USED
+EXPLAIN
+SELECT cmv_basetable.a
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10;
+
+SELECT cmv_basetable.a
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10;
+
+-- NOW AN INSERT
+insert into cmv_basetable_2 values
+ (1, 'charlie', 15.8, 1);
+
+-- INCREMENTAL REBUILD CAN BE TRIGGERED AGAIN
+EXPLAIN
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD;
+
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD;
+
+-- MV CAN BE USED
+EXPLAIN
+SELECT cmv_basetable.a
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10;
+
+SELECT cmv_basetable.a
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10;
+
+drop materialized view cmv_mat_view;
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_3.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_3.q.out
index 1ef7b87..bd0f903 100644
--- a/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_3.q.out
+++ b/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_3.q.out
@@ -452,9 +452,11 @@ STAGE PLANS:
Tez
#### A masked pattern was here ####
Edges:
- Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 5 (SIMPLE_EDGE)
- Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
- Reducer 4 <- Reducer 3 (CUSTOM_SIMPLE_EDGE)
+ Map 8 <- Union 4 (CONTAINS)
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (SIMPLE_EDGE), Union 4 (CONTAINS)
+ Reducer 5 <- Union 4 (SIMPLE_EDGE)
+ Reducer 6 <- Reducer 5 (CUSTOM_SIMPLE_EDGE)
#### A masked pattern was here ####
Vertices:
Map 1
@@ -476,26 +478,47 @@ STAGE PLANS:
Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
Execution mode: llap
LLAP IO: may be used (ACID table)
- Map 5
+ Map 7
Map Operator Tree:
TableScan
alias: cmv_basetable_2
Statistics: Num rows: 3 Data size: 348 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
- predicate: ((c > 10) and a is not null) (type: boolean)
+ predicate: ((ROW__ID.writeid > 1) and (c > 10) and a is not null) (type: boolean)
Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
Select Operator
expressions: a (type: int), c (type: decimal(10,2))
outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ Statistics: Num rows: 1 Data size: 192 Basic stats: COMPLETE Column stats: COMPLETE
Reduce Output Operator
key expressions: _col0 (type: int)
sort order: +
Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ Statistics: Num rows: 1 Data size: 192 Basic stats: COMPLETE Column stats: COMPLETE
value expressions: _col1 (type: decimal(10,2))
Execution mode: llap
LLAP IO: may be used (ACID table)
+ Map 8
+ Map Operator Tree:
+ TableScan
+ alias: default.cmv_mat_view
+ Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: a (type: int), c (type: decimal(10,2))
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
+ Group By Operator
+ keys: _col0 (type: int), _col1 (type: decimal(10,2))
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: PARTIAL
+ Reduce Output Operator
+ key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: PARTIAL
+ Execution mode: llap
+ LLAP IO: all inputs
Reducer 2
Execution mode: llap
Reduce Operator Tree:
@@ -525,9 +548,27 @@ STAGE PLANS:
mode: mergepartial
outputColumnNames: _col0, _col1
Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ keys: _col0 (type: int), _col1 (type: decimal(10,2))
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: PARTIAL
+ Reduce Output Operator
+ key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: PARTIAL
+ Reducer 5
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ keys: KEY._col0 (type: int), KEY._col1 (type: decimal(10,2))
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: PARTIAL
File Output Operator
compressed: false
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: PARTIAL
table:
input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
@@ -536,31 +577,33 @@ STAGE PLANS:
Select Operator
expressions: _col0 (type: int), _col1 (type: decimal(10,2))
outputColumnNames: a, c
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: PARTIAL
Group By Operator
aggregations: compute_stats(a, 'hll'), compute_stats(c, 'hll')
mode: hash
outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 1056 Basic stats: COMPLETE Column stats: COMPLETE
+ Statistics: Num rows: 1 Data size: 1056 Basic stats: COMPLETE Column stats: PARTIAL
Reduce Output Operator
sort order:
- Statistics: Num rows: 1 Data size: 1056 Basic stats: COMPLETE Column stats: COMPLETE
+ Statistics: Num rows: 1 Data size: 1056 Basic stats: COMPLETE Column stats: PARTIAL
value expressions: _col0 (type: struct<columntype:string,min:bigint,max:bigint,countnulls:bigint,bitvector:binary>), _col1 (type: struct<columntype:string,min:decimal(10,2),max:decimal(10,2),countnulls:bigint,bitvector:binary>)
- Reducer 4
+ Reducer 6
Execution mode: llap
Reduce Operator Tree:
Group By Operator
aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1)
mode: mergepartial
outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 1088 Basic stats: COMPLETE Column stats: COMPLETE
+ Statistics: Num rows: 1 Data size: 1088 Basic stats: COMPLETE Column stats: PARTIAL
File Output Operator
compressed: false
- Statistics: Num rows: 1 Data size: 1088 Basic stats: COMPLETE Column stats: COMPLETE
+ Statistics: Num rows: 1 Data size: 1088 Basic stats: COMPLETE Column stats: PARTIAL
table:
input format: org.apache.hadoop.mapred.SequenceFileInputFormat
output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+ Union 4
+ Vertex: Union 4
Stage: Stage-2
Dependency Collection
@@ -590,14 +633,16 @@ PREHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
PREHOOK: type: QUERY
PREHOOK: Input: default@cmv_basetable
PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Input: default@cmv_mat_view
PREHOOK: Output: default@cmv_mat_view
POSTHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
POSTHOOK: type: QUERY
POSTHOOK: Input: default@cmv_basetable
POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Input: default@cmv_mat_view
POSTHOOK: Output: default@cmv_mat_view
-POSTHOOK: Lineage: cmv_mat_view.a SIMPLE [(cmv_basetable)cmv_basetable.FieldSchema(name:a, type:int, comment:null), ]
-POSTHOOK: Lineage: cmv_mat_view.c SIMPLE [(cmv_basetable_2)cmv_basetable_2.FieldSchema(name:c, type:decimal(10,2), comment:null), ]
+POSTHOOK: Lineage: cmv_mat_view.a EXPRESSION [(cmv_basetable)cmv_basetable.FieldSchema(name:a, type:int, comment:null), (cmv_mat_view)default.cmv_mat_view.FieldSchema(name:a, type:int, comment:null), ]
+POSTHOOK: Lineage: cmv_mat_view.c EXPRESSION [(cmv_basetable_2)cmv_basetable_2.FieldSchema(name:c, type:decimal(10,2), comment:null), (cmv_mat_view)default.cmv_mat_view.FieldSchema(name:c, type:decimal(10,2), comment:null), ]
PREHOOK: query: EXPLAIN
SELECT cmv_basetable.a
FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
[24/24] hive git commit: HIVE-18839: Implement incremental rebuild
for materialized views (only insert operations in source tables) (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jc...@apache.org.
HIVE-18839: Implement incremental rebuild for materialized views (only insert operations in source tables) (Jesus Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/be420098
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/be420098
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/be420098
Branch: refs/heads/master
Commit: be420098fa64992a12114d5628504a765bd16630
Parents: dcd9b59
Author: Jesus Camacho Rodriguez <jc...@apache.org>
Authored: Tue Mar 13 00:17:48 2018 -0700
Committer: Jesus Camacho Rodriguez <jc...@apache.org>
Committed: Tue Apr 10 11:17:16 2018 +0200
----------------------------------------------------------------------
.../org/apache/hadoop/hive/conf/HiveConf.java | 10 +
.../test/resources/testconfiguration.properties | 30 +-
.../org/apache/hadoop/hive/ql/exec/DDLTask.java | 3 +-
.../hive/ql/exec/MaterializedViewTask.java | 4 +-
.../hadoop/hive/ql/lockmgr/DbTxnManager.java | 99 +-
.../hadoop/hive/ql/lockmgr/HiveTxnManager.java | 11 +
.../hive/ql/lockmgr/HiveTxnManagerImpl.java | 9 +
.../apache/hadoop/hive/ql/metadata/Hive.java | 221 +-
.../metadata/HiveMaterializedViewsRegistry.java | 2 +
.../HiveAggregateIncrementalRewritingRule.java | 175 ++
.../views/HiveAugmentMaterializationRule.java | 123 +
...HiveNoAggregateIncrementalRewritingRule.java | 53 +
.../MaterializedViewRewritingRelVisitor.java | 164 +
.../hadoop/hive/ql/parse/CalcitePlanner.java | 315 +-
...MaterializedViewRebuildSemanticAnalyzer.java | 54 +-
.../hadoop/hive/ql/parse/SemanticAnalyzer.java | 13 +-
.../ql/udf/generic/GenericUDTFGetSplits.java | 4 +-
.../materialized_view_create_rewrite_4.q | 86 +-
.../materialized_view_create_rewrite_5.q | 123 +
.../materialized_view_create_rewrite_3.q.out | 77 +-
.../materialized_view_create_rewrite_4.q.out | 1784 +++++++++++
.../materialized_view_create_rewrite_5.q.out | 1106 +++++++
...ized_view_create_rewrite_rebuild_dummy.q.out | 77 +-
...alized_view_create_rewrite_time_window.q.out | 859 ++++++
.../llap/materialized_view_rewrite_1.q.out | 1152 +++++++
.../llap/materialized_view_rewrite_2.q.out | 756 +++++
.../llap/materialized_view_rewrite_3.q.out | 545 ++++
.../llap/materialized_view_rewrite_4.q.out | 1071 +++++++
.../llap/materialized_view_rewrite_5.q.out | 1558 ++++++++++
.../llap/materialized_view_rewrite_6.q.out | 896 ++++++
.../llap/materialized_view_rewrite_7.q.out | 1022 +++++++
.../llap/materialized_view_rewrite_8.q.out | 641 ++++
.../llap/materialized_view_rewrite_9.q.out | 389 +++
.../materialized_view_create_rewrite.q.out | 477 ---
.../materialized_view_create_rewrite_2.q.out | 598 ----
.../materialized_view_create_rewrite_3.q.out | 1100 -------
.../materialized_view_create_rewrite_4.q.out | 886 ------
...erialized_view_create_rewrite_multi_db.q.out | 175 --
...alized_view_create_rewrite_time_window.q.out | 830 -----
.../materialized_view_rewrite_1.q.out | 1104 -------
.../materialized_view_rewrite_2.q.out | 796 -----
.../materialized_view_rewrite_3.q.out | 576 ----
.../materialized_view_rewrite_4.q.out | 944 ------
.../materialized_view_rewrite_5.q.out | 1522 ----------
.../materialized_view_rewrite_6.q.out | 830 -----
.../materialized_view_rewrite_7.q.out | 1036 -------
.../materialized_view_rewrite_8.q.out | 642 ----
.../materialized_view_rewrite_9.q.out | 361 ---
.../materialized_view_rewrite_ssb.q.out | 1975 ------------
.../materialized_view_rewrite_ssb_2.q.out | 1981 ------------
.../gen/thrift/gen-cpp/ThriftHiveMetastore.cpp | 1248 ++++++--
.../gen/thrift/gen-cpp/ThriftHiveMetastore.h | 280 ++
.../ThriftHiveMetastore_server.skeleton.cpp | 10 +
.../gen/thrift/gen-cpp/hive_metastore_types.cpp | 39 +-
.../gen/thrift/gen-cpp/hive_metastore_types.h | 17 +-
.../hive/metastore/api/Materialization.java | 157 +-
.../hive/metastore/api/ThriftHiveMetastore.java | 2825 +++++++++++++++---
.../gen-php/metastore/ThriftHiveMetastore.php | 517 ++++
.../src/gen/thrift/gen-php/metastore/Types.php | 23 +
.../hive_metastore/ThriftHiveMetastore-remote | 14 +
.../hive_metastore/ThriftHiveMetastore.py | 439 +++
.../gen/thrift/gen-py/hive_metastore/ttypes.py | 17 +-
.../gen/thrift/gen-rb/hive_metastore_types.rb | 5 +-
.../gen/thrift/gen-rb/thrift_hive_metastore.rb | 116 +
.../hadoop/hive/metastore/HiveMetaStore.java | 12 +
.../hive/metastore/HiveMetaStoreClient.java | 10 +
.../hadoop/hive/metastore/IMetaStoreClient.java | 21 +
.../MaterializationInvalidationInfo.java | 60 -
.../MaterializationsInvalidationCache.java | 171 +-
.../MaterializationsRebuildLockCleanerTask.java | 61 +
.../MaterializationsRebuildLockHandler.java | 216 ++
.../hive/metastore/conf/MetastoreConf.java | 4 +-
.../hadoop/hive/metastore/txn/TxnHandler.java | 64 +-
.../hadoop/hive/metastore/txn/TxnStore.java | 3 +-
.../src/main/thrift/hive_metastore.thrift | 5 +-
.../HiveMetaStoreClientPreCatalog.java | 12 +
...stMetaStoreMaterializationsCacheCleaner.java | 59 +-
77 files changed, 18889 insertions(+), 16781 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
----------------------------------------------------------------------
diff --git a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
index 17b2485..e540d02 100644
--- a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
+++ b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
@@ -1594,6 +1594,16 @@ public class HiveConf extends Configuration {
"moment in time t0, the materialized view will not be considered for rewriting anymore after t0 plus " +
"the value assigned to this property. Default value 0 means that the materialized view cannot be " +
"outdated to be used automatically in query rewriting."),
+ HIVE_MATERIALIZED_VIEW_REWRITING_INCREMENTAL("hive.materializedview.rewriting.incremental", true,
+ "Whether to try to execute incremental rewritings based on outdated materializations and\n" +
+ "current content of tables. Default value of true effectively amounts to enabling incremental\n" +
+ "rebuild for the materializations too."),
+ HIVE_MATERIALIZED_VIEW_REBUILD_INCREMENTAL("hive.materializedview.rebuild.incremental", true,
+ "Whether to try to execute incremental rebuild for the materialized views. Incremental rebuild\n" +
+ "tries to modify the original materialization contents to reflect the latest changes to the\n" +
+ "materialized view source tables, instead of rebuilding the contents fully. Incremental rebuild\n" +
+ "is based on the materialized view algebraic incremental rewriting. Hence, this requires\n" +
+ "hive.materializedview.rewriting.incremental to be true."),
HIVE_MATERIALIZED_VIEW_FILE_FORMAT("hive.materializedview.fileformat", "ORC",
new StringSet("none", "TextFile", "SequenceFile", "RCfile", "ORC"),
"Default file format for CREATE MATERIALIZED VIEW statement"),
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/itests/src/test/resources/testconfiguration.properties
----------------------------------------------------------------------
diff --git a/itests/src/test/resources/testconfiguration.properties b/itests/src/test/resources/testconfiguration.properties
index 28c14eb..48d62a8 100644
--- a/itests/src/test/resources/testconfiguration.properties
+++ b/itests/src/test/resources/testconfiguration.properties
@@ -206,15 +206,6 @@ minillaplocal.shared.query.files=alter_merge_2_orc.q,\
load_dyn_part2.q,\
load_dyn_part3.q,\
lvj_mapjoin.q,\
- materialized_view_create_rewrite.q,\
- materialized_view_create_rewrite_3.q,\
- materialized_view_describe.q,\
- materialized_view_rewrite_ssb.q,\
- materialized_view_create.q,\
- materialized_view_create_rewrite_2.q,\
- materialized_view_create_rewrite_multi_db.q,\
- materialized_view_drop.q,\
- materialized_view_rewrite_ssb_2.q,\
mapjoin2.q,\
mapjoin3.q,\
mapjoin_decimal.q,\
@@ -594,8 +585,29 @@ minillaplocal.query.files=\
load_data_acid_rename.q,\
load_dyn_part5.q,\
lvj_mapjoin.q,\
+ materialized_view_create.q,\
materialized_view_create_rewrite_dummy.q,\
+ materialized_view_create_rewrite_multi_db.q,\
materialized_view_create_rewrite_rebuild_dummy.q,\
+ materialized_view_create_rewrite_time_window.q,\
+ materialized_view_create_rewrite.q,\
+ materialized_view_create_rewrite_2.q,\
+ materialized_view_create_rewrite_3.q,\
+ materialized_view_create_rewrite_4.q,\
+ materialized_view_create_rewrite_5.q,\
+ materialized_view_describe.q,\
+ materialized_view_drop.q,\
+ materialized_view_rewrite_1.q,\
+ materialized_view_rewrite_2.q,\
+ materialized_view_rewrite_3.q,\
+ materialized_view_rewrite_4.q,\
+ materialized_view_rewrite_5.q,\
+ materialized_view_rewrite_6.q,\
+ materialized_view_rewrite_7.q,\
+ materialized_view_rewrite_8.q,\
+ materialized_view_rewrite_9.q,\
+ materialized_view_rewrite_ssb.q,\
+ materialized_view_rewrite_ssb_2.q,\
mapjoin_decimal.q,\
mapjoin_hint.q,\
mapjoin_emit_interval.q,\
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
index fb1efe0..bda2af3 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
@@ -64,6 +64,7 @@ import org.apache.hadoop.hive.common.FileUtils;
import org.apache.hadoop.hive.common.JavaUtils;
import org.apache.hadoop.hive.common.StatsSetupConst;
import org.apache.hadoop.hive.common.ValidTxnList;
+import org.apache.hadoop.hive.common.ValidTxnWriteIdList;
import org.apache.hadoop.hive.common.ValidWriteIdList;
import org.apache.hadoop.hive.common.type.HiveDecimal;
import org.apache.hadoop.hive.conf.Constants;
@@ -5057,7 +5058,7 @@ public class DDLTask extends Task<DDLWork> implements Serializable {
CreationMetadata cm =
new CreationMetadata(MetaStoreUtils.getDefaultCatalog(conf), tbl.getDbName(),
tbl.getTableName(), ImmutableSet.copyOf(crtView.getTablesUsed()));
- cm.setValidTxnList(conf.get(ValidTxnList.VALID_TXNS_KEY));
+ cm.setValidTxnList(conf.get(ValidTxnWriteIdList.VALID_TABLES_WRITEIDS_KEY));
tbl.getTTable().setCreationMetadata(cm);
}
db.createTable(tbl, crtView.getIfNotExists());
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/java/org/apache/hadoop/hive/ql/exec/MaterializedViewTask.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/MaterializedViewTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/MaterializedViewTask.java
index 50fc4e0..834df84 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/MaterializedViewTask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/MaterializedViewTask.java
@@ -20,6 +20,8 @@ package org.apache.hadoop.hive.ql.exec;
import com.google.common.collect.ImmutableSet;
import org.apache.hadoop.hive.common.ValidTxnList;
+import org.apache.hadoop.hive.common.ValidTxnWriteIdList;
+import org.apache.hadoop.hive.common.ValidWriteIdList;
import org.apache.hadoop.hive.metastore.api.CreationMetadata;
import org.apache.hadoop.hive.metastore.utils.MetaStoreUtils;
import org.apache.hadoop.hive.ql.DriverContext;
@@ -69,7 +71,7 @@ public class MaterializedViewTask extends Task<MaterializedViewDesc> implements
new CreationMetadata(MetaStoreUtils.getDefaultCatalog(conf), mvTable.getDbName(),
mvTable.getTableName(),
ImmutableSet.copyOf(mvTable.getCreationMetadata().getTablesUsed()));
- cm.setValidTxnList(conf.get(ValidTxnList.VALID_TXNS_KEY));
+ cm.setValidTxnList(conf.get(ValidTxnWriteIdList.VALID_TABLES_WRITEIDS_KEY));
db.updateCreationMetadata(mvTable.getDbName(), mvTable.getTableName(), cm);
}
} catch (HiveException e) {
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbTxnManager.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbTxnManager.java b/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbTxnManager.java
index 5a95649..f566842 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbTxnManager.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbTxnManager.java
@@ -61,6 +61,7 @@ import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicReference;
/**
* An implementation of HiveTxnManager that stores the transactions in the metastore database.
@@ -754,6 +755,13 @@ public final class DbTxnManager extends HiveTxnManagerImpl {
}
Heartbeater heartbeater = new Heartbeater(this, conf, queryId, currentUser);
+ heartbeatTask = startHeartbeat(initialDelay, heartbeatInterval, heartbeater);
+ LOG.debug("Started heartbeat with delay/interval = " + initialDelay + "/" + heartbeatInterval +
+ " " + TimeUnit.MILLISECONDS + " for query: " + queryId);
+ return heartbeater;
+ }
+
+ private ScheduledFuture<?> startHeartbeat(long initialDelay, long heartbeatInterval, Runnable heartbeater) {
// For negative testing purpose..
if(conf.getBoolVar(HiveConf.ConfVars.HIVE_IN_TEST) && conf.getBoolVar(HiveConf.ConfVars.HIVETESTMODEFAILHEARTBEATER)) {
initialDelay = 0;
@@ -763,12 +771,9 @@ public final class DbTxnManager extends HiveTxnManagerImpl {
resources, that they all don't start heartbeating at the same time*/
initialDelay = (long)Math.floor(heartbeatInterval * 0.75 * Math.random());
}
-
- heartbeatTask = heartbeatExecutorService.scheduleAtFixedRate(
+ ScheduledFuture<?> task = heartbeatExecutorService.scheduleAtFixedRate(
heartbeater, initialDelay, heartbeatInterval, TimeUnit.MILLISECONDS);
- LOG.info("Started heartbeat with delay/interval = " + initialDelay + "/" + heartbeatInterval +
- " " + TimeUnit.MILLISECONDS + " for query: " + queryId);
- return heartbeater;
+ return task;
}
private void stopHeartbeat() throws LockException {
@@ -886,6 +891,7 @@ public final class DbTxnManager extends HiveTxnManagerImpl {
}
return false;
}
+
@Override
public boolean isImplicitTransactionOpen() {
if(!isTxnOpen()) {
@@ -976,6 +982,38 @@ public final class DbTxnManager extends HiveTxnManagerImpl {
}
}
+ @Override
+ public LockResponse acquireMaterializationRebuildLock(String dbName, String tableName, long txnId) throws LockException {
+ // Acquire lock
+ LockResponse lockResponse;
+ try {
+ lockResponse = getMS().lockMaterializationRebuild(dbName, tableName, txnId);
+ } catch (TException e) {
+ throw new LockException(ErrorMsg.METASTORE_COMMUNICATION_FAILED.getMsg(), e);
+ }
+ if (lockResponse.getState() == LockState.ACQUIRED) {
+ // If lock response is ACQUIRED, we can create the heartbeater
+ long initialDelay = 0L;
+ long heartbeatInterval = getHeartbeatInterval(conf);
+ assert heartbeatInterval > 0;
+ MaterializationRebuildLockHeartbeater heartbeater = new MaterializationRebuildLockHeartbeater(
+ this, dbName, tableName, queryId, txnId);
+ ScheduledFuture<?> task = startHeartbeat(initialDelay, heartbeatInterval, heartbeater);
+ heartbeater.task.set(task);
+ LOG.debug("Started heartbeat for materialization rebuild lock for {} with delay/interval = {}/{} {} for query: {}",
+ AcidUtils.getFullTableName(dbName, tableName), initialDelay, heartbeatInterval, TimeUnit.MILLISECONDS, queryId);
+ }
+ return lockResponse;
+ }
+
+ private boolean heartbeatMaterializationRebuildLock(String dbName, String tableName, long txnId) throws LockException {
+ try {
+ return getMS().heartbeatLockMaterializationRebuild(dbName, tableName, txnId);
+ } catch (TException e) {
+ throw new LockException(ErrorMsg.METASTORE_COMMUNICATION_FAILED.getMsg(), e);
+ }
+ }
+
private static long getHeartbeatInterval(Configuration conf) throws LockException {
// Retrieve HIVE_TXN_TIMEOUT in MILLISECONDS (it's defined as SECONDS),
// then divide it by 2 to give us a safety factor.
@@ -1042,4 +1080,55 @@ public final class DbTxnManager extends HiveTxnManagerImpl {
}
}
}
+
+ /**
+ * MaterializationRebuildLockHeartbeater is a runnable that will be run in a
+ * ScheduledExecutorService in given intervals. Once the heartbeat cannot
+ * refresh the lock anymore, it will interrupt itself.
+ */
+ private static class MaterializationRebuildLockHeartbeater implements Runnable {
+
+ private final DbTxnManager txnMgr;
+ private final String dbName;
+ private final String tableName;
+ private final String queryId;
+ private final long txnId;
+ private final AtomicReference<ScheduledFuture<?>> task;
+
+ MaterializationRebuildLockHeartbeater(DbTxnManager txnMgr, String dbName, String tableName,
+ String queryId, long txnId) {
+ this.txnMgr = txnMgr;
+ this.queryId = queryId;
+ this.dbName = dbName;
+ this.tableName = tableName;
+ this.txnId = txnId;
+ this.task = new AtomicReference<>();
+ }
+
+ /**
+ * Send a heartbeat to the metastore for locks and transactions.
+ */
+ @Override
+ public void run() {
+ LOG.trace("Heartbeating materialization rebuild lock for {} for query: {}",
+ AcidUtils.getFullTableName(dbName, tableName), queryId);
+ boolean refreshed;
+ try {
+ refreshed = txnMgr.heartbeatMaterializationRebuildLock(dbName, tableName, txnId);
+ } catch (LockException e) {
+ LOG.error("Failed trying to acquire lock", e);
+ throw new RuntimeException(e);
+ }
+ if (!refreshed) {
+ // We could not heartbeat the lock, i.e., the operation has finished,
+ // hence we interrupt this work
+ ScheduledFuture<?> t = task.get();
+ if (t != null) {
+ t.cancel(false);
+ LOG.debug("Stopped heartbeat for materialization rebuild lock for {} for query: {}",
+ AcidUtils.getFullTableName(dbName, tableName), queryId);
+ }
+ }
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/HiveTxnManager.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/HiveTxnManager.java b/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/HiveTxnManager.java
index 490f3b8..e0e235b 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/HiveTxnManager.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/HiveTxnManager.java
@@ -19,6 +19,7 @@ package org.apache.hadoop.hive.ql.lockmgr;
import org.apache.hadoop.hive.common.ValidTxnList;
import org.apache.hadoop.hive.common.ValidTxnWriteIdList;
+import org.apache.hadoop.hive.metastore.api.LockResponse;
import org.apache.hadoop.hive.ql.Context;
import org.apache.hadoop.hive.ql.Driver.LockedDriverState;
import org.apache.hadoop.hive.ql.QueryPlan;
@@ -269,4 +270,14 @@ public interface HiveTxnManager {
* Even a single statement, (e.g. Merge, multi-insert may generates several writes).
*/
int getStmtIdAndIncrement();
+
+ /**
+ * Acquire the materialization rebuild lock for a given view. We need to specify the fully
+ * qualified name of the materialized view and the open transaction ID so we can identify
+ * uniquely the lock.
+ * @return the response from the metastore, where the lock id is equal to the txn id and
+ * the status can be either ACQUIRED or NOT ACQUIRED
+ */
+ LockResponse acquireMaterializationRebuildLock(String dbName, String tableName, long txnId)
+ throws LockException;
}
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/HiveTxnManagerImpl.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/HiveTxnManagerImpl.java b/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/HiveTxnManagerImpl.java
index c8cafa2..623b037 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/HiveTxnManagerImpl.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/HiveTxnManagerImpl.java
@@ -24,6 +24,8 @@ import java.util.Map;
import org.apache.hadoop.conf.Configurable;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hive.conf.HiveConf;
+import org.apache.hadoop.hive.metastore.api.LockResponse;
+import org.apache.hadoop.hive.metastore.api.LockState;
import org.apache.hadoop.hive.ql.Context;
import org.apache.hadoop.hive.ql.Driver.LockedDriverState;
import org.apache.hadoop.hive.ql.QueryPlan;
@@ -213,4 +215,11 @@ abstract class HiveTxnManagerImpl implements HiveTxnManager, Configurable {
return true;
}
+ @Override
+ public LockResponse acquireMaterializationRebuildLock(String dbName, String tableName, long txnId)
+ throws LockException {
+ // This is default implementation. Locking only works for incremental maintenance
+ // which only works for DB transactional manager, thus we cannot acquire a lock.
+ return new LockResponse(0L, LockState.NOT_ACQUIRED);
+ }
}
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
index 38fbb7b..2dd1d35 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
@@ -59,9 +59,22 @@ import java.util.stream.Collectors;
import javax.jdo.JDODataStoreException;
+import com.google.common.collect.ImmutableList;
import org.apache.calcite.plan.RelOptMaterialization;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.hep.HepPlanner;
+import org.apache.calcite.plan.hep.HepProgramBuilder;
import org.apache.calcite.rel.RelNode;
import org.apache.calcite.rel.core.Project;
+import org.apache.calcite.rel.core.TableScan;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeField;
+import org.apache.calcite.rex.RexBuilder;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.sql.fun.SqlStdOperatorTable;
+import org.apache.calcite.sql.type.SqlTypeName;
+import org.apache.calcite.tools.RelBuilder;
import org.apache.commons.io.FilenameUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileChecksum;
@@ -76,6 +89,8 @@ import org.apache.hadoop.hive.common.HiveStatsUtils;
import org.apache.hadoop.hive.common.JavaUtils;
import org.apache.hadoop.hive.common.ObjectPair;
import org.apache.hadoop.hive.common.StatsSetupConst;
+import org.apache.hadoop.hive.common.ValidTxnWriteIdList;
+import org.apache.hadoop.hive.common.ValidWriteIdList;
import org.apache.hadoop.hive.common.classification.InterfaceAudience.LimitedPrivate;
import org.apache.hadoop.hive.common.classification.InterfaceStability.Unstable;
import org.apache.hadoop.hive.common.log.InPlaceUpdate;
@@ -161,7 +176,9 @@ import org.apache.hadoop.hive.ql.exec.Utilities;
import org.apache.hadoop.hive.ql.io.AcidUtils;
import org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
import org.apache.hadoop.hive.ql.log.PerfLogger;
+import org.apache.hadoop.hive.ql.optimizer.calcite.HiveRelFactories;
import org.apache.hadoop.hive.ql.optimizer.calcite.RelOptHiveTable;
+import org.apache.hadoop.hive.ql.optimizer.calcite.rules.views.HiveAugmentMaterializationRule;
import org.apache.hadoop.hive.ql.optimizer.listbucketingpruner.ListBucketingPrunerUtils;
import org.apache.hadoop.hive.ql.plan.AddPartitionDesc;
import org.apache.hadoop.hive.ql.plan.DropTableDesc;
@@ -177,6 +194,7 @@ import org.apache.hadoop.hive.shims.ShimLoader;
import org.apache.hadoop.mapred.InputFormat;
import org.apache.hadoop.security.UserGroupInformation;
import org.apache.hadoop.util.StringUtils;
+import org.apache.hive.common.util.TxnIdUtils;
import org.apache.thrift.TException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -1316,14 +1334,11 @@ public class Hive {
* @return the list of materialized views available for rewriting
* @throws HiveException
*/
- public List<RelOptMaterialization> getValidMaterializedViews(boolean materializedViewRebuild) throws HiveException {
- final long defaultDiff =
- HiveConf.getTimeVar(conf, HiveConf.ConfVars.HIVE_MATERIALIZED_VIEW_REWRITING_TIME_WINDOW,
- TimeUnit.MILLISECONDS);
- final long currentTime = System.currentTimeMillis();
+ public List<RelOptMaterialization> getAllValidMaterializedViews(boolean forceMVContentsUpToDate, ValidTxnWriteIdList txnList)
+ throws HiveException {
+ // Final result
+ List<RelOptMaterialization> result = new ArrayList<>();
try {
- // Final result
- List<RelOptMaterialization> result = new ArrayList<>();
for (String dbName : getMSC().getAllDatabases()) {
// From metastore (for security)
List<String> materializedViewNames = getMaterializedViewsForRewriting(dbName);
@@ -1331,83 +1346,137 @@ public class Hive {
// Bail out: empty list
continue;
}
- List<Table> materializedViewTables = getTableObjects(dbName, materializedViewNames);
- Map<String, Materialization> databaseInvalidationInfo =
- getMSC().getMaterializationsInvalidationInfo(dbName, materializedViewNames);
- for (Table materializedViewTable : materializedViewTables) {
+ result.addAll(getValidMaterializedViews(dbName, materializedViewNames, forceMVContentsUpToDate, txnList));
+ }
+ return result;
+ } catch (Exception e) {
+ throw new HiveException(e);
+ }
+ }
+
+ public List<RelOptMaterialization> getValidMaterializedView(String dbName, String materializedViewName,
+ boolean forceMVContentsUpToDate, ValidTxnWriteIdList txnList) throws HiveException {
+ return getValidMaterializedViews(dbName, ImmutableList.of(materializedViewName), forceMVContentsUpToDate, txnList);
+ }
+
+ private List<RelOptMaterialization> getValidMaterializedViews(String dbName, List<String> materializedViewNames,
+ boolean forceMVContentsUpToDate, ValidTxnWriteIdList txnList) throws HiveException {
+ final boolean tryIncrementalRewriting =
+ HiveConf.getBoolVar(conf, HiveConf.ConfVars.HIVE_MATERIALIZED_VIEW_REWRITING_INCREMENTAL);
+ final long defaultDiff =
+ HiveConf.getTimeVar(conf, HiveConf.ConfVars.HIVE_MATERIALIZED_VIEW_REWRITING_TIME_WINDOW,
+ TimeUnit.MILLISECONDS);
+ final long currentTime = System.currentTimeMillis();
+ try {
+ // Final result
+ List<RelOptMaterialization> result = new ArrayList<>();
+ List<Table> materializedViewTables = getTableObjects(dbName, materializedViewNames);
+ Map<String, Materialization> databaseInvalidationInfo =
+ getMSC().getMaterializationsInvalidationInfo(dbName, materializedViewNames);
+ for (Table materializedViewTable : materializedViewTables) {
+ // Check if materialization defined its own invalidation time window
+ String timeWindowString = materializedViewTable.getProperty(MATERIALIZED_VIEW_REWRITING_TIME_WINDOW);
+ long diff = org.apache.commons.lang.StringUtils.isEmpty(timeWindowString) ? defaultDiff :
+ HiveConf.toTime(timeWindowString,
+ HiveConf.getDefaultTimeUnit(HiveConf.ConfVars.HIVE_MATERIALIZED_VIEW_REWRITING_TIME_WINDOW),
+ TimeUnit.MILLISECONDS);
+ Materialization materializationInvInfo = null;
+ boolean outdated = false;
+ if (diff < 0L) {
+ // We only consider the materialized view to be outdated if forceOutdated = true, i.e.,
+ // if it is a rebuild. Otherwise, it passed the test and we use it as it is.
+ outdated = forceMVContentsUpToDate;
+ } else {
// Check whether the materialized view is invalidated
- Materialization materializationInvalidationInfo =
+ materializationInvInfo =
databaseInvalidationInfo.get(materializedViewTable.getTableName());
- if (materializationInvalidationInfo == null) {
+ if (materializationInvInfo == null) {
LOG.debug("Materialized view " + materializedViewTable.getFullyQualifiedName() +
" ignored for rewriting as there was no information loaded in the invalidation cache");
continue;
}
- // Check if materialization defined its own invalidation time window
- String timeWindowString = materializedViewTable.getProperty(MATERIALIZED_VIEW_REWRITING_TIME_WINDOW);
- long diff = org.apache.commons.lang.StringUtils.isEmpty(timeWindowString) ? defaultDiff :
- HiveConf.toTime(timeWindowString,
- HiveConf.getDefaultTimeUnit(HiveConf.ConfVars.HIVE_MATERIALIZED_VIEW_REWRITING_TIME_WINDOW),
- TimeUnit.MILLISECONDS);
-
- long invalidationTime = materializationInvalidationInfo.getInvalidationTime();
+ long invalidationTime = materializationInvInfo.getInvalidationTime();
+ if (invalidationTime == Long.MIN_VALUE) {
+ LOG.debug("Materialized view " + materializedViewTable.getFullyQualifiedName() +
+ " ignored for rewriting as it contains non-transactional tables");
+ continue;
+ }
// If the limit is not met, we do not add the materialized view.
// If we are doing a rebuild, we do not consider outdated materialized views either.
- if (diff == 0L || materializedViewRebuild) {
+ if (diff == 0L || forceMVContentsUpToDate) {
if (invalidationTime != 0L) {
- // If parameter is zero, materialized view cannot be outdated at all
- LOG.debug("Materialized view " + materializedViewTable.getFullyQualifiedName() +
- " ignored for rewriting as its contents are outdated");
- continue;
+ outdated = true;
}
} else {
- if (invalidationTime != 0 && invalidationTime > currentTime - diff) {
- LOG.debug("Materialized view " + materializedViewTable.getFullyQualifiedName() +
- " ignored for rewriting as its contents are outdated");
- continue;
+ if (invalidationTime != 0L && invalidationTime > currentTime - diff) {
+ outdated = true;
}
}
+ }
- // It passed the test, load
- RelOptMaterialization materialization =
- HiveMaterializedViewsRegistry.get().getRewritingMaterializedView(
- dbName, materializedViewTable.getTableName());
- if (materialization != null) {
- RelNode viewScan = materialization.tableRel;
- RelOptHiveTable cachedMaterializedViewTable;
- if (viewScan instanceof Project) {
- // There is a Project on top (due to nullability)
- cachedMaterializedViewTable = (RelOptHiveTable) viewScan.getInput(0).getTable();
- } else {
- cachedMaterializedViewTable = (RelOptHiveTable) viewScan.getTable();
- }
- if (cachedMaterializedViewTable.getHiveTableMD().getCreateTime() ==
- materializedViewTable.getCreateTime()) {
- // It is in the cache and up to date
- result.add(materialization);
- continue;
+ if (outdated && (!tryIncrementalRewriting || materializationInvInfo == null
+ || txnList == null || materializationInvInfo.isSourceTablesUpdateDeleteModified())) {
+ // We will not try partial rewriting either because the config specification, this
+ // is a rebuild over some non-transactional table, or there were update/delete
+ // operations in the source tables (not supported yet)
+ LOG.debug("Materialized view " + materializedViewTable.getFullyQualifiedName() +
+ " ignored for rewriting as its contents are outdated");
+ continue;
+ }
+
+ // It passed the test, load
+ RelOptMaterialization materialization =
+ HiveMaterializedViewsRegistry.get().getRewritingMaterializedView(
+ dbName, materializedViewTable.getTableName());
+ if (materialization != null) {
+ RelNode viewScan = materialization.tableRel;
+ RelOptHiveTable cachedMaterializedViewTable;
+ if (viewScan instanceof Project) {
+ // There is a Project on top (due to nullability)
+ cachedMaterializedViewTable = (RelOptHiveTable) viewScan.getInput(0).getTable();
+ } else {
+ cachedMaterializedViewTable = (RelOptHiveTable) viewScan.getTable();
+ }
+ if (cachedMaterializedViewTable.getHiveTableMD().getCreateTime() ==
+ materializedViewTable.getCreateTime()) {
+ // It is in the cache and up to date
+ if (outdated) {
+ // We will rewrite it to include the filters on transaction list
+ // so we can produce partial rewritings
+ materialization = augmentMaterializationWithTimeInformation(
+ materialization, txnList, new ValidTxnWriteIdList(
+ materializationInvInfo.getValidTxnList()));
}
+ result.add(materialization);
+ continue;
}
+ }
- // It was not present in the cache (maybe because it was added by another HS2)
- // or it is not up to date.
- if (HiveMaterializedViewsRegistry.get().isInitialized()) {
- // But the registry was fully initialized, thus we need to add it
- if (LOG.isDebugEnabled()) {
- LOG.debug("Materialized view " + materializedViewTable.getFullyQualifiedName() +
- " was not in the cache");
- }
- materialization = HiveMaterializedViewsRegistry.get().createMaterializedView(
- conf, materializedViewTable);
- if (materialization != null) {
- result.add(materialization);
- }
- } else {
- // Otherwise the registry has not been initialized, skip for the time being
- if (LOG.isWarnEnabled()) {
- LOG.info("Materialized view " + materializedViewTable.getFullyQualifiedName() + " was skipped "
- + "because cache has not been loaded yet");
+ // It was not present in the cache (maybe because it was added by another HS2)
+ // or it is not up to date.
+ if (HiveMaterializedViewsRegistry.get().isInitialized()) {
+ // But the registry was fully initialized, thus we need to add it
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Materialized view " + materializedViewTable.getFullyQualifiedName() +
+ " was not in the cache");
+ }
+ materialization = HiveMaterializedViewsRegistry.get().createMaterializedView(
+ conf, materializedViewTable);
+ if (materialization != null) {
+ if (outdated) {
+ // We will rewrite it to include the filters on transaction list
+ // so we can produce partial rewritings
+ materialization = augmentMaterializationWithTimeInformation(
+ materialization, txnList, new ValidTxnWriteIdList(
+ materializationInvInfo.getValidTxnList()));
}
+ result.add(materialization);
+ }
+ } else {
+ // Otherwise the registry has not been initialized, skip for the time being
+ if (LOG.isWarnEnabled()) {
+ LOG.info("Materialized view " + materializedViewTable.getFullyQualifiedName() + " was skipped "
+ + "because cache has not been loaded yet");
}
}
}
@@ -1418,6 +1487,24 @@ public class Hive {
}
/**
+ * Method to enrich the materialization query contained in the input with
+ * its invalidation.
+ */
+ private static RelOptMaterialization augmentMaterializationWithTimeInformation(
+ RelOptMaterialization materialization, ValidTxnWriteIdList currentTxnList,
+ ValidTxnWriteIdList materializationTxnList) {
+ final RexBuilder rexBuilder = materialization.queryRel.getCluster().getRexBuilder();
+ final HepProgramBuilder augmentMaterializationProgram = new HepProgramBuilder()
+ .addRuleInstance(new HiveAugmentMaterializationRule(rexBuilder, currentTxnList, materializationTxnList));
+ final HepPlanner augmentMaterializationPlanner = new HepPlanner(
+ augmentMaterializationProgram.build());
+ augmentMaterializationPlanner.setRoot(materialization.queryRel);
+ final RelNode modifiedQueryRel = augmentMaterializationPlanner.findBestExp();
+ return new RelOptMaterialization(materialization.tableRel, modifiedQueryRel,
+ null, materialization.qualifiedTableName);
+ }
+
+ /**
* Get materialized views for the specified database that have enabled rewriting.
* @param dbName
* @return List of materialized view table objects
@@ -2424,8 +2511,6 @@ private void constructOneLBLocationMap(FileStatus fSta,
* created
* @param partPath the path where the partition data is located
* @param inheritTableSpecs whether to copy over the table specs for if/of/serde
- * @param newFiles An optional list of new files that were moved into this partition. If
- * non-null these will be included in the DML event sent to the metastore.
* @return result partition object or null if there is no partition
* @throws HiveException
*/
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/java/org/apache/hadoop/hive/ql/metadata/HiveMaterializedViewsRegistry.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/metadata/HiveMaterializedViewsRegistry.java b/ql/src/java/org/apache/hadoop/hive/ql/metadata/HiveMaterializedViewsRegistry.java
index 53dc8ec..6e585e5 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/metadata/HiveMaterializedViewsRegistry.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/metadata/HiveMaterializedViewsRegistry.java
@@ -193,6 +193,8 @@ public final class HiveMaterializedViewsRegistry {
private RelOptMaterialization addMaterializedView(HiveConf conf, Table materializedViewTable, OpType opType) {
// Bail out if it is not enabled for rewriting
if (!materializedViewTable.isRewriteEnabled()) {
+ LOG.debug("Materialized view " + materializedViewTable.getCompleteName() +
+ " ignored; it is not rewrite enabled");
return null;
}
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/views/HiveAggregateIncrementalRewritingRule.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/views/HiveAggregateIncrementalRewritingRule.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/views/HiveAggregateIncrementalRewritingRule.java
new file mode 100644
index 0000000..aabd75e
--- /dev/null
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/views/HiveAggregateIncrementalRewritingRule.java
@@ -0,0 +1,175 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hive.ql.optimizer.calcite.rules.views;
+
+import com.google.common.collect.ImmutableList;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.core.Aggregate;
+import org.apache.calcite.rel.core.AggregateCall;
+import org.apache.calcite.rel.core.JoinRelType;
+import org.apache.calcite.rel.core.Union;
+import org.apache.calcite.rex.RexBuilder;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.sql.SqlAggFunction;
+import org.apache.calcite.sql.SqlOperator;
+import org.apache.calcite.sql.fun.SqlStdOperatorTable;
+import org.apache.hadoop.hive.ql.optimizer.calcite.HiveRelFactories;
+import org.apache.hadoop.hive.ql.optimizer.calcite.functions.HiveSqlMinMaxAggFunction;
+import org.apache.hadoop.hive.ql.optimizer.calcite.functions.HiveSqlSumAggFunction;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * This rule will perform a rewriting to prepare the plan for incremental
+ * view maintenance in case there exist aggregation operator, so we can
+ * avoid the INSERT OVERWRITE and use a MERGE statement instead.
+ *
+ * In particular, the INSERT OVERWRITE maintenance will look like this
+ * (in SQL):
+ * INSERT OVERWRITE mv
+ * SELECT a, b, SUM(s) as s, SUM(c) AS c
+ * FROM (
+ * SELECT * from mv --OLD DATA
+ * UNION ALL
+ * SELECT a, b, SUM(x) AS s, COUNT(*) AS c --NEW DATA
+ * FROM TAB_A
+ * JOIN TAB_B ON (TAB_A.a = TAB_B.z)
+ * WHERE TAB_A.ROW_ID > 5
+ * GROUP BY a, b) inner_subq
+ * GROUP BY a, b;
+ *
+ * We need to transform that into:
+ * MERGE INTO mv
+ * USING (
+ * SELECT a, b, SUM(x) AS s, COUNT(*) AS c --NEW DATA
+ * FROM TAB_A
+ * JOIN TAB_B ON (TAB_A.a = TAB_B.z)
+ * WHERE TAB_A.ROW_ID > 5
+ * GROUP BY a, b) source
+ * ON (mv.a = source.a AND mv.b = source.b)
+ * WHEN MATCHED AND mv.c + source.c <> 0
+ * THEN UPDATE SET mv.s = mv.s + source.s, mv.c = mv.c + source.c
+ * WHEN NOT MATCHED
+ * THEN INSERT VALUES (source.a, source.b, s, c);
+ *
+ * To be precise, we need to convert it into a MERGE rewritten as:
+ * FROM mv right outer join _source_ source
+ * ON (mv.a = source.a AND mv.b = source.b)
+ * INSERT INTO TABLE mv
+ * SELECT source.a, source.b, s, c
+ * WHERE mv.a IS NULL AND mv2.b IS NULL
+ * INSERT INTO TABLE mv
+ * SELECT mv.ROW__ID, source.a, source.b, mv.s + source.s, mv.c + source.c
+ * WHERE source.a=mv.a AND source.b=mv.b
+ * SORT BY mv.ROW__ID;
+ */
+public class HiveAggregateIncrementalRewritingRule extends RelOptRule {
+
+ public static final HiveAggregateIncrementalRewritingRule INSTANCE =
+ new HiveAggregateIncrementalRewritingRule();
+
+ private HiveAggregateIncrementalRewritingRule() {
+ super(operand(Aggregate.class, operand(Union.class, any())),
+ HiveRelFactories.HIVE_BUILDER,
+ "HiveAggregateIncrementalRewritingRule");
+ }
+
+ @Override
+ public void onMatch(RelOptRuleCall call) {
+ final Aggregate agg = call.rel(0);
+ final Union union = call.rel(1);
+ final RexBuilder rexBuilder =
+ agg.getCluster().getRexBuilder();
+ // 1) First branch is query, second branch is MV
+ final RelNode joinLeftInput = union.getInput(1);
+ final RelNode joinRightInput = union.getInput(0);
+ // 2) Build conditions for join and filter and start adding
+ // expressions for project operator
+ List<RexNode> projExprs = new ArrayList<>();
+ List<RexNode> joinConjs = new ArrayList<>();
+ List<RexNode> filterConjs = new ArrayList<>();
+ int groupCount = agg.getGroupCount();
+ int totalCount = agg.getGroupCount() + agg.getAggCallList().size();
+ for (int leftPos = 0, rightPos = totalCount;
+ leftPos < groupCount; leftPos++, rightPos++) {
+ RexNode leftRef = rexBuilder.makeInputRef(
+ joinLeftInput.getRowType().getFieldList().get(leftPos).getType(), leftPos);
+ RexNode rightRef = rexBuilder.makeInputRef(
+ joinRightInput.getRowType().getFieldList().get(leftPos).getType(), rightPos);
+ projExprs.add(rightRef);
+ joinConjs.add(rexBuilder.makeCall(SqlStdOperatorTable.EQUALS,
+ ImmutableList.of(leftRef, rightRef)));
+ filterConjs.add(rexBuilder.makeCall(SqlStdOperatorTable.IS_NULL,
+ ImmutableList.of(leftRef)));
+ }
+ // 3) Add the expressions that correspond to the aggregation
+ // functions
+ RexNode caseFilterCond = rexBuilder.makeCall(SqlStdOperatorTable.AND, filterConjs);
+ for (int i = 0, leftPos = groupCount, rightPos = totalCount + groupCount;
+ leftPos < totalCount; i++, leftPos++, rightPos++) {
+ // case when mv2.deptno IS NULL AND mv2.deptname IS NULL then s else source.s + mv2.s end
+ RexNode leftRef = rexBuilder.makeInputRef(
+ joinLeftInput.getRowType().getFieldList().get(leftPos).getType(), leftPos);
+ RexNode rightRef = rexBuilder.makeInputRef(
+ joinRightInput.getRowType().getFieldList().get(leftPos).getType(), rightPos);
+ // Generate SQLOperator for merging the aggregations
+ RexNode elseReturn;
+ SqlAggFunction aggCall = agg.getAggCallList().get(i).getAggregation();
+ switch (aggCall.getKind()) {
+ case SUM:
+ // SUM and COUNT are rolled up as SUM, hence SUM represents both here
+ elseReturn = rexBuilder.makeCall(SqlStdOperatorTable.PLUS,
+ ImmutableList.of(rightRef, leftRef));
+ break;
+ case MIN: {
+ RexNode condInnerCase = rexBuilder.makeCall(SqlStdOperatorTable.LESS_THAN,
+ ImmutableList.of(rightRef, leftRef));
+ elseReturn = rexBuilder.makeCall(SqlStdOperatorTable.CASE,
+ ImmutableList.of(condInnerCase, rightRef, leftRef));
+ }
+ break;
+ case MAX: {
+ RexNode condInnerCase = rexBuilder.makeCall(SqlStdOperatorTable.GREATER_THAN,
+ ImmutableList.of(rightRef, leftRef));
+ elseReturn = rexBuilder.makeCall(SqlStdOperatorTable.CASE,
+ ImmutableList.of(condInnerCase, rightRef, leftRef));
+ }
+ break;
+ default:
+ throw new AssertionError("Found an aggregation that could not be"
+ + " recognized: " + aggCall);
+ }
+ projExprs.add(rexBuilder.makeCall(SqlStdOperatorTable.CASE,
+ ImmutableList.of(caseFilterCond, rightRef, elseReturn)));
+ }
+ RexNode joinCond = rexBuilder.makeCall(SqlStdOperatorTable.AND, joinConjs);
+ RexNode filterCond = rexBuilder.makeCall(SqlStdOperatorTable.AND, filterConjs);
+ // 3) Build plan
+ RelNode newNode = call.builder()
+ .push(union.getInput(1))
+ .push(union.getInput(0))
+ .join(JoinRelType.RIGHT, joinCond)
+ .filter(rexBuilder.makeCall(SqlStdOperatorTable.OR, ImmutableList.of(joinCond, filterCond)))
+ .project(projExprs)
+ .build();
+ call.transformTo(newNode);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/views/HiveAugmentMaterializationRule.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/views/HiveAugmentMaterializationRule.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/views/HiveAugmentMaterializationRule.java
new file mode 100644
index 0000000..420e6c4
--- /dev/null
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/views/HiveAugmentMaterializationRule.java
@@ -0,0 +1,123 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hive.ql.optimizer.calcite.rules.views;
+
+import com.google.common.collect.ImmutableList;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.core.TableScan;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rex.RexBuilder;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.sql.fun.SqlStdOperatorTable;
+import org.apache.calcite.sql.type.SqlTypeName;
+import org.apache.calcite.tools.RelBuilder;
+import org.apache.hadoop.hive.common.ValidTxnWriteIdList;
+import org.apache.hadoop.hive.common.ValidWriteIdList;
+import org.apache.hadoop.hive.ql.metadata.VirtualColumn;
+import org.apache.hadoop.hive.ql.optimizer.calcite.HiveRelFactories;
+import org.apache.hadoop.hive.ql.optimizer.calcite.RelOptHiveTable;
+import org.apache.hive.common.util.TxnIdUtils;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * This rule will rewrite the materialized view with information about
+ * its invalidation data. In particular, if any of the tables used by the
+ * materialization has been updated since the materialization was created,
+ * it will introduce a filter operator on top of that table in the materialization
+ * definition, making explicit the data contained in it so the rewriting
+ * algorithm can use this information to rewrite the query as a combination of the
+ * outdated materialization data and the new original data in the source tables.
+ * If the data in the source table matches the current data in the snapshot,
+ * no filter is created.
+ */
+public class HiveAugmentMaterializationRule extends RelOptRule {
+
+ private final RexBuilder rexBuilder;
+ private final ValidTxnWriteIdList currentTxnList;
+ private final ValidTxnWriteIdList materializationTxnList;
+ private final Set<RelNode> visited;
+
+ public HiveAugmentMaterializationRule(RexBuilder rexBuilder,
+ ValidTxnWriteIdList currentTxnList, ValidTxnWriteIdList materializationTxnList) {
+ super(operand(TableScan.class, any()),
+ HiveRelFactories.HIVE_BUILDER, "HiveAugmentMaterializationRule");
+ this.rexBuilder = rexBuilder;
+ this.currentTxnList = currentTxnList;
+ this.materializationTxnList = materializationTxnList;
+ this.visited = new HashSet<>();
+ }
+
+ @Override
+ public void onMatch(RelOptRuleCall call) {
+ final TableScan tableScan = call.rel(0);
+ if (!visited.add(tableScan)) {
+ // Already visited
+ return;
+ }
+ final String tableQName =
+ ((RelOptHiveTable)tableScan.getTable()).getHiveTableMD().getFullyQualifiedName();
+ final ValidWriteIdList tableCurrentTxnList =
+ currentTxnList.getTableValidWriteIdList(tableQName);
+ final ValidWriteIdList tableMaterializationTxnList =
+ materializationTxnList.getTableValidWriteIdList(tableQName);
+ if (TxnIdUtils.checkEquivalentWriteIds(tableCurrentTxnList, tableMaterializationTxnList)) {
+ // This table has not been modified since materialization was created,
+ // nothing to do
+ return;
+ }
+ // ROW__ID: struct<transactionid:bigint,bucketid:int,rowid:bigint>
+ int rowIDPos = tableScan.getTable().getRowType().getField(
+ VirtualColumn.ROWID.getName(), false, false).getIndex();
+ RexNode rowIDFieldAccess = rexBuilder.makeFieldAccess(
+ rexBuilder.makeInputRef(tableScan.getTable().getRowType().getFieldList().get(rowIDPos).getType(), rowIDPos),
+ 0);
+ // Now we create the filter with the transactions information.
+ // In particular, each table in the materialization will only have contents such that:
+ // ROW_ID.writeid <= high_watermark and ROW_ID.writeid not in (open/invalid_ids)
+ // Hence, we add that condition on top of the source table.
+ // The rewriting will then have the possibility to create partial rewritings that read
+ // the materialization and the source tables, and hence, produce an incremental
+ // rebuild that is more efficient than the full rebuild.
+ final RelBuilder relBuilder = call.builder();
+ relBuilder.push(tableScan);
+ List<RexNode> conds = new ArrayList<>();
+ RelDataType bigIntType = relBuilder.getTypeFactory().createSqlType(SqlTypeName.BIGINT);
+ final RexNode literalHighWatermark = rexBuilder.makeLiteral(
+ tableMaterializationTxnList.getHighWatermark(), bigIntType, false);
+ conds.add(
+ rexBuilder.makeCall(
+ SqlStdOperatorTable.LESS_THAN_OR_EQUAL,
+ ImmutableList.of(rowIDFieldAccess, literalHighWatermark)));
+ for (long invalidTxn : tableMaterializationTxnList.getInvalidWriteIds()) {
+ final RexNode literalInvalidTxn = rexBuilder.makeLiteral(
+ invalidTxn, bigIntType, false);
+ conds.add(
+ rexBuilder.makeCall(
+ SqlStdOperatorTable.NOT_EQUALS,
+ ImmutableList.of(rowIDFieldAccess, literalInvalidTxn)));
+ }
+ relBuilder.filter(conds);
+ call.transformTo(relBuilder.build());
+ }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/views/HiveNoAggregateIncrementalRewritingRule.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/views/HiveNoAggregateIncrementalRewritingRule.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/views/HiveNoAggregateIncrementalRewritingRule.java
new file mode 100644
index 0000000..ea285d0
--- /dev/null
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/views/HiveNoAggregateIncrementalRewritingRule.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hive.ql.optimizer.calcite.rules.views;
+
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.core.Union;
+import org.apache.hadoop.hive.ql.optimizer.calcite.HiveRelFactories;
+
+/**
+ * This rule will perform a rewriting to prepare the plan for incremental
+ * view maintenance in case there is no aggregation operator, so we can
+ * avoid the INSERT OVERWRITE and use a INSERT statement instead.
+ * In particular, it removes the union branch that reads the old data from
+ * the materialization, and keeps the branch that will read the new data.
+ */
+public class HiveNoAggregateIncrementalRewritingRule extends RelOptRule {
+
+ public static final HiveNoAggregateIncrementalRewritingRule INSTANCE =
+ new HiveNoAggregateIncrementalRewritingRule();
+
+ private HiveNoAggregateIncrementalRewritingRule() {
+ super(operand(Union.class, any()),
+ HiveRelFactories.HIVE_BUILDER, "HiveNoAggregateIncrementalRewritingRule");
+ }
+
+ @Override
+ public void onMatch(RelOptRuleCall call) {
+ final Union union = call.rel(0);
+ // First branch is query, second branch is MV
+ RelNode newNode = call.builder()
+ .push(union.getInput(0))
+ .convert(union.getRowType(), false)
+ .build();
+ call.transformTo(newNode);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/views/MaterializedViewRewritingRelVisitor.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/views/MaterializedViewRewritingRelVisitor.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/views/MaterializedViewRewritingRelVisitor.java
new file mode 100644
index 0000000..884efd5
--- /dev/null
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/views/MaterializedViewRewritingRelVisitor.java
@@ -0,0 +1,164 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hive.ql.optimizer.calcite.rules.views;
+
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.RelVisitor;
+import org.apache.calcite.rel.core.Aggregate;
+import org.apache.calcite.rel.core.Filter;
+import org.apache.calcite.rel.core.Join;
+import org.apache.calcite.rel.core.Project;
+import org.apache.calcite.rel.core.TableScan;
+import org.apache.calcite.rel.core.Union;
+import org.apache.calcite.util.ControlFlowException;
+import org.apache.hadoop.hive.ql.io.AcidUtils;
+import org.apache.hadoop.hive.ql.optimizer.calcite.RelOptHiveTable;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * This class is a helper to check whether a materialized view rebuild
+ * can be transformed from INSERT OVERWRITE to INSERT INTO.
+ *
+ * We are verifying that:
+ * 1) the rewriting is rooted by legal operators (Filter and Project)
+ * before reaching a Union operator,
+ * 2) the left branch uses the MV that we are trying to rebuild and
+ * legal operators (Filter and Project), and
+ * 3) the right branch only uses legal operators (i.e., Filter, Project,
+ * Join, and TableScan)
+ */
+public class MaterializedViewRewritingRelVisitor extends RelVisitor {
+
+ private static final Logger LOG = LoggerFactory.getLogger(MaterializedViewRewritingRelVisitor.class);
+
+
+ private boolean containsAggregate;
+ private boolean rewritingAllowed;
+
+ public MaterializedViewRewritingRelVisitor() {
+ this.containsAggregate = false;
+ this.rewritingAllowed = false;
+ }
+
+ @Override
+ public void visit(RelNode node, int ordinal, RelNode parent) {
+ if (node instanceof Aggregate) {
+ this.containsAggregate = true;
+ // Aggregate mode - it should be followed by union
+ // that we need to analyze
+ RelNode input = node.getInput(0);
+ if (input instanceof Union) {
+ check((Union) input);
+ }
+ } else if (node instanceof Union) {
+ // Non aggregate mode - analyze union operator
+ check((Union) node);
+ } else if (node instanceof Project) {
+ // Project operator, we can continue
+ super.visit(node, ordinal, parent);
+ }
+ throw new ReturnedValue(false);
+ }
+
+ private void check(Union union) {
+ // We found the Union
+ if (union.getInputs().size() != 2) {
+ // Bail out
+ throw new ReturnedValue(false);
+ }
+ // First branch should have the query (with write ID filter conditions)
+ new RelVisitor() {
+ @Override
+ public void visit(RelNode node, int ordinal, RelNode parent) {
+ if (node instanceof TableScan ||
+ node instanceof Filter ||
+ node instanceof Project ||
+ node instanceof Join) {
+ // We can continue
+ super.visit(node, ordinal, parent);
+ } else if (node instanceof Aggregate && containsAggregate) {
+ // We can continue
+ super.visit(node, ordinal, parent);
+ } else {
+ throw new ReturnedValue(false);
+ }
+ }
+ }.go(union.getInput(0));
+ // Second branch should only have the MV
+ new RelVisitor() {
+ @Override
+ public void visit(RelNode node, int ordinal, RelNode parent) {
+ if (node instanceof TableScan) {
+ // We can continue
+ // TODO: Need to check that this is the same MV that we are rebuilding
+ RelOptHiveTable hiveTable = (RelOptHiveTable) node.getTable();
+ if (!hiveTable.getHiveTableMD().isMaterializedView()) {
+ // If it is not a materialized view, we do not rewrite it
+ throw new ReturnedValue(false);
+ }
+ if (containsAggregate && !AcidUtils.isFullAcidTable(hiveTable.getHiveTableMD())) {
+ // If it contains an aggregate and it is not a full acid table,
+ // we do not rewrite it (we need MERGE support)
+ throw new ReturnedValue(false);
+ }
+ } else if (node instanceof Project) {
+ // We can continue
+ super.visit(node, ordinal, parent);
+ } else {
+ throw new ReturnedValue(false);
+ }
+ }
+ }.go(union.getInput(1));
+ // We pass all the checks, we can rewrite
+ throw new ReturnedValue(true);
+ }
+
+ /**
+ * Starts an iteration.
+ */
+ public RelNode go(RelNode p) {
+ try {
+ visit(p, 0, null);
+ } catch (ReturnedValue e) {
+ // Rewriting cannot be performed
+ rewritingAllowed = e.value;
+ }
+ return p;
+ }
+
+ public boolean isContainsAggregate() {
+ return containsAggregate;
+ }
+
+ public boolean isRewritingAllowed() {
+ return rewritingAllowed;
+ }
+
+
+ /**
+ * Exception used to interrupt a visitor walk.
+ */
+ private static class ReturnedValue extends ControlFlowException {
+ private final boolean value;
+
+ public ReturnedValue(boolean value) {
+ this.value = value;
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
index 41de17f..7a7bdea 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
@@ -72,6 +72,7 @@ import org.apache.calcite.rel.RelCollationImpl;
import org.apache.calcite.rel.RelCollations;
import org.apache.calcite.rel.RelFieldCollation;
import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.RelVisitor;
import org.apache.calcite.rel.core.Aggregate;
import org.apache.calcite.rel.core.AggregateCall;
import org.apache.calcite.rel.core.Filter;
@@ -122,11 +123,15 @@ import org.apache.calcite.util.ImmutableIntList;
import org.apache.calcite.util.Pair;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hive.common.ObjectPair;
+import org.apache.hadoop.hive.common.ValidTxnList;
+import org.apache.hadoop.hive.common.ValidTxnWriteIdList;
import org.apache.hadoop.hive.conf.Constants;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
import org.apache.hadoop.hive.conf.HiveConf.StrictChecks;
+import org.apache.hadoop.hive.metastore.Warehouse;
import org.apache.hadoop.hive.metastore.api.FieldSchema;
+import org.apache.hadoop.hive.ql.Context;
import org.apache.hadoop.hive.ql.ErrorMsg;
import org.apache.hadoop.hive.ql.QueryProperties;
import org.apache.hadoop.hive.ql.QueryState;
@@ -221,7 +226,10 @@ import org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveSubQueryRemoveRule;
import org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveUnionMergeRule;
import org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveUnionPullUpConstantsRule;
import org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveWindowingFixRule;
+import org.apache.hadoop.hive.ql.optimizer.calcite.rules.views.HiveAggregateIncrementalRewritingRule;
import org.apache.hadoop.hive.ql.optimizer.calcite.rules.views.HiveMaterializedViewRule;
+import org.apache.hadoop.hive.ql.optimizer.calcite.rules.views.HiveNoAggregateIncrementalRewritingRule;
+import org.apache.hadoop.hive.ql.optimizer.calcite.rules.views.MaterializedViewRewritingRelVisitor;
import org.apache.hadoop.hive.ql.optimizer.calcite.translator.ASTBuilder;
import org.apache.hadoop.hive.ql.optimizer.calcite.translator.ASTConverter;
import org.apache.hadoop.hive.ql.optimizer.calcite.translator.HiveOpConverter;
@@ -407,7 +415,6 @@ public class CalcitePlanner extends SemanticAnalyzer {
disableJoinMerge = true;
boolean reAnalyzeAST = false;
final boolean materializedView = getQB().isMaterializedView();
- final boolean rebuild = materializedView && createVwDesc.isReplace();
try {
if (this.conf.getBoolVar(HiveConf.ConfVars.HIVE_CBO_RETPATH_HIVEOP)) {
@@ -427,9 +434,13 @@ public class CalcitePlanner extends SemanticAnalyzer {
ASTNode newAST = getOptimizedAST();
// 1.1. Fix up the query for insert/ctas/materialized views
- if (!rebuild) {
- // If it is not a MATERIALIZED VIEW...REBUILD
- newAST = fixUpAfterCbo(ast, newAST, cboCtx);
+ newAST = fixUpAfterCbo(ast, newAST, cboCtx);
+
+ // 1.2. Fix up the query for materialization rebuild
+ if (mvRebuildMode == MaterializationRebuildMode.AGGREGATE_REBUILD) {
+ fixUpASTAggregateIncrementalRebuild(newAST);
+ } else if (mvRebuildMode == MaterializationRebuildMode.NO_AGGREGATE_REBUILD) {
+ fixUpASTNoAggregateIncrementalRebuild(newAST);
}
// 2. Regen OP plan from optimized AST
@@ -440,29 +451,22 @@ public class CalcitePlanner extends SemanticAnalyzer {
throw new CalciteViewSemanticException(e.getMessage());
}
} else if (cboCtx.type == PreCboCtx.Type.VIEW && materializedView) {
- if (rebuild) {
- // Use the CREATE MATERIALIZED VIEW...REBUILD
- init(false);
- setAST(ast);
- reAnalyzeViewAfterCbo(ast);
- } else {
- // Store text of the ORIGINAL QUERY
- String originalText = ctx.getTokenRewriteStream().toString(
- cboCtx.nodeOfInterest.getTokenStartIndex(),
- cboCtx.nodeOfInterest.getTokenStopIndex());
- unparseTranslator.applyTranslations(ctx.getTokenRewriteStream());
- String expandedText = ctx.getTokenRewriteStream().toString(
- cboCtx.nodeOfInterest.getTokenStartIndex(),
- cboCtx.nodeOfInterest.getTokenStopIndex());
- // Redo create-table/view analysis, because it's not part of
- // doPhase1.
- // Use the REWRITTEN AST
- init(false);
- setAST(newAST);
- newAST = reAnalyzeViewAfterCbo(newAST);
- createVwDesc.setViewOriginalText(originalText);
- createVwDesc.setViewExpandedText(expandedText);
- }
+ // Store text of the ORIGINAL QUERY
+ String originalText = ctx.getTokenRewriteStream().toString(
+ cboCtx.nodeOfInterest.getTokenStartIndex(),
+ cboCtx.nodeOfInterest.getTokenStopIndex());
+ unparseTranslator.applyTranslations(ctx.getTokenRewriteStream());
+ String expandedText = ctx.getTokenRewriteStream().toString(
+ cboCtx.nodeOfInterest.getTokenStartIndex(),
+ cboCtx.nodeOfInterest.getTokenStopIndex());
+ // Redo create-table/view analysis, because it's not part of
+ // doPhase1.
+ // Use the REWRITTEN AST
+ init(false);
+ setAST(newAST);
+ newAST = reAnalyzeViewAfterCbo(newAST);
+ createVwDesc.setViewOriginalText(originalText);
+ createVwDesc.setViewExpandedText(expandedText);
viewSelect = newAST;
viewsExpanded = new ArrayList<>();
viewsExpanded.add(createVwDesc.getViewName());
@@ -963,6 +967,209 @@ public class CalcitePlanner extends SemanticAnalyzer {
return table;
}
+ private void fixUpASTAggregateIncrementalRebuild(ASTNode newAST) throws SemanticException {
+ // Replace INSERT OVERWRITE by MERGE equivalent rewriting.
+ // Here we need to do this complex AST rewriting that generates the same plan
+ // that a MERGE clause would generate because CBO does not support MERGE yet.
+ // TODO: Support MERGE as first class member in CBO to simplify this logic.
+ // 1) Replace INSERT OVERWRITE by INSERT
+ ASTNode updateNode = new ASTSearcher().simpleBreadthFirstSearch(
+ newAST, HiveParser.TOK_QUERY, HiveParser.TOK_INSERT);
+ ASTNode destinationNode = (ASTNode) updateNode.getChild(0);
+ ASTNode newInsertInto = (ASTNode) ParseDriver.adaptor.create(
+ HiveParser.TOK_INSERT_INTO, "TOK_INSERT_INTO");
+ newInsertInto.addChildren(destinationNode.getChildren());
+ ASTNode destinationParentNode = (ASTNode) destinationNode.getParent();
+ int childIndex = destinationNode.childIndex;
+ destinationParentNode.deleteChild(childIndex);
+ destinationParentNode.insertChild(childIndex, newInsertInto);
+ // 1.1) Extract name as we will need it afterwards:
+ // TOK_DESTINATION TOK_TAB TOK_TABNAME <materialization_name>
+ ASTNode materializationNode = new ASTSearcher().simpleBreadthFirstSearch(
+ newInsertInto, HiveParser.TOK_INSERT_INTO, HiveParser.TOK_TAB, HiveParser.TOK_TABNAME);
+ // 2) Copy INSERT branch and duplicate it, the first branch will be the UPDATE
+ // for the MERGE statement while the new branch will be the INSERT for the
+ // MERGE statement
+ ASTNode updateParent = (ASTNode) updateNode.getParent();
+ ASTNode insertNode = (ASTNode) ParseDriver.adaptor.dupTree(updateNode);
+ insertNode.setParent(updateParent);
+ updateParent.addChild(insertNode);
+ // 3) Create ROW_ID column in select clause from left input for the RIGHT OUTER JOIN.
+ // This is needed for the UPDATE clause. Hence, we find the following node:
+ // TOK_QUERY
+ // TOK_FROM
+ // TOK_RIGHTOUTERJOIN
+ // TOK_SUBQUERY
+ // TOK_QUERY
+ // ...
+ // TOK_INSERT
+ // ...
+ // TOK_SELECT
+ // And then we create the following child node:
+ // TOK_SELEXPR
+ // .
+ // TOK_TABLE_OR_COL
+ // cmv_mat_view
+ // ROW__ID
+ ASTNode subqueryNodeInputROJ = new ASTSearcher().simpleBreadthFirstSearch(
+ newAST, HiveParser.TOK_QUERY, HiveParser.TOK_FROM, HiveParser.TOK_RIGHTOUTERJOIN,
+ HiveParser.TOK_SUBQUERY);
+ ASTNode selectNodeInputROJ = new ASTSearcher().simpleBreadthFirstSearch(
+ subqueryNodeInputROJ, HiveParser.TOK_SUBQUERY, HiveParser.TOK_QUERY,
+ HiveParser.TOK_INSERT, HiveParser.TOK_SELECT);
+ ASTNode selectExprNodeInputROJ = (ASTNode) ParseDriver.adaptor.create(
+ HiveParser.TOK_SELEXPR, "TOK_SELEXPR");
+ ASTNode dotNodeInputROJ = (ASTNode) ParseDriver.adaptor.create(
+ HiveParser.DOT, ".");
+ ASTNode columnTokNodeInputROJ = (ASTNode) ParseDriver.adaptor.create(
+ HiveParser.TOK_TABLE_OR_COL, "TOK_TABLE_OR_COL");
+ ASTNode tableNameNodeInputROJ = (ASTNode) ParseDriver.adaptor.create(
+ HiveParser.Identifier, Warehouse.getQualifiedName(
+ materializationNode.getChild(0).getText(),
+ materializationNode.getChild(1).getText()));
+ ASTNode rowIdNodeInputROJ = (ASTNode) ParseDriver.adaptor.create(
+ HiveParser.Identifier, VirtualColumn.ROWID.getName());
+ ParseDriver.adaptor.addChild(selectNodeInputROJ, selectExprNodeInputROJ);
+ ParseDriver.adaptor.addChild(selectExprNodeInputROJ, dotNodeInputROJ);
+ ParseDriver.adaptor.addChild(dotNodeInputROJ, columnTokNodeInputROJ);
+ ParseDriver.adaptor.addChild(dotNodeInputROJ, rowIdNodeInputROJ);
+ ParseDriver.adaptor.addChild(columnTokNodeInputROJ, tableNameNodeInputROJ);
+ // 4) Transform first INSERT branch into an UPDATE
+ // 4.1) Adding ROW__ID field
+ ASTNode selectNodeInUpdate = (ASTNode) updateNode.getChild(1);
+ if (selectNodeInUpdate.getType() != HiveParser.TOK_SELECT) {
+ throw new SemanticException("TOK_SELECT expected in incremental rewriting");
+ }
+ ASTNode selectExprNodeInUpdate = (ASTNode) ParseDriver.adaptor.dupNode(selectExprNodeInputROJ);
+ ASTNode dotNodeInUpdate = (ASTNode) ParseDriver.adaptor.dupNode(dotNodeInputROJ);
+ ASTNode columnTokNodeInUpdate = (ASTNode) ParseDriver.adaptor.dupNode(columnTokNodeInputROJ);
+ ASTNode tableNameNodeInUpdate = (ASTNode) ParseDriver.adaptor.dupNode(subqueryNodeInputROJ.getChild(1));
+ ASTNode rowIdNodeInUpdate = (ASTNode) ParseDriver.adaptor.dupNode(rowIdNodeInputROJ);
+ ParseDriver.adaptor.addChild(selectExprNodeInUpdate, dotNodeInUpdate);
+ ParseDriver.adaptor.addChild(dotNodeInUpdate, columnTokNodeInUpdate);
+ ParseDriver.adaptor.addChild(dotNodeInUpdate, rowIdNodeInUpdate);
+ ParseDriver.adaptor.addChild(columnTokNodeInUpdate, tableNameNodeInUpdate);
+ selectNodeInUpdate.insertChild(0, ParseDriver.adaptor.dupTree(selectExprNodeInUpdate));
+ // 4.2) Modifying filter condition. The incremental rewriting rule generated an OR
+ // clause where first disjunct contains the condition for the UPDATE branch.
+ // TOK_WHERE
+ // or
+ // and <- DISJUNCT FOR <UPDATE>
+ // =
+ // .
+ // TOK_TABLE_OR_COL
+ // $hdt$_0
+ // a
+ // .
+ // TOK_TABLE_OR_COL
+ // $hdt$_1
+ // a
+ // =
+ // .
+ // TOK_TABLE_OR_COL
+ // $hdt$_0
+ // c
+ // .
+ // TOK_TABLE_OR_COL
+ // $hdt$_1
+ // c
+ // and <- DISJUNCT FOR <INSERT>
+ // TOK_FUNCTION
+ // isnull
+ // .
+ // TOK_TABLE_OR_COL
+ // $hdt$_0
+ // a
+ // TOK_FUNCTION
+ // isnull
+ // .
+ // TOK_TABLE_OR_COL
+ // $hdt$_0
+ // c
+ ASTNode whereClauseInUpdate = null;
+ for (int i = 0; i < updateNode.getChildren().size(); i++) {
+ if (updateNode.getChild(i).getType() == HiveParser.TOK_WHERE) {
+ whereClauseInUpdate = (ASTNode) updateNode.getChild(i);
+ break;
+ }
+ }
+ if (whereClauseInUpdate == null) {
+ throw new SemanticException("TOK_WHERE expected in incremental rewriting");
+ }
+ if (whereClauseInUpdate.getChild(0).getType() != HiveParser.KW_OR) {
+ throw new SemanticException("OR clause expected below TOK_WHERE in incremental rewriting");
+ }
+ // We bypass the OR clause and select the first disjunct
+ ASTNode newCondInUpdate = (ASTNode) whereClauseInUpdate.getChild(0).getChild(0);
+ ParseDriver.adaptor.setChild(whereClauseInUpdate, 0, newCondInUpdate);
+ // 4.3) Finally, we add SORT clause, this is needed for the UPDATE.
+ // TOK_SORTBY
+ // TOK_TABSORTCOLNAMEASC
+ // TOK_NULLS_FIRST
+ // .
+ // TOK_TABLE_OR_COL
+ // cmv_basetable_2
+ // ROW__ID
+ ASTNode sortExprNode = (ASTNode) ParseDriver.adaptor.create(
+ HiveParser.TOK_SORTBY, "TOK_SORTBY");
+ ASTNode orderExprNode = (ASTNode) ParseDriver.adaptor.create(
+ HiveParser.TOK_TABSORTCOLNAMEASC, "TOK_TABSORTCOLNAMEASC");
+ ASTNode nullsOrderExprNode = (ASTNode) ParseDriver.adaptor.create(
+ HiveParser.TOK_NULLS_FIRST, "TOK_NULLS_FIRST");
+ ASTNode dotNodeInSort = (ASTNode) ParseDriver.adaptor.dupTree(dotNodeInUpdate);
+ ParseDriver.adaptor.addChild(updateNode, sortExprNode);
+ ParseDriver.adaptor.addChild(sortExprNode, orderExprNode);
+ ParseDriver.adaptor.addChild(orderExprNode, nullsOrderExprNode);
+ ParseDriver.adaptor.addChild(nullsOrderExprNode, dotNodeInSort);
+ // 5) Modify INSERT branch condition. In particular, we need to modify the
+ // WHERE clause and pick up the second disjunct from the OR operation.
+ ASTNode whereClauseInInsert = null;
+ for (int i = 0; i < insertNode.getChildren().size(); i++) {
+ if (insertNode.getChild(i).getType() == HiveParser.TOK_WHERE) {
+ whereClauseInInsert = (ASTNode) insertNode.getChild(i);
+ break;
+ }
+ }
+ if (whereClauseInInsert == null) {
+ throw new SemanticException("TOK_WHERE expected in incremental rewriting");
+ }
+ if (whereClauseInInsert.getChild(0).getType() != HiveParser.KW_OR) {
+ throw new SemanticException("OR clause expected below TOK_WHERE in incremental rewriting");
+ }
+ // We bypass the OR clause and select the second disjunct
+ ASTNode newCondInInsert = (ASTNode) whereClauseInInsert.getChild(0).getChild(1);
+ ParseDriver.adaptor.setChild(whereClauseInInsert, 0, newCondInInsert);
+ // 6) Now we set some tree properties related to multi-insert
+ // operation with INSERT/UPDATE
+ ctx.setOperation(Context.Operation.MERGE);
+ ctx.addDestNamePrefix(1, Context.DestClausePrefix.UPDATE);
+ ctx.addDestNamePrefix(2, Context.DestClausePrefix.INSERT);
+ }
+
+ private void fixUpASTNoAggregateIncrementalRebuild(ASTNode newAST) throws SemanticException {
+ // Replace INSERT OVERWRITE by INSERT INTO
+ // AST tree will have this shape:
+ // TOK_QUERY
+ // TOK_FROM
+ // ...
+ // TOK_INSERT
+ // TOK_DESTINATION <- THIS TOKEN IS REPLACED BY 'TOK_INSERT_INTO'
+ // TOK_TAB
+ // TOK_TABNAME
+ // default.cmv_mat_view
+ // TOK_SELECT
+ // ...
+ ASTNode dest = new ASTSearcher().simpleBreadthFirstSearch(newAST, HiveParser.TOK_QUERY,
+ HiveParser.TOK_INSERT, HiveParser.TOK_DESTINATION);
+ ASTNode newChild = (ASTNode) ParseDriver.adaptor.create(
+ HiveParser.TOK_INSERT_INTO, "TOK_INSERT_INTO");
+ newChild.addChildren(dest.getChildren());
+ ASTNode destParent = (ASTNode) dest.getParent();
+ int childIndex = dest.childIndex;
+ destParent.deleteChild(childIndex);
+ destParent.insertChild(childIndex, newChild);
+ }
+
@Override
String fixCtasColumnName(String colName) {
if (runCBO) {
@@ -1847,7 +2054,36 @@ public class CalcitePlanner extends SemanticAnalyzer {
// Add views to planner
List<RelOptMaterialization> materializations = new ArrayList<>();
try {
- materializations = Hive.get().getValidMaterializedViews(rewrittenRebuild);
+ // Extract tables used by the query which will in turn be used to generate
+ // the corresponding txn write ids
+ List<String> tablesUsed = new ArrayList<>();
+ new RelVisitor() {
+ @Override
+ public void visit(RelNode node, int ordinal, RelNode parent) {
+ if (node instanceof TableScan) {
+ TableScan ts = (TableScan) node;
+ tablesUsed.add(((RelOptHiveTable) ts.getTable()).getHiveTableMD().getFullyQualifiedName());
+ }
+ super.visit(node, ordinal, parent);
+ }
+ }.go(basePlan);
+ final String validTxnsList = conf.get(ValidTxnList.VALID_TXNS_KEY);
+ ValidTxnWriteIdList txnWriteIds = null;
+ if (validTxnsList != null && !validTxnsList.isEmpty()) {
+ txnWriteIds = SessionState.get().getTxnMgr().getValidWriteIds(tablesUsed, validTxnsList);
+ }
+ if (mvRebuildMode != MaterializationRebuildMode.NONE) {
+ // We only retrieve the materialization corresponding to the rebuild. In turn,
+ // we pass 'true' for the forceMVContentsUpToDate parameter, as we cannot allow the
+ // materialization contents to be stale for a rebuild if we want to use it.
+ materializations = Hive.get().getValidMaterializedView(mvRebuildDbName, mvRebuildName,
+ true, txnWriteIds);
+ } else {
+ // This is not a rebuild, we retrieve all the materializations. In turn, we do not need
+ // to force the materialization contents to be up-to-date, as this is not a rebuild, and
+ // we apply the user parameters (HIVE_MATERIALIZED_VIEW_REWRITING_TIME_WINDOW) instead.
+ materializations = Hive.get().getAllValidMaterializedViews(false, txnWriteIds);
+ }
// We need to use the current cluster for the scan operator on views,
// otherwise the planner will throw an Exception (different planners)
materializations = Lists.transform(materializations,
@@ -1920,6 +2156,29 @@ public class CalcitePlanner extends SemanticAnalyzer {
RelMetadataQuery.THREAD_PROVIDERS.set(JaninoRelMetadataProvider.of(mdProvider));
perfLogger.PerfLogEnd(this.getClass().getName(), PerfLogger.OPTIMIZER, "Calcite: View-based rewriting");
if (calcitePreMVRewritingPlan != basePlan) {
+ // A rewriting was produced, we will check whether it was part of an incremental rebuild
+ // to try to replace INSERT OVERWRITE by INSERT
+ if (mvRebuildMode == MaterializationRebuildMode.INSERT_OVERWRITE_REBUILD &&
+ HiveConf.getBoolVar(conf, HiveConf.ConfVars.HIVE_MATERIALIZED_VIEW_REWRITING_INCREMENTAL) &&
+ HiveConf.getBoolVar(conf, HiveConf.ConfVars.HIVE_MATERIALIZED_VIEW_REBUILD_INCREMENTAL)) {
+ // First we need to check if it is valid to convert to MERGE/INSERT INTO.
+ // If we succeed, we modify the plan and afterwards the AST.
+ // MV should be an acid table.
+ MaterializedViewRewritingRelVisitor visitor = new MaterializedViewRewritingRelVisitor();
+ visitor.go(basePlan);
+ if (visitor.isRewritingAllowed()) {
+ // Trigger rewriting to remove UNION branch with MV
+ if (visitor.isContainsAggregate()) {
+ basePlan = hepPlan(basePlan, false, mdProvider, null,
+ HepMatchOrder.TOP_DOWN, HiveAggregateIncrementalRewritingRule.INSTANCE);
+ mvRebuildMode = MaterializationRebuildMode.AGGREGATE_REBUILD;
+ } else {
+ basePlan = hepPlan(basePlan, false, mdProvider, null,
+ HepMatchOrder.TOP_DOWN, HiveNoAggregateIncrementalRewritingRule.INSTANCE);
+ mvRebuildMode = MaterializationRebuildMode.NO_AGGREGATE_REBUILD;
+ }
+ }
+ }
// Now we trigger some needed optimization rules again
basePlan = applyPreJoinOrderingTransforms(basePlan, mdProvider, executorProvider);
}
[15/24] hive git commit: HIVE-18839: Implement incremental rebuild
for materialized views (only insert operations in source tables) (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_8.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_8.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_8.q.out
new file mode 100644
index 0000000..3dcbd55
--- /dev/null
+++ b/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_8.q.out
@@ -0,0 +1,641 @@
+PREHOOK: query: create table if not exists source_table_001 (
+MY_DATE date,
+MY_ID bigint,
+MY_ID2 bigint,
+ENVIRONMENT string,
+DOWN_VOLUME bigint,
+UP_VOLUME bigint
+)
+stored AS ORC
+TBLPROPERTIES("transactional"="true")
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@source_table_001
+POSTHOOK: query: create table if not exists source_table_001 (
+MY_DATE date,
+MY_ID bigint,
+MY_ID2 bigint,
+ENVIRONMENT string,
+DOWN_VOLUME bigint,
+UP_VOLUME bigint
+)
+stored AS ORC
+TBLPROPERTIES("transactional"="true")
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@source_table_001
+PREHOOK: query: insert into table source_table_001
+ values ('2010-10-10', 1, 1, 'env', 1, 1)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@source_table_001
+POSTHOOK: query: insert into table source_table_001
+ values ('2010-10-10', 1, 1, 'env', 1, 1)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@source_table_001
+POSTHOOK: Lineage: source_table_001.down_volume SCRIPT []
+POSTHOOK: Lineage: source_table_001.environment SCRIPT []
+POSTHOOK: Lineage: source_table_001.my_date SCRIPT []
+POSTHOOK: Lineage: source_table_001.my_id SCRIPT []
+POSTHOOK: Lineage: source_table_001.my_id2 SCRIPT []
+POSTHOOK: Lineage: source_table_001.up_volume SCRIPT []
+PREHOOK: query: analyze table source_table_001 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@source_table_001
+PREHOOK: Output: default@source_table_001
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table source_table_001 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@source_table_001
+POSTHOOK: Output: default@source_table_001
+#### A masked pattern was here ####
+PREHOOK: query: CREATE MATERIALIZED VIEW source_table_001_mv ENABLE REWRITE AS
+SELECT
+SUM(A.DOWN_VOLUME) AS DOWN_VOLUME_SUM,
+SUM(A.UP_VOLUME) AS UP_VOLUME_SUM,
+A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
+from source_table_001 AS A
+group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@source_table_001
+PREHOOK: Output: database:default
+PREHOOK: Output: default@source_table_001_mv
+POSTHOOK: query: CREATE MATERIALIZED VIEW source_table_001_mv ENABLE REWRITE AS
+SELECT
+SUM(A.DOWN_VOLUME) AS DOWN_VOLUME_SUM,
+SUM(A.UP_VOLUME) AS UP_VOLUME_SUM,
+A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
+from source_table_001 AS A
+group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@source_table_001
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@source_table_001_mv
+PREHOOK: query: analyze table source_table_001_mv compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@source_table_001_mv
+PREHOOK: Output: default@source_table_001_mv
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table source_table_001_mv compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@source_table_001_mv
+POSTHOOK: Output: default@source_table_001_mv
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select
+SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
+A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
+FROM source_table_001 AS A
+group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select
+SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
+A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
+FROM source_table_001 AS A
+group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.source_table_001_mv
+ Select Operator
+ expressions: down_volume_sum (type: bigint), my_date (type: date), my_id2 (type: bigint), environment (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ ListSink
+
+PREHOOK: query: explain
+select
+SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
+A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
+FROM source_table_001 AS A
+group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
+LIMIT 100
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select
+SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
+A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
+FROM source_table_001 AS A
+group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
+LIMIT 100
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: 100
+ Processor Tree:
+ TableScan
+ alias: default.source_table_001_mv
+ Select Operator
+ expressions: down_volume_sum (type: bigint), my_date (type: date), my_id2 (type: bigint), environment (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Limit
+ Number of rows: 100
+ ListSink
+
+PREHOOK: query: explain
+select
+1,
+SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
+A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
+FROM source_table_001 AS A
+group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select
+1,
+SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
+A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
+FROM source_table_001 AS A
+group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.source_table_001_mv
+ Select Operator
+ expressions: 1 (type: int), down_volume_sum (type: bigint), my_date (type: date), my_id2 (type: bigint), environment (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4
+ ListSink
+
+PREHOOK: query: explain
+select
+SUM(A.DOWN_VOLUME) + 0 AS DOWNLOAD_VOLUME_BYTES,
+A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
+FROM source_table_001 AS A
+group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select
+SUM(A.DOWN_VOLUME) + 0 AS DOWNLOAD_VOLUME_BYTES,
+A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
+FROM source_table_001 AS A
+group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.source_table_001_mv
+ Select Operator
+ expressions: (down_volume_sum + 0L) (type: bigint), my_date (type: date), my_id2 (type: bigint), environment (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ ListSink
+
+PREHOOK: query: explain
+select
+SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
+A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
+FROM source_table_001 AS A
+group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
+ORDER BY A.MY_ID2
+LIMIT 100
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select
+SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
+A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
+FROM source_table_001 AS A
+group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
+ORDER BY A.MY_ID2
+LIMIT 100
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.source_table_001_mv
+ Statistics: Num rows: 1 Data size: 159 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: down_volume_sum (type: bigint), my_date (type: date), my_id2 (type: bigint), environment (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 1 Data size: 159 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col2 (type: bigint)
+ sort order: +
+ Statistics: Num rows: 1 Data size: 159 Basic stats: COMPLETE Column stats: COMPLETE
+ TopN Hash Memory Usage: 0.1
+ value expressions: _col0 (type: bigint), _col1 (type: date), _col3 (type: string)
+ Execution mode: llap
+ LLAP IO: all inputs
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Select Operator
+ expressions: VALUE._col0 (type: bigint), VALUE._col1 (type: date), KEY.reducesinkkey0 (type: bigint), VALUE._col2 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 1 Data size: 159 Basic stats: COMPLETE Column stats: COMPLETE
+ Limit
+ Number of rows: 100
+ Statistics: Num rows: 1 Data size: 159 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 159 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: 100
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: explain
+select
+distinct A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
+FROM source_table_001 AS A
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select
+distinct A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
+FROM source_table_001 AS A
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.source_table_001_mv
+ Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: my_date (type: date), my_id2 (type: bigint), environment (type: string)
+ outputColumnNames: my_date, my_id2, environment
+ Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ keys: my_date (type: date), my_id2 (type: bigint), environment (type: string)
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: date), _col1 (type: bigint), _col2 (type: string)
+ sort order: +++
+ Map-reduce partition columns: _col0 (type: date), _col1 (type: bigint), _col2 (type: string)
+ Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: all inputs
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ keys: KEY._col0 (type: date), KEY._col1 (type: bigint), KEY._col2 (type: string)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: explain
+select
+SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
+A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
+FROM source_table_001 AS A
+where A.MY_DATE=TO_DATE('2010-01-10')
+group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select
+SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
+A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
+FROM source_table_001 AS A
+where A.MY_DATE=TO_DATE('2010-01-10')
+group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.source_table_001_mv
+ Filter Operator
+ predicate: (my_date = DATE'2010-01-10') (type: boolean)
+ Select Operator
+ expressions: down_volume_sum (type: bigint), DATE'2010-01-10' (type: date), my_id2 (type: bigint), environment (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ ListSink
+
+PREHOOK: query: explain
+select
+SUM(A.DOWN_VOLUME) + SUM(A.UP_VOLUME) AS TOTAL_VOLUME_BYTES,
+A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
+FROM source_table_001 AS A
+where A.MY_DATE=TO_DATE('2010-01-10')
+group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select
+SUM(A.DOWN_VOLUME) + SUM(A.UP_VOLUME) AS TOTAL_VOLUME_BYTES,
+A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
+FROM source_table_001 AS A
+where A.MY_DATE=TO_DATE('2010-01-10')
+group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.source_table_001_mv
+ Filter Operator
+ predicate: (my_date = DATE'2010-01-10') (type: boolean)
+ Select Operator
+ expressions: (down_volume_sum + up_volume_sum) (type: bigint), DATE'2010-01-10' (type: date), my_id2 (type: bigint), environment (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ ListSink
+
+PREHOOK: query: explain
+select
+SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES
+FROM source_table_001 AS A
+where A.MY_DATE=TO_DATE('2010-01-10')
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select
+SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES
+FROM source_table_001 AS A
+where A.MY_DATE=TO_DATE('2010-01-10')
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (CUSTOM_SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.source_table_001_mv
+ Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: (my_date = DATE'2010-01-10') (type: boolean)
+ Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: down_volume_sum (type: bigint)
+ outputColumnNames: down_volume_sum
+ Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: sum(down_volume_sum)
+ mode: hash
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ sort order:
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: bigint)
+ Execution mode: llap
+ LLAP IO: all inputs
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: sum(VALUE._col0)
+ mode: mergepartial
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: explain
+select
+SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
+TO_DATE('2010-01-10')
+FROM source_table_001 AS A
+where A.MY_DATE=TO_DATE('2010-01-10')
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select
+SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
+TO_DATE('2010-01-10')
+FROM source_table_001 AS A
+where A.MY_DATE=TO_DATE('2010-01-10')
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (CUSTOM_SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.source_table_001_mv
+ Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: (my_date = DATE'2010-01-10') (type: boolean)
+ Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: down_volume_sum (type: bigint)
+ outputColumnNames: down_volume_sum
+ Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: sum(down_volume_sum)
+ mode: hash
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ sort order:
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: bigint)
+ Execution mode: llap
+ LLAP IO: all inputs
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: sum(VALUE._col0)
+ mode: mergepartial
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col0 (type: bigint), DATE'2010-01-10' (type: date)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: explain
+select
+SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
+A.MY_DATE
+FROM source_table_001 AS A
+where A.MY_DATE=TO_DATE('2010-01-10')
+group by A.MY_DATE
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select
+SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
+A.MY_DATE
+FROM source_table_001 AS A
+where A.MY_DATE=TO_DATE('2010-01-10')
+group by A.MY_DATE
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.source_table_001_mv
+ Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: (my_date = DATE'2010-01-10') (type: boolean)
+ Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: down_volume_sum (type: bigint)
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: sum(_col0)
+ keys: DATE'2010-01-10' (type: date)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: date)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: date)
+ Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: bigint)
+ Execution mode: llap
+ LLAP IO: all inputs
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: sum(VALUE._col0)
+ keys: KEY._col0 (type: date)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col1 (type: bigint), DATE'2010-01-10' (type: date)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: drop materialized view source_table_001_mv
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@source_table_001_mv
+PREHOOK: Output: default@source_table_001_mv
+POSTHOOK: query: drop materialized view source_table_001_mv
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@source_table_001_mv
+POSTHOOK: Output: default@source_table_001_mv
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_9.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_9.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_9.q.out
new file mode 100644
index 0000000..63daf6c
--- /dev/null
+++ b/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_9.q.out
@@ -0,0 +1,389 @@
+PREHOOK: query: create table if not exists source_table_001 (
+MY_DATE timestamp,
+MY_ID bigint,
+MY_ID2 bigint,
+ENVIRONMENT string,
+DOWN_VOLUME bigint,
+UP_VOLUME bigint
+)
+stored AS ORC
+TBLPROPERTIES("transactional"="true")
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@source_table_001
+POSTHOOK: query: create table if not exists source_table_001 (
+MY_DATE timestamp,
+MY_ID bigint,
+MY_ID2 bigint,
+ENVIRONMENT string,
+DOWN_VOLUME bigint,
+UP_VOLUME bigint
+)
+stored AS ORC
+TBLPROPERTIES("transactional"="true")
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@source_table_001
+PREHOOK: query: insert into table source_table_001
+ values ('2010-10-10 00:00:00', 1, 1, 'env', 1, 1)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@source_table_001
+POSTHOOK: query: insert into table source_table_001
+ values ('2010-10-10 00:00:00', 1, 1, 'env', 1, 1)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@source_table_001
+POSTHOOK: Lineage: source_table_001.down_volume SCRIPT []
+POSTHOOK: Lineage: source_table_001.environment SCRIPT []
+POSTHOOK: Lineage: source_table_001.my_date SCRIPT []
+POSTHOOK: Lineage: source_table_001.my_id SCRIPT []
+POSTHOOK: Lineage: source_table_001.my_id2 SCRIPT []
+POSTHOOK: Lineage: source_table_001.up_volume SCRIPT []
+PREHOOK: query: analyze table source_table_001 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@source_table_001
+PREHOOK: Output: default@source_table_001
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table source_table_001 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@source_table_001
+POSTHOOK: Output: default@source_table_001
+#### A masked pattern was here ####
+PREHOOK: query: CREATE MATERIALIZED VIEW source_table_001_mv ENABLE REWRITE AS
+SELECT
+SUM(A.DOWN_VOLUME) AS DOWN_VOLUME_SUM,
+SUM(A.UP_VOLUME) AS UP_VOLUME_SUM,
+A.MY_ID,A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
+from source_table_001 AS A
+group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@source_table_001
+PREHOOK: Output: database:default
+PREHOOK: Output: default@source_table_001_mv
+POSTHOOK: query: CREATE MATERIALIZED VIEW source_table_001_mv ENABLE REWRITE AS
+SELECT
+SUM(A.DOWN_VOLUME) AS DOWN_VOLUME_SUM,
+SUM(A.UP_VOLUME) AS UP_VOLUME_SUM,
+A.MY_ID,A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
+from source_table_001 AS A
+group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@source_table_001
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@source_table_001_mv
+PREHOOK: query: analyze table source_table_001_mv compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@source_table_001_mv
+PREHOOK: Output: default@source_table_001_mv
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table source_table_001_mv compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@source_table_001_mv
+POSTHOOK: Output: default@source_table_001_mv
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select
+SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
+FLOOR(A.MY_DATE to hour),A.MY_ID2,A.ENVIRONMENT
+FROM source_table_001 AS A
+group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,FLOOR(A.MY_DATE to hour)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select
+SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
+FLOOR(A.MY_DATE to hour),A.MY_ID2,A.ENVIRONMENT
+FROM source_table_001 AS A
+group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,FLOOR(A.MY_DATE to hour)
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.source_table_001_mv
+ Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: down_volume_sum (type: bigint), my_id (type: bigint), my_id2 (type: bigint), environment (type: string), floor_hour(my_date) (type: timestamp)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4
+ Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: sum(_col0)
+ keys: _col1 (type: bigint), _col2 (type: bigint), _col3 (type: string), _col4 (type: timestamp)
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4
+ Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: bigint), _col1 (type: bigint), _col2 (type: string), _col3 (type: timestamp)
+ sort order: ++++
+ Map-reduce partition columns: _col0 (type: bigint), _col1 (type: bigint), _col2 (type: string), _col3 (type: timestamp)
+ Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col4 (type: bigint)
+ Execution mode: llap
+ LLAP IO: all inputs
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: sum(VALUE._col0)
+ keys: KEY._col0 (type: bigint), KEY._col1 (type: bigint), KEY._col2 (type: string), KEY._col3 (type: timestamp)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4
+ Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col4 (type: bigint), _col3 (type: timestamp), _col1 (type: bigint), _col2 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 1 Data size: 143 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 143 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: DROP MATERIALIZED VIEW source_table_001_mv
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@source_table_001_mv
+PREHOOK: Output: default@source_table_001_mv
+POSTHOOK: query: DROP MATERIALIZED VIEW source_table_001_mv
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@source_table_001_mv
+POSTHOOK: Output: default@source_table_001_mv
+PREHOOK: query: CREATE MATERIALIZED VIEW source_table_001_mv ENABLE REWRITE AS
+SELECT
+SUM(A.DOWN_VOLUME) AS DOWN_VOLUME_SUM,
+SUM(A.UP_VOLUME) AS UP_VOLUME_SUM,
+A.MY_ID,FLOOR(A.MY_DATE to hour),A.MY_ID2,A.ENVIRONMENT
+from source_table_001 AS A
+group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,FLOOR(A.MY_DATE to hour)
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@source_table_001
+PREHOOK: Output: database:default
+PREHOOK: Output: default@source_table_001_mv
+POSTHOOK: query: CREATE MATERIALIZED VIEW source_table_001_mv ENABLE REWRITE AS
+SELECT
+SUM(A.DOWN_VOLUME) AS DOWN_VOLUME_SUM,
+SUM(A.UP_VOLUME) AS UP_VOLUME_SUM,
+A.MY_ID,FLOOR(A.MY_DATE to hour),A.MY_ID2,A.ENVIRONMENT
+from source_table_001 AS A
+group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,FLOOR(A.MY_DATE to hour)
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@source_table_001
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@source_table_001_mv
+PREHOOK: query: analyze table source_table_001_mv compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@source_table_001_mv
+PREHOOK: Output: default@source_table_001_mv
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table source_table_001_mv compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@source_table_001_mv
+POSTHOOK: Output: default@source_table_001_mv
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select
+SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
+FLOOR(A.MY_DATE to day),A.MY_ID2,A.ENVIRONMENT
+FROM source_table_001 AS A
+group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,FLOOR(A.MY_DATE to day)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select
+SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
+FLOOR(A.MY_DATE to day),A.MY_ID2,A.ENVIRONMENT
+FROM source_table_001 AS A
+group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,FLOOR(A.MY_DATE to day)
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.source_table_001_mv
+ Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: down_volume_sum (type: bigint), my_id (type: bigint), my_id2 (type: bigint), environment (type: string), floor_day(_c3) (type: timestamp)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4
+ Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: sum(_col0)
+ keys: _col1 (type: bigint), _col2 (type: bigint), _col3 (type: string), _col4 (type: timestamp)
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4
+ Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: bigint), _col1 (type: bigint), _col2 (type: string), _col3 (type: timestamp)
+ sort order: ++++
+ Map-reduce partition columns: _col0 (type: bigint), _col1 (type: bigint), _col2 (type: string), _col3 (type: timestamp)
+ Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col4 (type: bigint)
+ Execution mode: llap
+ LLAP IO: all inputs
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: sum(VALUE._col0)
+ keys: KEY._col0 (type: bigint), KEY._col1 (type: bigint), KEY._col2 (type: string), KEY._col3 (type: timestamp)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4
+ Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col4 (type: bigint), _col3 (type: timestamp), _col1 (type: bigint), _col2 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 1 Data size: 143 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 143 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: explain
+select
+SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
+FLOOR(A.MY_DATE to hour),A.MY_ID2,A.ENVIRONMENT
+FROM source_table_001 AS A
+group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,FLOOR(A.MY_DATE to hour)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select
+SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
+FLOOR(A.MY_DATE to hour),A.MY_ID2,A.ENVIRONMENT
+FROM source_table_001 AS A
+group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,FLOOR(A.MY_DATE to hour)
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.source_table_001_mv
+ Select Operator
+ expressions: down_volume_sum (type: bigint), _c3 (type: timestamp), my_id2 (type: bigint), environment (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ ListSink
+
+PREHOOK: query: explain
+select
+SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
+FLOOR(A.MY_DATE to second),A.MY_ID2,A.ENVIRONMENT
+FROM source_table_001 AS A
+group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,FLOOR(A.MY_DATE to second)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select
+SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
+FLOOR(A.MY_DATE to second),A.MY_ID2,A.ENVIRONMENT
+FROM source_table_001 AS A
+group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,FLOOR(A.MY_DATE to second)
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: a
+ Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: my_id (type: bigint), my_id2 (type: bigint), environment (type: string), floor_second(my_date) (type: timestamp), down_volume (type: bigint)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4
+ Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: sum(_col4)
+ keys: _col0 (type: bigint), _col1 (type: bigint), _col2 (type: string), _col3 (type: timestamp)
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4
+ Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: bigint), _col1 (type: bigint), _col2 (type: string), _col3 (type: timestamp)
+ sort order: ++++
+ Map-reduce partition columns: _col0 (type: bigint), _col1 (type: bigint), _col2 (type: string), _col3 (type: timestamp)
+ Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col4 (type: bigint)
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: sum(VALUE._col0)
+ keys: KEY._col0 (type: bigint), KEY._col1 (type: bigint), KEY._col2 (type: string), KEY._col3 (type: timestamp)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4
+ Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col4 (type: bigint), _col3 (type: timestamp), _col1 (type: bigint), _col2 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 1 Data size: 143 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 143 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: DROP MATERIALIZED VIEW source_table_001_mv
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@source_table_001_mv
+PREHOOK: Output: default@source_table_001_mv
+POSTHOOK: query: DROP MATERIALIZED VIEW source_table_001_mv
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@source_table_001_mv
+POSTHOOK: Output: default@source_table_001_mv
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/materialized_view_create_rewrite.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/materialized_view_create_rewrite.q.out b/ql/src/test/results/clientpositive/materialized_view_create_rewrite.q.out
deleted file mode 100644
index 18eb1d1..0000000
--- a/ql/src/test/results/clientpositive/materialized_view_create_rewrite.q.out
+++ /dev/null
@@ -1,477 +0,0 @@
-PREHOOK: query: create table cmv_basetable (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@cmv_basetable
-POSTHOOK: query: create table cmv_basetable (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@cmv_basetable
-PREHOOK: query: insert into cmv_basetable values
- (1, 'alfred', 10.30, 2),
- (2, 'bob', 3.14, 3),
- (2, 'bonnie', 172342.2, 3),
- (3, 'calvin', 978.76, 3),
- (3, 'charlie', 9.8, 1)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@cmv_basetable
-POSTHOOK: query: insert into cmv_basetable values
- (1, 'alfred', 10.30, 2),
- (2, 'bob', 3.14, 3),
- (2, 'bonnie', 172342.2, 3),
- (3, 'calvin', 978.76, 3),
- (3, 'charlie', 9.8, 1)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@cmv_basetable
-POSTHOOK: Lineage: cmv_basetable.a SCRIPT []
-POSTHOOK: Lineage: cmv_basetable.b SCRIPT []
-POSTHOOK: Lineage: cmv_basetable.c SCRIPT []
-POSTHOOK: Lineage: cmv_basetable.d SCRIPT []
-PREHOOK: query: analyze table cmv_basetable compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Output: default@cmv_basetable
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table cmv_basetable compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Output: default@cmv_basetable
-#### A masked pattern was here ####
-PREHOOK: query: create materialized view cmv_mat_view enable rewrite
-as select a, b, c from cmv_basetable where a = 2
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Output: database:default
-PREHOOK: Output: default@cmv_mat_view
-POSTHOOK: query: create materialized view cmv_mat_view enable rewrite
-as select a, b, c from cmv_basetable where a = 2
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@cmv_mat_view
-PREHOOK: query: select * from cmv_mat_view
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_mat_view
-#### A masked pattern was here ####
-POSTHOOK: query: select * from cmv_mat_view
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_mat_view
-#### A masked pattern was here ####
-2 bob 3.14
-2 bonnie 172342.20
-PREHOOK: query: show tblproperties cmv_mat_view
-PREHOOK: type: SHOW_TBLPROPERTIES
-POSTHOOK: query: show tblproperties cmv_mat_view
-POSTHOOK: type: SHOW_TBLPROPERTIES
-COLUMN_STATS_ACCURATE {"BASIC_STATS":"true"}
-numFiles 1
-numRows 2
-rawDataSize 408
-totalSize 453
-#### A masked pattern was here ####
-PREHOOK: query: create materialized view if not exists cmv_mat_view2 enable rewrite
-as select a, c from cmv_basetable where a = 3
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Output: database:default
-PREHOOK: Output: default@cmv_mat_view2
-POSTHOOK: query: create materialized view if not exists cmv_mat_view2 enable rewrite
-as select a, c from cmv_basetable where a = 3
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@cmv_mat_view2
-PREHOOK: query: select * from cmv_mat_view2
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_mat_view2
-#### A masked pattern was here ####
-POSTHOOK: query: select * from cmv_mat_view2
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_mat_view2
-#### A masked pattern was here ####
-3 9.80
-3 978.76
-PREHOOK: query: show tblproperties cmv_mat_view2
-PREHOOK: type: SHOW_TBLPROPERTIES
-POSTHOOK: query: show tblproperties cmv_mat_view2
-POSTHOOK: type: SHOW_TBLPROPERTIES
-COLUMN_STATS_ACCURATE {"BASIC_STATS":"true"}
-numFiles 1
-numRows 2
-rawDataSize 232
-totalSize 322
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select a, c from cmv_basetable where a = 3
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select a, c from cmv_basetable where a = 3
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-0 is a root stage
-
-STAGE PLANS:
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- TableScan
- alias: default.cmv_mat_view2
- Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: 3 (type: int), c (type: decimal(10,2))
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
- ListSink
-
-PREHOOK: query: select a, c from cmv_basetable where a = 3
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Input: default@cmv_mat_view2
-#### A masked pattern was here ####
-POSTHOOK: query: select a, c from cmv_basetable where a = 3
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Input: default@cmv_mat_view2
-#### A masked pattern was here ####
-3 9.80
-3 978.76
-PREHOOK: query: alter materialized view cmv_mat_view2 disable rewrite
-PREHOOK: type: ALTER_MATERIALIZED_VIEW_REWRITE
-PREHOOK: Input: default@cmv_mat_view2
-PREHOOK: Output: default@cmv_mat_view2
-POSTHOOK: query: alter materialized view cmv_mat_view2 disable rewrite
-POSTHOOK: type: ALTER_MATERIALIZED_VIEW_REWRITE
-POSTHOOK: Input: default@cmv_mat_view2
-POSTHOOK: Output: default@cmv_mat_view2
-Warning: Shuffle Join JOIN[8][tables = [$hdt$_0, $hdt$_1]] in Stage 'Stage-1:MAPRED' is a cross product
-PREHOOK: query: explain
-select * from (
- (select a, c from cmv_basetable where a = 3) table1
- join
- (select a, c from cmv_basetable where d = 3) table2
- on table1.a = table2.a)
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select * from (
- (select a, c from cmv_basetable where a = 3) table1
- join
- (select a, c from cmv_basetable where d = 3) table2
- on table1.a = table2.a)
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: cmv_basetable
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: (a = 3) (type: boolean)
- Statistics: Num rows: 2 Data size: 482 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: c (type: decimal(10,2))
- outputColumnNames: _col0
- Statistics: Num rows: 2 Data size: 482 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- sort order:
- Statistics: Num rows: 2 Data size: 482 Basic stats: COMPLETE Column stats: NONE
- value expressions: _col0 (type: decimal(10,2))
- TableScan
- alias: cmv_basetable
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: ((a = 3) and (d = 3)) (type: boolean)
- Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: c (type: decimal(10,2))
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- sort order:
- Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE Column stats: NONE
- value expressions: _col0 (type: decimal(10,2))
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- keys:
- 0
- 1
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 966 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: 3 (type: int), _col0 (type: decimal(10,2)), 3 (type: int), _col1 (type: decimal(10,2))
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 2 Data size: 966 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 2 Data size: 966 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-Warning: Shuffle Join JOIN[8][tables = [$hdt$_0, $hdt$_1]] in Stage 'Stage-1:MAPRED' is a cross product
-PREHOOK: query: select * from (
- (select a, c from cmv_basetable where a = 3) table1
- join
- (select a, c from cmv_basetable where d = 3) table2
- on table1.a = table2.a)
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-#### A masked pattern was here ####
-POSTHOOK: query: select * from (
- (select a, c from cmv_basetable where a = 3) table1
- join
- (select a, c from cmv_basetable where d = 3) table2
- on table1.a = table2.a)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-#### A masked pattern was here ####
-3 9.80 3 978.76
-3 978.76 3 978.76
-PREHOOK: query: explain
-alter materialized view cmv_mat_view2 enable rewrite
-PREHOOK: type: ALTER_MATERIALIZED_VIEW_REWRITE
-POSTHOOK: query: explain
-alter materialized view cmv_mat_view2 enable rewrite
-POSTHOOK: type: ALTER_MATERIALIZED_VIEW_REWRITE
-STAGE DEPENDENCIES:
- Stage-0 is a root stage
-
-STAGE PLANS:
- Stage: Stage-0
- Alter Materialized View Operator:
- Alter Materialized View
- name: default.cmv_mat_view2
- operation: UPDATE_REWRITE_FLAG
-
-PREHOOK: query: alter materialized view cmv_mat_view2 enable rewrite
-PREHOOK: type: ALTER_MATERIALIZED_VIEW_REWRITE
-PREHOOK: Input: default@cmv_mat_view2
-PREHOOK: Output: default@cmv_mat_view2
-POSTHOOK: query: alter materialized view cmv_mat_view2 enable rewrite
-POSTHOOK: type: ALTER_MATERIALIZED_VIEW_REWRITE
-POSTHOOK: Input: default@cmv_mat_view2
-POSTHOOK: Output: default@cmv_mat_view2
-Warning: Shuffle Join JOIN[7][tables = [$hdt$_0, $hdt$_1]] in Stage 'Stage-1:MAPRED' is a cross product
-PREHOOK: query: explain
-select * from (
- (select a, c from cmv_basetable where a = 3) table1
- join
- (select a, c from cmv_basetable where d = 3) table2
- on table1.a = table2.a)
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select * from (
- (select a, c from cmv_basetable where a = 3) table1
- join
- (select a, c from cmv_basetable where d = 3) table2
- on table1.a = table2.a)
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.cmv_mat_view2
- Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: c (type: decimal(10,2))
- outputColumnNames: _col0
- Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- sort order:
- Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
- value expressions: _col0 (type: decimal(10,2))
- TableScan
- alias: cmv_basetable
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: ((a = 3) and (d = 3)) (type: boolean)
- Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: c (type: decimal(10,2))
- outputColumnNames: _col1
- Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- sort order:
- Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE Column stats: NONE
- value expressions: _col1 (type: decimal(10,2))
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- keys:
- 0
- 1
- outputColumnNames: _col0, _col2
- Statistics: Num rows: 2 Data size: 716 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: 3 (type: int), _col0 (type: decimal(10,2)), 3 (type: int), _col2 (type: decimal(10,2))
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 2 Data size: 716 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 2 Data size: 716 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-Warning: Shuffle Join JOIN[7][tables = [$hdt$_0, $hdt$_1]] in Stage 'Stage-1:MAPRED' is a cross product
-PREHOOK: query: select * from (
- (select a, c from cmv_basetable where a = 3) table1
- join
- (select a, c from cmv_basetable where d = 3) table2
- on table1.a = table2.a)
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Input: default@cmv_mat_view2
-#### A masked pattern was here ####
-POSTHOOK: query: select * from (
- (select a, c from cmv_basetable where a = 3) table1
- join
- (select a, c from cmv_basetable where d = 3) table2
- on table1.a = table2.a)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Input: default@cmv_mat_view2
-#### A masked pattern was here ####
-3 9.80 3 978.76
-3 978.76 3 978.76
-PREHOOK: query: drop materialized view cmv_mat_view2
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@cmv_mat_view2
-PREHOOK: Output: default@cmv_mat_view2
-POSTHOOK: query: drop materialized view cmv_mat_view2
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@cmv_mat_view2
-POSTHOOK: Output: default@cmv_mat_view2
-Warning: Shuffle Join JOIN[8][tables = [$hdt$_0, $hdt$_1]] in Stage 'Stage-1:MAPRED' is a cross product
-PREHOOK: query: explain
-select * from (
- (select a, c from cmv_basetable where a = 3) table1
- join
- (select a, c from cmv_basetable where d = 3) table2
- on table1.a = table2.a)
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select * from (
- (select a, c from cmv_basetable where a = 3) table1
- join
- (select a, c from cmv_basetable where d = 3) table2
- on table1.a = table2.a)
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: cmv_basetable
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: (a = 3) (type: boolean)
- Statistics: Num rows: 2 Data size: 482 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: c (type: decimal(10,2))
- outputColumnNames: _col0
- Statistics: Num rows: 2 Data size: 482 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- sort order:
- Statistics: Num rows: 2 Data size: 482 Basic stats: COMPLETE Column stats: NONE
- value expressions: _col0 (type: decimal(10,2))
- TableScan
- alias: cmv_basetable
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: ((a = 3) and (d = 3)) (type: boolean)
- Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: c (type: decimal(10,2))
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- sort order:
- Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE Column stats: NONE
- value expressions: _col0 (type: decimal(10,2))
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- keys:
- 0
- 1
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 966 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: 3 (type: int), _col0 (type: decimal(10,2)), 3 (type: int), _col1 (type: decimal(10,2))
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 2 Data size: 966 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 2 Data size: 966 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-Warning: Shuffle Join JOIN[8][tables = [$hdt$_0, $hdt$_1]] in Stage 'Stage-1:MAPRED' is a cross product
-PREHOOK: query: select * from (
- (select a, c from cmv_basetable where a = 3) table1
- join
- (select a, c from cmv_basetable where d = 3) table2
- on table1.a = table2.a)
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-#### A masked pattern was here ####
-POSTHOOK: query: select * from (
- (select a, c from cmv_basetable where a = 3) table1
- join
- (select a, c from cmv_basetable where d = 3) table2
- on table1.a = table2.a)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-#### A masked pattern was here ####
-3 9.80 3 978.76
-3 978.76 3 978.76
-PREHOOK: query: drop materialized view cmv_mat_view
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@cmv_mat_view
-PREHOOK: Output: default@cmv_mat_view
-POSTHOOK: query: drop materialized view cmv_mat_view
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@cmv_mat_view
-POSTHOOK: Output: default@cmv_mat_view
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/materialized_view_create_rewrite_2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/materialized_view_create_rewrite_2.q.out b/ql/src/test/results/clientpositive/materialized_view_create_rewrite_2.q.out
deleted file mode 100644
index 144f9d8..0000000
--- a/ql/src/test/results/clientpositive/materialized_view_create_rewrite_2.q.out
+++ /dev/null
@@ -1,598 +0,0 @@
-PREHOOK: query: create table cmv_basetable (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@cmv_basetable
-POSTHOOK: query: create table cmv_basetable (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@cmv_basetable
-PREHOOK: query: insert into cmv_basetable values
- (1, 'alfred', 10.30, 2),
- (2, 'bob', 3.14, 3),
- (2, 'bonnie', 172342.2, 3),
- (3, 'calvin', 978.76, 3),
- (3, 'charlie', 9.8, 1)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@cmv_basetable
-POSTHOOK: query: insert into cmv_basetable values
- (1, 'alfred', 10.30, 2),
- (2, 'bob', 3.14, 3),
- (2, 'bonnie', 172342.2, 3),
- (3, 'calvin', 978.76, 3),
- (3, 'charlie', 9.8, 1)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@cmv_basetable
-POSTHOOK: Lineage: cmv_basetable.a SCRIPT []
-POSTHOOK: Lineage: cmv_basetable.b SCRIPT []
-POSTHOOK: Lineage: cmv_basetable.c SCRIPT []
-POSTHOOK: Lineage: cmv_basetable.d SCRIPT []
-PREHOOK: query: analyze table cmv_basetable compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Output: default@cmv_basetable
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table cmv_basetable compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Output: default@cmv_basetable
-#### A masked pattern was here ####
-PREHOOK: query: create materialized view cmv_mat_view enable rewrite
-as select b from cmv_basetable where c > 10.0 group by a, b, c
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Output: database:default
-PREHOOK: Output: default@cmv_mat_view
-POSTHOOK: query: create materialized view cmv_mat_view enable rewrite
-as select b from cmv_basetable where c > 10.0 group by a, b, c
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@cmv_mat_view
-PREHOOK: query: explain
-select b from cmv_basetable where c > 20.0 group by a, b
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select b from cmv_basetable where c > 20.0 group by a, b
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: cmv_basetable
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: (c > 20) (type: boolean)
- Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int), b (type: varchar(256))
- outputColumnNames: a, b
- Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE Column stats: NONE
- Group By Operator
- keys: a (type: int), b (type: varchar(256))
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: varchar(256))
- sort order: ++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: varchar(256))
- Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE Column stats: NONE
- Reduce Operator Tree:
- Group By Operator
- keys: KEY._col0 (type: int), KEY._col1 (type: varchar(256))
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: _col1 (type: varchar(256))
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select b from cmv_basetable where c > 20.0 group by a, b
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-#### A masked pattern was here ####
-POSTHOOK: query: select b from cmv_basetable where c > 20.0 group by a, b
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-#### A masked pattern was here ####
-bonnie
-calvin
-PREHOOK: query: create materialized view cmv_mat_view_2 enable rewrite
-as select b, c from cmv_basetable where c > 10.0 group by a, b, c
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Output: database:default
-PREHOOK: Output: default@cmv_mat_view_2
-POSTHOOK: query: create materialized view cmv_mat_view_2 enable rewrite
-as select b, c from cmv_basetable where c > 10.0 group by a, b, c
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@cmv_mat_view_2
-PREHOOK: query: explain
-select b from cmv_basetable where c > 20.0 group by a, b
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select b from cmv_basetable where c > 20.0 group by a, b
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: cmv_basetable
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: (c > 20) (type: boolean)
- Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int), b (type: varchar(256))
- outputColumnNames: a, b
- Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE Column stats: NONE
- Group By Operator
- keys: a (type: int), b (type: varchar(256))
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: varchar(256))
- sort order: ++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: varchar(256))
- Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE Column stats: NONE
- Reduce Operator Tree:
- Group By Operator
- keys: KEY._col0 (type: int), KEY._col1 (type: varchar(256))
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: _col1 (type: varchar(256))
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select b from cmv_basetable where c > 20.0 group by a, b
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-#### A masked pattern was here ####
-POSTHOOK: query: select b from cmv_basetable where c > 20.0 group by a, b
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-#### A masked pattern was here ####
-bonnie
-calvin
-PREHOOK: query: create materialized view cmv_mat_view_3 enable rewrite
-as select a, b, c from cmv_basetable where c > 10.0 group by a, b, c
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Output: database:default
-PREHOOK: Output: default@cmv_mat_view_3
-POSTHOOK: query: create materialized view cmv_mat_view_3 enable rewrite
-as select a, b, c from cmv_basetable where c > 10.0 group by a, b, c
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@cmv_mat_view_3
-PREHOOK: query: explain
-select b from cmv_basetable where c > 20.0 group by a, b
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select b from cmv_basetable where c > 20.0 group by a, b
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.cmv_mat_view_3
- Statistics: Num rows: 3 Data size: 618 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: (c > 20) (type: boolean)
- Statistics: Num rows: 1 Data size: 206 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int), b (type: varchar(256))
- outputColumnNames: a, b
- Statistics: Num rows: 1 Data size: 206 Basic stats: COMPLETE Column stats: NONE
- Group By Operator
- keys: a (type: int), b (type: varchar(256))
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 206 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: varchar(256))
- sort order: ++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: varchar(256))
- Statistics: Num rows: 1 Data size: 206 Basic stats: COMPLETE Column stats: NONE
- Reduce Operator Tree:
- Group By Operator
- keys: KEY._col0 (type: int), KEY._col1 (type: varchar(256))
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 206 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: _col1 (type: varchar(256))
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 206 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 206 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select b from cmv_basetable where c > 20.0 group by a, b
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Input: default@cmv_mat_view_3
-#### A masked pattern was here ####
-POSTHOOK: query: select b from cmv_basetable where c > 20.0 group by a, b
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Input: default@cmv_mat_view_3
-#### A masked pattern was here ####
-bonnie
-calvin
-PREHOOK: query: create materialized view cmv_mat_view_4 enable rewrite
-as select a, b from cmv_basetable group by a, b
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Output: database:default
-PREHOOK: Output: default@cmv_mat_view_4
-POSTHOOK: query: create materialized view cmv_mat_view_4 enable rewrite
-as select a, b from cmv_basetable group by a, b
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@cmv_mat_view_4
-PREHOOK: query: explain
-select b from cmv_basetable group by b
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select b from cmv_basetable group by b
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.cmv_mat_view_4
- Statistics: Num rows: 5 Data size: 465 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: b (type: varchar(256))
- outputColumnNames: b
- Statistics: Num rows: 5 Data size: 465 Basic stats: COMPLETE Column stats: NONE
- Group By Operator
- keys: b (type: varchar(256))
- mode: hash
- outputColumnNames: _col0
- Statistics: Num rows: 5 Data size: 465 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: varchar(256))
- sort order: +
- Map-reduce partition columns: _col0 (type: varchar(256))
- Statistics: Num rows: 5 Data size: 465 Basic stats: COMPLETE Column stats: NONE
- Reduce Operator Tree:
- Group By Operator
- keys: KEY._col0 (type: varchar(256))
- mode: mergepartial
- outputColumnNames: _col0
- Statistics: Num rows: 2 Data size: 186 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 2 Data size: 186 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select b from cmv_basetable group by b
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Input: default@cmv_mat_view_4
-#### A masked pattern was here ####
-POSTHOOK: query: select b from cmv_basetable group by b
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Input: default@cmv_mat_view_4
-#### A masked pattern was here ####
-alfred
-bob
-bonnie
-calvin
-charlie
-PREHOOK: query: create table cmv_basetable_2 (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@cmv_basetable_2
-POSTHOOK: query: create table cmv_basetable_2 (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@cmv_basetable_2
-PREHOOK: query: insert into cmv_basetable_2 values
- (1, 'alfred', 10.30, 2),
- (3, 'calvin', 978.76, 3)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@cmv_basetable_2
-POSTHOOK: query: insert into cmv_basetable_2 values
- (1, 'alfred', 10.30, 2),
- (3, 'calvin', 978.76, 3)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@cmv_basetable_2
-POSTHOOK: Lineage: cmv_basetable_2.a SCRIPT []
-POSTHOOK: Lineage: cmv_basetable_2.b SCRIPT []
-POSTHOOK: Lineage: cmv_basetable_2.c SCRIPT []
-POSTHOOK: Lineage: cmv_basetable_2.d SCRIPT []
-PREHOOK: query: analyze table cmv_basetable_2 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable_2
-PREHOOK: Output: default@cmv_basetable_2
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table cmv_basetable_2 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable_2
-POSTHOOK: Output: default@cmv_basetable_2
-#### A masked pattern was here ####
-PREHOOK: query: create materialized view cmv_mat_view_5 enable rewrite
-as select cmv_basetable.a, cmv_basetable_2.c
- from cmv_basetable join cmv_basetable_2 on (cmv_basetable.a = cmv_basetable_2.a)
- where cmv_basetable_2.c > 10.0
- group by cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Input: default@cmv_basetable_2
-PREHOOK: Output: database:default
-PREHOOK: Output: default@cmv_mat_view_5
-POSTHOOK: query: create materialized view cmv_mat_view_5 enable rewrite
-as select cmv_basetable.a, cmv_basetable_2.c
- from cmv_basetable join cmv_basetable_2 on (cmv_basetable.a = cmv_basetable_2.a)
- where cmv_basetable_2.c > 10.0
- group by cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Input: default@cmv_basetable_2
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@cmv_mat_view_5
-PREHOOK: query: explain
-select cmv_basetable.a
-from cmv_basetable join cmv_basetable_2 on (cmv_basetable.a = cmv_basetable_2.a)
-where cmv_basetable_2.c > 10.10
-group by cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select cmv_basetable.a
-from cmv_basetable join cmv_basetable_2 on (cmv_basetable.a = cmv_basetable_2.a)
-where cmv_basetable_2.c > 10.10
-group by cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.cmv_mat_view_5
- Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: (c > 10.1) (type: boolean)
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select cmv_basetable.a
-from cmv_basetable join cmv_basetable_2 on (cmv_basetable.a = cmv_basetable_2.a)
-where cmv_basetable_2.c > 10.10
-group by cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Input: default@cmv_basetable_2
-PREHOOK: Input: default@cmv_mat_view_5
-#### A masked pattern was here ####
-POSTHOOK: query: select cmv_basetable.a
-from cmv_basetable join cmv_basetable_2 on (cmv_basetable.a = cmv_basetable_2.a)
-where cmv_basetable_2.c > 10.10
-group by cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Input: default@cmv_basetable_2
-POSTHOOK: Input: default@cmv_mat_view_5
-#### A masked pattern was here ####
-1
-3
-PREHOOK: query: explain
-select cmv_basetable.a
-from cmv_basetable join cmv_basetable_2 on (cmv_basetable.a = cmv_basetable_2.a)
-where cmv_basetable_2.c > 10.10
-group by cmv_basetable.a
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select cmv_basetable.a
-from cmv_basetable join cmv_basetable_2 on (cmv_basetable.a = cmv_basetable_2.a)
-where cmv_basetable_2.c > 10.10
-group by cmv_basetable.a
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.cmv_mat_view_5
- Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: (c > 10.1) (type: boolean)
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int)
- outputColumnNames: a
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- Group By Operator
- keys: a (type: int)
- mode: hash
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- Reduce Operator Tree:
- Group By Operator
- keys: KEY._col0 (type: int)
- mode: mergepartial
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select cmv_basetable.a
-from cmv_basetable join cmv_basetable_2 on (cmv_basetable.a = cmv_basetable_2.a)
-where cmv_basetable_2.c > 10.10
-group by cmv_basetable.a
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Input: default@cmv_basetable_2
-PREHOOK: Input: default@cmv_mat_view_5
-#### A masked pattern was here ####
-POSTHOOK: query: select cmv_basetable.a
-from cmv_basetable join cmv_basetable_2 on (cmv_basetable.a = cmv_basetable_2.a)
-where cmv_basetable_2.c > 10.10
-group by cmv_basetable.a
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Input: default@cmv_basetable_2
-POSTHOOK: Input: default@cmv_mat_view_5
-#### A masked pattern was here ####
-1
-3
-PREHOOK: query: drop materialized view cmv_mat_view
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@cmv_mat_view
-PREHOOK: Output: default@cmv_mat_view
-POSTHOOK: query: drop materialized view cmv_mat_view
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@cmv_mat_view
-POSTHOOK: Output: default@cmv_mat_view
-PREHOOK: query: drop materialized view cmv_mat_view_2
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@cmv_mat_view_2
-PREHOOK: Output: default@cmv_mat_view_2
-POSTHOOK: query: drop materialized view cmv_mat_view_2
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@cmv_mat_view_2
-POSTHOOK: Output: default@cmv_mat_view_2
-PREHOOK: query: drop materialized view cmv_mat_view_3
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@cmv_mat_view_3
-PREHOOK: Output: default@cmv_mat_view_3
-POSTHOOK: query: drop materialized view cmv_mat_view_3
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@cmv_mat_view_3
-POSTHOOK: Output: default@cmv_mat_view_3
-PREHOOK: query: drop materialized view cmv_mat_view_4
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@cmv_mat_view_4
-PREHOOK: Output: default@cmv_mat_view_4
-POSTHOOK: query: drop materialized view cmv_mat_view_4
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@cmv_mat_view_4
-POSTHOOK: Output: default@cmv_mat_view_4
-PREHOOK: query: drop materialized view cmv_mat_view_5
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@cmv_mat_view_5
-PREHOOK: Output: default@cmv_mat_view_5
-POSTHOOK: query: drop materialized view cmv_mat_view_5
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@cmv_mat_view_5
-POSTHOOK: Output: default@cmv_mat_view_5
[03/24] hive git commit: HIVE-18839: Implement incremental rebuild
for materialized views (only insert operations in source tables) (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/standalone-metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java b/standalone-metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java
index 0bca4eb..afe82e3 100644
--- a/standalone-metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java
+++ b/standalone-metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java
@@ -442,6 +442,10 @@ import org.slf4j.LoggerFactory;
public SerDeInfo get_serde(GetSerdeRequest rqst) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;
+ public LockResponse get_lock_materialization_rebuild(String dbName, String tableName, long txnId) throws org.apache.thrift.TException;
+
+ public boolean heartbeat_lock_materialization_rebuild(String dbName, String tableName, long txnId) throws org.apache.thrift.TException;
+
}
@org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public interface AsyncIface extends com.facebook.fb303.FacebookService .AsyncIface {
@@ -846,6 +850,10 @@ import org.slf4j.LoggerFactory;
public void get_serde(GetSerdeRequest rqst, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+ public void get_lock_materialization_rebuild(String dbName, String tableName, long txnId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+ public void heartbeat_lock_materialization_rebuild(String dbName, String tableName, long txnId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
}
@org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class Client extends com.facebook.fb303.FacebookService.Client implements Iface {
@@ -6634,6 +6642,56 @@ import org.slf4j.LoggerFactory;
throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_serde failed: unknown result");
}
+ public LockResponse get_lock_materialization_rebuild(String dbName, String tableName, long txnId) throws org.apache.thrift.TException
+ {
+ send_get_lock_materialization_rebuild(dbName, tableName, txnId);
+ return recv_get_lock_materialization_rebuild();
+ }
+
+ public void send_get_lock_materialization_rebuild(String dbName, String tableName, long txnId) throws org.apache.thrift.TException
+ {
+ get_lock_materialization_rebuild_args args = new get_lock_materialization_rebuild_args();
+ args.setDbName(dbName);
+ args.setTableName(tableName);
+ args.setTxnId(txnId);
+ sendBase("get_lock_materialization_rebuild", args);
+ }
+
+ public LockResponse recv_get_lock_materialization_rebuild() throws org.apache.thrift.TException
+ {
+ get_lock_materialization_rebuild_result result = new get_lock_materialization_rebuild_result();
+ receiveBase(result, "get_lock_materialization_rebuild");
+ if (result.isSetSuccess()) {
+ return result.success;
+ }
+ throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_lock_materialization_rebuild failed: unknown result");
+ }
+
+ public boolean heartbeat_lock_materialization_rebuild(String dbName, String tableName, long txnId) throws org.apache.thrift.TException
+ {
+ send_heartbeat_lock_materialization_rebuild(dbName, tableName, txnId);
+ return recv_heartbeat_lock_materialization_rebuild();
+ }
+
+ public void send_heartbeat_lock_materialization_rebuild(String dbName, String tableName, long txnId) throws org.apache.thrift.TException
+ {
+ heartbeat_lock_materialization_rebuild_args args = new heartbeat_lock_materialization_rebuild_args();
+ args.setDbName(dbName);
+ args.setTableName(tableName);
+ args.setTxnId(txnId);
+ sendBase("heartbeat_lock_materialization_rebuild", args);
+ }
+
+ public boolean recv_heartbeat_lock_materialization_rebuild() throws org.apache.thrift.TException
+ {
+ heartbeat_lock_materialization_rebuild_result result = new heartbeat_lock_materialization_rebuild_result();
+ receiveBase(result, "heartbeat_lock_materialization_rebuild");
+ if (result.isSetSuccess()) {
+ return result.success;
+ }
+ throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "heartbeat_lock_materialization_rebuild failed: unknown result");
+ }
+
}
@org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class AsyncClient extends com.facebook.fb303.FacebookService.AsyncClient implements AsyncIface {
@org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class Factory implements org.apache.thrift.async.TAsyncClientFactory<AsyncClient> {
@@ -13526,6 +13584,82 @@ import org.slf4j.LoggerFactory;
}
}
+ public void get_lock_materialization_rebuild(String dbName, String tableName, long txnId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+ checkReady();
+ get_lock_materialization_rebuild_call method_call = new get_lock_materialization_rebuild_call(dbName, tableName, txnId, resultHandler, this, ___protocolFactory, ___transport);
+ this.___currentMethod = method_call;
+ ___manager.call(method_call);
+ }
+
+ @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_lock_materialization_rebuild_call extends org.apache.thrift.async.TAsyncMethodCall {
+ private String dbName;
+ private String tableName;
+ private long txnId;
+ public get_lock_materialization_rebuild_call(String dbName, String tableName, long txnId, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+ super(client, protocolFactory, transport, resultHandler, false);
+ this.dbName = dbName;
+ this.tableName = tableName;
+ this.txnId = txnId;
+ }
+
+ public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+ prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_lock_materialization_rebuild", org.apache.thrift.protocol.TMessageType.CALL, 0));
+ get_lock_materialization_rebuild_args args = new get_lock_materialization_rebuild_args();
+ args.setDbName(dbName);
+ args.setTableName(tableName);
+ args.setTxnId(txnId);
+ args.write(prot);
+ prot.writeMessageEnd();
+ }
+
+ public LockResponse getResult() throws org.apache.thrift.TException {
+ if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+ throw new IllegalStateException("Method call not finished!");
+ }
+ org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+ org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+ return (new Client(prot)).recv_get_lock_materialization_rebuild();
+ }
+ }
+
+ public void heartbeat_lock_materialization_rebuild(String dbName, String tableName, long txnId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+ checkReady();
+ heartbeat_lock_materialization_rebuild_call method_call = new heartbeat_lock_materialization_rebuild_call(dbName, tableName, txnId, resultHandler, this, ___protocolFactory, ___transport);
+ this.___currentMethod = method_call;
+ ___manager.call(method_call);
+ }
+
+ @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class heartbeat_lock_materialization_rebuild_call extends org.apache.thrift.async.TAsyncMethodCall {
+ private String dbName;
+ private String tableName;
+ private long txnId;
+ public heartbeat_lock_materialization_rebuild_call(String dbName, String tableName, long txnId, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+ super(client, protocolFactory, transport, resultHandler, false);
+ this.dbName = dbName;
+ this.tableName = tableName;
+ this.txnId = txnId;
+ }
+
+ public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+ prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("heartbeat_lock_materialization_rebuild", org.apache.thrift.protocol.TMessageType.CALL, 0));
+ heartbeat_lock_materialization_rebuild_args args = new heartbeat_lock_materialization_rebuild_args();
+ args.setDbName(dbName);
+ args.setTableName(tableName);
+ args.setTxnId(txnId);
+ args.write(prot);
+ prot.writeMessageEnd();
+ }
+
+ public boolean getResult() throws org.apache.thrift.TException {
+ if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+ throw new IllegalStateException("Method call not finished!");
+ }
+ org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+ org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+ return (new Client(prot)).recv_heartbeat_lock_materialization_rebuild();
+ }
+ }
+
}
@org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class Processor<I extends Iface> extends com.facebook.fb303.FacebookService.Processor<I> implements org.apache.thrift.TProcessor {
@@ -13739,6 +13873,8 @@ import org.slf4j.LoggerFactory;
processMap.put("set_schema_version_state", new set_schema_version_state());
processMap.put("add_serde", new add_serde());
processMap.put("get_serde", new get_serde());
+ processMap.put("get_lock_materialization_rebuild", new get_lock_materialization_rebuild());
+ processMap.put("heartbeat_lock_materialization_rebuild", new heartbeat_lock_materialization_rebuild());
return processMap;
}
@@ -18891,6 +19027,47 @@ import org.slf4j.LoggerFactory;
}
}
+ @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_lock_materialization_rebuild<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_lock_materialization_rebuild_args> {
+ public get_lock_materialization_rebuild() {
+ super("get_lock_materialization_rebuild");
+ }
+
+ public get_lock_materialization_rebuild_args getEmptyArgsInstance() {
+ return new get_lock_materialization_rebuild_args();
+ }
+
+ protected boolean isOneway() {
+ return false;
+ }
+
+ public get_lock_materialization_rebuild_result getResult(I iface, get_lock_materialization_rebuild_args args) throws org.apache.thrift.TException {
+ get_lock_materialization_rebuild_result result = new get_lock_materialization_rebuild_result();
+ result.success = iface.get_lock_materialization_rebuild(args.dbName, args.tableName, args.txnId);
+ return result;
+ }
+ }
+
+ @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class heartbeat_lock_materialization_rebuild<I extends Iface> extends org.apache.thrift.ProcessFunction<I, heartbeat_lock_materialization_rebuild_args> {
+ public heartbeat_lock_materialization_rebuild() {
+ super("heartbeat_lock_materialization_rebuild");
+ }
+
+ public heartbeat_lock_materialization_rebuild_args getEmptyArgsInstance() {
+ return new heartbeat_lock_materialization_rebuild_args();
+ }
+
+ protected boolean isOneway() {
+ return false;
+ }
+
+ public heartbeat_lock_materialization_rebuild_result getResult(I iface, heartbeat_lock_materialization_rebuild_args args) throws org.apache.thrift.TException {
+ heartbeat_lock_materialization_rebuild_result result = new heartbeat_lock_materialization_rebuild_result();
+ result.success = iface.heartbeat_lock_materialization_rebuild(args.dbName, args.tableName, args.txnId);
+ result.setSuccessIsSet(true);
+ return result;
+ }
+ }
+
}
@org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class AsyncProcessor<I extends AsyncIface> extends com.facebook.fb303.FacebookService.AsyncProcessor<I> {
@@ -19104,6 +19281,8 @@ import org.slf4j.LoggerFactory;
processMap.put("set_schema_version_state", new set_schema_version_state());
processMap.put("add_serde", new add_serde());
processMap.put("get_serde", new get_serde());
+ processMap.put("get_lock_materialization_rebuild", new get_lock_materialization_rebuild());
+ processMap.put("heartbeat_lock_materialization_rebuild", new heartbeat_lock_materialization_rebuild());
return processMap;
}
@@ -31389,385 +31568,127 @@ import org.slf4j.LoggerFactory;
}
}
- }
-
- @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class getMetaConf_args implements org.apache.thrift.TBase<getMetaConf_args, getMetaConf_args._Fields>, java.io.Serializable, Cloneable, Comparable<getMetaConf_args> {
- private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getMetaConf_args");
-
- private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField("key", org.apache.thrift.protocol.TType.STRING, (short)1);
-
- private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
- static {
- schemes.put(StandardScheme.class, new getMetaConf_argsStandardSchemeFactory());
- schemes.put(TupleScheme.class, new getMetaConf_argsTupleSchemeFactory());
- }
-
- private String key; // required
-
- /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
- public enum _Fields implements org.apache.thrift.TFieldIdEnum {
- KEY((short)1, "key");
-
- private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
-
- static {
- for (_Fields field : EnumSet.allOf(_Fields.class)) {
- byName.put(field.getFieldName(), field);
- }
- }
-
- /**
- * Find the _Fields constant that matches fieldId, or null if its not found.
- */
- public static _Fields findByThriftId(int fieldId) {
- switch(fieldId) {
- case 1: // KEY
- return KEY;
- default:
- return null;
- }
- }
-
- /**
- * Find the _Fields constant that matches fieldId, throwing an exception
- * if it is not found.
- */
- public static _Fields findByThriftIdOrThrow(int fieldId) {
- _Fields fields = findByThriftId(fieldId);
- if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
- return fields;
- }
-
- /**
- * Find the _Fields constant that matches name, or null if its not found.
- */
- public static _Fields findByName(String name) {
- return byName.get(name);
- }
-
- private final short _thriftId;
- private final String _fieldName;
-
- _Fields(short thriftId, String fieldName) {
- _thriftId = thriftId;
- _fieldName = fieldName;
- }
-
- public short getThriftFieldId() {
- return _thriftId;
- }
-
- public String getFieldName() {
- return _fieldName;
- }
- }
-
- // isset id assignments
- public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
- static {
- Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
- tmpMap.put(_Fields.KEY, new org.apache.thrift.meta_data.FieldMetaData("key", org.apache.thrift.TFieldRequirementType.DEFAULT,
- new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
- metaDataMap = Collections.unmodifiableMap(tmpMap);
- org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getMetaConf_args.class, metaDataMap);
- }
-
- public getMetaConf_args() {
- }
-
- public getMetaConf_args(
- String key)
- {
- this();
- this.key = key;
- }
-
- /**
- * Performs a deep copy on <i>other</i>.
- */
- public getMetaConf_args(getMetaConf_args other) {
- if (other.isSetKey()) {
- this.key = other.key;
- }
- }
-
- public getMetaConf_args deepCopy() {
- return new getMetaConf_args(this);
- }
-
- @Override
- public void clear() {
- this.key = null;
- }
-
- public String getKey() {
- return this.key;
- }
-
- public void setKey(String key) {
- this.key = key;
- }
-
- public void unsetKey() {
- this.key = null;
- }
-
- /** Returns true if field key is set (has been assigned a value) and false otherwise */
- public boolean isSetKey() {
- return this.key != null;
- }
-
- public void setKeyIsSet(boolean value) {
- if (!value) {
- this.key = null;
- }
- }
-
- public void setFieldValue(_Fields field, Object value) {
- switch (field) {
- case KEY:
- if (value == null) {
- unsetKey();
- } else {
- setKey((String)value);
- }
- break;
-
- }
- }
-
- public Object getFieldValue(_Fields field) {
- switch (field) {
- case KEY:
- return getKey();
-
+ @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_lock_materialization_rebuild<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_lock_materialization_rebuild_args, LockResponse> {
+ public get_lock_materialization_rebuild() {
+ super("get_lock_materialization_rebuild");
}
- throw new IllegalStateException();
- }
- /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
- public boolean isSet(_Fields field) {
- if (field == null) {
- throw new IllegalArgumentException();
+ public get_lock_materialization_rebuild_args getEmptyArgsInstance() {
+ return new get_lock_materialization_rebuild_args();
}
- switch (field) {
- case KEY:
- return isSetKey();
+ public AsyncMethodCallback<LockResponse> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+ final org.apache.thrift.AsyncProcessFunction fcall = this;
+ return new AsyncMethodCallback<LockResponse>() {
+ public void onComplete(LockResponse o) {
+ get_lock_materialization_rebuild_result result = new get_lock_materialization_rebuild_result();
+ result.success = o;
+ try {
+ fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+ return;
+ } catch (Exception e) {
+ LOGGER.error("Exception writing to internal frame buffer", e);
+ }
+ fb.close();
+ }
+ public void onError(Exception e) {
+ byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+ org.apache.thrift.TBase msg;
+ get_lock_materialization_rebuild_result result = new get_lock_materialization_rebuild_result();
+ {
+ msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+ msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+ }
+ try {
+ fcall.sendResponse(fb,msg,msgType,seqid);
+ return;
+ } catch (Exception ex) {
+ LOGGER.error("Exception writing to internal frame buffer", ex);
+ }
+ fb.close();
+ }
+ };
}
- throw new IllegalStateException();
- }
- @Override
- public boolean equals(Object that) {
- if (that == null)
- return false;
- if (that instanceof getMetaConf_args)
- return this.equals((getMetaConf_args)that);
- return false;
- }
-
- public boolean equals(getMetaConf_args that) {
- if (that == null)
+ protected boolean isOneway() {
return false;
-
- boolean this_present_key = true && this.isSetKey();
- boolean that_present_key = true && that.isSetKey();
- if (this_present_key || that_present_key) {
- if (!(this_present_key && that_present_key))
- return false;
- if (!this.key.equals(that.key))
- return false;
- }
-
- return true;
- }
-
- @Override
- public int hashCode() {
- List<Object> list = new ArrayList<Object>();
-
- boolean present_key = true && (isSetKey());
- list.add(present_key);
- if (present_key)
- list.add(key);
-
- return list.hashCode();
- }
-
- @Override
- public int compareTo(getMetaConf_args other) {
- if (!getClass().equals(other.getClass())) {
- return getClass().getName().compareTo(other.getClass().getName());
- }
-
- int lastComparison = 0;
-
- lastComparison = Boolean.valueOf(isSetKey()).compareTo(other.isSetKey());
- if (lastComparison != 0) {
- return lastComparison;
- }
- if (isSetKey()) {
- lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.key, other.key);
- if (lastComparison != 0) {
- return lastComparison;
- }
- }
- return 0;
- }
-
- public _Fields fieldForId(int fieldId) {
- return _Fields.findByThriftId(fieldId);
- }
-
- public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
- schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
- }
-
- public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
- schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
- }
-
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder("getMetaConf_args(");
- boolean first = true;
-
- sb.append("key:");
- if (this.key == null) {
- sb.append("null");
- } else {
- sb.append(this.key);
}
- first = false;
- sb.append(")");
- return sb.toString();
- }
- public void validate() throws org.apache.thrift.TException {
- // check for required fields
- // check for sub-struct validity
- }
-
- private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
- try {
- write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
- } catch (org.apache.thrift.TException te) {
- throw new java.io.IOException(te);
+ public void start(I iface, get_lock_materialization_rebuild_args args, org.apache.thrift.async.AsyncMethodCallback<LockResponse> resultHandler) throws TException {
+ iface.get_lock_materialization_rebuild(args.dbName, args.tableName, args.txnId,resultHandler);
}
}
- private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
- try {
- read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
- } catch (org.apache.thrift.TException te) {
- throw new java.io.IOException(te);
+ @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class heartbeat_lock_materialization_rebuild<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, heartbeat_lock_materialization_rebuild_args, Boolean> {
+ public heartbeat_lock_materialization_rebuild() {
+ super("heartbeat_lock_materialization_rebuild");
}
- }
- private static class getMetaConf_argsStandardSchemeFactory implements SchemeFactory {
- public getMetaConf_argsStandardScheme getScheme() {
- return new getMetaConf_argsStandardScheme();
+ public heartbeat_lock_materialization_rebuild_args getEmptyArgsInstance() {
+ return new heartbeat_lock_materialization_rebuild_args();
}
- }
-
- private static class getMetaConf_argsStandardScheme extends StandardScheme<getMetaConf_args> {
- public void read(org.apache.thrift.protocol.TProtocol iprot, getMetaConf_args struct) throws org.apache.thrift.TException {
- org.apache.thrift.protocol.TField schemeField;
- iprot.readStructBegin();
- while (true)
- {
- schemeField = iprot.readFieldBegin();
- if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
- break;
+ public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+ final org.apache.thrift.AsyncProcessFunction fcall = this;
+ return new AsyncMethodCallback<Boolean>() {
+ public void onComplete(Boolean o) {
+ heartbeat_lock_materialization_rebuild_result result = new heartbeat_lock_materialization_rebuild_result();
+ result.success = o;
+ result.setSuccessIsSet(true);
+ try {
+ fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+ return;
+ } catch (Exception e) {
+ LOGGER.error("Exception writing to internal frame buffer", e);
+ }
+ fb.close();
}
- switch (schemeField.id) {
- case 1: // KEY
- if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
- struct.key = iprot.readString();
- struct.setKeyIsSet(true);
- } else {
- org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
- }
- break;
- default:
- org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ public void onError(Exception e) {
+ byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+ org.apache.thrift.TBase msg;
+ heartbeat_lock_materialization_rebuild_result result = new heartbeat_lock_materialization_rebuild_result();
+ {
+ msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+ msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+ }
+ try {
+ fcall.sendResponse(fb,msg,msgType,seqid);
+ return;
+ } catch (Exception ex) {
+ LOGGER.error("Exception writing to internal frame buffer", ex);
+ }
+ fb.close();
}
- iprot.readFieldEnd();
- }
- iprot.readStructEnd();
- struct.validate();
- }
-
- public void write(org.apache.thrift.protocol.TProtocol oprot, getMetaConf_args struct) throws org.apache.thrift.TException {
- struct.validate();
-
- oprot.writeStructBegin(STRUCT_DESC);
- if (struct.key != null) {
- oprot.writeFieldBegin(KEY_FIELD_DESC);
- oprot.writeString(struct.key);
- oprot.writeFieldEnd();
- }
- oprot.writeFieldStop();
- oprot.writeStructEnd();
- }
-
- }
-
- private static class getMetaConf_argsTupleSchemeFactory implements SchemeFactory {
- public getMetaConf_argsTupleScheme getScheme() {
- return new getMetaConf_argsTupleScheme();
+ };
}
- }
-
- private static class getMetaConf_argsTupleScheme extends TupleScheme<getMetaConf_args> {
- @Override
- public void write(org.apache.thrift.protocol.TProtocol prot, getMetaConf_args struct) throws org.apache.thrift.TException {
- TTupleProtocol oprot = (TTupleProtocol) prot;
- BitSet optionals = new BitSet();
- if (struct.isSetKey()) {
- optionals.set(0);
- }
- oprot.writeBitSet(optionals, 1);
- if (struct.isSetKey()) {
- oprot.writeString(struct.key);
- }
+ protected boolean isOneway() {
+ return false;
}
- @Override
- public void read(org.apache.thrift.protocol.TProtocol prot, getMetaConf_args struct) throws org.apache.thrift.TException {
- TTupleProtocol iprot = (TTupleProtocol) prot;
- BitSet incoming = iprot.readBitSet(1);
- if (incoming.get(0)) {
- struct.key = iprot.readString();
- struct.setKeyIsSet(true);
- }
+ public void start(I iface, heartbeat_lock_materialization_rebuild_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
+ iface.heartbeat_lock_materialization_rebuild(args.dbName, args.tableName, args.txnId,resultHandler);
}
}
}
- @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class getMetaConf_result implements org.apache.thrift.TBase<getMetaConf_result, getMetaConf_result._Fields>, java.io.Serializable, Cloneable, Comparable<getMetaConf_result> {
- private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getMetaConf_result");
+ @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class getMetaConf_args implements org.apache.thrift.TBase<getMetaConf_args, getMetaConf_args._Fields>, java.io.Serializable, Cloneable, Comparable<getMetaConf_args> {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getMetaConf_args");
- private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
- private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+ private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField("key", org.apache.thrift.protocol.TType.STRING, (short)1);
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
static {
- schemes.put(StandardScheme.class, new getMetaConf_resultStandardSchemeFactory());
- schemes.put(TupleScheme.class, new getMetaConf_resultTupleSchemeFactory());
+ schemes.put(StandardScheme.class, new getMetaConf_argsStandardSchemeFactory());
+ schemes.put(TupleScheme.class, new getMetaConf_argsTupleSchemeFactory());
}
- private String success; // required
- private MetaException o1; // required
+ private String key; // required
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
- SUCCESS((short)0, "success"),
- O1((short)1, "o1");
+ KEY((short)1, "key");
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
@@ -31782,10 +31703,371 @@ import org.slf4j.LoggerFactory;
*/
public static _Fields findByThriftId(int fieldId) {
switch(fieldId) {
- case 0: // SUCCESS
- return SUCCESS;
- case 1: // O1
- return O1;
+ case 1: // KEY
+ return KEY;
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, throwing an exception
+ * if it is not found.
+ */
+ public static _Fields findByThriftIdOrThrow(int fieldId) {
+ _Fields fields = findByThriftId(fieldId);
+ if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+ return fields;
+ }
+
+ /**
+ * Find the _Fields constant that matches name, or null if its not found.
+ */
+ public static _Fields findByName(String name) {
+ return byName.get(name);
+ }
+
+ private final short _thriftId;
+ private final String _fieldName;
+
+ _Fields(short thriftId, String fieldName) {
+ _thriftId = thriftId;
+ _fieldName = fieldName;
+ }
+
+ public short getThriftFieldId() {
+ return _thriftId;
+ }
+
+ public String getFieldName() {
+ return _fieldName;
+ }
+ }
+
+ // isset id assignments
+ public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+ static {
+ Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+ tmpMap.put(_Fields.KEY, new org.apache.thrift.meta_data.FieldMetaData("key", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+ metaDataMap = Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getMetaConf_args.class, metaDataMap);
+ }
+
+ public getMetaConf_args() {
+ }
+
+ public getMetaConf_args(
+ String key)
+ {
+ this();
+ this.key = key;
+ }
+
+ /**
+ * Performs a deep copy on <i>other</i>.
+ */
+ public getMetaConf_args(getMetaConf_args other) {
+ if (other.isSetKey()) {
+ this.key = other.key;
+ }
+ }
+
+ public getMetaConf_args deepCopy() {
+ return new getMetaConf_args(this);
+ }
+
+ @Override
+ public void clear() {
+ this.key = null;
+ }
+
+ public String getKey() {
+ return this.key;
+ }
+
+ public void setKey(String key) {
+ this.key = key;
+ }
+
+ public void unsetKey() {
+ this.key = null;
+ }
+
+ /** Returns true if field key is set (has been assigned a value) and false otherwise */
+ public boolean isSetKey() {
+ return this.key != null;
+ }
+
+ public void setKeyIsSet(boolean value) {
+ if (!value) {
+ this.key = null;
+ }
+ }
+
+ public void setFieldValue(_Fields field, Object value) {
+ switch (field) {
+ case KEY:
+ if (value == null) {
+ unsetKey();
+ } else {
+ setKey((String)value);
+ }
+ break;
+
+ }
+ }
+
+ public Object getFieldValue(_Fields field) {
+ switch (field) {
+ case KEY:
+ return getKey();
+
+ }
+ throw new IllegalStateException();
+ }
+
+ /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+ public boolean isSet(_Fields field) {
+ if (field == null) {
+ throw new IllegalArgumentException();
+ }
+
+ switch (field) {
+ case KEY:
+ return isSetKey();
+ }
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof getMetaConf_args)
+ return this.equals((getMetaConf_args)that);
+ return false;
+ }
+
+ public boolean equals(getMetaConf_args that) {
+ if (that == null)
+ return false;
+
+ boolean this_present_key = true && this.isSetKey();
+ boolean that_present_key = true && that.isSetKey();
+ if (this_present_key || that_present_key) {
+ if (!(this_present_key && that_present_key))
+ return false;
+ if (!this.key.equals(that.key))
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ List<Object> list = new ArrayList<Object>();
+
+ boolean present_key = true && (isSetKey());
+ list.add(present_key);
+ if (present_key)
+ list.add(key);
+
+ return list.hashCode();
+ }
+
+ @Override
+ public int compareTo(getMetaConf_args other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+
+ lastComparison = Boolean.valueOf(isSetKey()).compareTo(other.isSetKey());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetKey()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.key, other.key);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ return 0;
+ }
+
+ public _Fields fieldForId(int fieldId) {
+ return _Fields.findByThriftId(fieldId);
+ }
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+ schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("getMetaConf_args(");
+ boolean first = true;
+
+ sb.append("key:");
+ if (this.key == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.key);
+ }
+ first = false;
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ // check for sub-struct validity
+ }
+
+ private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+ try {
+ write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+ try {
+ read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private static class getMetaConf_argsStandardSchemeFactory implements SchemeFactory {
+ public getMetaConf_argsStandardScheme getScheme() {
+ return new getMetaConf_argsStandardScheme();
+ }
+ }
+
+ private static class getMetaConf_argsStandardScheme extends StandardScheme<getMetaConf_args> {
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot, getMetaConf_args struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TField schemeField;
+ iprot.readStructBegin();
+ while (true)
+ {
+ schemeField = iprot.readFieldBegin();
+ if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (schemeField.id) {
+ case 1: // KEY
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.key = iprot.readString();
+ struct.setKeyIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+ struct.validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot, getMetaConf_args struct) throws org.apache.thrift.TException {
+ struct.validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ if (struct.key != null) {
+ oprot.writeFieldBegin(KEY_FIELD_DESC);
+ oprot.writeString(struct.key);
+ oprot.writeFieldEnd();
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ }
+
+ private static class getMetaConf_argsTupleSchemeFactory implements SchemeFactory {
+ public getMetaConf_argsTupleScheme getScheme() {
+ return new getMetaConf_argsTupleScheme();
+ }
+ }
+
+ private static class getMetaConf_argsTupleScheme extends TupleScheme<getMetaConf_args> {
+
+ @Override
+ public void write(org.apache.thrift.protocol.TProtocol prot, getMetaConf_args struct) throws org.apache.thrift.TException {
+ TTupleProtocol oprot = (TTupleProtocol) prot;
+ BitSet optionals = new BitSet();
+ if (struct.isSetKey()) {
+ optionals.set(0);
+ }
+ oprot.writeBitSet(optionals, 1);
+ if (struct.isSetKey()) {
+ oprot.writeString(struct.key);
+ }
+ }
+
+ @Override
+ public void read(org.apache.thrift.protocol.TProtocol prot, getMetaConf_args struct) throws org.apache.thrift.TException {
+ TTupleProtocol iprot = (TTupleProtocol) prot;
+ BitSet incoming = iprot.readBitSet(1);
+ if (incoming.get(0)) {
+ struct.key = iprot.readString();
+ struct.setKeyIsSet(true);
+ }
+ }
+ }
+
+ }
+
+ @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class getMetaConf_result implements org.apache.thrift.TBase<getMetaConf_result, getMetaConf_result._Fields>, java.io.Serializable, Cloneable, Comparable<getMetaConf_result> {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getMetaConf_result");
+
+ private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
+ private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+ private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+ static {
+ schemes.put(StandardScheme.class, new getMetaConf_resultStandardSchemeFactory());
+ schemes.put(TupleScheme.class, new getMetaConf_resultTupleSchemeFactory());
+ }
+
+ private String success; // required
+ private MetaException o1; // required
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ SUCCESS((short)0, "success"),
+ O1((short)1, "o1");
+
+ private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+ static {
+ for (_Fields field : EnumSet.allOf(_Fields.class)) {
+ byName.put(field.getFieldName(), field);
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, or null if its not found.
+ */
+ public static _Fields findByThriftId(int fieldId) {
+ switch(fieldId) {
+ case 0: // SUCCESS
+ return SUCCESS;
+ case 1: // O1
+ return O1;
default:
return null;
}
@@ -231375,4 +231657,1853 @@ import org.slf4j.LoggerFactory;
}
+ @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_lock_materialization_rebuild_args implements org.apache.thrift.TBase<get_lock_materialization_rebuild_args, get_lock_materialization_rebuild_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_lock_materialization_rebuild_args> {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_lock_materialization_rebuild_args");
+
+ private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("dbName", org.apache.thrift.protocol.TType.STRING, (short)1);
+ private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
+ private static final org.apache.thrift.protocol.TField TXN_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("txnId", org.apache.thrift.protocol.TType.I64, (short)3);
+
+ private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+ static {
+ schemes.put(StandardScheme.class, new get_lock_materialization_rebuild_argsStandardSchemeFactory());
+ schemes.put(TupleScheme.class, new get_lock_materialization_rebuild_argsTupleSchemeFactory());
+ }
+
+ private String dbName; // required
+ private String tableName; // required
+ private long txnId; // required
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ DB_NAME((short)1, "dbName"),
+ TABLE_NAME((short)2, "tableName"),
+ TXN_ID((short)3, "txnId");
+
+ private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+ static {
+ for (_Fields field : EnumSet.allOf(_Fields.class)) {
+ byName.put(field.getFieldName(), field);
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, or null if its not found.
+ */
+ public static _Fields findByThriftId(int fieldId) {
+ switch(fieldId) {
+ case 1: // DB_NAME
+ return DB_NAME;
+ case 2: // TABLE_NAME
+ return TABLE_NAME;
+ case 3: // TXN_ID
+ return TXN_ID;
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, throwing an exception
+ * if it is not found.
+ */
+ public static _Fields findByThriftIdOrThrow(int fieldId) {
+ _Fields fields = findByThriftId(fieldId);
+ if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+ return fields;
+ }
+
+ /**
+ * Find the _Fields constant that matches name, or null if its not found.
+ */
+ public static _Fields findByName(String name) {
+ return byName.get(name);
+ }
+
+ private final short _thriftId;
+ private final String _fieldName;
+
+ _Fields(short thriftId, String fieldName) {
+ _thriftId = thriftId;
+ _fieldName = fieldName;
+ }
+
+ public short getThriftFieldId() {
+ return _thriftId;
+ }
+
+ public String getFieldName() {
+ return _fieldName;
+ }
+ }
+
+ // isset id assignments
+ private static final int __TXNID_ISSET_ID = 0;
+ private byte __isset_bitfield = 0;
+ public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+ static {
+ Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+ tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("dbName", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+ tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+ tmpMap.put(_Fields.TXN_ID, new org.apache.thrift.meta_data.FieldMetaData("txnId", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+ metaDataMap = Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_lock_materialization_rebuild_args.class, metaDataMap);
+ }
+
+ public get_lock_materialization_rebuild_args() {
+ }
+
+ public get_lock_materialization_rebuild_args(
+ String dbName,
+ String tableName,
+ long txnId)
+ {
+ this();
+ this.dbName = dbName;
+ this.tableName = tableName;
+ this.txnId = txnId;
+ setTxnIdIsSet(true);
+ }
+
+ /**
+ * Performs a deep copy on <i>other</i>.
+ */
+ public get_lock_materialization_rebuild_args(get_lock_materialization_rebuild_args other) {
+ __isset_bitfield = other.__isset_bitfield;
+ if (other.isSetDbName()) {
+ this.dbName = other.dbName;
+ }
+ if (other.isSetTableName()) {
+ this.tableName = other.tableName;
+ }
+ this.txnId = other.txnId;
+ }
+
+ public get_lock_materialization_rebuild_args deepCopy() {
+ return new get_lock_materialization_rebuild_args(this);
+ }
+
+ @Override
+ public void clear() {
+ this.dbName = null;
+ this.tableName = null;
+ setTxnIdIsSet(false);
+ this.txnId = 0;
+ }
+
+ public String getDbName() {
+ return this.dbName;
+ }
+
+ public void setDbName(String dbName) {
+ this.dbName = dbName;
+ }
+
+ public void unsetDbName() {
+ this.dbName = null;
+ }
+
+ /** Returns true if field dbName is set (has been assigned a value) and false otherwise */
+ public boolean isSetDbName() {
+ return this.dbName != null;
+ }
+
+ public void setDbNameIsSet(boolean value) {
+ if (!value) {
+ this.dbName = null;
+ }
+ }
+
+ public String getTableName() {
+ return this.tableName;
+ }
+
+ public void setTableName(String tableName) {
+ this.tableName = tableName;
+ }
+
+ public void unsetTableName() {
+ this.tableName = null;
+ }
+
+ /** Returns true if field tableName is set (has been assigned a value) and false otherwise */
+ public boolean isSetTableName() {
+ return this.tableName != null;
+ }
+
+ public void setTableNameIsSet(boolean value) {
+ if (!value) {
+ this.tableName = null;
+ }
+ }
+
+ public long getTxnId() {
+ return this.txnId;
+ }
+
+ public void setTxnId(long txnId) {
+ this.txnId = txnId;
+ setTxnIdIsSet(true);
+ }
+
+ public void unsetTxnId() {
+ __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __TXNID_ISSET_ID);
+ }
+
+ /** Returns true if field txnId is set (has been assigned a value) and false otherwise */
+ public boolean isSetTxnId() {
+ return EncodingUtils.testBit(__isset_bitfield, __TXNID_ISSET_ID);
+ }
+
+ public void setTxnIdIsSet(boolean value) {
+ __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __TXNID_ISSET_ID, value);
+ }
+
+ public void setFieldValue(_Fields field, Object value) {
+ switch (field) {
+ case DB_NAME:
+ if (value == null) {
+ unsetDbName();
+ } else {
+ setDbName((String)value);
+ }
+ break;
+
+ case TABLE_NAME:
+ if (value == null) {
+ unsetTableName();
+ } else {
+ setTableName((String)value);
+ }
+ break;
+
+ case TXN_ID:
+ if (value == null) {
+ unsetTxnId();
+ } else {
+ setTxnId((Long)value);
+ }
+ break;
+
+ }
+ }
+
+ public Object getFieldValue(_Fields field) {
+ switch (field) {
+ case DB_NAME:
+ return getDbName();
+
+ case TABLE_NAME:
+ return getTableName();
+
+ case TXN_ID:
+ return getTxnId();
+
+ }
+ throw new IllegalStateException();
+ }
+
+ /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+ public boolean isSet(_Fields field) {
+ if (field == null) {
+ throw new IllegalArgumentException();
+ }
+
+ switch (field) {
+ case DB_NAME:
+ return isSetDbName();
+ case TABLE_NAME:
+ return isSetTableName();
+ case TXN_ID:
+ return isSetTxnId();
+ }
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof get_lock_materialization_rebuild_args)
+ return this.equals((get_lock_materialization_rebuild_args)that);
+ return false;
+ }
+
+ public boolean equals(get_lock_materialization_rebuild_args that) {
+ if (that == null)
+ return false;
+
+ boolean this_present_dbName = true && this.isSetDbName();
+ boolean that_present_dbName = true && that.isSetDbName();
+ if (this_present_dbName || that_present_dbName) {
+ if (!(this_present_dbName && that_present_dbName))
+ return false;
+ if (!this.dbName.equals(that.dbName))
+ return false;
+ }
+
+ boolean this_present_tableName = true && this.isSetTableName();
+ boolean that_present_tableName = true && that.isSetTableName();
+ if (this_present_tableName || that_present_tableName) {
+ if (!(this_present_tableName && that_present_tableName))
+ return false;
+ if (!this.tableName.equals(that.tableName))
+ return false;
+ }
+
+ boolean this_present_txnId = true;
+ boolean that_present_txnId = true;
+ if (this_present_txnId || that_present_txnId) {
+ if (!(this_present_txnId && that_present_txnId))
+ return false;
+ if (this.txnId != that.txnId)
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ List<Object> list = new ArrayList<Object>();
+
+ boolean present_dbName = true && (isSetDbName());
+ list.add(present_dbName);
+ if (present_dbName)
+ list.add(dbName);
+
+ boolean present_tableName = true && (isSetTableName());
+ list.add(present_tableName);
+ if (present_tableName)
+ list.add(tableName);
+
+ boolean present_txnId = true;
+ list.add(present_txnId);
+ if (present_txnId)
+ list.add(txnId);
+
+ return list.hashCode();
+ }
+
+ @Override
+ public int compareTo(get_lock_materialization_rebuild_args other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+
+ lastComparison = Boolean.valueOf(isSetDbName()).compareTo(other.isSetDbName());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetDbName()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dbName, other.dbName);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetTableName()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetTxnId()).compareTo(other.isSetTxnId());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetTxnId()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.txnId, other.txnId);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ return 0;
+ }
+
+ public _Fields fieldForId(int fieldId) {
+ return _Fields.findByThriftId(fieldId);
+ }
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+ schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("get_lock_materialization_rebuild_args(");
+ boolean first = true;
+
+ sb.append("dbName:");
+ if (this.dbName == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.dbName);
+ }
+ first = false;
+ if (!first) sb.append(", ");
+ sb.append("tableName:");
+ if (this.tableName == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.tableName);
+ }
+ first = false;
+ if (!first) sb.append(", ");
+ sb.append("txnId:");
+ sb.append(this.txnId);
+ first = false;
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ // check for sub-struct validity
+ }
+
+ private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+ try {
+ write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+ try {
+ // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+ __isset_bitfield = 0;
+ read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private static class get_lock_materialization_rebuild_argsStandardSchemeFactory implements SchemeFactory {
+ public get_lock_materialization_rebuild_argsStandardScheme getScheme() {
+ return new get_lock_materialization_rebuild_argsStandardScheme();
+ }
+ }
+
+ private static class get_lock_materialization_rebuild_argsStandardScheme extends StandardScheme<get_lock_materialization_rebuild_args> {
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot, get_lock_materialization_rebuild_args struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TField schemeField;
+ iprot.readStructBegin();
+ while (true)
+ {
+ schemeField = iprot.readFieldBegin();
+ if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (schemeField.id) {
+ case 1: // DB_NAME
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.dbName = iprot.readString();
+ struct.setDbNameIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 2: // TABLE_NAME
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.tableName = iprot.readString();
+ struct.setTableNameIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 3: // TXN_ID
+ if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+ struct.txnId = iprot.readI64();
+ struct.setTxnIdIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+ struct.validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot, get_lock_materialization_rebuild_args struct) throws org.apache.thrift.TException {
+ struct.validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ if (struct.dbName != null) {
+ oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
+ oprot.writeString(struct.dbName);
+ oprot.writeFieldEnd();
+ }
+ if (struct.tableName != null) {
+ oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
+ oprot.writeString(struct.tableName);
+ oprot.writeFieldEnd();
+ }
+ oprot.writeFieldBegin(TXN_ID_FIELD_DESC);
+ oprot.writeI64(struct.txnId);
+ oprot.writeFieldEnd();
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ }
+
+ private static class get_lock_materialization_rebuild_argsTupleSchemeFactory implements SchemeFactory {
+ public get_lock_materialization_rebuild_argsTupleScheme getScheme() {
+ return new get_lock_materialization_rebuild_argsTupleScheme();
+ }
+ }
+
+ private static class get_lock_materialization_rebuild_argsTupleScheme extends TupleScheme<get_lock_materialization_rebuild_args> {
+
+ @Override
+ public void write(org.apache.thrift.protocol.TProtocol prot, get_lock_materialization_rebuild_args struct) throws org.apache.thrift.TException {
+ TTupleProtocol oprot = (TTupleProtocol) prot;
+ BitSet optionals = new BitSet();
+ if (struct.isSetDbName()) {
+ optionals.set(0);
+ }
+ if (struct.isSetTableName()) {
+ optionals.set(1);
+ }
+ if (struct.isSetTxnId()) {
+ optionals.set(2);
+ }
+ oprot.writeBitSet(optionals, 3);
+ if (struct.isSetDbName()) {
+ oprot.writeString(struct.dbName);
+ }
+ if (struct.isSetTableName()) {
+ oprot.writeString(struct.tableName);
+ }
+ if (struct.isSetTxnId()) {
+ oprot.writeI64(struct.txnId);
+ }
+ }
+
+ @Override
+ public void read(org.apache.thrift.protocol.TProtocol prot, get_lock_materialization_rebuild_args struct) throws org.apache.thrift.TException {
+ TTupleProtocol iprot = (TTupleProtocol) prot;
+ BitSet incoming = iprot.readBitSet(3);
+ if (incoming.get(0)) {
+ struct.dbName = iprot.readString();
+ struct.setDbNameIsSet(true);
+ }
+ if (incoming.get(1)) {
+ struct.tableName = iprot.readString();
+ struct.setTableNameIsSet(true);
+ }
+ if (incoming.get(2)) {
+ struct.txnId = iprot.readI64();
+ struct.setTxnIdIsSet(true);
+ }
+ }
+ }
+
+ }
+
+ @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_lock_materialization_rebuild_result implements org.apache.thrift.TBase<get_lock_materialization_rebuild_result, get_lock_materialization_rebuild_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_lock_materialization_rebuild_result> {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_lock_materialization_rebuild_result");
+
+ private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
+
+ private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+ static {
+ schemes.put(StandardScheme.class, new get_lock_materialization_rebuild_resultStandardSchemeFactory());
+ schemes.put(TupleScheme.class, new get_lock_materialization_rebuild_resultTupleSchemeFactory());
+ }
+
+ private LockResponse success; // required
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ SUCCESS((short)0, "success");
+
+ private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+ static {
+ for (_Fields field : EnumSet.allOf(_Fields.class)) {
+ byName.put(field.getFieldName(), field);
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, or null if its not found.
+ */
+ public static _Fields findByThriftId(int fieldId) {
+ switch(fieldId) {
+ case 0: // SUCCESS
+ return SUCCESS;
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, throwing an exception
+ * if it is not found.
+ */
+ public static _Fields findByThriftIdOrThrow(int fieldId) {
+ _Fields fields = findByThriftId(fieldId);
+ if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+ return fields;
+ }
+
+ /**
+ * Find the _Fields constant that matches name, or null if its not found.
+ */
+ public static _Fields findByName(String name) {
+ return byName.get(name);
+ }
+
+ private final short _thriftId;
+ private final String _fieldName;
+
+ _Fields(short thriftId, String fieldName) {
+ _thriftId = thriftId;
+ _fieldName = fieldName;
+ }
+
+ public short getThriftFieldId() {
+ return _thriftId;
+ }
+
+ public String getFieldName() {
+ return _fieldName;
+ }
+ }
+
+ // isset id assignments
+ public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+ static {
+ Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+ tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, LockResponse.class)));
+ metaDataMap = Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_lock_materialization_rebuild_result.class, metaDataMap);
+ }
+
+ public get_lock_materialization_rebuild_result() {
+ }
+
+ public get_lock_materialization_rebuild_result(
+ LockResponse success)
+ {
+ this();
+ this.success = success;
+ }
+
+ /**
+ * Performs a deep copy on <i>other</i>.
+ */
+ public get_lock_materialization_rebuild_result(get_lock_materialization_rebuild_result other) {
+ if (other.isSetSuccess()) {
+ this.success = new LockResponse(other.success);
+ }
+ }
+
+ public get_lock_materialization_rebuild_result deepCopy() {
+ return new get_lock_materialization_rebuild_result(this);
+ }
+
+ @Override
+ public void clear() {
+ this.success = null;
+ }
+
+ public LockResponse getSuccess() {
+ return this.success;
+ }
+
+ public void setSuccess(LockResponse success) {
+ this.success = success;
+ }
+
+ public void unsetSuccess() {
+ this.success = null;
+ }
+
+ /** Returns true if field success is set (has been assigned a value) and false otherwise */
+ public boolean isSetSuccess() {
+ return this.success != null;
+ }
+
+ public void setSuccessIsSet(boolean value) {
+ if (!value) {
+ this.success = null;
+ }
+ }
+
+ public void setFieldValue(_Fields field, Object value) {
+ switch (field) {
+ case SUCCESS:
+ if (value == null) {
+ unsetSuccess();
+ } else {
+ setSuccess((LockResponse)value);
+ }
+ break;
+
+ }
+ }
+
+ public Object getFieldValue(_Fields field) {
+ switch (field) {
+ case SUCCESS:
+ return getSuccess();
+
+ }
+ throw new IllegalStateException();
+ }
+
+ /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+ public boolean isSet(_Fields field) {
+ if (field == null) {
+ throw new IllegalArgumentException();
+ }
+
+ switch (field) {
+ case SUCCESS:
+ return isSetSuccess();
+ }
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof get_lock_materialization_rebuild_result)
+ return this.equals((get_lock_materialization_rebuild_result)that);
+ return false;
+ }
+
+ public boolean equals(get_lock_materialization_rebuild_result that) {
+ if (that == null)
+ return false;
+
+ boolean this_present_success = true && this.isSetSuccess();
+ boolean that_present_success = true && that.isSetSuccess();
+ if (this_present_success || that_present_success) {
+ if (!(this_present_success && that_present_success))
+ return false;
+ if (!this.success.equals(that.success))
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ List<Object> list = new ArrayList<Object>();
+
+ boolean present_success = true && (isSetSuccess());
+ list.add(present_success);
+ if (present_success)
+ list.add(success);
+
+ return list.hashCode();
+ }
+
+ @Override
+ public int compareTo(get_lock_materialization_rebuild_result other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+
+ lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetSuccess()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ return 0;
+ }
+
+ public _Fields fieldForId(int fieldId) {
+ return _Fields.findByThriftId(fieldId);
+ }
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+ schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("get_lock_materialization_rebuild_result(");
+ boolean first = true;
+
+ sb.append("success:");
+ if (this.success == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.success);
+ }
+ first = false;
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ // check for sub-struct validity
+ if (success != null) {
+ success.validate();
+ }
+ }
+
+ private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+ try {
+ write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+ try {
+ read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private static class get_lock_materialization_rebuild_resultStandardSchemeFactory implements SchemeFactory {
+ public get_lock_materialization_rebuild_resultStandardScheme getScheme() {
+ return new get_lock_materialization_rebuild_resultStandardScheme();
+ }
+ }
+
+ private static class get_lock_materialization_rebuild_resultStandardScheme extends StandardScheme<get_lock_materialization_rebuild_result> {
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot, get_lock_materialization_rebuild_result struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TField schemeField;
+ iprot.readStructBegin();
+ while (true)
+ {
+ schemeField = iprot.readFieldBegin();
+ if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (schemeField.id) {
+ case 0: // SUCCESS
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+ struct.success = new LockResponse();
+ struct.success.read(iprot);
+ struct.setSuccessIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+ struct.validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot, get_lock_materialization_rebuild_result struct) throws org.apache.thrift.TException {
+ struct.validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ if (struct.success != null) {
+ oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+ struct.success.write(oprot);
+ oprot.writeFieldEnd();
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ }
+
+ private static class get_lock_materialization_rebuild_resultTupleSchemeFactory implements SchemeFactory {
+ public get_lock_materialization_rebuild_resultTupleScheme getScheme() {
+ return new get_lock_materialization_rebuild_resultTupleScheme();
+ }
+ }
+
+ private static class get_lock_materialization_rebuild_resultTupleScheme extends TupleScheme<get_lock_materialization_rebuild_result> {
+
+ @Override
+ public void write(org.apache.thrift.protocol.TProtocol prot, get_lock_materialization_rebuild_result struct) throws org.apache.thrift.TException {
+ TTupleProtocol oprot = (TTupleProtocol) prot;
+ BitSet optionals = new BitSet();
+ if (struct.isSetSuccess()) {
+ optionals.set(0);
+ }
+ oprot.writeBitSet(optionals, 1);
+ if (struct.isSetSuccess()) {
+ struct.success.write(oprot);
+ }
+ }
+
+ @Override
+ public void read(org.apache.thrift.protocol.TProtocol prot, get_lock_materialization_rebuild_result struct) throws org.apache.thrift.TException {
+ TTupleProtocol iprot = (TTupleProtocol) prot;
+ BitSet incoming = iprot.readBitSet(1);
+ if (incoming.get(0)) {
+ struct.success = new LockResponse();
+ struct.success.read(iprot);
+ struct.setSuccessIsSet(true);
+ }
+ }
+ }
+
+ }
+
+ @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class heartbeat_lock_materialization_rebuild_args implements org.apache.thrift.TBase<heartbeat_lock_materialization_rebuild_args, heartbeat_lock_materialization_rebuild_args._Fields>, java.io.Serializable, Cloneable, Comparable<heartbeat_lock_materialization_rebuild_args> {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("heartbeat_lock_materialization_rebuild_args");
+
+ private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("dbName", org.apache.thrift.protocol.TType.STRING, (short)1);
+ private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
+ private static final org.apache.thrift.protocol.TField TXN_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("txnId", org.apache.thrift.protocol.TType.I64, (short)3);
+
+ private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+ static {
+ schemes.put(StandardScheme.class, new heartbeat_lock_materialization_rebuild_argsStandardSchemeFactory());
+ schemes.put(TupleScheme.class, new heartbeat_lock_materialization_rebuild_argsTupleSchemeFactory());
+ }
+
+ private String dbName; // required
+ private String tableName; // required
+ private long txnId; // required
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ DB_NAME((short)1, "dbName"),
+ TABLE_NAME((short)2, "tableName"),
+ TXN_ID((short)3, "txnId");
+
+ private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+ static {
+ for (_Fields field : EnumSet.allOf(_Fields.class)) {
+ byName.put(field.getFieldName(), field);
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, or null if its not found.
+ */
+ public static _Fields findByThriftId(int fieldId) {
+ switch(fieldId) {
+ case 1: // DB_NAME
+ return DB_NAME;
+ case 2: // TABLE_NAME
+ return TABLE_NAME;
+ case 3: // TXN_ID
+ return TXN_ID;
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, throwing an exception
+ * if it is not found.
+ */
+ public static _Fields findByThriftIdOrThrow(int fieldId) {
+ _Fields fields = findByThriftId(fieldId);
+ if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+ return fields;
+ }
+
+ /**
+ * Find the _Fields constant that matches name, or null if its not found.
+ */
+ public static _Fields findByName(String name) {
+ return byName.get(name);
+ }
+
+ private final short _thriftId;
+ private final String _fieldName;
+
+ _Fields(short thriftId, String fieldName) {
+ _thriftId = thriftId;
+ _fieldName = fieldName;
+ }
+
+ public short getThriftFieldId() {
+ return _thriftId;
+ }
+
+ public String getFieldName() {
+ return _fieldName;
+ }
+ }
+
+ // isset id assignments
+ private static final int __TXNID_ISSET_ID = 0;
+ private byte __isset_bitfield = 0;
+ public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+ static {
+ Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+ tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("dbName", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+ tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+ tmpMap.put(_Fields.TXN_ID, new org.apache.thrift.meta_data.FieldMetaData("txnId", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+ metaDataMap = Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(heartbeat_lock_materialization_rebuild_args.class, metaDataMap);
+ }
+
+ public heartbeat_lock_materialization_rebuild_args() {
+ }
+
+ public heartbeat_lock_materialization_rebuild_args(
+ String dbName,
+ String tableName,
+ long txnId)
+ {
+ this();
+ this.dbName = dbName;
+ this.tableName = tableName;
+ this.txnId = txnId;
+ setTxnIdIsSet(true);
+ }
+
+ /**
+ * Performs a deep copy on <i>other</i>.
+ */
+ public heartbeat_lock_materialization_rebuild_args(heartbeat_lock_materialization_rebuild_args other) {
+ __isset_bitfield = other.__isset_bitfield;
+ if (other.isSetDbName()) {
+ this.dbName = other.dbName;
+ }
+ if (other.isSetTableName()) {
+ this.tableName = other.tableName;
+ }
+ this.txnId = other.txnId;
+ }
+
+ public heartbeat_lock_materialization_rebuild_args deepCopy() {
+ return new heartbeat_lock_materialization_rebuild_args(this);
+ }
+
+ @Override
+ public void clear() {
+ this.dbName = null;
+ this.tableName = null;
+ setTxnIdIsSet(false);
+ this.txnId = 0;
+ }
+
+ public String getDbName() {
+ return this.dbName;
+ }
+
+ public void setDbName(String dbName) {
+ this.dbName = dbName;
+ }
+
+ public void unsetDbName() {
+ this.dbName = null;
+ }
+
+ /** Returns true if field dbName is set (has been assigned a value) and false otherwise */
+ public boolean isSetDbName() {
+ return this.dbName != null;
+ }
+
+ public void setDbNameIsSet(boolean value) {
+ if (!value) {
+ this.dbName = null;
+ }
+ }
+
+ public String getTableName() {
+ return this.tableName;
+ }
+
+ public void setTableName(String tableName) {
+ this.tableName = tableName;
+ }
+
+ public void unsetTableName() {
+ this.tableName = null;
+ }
+
+ /** Returns true if field tableName is set (has been assigned a value) and false otherwise */
+ public boolean isSetTableName() {
+ return this.tableName != null;
+ }
+
+ public void setTableNameIsSet(boolean value) {
+ if (!value) {
+ this.tableName = null;
+ }
+ }
+
+ public long getTxnId() {
+ return this.txnId;
+ }
+
+ public void setTxnId(long txnId) {
+ this.txnId = txnId;
+ setTxnIdIsSet(true);
+ }
+
+ public void unsetTxnId() {
+ __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __TXNID_ISSET_ID);
+ }
+
+ /** Returns true if field txnId is set (has been assigned a value) and false otherwise */
+ public boolean isSetTxnId() {
+ return EncodingUtils.testBit(__isset_bitfield, __TXNID_ISSET_ID);
+ }
+
+ public void setTxnIdIsSet(boolean value) {
+ __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __TXNID_ISSET_ID, value);
+ }
+
+ public void setFieldValue(_Fields field, Object value) {
+ switch (field) {
+ case DB_NAME:
+ if (value == null) {
+ unsetDbName();
+ } else {
+ setDbName((String)value);
+ }
+ break;
+
+ case TABLE_NAME:
+ if (value == null) {
+ unsetTableName();
+ } else {
+ setTableName((String)value);
+ }
+ break;
+
+ case TXN_ID:
+ if (value == null) {
+ unsetTxnId();
+ } else {
+ setTxnId((Long)value);
+ }
+ break;
+
+ }
+ }
+
+ public Object getFieldValue(_Fields field) {
+ switch (field) {
+ case DB_NAME:
+ return getDbName();
+
+ case TABLE_NAME:
+ return getTableName();
+
+ case TXN_ID:
+ return getTxnId();
+
+ }
+ throw new IllegalStateException();
+ }
+
+ /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+ public boolean isSet(_Fields field) {
+ if (field == null) {
+ throw new IllegalArgumentException();
+ }
+
+ switch (field) {
+ case DB_NAME:
+ return isSetDbName();
+ case TABLE_NAME:
+ return isSetTableName();
+ case TXN_ID:
+ return isSetTxnId();
+ }
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof heartbeat_lock_materialization_rebuild_args)
+ return this.equals((heartbeat_lock_materialization_rebuild_args)that);
+ return false;
+ }
+
+ public boolean equals(heartbeat_lock_materialization_rebuild_args that) {
+ if (that == null)
+ return false;
+
+ boolean this_present_dbName = true && this.isSetDbName();
+ boolean that_present_dbName = true && that.isSetDbName();
+ if (this_present_dbName || that_present_dbName) {
+ if (!(this_present_dbName && that_present_dbName))
+ return false;
+ if (!this.dbName.equals(that.dbName))
+ return false;
+ }
+
+ boolean this_present_tableName = true && this.isSetTableName();
+ boolean that_present_tableName = true && that.isSetTableName();
+ if (this_present_tableName || that_present_tableName) {
+ if (!(this_present_tableName && that_present_tableName))
+ return false;
+ if (!this.tableName.equals(that.tableName))
+ return false;
+ }
+
+ boolean this_present_txnId = true;
+ boolean that_present_txnId = true;
+ if (this_present_txnId || that_present_txnId) {
+ if (!(this_present_txnId && that_present_txnId))
+ return false;
+ if (this.txnId != that.txnId)
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ List<Object> list = new ArrayList<Object>();
+
+ boolean present_dbName = true && (isSetDbName());
+ list.add(present_dbName);
+ if (present_dbName)
+ list.add(dbName);
+
+ boolean present_tableName = true && (isSetTableName());
+ list.add(present_tableName);
+ if (present_tableName)
+ list.add(tableName);
+
+ boolean present_txnId = true;
+ list.add(present_txnId);
+ if (present_txnId)
+ list.add(txnId);
+
+ return list.hashCode();
+ }
+
+ @Override
+ public int compareTo(heartbeat_lock_materialization_rebuild_args other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+
+ lastComparison = Boolean.valueOf(isSetDbName()).compareTo(other.isSetDbName());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetDbName()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dbName, other.dbNam
<TRUNCATED>
[06/24] hive git commit: HIVE-18839: Implement incremental rebuild
for materialized views (only insert operations in source tables) (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/materialized_view_rewrite_ssb_2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/materialized_view_rewrite_ssb_2.q.out b/ql/src/test/results/clientpositive/materialized_view_rewrite_ssb_2.q.out
deleted file mode 100644
index d561208..0000000
--- a/ql/src/test/results/clientpositive/materialized_view_rewrite_ssb_2.q.out
+++ /dev/null
@@ -1,1981 +0,0 @@
-PREHOOK: query: CREATE TABLE `customer_ext`(
- `c_custkey` bigint,
- `c_name` string,
- `c_address` string,
- `c_city` string,
- `c_nation` string,
- `c_region` string,
- `c_phone` string,
- `c_mktsegment` string)
-ROW FORMAT DELIMITED
-FIELDS TERMINATED BY '|'
-STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@customer_ext
-POSTHOOK: query: CREATE TABLE `customer_ext`(
- `c_custkey` bigint,
- `c_name` string,
- `c_address` string,
- `c_city` string,
- `c_nation` string,
- `c_region` string,
- `c_phone` string,
- `c_mktsegment` string)
-ROW FORMAT DELIMITED
-FIELDS TERMINATED BY '|'
-STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@customer_ext
-PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/ssb/customer/' into table `customer_ext`
-PREHOOK: type: LOAD
-#### A masked pattern was here ####
-PREHOOK: Output: default@customer_ext
-POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/ssb/customer/' into table `customer_ext`
-POSTHOOK: type: LOAD
-#### A masked pattern was here ####
-POSTHOOK: Output: default@customer_ext
-PREHOOK: query: CREATE TABLE `customer`(
- `c_custkey` bigint,
- `c_name` string,
- `c_address` string,
- `c_city` string,
- `c_nation` string,
- `c_region` string,
- `c_phone` string,
- `c_mktsegment` string,
- primary key (`c_custkey`) disable rely)
-STORED AS ORC
-TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@customer
-POSTHOOK: query: CREATE TABLE `customer`(
- `c_custkey` bigint,
- `c_name` string,
- `c_address` string,
- `c_city` string,
- `c_nation` string,
- `c_region` string,
- `c_phone` string,
- `c_mktsegment` string,
- primary key (`c_custkey`) disable rely)
-STORED AS ORC
-TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@customer
-PREHOOK: query: INSERT INTO `customer`
-SELECT * FROM `customer_ext`
-PREHOOK: type: QUERY
-PREHOOK: Input: default@customer_ext
-PREHOOK: Output: default@customer
-POSTHOOK: query: INSERT INTO `customer`
-SELECT * FROM `customer_ext`
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@customer_ext
-POSTHOOK: Output: default@customer
-POSTHOOK: Lineage: customer.c_address SIMPLE [(customer_ext)customer_ext.FieldSchema(name:c_address, type:string, comment:null), ]
-POSTHOOK: Lineage: customer.c_city SIMPLE [(customer_ext)customer_ext.FieldSchema(name:c_city, type:string, comment:null), ]
-POSTHOOK: Lineage: customer.c_custkey SIMPLE [(customer_ext)customer_ext.FieldSchema(name:c_custkey, type:bigint, comment:null), ]
-POSTHOOK: Lineage: customer.c_mktsegment SIMPLE [(customer_ext)customer_ext.FieldSchema(name:c_mktsegment, type:string, comment:null), ]
-POSTHOOK: Lineage: customer.c_name SIMPLE [(customer_ext)customer_ext.FieldSchema(name:c_name, type:string, comment:null), ]
-POSTHOOK: Lineage: customer.c_nation SIMPLE [(customer_ext)customer_ext.FieldSchema(name:c_nation, type:string, comment:null), ]
-POSTHOOK: Lineage: customer.c_phone SIMPLE [(customer_ext)customer_ext.FieldSchema(name:c_phone, type:string, comment:null), ]
-POSTHOOK: Lineage: customer.c_region SIMPLE [(customer_ext)customer_ext.FieldSchema(name:c_region, type:string, comment:null), ]
-PREHOOK: query: CREATE TABLE `dates_ext`(
- `d_datekey` bigint,
- `d_date` string,
- `d_dayofweek` string,
- `d_month` string,
- `d_year` int,
- `d_yearmonthnum` int,
- `d_yearmonth` string,
- `d_daynuminweek` int,
- `d_daynuminmonth` int,
- `d_daynuminyear` int,
- `d_monthnuminyear` int,
- `d_weeknuminyear` int,
- `d_sellingseason` string,
- `d_lastdayinweekfl` int,
- `d_lastdayinmonthfl` int,
- `d_holidayfl` int ,
- `d_weekdayfl`int)
-ROW FORMAT DELIMITED
-FIELDS TERMINATED BY '|'
-STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@dates_ext
-POSTHOOK: query: CREATE TABLE `dates_ext`(
- `d_datekey` bigint,
- `d_date` string,
- `d_dayofweek` string,
- `d_month` string,
- `d_year` int,
- `d_yearmonthnum` int,
- `d_yearmonth` string,
- `d_daynuminweek` int,
- `d_daynuminmonth` int,
- `d_daynuminyear` int,
- `d_monthnuminyear` int,
- `d_weeknuminyear` int,
- `d_sellingseason` string,
- `d_lastdayinweekfl` int,
- `d_lastdayinmonthfl` int,
- `d_holidayfl` int ,
- `d_weekdayfl`int)
-ROW FORMAT DELIMITED
-FIELDS TERMINATED BY '|'
-STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@dates_ext
-PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/ssb/date/' into table `dates_ext`
-PREHOOK: type: LOAD
-#### A masked pattern was here ####
-PREHOOK: Output: default@dates_ext
-POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/ssb/date/' into table `dates_ext`
-POSTHOOK: type: LOAD
-#### A masked pattern was here ####
-POSTHOOK: Output: default@dates_ext
-PREHOOK: query: CREATE TABLE `dates`(
- `d_datekey` bigint,
- `d_date` string,
- `d_dayofweek` string,
- `d_month` string,
- `d_year` int,
- `d_yearmonthnum` int,
- `d_yearmonth` string,
- `d_daynuminweek` int,
- `d_daynuminmonth` int,
- `d_daynuminyear` int,
- `d_monthnuminyear` int,
- `d_weeknuminyear` int,
- `d_sellingseason` string,
- `d_lastdayinweekfl` int,
- `d_lastdayinmonthfl` int,
- `d_holidayfl` int ,
- `d_weekdayfl`int,
- primary key (`d_datekey`) disable rely
-)
-STORED AS ORC
-TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@dates
-POSTHOOK: query: CREATE TABLE `dates`(
- `d_datekey` bigint,
- `d_date` string,
- `d_dayofweek` string,
- `d_month` string,
- `d_year` int,
- `d_yearmonthnum` int,
- `d_yearmonth` string,
- `d_daynuminweek` int,
- `d_daynuminmonth` int,
- `d_daynuminyear` int,
- `d_monthnuminyear` int,
- `d_weeknuminyear` int,
- `d_sellingseason` string,
- `d_lastdayinweekfl` int,
- `d_lastdayinmonthfl` int,
- `d_holidayfl` int ,
- `d_weekdayfl`int,
- primary key (`d_datekey`) disable rely
-)
-STORED AS ORC
-TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@dates
-PREHOOK: query: INSERT INTO `dates`
-SELECT * FROM `dates_ext`
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dates_ext
-PREHOOK: Output: default@dates
-POSTHOOK: query: INSERT INTO `dates`
-SELECT * FROM `dates_ext`
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dates_ext
-POSTHOOK: Output: default@dates
-POSTHOOK: Lineage: dates.d_date SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_date, type:string, comment:null), ]
-POSTHOOK: Lineage: dates.d_datekey SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_datekey, type:bigint, comment:null), ]
-POSTHOOK: Lineage: dates.d_daynuminmonth SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_daynuminmonth, type:int, comment:null), ]
-POSTHOOK: Lineage: dates.d_daynuminweek SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_daynuminweek, type:int, comment:null), ]
-POSTHOOK: Lineage: dates.d_daynuminyear SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_daynuminyear, type:int, comment:null), ]
-POSTHOOK: Lineage: dates.d_dayofweek SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_dayofweek, type:string, comment:null), ]
-POSTHOOK: Lineage: dates.d_holidayfl SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_holidayfl, type:int, comment:null), ]
-POSTHOOK: Lineage: dates.d_lastdayinmonthfl SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_lastdayinmonthfl, type:int, comment:null), ]
-POSTHOOK: Lineage: dates.d_lastdayinweekfl SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_lastdayinweekfl, type:int, comment:null), ]
-POSTHOOK: Lineage: dates.d_month SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_month, type:string, comment:null), ]
-POSTHOOK: Lineage: dates.d_monthnuminyear SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_monthnuminyear, type:int, comment:null), ]
-POSTHOOK: Lineage: dates.d_sellingseason SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_sellingseason, type:string, comment:null), ]
-POSTHOOK: Lineage: dates.d_weekdayfl SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_weekdayfl, type:int, comment:null), ]
-POSTHOOK: Lineage: dates.d_weeknuminyear SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_weeknuminyear, type:int, comment:null), ]
-POSTHOOK: Lineage: dates.d_year SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_year, type:int, comment:null), ]
-POSTHOOK: Lineage: dates.d_yearmonth SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_yearmonth, type:string, comment:null), ]
-POSTHOOK: Lineage: dates.d_yearmonthnum SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_yearmonthnum, type:int, comment:null), ]
-PREHOOK: query: CREATE TABLE `ssb_part_ext`(
- `p_partkey` bigint,
- `p_name` string,
- `p_mfgr` string,
- `p_category` string,
- `p_brand1` string,
- `p_color` string,
- `p_type` string,
- `p_size` int,
- `p_container` string)
-ROW FORMAT DELIMITED
-FIELDS TERMINATED BY '|'
-STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@ssb_part_ext
-POSTHOOK: query: CREATE TABLE `ssb_part_ext`(
- `p_partkey` bigint,
- `p_name` string,
- `p_mfgr` string,
- `p_category` string,
- `p_brand1` string,
- `p_color` string,
- `p_type` string,
- `p_size` int,
- `p_container` string)
-ROW FORMAT DELIMITED
-FIELDS TERMINATED BY '|'
-STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@ssb_part_ext
-PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/ssb/part/' into table `ssb_part_ext`
-PREHOOK: type: LOAD
-#### A masked pattern was here ####
-PREHOOK: Output: default@ssb_part_ext
-POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/ssb/part/' into table `ssb_part_ext`
-POSTHOOK: type: LOAD
-#### A masked pattern was here ####
-POSTHOOK: Output: default@ssb_part_ext
-PREHOOK: query: CREATE TABLE `ssb_part`(
- `p_partkey` bigint,
- `p_name` string,
- `p_mfgr` string,
- `p_category` string,
- `p_brand1` string,
- `p_color` string,
- `p_type` string,
- `p_size` int,
- `p_container` string,
- primary key (`p_partkey`) disable rely)
-STORED AS ORC
-TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@ssb_part
-POSTHOOK: query: CREATE TABLE `ssb_part`(
- `p_partkey` bigint,
- `p_name` string,
- `p_mfgr` string,
- `p_category` string,
- `p_brand1` string,
- `p_color` string,
- `p_type` string,
- `p_size` int,
- `p_container` string,
- primary key (`p_partkey`) disable rely)
-STORED AS ORC
-TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@ssb_part
-PREHOOK: query: INSERT INTO `ssb_part`
-SELECT * FROM `ssb_part_ext`
-PREHOOK: type: QUERY
-PREHOOK: Input: default@ssb_part_ext
-PREHOOK: Output: default@ssb_part
-POSTHOOK: query: INSERT INTO `ssb_part`
-SELECT * FROM `ssb_part_ext`
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@ssb_part_ext
-POSTHOOK: Output: default@ssb_part
-POSTHOOK: Lineage: ssb_part.p_brand1 SIMPLE [(ssb_part_ext)ssb_part_ext.FieldSchema(name:p_brand1, type:string, comment:null), ]
-POSTHOOK: Lineage: ssb_part.p_category SIMPLE [(ssb_part_ext)ssb_part_ext.FieldSchema(name:p_category, type:string, comment:null), ]
-POSTHOOK: Lineage: ssb_part.p_color SIMPLE [(ssb_part_ext)ssb_part_ext.FieldSchema(name:p_color, type:string, comment:null), ]
-POSTHOOK: Lineage: ssb_part.p_container SIMPLE [(ssb_part_ext)ssb_part_ext.FieldSchema(name:p_container, type:string, comment:null), ]
-POSTHOOK: Lineage: ssb_part.p_mfgr SIMPLE [(ssb_part_ext)ssb_part_ext.FieldSchema(name:p_mfgr, type:string, comment:null), ]
-POSTHOOK: Lineage: ssb_part.p_name SIMPLE [(ssb_part_ext)ssb_part_ext.FieldSchema(name:p_name, type:string, comment:null), ]
-POSTHOOK: Lineage: ssb_part.p_partkey SIMPLE [(ssb_part_ext)ssb_part_ext.FieldSchema(name:p_partkey, type:bigint, comment:null), ]
-POSTHOOK: Lineage: ssb_part.p_size SIMPLE [(ssb_part_ext)ssb_part_ext.FieldSchema(name:p_size, type:int, comment:null), ]
-POSTHOOK: Lineage: ssb_part.p_type SIMPLE [(ssb_part_ext)ssb_part_ext.FieldSchema(name:p_type, type:string, comment:null), ]
-PREHOOK: query: CREATE TABLE `supplier_ext`(
- `s_suppkey` bigint,
- `s_name` string,
- `s_address` string,
- `s_city` string,
- `s_nation` string,
- `s_region` string,
- `s_phone` string)
-ROW FORMAT DELIMITED
-FIELDS TERMINATED BY '|'
-STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@supplier_ext
-POSTHOOK: query: CREATE TABLE `supplier_ext`(
- `s_suppkey` bigint,
- `s_name` string,
- `s_address` string,
- `s_city` string,
- `s_nation` string,
- `s_region` string,
- `s_phone` string)
-ROW FORMAT DELIMITED
-FIELDS TERMINATED BY '|'
-STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@supplier_ext
-PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/ssb/supplier/' into table `supplier_ext`
-PREHOOK: type: LOAD
-#### A masked pattern was here ####
-PREHOOK: Output: default@supplier_ext
-POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/ssb/supplier/' into table `supplier_ext`
-POSTHOOK: type: LOAD
-#### A masked pattern was here ####
-POSTHOOK: Output: default@supplier_ext
-PREHOOK: query: CREATE TABLE `supplier`(
- `s_suppkey` bigint,
- `s_name` string,
- `s_address` string,
- `s_city` string,
- `s_nation` string,
- `s_region` string,
- `s_phone` string,
- primary key (`s_suppkey`) disable rely)
-STORED AS ORC
-TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@supplier
-POSTHOOK: query: CREATE TABLE `supplier`(
- `s_suppkey` bigint,
- `s_name` string,
- `s_address` string,
- `s_city` string,
- `s_nation` string,
- `s_region` string,
- `s_phone` string,
- primary key (`s_suppkey`) disable rely)
-STORED AS ORC
-TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@supplier
-PREHOOK: query: INSERT INTO `supplier`
-SELECT * FROM `supplier_ext`
-PREHOOK: type: QUERY
-PREHOOK: Input: default@supplier_ext
-PREHOOK: Output: default@supplier
-POSTHOOK: query: INSERT INTO `supplier`
-SELECT * FROM `supplier_ext`
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@supplier_ext
-POSTHOOK: Output: default@supplier
-POSTHOOK: Lineage: supplier.s_address SIMPLE [(supplier_ext)supplier_ext.FieldSchema(name:s_address, type:string, comment:null), ]
-POSTHOOK: Lineage: supplier.s_city SIMPLE [(supplier_ext)supplier_ext.FieldSchema(name:s_city, type:string, comment:null), ]
-POSTHOOK: Lineage: supplier.s_name SIMPLE [(supplier_ext)supplier_ext.FieldSchema(name:s_name, type:string, comment:null), ]
-POSTHOOK: Lineage: supplier.s_nation SIMPLE [(supplier_ext)supplier_ext.FieldSchema(name:s_nation, type:string, comment:null), ]
-POSTHOOK: Lineage: supplier.s_phone SIMPLE [(supplier_ext)supplier_ext.FieldSchema(name:s_phone, type:string, comment:null), ]
-POSTHOOK: Lineage: supplier.s_region SIMPLE [(supplier_ext)supplier_ext.FieldSchema(name:s_region, type:string, comment:null), ]
-POSTHOOK: Lineage: supplier.s_suppkey SIMPLE [(supplier_ext)supplier_ext.FieldSchema(name:s_suppkey, type:bigint, comment:null), ]
-PREHOOK: query: CREATE TABLE `lineorder_ext`(
- `lo_orderkey` bigint,
- `lo_linenumber` int,
- `lo_custkey` bigint not null disable rely,
- `lo_partkey` bigint not null disable rely,
- `lo_suppkey` bigint not null disable rely,
- `lo_orderdate` bigint not null disable rely,
- `lo_ordpriority` string,
- `lo_shippriority` string,
- `lo_quantity` double,
- `lo_extendedprice` double,
- `lo_ordtotalprice` double,
- `lo_discount` double,
- `lo_revenue` double,
- `lo_supplycost` double,
- `lo_tax` double,
- `lo_commitdate` bigint,
- `lo_shipmode` string)
-ROW FORMAT DELIMITED
-FIELDS TERMINATED BY '|'
-STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@lineorder_ext
-POSTHOOK: query: CREATE TABLE `lineorder_ext`(
- `lo_orderkey` bigint,
- `lo_linenumber` int,
- `lo_custkey` bigint not null disable rely,
- `lo_partkey` bigint not null disable rely,
- `lo_suppkey` bigint not null disable rely,
- `lo_orderdate` bigint not null disable rely,
- `lo_ordpriority` string,
- `lo_shippriority` string,
- `lo_quantity` double,
- `lo_extendedprice` double,
- `lo_ordtotalprice` double,
- `lo_discount` double,
- `lo_revenue` double,
- `lo_supplycost` double,
- `lo_tax` double,
- `lo_commitdate` bigint,
- `lo_shipmode` string)
-ROW FORMAT DELIMITED
-FIELDS TERMINATED BY '|'
-STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@lineorder_ext
-PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/ssb/lineorder/' into table `lineorder_ext`
-PREHOOK: type: LOAD
-#### A masked pattern was here ####
-PREHOOK: Output: default@lineorder_ext
-POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/ssb/lineorder/' into table `lineorder_ext`
-POSTHOOK: type: LOAD
-#### A masked pattern was here ####
-POSTHOOK: Output: default@lineorder_ext
-PREHOOK: query: CREATE TABLE `lineorder`(
- `lo_orderkey` bigint,
- `lo_linenumber` int,
- `lo_custkey` bigint not null disable rely,
- `lo_partkey` bigint not null disable rely,
- `lo_suppkey` bigint not null disable rely,
- `lo_orderdate` bigint not null disable rely,
- `lo_ordpriority` string,
- `lo_shippriority` string,
- `lo_quantity` double,
- `lo_extendedprice` double,
- `lo_ordtotalprice` double,
- `lo_discount` double,
- `lo_revenue` double,
- `lo_supplycost` double,
- `lo_tax` double,
- `lo_commitdate` bigint,
- `lo_shipmode` string,
- primary key (`lo_orderkey`) disable rely,
- constraint fk1 foreign key (`lo_custkey`) references `customer`(`c_custkey`) disable rely,
- constraint fk2 foreign key (`lo_orderdate`) references `dates`(`d_datekey`) disable rely,
- constraint fk3 foreign key (`lo_partkey`) references `ssb_part`(`p_partkey`) disable rely,
- constraint fk4 foreign key (`lo_suppkey`) references `supplier`(`s_suppkey`) disable rely)
-STORED AS ORC
-TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@lineorder
-POSTHOOK: query: CREATE TABLE `lineorder`(
- `lo_orderkey` bigint,
- `lo_linenumber` int,
- `lo_custkey` bigint not null disable rely,
- `lo_partkey` bigint not null disable rely,
- `lo_suppkey` bigint not null disable rely,
- `lo_orderdate` bigint not null disable rely,
- `lo_ordpriority` string,
- `lo_shippriority` string,
- `lo_quantity` double,
- `lo_extendedprice` double,
- `lo_ordtotalprice` double,
- `lo_discount` double,
- `lo_revenue` double,
- `lo_supplycost` double,
- `lo_tax` double,
- `lo_commitdate` bigint,
- `lo_shipmode` string,
- primary key (`lo_orderkey`) disable rely,
- constraint fk1 foreign key (`lo_custkey`) references `customer`(`c_custkey`) disable rely,
- constraint fk2 foreign key (`lo_orderdate`) references `dates`(`d_datekey`) disable rely,
- constraint fk3 foreign key (`lo_partkey`) references `ssb_part`(`p_partkey`) disable rely,
- constraint fk4 foreign key (`lo_suppkey`) references `supplier`(`s_suppkey`) disable rely)
-STORED AS ORC
-TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@lineorder
-PREHOOK: query: INSERT INTO `lineorder`
-SELECT * FROM `lineorder_ext`
-PREHOOK: type: QUERY
-PREHOOK: Input: default@lineorder_ext
-PREHOOK: Output: default@lineorder
-POSTHOOK: query: INSERT INTO `lineorder`
-SELECT * FROM `lineorder_ext`
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@lineorder_ext
-POSTHOOK: Output: default@lineorder
-POSTHOOK: Lineage: lineorder.lo_commitdate SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_commitdate, type:bigint, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_custkey SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_custkey, type:bigint, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_discount SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_discount, type:double, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_extendedprice SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_extendedprice, type:double, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_linenumber SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_linenumber, type:int, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_orderdate SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_orderdate, type:bigint, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_orderkey SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_orderkey, type:bigint, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_ordpriority SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_ordpriority, type:string, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_ordtotalprice SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_ordtotalprice, type:double, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_partkey SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_partkey, type:bigint, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_quantity SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_quantity, type:double, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_revenue SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_revenue, type:double, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_shipmode SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_shipmode, type:string, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_shippriority SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_shippriority, type:string, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_suppkey SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_suppkey, type:bigint, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_supplycost SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_supplycost, type:double, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_tax SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_tax, type:double, comment:null), ]
-PREHOOK: query: analyze table customer compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@customer
-PREHOOK: Output: default@customer
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table customer compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@customer
-POSTHOOK: Output: default@customer
-#### A masked pattern was here ####
-PREHOOK: query: analyze table dates compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dates
-PREHOOK: Output: default@dates
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table dates compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dates
-POSTHOOK: Output: default@dates
-#### A masked pattern was here ####
-PREHOOK: query: analyze table ssb_part compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@ssb_part
-PREHOOK: Output: default@ssb_part
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table ssb_part compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@ssb_part
-POSTHOOK: Output: default@ssb_part
-#### A masked pattern was here ####
-PREHOOK: query: analyze table supplier compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@supplier
-PREHOOK: Output: default@supplier
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table supplier compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@supplier
-POSTHOOK: Output: default@supplier
-#### A masked pattern was here ####
-PREHOOK: query: analyze table lineorder compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@lineorder
-PREHOOK: Output: default@lineorder
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table lineorder compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@lineorder
-POSTHOOK: Output: default@lineorder
-#### A masked pattern was here ####
-PREHOOK: query: CREATE MATERIALIZED VIEW `ssb_mv` ENABLE REWRITE
-AS
-SELECT
- cast(d_year || '-' || d_monthnuminyear || '-' || d_daynuminmonth as timestamp) as `__time`,
- c_city,
- c_nation,
- c_region,
- cast(d_weeknuminyear as string) d_weeknuminyear,
- cast(d_year as string) d_year,
- d_yearmonth,
- cast(d_yearmonthnum as string) d_yearmonthnum,
- cast(lo_discount as string) lo_discount,
- cast(lo_quantity as string) lo_quantity,
- p_brand1,
- p_category,
- p_mfgr,
- s_city,
- s_nation,
- s_region,
- lo_revenue,
- lo_extendedprice * lo_discount discounted_price,
- lo_revenue - lo_supplycost net_revenue
-FROM
- customer, dates, lineorder, ssb_part, supplier
-where
- lo_orderdate = d_datekey
- and lo_partkey = p_partkey
- and lo_suppkey = s_suppkey
- and lo_custkey = c_custkey
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@customer
-PREHOOK: Input: default@dates
-PREHOOK: Input: default@lineorder
-PREHOOK: Input: default@ssb_part
-PREHOOK: Input: default@supplier
-PREHOOK: Output: database:default
-PREHOOK: Output: default@ssb_mv
-POSTHOOK: query: CREATE MATERIALIZED VIEW `ssb_mv` ENABLE REWRITE
-AS
-SELECT
- cast(d_year || '-' || d_monthnuminyear || '-' || d_daynuminmonth as timestamp) as `__time`,
- c_city,
- c_nation,
- c_region,
- cast(d_weeknuminyear as string) d_weeknuminyear,
- cast(d_year as string) d_year,
- d_yearmonth,
- cast(d_yearmonthnum as string) d_yearmonthnum,
- cast(lo_discount as string) lo_discount,
- cast(lo_quantity as string) lo_quantity,
- p_brand1,
- p_category,
- p_mfgr,
- s_city,
- s_nation,
- s_region,
- lo_revenue,
- lo_extendedprice * lo_discount discounted_price,
- lo_revenue - lo_supplycost net_revenue
-FROM
- customer, dates, lineorder, ssb_part, supplier
-where
- lo_orderdate = d_datekey
- and lo_partkey = p_partkey
- and lo_suppkey = s_suppkey
- and lo_custkey = c_custkey
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@customer
-POSTHOOK: Input: default@dates
-POSTHOOK: Input: default@lineorder
-POSTHOOK: Input: default@ssb_part
-POSTHOOK: Input: default@supplier
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@ssb_mv
-PREHOOK: query: explain
-select
- sum(lo_extendedprice*lo_discount) as revenue
-from
- lineorder, dates
-where
- lo_orderdate = d_datekey
- and d_year = 1993
- and lo_discount between 1 and 3
- and lo_quantity < 25
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
- sum(lo_extendedprice*lo_discount) as revenue
-from
- lineorder, dates
-where
- lo_orderdate = d_datekey
- and d_year = 1993
- and lo_discount between 1 and 3
- and lo_quantity < 25
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.ssb_mv
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Filter Operator
- predicate: ((UDFToDouble(lo_quantity) < 25.0D) and (UDFToInteger(d_year) = 1993) and UDFToDouble(lo_discount) BETWEEN 1.0D AND 3.0D) (type: boolean)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: discounted_price (type: double)
- outputColumnNames: discounted_price
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Group By Operator
- aggregations: sum(discounted_price)
- mode: hash
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 8 Basic stats: PARTIAL Column stats: NONE
- Reduce Output Operator
- sort order:
- Statistics: Num rows: 1 Data size: 8 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col0 (type: double)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- mode: mergepartial
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 8 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 8 Basic stats: PARTIAL Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
- sum(lo_extendedprice*lo_discount) as revenue
-from
- lineorder, dates
-where
- lo_orderdate = d_datekey
- and d_yearmonthnum = 199401
- and lo_discount between 4 and 6
- and lo_quantity between 26 and 35
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
- sum(lo_extendedprice*lo_discount) as revenue
-from
- lineorder, dates
-where
- lo_orderdate = d_datekey
- and d_yearmonthnum = 199401
- and lo_discount between 4 and 6
- and lo_quantity between 26 and 35
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.ssb_mv
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Filter Operator
- predicate: ((UDFToInteger(d_yearmonthnum) = 199401) and UDFToDouble(lo_discount) BETWEEN 4.0D AND 6.0D and UDFToDouble(lo_quantity) BETWEEN 26.0D AND 35.0D) (type: boolean)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: discounted_price (type: double)
- outputColumnNames: discounted_price
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Group By Operator
- aggregations: sum(discounted_price)
- mode: hash
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 8 Basic stats: PARTIAL Column stats: NONE
- Reduce Output Operator
- sort order:
- Statistics: Num rows: 1 Data size: 8 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col0 (type: double)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- mode: mergepartial
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 8 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 8 Basic stats: PARTIAL Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
- sum(lo_extendedprice*lo_discount) as revenue
-from
- lineorder, dates
-where
- lo_orderdate = d_datekey
- and d_weeknuminyear = 6
- and d_year = 1994
- and lo_discount between 5 and 7
- and lo_quantity between 26 and 35
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
- sum(lo_extendedprice*lo_discount) as revenue
-from
- lineorder, dates
-where
- lo_orderdate = d_datekey
- and d_weeknuminyear = 6
- and d_year = 1994
- and lo_discount between 5 and 7
- and lo_quantity between 26 and 35
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.ssb_mv
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Filter Operator
- predicate: ((UDFToInteger(d_weeknuminyear) = 6) and (UDFToInteger(d_year) = 1994) and UDFToDouble(lo_discount) BETWEEN 5.0D AND 7.0D and UDFToDouble(lo_quantity) BETWEEN 26.0D AND 35.0D) (type: boolean)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: discounted_price (type: double)
- outputColumnNames: discounted_price
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Group By Operator
- aggregations: sum(discounted_price)
- mode: hash
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 8 Basic stats: PARTIAL Column stats: NONE
- Reduce Output Operator
- sort order:
- Statistics: Num rows: 1 Data size: 8 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col0 (type: double)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- mode: mergepartial
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 8 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 8 Basic stats: PARTIAL Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
- sum(lo_revenue) as lo_revenue, d_year, p_brand1
-from
- lineorder, dates, ssb_part, supplier
-where
- lo_orderdate = d_datekey
- and lo_partkey = p_partkey
- and lo_suppkey = s_suppkey
- and p_category = 'MFGR#12'
- and s_region = 'AMERICA'
-group by
- d_year, p_brand1
-order by
- d_year, p_brand1
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
- sum(lo_revenue) as lo_revenue, d_year, p_brand1
-from
- lineorder, dates, ssb_part, supplier
-where
- lo_orderdate = d_datekey
- and lo_partkey = p_partkey
- and lo_suppkey = s_suppkey
- and p_category = 'MFGR#12'
- and s_region = 'AMERICA'
-group by
- d_year, p_brand1
-order by
- d_year, p_brand1
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.ssb_mv
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Filter Operator
- predicate: ((p_category = 'MFGR#12') and (s_region = 'AMERICA')) (type: boolean)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: UDFToInteger(d_year) (type: int), p_brand1 (type: string), lo_revenue (type: double)
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Group By Operator
- aggregations: sum(_col2)
- keys: _col0 (type: int), _col1 (type: string)
- mode: hash
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: string)
- sort order: ++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: string)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col2 (type: double)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: int), KEY._col1 (type: string)
- mode: mergepartial
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: _col2 (type: double), _col0 (type: int), _col1 (type: string)
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col1 (type: int), _col2 (type: string)
- sort order: ++
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col0 (type: double)
- Reduce Operator Tree:
- Select Operator
- expressions: VALUE._col0 (type: double), KEY.reducesinkkey0 (type: int), KEY.reducesinkkey1 (type: string)
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
- sum(lo_revenue) as lo_revenue, d_year, p_brand1
-from
- lineorder, dates, ssb_part, supplier
-where
- lo_orderdate = d_datekey
- and lo_partkey = p_partkey
- and lo_suppkey = s_suppkey
- and p_brand1 between 'MFGR#2221' and 'MFGR#2228'
- and s_region = 'ASIA'
-group by
- d_year, p_brand1
-order by
- d_year, p_brand1
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
- sum(lo_revenue) as lo_revenue, d_year, p_brand1
-from
- lineorder, dates, ssb_part, supplier
-where
- lo_orderdate = d_datekey
- and lo_partkey = p_partkey
- and lo_suppkey = s_suppkey
- and p_brand1 between 'MFGR#2221' and 'MFGR#2228'
- and s_region = 'ASIA'
-group by
- d_year, p_brand1
-order by
- d_year, p_brand1
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.ssb_mv
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Filter Operator
- predicate: ((s_region = 'ASIA') and p_brand1 BETWEEN 'MFGR#2221' AND 'MFGR#2228') (type: boolean)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: UDFToInteger(d_year) (type: int), p_brand1 (type: string), lo_revenue (type: double)
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Group By Operator
- aggregations: sum(_col2)
- keys: _col0 (type: int), _col1 (type: string)
- mode: hash
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: string)
- sort order: ++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: string)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col2 (type: double)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: int), KEY._col1 (type: string)
- mode: mergepartial
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: _col2 (type: double), _col0 (type: int), _col1 (type: string)
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col1 (type: int), _col2 (type: string)
- sort order: ++
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col0 (type: double)
- Reduce Operator Tree:
- Select Operator
- expressions: VALUE._col0 (type: double), KEY.reducesinkkey0 (type: int), KEY.reducesinkkey1 (type: string)
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
- sum(lo_revenue) as lo_revenue, d_year, p_brand1
-from
- lineorder, dates, ssb_part, supplier
-where
- lo_orderdate = d_datekey
- and lo_partkey = p_partkey
- and lo_suppkey = s_suppkey
- and p_brand1 = 'MFGR#2239'
- and s_region = 'EUROPE'
-group by
- d_year, p_brand1
-order by
- d_year, p_brand1
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
- sum(lo_revenue) as lo_revenue, d_year, p_brand1
-from
- lineorder, dates, ssb_part, supplier
-where
- lo_orderdate = d_datekey
- and lo_partkey = p_partkey
- and lo_suppkey = s_suppkey
- and p_brand1 = 'MFGR#2239'
- and s_region = 'EUROPE'
-group by
- d_year, p_brand1
-order by
- d_year, p_brand1
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.ssb_mv
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Filter Operator
- predicate: ((p_brand1 = 'MFGR#2239') and (s_region = 'EUROPE')) (type: boolean)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: UDFToInteger(d_year) (type: int), lo_revenue (type: double)
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Group By Operator
- aggregations: sum(_col1)
- keys: _col0 (type: int)
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col1 (type: double)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: int)
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: _col1 (type: double), _col0 (type: int)
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col1 (type: int)
- sort order: +
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col0 (type: double)
- Reduce Operator Tree:
- Select Operator
- expressions: VALUE._col0 (type: double), KEY.reducesinkkey0 (type: int), 'MFGR#2239' (type: string)
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
- c_nation, s_nation, d_year,
- sum(lo_revenue) as lo_revenue
-from
- customer, lineorder, supplier, dates
-where
- lo_custkey = c_custkey
- and lo_suppkey = s_suppkey
- and lo_orderdate = d_datekey
- and c_region = 'ASIA'
- and s_region = 'ASIA'
- and d_year >= 1992 and d_year <= 1997
-group by
- c_nation, s_nation, d_year
-order by
- d_year asc, lo_revenue desc
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
- c_nation, s_nation, d_year,
- sum(lo_revenue) as lo_revenue
-from
- customer, lineorder, supplier, dates
-where
- lo_custkey = c_custkey
- and lo_suppkey = s_suppkey
- and lo_orderdate = d_datekey
- and c_region = 'ASIA'
- and s_region = 'ASIA'
- and d_year >= 1992 and d_year <= 1997
-group by
- c_nation, s_nation, d_year
-order by
- d_year asc, lo_revenue desc
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.ssb_mv
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Filter Operator
- predicate: ((UDFToInteger(d_year) <= 1997) and (UDFToInteger(d_year) >= 1992) and (c_region = 'ASIA') and (s_region = 'ASIA')) (type: boolean)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: c_nation (type: string), s_nation (type: string), UDFToInteger(d_year) (type: int), lo_revenue (type: double)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Group By Operator
- aggregations: sum(_col3)
- keys: _col2 (type: int), _col0 (type: string), _col1 (type: string)
- mode: hash
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- sort order: +++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col3 (type: double)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: int), KEY._col1 (type: string), KEY._col2 (type: string)
- mode: mergepartial
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: _col1 (type: string), _col2 (type: string), _col0 (type: int), _col3 (type: double)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col2 (type: int), _col3 (type: double)
- sort order: +-
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col0 (type: string), _col1 (type: string)
- Reduce Operator Tree:
- Select Operator
- expressions: VALUE._col0 (type: string), VALUE._col1 (type: string), KEY.reducesinkkey0 (type: int), KEY.reducesinkkey1 (type: double)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
- c_city, s_city, d_year, sum(lo_revenue) as lo_revenue
-from
- customer, lineorder, supplier, dates
-where
- lo_custkey = c_custkey
- and lo_suppkey = s_suppkey
- and lo_orderdate = d_datekey
- and c_nation = 'UNITED STATES'
- and s_nation = 'UNITED STATES'
- and d_year >= 1992 and d_year <= 1997
-group by
- c_city, s_city, d_year
-order by
- d_year asc, lo_revenue desc
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
- c_city, s_city, d_year, sum(lo_revenue) as lo_revenue
-from
- customer, lineorder, supplier, dates
-where
- lo_custkey = c_custkey
- and lo_suppkey = s_suppkey
- and lo_orderdate = d_datekey
- and c_nation = 'UNITED STATES'
- and s_nation = 'UNITED STATES'
- and d_year >= 1992 and d_year <= 1997
-group by
- c_city, s_city, d_year
-order by
- d_year asc, lo_revenue desc
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.ssb_mv
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Filter Operator
- predicate: ((UDFToInteger(d_year) <= 1997) and (UDFToInteger(d_year) >= 1992) and (c_nation = 'UNITED STATES') and (s_nation = 'UNITED STATES')) (type: boolean)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: c_city (type: string), s_city (type: string), UDFToInteger(d_year) (type: int), lo_revenue (type: double)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Group By Operator
- aggregations: sum(_col3)
- keys: _col2 (type: int), _col0 (type: string), _col1 (type: string)
- mode: hash
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- sort order: +++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col3 (type: double)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: int), KEY._col1 (type: string), KEY._col2 (type: string)
- mode: mergepartial
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: _col1 (type: string), _col2 (type: string), _col0 (type: int), _col3 (type: double)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col2 (type: int), _col3 (type: double)
- sort order: +-
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col0 (type: string), _col1 (type: string)
- Reduce Operator Tree:
- Select Operator
- expressions: VALUE._col0 (type: string), VALUE._col1 (type: string), KEY.reducesinkkey0 (type: int), KEY.reducesinkkey1 (type: double)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
- c_city, s_city, d_year, sum(lo_revenue) as lo_revenue
-from
- customer, lineorder, supplier, dates
-where
- lo_custkey = c_custkey
- and lo_suppkey = s_suppkey
- and lo_orderdate = d_datekey
- and (c_city='UNITED KI1' or c_city='UNITED KI5')
- and (s_city='UNITED KI1' or s_city='UNITED KI5')
- and d_year >= 1992 and d_year <= 1997
-group by
- c_city, s_city, d_year
-order by
- d_year asc, lo_revenue desc
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
- c_city, s_city, d_year, sum(lo_revenue) as lo_revenue
-from
- customer, lineorder, supplier, dates
-where
- lo_custkey = c_custkey
- and lo_suppkey = s_suppkey
- and lo_orderdate = d_datekey
- and (c_city='UNITED KI1' or c_city='UNITED KI5')
- and (s_city='UNITED KI1' or s_city='UNITED KI5')
- and d_year >= 1992 and d_year <= 1997
-group by
- c_city, s_city, d_year
-order by
- d_year asc, lo_revenue desc
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.ssb_mv
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Filter Operator
- predicate: (((c_city = 'UNITED KI1') or (c_city = 'UNITED KI5')) and ((s_city = 'UNITED KI1') or (s_city = 'UNITED KI5')) and (UDFToInteger(d_year) <= 1997) and (UDFToInteger(d_year) >= 1992)) (type: boolean)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: c_city (type: string), s_city (type: string), UDFToInteger(d_year) (type: int), lo_revenue (type: double)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Group By Operator
- aggregations: sum(_col3)
- keys: _col2 (type: int), _col0 (type: string), _col1 (type: string)
- mode: hash
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- sort order: +++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col3 (type: double)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: int), KEY._col1 (type: string), KEY._col2 (type: string)
- mode: mergepartial
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: _col1 (type: string), _col2 (type: string), _col0 (type: int), _col3 (type: double)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col2 (type: int), _col3 (type: double)
- sort order: +-
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col0 (type: string), _col1 (type: string)
- Reduce Operator Tree:
- Select Operator
- expressions: VALUE._col0 (type: string), VALUE._col1 (type: string), KEY.reducesinkkey0 (type: int), KEY.reducesinkkey1 (type: double)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
- c_city, s_city, d_year, sum(lo_revenue) as lo_revenue
-from
- customer, lineorder, supplier, dates
-where
- lo_custkey = c_custkey
- and lo_suppkey = s_suppkey
- and lo_orderdate = d_datekey
- and (c_city='UNITED KI1' or c_city='UNITED KI5')
- and (s_city='UNITED KI1' or s_city='UNITED KI5')
- and d_yearmonth = 'Dec1997'
-group by
- c_city, s_city, d_year
-order by
- d_year asc, lo_revenue desc
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
- c_city, s_city, d_year, sum(lo_revenue) as lo_revenue
-from
- customer, lineorder, supplier, dates
-where
- lo_custkey = c_custkey
- and lo_suppkey = s_suppkey
- and lo_orderdate = d_datekey
- and (c_city='UNITED KI1' or c_city='UNITED KI5')
- and (s_city='UNITED KI1' or s_city='UNITED KI5')
- and d_yearmonth = 'Dec1997'
-group by
- c_city, s_city, d_year
-order by
- d_year asc, lo_revenue desc
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.ssb_mv
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Filter Operator
- predicate: (((c_city = 'UNITED KI1') or (c_city = 'UNITED KI5')) and ((s_city = 'UNITED KI1') or (s_city = 'UNITED KI5')) and (d_yearmonth = 'Dec1997')) (type: boolean)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: c_city (type: string), s_city (type: string), UDFToInteger(d_year) (type: int), lo_revenue (type: double)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Group By Operator
- aggregations: sum(_col3)
- keys: _col2 (type: int), _col0 (type: string), _col1 (type: string)
- mode: hash
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- sort order: +++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col3 (type: double)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: int), KEY._col1 (type: string), KEY._col2 (type: string)
- mode: mergepartial
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: _col1 (type: string), _col2 (type: string), _col0 (type: int), _col3 (type: double)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col2 (type: int), _col3 (type: double)
- sort order: +-
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col0 (type: string), _col1 (type: string)
- Reduce Operator Tree:
- Select Operator
- expressions: VALUE._col0 (type: string), VALUE._col1 (type: string), KEY.reducesinkkey0 (type: int), KEY.reducesinkkey1 (type: double)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
- d_year, c_nation,
- sum(lo_revenue - lo_supplycost) as profit
-from
- dates, customer, supplier, ssb_part, lineorder
-where
- lo_custkey = c_custkey
- and lo_suppkey = s_suppkey
- and lo_partkey = p_partkey
- and lo_orderdate = d_datekey
- and c_region = 'AMERICA'
- and s_region = 'AMERICA'
- and (p_mfgr = 'MFGR#1' or p_mfgr = 'MFGR#2')
-group by
- d_year, c_nation
-order by
- d_year, c_nation
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
- d_year, c_nation,
- sum(lo_revenue - lo_supplycost) as profit
-from
- dates, customer, supplier, ssb_part, lineorder
-where
- lo_custkey = c_custkey
- and lo_suppkey = s_suppkey
- and lo_partkey = p_partkey
- and lo_orderdate = d_datekey
- and c_region = 'AMERICA'
- and s_region = 'AMERICA'
- and (p_mfgr = 'MFGR#1' or p_mfgr = 'MFGR#2')
-group by
- d_year, c_nation
-order by
- d_year, c_nation
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.ssb_mv
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Filter Operator
- predicate: (((p_mfgr = 'MFGR#1') or (p_mfgr = 'MFGR#2')) and (c_region = 'AMERICA') and (s_region = 'AMERICA')) (type: boolean)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: UDFToInteger(d_year) (type: int), c_nation (type: string), net_revenue (type: double)
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Group By Operator
- aggregations: sum(_col2)
- keys: _col0 (type: int), _col1 (type: string)
- mode: hash
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: string)
- sort order: ++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: string)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col2 (type: double)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: int), KEY._col1 (type: string)
- mode: mergepartial
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: string)
- sort order: ++
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col2 (type: double)
- Reduce Operator Tree:
- Select Operator
- expressions: KEY.reducesinkkey0 (type: int), KEY.reducesinkkey1 (type: string), VALUE._col0 (type: double)
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
- d_year, s_nation, p_category,
- sum(lo_revenue - lo_supplycost) as profit
-from
- dates, customer, supplier, ssb_part, lineorder
-where
- lo_custkey = c_custkey
- and lo_suppkey = s_suppkey
- and lo_partkey = p_partkey
- and lo_orderdate = d_datekey
- and c_region = 'AMERICA'
- and s_region = 'AMERICA'
- and (d_year = 1997 or d_year = 1998)
- and (p_mfgr = 'MFGR#1' or p_mfgr = 'MFGR#2')
-group by
- d_year, s_nation, p_category
-order by
- d_year, s_nation, p_category
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
- d_year, s_nation, p_category,
- sum(lo_revenue - lo_supplycost) as profit
-from
- dates, customer, supplier, ssb_part, lineorder
-where
- lo_custkey = c_custkey
- and lo_suppkey = s_suppkey
- and lo_partkey = p_partkey
- and lo_orderdate = d_datekey
- and c_region = 'AMERICA'
- and s_region = 'AMERICA'
- and (d_year = 1997 or d_year = 1998)
- and (p_mfgr = 'MFGR#1' or p_mfgr = 'MFGR#2')
-group by
- d_year, s_nation, p_category
-order by
- d_year, s_nation, p_category
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.ssb_mv
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Filter Operator
- predicate: (((UDFToInteger(d_year) = 1997) or (UDFToInteger(d_year) = 1998)) and ((p_mfgr = 'MFGR#1') or (p_mfgr = 'MFGR#2')) and (c_region = 'AMERICA') and (s_region = 'AMERICA')) (type: boolean)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: UDFToInteger(d_year) (type: int), s_nation (type: string), p_category (type: string), net_revenue (type: double)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Group By Operator
- aggregations: sum(_col3)
- keys: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- mode: hash
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- sort order: +++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col3 (type: double)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: int), KEY._col1 (type: string), KEY._col2 (type: string)
- mode: mergepartial
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- sort order: +++
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col3 (type: double)
- Reduce Operator Tree:
- Select Operator
- expressions: KEY.reducesinkkey0 (type: int), KEY.reducesinkkey1 (type: string), KEY.reducesinkkey2 (type: string), VALUE._col0 (type: double)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
- d_year, s_city, p_brand1,
- sum(lo_revenue - lo_supplycost) as profit
-from
- dates, customer, supplier, ssb_part, lineorder
-where
- lo_custkey = c_custkey
- and lo_suppkey = s_suppkey
- and lo_partkey = p_partkey
- and lo_orderdate = d_datekey
- and c_region = 'AMERICA'
- and s_nation = 'UNITED STATES'
- and (d_year = 1997 or d_year = 1998)
- and p_category = 'MFGR#14'
-group by
- d_year, s_city, p_brand1
-order by
- d_year, s_city, p_brand1
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
- d_year, s_city, p_brand1,
- sum(lo_revenue - lo_supplycost) as profit
-from
- dates, customer, supplier, ssb_part, lineorder
-where
- lo_custkey = c_custkey
- and lo_suppkey = s_suppkey
- and lo_partkey = p_partkey
- and lo_orderdate = d_datekey
- and c_region = 'AMERICA'
- and s_nation = 'UNITED STATES'
- and (d_year = 1997 or d_year = 1998)
- and p_category = 'MFGR#14'
-group by
- d_year, s_city, p_brand1
-order by
- d_year, s_city, p_brand1
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.ssb_mv
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Filter Operator
- predicate: (((UDFToInteger(d_year) = 1997) or (UDFToInteger(d_year) = 1998)) and (c_region = 'AMERICA') and (p_category = 'MFGR#14') and (s_nation = 'UNITED STATES')) (type: boolean)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: UDFToInteger(d_year) (type: int), s_city (type: string), p_brand1 (type: string), net_revenue (type: double)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Group By Operator
- aggregations: sum(_col3)
- keys: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- mode: hash
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- sort order: +++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col3 (type: double)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: int), KEY._col1 (type: string), KEY._col2 (type: string)
- mode: mergepartial
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- sort order: +++
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col3 (type: double)
- Reduce Operator Tree:
- Select Operator
- expressions: KEY.reducesinkkey0 (type: int), KEY.reducesinkkey1 (type: string), KEY.reducesinkkey2 (type: string), VALUE._col0 (type: double)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: DROP MATERIALIZED VIEW `ssb_mv`
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@ssb_mv
-PREHOOK: Output: default@ssb_mv
-POSTHOOK: query: DROP MATERIALIZED VIEW `ssb_mv`
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@ssb_mv
-POSTHOOK: Output: default@ssb_mv
[13/24] hive git commit: HIVE-18839: Implement incremental rebuild
for materialized views (only insert operations in source tables) (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/materialized_view_create_rewrite_multi_db.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/materialized_view_create_rewrite_multi_db.q.out b/ql/src/test/results/clientpositive/materialized_view_create_rewrite_multi_db.q.out
deleted file mode 100644
index 32b408f..0000000
--- a/ql/src/test/results/clientpositive/materialized_view_create_rewrite_multi_db.q.out
+++ /dev/null
@@ -1,175 +0,0 @@
-PREHOOK: query: create database db1
-PREHOOK: type: CREATEDATABASE
-PREHOOK: Output: database:db1
-POSTHOOK: query: create database db1
-POSTHOOK: type: CREATEDATABASE
-POSTHOOK: Output: database:db1
-PREHOOK: query: use db1
-PREHOOK: type: SWITCHDATABASE
-PREHOOK: Input: database:db1
-POSTHOOK: query: use db1
-POSTHOOK: type: SWITCHDATABASE
-POSTHOOK: Input: database:db1
-PREHOOK: query: create table cmv_basetable (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:db1
-PREHOOK: Output: db1@cmv_basetable
-POSTHOOK: query: create table cmv_basetable (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:db1
-POSTHOOK: Output: db1@cmv_basetable
-PREHOOK: query: insert into cmv_basetable values
- (1, 'alfred', 10.30, 2),
- (2, 'bob', 3.14, 3),
- (2, 'bonnie', 172342.2, 3),
- (3, 'calvin', 978.76, 3),
- (3, 'charlie', 9.8, 1)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: db1@cmv_basetable
-POSTHOOK: query: insert into cmv_basetable values
- (1, 'alfred', 10.30, 2),
- (2, 'bob', 3.14, 3),
- (2, 'bonnie', 172342.2, 3),
- (3, 'calvin', 978.76, 3),
- (3, 'charlie', 9.8, 1)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: db1@cmv_basetable
-POSTHOOK: Lineage: cmv_basetable.a SCRIPT []
-POSTHOOK: Lineage: cmv_basetable.b SCRIPT []
-POSTHOOK: Lineage: cmv_basetable.c SCRIPT []
-POSTHOOK: Lineage: cmv_basetable.d SCRIPT []
-PREHOOK: query: analyze table cmv_basetable compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: db1@cmv_basetable
-PREHOOK: Output: db1@cmv_basetable
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table cmv_basetable compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: db1@cmv_basetable
-POSTHOOK: Output: db1@cmv_basetable
-#### A masked pattern was here ####
-PREHOOK: query: create database db2
-PREHOOK: type: CREATEDATABASE
-PREHOOK: Output: database:db2
-POSTHOOK: query: create database db2
-POSTHOOK: type: CREATEDATABASE
-POSTHOOK: Output: database:db2
-PREHOOK: query: use db2
-PREHOOK: type: SWITCHDATABASE
-PREHOOK: Input: database:db2
-POSTHOOK: query: use db2
-POSTHOOK: type: SWITCHDATABASE
-POSTHOOK: Input: database:db2
-PREHOOK: query: create materialized view cmv_mat_view enable rewrite
-as select a, b, c from db1.cmv_basetable where a = 2
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: db1@cmv_basetable
-PREHOOK: Output: database:db2
-PREHOOK: Output: db2@cmv_mat_view
-POSTHOOK: query: create materialized view cmv_mat_view enable rewrite
-as select a, b, c from db1.cmv_basetable where a = 2
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: db1@cmv_basetable
-POSTHOOK: Output: database:db2
-POSTHOOK: Output: db2@cmv_mat_view
-PREHOOK: query: select * from cmv_mat_view
-PREHOOK: type: QUERY
-PREHOOK: Input: db2@cmv_mat_view
-#### A masked pattern was here ####
-POSTHOOK: query: select * from cmv_mat_view
-POSTHOOK: type: QUERY
-POSTHOOK: Input: db2@cmv_mat_view
-#### A masked pattern was here ####
-2 bob 3.14
-2 bonnie 172342.20
-PREHOOK: query: show tblproperties cmv_mat_view
-PREHOOK: type: SHOW_TBLPROPERTIES
-POSTHOOK: query: show tblproperties cmv_mat_view
-POSTHOOK: type: SHOW_TBLPROPERTIES
-COLUMN_STATS_ACCURATE {"BASIC_STATS":"true"}
-numFiles 1
-numRows 2
-rawDataSize 408
-totalSize 453
-#### A masked pattern was here ####
-PREHOOK: query: create materialized view if not exists cmv_mat_view2 enable rewrite
-as select a, c from db1.cmv_basetable where a = 3
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: db1@cmv_basetable
-PREHOOK: Output: database:db2
-PREHOOK: Output: db2@cmv_mat_view2
-POSTHOOK: query: create materialized view if not exists cmv_mat_view2 enable rewrite
-as select a, c from db1.cmv_basetable where a = 3
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: db1@cmv_basetable
-POSTHOOK: Output: database:db2
-POSTHOOK: Output: db2@cmv_mat_view2
-PREHOOK: query: select * from cmv_mat_view2
-PREHOOK: type: QUERY
-PREHOOK: Input: db2@cmv_mat_view2
-#### A masked pattern was here ####
-POSTHOOK: query: select * from cmv_mat_view2
-POSTHOOK: type: QUERY
-POSTHOOK: Input: db2@cmv_mat_view2
-#### A masked pattern was here ####
-3 978.76
-3 9.80
-PREHOOK: query: show tblproperties cmv_mat_view2
-PREHOOK: type: SHOW_TBLPROPERTIES
-POSTHOOK: query: show tblproperties cmv_mat_view2
-POSTHOOK: type: SHOW_TBLPROPERTIES
-COLUMN_STATS_ACCURATE {"BASIC_STATS":"true"}
-numFiles 1
-numRows 2
-rawDataSize 232
-totalSize 322
-#### A masked pattern was here ####
-PREHOOK: query: create database db3
-PREHOOK: type: CREATEDATABASE
-PREHOOK: Output: database:db3
-POSTHOOK: query: create database db3
-POSTHOOK: type: CREATEDATABASE
-POSTHOOK: Output: database:db3
-PREHOOK: query: use db3
-PREHOOK: type: SWITCHDATABASE
-PREHOOK: Input: database:db3
-POSTHOOK: query: use db3
-POSTHOOK: type: SWITCHDATABASE
-POSTHOOK: Input: database:db3
-PREHOOK: query: explain
-select a, c from db1.cmv_basetable where a = 3
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select a, c from db1.cmv_basetable where a = 3
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-0 is a root stage
-
-STAGE PLANS:
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- TableScan
- alias: db2.cmv_mat_view2
- Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: 3 (type: int), c (type: decimal(10,2))
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
- ListSink
-
-PREHOOK: query: select a, c from db1.cmv_basetable where a = 3
-PREHOOK: type: QUERY
-PREHOOK: Input: db1@cmv_basetable
-PREHOOK: Input: db2@cmv_mat_view2
-#### A masked pattern was here ####
-POSTHOOK: query: select a, c from db1.cmv_basetable where a = 3
-POSTHOOK: type: QUERY
-POSTHOOK: Input: db1@cmv_basetable
-POSTHOOK: Input: db2@cmv_mat_view2
-#### A masked pattern was here ####
-3 978.76
-3 9.80
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/materialized_view_create_rewrite_time_window.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/materialized_view_create_rewrite_time_window.q.out b/ql/src/test/results/clientpositive/materialized_view_create_rewrite_time_window.q.out
deleted file mode 100644
index bfbac3f..0000000
--- a/ql/src/test/results/clientpositive/materialized_view_create_rewrite_time_window.q.out
+++ /dev/null
@@ -1,830 +0,0 @@
-PREHOOK: query: create table cmv_basetable (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@cmv_basetable
-POSTHOOK: query: create table cmv_basetable (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@cmv_basetable
-PREHOOK: query: insert into cmv_basetable values
- (1, 'alfred', 10.30, 2),
- (2, 'bob', 3.14, 3),
- (2, 'bonnie', 172342.2, 3),
- (3, 'calvin', 978.76, 3),
- (3, 'charlie', 9.8, 1)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@cmv_basetable
-POSTHOOK: query: insert into cmv_basetable values
- (1, 'alfred', 10.30, 2),
- (2, 'bob', 3.14, 3),
- (2, 'bonnie', 172342.2, 3),
- (3, 'calvin', 978.76, 3),
- (3, 'charlie', 9.8, 1)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@cmv_basetable
-POSTHOOK: Lineage: cmv_basetable.a SCRIPT []
-POSTHOOK: Lineage: cmv_basetable.b SCRIPT []
-POSTHOOK: Lineage: cmv_basetable.c SCRIPT []
-POSTHOOK: Lineage: cmv_basetable.d SCRIPT []
-PREHOOK: query: analyze table cmv_basetable compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Output: default@cmv_basetable
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table cmv_basetable compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Output: default@cmv_basetable
-#### A masked pattern was here ####
-PREHOOK: query: create table cmv_basetable_2 (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@cmv_basetable_2
-POSTHOOK: query: create table cmv_basetable_2 (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@cmv_basetable_2
-PREHOOK: query: insert into cmv_basetable_2 values
- (1, 'alfred', 10.30, 2),
- (3, 'calvin', 978.76, 3)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@cmv_basetable_2
-POSTHOOK: query: insert into cmv_basetable_2 values
- (1, 'alfred', 10.30, 2),
- (3, 'calvin', 978.76, 3)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@cmv_basetable_2
-POSTHOOK: Lineage: cmv_basetable_2.a SCRIPT []
-POSTHOOK: Lineage: cmv_basetable_2.b SCRIPT []
-POSTHOOK: Lineage: cmv_basetable_2.c SCRIPT []
-POSTHOOK: Lineage: cmv_basetable_2.d SCRIPT []
-PREHOOK: query: analyze table cmv_basetable_2 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable_2
-PREHOOK: Output: default@cmv_basetable_2
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table cmv_basetable_2 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable_2
-POSTHOOK: Output: default@cmv_basetable_2
-#### A masked pattern was here ####
-PREHOOK: query: EXPLAIN
-CREATE MATERIALIZED VIEW cmv_mat_view TBLPROPERTIES('rewriting.time.window'='300s') AS
- SELECT cmv_basetable.a, cmv_basetable_2.c
- FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
- WHERE cmv_basetable_2.c > 10.0
- GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: query: EXPLAIN
-CREATE MATERIALIZED VIEW cmv_mat_view TBLPROPERTIES('rewriting.time.window'='300s') AS
- SELECT cmv_basetable.a, cmv_basetable_2.c
- FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
- WHERE cmv_basetable_2.c > 10.0
- GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
- Stage-5 depends on stages: Stage-0
- Stage-3 depends on stages: Stage-5
- Stage-6 depends on stages: Stage-3
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: cmv_basetable
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: a is not null (type: boolean)
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- TableScan
- alias: cmv_basetable_2
- Statistics: Num rows: 2 Data size: 484 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: ((c > 10) and a is not null) (type: boolean)
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int), c (type: decimal(10,2))
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- value expressions: _col1 (type: decimal(10,2))
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- keys:
- 0 _col0 (type: int)
- 1 _col0 (type: int)
- outputColumnNames: _col0, _col2
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- Group By Operator
- keys: _col0 (type: int), _col2 (type: decimal(10,2))
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
- sort order: ++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- Reduce Operator Tree:
- Group By Operator
- keys: KEY._col0 (type: int), KEY._col1 (type: decimal(10,2))
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
- output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
- serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
- name: default.cmv_mat_view
-
- Stage: Stage-0
- Move Operator
- files:
- hdfs directory: true
-#### A masked pattern was here ####
-
- Stage: Stage-5
- Create View Operator:
- Create View
- columns: a int, c decimal(10,2)
- table properties:
- rewriting.time.window 300s
- expanded text: SELECT `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
- FROM `default`.`cmv_basetable` JOIN `default`.`cmv_basetable_2` ON (`cmv_basetable`.`a` = `cmv_basetable_2`.`a`)
- WHERE `cmv_basetable_2`.`c` > 10.0
- GROUP BY `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
- name: default.cmv_mat_view
- original text: SELECT cmv_basetable.a, cmv_basetable_2.c
- FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
- WHERE cmv_basetable_2.c > 10.0
- GROUP BY cmv_basetable.a, cmv_basetable_2.c
-
- Stage: Stage-3
- Stats Work
- Basic Stats Work:
-
- Stage: Stage-6
- Materialized View Work
-
-PREHOOK: query: CREATE MATERIALIZED VIEW cmv_mat_view TBLPROPERTIES('rewriting.time.window'='300s') AS
- SELECT cmv_basetable.a, cmv_basetable_2.c
- FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
- WHERE cmv_basetable_2.c > 10.0
- GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Input: default@cmv_basetable_2
-PREHOOK: Output: database:default
-PREHOOK: Output: default@cmv_mat_view
-POSTHOOK: query: CREATE MATERIALIZED VIEW cmv_mat_view TBLPROPERTIES('rewriting.time.window'='300s') AS
- SELECT cmv_basetable.a, cmv_basetable_2.c
- FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
- WHERE cmv_basetable_2.c > 10.0
- GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Input: default@cmv_basetable_2
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@cmv_mat_view
-PREHOOK: query: DESCRIBE FORMATTED cmv_mat_view
-PREHOOK: type: DESCTABLE
-PREHOOK: Input: default@cmv_mat_view
-POSTHOOK: query: DESCRIBE FORMATTED cmv_mat_view
-POSTHOOK: type: DESCTABLE
-POSTHOOK: Input: default@cmv_mat_view
-# col_name data_type comment
-a int
-c decimal(10,2)
-
-# Detailed Table Information
-Database: default
-#### A masked pattern was here ####
-Retention: 0
-#### A masked pattern was here ####
-Table Type: MATERIALIZED_VIEW
-Table Parameters:
- COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\"}
- numFiles 1
- numRows 2
- rawDataSize 232
- rewriting.time.window 300s
- totalSize 325
-#### A masked pattern was here ####
-
-# Storage Information
-SerDe Library: org.apache.hadoop.hive.ql.io.orc.OrcSerde
-InputFormat: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
-OutputFormat: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
-Compressed: No
-Num Buckets: -1
-Bucket Columns: []
-Sort Columns: []
-
-# View Information
-View Original Text: SELECT cmv_basetable.a, cmv_basetable_2.c
- FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
- WHERE cmv_basetable_2.c > 10.0
- GROUP BY cmv_basetable.a, cmv_basetable_2.c
-View Expanded Text: SELECT `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
- FROM `default`.`cmv_basetable` JOIN `default`.`cmv_basetable_2` ON (`cmv_basetable`.`a` = `cmv_basetable_2`.`a`)
- WHERE `cmv_basetable_2`.`c` > 10.0
- GROUP BY `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
-View Rewrite Enabled: No
-PREHOOK: query: EXPLAIN
-SELECT cmv_basetable.a
-FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: QUERY
-POSTHOOK: query: EXPLAIN
-SELECT cmv_basetable.a
-FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: cmv_basetable
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: a is not null (type: boolean)
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- TableScan
- alias: cmv_basetable_2
- Statistics: Num rows: 2 Data size: 484 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: ((c > 10.1) and a is not null) (type: boolean)
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int), c (type: decimal(10,2))
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- value expressions: _col1 (type: decimal(10,2))
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- keys:
- 0 _col0 (type: int)
- 1 _col0 (type: int)
- outputColumnNames: _col0, _col2
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- Group By Operator
- keys: _col0 (type: int), _col2 (type: decimal(10,2))
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
- sort order: ++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- Reduce Operator Tree:
- Group By Operator
- keys: KEY._col0 (type: int), KEY._col1 (type: decimal(10,2))
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: _col0 (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: SELECT cmv_basetable.a
-FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Input: default@cmv_basetable_2
-#### A masked pattern was here ####
-POSTHOOK: query: SELECT cmv_basetable.a
-FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Input: default@cmv_basetable_2
-#### A masked pattern was here ####
-1
-3
-PREHOOK: query: insert into cmv_basetable_2 values
- (3, 'charlie', 15.8, 1)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@cmv_basetable_2
-POSTHOOK: query: insert into cmv_basetable_2 values
- (3, 'charlie', 15.8, 1)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@cmv_basetable_2
-POSTHOOK: Lineage: cmv_basetable_2.a SCRIPT []
-POSTHOOK: Lineage: cmv_basetable_2.b SCRIPT []
-POSTHOOK: Lineage: cmv_basetable_2.c SCRIPT []
-POSTHOOK: Lineage: cmv_basetable_2.d SCRIPT []
-PREHOOK: query: analyze table cmv_basetable_2 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable_2
-PREHOOK: Output: default@cmv_basetable_2
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table cmv_basetable_2 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable_2
-POSTHOOK: Output: default@cmv_basetable_2
-#### A masked pattern was here ####
-PREHOOK: query: EXPLAIN
-ALTER MATERIALIZED VIEW cmv_mat_view ENABLE REWRITE
-PREHOOK: type: ALTER_MATERIALIZED_VIEW_REWRITE
-POSTHOOK: query: EXPLAIN
-ALTER MATERIALIZED VIEW cmv_mat_view ENABLE REWRITE
-POSTHOOK: type: ALTER_MATERIALIZED_VIEW_REWRITE
-STAGE DEPENDENCIES:
- Stage-0 is a root stage
-
-STAGE PLANS:
- Stage: Stage-0
- Alter Materialized View Operator:
- Alter Materialized View
- name: default.cmv_mat_view
- operation: UPDATE_REWRITE_FLAG
-
-PREHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view ENABLE REWRITE
-PREHOOK: type: ALTER_MATERIALIZED_VIEW_REWRITE
-PREHOOK: Input: default@cmv_mat_view
-PREHOOK: Output: default@cmv_mat_view
-POSTHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view ENABLE REWRITE
-POSTHOOK: type: ALTER_MATERIALIZED_VIEW_REWRITE
-POSTHOOK: Input: default@cmv_mat_view
-POSTHOOK: Output: default@cmv_mat_view
-PREHOOK: query: DESCRIBE FORMATTED cmv_mat_view
-PREHOOK: type: DESCTABLE
-PREHOOK: Input: default@cmv_mat_view
-POSTHOOK: query: DESCRIBE FORMATTED cmv_mat_view
-POSTHOOK: type: DESCTABLE
-POSTHOOK: Input: default@cmv_mat_view
-# col_name data_type comment
-a int
-c decimal(10,2)
-
-# Detailed Table Information
-Database: default
-#### A masked pattern was here ####
-Retention: 0
-#### A masked pattern was here ####
-Table Type: MATERIALIZED_VIEW
-Table Parameters:
- COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\"}
- numFiles 1
- numRows 2
- rawDataSize 232
- rewriting.time.window 300s
- totalSize 325
-#### A masked pattern was here ####
-
-# Storage Information
-SerDe Library: org.apache.hadoop.hive.ql.io.orc.OrcSerde
-InputFormat: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
-OutputFormat: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
-Compressed: No
-Num Buckets: -1
-Bucket Columns: []
-Sort Columns: []
-
-# View Information
-View Original Text: SELECT cmv_basetable.a, cmv_basetable_2.c
- FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
- WHERE cmv_basetable_2.c > 10.0
- GROUP BY cmv_basetable.a, cmv_basetable_2.c
-View Expanded Text: SELECT `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
- FROM `default`.`cmv_basetable` JOIN `default`.`cmv_basetable_2` ON (`cmv_basetable`.`a` = `cmv_basetable_2`.`a`)
- WHERE `cmv_basetable_2`.`c` > 10.0
- GROUP BY `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
-View Rewrite Enabled: Yes
-PREHOOK: query: EXPLAIN
-SELECT cmv_basetable.a
-FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: QUERY
-POSTHOOK: query: EXPLAIN
-SELECT cmv_basetable.a
-FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.cmv_mat_view
- Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: (c > 10.1) (type: boolean)
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: SELECT cmv_basetable.a
-FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Input: default@cmv_basetable_2
-PREHOOK: Input: default@cmv_mat_view
-#### A masked pattern was here ####
-POSTHOOK: query: SELECT cmv_basetable.a
-FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Input: default@cmv_basetable_2
-POSTHOOK: Input: default@cmv_mat_view
-#### A masked pattern was here ####
-1
-3
-PREHOOK: query: EXPLAIN
-ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
-PREHOOK: type: QUERY
-POSTHOOK: query: EXPLAIN
-ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
- Stage-3 depends on stages: Stage-0, Stage-4
- Stage-6 depends on stages: Stage-3
- Stage-4 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: cmv_basetable
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: a is not null (type: boolean)
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- TableScan
- alias: cmv_basetable_2
- Statistics: Num rows: 3 Data size: 727 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: ((c > 10) and a is not null) (type: boolean)
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int), c (type: decimal(10,2))
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- value expressions: _col1 (type: decimal(10,2))
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- keys:
- 0 _col0 (type: int)
- 1 _col0 (type: int)
- outputColumnNames: _col0, _col2
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- Group By Operator
- keys: _col0 (type: int), _col2 (type: decimal(10,2))
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
- sort order: ++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- Reduce Operator Tree:
- Group By Operator
- keys: KEY._col0 (type: int), KEY._col1 (type: decimal(10,2))
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
- output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
- serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
- name: default.cmv_mat_view
- Select Operator
- expressions: _col0 (type: int), _col1 (type: decimal(10,2))
- outputColumnNames: a, c
- Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE
- Group By Operator
- aggregations: compute_stats(a, 'hll'), compute_stats(c, 'hll')
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 1056 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-0
- Move Operator
- tables:
- replace: true
- table:
- input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
- output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
- serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
- name: default.cmv_mat_view
-
- Stage: Stage-3
- Stats Work
- Basic Stats Work:
- Column Stats Desc:
- Columns: a, c
- Column Types: int, decimal(10,2)
- Table: default.cmv_mat_view
-
- Stage: Stage-6
- Materialized View Work
-
- Stage: Stage-4
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- sort order:
- Statistics: Num rows: 1 Data size: 1056 Basic stats: COMPLETE Column stats: NONE
- value expressions: _col0 (type: struct<columntype:string,min:bigint,max:bigint,countnulls:bigint,bitvector:binary>), _col1 (type: struct<columntype:string,min:decimal(10,2),max:decimal(10,2),countnulls:bigint,bitvector:binary>)
- Reduce Operator Tree:
- Group By Operator
- aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1)
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 1088 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 1088 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
-PREHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Input: default@cmv_basetable_2
-PREHOOK: Output: default@cmv_mat_view
-POSTHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Input: default@cmv_basetable_2
-POSTHOOK: Output: default@cmv_mat_view
-POSTHOOK: Lineage: cmv_mat_view.a SIMPLE [(cmv_basetable)cmv_basetable.FieldSchema(name:a, type:int, comment:null), ]
-POSTHOOK: Lineage: cmv_mat_view.c SIMPLE [(cmv_basetable_2)cmv_basetable_2.FieldSchema(name:c, type:decimal(10,2), comment:null), ]
-PREHOOK: query: DESCRIBE FORMATTED cmv_mat_view
-PREHOOK: type: DESCTABLE
-PREHOOK: Input: default@cmv_mat_view
-POSTHOOK: query: DESCRIBE FORMATTED cmv_mat_view
-POSTHOOK: type: DESCTABLE
-POSTHOOK: Input: default@cmv_mat_view
-# col_name data_type comment
-a int
-c decimal(10,2)
-
-# Detailed Table Information
-Database: default
-#### A masked pattern was here ####
-Retention: 0
-#### A masked pattern was here ####
-Table Type: MATERIALIZED_VIEW
-Table Parameters:
- COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\"a\":\"true\",\"c\":\"true\"}}
- numFiles 1
- numRows 3
- rawDataSize 348
- rewriting.time.window 300s
- totalSize 332
-#### A masked pattern was here ####
-
-# Storage Information
-SerDe Library: org.apache.hadoop.hive.ql.io.orc.OrcSerde
-InputFormat: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
-OutputFormat: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
-Compressed: No
-Num Buckets: -1
-Bucket Columns: []
-Sort Columns: []
-
-# View Information
-View Original Text: SELECT cmv_basetable.a, cmv_basetable_2.c
- FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
- WHERE cmv_basetable_2.c > 10.0
- GROUP BY cmv_basetable.a, cmv_basetable_2.c
-View Expanded Text: SELECT `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
- FROM `default`.`cmv_basetable` JOIN `default`.`cmv_basetable_2` ON (`cmv_basetable`.`a` = `cmv_basetable_2`.`a`)
- WHERE `cmv_basetable_2`.`c` > 10.0
- GROUP BY `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
-View Rewrite Enabled: Yes
-PREHOOK: query: EXPLAIN
-SELECT cmv_basetable.a
-FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: QUERY
-POSTHOOK: query: EXPLAIN
-SELECT cmv_basetable.a
-FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.cmv_mat_view
- Statistics: Num rows: 3 Data size: 348 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: (c > 10.1) (type: boolean)
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: SELECT cmv_basetable.a
-FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Input: default@cmv_basetable_2
-PREHOOK: Input: default@cmv_mat_view
-#### A masked pattern was here ####
-POSTHOOK: query: SELECT cmv_basetable.a
-FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Input: default@cmv_basetable_2
-POSTHOOK: Input: default@cmv_mat_view
-#### A masked pattern was here ####
-1
-3
-3
-PREHOOK: query: drop materialized view cmv_mat_view
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@cmv_mat_view
-PREHOOK: Output: default@cmv_mat_view
-POSTHOOK: query: drop materialized view cmv_mat_view
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@cmv_mat_view
-POSTHOOK: Output: default@cmv_mat_view
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/materialized_view_rewrite_1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/materialized_view_rewrite_1.q.out b/ql/src/test/results/clientpositive/materialized_view_rewrite_1.q.out
deleted file mode 100644
index 75e828f..0000000
--- a/ql/src/test/results/clientpositive/materialized_view_rewrite_1.q.out
+++ /dev/null
@@ -1,1104 +0,0 @@
-PREHOOK: query: create table emps (
- empid int,
- deptno int,
- name varchar(256),
- salary float,
- commission int)
-stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@emps
-POSTHOOK: query: create table emps (
- empid int,
- deptno int,
- name varchar(256),
- salary float,
- commission int)
-stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@emps
-PREHOOK: query: insert into emps values (100, 10, 'Bill', 10000, 1000), (200, 20, 'Eric', 8000, 500),
- (150, 10, 'Sebastian', 7000, null), (110, 10, 'Theodore', 10000, 250), (110, 10, 'Bill', 10000, 250)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@emps
-POSTHOOK: query: insert into emps values (100, 10, 'Bill', 10000, 1000), (200, 20, 'Eric', 8000, 500),
- (150, 10, 'Sebastian', 7000, null), (110, 10, 'Theodore', 10000, 250), (110, 10, 'Bill', 10000, 250)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@emps
-POSTHOOK: Lineage: emps.commission SCRIPT []
-POSTHOOK: Lineage: emps.deptno SCRIPT []
-POSTHOOK: Lineage: emps.empid SCRIPT []
-POSTHOOK: Lineage: emps.name SCRIPT []
-POSTHOOK: Lineage: emps.salary SCRIPT []
-PREHOOK: query: analyze table emps compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@emps
-PREHOOK: Output: default@emps
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table emps compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: default@emps
-#### A masked pattern was here ####
-PREHOOK: query: create table depts (
- deptno int,
- name varchar(256),
- locationid int)
-stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@depts
-POSTHOOK: query: create table depts (
- deptno int,
- name varchar(256),
- locationid int)
-stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@depts
-PREHOOK: query: insert into depts values (10, 'Sales', 10), (30, 'Marketing', null), (20, 'HR', 20)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@depts
-POSTHOOK: query: insert into depts values (10, 'Sales', 10), (30, 'Marketing', null), (20, 'HR', 20)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@depts
-POSTHOOK: Lineage: depts.deptno SCRIPT []
-POSTHOOK: Lineage: depts.locationid SCRIPT []
-POSTHOOK: Lineage: depts.name SCRIPT []
-PREHOOK: query: analyze table depts compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@depts
-PREHOOK: Output: default@depts
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table depts compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@depts
-POSTHOOK: Output: default@depts
-#### A masked pattern was here ####
-PREHOOK: query: create table dependents (
- empid int,
- name varchar(256))
-stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@dependents
-POSTHOOK: query: create table dependents (
- empid int,
- name varchar(256))
-stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@dependents
-PREHOOK: query: insert into dependents values (10, 'Michael'), (10, 'Jane')
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@dependents
-POSTHOOK: query: insert into dependents values (10, 'Michael'), (10, 'Jane')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@dependents
-POSTHOOK: Lineage: dependents.empid SCRIPT []
-POSTHOOK: Lineage: dependents.name SCRIPT []
-PREHOOK: query: analyze table dependents compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dependents
-PREHOOK: Output: default@dependents
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table dependents compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dependents
-POSTHOOK: Output: default@dependents
-#### A masked pattern was here ####
-PREHOOK: query: create table locations (
- locationid int,
- name varchar(256))
-stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@locations
-POSTHOOK: query: create table locations (
- locationid int,
- name varchar(256))
-stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@locations
-PREHOOK: query: insert into locations values (10, 'San Francisco'), (10, 'San Diego')
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@locations
-POSTHOOK: query: insert into locations values (10, 'San Francisco'), (10, 'San Diego')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@locations
-POSTHOOK: Lineage: locations.locationid SCRIPT []
-POSTHOOK: Lineage: locations.name SCRIPT []
-PREHOOK: query: analyze table locations compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@locations
-PREHOOK: Output: default@locations
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table locations compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@locations
-POSTHOOK: Output: default@locations
-#### A masked pattern was here ####
-PREHOOK: query: alter table emps add constraint pk1 primary key (empid) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table emps add constraint pk1 primary key (empid) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table depts add constraint pk2 primary key (deptno) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table depts add constraint pk2 primary key (deptno) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table dependents add constraint pk3 primary key (empid) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table dependents add constraint pk3 primary key (empid) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table locations add constraint pk4 primary key (locationid) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table locations add constraint pk4 primary key (locationid) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table emps add constraint fk1 foreign key (deptno) references depts(deptno) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table emps add constraint fk1 foreign key (deptno) references depts(deptno) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table depts add constraint fk2 foreign key (locationid) references locations(locationid) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table depts add constraint fk2 foreign key (locationid) references locations(locationid) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select * from emps where empid < 150
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select * from emps where empid < 150
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select *
-from (select * from emps where empid < 120) t
-join depts using (deptno)
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select *
-from (select * from emps where empid < 120) t
-join depts using (deptno)
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 3 Data size: 315 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: ((empid < 120) and deptno is not null) (type: boolean)
- Statistics: Num rows: 3 Data size: 315 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: empid (type: int), deptno (type: int), name (type: varchar(256)), salary (type: float), commission (type: int)
- outputColumnNames: _col0, _col1, _col2, _col3, _col4
- Statistics: Num rows: 3 Data size: 315 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col1 (type: int)
- sort order: +
- Map-reduce partition columns: _col1 (type: int)
- Statistics: Num rows: 3 Data size: 315 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col0 (type: int), _col2 (type: varchar(256)), _col3 (type: float), _col4 (type: int)
- TableScan
- alias: depts
- Statistics: Num rows: 3 Data size: 291 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: deptno (type: int), name (type: varchar(256)), locationid (type: int)
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 3 Data size: 291 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 3 Data size: 291 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col1 (type: varchar(256)), _col2 (type: int)
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- keys:
- 0 _col1 (type: int)
- 1 _col0 (type: int)
- outputColumnNames: _col0, _col2, _col3, _col4, _col5, _col6, _col7
- Statistics: Num rows: 3 Data size: 594 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: _col5 (type: int), _col0 (type: int), _col2 (type: varchar(256)), _col3 (type: float), _col4 (type: int), _col6 (type: varchar(256)), _col7 (type: int)
- outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
- Statistics: Num rows: 3 Data size: 594 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 3 Data size: 594 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select *
-from (select * from emps where empid < 120) t
-join depts using (deptno)
-PREHOOK: type: QUERY
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select *
-from (select * from emps where empid < 120) t
-join depts using (deptno)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-10 100 Bill 10000.0 1000 Sales 10
-10 110 Bill 10000.0 250 Sales 10
-10 110 Theodore 10000.0 250 Sales 10
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select deptno, name, salary, commission
-from emps
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select deptno, name, salary, commission
-from emps
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select emps.name, emps.salary, emps.commission
-from emps
-join depts using (deptno)
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select emps.name, emps.salary, emps.commission
-from emps
-join depts using (deptno)
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 5 Data size: 510 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: deptno is not null (type: boolean)
- Statistics: Num rows: 5 Data size: 510 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: deptno (type: int), name (type: varchar(256)), salary (type: float), commission (type: int)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 5 Data size: 510 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 5 Data size: 510 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col1 (type: varchar(256)), _col2 (type: float), _col3 (type: int)
- TableScan
- alias: depts
- Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: deptno (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- keys:
- 0 _col0 (type: int)
- 1 _col0 (type: int)
- outputColumnNames: _col1, _col2, _col3
- Statistics: Num rows: 5 Data size: 490 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: _col1 (type: varchar(256)), _col2 (type: float), _col3 (type: int)
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 5 Data size: 490 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 5 Data size: 490 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select emps.name, emps.salary, emps.commission
-from emps
-join depts using (deptno)
-PREHOOK: type: QUERY
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select emps.name, emps.salary, emps.commission
-from emps
-join depts using (deptno)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-Bill 10000.0 1000
-Bill 10000.0 250
-Eric 8000.0 500
-Sebastian 7000.0 NULL
-Theodore 10000.0 250
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select empid deptno from emps
-join depts using (deptno)
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select empid deptno from emps
-join depts using (deptno)
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select empid deptno from emps
-join depts using (deptno) where empid = 1
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select empid deptno from emps
-join depts using (deptno) where empid = 1
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: (deptno = 1) (type: boolean)
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: 1 (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select empid deptno from emps
-join depts using (deptno) where empid = 1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select empid deptno from emps
-join depts using (deptno) where empid = 1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select * from emps where empid < 200
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select * from emps where empid < 200
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select * from emps where empid > 120
-union all select * from emps where empid < 150
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select * from emps where empid > 120
-union all select * from emps where empid < 150
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: emps
- Statistics: Num rows: 5 Data size: 530 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: (empid > 120) (type: boolean)
- Statistics: Num rows: 1 Data size: 106 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: empid (type: int), deptno (type: int), name (type: varchar(256)), salary (type: float), commission (type: int)
- outputColumnNames: _col0, _col1, _col2, _col3, _col4
- Statistics: Num rows: 1 Data size: 106 Basic stats: COMPLETE Column stats: COMPLETE
- Union
- Statistics: Num rows: 2 Data size: 212 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 2 Data size: 212 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
- TableScan
- alias: default.mv1
- Statistics: Num rows: 4 Data size: 424 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: (empid < 150) (type: boolean)
- Statistics: Num rows: 1 Data size: 106 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: empid (type: int), deptno (type: int), name (type: varchar(256)), salary (type: float), commission (type: int)
- outputColumnNames: _col0, _col1, _col2, _col3, _col4
- Statistics: Num rows: 1 Data size: 106 Basic stats: COMPLETE Column stats: COMPLETE
- Union
- Statistics: Num rows: 2 Data size: 212 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 2 Data size: 212 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select * from emps where empid > 120
-union all select * from emps where empid < 150
-PREHOOK: type: QUERY
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select * from emps where empid > 120
-union all select * from emps where empid < 150
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-100 10 Bill 10000.0 1000
-110 10 Bill 10000.0 250
-110 10 Theodore 10000.0 250
-150 10 Sebastian 7000.0 NULL
-200 20 Eric 8000.0 500
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select empid, deptno from emps group by empid, deptno
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select empid, deptno from emps group by empid, deptno
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select empid, deptno from emps group by empid, deptno
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select empid, deptno from emps group by empid, deptno
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-0 is a root stage
-
-STAGE PLANS:
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- TableScan
- alias: emps
- Statistics: Num rows: 5 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: empid (type: int), deptno (type: int)
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 5 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE
- ListSink
-
-PREHOOK: query: select empid, deptno from emps group by empid, deptno
-PREHOOK: type: QUERY
-PREHOOK: Input: default@emps
-#### A masked pattern was here ####
-POSTHOOK: query: select empid, deptno from emps group by empid, deptno
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@emps
-#### A masked pattern was here ####
-100 10
-110 10
-110 10
-150 10
-200 20
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select empid, name from emps group by empid, name
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select empid, name from emps group by empid, name
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select empid, name from emps group by empid, name
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select empid, name from emps group by empid, name
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-0 is a root stage
-
-STAGE PLANS:
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- TableScan
- alias: emps
- Statistics: Num rows: 5 Data size: 470 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: empid (type: int), name (type: varchar(256))
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 5 Data size: 470 Basic stats: COMPLETE Column stats: COMPLETE
- ListSink
-
-PREHOOK: query: select empid, name from emps group by empid, name
-PREHOOK: type: QUERY
-PREHOOK: Input: default@emps
-#### A masked pattern was here ####
-POSTHOOK: query: select empid, name from emps group by empid, name
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@emps
-#### A masked pattern was here ####
-100 Bill
-110 Bill
-110 Theodore
-150 Sebastian
-200 Eric
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select name, salary from emps group by name, salary
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select name, salary from emps group by name, salary
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select name, salary from emps group by name, salary
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select name, salary from emps group by name, salary
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-0 is a root stage
-
-STAGE PLANS:
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 4 Data size: 376 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: name (type: varchar(256)), salary (type: float)
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 4 Data size: 376 Basic stats: COMPLETE Column stats: COMPLETE
- ListSink
-
-PREHOOK: query: select name, salary from emps group by name, salary
-PREHOOK: type: QUERY
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select name, salary from emps group by name, salary
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-Bill 10000.0
-Eric 8000.0
-Sebastian 7000.0
-Theodore 10000.0
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select name, salary from emps group by name, salary
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select name, salary from emps group by name, salary
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select name from emps group by name
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select name from emps group by name
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 4 Data size: 360 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: name (type: varchar(256))
- outputColumnNames: name
- Statistics: Num rows: 4 Data size: 360 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- keys: name (type: varchar(256))
- mode: hash
- outputColumnNames: _col0
- Statistics: Num rows: 2 Data size: 180 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: varchar(256))
- sort order: +
- Map-reduce partition columns: _col0 (type: varchar(256))
- Statistics: Num rows: 2 Data size: 180 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Operator Tree:
- Group By Operator
- keys: KEY._col0 (type: varchar(256))
- mode: mergepartial
- outputColumnNames: _col0
- Statistics: Num rows: 2 Data size: 180 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 2 Data size: 180 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select name from emps group by name
-PREHOOK: type: QUERY
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select name from emps group by name
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-Bill
-Eric
-Sebastian
-Theodore
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select name, salary from emps where deptno = 10 group by name, salary
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select name, salary from emps where deptno = 10 group by name, salary
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select name from emps where deptno = 10 group by name
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select name from emps where deptno = 10 group by name
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: name (type: varchar(256))
- outputColumnNames: name
- Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- keys: name (type: varchar(256))
- mode: hash
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 91 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: varchar(256))
- sort order: +
- Map-reduce partition columns: _col0 (type: varchar(256))
- Statistics: Num rows: 1 Data size: 91 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Operator Tree:
- Group By Operator
- keys: KEY._col0 (type: varchar(256))
- mode: mergepartial
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 91 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 91 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select name from emps where deptno = 10 group by name
-PREHOOK: type: QUERY
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select name from emps where deptno = 10 group by name
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-Bill
-Sebastian
-Theodore
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select name, salary, count(*) as c, sum(empid) as s
-from emps group by name, salary
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select name, salary, count(*) as c, sum(empid) as s
-from emps group by name, salary
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select name from emps group by name
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select name from emps group by name
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 4 Data size: 360 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: name (type: varchar(256))
- outputColumnNames: name
- Statistics: Num rows: 4 Data size: 360 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- keys: name (type: varchar(256))
- mode: hash
- outputColumnNames: _col0
- Statistics: Num rows: 2 Data size: 180 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: varchar(256))
- sort order: +
- Map-reduce partition columns: _col0 (type: varchar(256))
- Statistics: Num rows: 2 Data size: 180 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Operator Tree:
- Group By Operator
- keys: KEY._col0 (type: varchar(256))
- mode: mergepartial
- outputColumnNames: _col0
- Statistics: Num rows: 2 Data size: 180 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 2 Data size: 180 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select name from emps group by name
-PREHOOK: type: QUERY
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select name from emps group by name
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-Bill
-Eric
-Sebastian
-Theodore
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
[17/24] hive git commit: HIVE-18839: Implement incremental rebuild
for materialized views (only insert operations in source tables) (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_5.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_5.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_5.q.out
new file mode 100644
index 0000000..ceb5900
--- /dev/null
+++ b/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_5.q.out
@@ -0,0 +1,1558 @@
+PREHOOK: query: create table emps (
+ empid int,
+ deptno int,
+ name varchar(256),
+ salary float,
+ commission int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@emps
+POSTHOOK: query: create table emps (
+ empid int,
+ deptno int,
+ name varchar(256),
+ salary float,
+ commission int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@emps
+PREHOOK: query: insert into emps values (100, 10, 'Bill', 10000, 1000), (200, 20, 'Eric', 8000, 500),
+ (150, 10, 'Sebastian', 7000, null), (110, 10, 'Theodore', 10000, 250), (110, 10, 'Bill', 10000, 250)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@emps
+POSTHOOK: query: insert into emps values (100, 10, 'Bill', 10000, 1000), (200, 20, 'Eric', 8000, 500),
+ (150, 10, 'Sebastian', 7000, null), (110, 10, 'Theodore', 10000, 250), (110, 10, 'Bill', 10000, 250)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@emps
+POSTHOOK: Lineage: emps.commission SCRIPT []
+POSTHOOK: Lineage: emps.deptno SCRIPT []
+POSTHOOK: Lineage: emps.empid SCRIPT []
+POSTHOOK: Lineage: emps.name SCRIPT []
+POSTHOOK: Lineage: emps.salary SCRIPT []
+PREHOOK: query: analyze table emps compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@emps
+PREHOOK: Output: default@emps
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table emps compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: default@emps
+#### A masked pattern was here ####
+PREHOOK: query: create table depts (
+ deptno int,
+ name varchar(256),
+ locationid int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@depts
+POSTHOOK: query: create table depts (
+ deptno int,
+ name varchar(256),
+ locationid int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@depts
+PREHOOK: query: insert into depts values (10, 'Sales', 10), (30, 'Marketing', null), (20, 'HR', 20)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@depts
+POSTHOOK: query: insert into depts values (10, 'Sales', 10), (30, 'Marketing', null), (20, 'HR', 20)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@depts
+POSTHOOK: Lineage: depts.deptno SCRIPT []
+POSTHOOK: Lineage: depts.locationid SCRIPT []
+POSTHOOK: Lineage: depts.name SCRIPT []
+PREHOOK: query: analyze table depts compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@depts
+PREHOOK: Output: default@depts
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table depts compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@depts
+POSTHOOK: Output: default@depts
+#### A masked pattern was here ####
+PREHOOK: query: create table dependents (
+ empid int,
+ name varchar(256))
+stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@dependents
+POSTHOOK: query: create table dependents (
+ empid int,
+ name varchar(256))
+stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@dependents
+PREHOOK: query: insert into dependents values (10, 'Michael'), (10, 'Jane')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@dependents
+POSTHOOK: query: insert into dependents values (10, 'Michael'), (10, 'Jane')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@dependents
+POSTHOOK: Lineage: dependents.empid SCRIPT []
+POSTHOOK: Lineage: dependents.name SCRIPT []
+PREHOOK: query: analyze table dependents compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dependents
+PREHOOK: Output: default@dependents
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table dependents compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dependents
+POSTHOOK: Output: default@dependents
+#### A masked pattern was here ####
+PREHOOK: query: create table locations (
+ locationid int,
+ name varchar(256))
+stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@locations
+POSTHOOK: query: create table locations (
+ locationid int,
+ name varchar(256))
+stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@locations
+PREHOOK: query: insert into locations values (10, 'San Francisco'), (10, 'San Diego')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@locations
+POSTHOOK: query: insert into locations values (10, 'San Francisco'), (10, 'San Diego')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@locations
+POSTHOOK: Lineage: locations.locationid SCRIPT []
+POSTHOOK: Lineage: locations.name SCRIPT []
+PREHOOK: query: analyze table locations compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@locations
+PREHOOK: Output: default@locations
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table locations compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@locations
+POSTHOOK: Output: default@locations
+#### A masked pattern was here ####
+PREHOOK: query: alter table emps add constraint pk1 primary key (empid) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table emps add constraint pk1 primary key (empid) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table depts add constraint pk2 primary key (deptno) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table depts add constraint pk2 primary key (deptno) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table dependents add constraint pk3 primary key (empid) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table dependents add constraint pk3 primary key (empid) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table locations add constraint pk4 primary key (locationid) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table locations add constraint pk4 primary key (locationid) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table emps add constraint fk1 foreign key (deptno) references depts(deptno) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table emps add constraint fk1 foreign key (deptno) references depts(deptno) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table depts add constraint fk2 foreign key (locationid) references locations(locationid) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table depts add constraint fk2 foreign key (locationid) references locations(locationid) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table emps change column deptno deptno int constraint nn1 not null disable novalidate rely
+PREHOOK: type: ALTERTABLE_RENAMECOL
+PREHOOK: Input: default@emps
+PREHOOK: Output: default@emps
+POSTHOOK: query: alter table emps change column deptno deptno int constraint nn1 not null disable novalidate rely
+POSTHOOK: type: ALTERTABLE_RENAMECOL
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: default@emps
+PREHOOK: query: alter table depts change column locationid locationid int constraint nn2 not null disable novalidate rely
+PREHOOK: type: ALTERTABLE_RENAMECOL
+PREHOOK: Input: default@depts
+PREHOOK: Output: default@depts
+POSTHOOK: query: alter table depts change column locationid locationid int constraint nn2 not null disable novalidate rely
+POSTHOOK: type: ALTERTABLE_RENAMECOL
+POSTHOOK: Input: default@depts
+POSTHOOK: Output: default@depts
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select name, deptno, salary from emps where deptno > 15 group by name, deptno, salary
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select name, deptno, salary from emps where deptno > 15 group by name, deptno, salary
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select name from emps where deptno >= 20 group by name
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select name from emps where deptno >= 20 group by name
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.mv1
+ Statistics: Num rows: 1 Data size: 92 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: (deptno >= 20) (type: boolean)
+ Statistics: Num rows: 1 Data size: 92 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: name (type: varchar(256))
+ outputColumnNames: name
+ Statistics: Num rows: 1 Data size: 92 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ keys: name (type: varchar(256))
+ mode: hash
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 88 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: varchar(256))
+ sort order: +
+ Map-reduce partition columns: _col0 (type: varchar(256))
+ Statistics: Num rows: 1 Data size: 88 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: all inputs
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ keys: KEY._col0 (type: varchar(256))
+ mode: mergepartial
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 88 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 88 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select name from emps where deptno >= 20 group by name
+PREHOOK: type: QUERY
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select name from emps where deptno >= 20 group by name
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+Eric
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select name, deptno, salary, count(*) as c, sum(empid) as s
+from emps where deptno >= 15 group by name, deptno, salary
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select name, deptno, salary, count(*) as c, sum(empid) as s
+from emps where deptno >= 15 group by name, deptno, salary
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select name, sum(empid) as s
+from emps where deptno > 15 group by name
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select name, sum(empid) as s
+from emps where deptno > 15 group by name
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.mv1
+ Statistics: Num rows: 1 Data size: 100 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: (deptno > 15) (type: boolean)
+ Statistics: Num rows: 1 Data size: 100 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: name (type: varchar(256)), s (type: bigint)
+ outputColumnNames: name, s
+ Statistics: Num rows: 1 Data size: 100 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: sum(s)
+ keys: name (type: varchar(256))
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 96 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: varchar(256))
+ sort order: +
+ Map-reduce partition columns: _col0 (type: varchar(256))
+ Statistics: Num rows: 1 Data size: 96 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: bigint)
+ Execution mode: llap
+ LLAP IO: all inputs
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: sum(VALUE._col0)
+ keys: KEY._col0 (type: varchar(256))
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 96 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 96 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select name, sum(empid) as s
+from emps where deptno > 15 group by name
+PREHOOK: type: QUERY
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select name, sum(empid) as s
+from emps where deptno > 15 group by name
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+Eric 200
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select depts.deptno, dependents.empid
+from depts
+join dependents on (depts.name = dependents.name)
+join locations on (locations.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+where depts.deptno > 10 and depts.deptno < 20
+group by depts.deptno, dependents.empid
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@locations
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select depts.deptno, dependents.empid
+from depts
+join dependents on (depts.name = dependents.name)
+join locations on (locations.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+where depts.deptno > 10 and depts.deptno < 20
+group by depts.deptno, dependents.empid
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@locations
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select dependents.empid
+from depts
+join dependents on (depts.name = dependents.name)
+join locations on (locations.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+where depts.deptno > 11 and depts.deptno < 19
+group by dependents.empid
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select dependents.empid
+from depts
+join dependents on (depts.name = dependents.name)
+join locations on (locations.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+where depts.deptno > 11 and depts.deptno < 19
+group by dependents.empid
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.mv1
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((deptno < 19) and (deptno > 11)) (type: boolean)
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: empid (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ keys: _col0 (type: int)
+ mode: hash
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: all inputs
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ keys: KEY._col0 (type: int)
+ mode: mergepartial
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select dependents.empid
+from depts
+join dependents on (depts.name = dependents.name)
+join locations on (locations.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+where depts.deptno > 11 and depts.deptno < 19
+group by dependents.empid
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@locations
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select dependents.empid
+from depts
+join dependents on (depts.name = dependents.name)
+join locations on (locations.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+where depts.deptno > 11 and depts.deptno < 19
+group by dependents.empid
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@locations
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select empid, depts.deptno, count(*) as c, sum(empid) as s
+from emps join depts using (deptno)
+group by empid, depts.deptno
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select empid, depts.deptno, count(*) as c, sum(empid) as s
+from emps join depts using (deptno)
+group by empid, depts.deptno
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select deptno from emps group by deptno
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select deptno from emps group by deptno
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.mv1
+ Statistics: Num rows: 4 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: deptno (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 4 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ keys: _col0 (type: int)
+ mode: hash
+ outputColumnNames: _col0
+ Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: all inputs
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ keys: KEY._col0 (type: int)
+ mode: mergepartial
+ outputColumnNames: _col0
+ Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select deptno from emps group by deptno
+PREHOOK: type: QUERY
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select deptno from emps group by deptno
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+10
+20
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select empid, depts.deptno, count(*) as c, sum(empid) as s
+from emps join depts using (deptno)
+group by empid, depts.deptno
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select empid, depts.deptno, count(*) as c, sum(empid) as s
+from emps join depts using (deptno)
+group by empid, depts.deptno
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select deptno, empid, sum(empid) as s, count(*) as c
+from emps group by empid, deptno
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select deptno, empid, sum(empid) as s, count(*) as c
+from emps group by empid, deptno
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.mv1
+ Select Operator
+ expressions: deptno (type: int), empid (type: int), s (type: bigint), c (type: bigint)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ ListSink
+
+PREHOOK: query: select deptno, empid, sum(empid) as s, count(*) as c
+from emps group by empid, deptno
+PREHOOK: type: QUERY
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select deptno, empid, sum(empid) as s, count(*) as c
+from emps group by empid, deptno
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+10 100 100 1
+10 110 220 2
+10 150 150 1
+20 200 200 1
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select dependents.empid, emps.deptno, sum(salary) as s
+from emps
+join dependents on (emps.empid = dependents.empid)
+group by dependents.empid, emps.deptno
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select dependents.empid, emps.deptno, sum(salary) as s
+from emps
+join dependents on (emps.empid = dependents.empid)
+group by dependents.empid, emps.deptno
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select dependents.empid, sum(salary) as s
+from emps
+join depts on (emps.deptno = depts.deptno)
+join dependents on (emps.empid = dependents.empid)
+group by dependents.empid
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select dependents.empid, sum(salary) as s
+from emps
+join depts on (emps.deptno = depts.deptno)
+join dependents on (emps.empid = dependents.empid)
+group by dependents.empid
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: depts
+ Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: deptno (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 4
+ Map Operator Tree:
+ TableScan
+ alias: default.mv1
+ Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: empid (type: int), deptno (type: int), s (type: double)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col1 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col1 (type: int)
+ Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: int), _col2 (type: double)
+ Execution mode: llap
+ LLAP IO: all inputs
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: int)
+ 1 _col1 (type: int)
+ outputColumnNames: _col1, _col3
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: sum(_col3)
+ keys: _col1 (type: int)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: double)
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: sum(VALUE._col0)
+ keys: KEY._col0 (type: int)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select dependents.empid, sum(salary) as s
+from emps
+join depts on (emps.deptno = depts.deptno)
+join dependents on (emps.empid = dependents.empid)
+group by dependents.empid
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select dependents.empid, sum(salary) as s
+from emps
+join depts on (emps.deptno = depts.deptno)
+join dependents on (emps.empid = dependents.empid)
+group by dependents.empid
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select dependents.empid, emps.deptno, sum(salary) as s
+from emps
+join dependents on (emps.empid = dependents.empid)
+group by dependents.empid, emps.deptno
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select dependents.empid, emps.deptno, sum(salary) as s
+from emps
+join dependents on (emps.empid = dependents.empid)
+group by dependents.empid, emps.deptno
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select depts.name, sum(salary) as s
+from emps
+join depts on (emps.deptno = depts.deptno)
+join dependents on (emps.empid = dependents.empid)
+group by depts.name
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select depts.name, sum(salary) as s
+from emps
+join depts on (emps.deptno = depts.deptno)
+join dependents on (emps.empid = dependents.empid)
+group by depts.name
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: depts
+ Statistics: Num rows: 3 Data size: 279 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: deptno (type: int), name (type: varchar(256))
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 3 Data size: 279 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 3 Data size: 279 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: varchar(256))
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 4
+ Map Operator Tree:
+ TableScan
+ alias: default.mv1
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: deptno (type: int), s (type: double)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: double)
+ Execution mode: llap
+ LLAP IO: all inputs
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: int)
+ 1 _col0 (type: int)
+ outputColumnNames: _col1, _col3
+ Statistics: Num rows: 1 Data size: 97 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: sum(_col3)
+ keys: _col1 (type: varchar(256))
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 97 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: varchar(256))
+ sort order: +
+ Map-reduce partition columns: _col0 (type: varchar(256))
+ Statistics: Num rows: 1 Data size: 97 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: double)
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: sum(VALUE._col0)
+ keys: KEY._col0 (type: varchar(256))
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 97 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 97 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select depts.name, sum(salary) as s
+from emps
+join depts on (emps.deptno = depts.deptno)
+join dependents on (emps.empid = dependents.empid)
+group by depts.name
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select depts.name, sum(salary) as s
+from emps
+join depts on (emps.deptno = depts.deptno)
+join dependents on (emps.empid = dependents.empid)
+group by depts.name
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+Warning: Shuffle Join MERGEJOIN[22][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 3' is a cross product
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select a.empid deptno from
+(select * from emps where empid = 1) a
+join depts on (a.deptno = depts.deptno)
+join dependents on (a.empid = dependents.empid)
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select a.empid deptno from
+(select * from emps where empid = 1) a
+join depts on (a.deptno = depts.deptno)
+join dependents on (a.empid = dependents.empid)
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select a.empid from
+(select * from emps where empid = 1) a
+join dependents on (a.empid = dependents.empid)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select a.empid from
+(select * from emps where empid = 1) a
+join dependents on (a.empid = dependents.empid)
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.mv1
+ Select Operator
+ expressions: 1 (type: int)
+ outputColumnNames: _col0
+ ListSink
+
+PREHOOK: query: select a.empid from
+(select * from emps where empid = 1) a
+join dependents on (a.empid = dependents.empid)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select a.empid from
+(select * from emps where empid = 1) a
+join dependents on (a.empid = dependents.empid)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+Warning: Shuffle Join MERGEJOIN[22][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 3' is a cross product
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select a.empid, a.deptno from
+(select * from emps where empid = 1) a
+join depts on (a.deptno = depts.deptno)
+join dependents on (a.empid = dependents.empid)
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select a.empid, a.deptno from
+(select * from emps where empid = 1) a
+join depts on (a.deptno = depts.deptno)
+join dependents on (a.empid = dependents.empid)
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select a.empid from
+(select * from emps where empid = 1) a
+join dependents on (a.empid = dependents.empid)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select a.empid from
+(select * from emps where empid = 1) a
+join dependents on (a.empid = dependents.empid)
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.mv1
+ Select Operator
+ expressions: 1 (type: int)
+ outputColumnNames: _col0
+ ListSink
+
+PREHOOK: query: select a.empid from
+(select * from emps where empid = 1) a
+join dependents on (a.empid = dependents.empid)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select a.empid from
+(select * from emps where empid = 1) a
+join dependents on (a.empid = dependents.empid)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select empid deptno from
+(select * from emps where empid = 1) a
+join depts on (a.deptno = depts.deptno)
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select empid deptno from
+(select * from emps where empid = 1) a
+join depts on (a.deptno = depts.deptno)
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select empid from emps where empid = 1
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select empid from emps where empid = 1
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.mv1
+ Select Operator
+ expressions: 1 (type: int)
+ outputColumnNames: _col0
+ ListSink
+
+PREHOOK: query: select empid from emps where empid = 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select empid from emps where empid = 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+Warning: Shuffle Join MERGEJOIN[22][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 3' is a cross product
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select emps.empid, emps.deptno from emps
+join depts on (emps.deptno = depts.deptno)
+join dependents on (emps.empid = dependents.empid)
+where emps.empid = 1
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select emps.empid, emps.deptno from emps
+join depts on (emps.deptno = depts.deptno)
+join dependents on (emps.empid = dependents.empid)
+where emps.empid = 1
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select emps.empid from emps
+join dependents on (emps.empid = dependents.empid)
+where emps.empid = 1
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select emps.empid from emps
+join dependents on (emps.empid = dependents.empid)
+where emps.empid = 1
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.mv1
+ Select Operator
+ expressions: 1 (type: int)
+ outputColumnNames: _col0
+ ListSink
+
+PREHOOK: query: select emps.empid from emps
+join dependents on (emps.empid = dependents.empid)
+where emps.empid = 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select emps.empid from emps
+join dependents on (emps.empid = dependents.empid)
+where emps.empid = 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+Warning: Shuffle Join MERGEJOIN[30][tables = [$hdt$_2, $hdt$_3, $hdt$_1, $hdt$_0]] in Stage 'Reducer 3' is a cross product
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select emps.empid, emps.deptno from emps
+join depts a on (emps.deptno=a.deptno)
+join depts b on (emps.deptno=b.deptno)
+join dependents on (emps.empid = dependents.empid)
+where emps.empid = 1
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select emps.empid, emps.deptno from emps
+join depts a on (emps.deptno=a.deptno)
+join depts b on (emps.deptno=b.deptno)
+join dependents on (emps.empid = dependents.empid)
+where emps.empid = 1
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select emps.empid from emps
+join dependents on (emps.empid = dependents.empid)
+where emps.empid = 1
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select emps.empid from emps
+join dependents on (emps.empid = dependents.empid)
+where emps.empid = 1
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.mv1
+ Select Operator
+ expressions: 1 (type: int)
+ outputColumnNames: _col0
+ ListSink
+
+PREHOOK: query: select emps.empid from emps
+join dependents on (emps.empid = dependents.empid)
+where emps.empid = 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select emps.empid from emps
+join dependents on (emps.empid = dependents.empid)
+where emps.empid = 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select emps.empid, emps.deptno from emps
+join depts a on (emps.deptno=a.deptno)
+join depts b on (emps.deptno=b.deptno)
+join dependents on (emps.empid = dependents.empid)
+where emps.name = 'Sebastian'
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select emps.empid, emps.deptno from emps
+join depts a on (emps.deptno=a.deptno)
+join depts b on (emps.deptno=b.deptno)
+join dependents on (emps.empid = dependents.empid)
+where emps.name = 'Sebastian'
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select emps.empid from emps
+join dependents on (emps.empid = dependents.empid)
+where emps.name = 'Sebastian'
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select emps.empid from emps
+join dependents on (emps.empid = dependents.empid)
+where emps.name = 'Sebastian'
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.mv1
+ Select Operator
+ expressions: empid (type: int)
+ outputColumnNames: _col0
+ ListSink
+
+PREHOOK: query: select emps.empid from emps
+join dependents on (emps.empid = dependents.empid)
+where emps.name = 'Sebastian'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select emps.empid from emps
+join dependents on (emps.empid = dependents.empid)
+where emps.name = 'Sebastian'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
[10/24] hive git commit: HIVE-18839: Implement incremental rebuild
for materialized views (only insert operations in source tables) (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/materialized_view_rewrite_5.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/materialized_view_rewrite_5.q.out b/ql/src/test/results/clientpositive/materialized_view_rewrite_5.q.out
deleted file mode 100644
index bab3cac..0000000
--- a/ql/src/test/results/clientpositive/materialized_view_rewrite_5.q.out
+++ /dev/null
@@ -1,1522 +0,0 @@
-PREHOOK: query: create table emps (
- empid int,
- deptno int,
- name varchar(256),
- salary float,
- commission int)
-stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@emps
-POSTHOOK: query: create table emps (
- empid int,
- deptno int,
- name varchar(256),
- salary float,
- commission int)
-stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@emps
-PREHOOK: query: insert into emps values (100, 10, 'Bill', 10000, 1000), (200, 20, 'Eric', 8000, 500),
- (150, 10, 'Sebastian', 7000, null), (110, 10, 'Theodore', 10000, 250), (110, 10, 'Bill', 10000, 250)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@emps
-POSTHOOK: query: insert into emps values (100, 10, 'Bill', 10000, 1000), (200, 20, 'Eric', 8000, 500),
- (150, 10, 'Sebastian', 7000, null), (110, 10, 'Theodore', 10000, 250), (110, 10, 'Bill', 10000, 250)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@emps
-POSTHOOK: Lineage: emps.commission SCRIPT []
-POSTHOOK: Lineage: emps.deptno SCRIPT []
-POSTHOOK: Lineage: emps.empid SCRIPT []
-POSTHOOK: Lineage: emps.name SCRIPT []
-POSTHOOK: Lineage: emps.salary SCRIPT []
-PREHOOK: query: analyze table emps compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@emps
-PREHOOK: Output: default@emps
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table emps compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: default@emps
-#### A masked pattern was here ####
-PREHOOK: query: create table depts (
- deptno int,
- name varchar(256),
- locationid int)
-stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@depts
-POSTHOOK: query: create table depts (
- deptno int,
- name varchar(256),
- locationid int)
-stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@depts
-PREHOOK: query: insert into depts values (10, 'Sales', 10), (30, 'Marketing', null), (20, 'HR', 20)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@depts
-POSTHOOK: query: insert into depts values (10, 'Sales', 10), (30, 'Marketing', null), (20, 'HR', 20)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@depts
-POSTHOOK: Lineage: depts.deptno SCRIPT []
-POSTHOOK: Lineage: depts.locationid SCRIPT []
-POSTHOOK: Lineage: depts.name SCRIPT []
-PREHOOK: query: analyze table depts compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@depts
-PREHOOK: Output: default@depts
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table depts compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@depts
-POSTHOOK: Output: default@depts
-#### A masked pattern was here ####
-PREHOOK: query: create table dependents (
- empid int,
- name varchar(256))
-stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@dependents
-POSTHOOK: query: create table dependents (
- empid int,
- name varchar(256))
-stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@dependents
-PREHOOK: query: insert into dependents values (10, 'Michael'), (10, 'Jane')
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@dependents
-POSTHOOK: query: insert into dependents values (10, 'Michael'), (10, 'Jane')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@dependents
-POSTHOOK: Lineage: dependents.empid SCRIPT []
-POSTHOOK: Lineage: dependents.name SCRIPT []
-PREHOOK: query: analyze table dependents compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dependents
-PREHOOK: Output: default@dependents
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table dependents compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dependents
-POSTHOOK: Output: default@dependents
-#### A masked pattern was here ####
-PREHOOK: query: create table locations (
- locationid int,
- name varchar(256))
-stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@locations
-POSTHOOK: query: create table locations (
- locationid int,
- name varchar(256))
-stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@locations
-PREHOOK: query: insert into locations values (10, 'San Francisco'), (10, 'San Diego')
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@locations
-POSTHOOK: query: insert into locations values (10, 'San Francisco'), (10, 'San Diego')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@locations
-POSTHOOK: Lineage: locations.locationid SCRIPT []
-POSTHOOK: Lineage: locations.name SCRIPT []
-PREHOOK: query: analyze table locations compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@locations
-PREHOOK: Output: default@locations
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table locations compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@locations
-POSTHOOK: Output: default@locations
-#### A masked pattern was here ####
-PREHOOK: query: alter table emps add constraint pk1 primary key (empid) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table emps add constraint pk1 primary key (empid) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table depts add constraint pk2 primary key (deptno) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table depts add constraint pk2 primary key (deptno) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table dependents add constraint pk3 primary key (empid) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table dependents add constraint pk3 primary key (empid) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table locations add constraint pk4 primary key (locationid) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table locations add constraint pk4 primary key (locationid) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table emps add constraint fk1 foreign key (deptno) references depts(deptno) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table emps add constraint fk1 foreign key (deptno) references depts(deptno) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table depts add constraint fk2 foreign key (locationid) references locations(locationid) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table depts add constraint fk2 foreign key (locationid) references locations(locationid) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table emps change column deptno deptno int constraint nn1 not null disable novalidate rely
-PREHOOK: type: ALTERTABLE_RENAMECOL
-PREHOOK: Input: default@emps
-PREHOOK: Output: default@emps
-POSTHOOK: query: alter table emps change column deptno deptno int constraint nn1 not null disable novalidate rely
-POSTHOOK: type: ALTERTABLE_RENAMECOL
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: default@emps
-PREHOOK: query: alter table depts change column locationid locationid int constraint nn2 not null disable novalidate rely
-PREHOOK: type: ALTERTABLE_RENAMECOL
-PREHOOK: Input: default@depts
-PREHOOK: Output: default@depts
-POSTHOOK: query: alter table depts change column locationid locationid int constraint nn2 not null disable novalidate rely
-POSTHOOK: type: ALTERTABLE_RENAMECOL
-POSTHOOK: Input: default@depts
-POSTHOOK: Output: default@depts
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select name, deptno, salary from emps where deptno > 15 group by name, deptno, salary
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select name, deptno, salary from emps where deptno > 15 group by name, deptno, salary
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select name from emps where deptno >= 20 group by name
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select name from emps where deptno >= 20 group by name
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 1 Data size: 92 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: (deptno >= 20) (type: boolean)
- Statistics: Num rows: 1 Data size: 92 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: name (type: varchar(256))
- outputColumnNames: name
- Statistics: Num rows: 1 Data size: 92 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- keys: name (type: varchar(256))
- mode: hash
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 88 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: varchar(256))
- sort order: +
- Map-reduce partition columns: _col0 (type: varchar(256))
- Statistics: Num rows: 1 Data size: 88 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Operator Tree:
- Group By Operator
- keys: KEY._col0 (type: varchar(256))
- mode: mergepartial
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 88 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 88 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select name from emps where deptno >= 20 group by name
-PREHOOK: type: QUERY
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select name from emps where deptno >= 20 group by name
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-Eric
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select name, deptno, salary, count(*) as c, sum(empid) as s
-from emps where deptno >= 15 group by name, deptno, salary
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select name, deptno, salary, count(*) as c, sum(empid) as s
-from emps where deptno >= 15 group by name, deptno, salary
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select name, sum(empid) as s
-from emps where deptno > 15 group by name
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select name, sum(empid) as s
-from emps where deptno > 15 group by name
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 1 Data size: 100 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: (deptno > 15) (type: boolean)
- Statistics: Num rows: 1 Data size: 100 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: name (type: varchar(256)), s (type: bigint)
- outputColumnNames: name, s
- Statistics: Num rows: 1 Data size: 100 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- aggregations: sum(s)
- keys: name (type: varchar(256))
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 96 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: varchar(256))
- sort order: +
- Map-reduce partition columns: _col0 (type: varchar(256))
- Statistics: Num rows: 1 Data size: 96 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col1 (type: bigint)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: varchar(256))
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 96 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 96 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select name, sum(empid) as s
-from emps where deptno > 15 group by name
-PREHOOK: type: QUERY
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select name, sum(empid) as s
-from emps where deptno > 15 group by name
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-Eric 200
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select depts.deptno, dependents.empid
-from depts
-join dependents on (depts.name = dependents.name)
-join locations on (locations.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-where depts.deptno > 10 and depts.deptno < 20
-group by depts.deptno, dependents.empid
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@locations
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select depts.deptno, dependents.empid
-from depts
-join dependents on (depts.name = dependents.name)
-join locations on (locations.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-where depts.deptno > 10 and depts.deptno < 20
-group by depts.deptno, dependents.empid
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@locations
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select dependents.empid
-from depts
-join dependents on (depts.name = dependents.name)
-join locations on (locations.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-where depts.deptno > 11 and depts.deptno < 19
-group by dependents.empid
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select dependents.empid
-from depts
-join dependents on (depts.name = dependents.name)
-join locations on (locations.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-where depts.deptno > 11 and depts.deptno < 19
-group by dependents.empid
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: ((deptno < 19) and (deptno > 11)) (type: boolean)
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: empid (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- keys: _col0 (type: int)
- mode: hash
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Operator Tree:
- Group By Operator
- keys: KEY._col0 (type: int)
- mode: mergepartial
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select dependents.empid
-from depts
-join dependents on (depts.name = dependents.name)
-join locations on (locations.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-where depts.deptno > 11 and depts.deptno < 19
-group by dependents.empid
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@locations
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select dependents.empid
-from depts
-join dependents on (depts.name = dependents.name)
-join locations on (locations.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-where depts.deptno > 11 and depts.deptno < 19
-group by dependents.empid
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@locations
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select empid, depts.deptno, count(*) as c, sum(empid) as s
-from emps join depts using (deptno)
-group by empid, depts.deptno
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select empid, depts.deptno, count(*) as c, sum(empid) as s
-from emps join depts using (deptno)
-group by empid, depts.deptno
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select deptno from emps group by deptno
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select deptno from emps group by deptno
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 4 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: deptno (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 4 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- keys: _col0 (type: int)
- mode: hash
- outputColumnNames: _col0
- Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Operator Tree:
- Group By Operator
- keys: KEY._col0 (type: int)
- mode: mergepartial
- outputColumnNames: _col0
- Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select deptno from emps group by deptno
-PREHOOK: type: QUERY
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select deptno from emps group by deptno
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-10
-20
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select empid, depts.deptno, count(*) as c, sum(empid) as s
-from emps join depts using (deptno)
-group by empid, depts.deptno
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select empid, depts.deptno, count(*) as c, sum(empid) as s
-from emps join depts using (deptno)
-group by empid, depts.deptno
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select deptno, empid, sum(empid) as s, count(*) as c
-from emps group by empid, deptno
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select deptno, empid, sum(empid) as s, count(*) as c
-from emps group by empid, deptno
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-0 is a root stage
-
-STAGE PLANS:
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 4 Data size: 96 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: deptno (type: int), empid (type: int), s (type: bigint), c (type: bigint)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 4 Data size: 96 Basic stats: COMPLETE Column stats: COMPLETE
- ListSink
-
-PREHOOK: query: select deptno, empid, sum(empid) as s, count(*) as c
-from emps group by empid, deptno
-PREHOOK: type: QUERY
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select deptno, empid, sum(empid) as s, count(*) as c
-from emps group by empid, deptno
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-10 100 100 1
-10 110 220 2
-10 150 150 1
-20 200 200 1
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select dependents.empid, emps.deptno, sum(salary) as s
-from emps
-join dependents on (emps.empid = dependents.empid)
-group by dependents.empid, emps.deptno
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select dependents.empid, emps.deptno, sum(salary) as s
-from emps
-join dependents on (emps.empid = dependents.empid)
-group by dependents.empid, emps.deptno
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select dependents.empid, sum(salary) as s
-from emps
-join depts on (emps.deptno = depts.deptno)
-join dependents on (emps.empid = dependents.empid)
-group by dependents.empid
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select dependents.empid, sum(salary) as s
-from emps
-join depts on (emps.deptno = depts.deptno)
-join dependents on (emps.empid = dependents.empid)
-group by dependents.empid
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: depts
- Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: deptno (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- TableScan
- alias: default.mv1
- Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: empid (type: int), deptno (type: int), s (type: double)
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col1 (type: int)
- sort order: +
- Map-reduce partition columns: _col1 (type: int)
- Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col0 (type: int), _col2 (type: double)
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- keys:
- 0 _col0 (type: int)
- 1 _col1 (type: int)
- outputColumnNames: _col1, _col3
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- aggregations: sum(_col3)
- keys: _col1 (type: int)
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col1 (type: double)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: int)
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select dependents.empid, sum(salary) as s
-from emps
-join depts on (emps.deptno = depts.deptno)
-join dependents on (emps.empid = dependents.empid)
-group by dependents.empid
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select dependents.empid, sum(salary) as s
-from emps
-join depts on (emps.deptno = depts.deptno)
-join dependents on (emps.empid = dependents.empid)
-group by dependents.empid
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select dependents.empid, emps.deptno, sum(salary) as s
-from emps
-join dependents on (emps.empid = dependents.empid)
-group by dependents.empid, emps.deptno
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select dependents.empid, emps.deptno, sum(salary) as s
-from emps
-join dependents on (emps.empid = dependents.empid)
-group by dependents.empid, emps.deptno
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select depts.name, sum(salary) as s
-from emps
-join depts on (emps.deptno = depts.deptno)
-join dependents on (emps.empid = dependents.empid)
-group by depts.name
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select depts.name, sum(salary) as s
-from emps
-join depts on (emps.deptno = depts.deptno)
-join dependents on (emps.empid = dependents.empid)
-group by depts.name
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: depts
- Statistics: Num rows: 3 Data size: 279 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: deptno (type: int), name (type: varchar(256))
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 3 Data size: 279 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 3 Data size: 279 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col1 (type: varchar(256))
- TableScan
- alias: default.mv1
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: deptno (type: int), s (type: double)
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col1 (type: double)
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- keys:
- 0 _col0 (type: int)
- 1 _col0 (type: int)
- outputColumnNames: _col1, _col3
- Statistics: Num rows: 1 Data size: 97 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- aggregations: sum(_col3)
- keys: _col1 (type: varchar(256))
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 97 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col0 (type: varchar(256))
- sort order: +
- Map-reduce partition columns: _col0 (type: varchar(256))
- Statistics: Num rows: 1 Data size: 97 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col1 (type: double)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: varchar(256))
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 97 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 97 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select depts.name, sum(salary) as s
-from emps
-join depts on (emps.deptno = depts.deptno)
-join dependents on (emps.empid = dependents.empid)
-group by depts.name
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select depts.name, sum(salary) as s
-from emps
-join depts on (emps.deptno = depts.deptno)
-join dependents on (emps.empid = dependents.empid)
-group by depts.name
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-Warning: Shuffle Join JOIN[13][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Stage-2:MAPRED' is a cross product
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select a.empid deptno from
-(select * from emps where empid = 1) a
-join depts on (a.deptno = depts.deptno)
-join dependents on (a.empid = dependents.empid)
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select a.empid deptno from
-(select * from emps where empid = 1) a
-join depts on (a.deptno = depts.deptno)
-join dependents on (a.empid = dependents.empid)
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select a.empid from
-(select * from emps where empid = 1) a
-join dependents on (a.empid = dependents.empid)
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select a.empid from
-(select * from emps where empid = 1) a
-join dependents on (a.empid = dependents.empid)
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-0 is a root stage
-
-STAGE PLANS:
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: COMPLETE
- Select Operator
- expressions: 1 (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: COMPLETE
- ListSink
-
-PREHOOK: query: select a.empid from
-(select * from emps where empid = 1) a
-join dependents on (a.empid = dependents.empid)
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select a.empid from
-(select * from emps where empid = 1) a
-join dependents on (a.empid = dependents.empid)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-Warning: Shuffle Join JOIN[13][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Stage-2:MAPRED' is a cross product
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select a.empid, a.deptno from
-(select * from emps where empid = 1) a
-join depts on (a.deptno = depts.deptno)
-join dependents on (a.empid = dependents.empid)
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select a.empid, a.deptno from
-(select * from emps where empid = 1) a
-join depts on (a.deptno = depts.deptno)
-join dependents on (a.empid = dependents.empid)
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select a.empid from
-(select * from emps where empid = 1) a
-join dependents on (a.empid = dependents.empid)
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select a.empid from
-(select * from emps where empid = 1) a
-join dependents on (a.empid = dependents.empid)
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-0 is a root stage
-
-STAGE PLANS:
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: COMPLETE
- Select Operator
- expressions: 1 (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: COMPLETE
- ListSink
-
-PREHOOK: query: select a.empid from
-(select * from emps where empid = 1) a
-join dependents on (a.empid = dependents.empid)
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select a.empid from
-(select * from emps where empid = 1) a
-join dependents on (a.empid = dependents.empid)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select empid deptno from
-(select * from emps where empid = 1) a
-join depts on (a.deptno = depts.deptno)
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select empid deptno from
-(select * from emps where empid = 1) a
-join depts on (a.deptno = depts.deptno)
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select empid from emps where empid = 1
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select empid from emps where empid = 1
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-0 is a root stage
-
-STAGE PLANS:
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: COMPLETE
- Select Operator
- expressions: 1 (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: COMPLETE
- ListSink
-
-PREHOOK: query: select empid from emps where empid = 1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select empid from emps where empid = 1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-Warning: Shuffle Join JOIN[13][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Stage-2:MAPRED' is a cross product
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select emps.empid, emps.deptno from emps
-join depts on (emps.deptno = depts.deptno)
-join dependents on (emps.empid = dependents.empid)
-where emps.empid = 1
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select emps.empid, emps.deptno from emps
-join depts on (emps.deptno = depts.deptno)
-join dependents on (emps.empid = dependents.empid)
-where emps.empid = 1
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select emps.empid from emps
-join dependents on (emps.empid = dependents.empid)
-where emps.empid = 1
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select emps.empid from emps
-join dependents on (emps.empid = dependents.empid)
-where emps.empid = 1
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-0 is a root stage
-
-STAGE PLANS:
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: COMPLETE
- Select Operator
- expressions: 1 (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: COMPLETE
- ListSink
-
-PREHOOK: query: select emps.empid from emps
-join dependents on (emps.empid = dependents.empid)
-where emps.empid = 1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select emps.empid from emps
-join dependents on (emps.empid = dependents.empid)
-where emps.empid = 1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-Warning: Shuffle Join JOIN[16][tables = [$hdt$_2, $hdt$_3, $hdt$_1, $hdt$_0]] in Stage 'Stage-2:MAPRED' is a cross product
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select emps.empid, emps.deptno from emps
-join depts a on (emps.deptno=a.deptno)
-join depts b on (emps.deptno=b.deptno)
-join dependents on (emps.empid = dependents.empid)
-where emps.empid = 1
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select emps.empid, emps.deptno from emps
-join depts a on (emps.deptno=a.deptno)
-join depts b on (emps.deptno=b.deptno)
-join dependents on (emps.empid = dependents.empid)
-where emps.empid = 1
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select emps.empid from emps
-join dependents on (emps.empid = dependents.empid)
-where emps.empid = 1
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select emps.empid from emps
-join dependents on (emps.empid = dependents.empid)
-where emps.empid = 1
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-0 is a root stage
-
-STAGE PLANS:
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: COMPLETE
- Select Operator
- expressions: 1 (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: COMPLETE
- ListSink
-
-PREHOOK: query: select emps.empid from emps
-join dependents on (emps.empid = dependents.empid)
-where emps.empid = 1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select emps.empid from emps
-join dependents on (emps.empid = dependents.empid)
-where emps.empid = 1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select emps.empid, emps.deptno from emps
-join depts a on (emps.deptno=a.deptno)
-join depts b on (emps.deptno=b.deptno)
-join dependents on (emps.empid = dependents.empid)
-where emps.name = 'Sebastian'
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select emps.empid, emps.deptno from emps
-join depts a on (emps.deptno=a.deptno)
-join depts b on (emps.deptno=b.deptno)
-join dependents on (emps.empid = dependents.empid)
-where emps.name = 'Sebastian'
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select emps.empid from emps
-join dependents on (emps.empid = dependents.empid)
-where emps.name = 'Sebastian'
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select emps.empid from emps
-join dependents on (emps.empid = dependents.empid)
-where emps.name = 'Sebastian'
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-0 is a root stage
-
-STAGE PLANS:
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: empid (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- ListSink
-
-PREHOOK: query: select emps.empid from emps
-join dependents on (emps.empid = dependents.empid)
-where emps.name = 'Sebastian'
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select emps.empid from emps
-join dependents on (emps.empid = dependents.empid)
-where emps.name = 'Sebastian'
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
[22/24] hive git commit: HIVE-18839: Implement incremental rebuild
for materialized views (only insert operations in source tables) (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_4.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_4.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_4.q.out
new file mode 100644
index 0000000..2f88037
--- /dev/null
+++ b/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_4.q.out
@@ -0,0 +1,1784 @@
+PREHOOK: query: create table cmv_basetable (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@cmv_basetable
+POSTHOOK: query: create table cmv_basetable (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@cmv_basetable
+PREHOOK: query: insert into cmv_basetable values
+ (1, 'alfred', 10.30, 2),
+ (2, 'bob', 3.14, 3),
+ (2, 'bonnie', 172342.2, 3),
+ (3, 'calvin', 978.76, 3),
+ (3, 'charlie', 9.8, 1)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@cmv_basetable
+POSTHOOK: query: insert into cmv_basetable values
+ (1, 'alfred', 10.30, 2),
+ (2, 'bob', 3.14, 3),
+ (2, 'bonnie', 172342.2, 3),
+ (3, 'calvin', 978.76, 3),
+ (3, 'charlie', 9.8, 1)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@cmv_basetable
+POSTHOOK: Lineage: cmv_basetable.a SCRIPT []
+POSTHOOK: Lineage: cmv_basetable.b SCRIPT []
+POSTHOOK: Lineage: cmv_basetable.c SCRIPT []
+POSTHOOK: Lineage: cmv_basetable.d SCRIPT []
+PREHOOK: query: analyze table cmv_basetable compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable
+PREHOOK: Output: default@cmv_basetable
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table cmv_basetable compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable
+POSTHOOK: Output: default@cmv_basetable
+#### A masked pattern was here ####
+PREHOOK: query: create table cmv_basetable_2 (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@cmv_basetable_2
+POSTHOOK: query: create table cmv_basetable_2 (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@cmv_basetable_2
+PREHOOK: query: insert into cmv_basetable_2 values
+ (1, 'alfred', 10.30, 2),
+ (3, 'calvin', 978.76, 3)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@cmv_basetable_2
+POSTHOOK: query: insert into cmv_basetable_2 values
+ (1, 'alfred', 10.30, 2),
+ (3, 'calvin', 978.76, 3)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@cmv_basetable_2
+POSTHOOK: Lineage: cmv_basetable_2.a SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2.b SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2.c SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2.d SCRIPT []
+PREHOOK: query: analyze table cmv_basetable_2 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Output: default@cmv_basetable_2
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table cmv_basetable_2 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Output: default@cmv_basetable_2
+#### A masked pattern was here ####
+PREHOOK: query: EXPLAIN
+CREATE MATERIALIZED VIEW cmv_mat_view TBLPROPERTIES ('transactional'='true') AS
+ SELECT cmv_basetable.a, cmv_basetable_2.c, sum(cmv_basetable_2.d)
+ FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+ WHERE cmv_basetable_2.c > 10.0
+ GROUP BY cmv_basetable.a, cmv_basetable_2.c
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: query: EXPLAIN
+CREATE MATERIALIZED VIEW cmv_mat_view TBLPROPERTIES ('transactional'='true') AS
+ SELECT cmv_basetable.a, cmv_basetable_2.c, sum(cmv_basetable_2.d)
+ FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+ WHERE cmv_basetable_2.c > 10.0
+ GROUP BY cmv_basetable.a, cmv_basetable_2.c
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-4 depends on stages: Stage-2, Stage-0
+ Stage-3 depends on stages: Stage-4
+ Stage-5 depends on stages: Stage-3
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: a is not null (type: boolean)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 4
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable_2
+ Statistics: Num rows: 2 Data size: 240 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((c > 10) and a is not null) (type: boolean)
+ Statistics: Num rows: 1 Data size: 120 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int), c (type: decimal(10,2)), d (type: int)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 120 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 1 Data size: 120 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: decimal(10,2)), _col2 (type: int)
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: int)
+ 1 _col0 (type: int)
+ outputColumnNames: _col0, _col2, _col3
+ Statistics: Num rows: 3 Data size: 360 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: sum(_col3)
+ keys: _col0 (type: int), _col2 (type: decimal(10,2))
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col2 (type: bigint)
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: sum(VALUE._col0)
+ keys: KEY._col0 (type: int), KEY._col1 (type: decimal(10,2))
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cmv_mat_view
+
+ Stage: Stage-2
+ Dependency Collection
+
+ Stage: Stage-4
+ Create View Operator:
+ Create View
+ columns: a int, c decimal(10,2), _c2 bigint
+ table properties:
+ transactional true
+ expanded text: SELECT `cmv_basetable`.`a`, `cmv_basetable_2`.`c`, sum(`cmv_basetable_2`.`d`)
+ FROM `default`.`cmv_basetable` JOIN `default`.`cmv_basetable_2` ON (`cmv_basetable`.`a` = `cmv_basetable_2`.`a`)
+ WHERE `cmv_basetable_2`.`c` > 10.0
+ GROUP BY `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
+ name: default.cmv_mat_view
+ original text: SELECT cmv_basetable.a, cmv_basetable_2.c, sum(cmv_basetable_2.d)
+ FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+ WHERE cmv_basetable_2.c > 10.0
+ GROUP BY cmv_basetable.a, cmv_basetable_2.c
+
+ Stage: Stage-3
+ Stats Work
+ Basic Stats Work:
+
+ Stage: Stage-5
+ Materialized View Work
+
+ Stage: Stage-0
+ Move Operator
+ files:
+ hdfs directory: true
+#### A masked pattern was here ####
+
+PREHOOK: query: CREATE MATERIALIZED VIEW cmv_mat_view TBLPROPERTIES ('transactional'='true') AS
+ SELECT cmv_basetable.a, cmv_basetable_2.c, sum(cmv_basetable_2.d)
+ FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+ WHERE cmv_basetable_2.c > 10.0
+ GROUP BY cmv_basetable.a, cmv_basetable_2.c
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@cmv_basetable
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Output: database:default
+PREHOOK: Output: default@cmv_mat_view
+POSTHOOK: query: CREATE MATERIALIZED VIEW cmv_mat_view TBLPROPERTIES ('transactional'='true') AS
+ SELECT cmv_basetable.a, cmv_basetable_2.c, sum(cmv_basetable_2.d)
+ FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+ WHERE cmv_basetable_2.c > 10.0
+ GROUP BY cmv_basetable.a, cmv_basetable_2.c
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@cmv_basetable
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@cmv_mat_view
+PREHOOK: query: analyze table cmv_mat_view compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_mat_view
+PREHOOK: Output: default@cmv_mat_view
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table cmv_mat_view compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_mat_view
+POSTHOOK: Output: default@cmv_mat_view
+#### A masked pattern was here ####
+PREHOOK: query: DESCRIBE FORMATTED cmv_mat_view
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@cmv_mat_view
+POSTHOOK: query: DESCRIBE FORMATTED cmv_mat_view
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@cmv_mat_view
+# col_name data_type comment
+a int
+c decimal(10,2)
+_c2 bigint
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MATERIALIZED_VIEW
+Table Parameters:
+ COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\"_c2\":\"true\",\"a\":\"true\",\"c\":\"true\"}}
+ numFiles 2
+ numRows 2
+ rawDataSize 248
+ totalSize 706
+ transactional true
+ transactional_properties default
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+InputFormat: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+
+# View Information
+View Original Text: SELECT cmv_basetable.a, cmv_basetable_2.c, sum(cmv_basetable_2.d)
+ FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+ WHERE cmv_basetable_2.c > 10.0
+ GROUP BY cmv_basetable.a, cmv_basetable_2.c
+View Expanded Text: SELECT `cmv_basetable`.`a`, `cmv_basetable_2`.`c`, sum(`cmv_basetable_2`.`d`)
+ FROM `default`.`cmv_basetable` JOIN `default`.`cmv_basetable_2` ON (`cmv_basetable`.`a` = `cmv_basetable_2`.`a`)
+ WHERE `cmv_basetable_2`.`c` > 10.0
+ GROUP BY `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
+View Rewrite Enabled: No
+PREHOOK: query: EXPLAIN
+SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: a is not null (type: boolean)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 4
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable_2
+ Statistics: Num rows: 2 Data size: 240 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((c > 10.1) and a is not null) (type: boolean)
+ Statistics: Num rows: 1 Data size: 120 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int), c (type: decimal(10,2)), d (type: int)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 120 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 1 Data size: 120 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: decimal(10,2)), _col2 (type: int)
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: int)
+ 1 _col0 (type: int)
+ outputColumnNames: _col0, _col2, _col3
+ Statistics: Num rows: 3 Data size: 360 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: sum(_col3)
+ keys: _col0 (type: int), _col2 (type: decimal(10,2))
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col2 (type: bigint)
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: sum(VALUE._col0)
+ keys: KEY._col0 (type: int), KEY._col1 (type: decimal(10,2))
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col0 (type: int), _col2 (type: bigint)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable
+PREHOOK: Input: default@cmv_basetable_2
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable
+POSTHOOK: Input: default@cmv_basetable_2
+#### A masked pattern was here ####
+3 6
+1 2
+PREHOOK: query: insert into cmv_basetable_2 values
+ (3, 'charlie', 15.8, 1)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@cmv_basetable_2
+POSTHOOK: query: insert into cmv_basetable_2 values
+ (3, 'charlie', 15.8, 1)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@cmv_basetable_2
+POSTHOOK: Lineage: cmv_basetable_2.a SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2.b SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2.c SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2.d SCRIPT []
+PREHOOK: query: analyze table cmv_basetable_2 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Output: default@cmv_basetable_2
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table cmv_basetable_2 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Output: default@cmv_basetable_2
+#### A masked pattern was here ####
+PREHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cmv_mat_view ENABLE REWRITE
+PREHOOK: type: ALTER_MATERIALIZED_VIEW_REWRITE
+POSTHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cmv_mat_view ENABLE REWRITE
+POSTHOOK: type: ALTER_MATERIALIZED_VIEW_REWRITE
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Alter Materialized View Operator:
+ Alter Materialized View
+ name: default.cmv_mat_view
+ operation: UPDATE_REWRITE_FLAG
+
+PREHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view ENABLE REWRITE
+PREHOOK: type: ALTER_MATERIALIZED_VIEW_REWRITE
+PREHOOK: Input: default@cmv_mat_view
+PREHOOK: Output: default@cmv_mat_view
+POSTHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view ENABLE REWRITE
+POSTHOOK: type: ALTER_MATERIALIZED_VIEW_REWRITE
+POSTHOOK: Input: default@cmv_mat_view
+POSTHOOK: Output: default@cmv_mat_view
+PREHOOK: query: DESCRIBE FORMATTED cmv_mat_view
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@cmv_mat_view
+POSTHOOK: query: DESCRIBE FORMATTED cmv_mat_view
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@cmv_mat_view
+# col_name data_type comment
+a int
+c decimal(10,2)
+_c2 bigint
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MATERIALIZED_VIEW
+Table Parameters:
+ COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\"_c2\":\"true\",\"a\":\"true\",\"c\":\"true\"}}
+ numFiles 2
+ numRows 2
+ rawDataSize 248
+ totalSize 706
+ transactional true
+ transactional_properties default
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+InputFormat: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+
+# View Information
+View Original Text: SELECT cmv_basetable.a, cmv_basetable_2.c, sum(cmv_basetable_2.d)
+ FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+ WHERE cmv_basetable_2.c > 10.0
+ GROUP BY cmv_basetable.a, cmv_basetable_2.c
+View Expanded Text: SELECT `cmv_basetable`.`a`, `cmv_basetable_2`.`c`, sum(`cmv_basetable_2`.`d`)
+ FROM `default`.`cmv_basetable` JOIN `default`.`cmv_basetable_2` ON (`cmv_basetable`.`a` = `cmv_basetable_2`.`a`)
+ WHERE `cmv_basetable_2`.`c` > 10.0
+ GROUP BY `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
+View Rewrite Enabled: Yes
+PREHOOK: query: EXPLAIN
+SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: a is not null (type: boolean)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 4
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable_2
+ Statistics: Num rows: 3 Data size: 360 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((c > 10.1) and a is not null) (type: boolean)
+ Statistics: Num rows: 1 Data size: 120 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int), c (type: decimal(10,2)), d (type: int)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 120 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 1 Data size: 120 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: decimal(10,2)), _col2 (type: int)
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: int)
+ 1 _col0 (type: int)
+ outputColumnNames: _col0, _col2, _col3
+ Statistics: Num rows: 2 Data size: 240 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: sum(_col3)
+ keys: _col0 (type: int), _col2 (type: decimal(10,2))
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col2 (type: bigint)
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: sum(VALUE._col0)
+ keys: KEY._col0 (type: int), KEY._col1 (type: decimal(10,2))
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col0 (type: int), _col2 (type: bigint)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable
+PREHOOK: Input: default@cmv_basetable_2
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable
+POSTHOOK: Input: default@cmv_basetable_2
+#### A masked pattern was here ####
+3 2
+3 6
+1 2
+PREHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-2 is a root stage
+ Stage-3 depends on stages: Stage-2
+ Stage-0 depends on stages: Stage-3
+ Stage-4 depends on stages: Stage-0
+ Stage-6 depends on stages: Stage-4, Stage-5
+ Stage-1 depends on stages: Stage-3
+ Stage-5 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-2
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 7 (ONE_TO_ONE_EDGE)
+ Reducer 3 <- Reducer 2 (CUSTOM_SIMPLE_EDGE)
+ Reducer 4 <- Reducer 2 (SIMPLE_EDGE)
+ Reducer 6 <- Map 5 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE)
+ Reducer 7 <- Reducer 6 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.cmv_mat_view
+ Statistics: Num rows: 2 Data size: 248 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((c > 10) and a is not null) (type: boolean)
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int), c (type: decimal(10,2)), _c2 (type: bigint), ROW__ID (type: struct<writeid:bigint,bucketid:int,rowid:bigint>)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 1 Data size: 200 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
+ Statistics: Num rows: 1 Data size: 200 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col2 (type: bigint), _col3 (type: struct<writeid:bigint,bucketid:int,rowid:bigint>)
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 5
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: a is not null (type: boolean)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 8
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable_2
+ Statistics: Num rows: 3 Data size: 360 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((ROW__ID.writeid > 1) and (c > 10) and a is not null) (type: boolean)
+ Statistics: Num rows: 1 Data size: 120 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int), c (type: decimal(10,2)), d (type: int)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 196 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 1 Data size: 196 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: decimal(10,2)), _col2 (type: int)
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Right Outer Join 0 to 1
+ keys:
+ 0 _col0 (type: int), _col1 (type: decimal(10,2))
+ 1 _col0 (type: int), _col1 (type: decimal(10,2))
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
+ Statistics: Num rows: 1 Data size: 324 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: (_col0 is null and _col1 is null) (type: boolean)
+ Statistics: Num rows: 1 Data size: 324 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col4 (type: int), _col5 (type: decimal(10,2)), CASE WHEN ((_col0 is null and _col1 is null)) THEN (_col6) ELSE ((_col6 + _col2)) END (type: bigint)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cmv_mat_view
+ Write Type: INSERT
+ Select Operator
+ expressions: _col0 (type: int), _col1 (type: decimal(10,2)), _col2 (type: bigint)
+ outputColumnNames: a, c, _c2
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: compute_stats(a, 'hll'), compute_stats(c, 'hll'), compute_stats(_c2, 'hll')
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 1480 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ sort order:
+ Statistics: Num rows: 1 Data size: 1480 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: struct<columntype:string,min:bigint,max:bigint,countnulls:bigint,bitvector:binary>), _col1 (type: struct<columntype:string,min:decimal(10,2),max:decimal(10,2),countnulls:bigint,bitvector:binary>), _col2 (type: struct<columntype:string,min:bigint,max:bigint,countnulls:bigint,bitvector:binary>)
+ Filter Operator
+ predicate: ((_col0 = _col4) and (_col1 = _col5)) (type: boolean)
+ Statistics: Num rows: 1 Data size: 324 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col3 (type: struct<writeid:bigint,bucketid:int,rowid:bigint>), _col4 (type: int), _col5 (type: decimal(10,2)), CASE WHEN ((_col0 is null and _col1 is null)) THEN (_col6) ELSE ((_col6 + _col2)) END (type: bigint)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 1 Data size: 200 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: struct<writeid:bigint,bucketid:int,rowid:bigint>)
+ sort order: +
+ Statistics: Num rows: 1 Data size: 200 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: int), _col2 (type: decimal(10,2)), _col3 (type: bigint)
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1), compute_stats(VALUE._col2)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 1528 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 1528 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+ Reducer 4
+ Execution mode: llap
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: struct<writeid:bigint,bucketid:int,rowid:bigint>), VALUE._col0 (type: int), VALUE._col1 (type: decimal(10,2)), VALUE._col2 (type: bigint)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 1 Data size: 200 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 200 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cmv_mat_view
+ Write Type: UPDATE
+ Reducer 6
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: int)
+ 1 _col0 (type: int)
+ outputColumnNames: _col0, _col2, _col3
+ Statistics: Num rows: 2 Data size: 240 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: sum(_col3)
+ keys: _col0 (type: int), _col2 (type: decimal(10,2))
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col2 (type: bigint)
+ Reducer 7
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: sum(VALUE._col0)
+ keys: KEY._col0 (type: int), KEY._col1 (type: decimal(10,2))
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col2 (type: bigint)
+
+ Stage: Stage-3
+ Dependency Collection
+
+ Stage: Stage-0
+ Move Operator
+ tables:
+ replace: false
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cmv_mat_view
+ Write Type: INSERT
+
+ Stage: Stage-4
+ Stats Work
+ Basic Stats Work:
+
+ Stage: Stage-6
+ Materialized View Work
+
+ Stage: Stage-1
+ Move Operator
+ tables:
+ replace: false
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cmv_mat_view
+ Write Type: UPDATE
+
+ Stage: Stage-5
+ Stats Work
+ Basic Stats Work:
+ Column Stats Desc:
+ Columns: a, c, _c2
+ Column Types: int, decimal(10,2), bigint
+ Table: default.cmv_mat_view
+
+PREHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Input: default@cmv_mat_view
+PREHOOK: Output: default@cmv_mat_view
+PREHOOK: Output: default@cmv_mat_view
+POSTHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Input: default@cmv_mat_view
+POSTHOOK: Output: default@cmv_mat_view
+POSTHOOK: Output: default@cmv_mat_view
+POSTHOOK: Lineage: cmv_mat_view._c2 EXPRESSION [(cmv_mat_view)default.cmv_mat_view.FieldSchema(name:a, type:int, comment:null), (cmv_mat_view)default.cmv_mat_view.FieldSchema(name:c, type:decimal(10,2), comment:null), (cmv_basetable_2)cmv_basetable_2.FieldSchema(name:d, type:int, comment:null), (cmv_mat_view)default.cmv_mat_view.FieldSchema(name:_c2, type:bigint, comment:null), ]
+POSTHOOK: Lineage: cmv_mat_view.a SIMPLE [(cmv_basetable)cmv_basetable.FieldSchema(name:a, type:int, comment:null), ]
+POSTHOOK: Lineage: cmv_mat_view.c SIMPLE [(cmv_basetable_2)cmv_basetable_2.FieldSchema(name:c, type:decimal(10,2), comment:null), ]
+PREHOOK: query: DESCRIBE FORMATTED cmv_mat_view
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@cmv_mat_view
+POSTHOOK: query: DESCRIBE FORMATTED cmv_mat_view
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@cmv_mat_view
+# col_name data_type comment
+a int
+c decimal(10,2)
+_c2 bigint
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MATERIALIZED_VIEW
+Table Parameters:
+ numFiles 3
+ totalSize 1453
+ transactional true
+ transactional_properties default
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+InputFormat: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+
+# View Information
+View Original Text: SELECT cmv_basetable.a, cmv_basetable_2.c, sum(cmv_basetable_2.d)
+ FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+ WHERE cmv_basetable_2.c > 10.0
+ GROUP BY cmv_basetable.a, cmv_basetable_2.c
+View Expanded Text: SELECT `cmv_basetable`.`a`, `cmv_basetable_2`.`c`, sum(`cmv_basetable_2`.`d`)
+ FROM `default`.`cmv_basetable` JOIN `default`.`cmv_basetable_2` ON (`cmv_basetable`.`a` = `cmv_basetable_2`.`a`)
+ WHERE `cmv_basetable_2`.`c` > 10.0
+ GROUP BY `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
+View Rewrite Enabled: Yes
+PREHOOK: query: EXPLAIN
+SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.cmv_mat_view
+ Filter Operator
+ predicate: (c > 10.1) (type: boolean)
+ Select Operator
+ expressions: a (type: int), _c2 (type: bigint)
+ outputColumnNames: _col0, _col1
+ ListSink
+
+PREHOOK: query: SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Input: default@cmv_mat_view
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Input: default@cmv_mat_view
+#### A masked pattern was here ####
+3 6
+1 2
+3 2
+PREHOOK: query: UPDATE cmv_basetable_2 SET a=2 WHERE a=1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Output: default@cmv_basetable_2
+POSTHOOK: query: UPDATE cmv_basetable_2 SET a=2 WHERE a=1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Output: default@cmv_basetable_2
+PREHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
+ Stage-3 depends on stages: Stage-0
+ Stage-4 depends on stages: Stage-3
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: a is not null (type: boolean)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 4
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable_2
+ Statistics: Num rows: 60 Data size: 7200 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((c > 10) and a is not null) (type: boolean)
+ Statistics: Num rows: 20 Data size: 2400 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int), c (type: decimal(10,2)), d (type: int)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 20 Data size: 2400 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 20 Data size: 2400 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: decimal(10,2)), _col2 (type: int)
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: int)
+ 1 _col0 (type: int)
+ outputColumnNames: _col0, _col2, _col3
+ Statistics: Num rows: 33 Data size: 3960 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: sum(_col3)
+ keys: _col0 (type: int), _col2 (type: decimal(10,2))
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col2 (type: bigint)
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: sum(VALUE._col0)
+ keys: KEY._col0 (type: int), KEY._col1 (type: decimal(10,2))
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cmv_mat_view
+ Write Type: INSERT
+ Select Operator
+ expressions: _col0 (type: int), _col1 (type: decimal(10,2)), _col2 (type: bigint)
+ outputColumnNames: a, c, _c2
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: compute_stats(a, 'hll'), compute_stats(c, 'hll'), compute_stats(_c2, 'hll')
+ mode: complete
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 1480 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col0 (type: struct<columntype:string,min:bigint,max:bigint,countnulls:bigint,numdistinctvalues:bigint,ndvbitvector:binary>), _col1 (type: struct<columntype:string,min:decimal(10,2),max:decimal(10,2),countnulls:bigint,numdistinctvalues:bigint,ndvbitvector:binary>), _col2 (type: struct<columntype:string,min:bigint,max:bigint,countnulls:bigint,numdistinctvalues:bigint,ndvbitvector:binary>)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 1480 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 1480 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-2
+ Dependency Collection
+
+ Stage: Stage-0
+ Move Operator
+ tables:
+ replace: false
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cmv_mat_view
+ Write Type: INSERT
+
+ Stage: Stage-3
+ Stats Work
+ Basic Stats Work:
+ Column Stats Desc:
+ Columns: a, c, _c2
+ Column Types: int, decimal(10,2), bigint
+ Table: default.cmv_mat_view
+
+ Stage: Stage-4
+ Materialized View Work
+
+PREHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Output: default@cmv_mat_view
+POSTHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Output: default@cmv_mat_view
+POSTHOOK: Lineage: cmv_mat_view._c2 EXPRESSION [(cmv_basetable_2)cmv_basetable_2.FieldSchema(name:d, type:int, comment:null), ]
+POSTHOOK: Lineage: cmv_mat_view.a SIMPLE [(cmv_basetable)cmv_basetable.FieldSchema(name:a, type:int, comment:null), ]
+POSTHOOK: Lineage: cmv_mat_view.c SIMPLE [(cmv_basetable_2)cmv_basetable_2.FieldSchema(name:c, type:decimal(10,2), comment:null), ]
+PREHOOK: query: EXPLAIN
+SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.cmv_mat_view
+ Filter Operator
+ predicate: (c > 10.1) (type: boolean)
+ Select Operator
+ expressions: a (type: int), _c2 (type: bigint)
+ outputColumnNames: _col0, _col1
+ ListSink
+
+PREHOOK: query: SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Input: default@cmv_mat_view
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Input: default@cmv_mat_view
+#### A masked pattern was here ####
+2 4
+3 2
+3 6
+PREHOOK: query: DELETE FROM cmv_basetable_2 WHERE a=2
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Output: default@cmv_basetable_2
+POSTHOOK: query: DELETE FROM cmv_basetable_2 WHERE a=2
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Output: default@cmv_basetable_2
+PREHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
+ Stage-3 depends on stages: Stage-0
+ Stage-4 depends on stages: Stage-3
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: a is not null (type: boolean)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 4
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable_2
+ Statistics: Num rows: 70 Data size: 8400 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((c > 10) and a is not null) (type: boolean)
+ Statistics: Num rows: 23 Data size: 2760 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int), c (type: decimal(10,2)), d (type: int)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 23 Data size: 2760 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 23 Data size: 2760 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: decimal(10,2)), _col2 (type: int)
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: int)
+ 1 _col0 (type: int)
+ outputColumnNames: _col0, _col2, _col3
+ Statistics: Num rows: 38 Data size: 4560 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: sum(_col3)
+ keys: _col0 (type: int), _col2 (type: decimal(10,2))
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col2 (type: bigint)
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: sum(VALUE._col0)
+ keys: KEY._col0 (type: int), KEY._col1 (type: decimal(10,2))
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cmv_mat_view
+ Write Type: INSERT
+ Select Operator
+ expressions: _col0 (type: int), _col1 (type: decimal(10,2)), _col2 (type: bigint)
+ outputColumnNames: a, c, _c2
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: compute_stats(a, 'hll'), compute_stats(c, 'hll'), compute_stats(_c2, 'hll')
+ mode: complete
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 1480 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col0 (type: struct<columntype:string,min:bigint,max:bigint,countnulls:bigint,numdistinctvalues:bigint,ndvbitvector:binary>), _col1 (type: struct<columntype:string,min:decimal(10,2),max:decimal(10,2),countnulls:bigint,numdistinctvalues:bigint,ndvbitvector:binary>), _col2 (type: struct<columntype:string,min:bigint,max:bigint,countnulls:bigint,numdistinctvalues:bigint,ndvbitvector:binary>)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 1480 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 1480 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-2
+ Dependency Collection
+
+ Stage: Stage-0
+ Move Operator
+ tables:
+ replace: false
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cmv_mat_view
+ Write Type: INSERT
+
+ Stage: Stage-3
+ Stats Work
+ Basic Stats Work:
+ Column Stats Desc:
+ Columns: a, c, _c2
+ Column Types: int, decimal(10,2), bigint
+ Table: default.cmv_mat_view
+
+ Stage: Stage-4
+ Materialized View Work
+
+PREHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Output: default@cmv_mat_view
+POSTHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Output: default@cmv_mat_view
+POSTHOOK: Lineage: cmv_mat_view._c2 EXPRESSION [(cmv_basetable_2)cmv_basetable_2.FieldSchema(name:d, type:int, comment:null), ]
+POSTHOOK: Lineage: cmv_mat_view.a SIMPLE [(cmv_basetable)cmv_basetable.FieldSchema(name:a, type:int, comment:null), ]
+POSTHOOK: Lineage: cmv_mat_view.c SIMPLE [(cmv_basetable_2)cmv_basetable_2.FieldSchema(name:c, type:decimal(10,2), comment:null), ]
+PREHOOK: query: EXPLAIN
+SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.cmv_mat_view
+ Filter Operator
+ predicate: (c > 10.1) (type: boolean)
+ Select Operator
+ expressions: a (type: int), _c2 (type: bigint)
+ outputColumnNames: _col0, _col1
+ ListSink
+
+PREHOOK: query: SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Input: default@cmv_mat_view
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Input: default@cmv_mat_view
+#### A masked pattern was here ####
+3 2
+3 6
+PREHOOK: query: insert into cmv_basetable_2 values
+ (1, 'charlie', 15.8, 1)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@cmv_basetable_2
+POSTHOOK: query: insert into cmv_basetable_2 values
+ (1, 'charlie', 15.8, 1)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@cmv_basetable_2
+POSTHOOK: Lineage: cmv_basetable_2.a SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2.b SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2.c SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2.d SCRIPT []
+PREHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-2 is a root stage
+ Stage-3 depends on stages: Stage-2
+ Stage-0 depends on stages: Stage-3
+ Stage-4 depends on stages: Stage-0
+ Stage-6 depends on stages: Stage-4, Stage-5
+ Stage-1 depends on stages: Stage-3
+ Stage-5 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-2
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 7 (ONE_TO_ONE_EDGE)
+ Reducer 3 <- Reducer 2 (CUSTOM_SIMPLE_EDGE)
+ Reducer 4 <- Reducer 2 (SIMPLE_EDGE)
+ Reducer 6 <- Map 5 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE)
+ Reducer 7 <- Reducer 6 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.cmv_mat_view
+ Statistics: Num rows: 2 Data size: 248 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((c > 10) and a is not null) (type: boolean)
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int), c (type: decimal(10,2)), _c2 (type: bigint), ROW__ID (type: struct<writeid:bigint,bucketid:int,rowid:bigint>)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 1 Data size: 200 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
+ Statistics: Num rows: 1 Data size: 200 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col2 (type: bigint), _col3 (type: struct<writeid:bigint,bucketid:int,rowid:bigint>)
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 5
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: a is not null (type: boolean)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 8
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable_2
+ Statistics: Num rows: 85 Data size: 10200 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((ROW__ID.writeid > 4) and (c > 10) and a is not null) (type: boolean)
+ Statistics: Num rows: 9 Data size: 1080 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int), c (type: decimal(10,2)), d (type: int)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 9 Data size: 1764 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 9 Data size: 1764 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: decimal(10,2)), _col2 (type: int)
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Right Outer Join 0 to 1
+ keys:
+ 0 _col0 (type: int), _col1 (type: decimal(10,2))
+ 1 _col0 (type: int), _col1 (type: decimal(10,2))
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
+ Statistics: Num rows: 1 Data size: 324 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: (_col0 is null and _col1 is null) (type: boolean)
+ Statistics: Num rows: 1 Data size: 324 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col4 (type: int), _col5 (type: decimal(10,2)), CASE WHEN ((_col0 is null and _col1 is null)) THEN (_col6) ELSE ((_col6 + _col2)) END (type: bigint)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cmv_mat_view
+ Write Type: INSERT
+ Select Operator
+ expressions: _col0 (type: int), _col1 (type: decimal(10,2)), _col2 (type: bigint)
+ outputColumnNames: a, c, _c2
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: compute_stats(a, 'hll'), compute_stats(c, 'hll'), compute_stats(_c2, 'hll')
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 1480 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ sort order:
+ Statistics: Num rows: 1 Data size: 1480 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: struct<columntype:string,min:bigint,max:bigint,countnulls:bigint,bitvector:binary>), _col1 (type: struct<columntype:string,min:decimal(10,2),max:decimal(10,2),countnulls:bigint,bitvector:binary>), _col2 (type: struct<columntype:string,min:bigint,max:bigint,countnulls:bigint,bitvector:binary>)
+ Filter Operator
+ predicate: ((_col0 = _col4) and (_col1 = _col5)) (type: boolean)
+ Statistics: Num rows: 1 Data size: 324 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col3 (type: struct<writeid:bigint,bucketid:int,rowid:bigint>), _col4 (type: int), _col5 (type: decimal(10,2)), CASE WHEN ((_col0 is null and _col1 is null)) THEN (_col6) ELSE ((_col6 + _col2)) END (type: bigint)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 1 Data size: 200 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: struct<writeid:bigint,bucketid:int,rowid:bigint>)
+ sort order: +
+ Statistics: Num rows: 1 Data size: 200 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: int), _col2 (type: decimal(10,2)), _col3 (type: bigint)
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1), compute_stats(VALUE._col2)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 1528 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 1528 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+ Reducer 4
+ Execution mode: llap
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: struct<writeid:bigint,bucketid:int,rowid:bigint>), VALUE._col0 (type: int), VALUE._col1 (type: decimal(10,2)), VALUE._col2 (type: bigint)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 1 Data size: 200 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 200 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cmv_mat_view
+ Write Type: UPDATE
+ Reducer 6
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: int)
+ 1 _col0 (type: int)
+ outputColumnNames: _col0, _col2, _col3
+ Statistics: Num rows: 15 Data size: 1800 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: sum(_col3)
+ keys: _col0 (type: int), _col2 (type: decimal(10,2))
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col2 (type: bigint)
+ Reducer 7
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: sum(VALUE._col0)
+ keys: KEY._col0 (type: int), KEY._col1 (type: decimal(10,2))
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
+ Statistics: Num rows: 1 Data size: 124 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col2 (type: bigint)
+
+ Stage: Stage-3
+ Dependency Collection
+
+ Stage: Stage-0
+ Move Operator
+ tables:
+ replace: false
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cmv_mat_view
+ Write Type: INSERT
+
+ Stage: Stage-4
+ Stats Work
+ Basic Stats Work:
+
+ Stage: Stage-6
+ Materialized View Work
+
+ Stage: Stage-1
+ Move Operator
+ tables:
+ replace: false
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cmv_mat_view
+ Write Type: UPDATE
+
+ Stage: Stage-5
+ Stats Work
+ Basic Stats Work:
+ Column Stats Desc:
+ Columns: a, c, _c2
+ Column Types: int, decimal(10,2), bigint
+ Table: default.cmv_mat_view
+
+PREHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Input: default@cmv_mat_view
+PREHOOK: Output: default@cmv_mat_view
+PREHOOK: Output: default@cmv_mat_view
+POSTHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Input: default@cmv_mat_view
+POSTHOOK: Output: default@cmv_mat_view
+POSTHOOK: Output: default@cmv_mat_view
+POSTHOOK: Lineage: cmv_mat_view._c2 EXPRESSION [(cmv_mat_view)default.cmv_mat_view.FieldSchema(name:a, type:int, comment:null), (cmv_mat_view)default.cmv_mat_view.FieldSchema(name:c, type:decimal(10,2), comment:null), (cmv_basetable_2)cmv_basetable_2.FieldSchema(name:d, type:int, comment:null), (cmv_mat_view)default.cmv_mat_view.FieldSchema(name:_c2, type:bigint, comment:null), ]
+POSTHOOK: Lineage: cmv_mat_view.a SIMPLE [(cmv_basetable)cmv_basetable.FieldSchema(name:a, type:int, comment:null), ]
+POSTHOOK: Lineage: cmv_mat_view.c SIMPLE [(cmv_basetable_2)cmv_basetable_2.FieldSchema(name:c, type:decimal(10,2), comment:null), ]
+PREHOOK: query: EXPLAIN
+SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.cmv_mat_view
+ Filter Operator
+ predicate: (c > 10.1) (type: boolean)
+ Select Operator
+ expressions: a (type: int), _c2 (type: bigint)
+ outputColumnNames: _col0, _col1
+ ListSink
+
+PREHOOK: query: SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Input: default@cmv_mat_view
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT cmv_basetable.a, sum(cmv_basetable_2.d)
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Input: default@cmv_mat_view
+#### A masked pattern was here ####
+3 2
+3 6
+1 1
+PREHOOK: query: drop materialized view cmv_mat_view
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@cmv_mat_view
+PREHOOK: Output: default@cmv_mat_view
+POSTHOOK: query: drop materialized view cmv_mat_view
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@cmv_mat_view
+POSTHOOK: Output: default@cmv_mat_view
[05/24] hive git commit: HIVE-18839: Implement incremental rebuild
for materialized views (only insert operations in source tables) (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/standalone-metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.cpp
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.cpp b/standalone-metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.cpp
index c24055a..fd52f09 100644
--- a/standalone-metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.cpp
+++ b/standalone-metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.cpp
@@ -48766,6 +48766,444 @@ uint32_t ThriftHiveMetastore_get_serde_presult::read(::apache::thrift::protocol:
return xfer;
}
+
+ThriftHiveMetastore_get_lock_materialization_rebuild_args::~ThriftHiveMetastore_get_lock_materialization_rebuild_args() throw() {
+}
+
+
+uint32_t ThriftHiveMetastore_get_lock_materialization_rebuild_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+ apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+ uint32_t xfer = 0;
+ std::string fname;
+ ::apache::thrift::protocol::TType ftype;
+ int16_t fid;
+
+ xfer += iprot->readStructBegin(fname);
+
+ using ::apache::thrift::protocol::TProtocolException;
+
+
+ while (true)
+ {
+ xfer += iprot->readFieldBegin(fname, ftype, fid);
+ if (ftype == ::apache::thrift::protocol::T_STOP) {
+ break;
+ }
+ switch (fid)
+ {
+ case 1:
+ if (ftype == ::apache::thrift::protocol::T_STRING) {
+ xfer += iprot->readString(this->dbName);
+ this->__isset.dbName = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ case 2:
+ if (ftype == ::apache::thrift::protocol::T_STRING) {
+ xfer += iprot->readString(this->tableName);
+ this->__isset.tableName = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ case 3:
+ if (ftype == ::apache::thrift::protocol::T_I64) {
+ xfer += iprot->readI64(this->txnId);
+ this->__isset.txnId = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ default:
+ xfer += iprot->skip(ftype);
+ break;
+ }
+ xfer += iprot->readFieldEnd();
+ }
+
+ xfer += iprot->readStructEnd();
+
+ return xfer;
+}
+
+uint32_t ThriftHiveMetastore_get_lock_materialization_rebuild_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+ uint32_t xfer = 0;
+ apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+ xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_lock_materialization_rebuild_args");
+
+ xfer += oprot->writeFieldBegin("dbName", ::apache::thrift::protocol::T_STRING, 1);
+ xfer += oprot->writeString(this->dbName);
+ xfer += oprot->writeFieldEnd();
+
+ xfer += oprot->writeFieldBegin("tableName", ::apache::thrift::protocol::T_STRING, 2);
+ xfer += oprot->writeString(this->tableName);
+ xfer += oprot->writeFieldEnd();
+
+ xfer += oprot->writeFieldBegin("txnId", ::apache::thrift::protocol::T_I64, 3);
+ xfer += oprot->writeI64(this->txnId);
+ xfer += oprot->writeFieldEnd();
+
+ xfer += oprot->writeFieldStop();
+ xfer += oprot->writeStructEnd();
+ return xfer;
+}
+
+
+ThriftHiveMetastore_get_lock_materialization_rebuild_pargs::~ThriftHiveMetastore_get_lock_materialization_rebuild_pargs() throw() {
+}
+
+
+uint32_t ThriftHiveMetastore_get_lock_materialization_rebuild_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+ uint32_t xfer = 0;
+ apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+ xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_lock_materialization_rebuild_pargs");
+
+ xfer += oprot->writeFieldBegin("dbName", ::apache::thrift::protocol::T_STRING, 1);
+ xfer += oprot->writeString((*(this->dbName)));
+ xfer += oprot->writeFieldEnd();
+
+ xfer += oprot->writeFieldBegin("tableName", ::apache::thrift::protocol::T_STRING, 2);
+ xfer += oprot->writeString((*(this->tableName)));
+ xfer += oprot->writeFieldEnd();
+
+ xfer += oprot->writeFieldBegin("txnId", ::apache::thrift::protocol::T_I64, 3);
+ xfer += oprot->writeI64((*(this->txnId)));
+ xfer += oprot->writeFieldEnd();
+
+ xfer += oprot->writeFieldStop();
+ xfer += oprot->writeStructEnd();
+ return xfer;
+}
+
+
+ThriftHiveMetastore_get_lock_materialization_rebuild_result::~ThriftHiveMetastore_get_lock_materialization_rebuild_result() throw() {
+}
+
+
+uint32_t ThriftHiveMetastore_get_lock_materialization_rebuild_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+ apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+ uint32_t xfer = 0;
+ std::string fname;
+ ::apache::thrift::protocol::TType ftype;
+ int16_t fid;
+
+ xfer += iprot->readStructBegin(fname);
+
+ using ::apache::thrift::protocol::TProtocolException;
+
+
+ while (true)
+ {
+ xfer += iprot->readFieldBegin(fname, ftype, fid);
+ if (ftype == ::apache::thrift::protocol::T_STOP) {
+ break;
+ }
+ switch (fid)
+ {
+ case 0:
+ if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+ xfer += this->success.read(iprot);
+ this->__isset.success = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ default:
+ xfer += iprot->skip(ftype);
+ break;
+ }
+ xfer += iprot->readFieldEnd();
+ }
+
+ xfer += iprot->readStructEnd();
+
+ return xfer;
+}
+
+uint32_t ThriftHiveMetastore_get_lock_materialization_rebuild_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+ uint32_t xfer = 0;
+
+ xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_lock_materialization_rebuild_result");
+
+ if (this->__isset.success) {
+ xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRUCT, 0);
+ xfer += this->success.write(oprot);
+ xfer += oprot->writeFieldEnd();
+ }
+ xfer += oprot->writeFieldStop();
+ xfer += oprot->writeStructEnd();
+ return xfer;
+}
+
+
+ThriftHiveMetastore_get_lock_materialization_rebuild_presult::~ThriftHiveMetastore_get_lock_materialization_rebuild_presult() throw() {
+}
+
+
+uint32_t ThriftHiveMetastore_get_lock_materialization_rebuild_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+ apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+ uint32_t xfer = 0;
+ std::string fname;
+ ::apache::thrift::protocol::TType ftype;
+ int16_t fid;
+
+ xfer += iprot->readStructBegin(fname);
+
+ using ::apache::thrift::protocol::TProtocolException;
+
+
+ while (true)
+ {
+ xfer += iprot->readFieldBegin(fname, ftype, fid);
+ if (ftype == ::apache::thrift::protocol::T_STOP) {
+ break;
+ }
+ switch (fid)
+ {
+ case 0:
+ if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+ xfer += (*(this->success)).read(iprot);
+ this->__isset.success = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ default:
+ xfer += iprot->skip(ftype);
+ break;
+ }
+ xfer += iprot->readFieldEnd();
+ }
+
+ xfer += iprot->readStructEnd();
+
+ return xfer;
+}
+
+
+ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_args::~ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_args() throw() {
+}
+
+
+uint32_t ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+ apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+ uint32_t xfer = 0;
+ std::string fname;
+ ::apache::thrift::protocol::TType ftype;
+ int16_t fid;
+
+ xfer += iprot->readStructBegin(fname);
+
+ using ::apache::thrift::protocol::TProtocolException;
+
+
+ while (true)
+ {
+ xfer += iprot->readFieldBegin(fname, ftype, fid);
+ if (ftype == ::apache::thrift::protocol::T_STOP) {
+ break;
+ }
+ switch (fid)
+ {
+ case 1:
+ if (ftype == ::apache::thrift::protocol::T_STRING) {
+ xfer += iprot->readString(this->dbName);
+ this->__isset.dbName = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ case 2:
+ if (ftype == ::apache::thrift::protocol::T_STRING) {
+ xfer += iprot->readString(this->tableName);
+ this->__isset.tableName = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ case 3:
+ if (ftype == ::apache::thrift::protocol::T_I64) {
+ xfer += iprot->readI64(this->txnId);
+ this->__isset.txnId = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ default:
+ xfer += iprot->skip(ftype);
+ break;
+ }
+ xfer += iprot->readFieldEnd();
+ }
+
+ xfer += iprot->readStructEnd();
+
+ return xfer;
+}
+
+uint32_t ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+ uint32_t xfer = 0;
+ apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+ xfer += oprot->writeStructBegin("ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_args");
+
+ xfer += oprot->writeFieldBegin("dbName", ::apache::thrift::protocol::T_STRING, 1);
+ xfer += oprot->writeString(this->dbName);
+ xfer += oprot->writeFieldEnd();
+
+ xfer += oprot->writeFieldBegin("tableName", ::apache::thrift::protocol::T_STRING, 2);
+ xfer += oprot->writeString(this->tableName);
+ xfer += oprot->writeFieldEnd();
+
+ xfer += oprot->writeFieldBegin("txnId", ::apache::thrift::protocol::T_I64, 3);
+ xfer += oprot->writeI64(this->txnId);
+ xfer += oprot->writeFieldEnd();
+
+ xfer += oprot->writeFieldStop();
+ xfer += oprot->writeStructEnd();
+ return xfer;
+}
+
+
+ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_pargs::~ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_pargs() throw() {
+}
+
+
+uint32_t ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+ uint32_t xfer = 0;
+ apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+ xfer += oprot->writeStructBegin("ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_pargs");
+
+ xfer += oprot->writeFieldBegin("dbName", ::apache::thrift::protocol::T_STRING, 1);
+ xfer += oprot->writeString((*(this->dbName)));
+ xfer += oprot->writeFieldEnd();
+
+ xfer += oprot->writeFieldBegin("tableName", ::apache::thrift::protocol::T_STRING, 2);
+ xfer += oprot->writeString((*(this->tableName)));
+ xfer += oprot->writeFieldEnd();
+
+ xfer += oprot->writeFieldBegin("txnId", ::apache::thrift::protocol::T_I64, 3);
+ xfer += oprot->writeI64((*(this->txnId)));
+ xfer += oprot->writeFieldEnd();
+
+ xfer += oprot->writeFieldStop();
+ xfer += oprot->writeStructEnd();
+ return xfer;
+}
+
+
+ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_result::~ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_result() throw() {
+}
+
+
+uint32_t ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+ apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+ uint32_t xfer = 0;
+ std::string fname;
+ ::apache::thrift::protocol::TType ftype;
+ int16_t fid;
+
+ xfer += iprot->readStructBegin(fname);
+
+ using ::apache::thrift::protocol::TProtocolException;
+
+
+ while (true)
+ {
+ xfer += iprot->readFieldBegin(fname, ftype, fid);
+ if (ftype == ::apache::thrift::protocol::T_STOP) {
+ break;
+ }
+ switch (fid)
+ {
+ case 0:
+ if (ftype == ::apache::thrift::protocol::T_BOOL) {
+ xfer += iprot->readBool(this->success);
+ this->__isset.success = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ default:
+ xfer += iprot->skip(ftype);
+ break;
+ }
+ xfer += iprot->readFieldEnd();
+ }
+
+ xfer += iprot->readStructEnd();
+
+ return xfer;
+}
+
+uint32_t ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+ uint32_t xfer = 0;
+
+ xfer += oprot->writeStructBegin("ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_result");
+
+ if (this->__isset.success) {
+ xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_BOOL, 0);
+ xfer += oprot->writeBool(this->success);
+ xfer += oprot->writeFieldEnd();
+ }
+ xfer += oprot->writeFieldStop();
+ xfer += oprot->writeStructEnd();
+ return xfer;
+}
+
+
+ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_presult::~ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_presult() throw() {
+}
+
+
+uint32_t ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+ apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+ uint32_t xfer = 0;
+ std::string fname;
+ ::apache::thrift::protocol::TType ftype;
+ int16_t fid;
+
+ xfer += iprot->readStructBegin(fname);
+
+ using ::apache::thrift::protocol::TProtocolException;
+
+
+ while (true)
+ {
+ xfer += iprot->readFieldBegin(fname, ftype, fid);
+ if (ftype == ::apache::thrift::protocol::T_STOP) {
+ break;
+ }
+ switch (fid)
+ {
+ case 0:
+ if (ftype == ::apache::thrift::protocol::T_BOOL) {
+ xfer += iprot->readBool((*(this->success)));
+ this->__isset.success = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ default:
+ xfer += iprot->skip(ftype);
+ break;
+ }
+ xfer += iprot->readFieldEnd();
+ }
+
+ xfer += iprot->readStructEnd();
+
+ return xfer;
+}
+
void ThriftHiveMetastoreClient::getMetaConf(std::string& _return, const std::string& key)
{
send_getMetaConf(key);
@@ -61432,6 +61870,126 @@ void ThriftHiveMetastoreClient::recv_get_serde(SerDeInfo& _return)
throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "get_serde failed: unknown result");
}
+void ThriftHiveMetastoreClient::get_lock_materialization_rebuild(LockResponse& _return, const std::string& dbName, const std::string& tableName, const int64_t txnId)
+{
+ send_get_lock_materialization_rebuild(dbName, tableName, txnId);
+ recv_get_lock_materialization_rebuild(_return);
+}
+
+void ThriftHiveMetastoreClient::send_get_lock_materialization_rebuild(const std::string& dbName, const std::string& tableName, const int64_t txnId)
+{
+ int32_t cseqid = 0;
+ oprot_->writeMessageBegin("get_lock_materialization_rebuild", ::apache::thrift::protocol::T_CALL, cseqid);
+
+ ThriftHiveMetastore_get_lock_materialization_rebuild_pargs args;
+ args.dbName = &dbName;
+ args.tableName = &tableName;
+ args.txnId = &txnId;
+ args.write(oprot_);
+
+ oprot_->writeMessageEnd();
+ oprot_->getTransport()->writeEnd();
+ oprot_->getTransport()->flush();
+}
+
+void ThriftHiveMetastoreClient::recv_get_lock_materialization_rebuild(LockResponse& _return)
+{
+
+ int32_t rseqid = 0;
+ std::string fname;
+ ::apache::thrift::protocol::TMessageType mtype;
+
+ iprot_->readMessageBegin(fname, mtype, rseqid);
+ if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+ ::apache::thrift::TApplicationException x;
+ x.read(iprot_);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+ throw x;
+ }
+ if (mtype != ::apache::thrift::protocol::T_REPLY) {
+ iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+ }
+ if (fname.compare("get_lock_materialization_rebuild") != 0) {
+ iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+ }
+ ThriftHiveMetastore_get_lock_materialization_rebuild_presult result;
+ result.success = &_return;
+ result.read(iprot_);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+
+ if (result.__isset.success) {
+ // _return pointer has now been filled
+ return;
+ }
+ throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "get_lock_materialization_rebuild failed: unknown result");
+}
+
+bool ThriftHiveMetastoreClient::heartbeat_lock_materialization_rebuild(const std::string& dbName, const std::string& tableName, const int64_t txnId)
+{
+ send_heartbeat_lock_materialization_rebuild(dbName, tableName, txnId);
+ return recv_heartbeat_lock_materialization_rebuild();
+}
+
+void ThriftHiveMetastoreClient::send_heartbeat_lock_materialization_rebuild(const std::string& dbName, const std::string& tableName, const int64_t txnId)
+{
+ int32_t cseqid = 0;
+ oprot_->writeMessageBegin("heartbeat_lock_materialization_rebuild", ::apache::thrift::protocol::T_CALL, cseqid);
+
+ ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_pargs args;
+ args.dbName = &dbName;
+ args.tableName = &tableName;
+ args.txnId = &txnId;
+ args.write(oprot_);
+
+ oprot_->writeMessageEnd();
+ oprot_->getTransport()->writeEnd();
+ oprot_->getTransport()->flush();
+}
+
+bool ThriftHiveMetastoreClient::recv_heartbeat_lock_materialization_rebuild()
+{
+
+ int32_t rseqid = 0;
+ std::string fname;
+ ::apache::thrift::protocol::TMessageType mtype;
+
+ iprot_->readMessageBegin(fname, mtype, rseqid);
+ if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+ ::apache::thrift::TApplicationException x;
+ x.read(iprot_);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+ throw x;
+ }
+ if (mtype != ::apache::thrift::protocol::T_REPLY) {
+ iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+ }
+ if (fname.compare("heartbeat_lock_materialization_rebuild") != 0) {
+ iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+ }
+ bool _return;
+ ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_presult result;
+ result.success = &_return;
+ result.read(iprot_);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+
+ if (result.__isset.success) {
+ return _return;
+ }
+ throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "heartbeat_lock_materialization_rebuild failed: unknown result");
+}
+
bool ThriftHiveMetastoreProcessor::dispatchCall(::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, const std::string& fname, int32_t seqid, void* callContext) {
ProcessMap::iterator pfn;
pfn = processMap_.find(fname);
@@ -73350,6 +73908,114 @@ void ThriftHiveMetastoreProcessor::process_get_serde(int32_t seqid, ::apache::th
}
}
+void ThriftHiveMetastoreProcessor::process_get_lock_materialization_rebuild(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext)
+{
+ void* ctx = NULL;
+ if (this->eventHandler_.get() != NULL) {
+ ctx = this->eventHandler_->getContext("ThriftHiveMetastore.get_lock_materialization_rebuild", callContext);
+ }
+ ::apache::thrift::TProcessorContextFreer freer(this->eventHandler_.get(), ctx, "ThriftHiveMetastore.get_lock_materialization_rebuild");
+
+ if (this->eventHandler_.get() != NULL) {
+ this->eventHandler_->preRead(ctx, "ThriftHiveMetastore.get_lock_materialization_rebuild");
+ }
+
+ ThriftHiveMetastore_get_lock_materialization_rebuild_args args;
+ args.read(iprot);
+ iprot->readMessageEnd();
+ uint32_t bytes = iprot->getTransport()->readEnd();
+
+ if (this->eventHandler_.get() != NULL) {
+ this->eventHandler_->postRead(ctx, "ThriftHiveMetastore.get_lock_materialization_rebuild", bytes);
+ }
+
+ ThriftHiveMetastore_get_lock_materialization_rebuild_result result;
+ try {
+ iface_->get_lock_materialization_rebuild(result.success, args.dbName, args.tableName, args.txnId);
+ result.__isset.success = true;
+ } catch (const std::exception& e) {
+ if (this->eventHandler_.get() != NULL) {
+ this->eventHandler_->handlerError(ctx, "ThriftHiveMetastore.get_lock_materialization_rebuild");
+ }
+
+ ::apache::thrift::TApplicationException x(e.what());
+ oprot->writeMessageBegin("get_lock_materialization_rebuild", ::apache::thrift::protocol::T_EXCEPTION, seqid);
+ x.write(oprot);
+ oprot->writeMessageEnd();
+ oprot->getTransport()->writeEnd();
+ oprot->getTransport()->flush();
+ return;
+ }
+
+ if (this->eventHandler_.get() != NULL) {
+ this->eventHandler_->preWrite(ctx, "ThriftHiveMetastore.get_lock_materialization_rebuild");
+ }
+
+ oprot->writeMessageBegin("get_lock_materialization_rebuild", ::apache::thrift::protocol::T_REPLY, seqid);
+ result.write(oprot);
+ oprot->writeMessageEnd();
+ bytes = oprot->getTransport()->writeEnd();
+ oprot->getTransport()->flush();
+
+ if (this->eventHandler_.get() != NULL) {
+ this->eventHandler_->postWrite(ctx, "ThriftHiveMetastore.get_lock_materialization_rebuild", bytes);
+ }
+}
+
+void ThriftHiveMetastoreProcessor::process_heartbeat_lock_materialization_rebuild(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext)
+{
+ void* ctx = NULL;
+ if (this->eventHandler_.get() != NULL) {
+ ctx = this->eventHandler_->getContext("ThriftHiveMetastore.heartbeat_lock_materialization_rebuild", callContext);
+ }
+ ::apache::thrift::TProcessorContextFreer freer(this->eventHandler_.get(), ctx, "ThriftHiveMetastore.heartbeat_lock_materialization_rebuild");
+
+ if (this->eventHandler_.get() != NULL) {
+ this->eventHandler_->preRead(ctx, "ThriftHiveMetastore.heartbeat_lock_materialization_rebuild");
+ }
+
+ ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_args args;
+ args.read(iprot);
+ iprot->readMessageEnd();
+ uint32_t bytes = iprot->getTransport()->readEnd();
+
+ if (this->eventHandler_.get() != NULL) {
+ this->eventHandler_->postRead(ctx, "ThriftHiveMetastore.heartbeat_lock_materialization_rebuild", bytes);
+ }
+
+ ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_result result;
+ try {
+ result.success = iface_->heartbeat_lock_materialization_rebuild(args.dbName, args.tableName, args.txnId);
+ result.__isset.success = true;
+ } catch (const std::exception& e) {
+ if (this->eventHandler_.get() != NULL) {
+ this->eventHandler_->handlerError(ctx, "ThriftHiveMetastore.heartbeat_lock_materialization_rebuild");
+ }
+
+ ::apache::thrift::TApplicationException x(e.what());
+ oprot->writeMessageBegin("heartbeat_lock_materialization_rebuild", ::apache::thrift::protocol::T_EXCEPTION, seqid);
+ x.write(oprot);
+ oprot->writeMessageEnd();
+ oprot->getTransport()->writeEnd();
+ oprot->getTransport()->flush();
+ return;
+ }
+
+ if (this->eventHandler_.get() != NULL) {
+ this->eventHandler_->preWrite(ctx, "ThriftHiveMetastore.heartbeat_lock_materialization_rebuild");
+ }
+
+ oprot->writeMessageBegin("heartbeat_lock_materialization_rebuild", ::apache::thrift::protocol::T_REPLY, seqid);
+ result.write(oprot);
+ oprot->writeMessageEnd();
+ bytes = oprot->getTransport()->writeEnd();
+ oprot->getTransport()->flush();
+
+ if (this->eventHandler_.get() != NULL) {
+ this->eventHandler_->postWrite(ctx, "ThriftHiveMetastore.heartbeat_lock_materialization_rebuild", bytes);
+ }
+}
+
::boost::shared_ptr< ::apache::thrift::TProcessor > ThriftHiveMetastoreProcessorFactory::getProcessor(const ::apache::thrift::TConnectionInfo& connInfo) {
::apache::thrift::ReleaseHandler< ThriftHiveMetastoreIfFactory > cleanup(handlerFactory_);
::boost::shared_ptr< ThriftHiveMetastoreIf > handler(handlerFactory_->getHandler(connInfo), cleanup);
@@ -90808,7 +91474,283 @@ void ThriftHiveMetastoreConcurrentClient::recv_get_schema_version(SchemaVersion&
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
}
- if (fname.compare("get_schema_version") != 0) {
+ if (fname.compare("get_schema_version") != 0) {
+ iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+
+ // in a bad state, don't commit
+ using ::apache::thrift::protocol::TProtocolException;
+ throw TProtocolException(TProtocolException::INVALID_DATA);
+ }
+ ThriftHiveMetastore_get_schema_version_presult result;
+ result.success = &_return;
+ result.read(iprot_);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+
+ if (result.__isset.success) {
+ // _return pointer has now been filled
+ sentry.commit();
+ return;
+ }
+ if (result.__isset.o1) {
+ sentry.commit();
+ throw result.o1;
+ }
+ if (result.__isset.o2) {
+ sentry.commit();
+ throw result.o2;
+ }
+ // in a bad state, don't commit
+ throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "get_schema_version failed: unknown result");
+ }
+ // seqid != rseqid
+ this->sync_.updatePending(fname, mtype, rseqid);
+
+ // this will temporarily unlock the readMutex, and let other clients get work done
+ this->sync_.waitForWork(seqid);
+ } // end while(true)
+}
+
+void ThriftHiveMetastoreConcurrentClient::get_schema_latest_version(SchemaVersion& _return, const ISchemaName& schemaName)
+{
+ int32_t seqid = send_get_schema_latest_version(schemaName);
+ recv_get_schema_latest_version(_return, seqid);
+}
+
+int32_t ThriftHiveMetastoreConcurrentClient::send_get_schema_latest_version(const ISchemaName& schemaName)
+{
+ int32_t cseqid = this->sync_.generateSeqId();
+ ::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_);
+ oprot_->writeMessageBegin("get_schema_latest_version", ::apache::thrift::protocol::T_CALL, cseqid);
+
+ ThriftHiveMetastore_get_schema_latest_version_pargs args;
+ args.schemaName = &schemaName;
+ args.write(oprot_);
+
+ oprot_->writeMessageEnd();
+ oprot_->getTransport()->writeEnd();
+ oprot_->getTransport()->flush();
+
+ sentry.commit();
+ return cseqid;
+}
+
+void ThriftHiveMetastoreConcurrentClient::recv_get_schema_latest_version(SchemaVersion& _return, const int32_t seqid)
+{
+
+ int32_t rseqid = 0;
+ std::string fname;
+ ::apache::thrift::protocol::TMessageType mtype;
+
+ // the read mutex gets dropped and reacquired as part of waitForWork()
+ // The destructor of this sentry wakes up other clients
+ ::apache::thrift::async::TConcurrentRecvSentry sentry(&this->sync_, seqid);
+
+ while(true) {
+ if(!this->sync_.getPending(fname, mtype, rseqid)) {
+ iprot_->readMessageBegin(fname, mtype, rseqid);
+ }
+ if(seqid == rseqid) {
+ if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+ ::apache::thrift::TApplicationException x;
+ x.read(iprot_);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+ sentry.commit();
+ throw x;
+ }
+ if (mtype != ::apache::thrift::protocol::T_REPLY) {
+ iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+ }
+ if (fname.compare("get_schema_latest_version") != 0) {
+ iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+
+ // in a bad state, don't commit
+ using ::apache::thrift::protocol::TProtocolException;
+ throw TProtocolException(TProtocolException::INVALID_DATA);
+ }
+ ThriftHiveMetastore_get_schema_latest_version_presult result;
+ result.success = &_return;
+ result.read(iprot_);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+
+ if (result.__isset.success) {
+ // _return pointer has now been filled
+ sentry.commit();
+ return;
+ }
+ if (result.__isset.o1) {
+ sentry.commit();
+ throw result.o1;
+ }
+ if (result.__isset.o2) {
+ sentry.commit();
+ throw result.o2;
+ }
+ // in a bad state, don't commit
+ throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "get_schema_latest_version failed: unknown result");
+ }
+ // seqid != rseqid
+ this->sync_.updatePending(fname, mtype, rseqid);
+
+ // this will temporarily unlock the readMutex, and let other clients get work done
+ this->sync_.waitForWork(seqid);
+ } // end while(true)
+}
+
+void ThriftHiveMetastoreConcurrentClient::get_schema_all_versions(std::vector<SchemaVersion> & _return, const ISchemaName& schemaName)
+{
+ int32_t seqid = send_get_schema_all_versions(schemaName);
+ recv_get_schema_all_versions(_return, seqid);
+}
+
+int32_t ThriftHiveMetastoreConcurrentClient::send_get_schema_all_versions(const ISchemaName& schemaName)
+{
+ int32_t cseqid = this->sync_.generateSeqId();
+ ::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_);
+ oprot_->writeMessageBegin("get_schema_all_versions", ::apache::thrift::protocol::T_CALL, cseqid);
+
+ ThriftHiveMetastore_get_schema_all_versions_pargs args;
+ args.schemaName = &schemaName;
+ args.write(oprot_);
+
+ oprot_->writeMessageEnd();
+ oprot_->getTransport()->writeEnd();
+ oprot_->getTransport()->flush();
+
+ sentry.commit();
+ return cseqid;
+}
+
+void ThriftHiveMetastoreConcurrentClient::recv_get_schema_all_versions(std::vector<SchemaVersion> & _return, const int32_t seqid)
+{
+
+ int32_t rseqid = 0;
+ std::string fname;
+ ::apache::thrift::protocol::TMessageType mtype;
+
+ // the read mutex gets dropped and reacquired as part of waitForWork()
+ // The destructor of this sentry wakes up other clients
+ ::apache::thrift::async::TConcurrentRecvSentry sentry(&this->sync_, seqid);
+
+ while(true) {
+ if(!this->sync_.getPending(fname, mtype, rseqid)) {
+ iprot_->readMessageBegin(fname, mtype, rseqid);
+ }
+ if(seqid == rseqid) {
+ if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+ ::apache::thrift::TApplicationException x;
+ x.read(iprot_);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+ sentry.commit();
+ throw x;
+ }
+ if (mtype != ::apache::thrift::protocol::T_REPLY) {
+ iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+ }
+ if (fname.compare("get_schema_all_versions") != 0) {
+ iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+
+ // in a bad state, don't commit
+ using ::apache::thrift::protocol::TProtocolException;
+ throw TProtocolException(TProtocolException::INVALID_DATA);
+ }
+ ThriftHiveMetastore_get_schema_all_versions_presult result;
+ result.success = &_return;
+ result.read(iprot_);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+
+ if (result.__isset.success) {
+ // _return pointer has now been filled
+ sentry.commit();
+ return;
+ }
+ if (result.__isset.o1) {
+ sentry.commit();
+ throw result.o1;
+ }
+ if (result.__isset.o2) {
+ sentry.commit();
+ throw result.o2;
+ }
+ // in a bad state, don't commit
+ throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "get_schema_all_versions failed: unknown result");
+ }
+ // seqid != rseqid
+ this->sync_.updatePending(fname, mtype, rseqid);
+
+ // this will temporarily unlock the readMutex, and let other clients get work done
+ this->sync_.waitForWork(seqid);
+ } // end while(true)
+}
+
+void ThriftHiveMetastoreConcurrentClient::drop_schema_version(const SchemaVersionDescriptor& schemaVersion)
+{
+ int32_t seqid = send_drop_schema_version(schemaVersion);
+ recv_drop_schema_version(seqid);
+}
+
+int32_t ThriftHiveMetastoreConcurrentClient::send_drop_schema_version(const SchemaVersionDescriptor& schemaVersion)
+{
+ int32_t cseqid = this->sync_.generateSeqId();
+ ::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_);
+ oprot_->writeMessageBegin("drop_schema_version", ::apache::thrift::protocol::T_CALL, cseqid);
+
+ ThriftHiveMetastore_drop_schema_version_pargs args;
+ args.schemaVersion = &schemaVersion;
+ args.write(oprot_);
+
+ oprot_->writeMessageEnd();
+ oprot_->getTransport()->writeEnd();
+ oprot_->getTransport()->flush();
+
+ sentry.commit();
+ return cseqid;
+}
+
+void ThriftHiveMetastoreConcurrentClient::recv_drop_schema_version(const int32_t seqid)
+{
+
+ int32_t rseqid = 0;
+ std::string fname;
+ ::apache::thrift::protocol::TMessageType mtype;
+
+ // the read mutex gets dropped and reacquired as part of waitForWork()
+ // The destructor of this sentry wakes up other clients
+ ::apache::thrift::async::TConcurrentRecvSentry sentry(&this->sync_, seqid);
+
+ while(true) {
+ if(!this->sync_.getPending(fname, mtype, rseqid)) {
+ iprot_->readMessageBegin(fname, mtype, rseqid);
+ }
+ if(seqid == rseqid) {
+ if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+ ::apache::thrift::TApplicationException x;
+ x.read(iprot_);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+ sentry.commit();
+ throw x;
+ }
+ if (mtype != ::apache::thrift::protocol::T_REPLY) {
+ iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+ }
+ if (fname.compare("drop_schema_version") != 0) {
iprot_->skip(::apache::thrift::protocol::T_STRUCT);
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
@@ -90817,17 +91759,11 @@ void ThriftHiveMetastoreConcurrentClient::recv_get_schema_version(SchemaVersion&
using ::apache::thrift::protocol::TProtocolException;
throw TProtocolException(TProtocolException::INVALID_DATA);
}
- ThriftHiveMetastore_get_schema_version_presult result;
- result.success = &_return;
+ ThriftHiveMetastore_drop_schema_version_presult result;
result.read(iprot_);
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
- if (result.__isset.success) {
- // _return pointer has now been filled
- sentry.commit();
- return;
- }
if (result.__isset.o1) {
sentry.commit();
throw result.o1;
@@ -90836,8 +91772,8 @@ void ThriftHiveMetastoreConcurrentClient::recv_get_schema_version(SchemaVersion&
sentry.commit();
throw result.o2;
}
- // in a bad state, don't commit
- throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "get_schema_version failed: unknown result");
+ sentry.commit();
+ return;
}
// seqid != rseqid
this->sync_.updatePending(fname, mtype, rseqid);
@@ -90847,20 +91783,20 @@ void ThriftHiveMetastoreConcurrentClient::recv_get_schema_version(SchemaVersion&
} // end while(true)
}
-void ThriftHiveMetastoreConcurrentClient::get_schema_latest_version(SchemaVersion& _return, const ISchemaName& schemaName)
+void ThriftHiveMetastoreConcurrentClient::get_schemas_by_cols(FindSchemasByColsResp& _return, const FindSchemasByColsRqst& rqst)
{
- int32_t seqid = send_get_schema_latest_version(schemaName);
- recv_get_schema_latest_version(_return, seqid);
+ int32_t seqid = send_get_schemas_by_cols(rqst);
+ recv_get_schemas_by_cols(_return, seqid);
}
-int32_t ThriftHiveMetastoreConcurrentClient::send_get_schema_latest_version(const ISchemaName& schemaName)
+int32_t ThriftHiveMetastoreConcurrentClient::send_get_schemas_by_cols(const FindSchemasByColsRqst& rqst)
{
int32_t cseqid = this->sync_.generateSeqId();
::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_);
- oprot_->writeMessageBegin("get_schema_latest_version", ::apache::thrift::protocol::T_CALL, cseqid);
+ oprot_->writeMessageBegin("get_schemas_by_cols", ::apache::thrift::protocol::T_CALL, cseqid);
- ThriftHiveMetastore_get_schema_latest_version_pargs args;
- args.schemaName = &schemaName;
+ ThriftHiveMetastore_get_schemas_by_cols_pargs args;
+ args.rqst = &rqst;
args.write(oprot_);
oprot_->writeMessageEnd();
@@ -90871,7 +91807,7 @@ int32_t ThriftHiveMetastoreConcurrentClient::send_get_schema_latest_version(cons
return cseqid;
}
-void ThriftHiveMetastoreConcurrentClient::recv_get_schema_latest_version(SchemaVersion& _return, const int32_t seqid)
+void ThriftHiveMetastoreConcurrentClient::recv_get_schemas_by_cols(FindSchemasByColsResp& _return, const int32_t seqid)
{
int32_t rseqid = 0;
@@ -90900,7 +91836,7 @@ void ThriftHiveMetastoreConcurrentClient::recv_get_schema_latest_version(SchemaV
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
}
- if (fname.compare("get_schema_latest_version") != 0) {
+ if (fname.compare("get_schemas_by_cols") != 0) {
iprot_->skip(::apache::thrift::protocol::T_STRUCT);
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
@@ -90909,7 +91845,7 @@ void ThriftHiveMetastoreConcurrentClient::recv_get_schema_latest_version(SchemaV
using ::apache::thrift::protocol::TProtocolException;
throw TProtocolException(TProtocolException::INVALID_DATA);
}
- ThriftHiveMetastore_get_schema_latest_version_presult result;
+ ThriftHiveMetastore_get_schemas_by_cols_presult result;
result.success = &_return;
result.read(iprot_);
iprot_->readMessageEnd();
@@ -90924,12 +91860,8 @@ void ThriftHiveMetastoreConcurrentClient::recv_get_schema_latest_version(SchemaV
sentry.commit();
throw result.o1;
}
- if (result.__isset.o2) {
- sentry.commit();
- throw result.o2;
- }
// in a bad state, don't commit
- throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "get_schema_latest_version failed: unknown result");
+ throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "get_schemas_by_cols failed: unknown result");
}
// seqid != rseqid
this->sync_.updatePending(fname, mtype, rseqid);
@@ -90939,20 +91871,20 @@ void ThriftHiveMetastoreConcurrentClient::recv_get_schema_latest_version(SchemaV
} // end while(true)
}
-void ThriftHiveMetastoreConcurrentClient::get_schema_all_versions(std::vector<SchemaVersion> & _return, const ISchemaName& schemaName)
+void ThriftHiveMetastoreConcurrentClient::map_schema_version_to_serde(const MapSchemaVersionToSerdeRequest& rqst)
{
- int32_t seqid = send_get_schema_all_versions(schemaName);
- recv_get_schema_all_versions(_return, seqid);
+ int32_t seqid = send_map_schema_version_to_serde(rqst);
+ recv_map_schema_version_to_serde(seqid);
}
-int32_t ThriftHiveMetastoreConcurrentClient::send_get_schema_all_versions(const ISchemaName& schemaName)
+int32_t ThriftHiveMetastoreConcurrentClient::send_map_schema_version_to_serde(const MapSchemaVersionToSerdeRequest& rqst)
{
int32_t cseqid = this->sync_.generateSeqId();
::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_);
- oprot_->writeMessageBegin("get_schema_all_versions", ::apache::thrift::protocol::T_CALL, cseqid);
+ oprot_->writeMessageBegin("map_schema_version_to_serde", ::apache::thrift::protocol::T_CALL, cseqid);
- ThriftHiveMetastore_get_schema_all_versions_pargs args;
- args.schemaName = &schemaName;
+ ThriftHiveMetastore_map_schema_version_to_serde_pargs args;
+ args.rqst = &rqst;
args.write(oprot_);
oprot_->writeMessageEnd();
@@ -90963,7 +91895,7 @@ int32_t ThriftHiveMetastoreConcurrentClient::send_get_schema_all_versions(const
return cseqid;
}
-void ThriftHiveMetastoreConcurrentClient::recv_get_schema_all_versions(std::vector<SchemaVersion> & _return, const int32_t seqid)
+void ThriftHiveMetastoreConcurrentClient::recv_map_schema_version_to_serde(const int32_t seqid)
{
int32_t rseqid = 0;
@@ -90992,7 +91924,7 @@ void ThriftHiveMetastoreConcurrentClient::recv_get_schema_all_versions(std::vect
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
}
- if (fname.compare("get_schema_all_versions") != 0) {
+ if (fname.compare("map_schema_version_to_serde") != 0) {
iprot_->skip(::apache::thrift::protocol::T_STRUCT);
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
@@ -91001,17 +91933,11 @@ void ThriftHiveMetastoreConcurrentClient::recv_get_schema_all_versions(std::vect
using ::apache::thrift::protocol::TProtocolException;
throw TProtocolException(TProtocolException::INVALID_DATA);
}
- ThriftHiveMetastore_get_schema_all_versions_presult result;
- result.success = &_return;
+ ThriftHiveMetastore_map_schema_version_to_serde_presult result;
result.read(iprot_);
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
- if (result.__isset.success) {
- // _return pointer has now been filled
- sentry.commit();
- return;
- }
if (result.__isset.o1) {
sentry.commit();
throw result.o1;
@@ -91020,8 +91946,8 @@ void ThriftHiveMetastoreConcurrentClient::recv_get_schema_all_versions(std::vect
sentry.commit();
throw result.o2;
}
- // in a bad state, don't commit
- throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "get_schema_all_versions failed: unknown result");
+ sentry.commit();
+ return;
}
// seqid != rseqid
this->sync_.updatePending(fname, mtype, rseqid);
@@ -91031,20 +91957,20 @@ void ThriftHiveMetastoreConcurrentClient::recv_get_schema_all_versions(std::vect
} // end while(true)
}
-void ThriftHiveMetastoreConcurrentClient::drop_schema_version(const SchemaVersionDescriptor& schemaVersion)
+void ThriftHiveMetastoreConcurrentClient::set_schema_version_state(const SetSchemaVersionStateRequest& rqst)
{
- int32_t seqid = send_drop_schema_version(schemaVersion);
- recv_drop_schema_version(seqid);
+ int32_t seqid = send_set_schema_version_state(rqst);
+ recv_set_schema_version_state(seqid);
}
-int32_t ThriftHiveMetastoreConcurrentClient::send_drop_schema_version(const SchemaVersionDescriptor& schemaVersion)
+int32_t ThriftHiveMetastoreConcurrentClient::send_set_schema_version_state(const SetSchemaVersionStateRequest& rqst)
{
int32_t cseqid = this->sync_.generateSeqId();
::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_);
- oprot_->writeMessageBegin("drop_schema_version", ::apache::thrift::protocol::T_CALL, cseqid);
+ oprot_->writeMessageBegin("set_schema_version_state", ::apache::thrift::protocol::T_CALL, cseqid);
- ThriftHiveMetastore_drop_schema_version_pargs args;
- args.schemaVersion = &schemaVersion;
+ ThriftHiveMetastore_set_schema_version_state_pargs args;
+ args.rqst = &rqst;
args.write(oprot_);
oprot_->writeMessageEnd();
@@ -91055,7 +91981,7 @@ int32_t ThriftHiveMetastoreConcurrentClient::send_drop_schema_version(const Sche
return cseqid;
}
-void ThriftHiveMetastoreConcurrentClient::recv_drop_schema_version(const int32_t seqid)
+void ThriftHiveMetastoreConcurrentClient::recv_set_schema_version_state(const int32_t seqid)
{
int32_t rseqid = 0;
@@ -91084,7 +92010,7 @@ void ThriftHiveMetastoreConcurrentClient::recv_drop_schema_version(const int32_t
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
}
- if (fname.compare("drop_schema_version") != 0) {
+ if (fname.compare("set_schema_version_state") != 0) {
iprot_->skip(::apache::thrift::protocol::T_STRUCT);
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
@@ -91093,7 +92019,7 @@ void ThriftHiveMetastoreConcurrentClient::recv_drop_schema_version(const int32_t
using ::apache::thrift::protocol::TProtocolException;
throw TProtocolException(TProtocolException::INVALID_DATA);
}
- ThriftHiveMetastore_drop_schema_version_presult result;
+ ThriftHiveMetastore_set_schema_version_state_presult result;
result.read(iprot_);
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
@@ -91106,96 +92032,12 @@ void ThriftHiveMetastoreConcurrentClient::recv_drop_schema_version(const int32_t
sentry.commit();
throw result.o2;
}
- sentry.commit();
- return;
- }
- // seqid != rseqid
- this->sync_.updatePending(fname, mtype, rseqid);
-
- // this will temporarily unlock the readMutex, and let other clients get work done
- this->sync_.waitForWork(seqid);
- } // end while(true)
-}
-
-void ThriftHiveMetastoreConcurrentClient::get_schemas_by_cols(FindSchemasByColsResp& _return, const FindSchemasByColsRqst& rqst)
-{
- int32_t seqid = send_get_schemas_by_cols(rqst);
- recv_get_schemas_by_cols(_return, seqid);
-}
-
-int32_t ThriftHiveMetastoreConcurrentClient::send_get_schemas_by_cols(const FindSchemasByColsRqst& rqst)
-{
- int32_t cseqid = this->sync_.generateSeqId();
- ::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_);
- oprot_->writeMessageBegin("get_schemas_by_cols", ::apache::thrift::protocol::T_CALL, cseqid);
-
- ThriftHiveMetastore_get_schemas_by_cols_pargs args;
- args.rqst = &rqst;
- args.write(oprot_);
-
- oprot_->writeMessageEnd();
- oprot_->getTransport()->writeEnd();
- oprot_->getTransport()->flush();
-
- sentry.commit();
- return cseqid;
-}
-
-void ThriftHiveMetastoreConcurrentClient::recv_get_schemas_by_cols(FindSchemasByColsResp& _return, const int32_t seqid)
-{
-
- int32_t rseqid = 0;
- std::string fname;
- ::apache::thrift::protocol::TMessageType mtype;
-
- // the read mutex gets dropped and reacquired as part of waitForWork()
- // The destructor of this sentry wakes up other clients
- ::apache::thrift::async::TConcurrentRecvSentry sentry(&this->sync_, seqid);
-
- while(true) {
- if(!this->sync_.getPending(fname, mtype, rseqid)) {
- iprot_->readMessageBegin(fname, mtype, rseqid);
- }
- if(seqid == rseqid) {
- if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
- ::apache::thrift::TApplicationException x;
- x.read(iprot_);
- iprot_->readMessageEnd();
- iprot_->getTransport()->readEnd();
- sentry.commit();
- throw x;
- }
- if (mtype != ::apache::thrift::protocol::T_REPLY) {
- iprot_->skip(::apache::thrift::protocol::T_STRUCT);
- iprot_->readMessageEnd();
- iprot_->getTransport()->readEnd();
- }
- if (fname.compare("get_schemas_by_cols") != 0) {
- iprot_->skip(::apache::thrift::protocol::T_STRUCT);
- iprot_->readMessageEnd();
- iprot_->getTransport()->readEnd();
-
- // in a bad state, don't commit
- using ::apache::thrift::protocol::TProtocolException;
- throw TProtocolException(TProtocolException::INVALID_DATA);
- }
- ThriftHiveMetastore_get_schemas_by_cols_presult result;
- result.success = &_return;
- result.read(iprot_);
- iprot_->readMessageEnd();
- iprot_->getTransport()->readEnd();
-
- if (result.__isset.success) {
- // _return pointer has now been filled
- sentry.commit();
- return;
- }
- if (result.__isset.o1) {
+ if (result.__isset.o3) {
sentry.commit();
- throw result.o1;
+ throw result.o3;
}
- // in a bad state, don't commit
- throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "get_schemas_by_cols failed: unknown result");
+ sentry.commit();
+ return;
}
// seqid != rseqid
this->sync_.updatePending(fname, mtype, rseqid);
@@ -91205,20 +92047,20 @@ void ThriftHiveMetastoreConcurrentClient::recv_get_schemas_by_cols(FindSchemasBy
} // end while(true)
}
-void ThriftHiveMetastoreConcurrentClient::map_schema_version_to_serde(const MapSchemaVersionToSerdeRequest& rqst)
+void ThriftHiveMetastoreConcurrentClient::add_serde(const SerDeInfo& serde)
{
- int32_t seqid = send_map_schema_version_to_serde(rqst);
- recv_map_schema_version_to_serde(seqid);
+ int32_t seqid = send_add_serde(serde);
+ recv_add_serde(seqid);
}
-int32_t ThriftHiveMetastoreConcurrentClient::send_map_schema_version_to_serde(const MapSchemaVersionToSerdeRequest& rqst)
+int32_t ThriftHiveMetastoreConcurrentClient::send_add_serde(const SerDeInfo& serde)
{
int32_t cseqid = this->sync_.generateSeqId();
::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_);
- oprot_->writeMessageBegin("map_schema_version_to_serde", ::apache::thrift::protocol::T_CALL, cseqid);
+ oprot_->writeMessageBegin("add_serde", ::apache::thrift::protocol::T_CALL, cseqid);
- ThriftHiveMetastore_map_schema_version_to_serde_pargs args;
- args.rqst = &rqst;
+ ThriftHiveMetastore_add_serde_pargs args;
+ args.serde = &serde;
args.write(oprot_);
oprot_->writeMessageEnd();
@@ -91229,7 +92071,7 @@ int32_t ThriftHiveMetastoreConcurrentClient::send_map_schema_version_to_serde(co
return cseqid;
}
-void ThriftHiveMetastoreConcurrentClient::recv_map_schema_version_to_serde(const int32_t seqid)
+void ThriftHiveMetastoreConcurrentClient::recv_add_serde(const int32_t seqid)
{
int32_t rseqid = 0;
@@ -91258,7 +92100,7 @@ void ThriftHiveMetastoreConcurrentClient::recv_map_schema_version_to_serde(const
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
}
- if (fname.compare("map_schema_version_to_serde") != 0) {
+ if (fname.compare("add_serde") != 0) {
iprot_->skip(::apache::thrift::protocol::T_STRUCT);
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
@@ -91267,7 +92109,7 @@ void ThriftHiveMetastoreConcurrentClient::recv_map_schema_version_to_serde(const
using ::apache::thrift::protocol::TProtocolException;
throw TProtocolException(TProtocolException::INVALID_DATA);
}
- ThriftHiveMetastore_map_schema_version_to_serde_presult result;
+ ThriftHiveMetastore_add_serde_presult result;
result.read(iprot_);
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
@@ -91291,19 +92133,19 @@ void ThriftHiveMetastoreConcurrentClient::recv_map_schema_version_to_serde(const
} // end while(true)
}
-void ThriftHiveMetastoreConcurrentClient::set_schema_version_state(const SetSchemaVersionStateRequest& rqst)
+void ThriftHiveMetastoreConcurrentClient::get_serde(SerDeInfo& _return, const GetSerdeRequest& rqst)
{
- int32_t seqid = send_set_schema_version_state(rqst);
- recv_set_schema_version_state(seqid);
+ int32_t seqid = send_get_serde(rqst);
+ recv_get_serde(_return, seqid);
}
-int32_t ThriftHiveMetastoreConcurrentClient::send_set_schema_version_state(const SetSchemaVersionStateRequest& rqst)
+int32_t ThriftHiveMetastoreConcurrentClient::send_get_serde(const GetSerdeRequest& rqst)
{
int32_t cseqid = this->sync_.generateSeqId();
::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_);
- oprot_->writeMessageBegin("set_schema_version_state", ::apache::thrift::protocol::T_CALL, cseqid);
+ oprot_->writeMessageBegin("get_serde", ::apache::thrift::protocol::T_CALL, cseqid);
- ThriftHiveMetastore_set_schema_version_state_pargs args;
+ ThriftHiveMetastore_get_serde_pargs args;
args.rqst = &rqst;
args.write(oprot_);
@@ -91315,7 +92157,7 @@ int32_t ThriftHiveMetastoreConcurrentClient::send_set_schema_version_state(const
return cseqid;
}
-void ThriftHiveMetastoreConcurrentClient::recv_set_schema_version_state(const int32_t seqid)
+void ThriftHiveMetastoreConcurrentClient::recv_get_serde(SerDeInfo& _return, const int32_t seqid)
{
int32_t rseqid = 0;
@@ -91344,7 +92186,7 @@ void ThriftHiveMetastoreConcurrentClient::recv_set_schema_version_state(const in
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
}
- if (fname.compare("set_schema_version_state") != 0) {
+ if (fname.compare("get_serde") != 0) {
iprot_->skip(::apache::thrift::protocol::T_STRUCT);
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
@@ -91353,11 +92195,17 @@ void ThriftHiveMetastoreConcurrentClient::recv_set_schema_version_state(const in
using ::apache::thrift::protocol::TProtocolException;
throw TProtocolException(TProtocolException::INVALID_DATA);
}
- ThriftHiveMetastore_set_schema_version_state_presult result;
+ ThriftHiveMetastore_get_serde_presult result;
+ result.success = &_return;
result.read(iprot_);
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
+ if (result.__isset.success) {
+ // _return pointer has now been filled
+ sentry.commit();
+ return;
+ }
if (result.__isset.o1) {
sentry.commit();
throw result.o1;
@@ -91366,12 +92214,8 @@ void ThriftHiveMetastoreConcurrentClient::recv_set_schema_version_state(const in
sentry.commit();
throw result.o2;
}
- if (result.__isset.o3) {
- sentry.commit();
- throw result.o3;
- }
- sentry.commit();
- return;
+ // in a bad state, don't commit
+ throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "get_serde failed: unknown result");
}
// seqid != rseqid
this->sync_.updatePending(fname, mtype, rseqid);
@@ -91381,20 +92225,22 @@ void ThriftHiveMetastoreConcurrentClient::recv_set_schema_version_state(const in
} // end while(true)
}
-void ThriftHiveMetastoreConcurrentClient::add_serde(const SerDeInfo& serde)
+void ThriftHiveMetastoreConcurrentClient::get_lock_materialization_rebuild(LockResponse& _return, const std::string& dbName, const std::string& tableName, const int64_t txnId)
{
- int32_t seqid = send_add_serde(serde);
- recv_add_serde(seqid);
+ int32_t seqid = send_get_lock_materialization_rebuild(dbName, tableName, txnId);
+ recv_get_lock_materialization_rebuild(_return, seqid);
}
-int32_t ThriftHiveMetastoreConcurrentClient::send_add_serde(const SerDeInfo& serde)
+int32_t ThriftHiveMetastoreConcurrentClient::send_get_lock_materialization_rebuild(const std::string& dbName, const std::string& tableName, const int64_t txnId)
{
int32_t cseqid = this->sync_.generateSeqId();
::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_);
- oprot_->writeMessageBegin("add_serde", ::apache::thrift::protocol::T_CALL, cseqid);
+ oprot_->writeMessageBegin("get_lock_materialization_rebuild", ::apache::thrift::protocol::T_CALL, cseqid);
- ThriftHiveMetastore_add_serde_pargs args;
- args.serde = &serde;
+ ThriftHiveMetastore_get_lock_materialization_rebuild_pargs args;
+ args.dbName = &dbName;
+ args.tableName = &tableName;
+ args.txnId = &txnId;
args.write(oprot_);
oprot_->writeMessageEnd();
@@ -91405,7 +92251,7 @@ int32_t ThriftHiveMetastoreConcurrentClient::send_add_serde(const SerDeInfo& ser
return cseqid;
}
-void ThriftHiveMetastoreConcurrentClient::recv_add_serde(const int32_t seqid)
+void ThriftHiveMetastoreConcurrentClient::recv_get_lock_materialization_rebuild(LockResponse& _return, const int32_t seqid)
{
int32_t rseqid = 0;
@@ -91434,7 +92280,7 @@ void ThriftHiveMetastoreConcurrentClient::recv_add_serde(const int32_t seqid)
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
}
- if (fname.compare("add_serde") != 0) {
+ if (fname.compare("get_lock_materialization_rebuild") != 0) {
iprot_->skip(::apache::thrift::protocol::T_STRUCT);
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
@@ -91443,21 +92289,19 @@ void ThriftHiveMetastoreConcurrentClient::recv_add_serde(const int32_t seqid)
using ::apache::thrift::protocol::TProtocolException;
throw TProtocolException(TProtocolException::INVALID_DATA);
}
- ThriftHiveMetastore_add_serde_presult result;
+ ThriftHiveMetastore_get_lock_materialization_rebuild_presult result;
+ result.success = &_return;
result.read(iprot_);
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
- if (result.__isset.o1) {
- sentry.commit();
- throw result.o1;
- }
- if (result.__isset.o2) {
+ if (result.__isset.success) {
+ // _return pointer has now been filled
sentry.commit();
- throw result.o2;
+ return;
}
- sentry.commit();
- return;
+ // in a bad state, don't commit
+ throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "get_lock_materialization_rebuild failed: unknown result");
}
// seqid != rseqid
this->sync_.updatePending(fname, mtype, rseqid);
@@ -91467,20 +92311,22 @@ void ThriftHiveMetastoreConcurrentClient::recv_add_serde(const int32_t seqid)
} // end while(true)
}
-void ThriftHiveMetastoreConcurrentClient::get_serde(SerDeInfo& _return, const GetSerdeRequest& rqst)
+bool ThriftHiveMetastoreConcurrentClient::heartbeat_lock_materialization_rebuild(const std::string& dbName, const std::string& tableName, const int64_t txnId)
{
- int32_t seqid = send_get_serde(rqst);
- recv_get_serde(_return, seqid);
+ int32_t seqid = send_heartbeat_lock_materialization_rebuild(dbName, tableName, txnId);
+ return recv_heartbeat_lock_materialization_rebuild(seqid);
}
-int32_t ThriftHiveMetastoreConcurrentClient::send_get_serde(const GetSerdeRequest& rqst)
+int32_t ThriftHiveMetastoreConcurrentClient::send_heartbeat_lock_materialization_rebuild(const std::string& dbName, const std::string& tableName, const int64_t txnId)
{
int32_t cseqid = this->sync_.generateSeqId();
::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_);
- oprot_->writeMessageBegin("get_serde", ::apache::thrift::protocol::T_CALL, cseqid);
+ oprot_->writeMessageBegin("heartbeat_lock_materialization_rebuild", ::apache::thrift::protocol::T_CALL, cseqid);
- ThriftHiveMetastore_get_serde_pargs args;
- args.rqst = &rqst;
+ ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_pargs args;
+ args.dbName = &dbName;
+ args.tableName = &tableName;
+ args.txnId = &txnId;
args.write(oprot_);
oprot_->writeMessageEnd();
@@ -91491,7 +92337,7 @@ int32_t ThriftHiveMetastoreConcurrentClient::send_get_serde(const GetSerdeReques
return cseqid;
}
-void ThriftHiveMetastoreConcurrentClient::recv_get_serde(SerDeInfo& _return, const int32_t seqid)
+bool ThriftHiveMetastoreConcurrentClient::recv_heartbeat_lock_materialization_rebuild(const int32_t seqid)
{
int32_t rseqid = 0;
@@ -91520,7 +92366,7 @@ void ThriftHiveMetastoreConcurrentClient::recv_get_serde(SerDeInfo& _return, con
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
}
- if (fname.compare("get_serde") != 0) {
+ if (fname.compare("heartbeat_lock_materialization_rebuild") != 0) {
iprot_->skip(::apache::thrift::protocol::T_STRUCT);
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
@@ -91529,27 +92375,19 @@ void ThriftHiveMetastoreConcurrentClient::recv_get_serde(SerDeInfo& _return, con
using ::apache::thrift::protocol::TProtocolException;
throw TProtocolException(TProtocolException::INVALID_DATA);
}
- ThriftHiveMetastore_get_serde_presult result;
+ bool _return;
+ ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_presult result;
result.success = &_return;
result.read(iprot_);
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
if (result.__isset.success) {
- // _return pointer has now been filled
sentry.commit();
- return;
- }
- if (result.__isset.o1) {
- sentry.commit();
- throw result.o1;
- }
- if (result.__isset.o2) {
- sentry.commit();
- throw result.o2;
+ return _return;
}
// in a bad state, don't commit
- throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "get_serde failed: unknown result");
+ throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "heartbeat_lock_materialization_rebuild failed: unknown result");
}
// seqid != rseqid
this->sync_.updatePending(fname, mtype, rseqid);
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/standalone-metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.h
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.h b/standalone-metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.h
index b9e8e24..802d8e3 100644
--- a/standalone-metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.h
+++ b/standalone-metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.h
@@ -222,6 +222,8 @@ class ThriftHiveMetastoreIf : virtual public ::facebook::fb303::FacebookService
virtual void set_schema_version_state(const SetSchemaVersionStateRequest& rqst) = 0;
virtual void add_serde(const SerDeInfo& serde) = 0;
virtual void get_serde(SerDeInfo& _return, const GetSerdeRequest& rqst) = 0;
+ virtual void get_lock_materialization_rebuild(LockResponse& _return, const std::string& dbName, const std::string& tableName, const int64_t txnId) = 0;
+ virtual bool heartbeat_lock_materialization_rebuild(const std::string& dbName, const std::string& tableName, const int64_t txnId) = 0;
};
class ThriftHiveMetastoreIfFactory : virtual public ::facebook::fb303::FacebookServiceIfFactory {
@@ -878,6 +880,13 @@ class ThriftHiveMetastoreNull : virtual public ThriftHiveMetastoreIf , virtual p
void get_serde(SerDeInfo& /* _return */, const GetSerdeRequest& /* rqst */) {
return;
}
+ void get_lock_materialization_rebuild(LockResponse& /* _return */, const std::string& /* dbName */, const std::string& /* tableName */, const int64_t /* txnId */) {
+ return;
+ }
+ bool heartbeat_lock_materialization_rebuild(const std::string& /* dbName */, const std::string& /* tableName */, const int64_t /* txnId */) {
+ bool _return = false;
+ return _return;
+ }
};
typedef struct _ThriftHiveMetastore_getMetaConf_args__isset {
@@ -25399,6 +25408,242 @@ class ThriftHiveMetastore_get_serde_presult {
};
+typedef struct _ThriftHiveMetastore_get_lock_materialization_rebuild_args__isset {
+ _ThriftHiveMetastore_get_lock_materialization_rebuild_args__isset() : dbName(false), tableName(false), txnId(false) {}
+ bool dbName :1;
+ bool tableName :1;
+ bool txnId :1;
+} _ThriftHiveMetastore_get_lock_materialization_rebuild_args__isset;
+
+class ThriftHiveMetastore_get_lock_materialization_rebuild_args {
+ public:
+
+ ThriftHiveMetastore_get_lock_materialization_rebuild_args(const ThriftHiveMetastore_get_lock_materialization_rebuild_args&);
+ ThriftHiveMetastore_get_lock_materialization_rebuild_args& operator=(const ThriftHiveMetastore_get_lock_materialization_rebuild_args&);
+ ThriftHiveMetastore_get_lock_materialization_rebuild_args() : dbName(), tableName(), txnId(0) {
+ }
+
+ virtual ~ThriftHiveMetastore_get_lock_materialization_rebuild_args() throw();
+ std::string dbName;
+ std::string tableName;
+ int64_t txnId;
+
+ _ThriftHiveMetastore_get_lock_materialization_rebuild_args__isset __isset;
+
+ void __set_dbName(const std::string& val);
+
+ void __set_tableName(const std::string& val);
+
+ void __set_txnId(const int64_t val);
+
+ bool operator == (const ThriftHiveMetastore_get_lock_materialization_rebuild_args & rhs) const
+ {
+ if (!(dbName == rhs.dbName))
+ return false;
+ if (!(tableName == rhs.tableName))
+ return false;
+ if (!(txnId == rhs.txnId))
+ return false;
+ return true;
+ }
+ bool operator != (const ThriftHiveMetastore_get_lock_materialization_rebuild_args &rhs) const {
+ return !(*this == rhs);
+ }
+
+ bool operator < (const ThriftHiveMetastore_get_lock_materialization_rebuild_args & ) const;
+
+ uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+ uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class ThriftHiveMetastore_get_lock_materialization_rebuild_pargs {
+ public:
+
+
+ virtual ~ThriftHiveMetastore_get_lock_materialization_rebuild_pargs() throw();
+ const std::string* dbName;
+ const std::string* tableName;
+ const int64_t* txnId;
+
+ uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _ThriftHiveMetastore_get_lock_materialization_rebuild_result__isset {
+ _ThriftHiveMetastore_get_lock_materialization_rebuild_result__isset() : success(false) {}
+ bool success :1;
+} _ThriftHiveMetastore_get_lock_materialization_rebuild_result__isset;
+
+class ThriftHiveMetastore_get_lock_materialization_rebuild_result {
+ public:
+
+ ThriftHiveMetastore_get_lock_materialization_rebuild_result(const ThriftHiveMetastore_get_lock_materialization_rebuild_result&);
+ ThriftHiveMetastore_get_lock_materialization_rebuild_result& operator=(const ThriftHiveMetastore_get_lock_materialization_rebuild_result&);
+ ThriftHiveMetastore_get_lock_materialization_rebuild_result() {
+ }
+
+ virtual ~ThriftHiveMetastore_get_lock_materialization_rebuild_result() throw();
+ LockResponse success;
+
+ _ThriftHiveMetastore_get_lock_materialization_rebuild_result__isset __isset;
+
+ void __set_success(const LockResponse& val);
+
+ bool operator == (const ThriftHiveMetastore_get_lock_materialization_rebuild_result & rhs) const
+ {
+ if (!(success == rhs.success))
+ return false;
+ return true;
+ }
+ bool operator != (const ThriftHiveMetastore_get_lock_materialization_rebuild_result &rhs) const {
+ return !(*this == rhs);
+ }
+
+ bool operator < (const ThriftHiveMetastore_get_lock_materialization_rebuild_result & ) const;
+
+ uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+ uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _ThriftHiveMetastore_get_lock_materialization_rebuild_presult__isset {
+ _ThriftHiveMetastore_get_lock_materialization_rebuild_presult__isset() : success(false) {}
+ bool success :1;
+} _ThriftHiveMetastore_get_lock_materialization_rebuild_presult__isset;
+
+class ThriftHiveMetastore_get_lock_materialization_rebuild_presult {
+ public:
+
+
+ virtual ~ThriftHiveMetastore_get_lock_materialization_rebuild_presult() throw();
+ LockResponse* success;
+
+ _ThriftHiveMetastore_get_lock_materialization_rebuild_presult__isset __isset;
+
+ uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+typedef struct _ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_args__isset {
+ _ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_args__isset() : dbName(false), tableName(false), txnId(false) {}
+ bool dbName :1;
+ bool tableName :1;
+ bool txnId :1;
+} _ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_args__isset;
+
+class ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_args {
+ public:
+
+ ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_args(const ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_args&);
+ ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_args& operator=(const ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_args&);
+ ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_args() : dbName(), tableName(), txnId(0) {
+ }
+
+ virtual ~ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_args() throw();
+ std::string dbName;
+ std::string tableName;
+ int64_t txnId;
+
+ _ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_args__isset __isset;
+
+ void __set_dbName(const std::string& val);
+
+ void __set_tableName(const std::string& val);
+
+ void __set_txnId(const int64_t val);
+
+ bool operator == (const ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_args & rhs) const
+ {
+ if (!(dbName == rhs.dbName))
+ return false;
+ if (!(tableName == rhs.tableName))
+ return false;
+ if (!(txnId == rhs.txnId))
+ return false;
+ return true;
+ }
+ bool operator != (const ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_args &rhs) const {
+ return !(*this == rhs);
+ }
+
+ bool operator < (const ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_args & ) const;
+
+ uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+ uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_pargs {
+ public:
+
+
+ virtual ~ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_pargs() throw();
+ const std::string* dbName;
+ const std::string* tableName;
+ const int64_t* txnId;
+
+ uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_result__isset {
+ _ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_result__isset() : success(false) {}
+ bool success :1;
+} _ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_result__isset;
+
+class ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_result {
+ public:
+
+ ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_result(const ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_result&);
+ ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_result& operator=(const ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_result&);
+ ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_result() : success(0) {
+ }
+
+ virtual ~ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_result() throw();
+ bool success;
+
+ _ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_result__isset __isset;
+
+ void __set_success(const bool val);
+
+ bool operator == (const ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_result & rhs) const
+ {
+ if (!(success == rhs.success))
+ return false;
+ return true;
+ }
+ bool operator != (const ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_result &rhs) const {
+ return !(*this == rhs);
+ }
+
+ bool operator < (const ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_result & ) const;
+
+ uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+ uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_presult__isset {
+ _ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_presult__isset() : success(false) {}
+ bool success :1;
+} _ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_presult__isset;
+
+class ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_presult {
+ public:
+
+
+ virtual ~ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_presult() throw();
+ bool* success;
+
+ _ThriftHiveMetastore_heartbeat_lock_materialization_rebuild_presult__isset __isset;
+
+ uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
class ThriftHiveMetastoreClient : virtual public ThriftHiveMetastoreIf, public ::facebook::fb303::FacebookServiceClient {
public:
ThriftHiveMetastoreClient(boost::shared_ptr< ::apache::thrift::protocol::TProtocol> prot) :
@@ -26010,6 +26255,12 @@ class ThriftHiveMetastoreClient : virtual public ThriftHiveMetastoreIf, public
void get_serde(SerDeInfo& _return, const GetSerdeRequest& rqst);
void send_get_serde(const GetSerdeRequest& rqst);
void recv_get_serde(SerDeInfo& _return);
+ void get_lock_materialization_rebuild(LockResponse& _return, const std::string& dbName, const std::string& tableName, const int64_t txnId);
+ void send_get_lock_materialization_rebuild(const std::string& dbName, const std::string& tableName, const int64_t txnId);
+ void recv_get_lock_materialization_rebuild(LockResponse& _return);
+ bool heartbeat_lock_materialization_rebuild(const std::string& dbName, const std::string& tableName, const int64_t txnId);
+ void send_heartbeat_lock_materialization_rebuild(const std::string& dbName, const std::string& tableName, const int64_t txnId);
+ bool recv_heartbeat_lock_materialization_rebuild();
};
class ThriftHiveMetastoreProcessor : public ::facebook::fb303::FacebookServiceProcessor {
@@ -26220,6 +26471,8 @@ class ThriftHiveMetastoreProcessor : public ::facebook::fb303::FacebookServiceP
void process_set_schema_version_state(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
void process_add_serde(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
void process_get_serde(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+ void process_get_lock_materialization_rebuild(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+ void process_heartbeat_lock_materialization_rebuild(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
public:
ThriftHiveMetastoreProcessor(boost::shared_ptr<ThriftHiveMetastoreIf> iface) :
::facebook::fb303::FacebookServiceProcessor(iface),
@@ -26424,6 +26677,8 @@ class ThriftHiveMetastoreProcessor : public ::facebook::fb303::FacebookServiceP
processMap_["set_schema_version_state"] = &ThriftHiveMetastoreProcessor::process_set_schema_version_state;
processMap_["add_serde"] = &ThriftHiveMetastoreProcessor::process_add_serde;
processMap_["get_serde"] = &ThriftHiveMetastoreProcessor::process_get_serde;
+ processMap_["get_lock_materialization_rebuild"] = &ThriftHiveMetastoreProcessor::process_get_lock_materialization_rebuild;
+ processMap_["heartbeat_lock_materialization_rebuild"] = &ThriftHiveMetastoreProcessor::process_heartbeat_lock_materialization_rebuild;
}
virtual ~ThriftHiveMetastoreProcessor() {}
@@ -28380,6 +28635,25 @@ class ThriftHiveMetastoreMultiface : virtual public ThriftHiveMetastoreIf, publi
return;
}
+ void get_lock_materialization_rebuild(LockResponse& _return, const std::string& dbName, const std::string& tableName, const int64_t txnId) {
+ size_t sz = ifaces_.size();
+ size_t i = 0;
+ for (; i < (sz - 1); ++i) {
+ ifaces_[i]->get_lock_materialization_rebuild(_return, dbName, tableName, txnId);
+ }
+ ifaces_[i]->get_lock_materialization_rebuild(_return, dbName, tableName, txnId);
+ return;
+ }
+
+ bool heartbeat_lock_materialization_rebuild(const std::string& dbName, const std::string& tableName, const int64_t txnId) {
+ size_t sz = ifaces_.size();
+ size_t i = 0;
+ for (; i < (sz - 1); ++i) {
+ ifaces_[i]->heartbeat_lock_materialization_rebuild(dbName, tableName, txnId);
+ }
+ return ifaces_[i]->heartbeat_lock_materialization_rebuild(dbName, tableName, txnId);
+ }
+
};
// The 'concurrent' client is a thread safe client that correctly handles
@@ -28996,6 +29270,12 @@ class ThriftHiveMetastoreConcurrentClient : virtual public ThriftHiveMetastoreIf
void get_serde(SerDeInfo& _return, const GetSerdeRequest& rqst);
int32_t send_get_serde(const GetSerdeRequest& rqst);
void recv_get_serde(SerDeInfo& _return, const int32_t seqid);
+ void get_lock_materialization_rebuild(LockResponse& _return, const std::string& dbName, const std::string& tableName, const int64_t txnId);
+ int32_t send_get_lock_materialization_rebuild(const std::string& dbName, const std::string& tableName, const int64_t txnId);
+ void recv_get_lock_materialization_rebuild(LockResponse& _return, const int32_t seqid);
+ bool heartbeat_lock_materialization_rebuild(const std::string& dbName, const std::string& tableName, const int64_t txnId);
+ int32_t send_heartbeat_lock_materialization_rebuild(const std::string& dbName, const std::string& tableName, const int64_t txnId);
+ bool recv_heartbeat_lock_materialization_rebuild(const int32_t seqid);
};
#ifdef _WIN32
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/standalone-metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore_server.skeleton.cpp
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore_server.skeleton.cpp b/standalone-metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore_server.skeleton.cpp
index cfec64f..c0a39f8 100644
--- a/standalone-metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore_server.skeleton.cpp
+++ b/standalone-metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore_server.skeleton.cpp
@@ -1022,6 +1022,16 @@ class ThriftHiveMetastoreHandler : virtual public ThriftHiveMetastoreIf {
printf("get_serde\n");
}
+ void get_lock_materialization_rebuild(LockResponse& _return, const std::string& dbName, const std::string& tableName, const int64_t txnId) {
+ // Your implementation goes here
+ printf("get_lock_materialization_rebuild\n");
+ }
+
+ bool heartbeat_lock_materialization_rebuild(const std::string& dbName, const std::string& tableName, const int64_t txnId) {
+ // Your implementation goes here
+ printf("heartbeat_lock_materialization_rebuild\n");
+ }
+
};
int main(int argc, char **argv) {
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/standalone-metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp b/standalone-metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp
index 383cb9b..1904047 100644
--- a/standalone-metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp
+++ b/standalone-metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp
@@ -24413,6 +24413,12 @@ __isset.validTxnList = true;
void Materialization::__set_invalidationTime(const int64_t val) {
this->invalidationTime = val;
+__isset.invalidationTime = true;
+}
+
+void Materialization::__set_sourceTablesUpdateDeleteModified(const bool val) {
+ this->sourceTablesUpdateDeleteModified = val;
+__isset.sourceTablesUpdateDeleteModified = true;
}
uint32_t Materialization::read(::apache::thrift::protocol::TProtocol* iprot) {
@@ -24428,7 +24434,6 @@ uint32_t Materialization::read(::apache::thrift::protocol::TProtocol* iprot) {
using ::apache::thrift::protocol::TProtocolException;
bool isset_tablesUsed = false;
- bool isset_invalidationTime = false;
while (true)
{
@@ -24470,7 +24475,15 @@ uint32_t Materialization::read(::apache::thrift::protocol::TProtocol* iprot) {
case 3:
if (ftype == ::apache::thrift::protocol::T_I64) {
xfer += iprot->readI64(this->invalidationTime);
- isset_invalidationTime = true;
+ this->__isset.invalidationTime = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ case 4:
+ if (ftype == ::apache::thrift::protocol::T_BOOL) {
+ xfer += iprot->readBool(this->sourceTablesUpdateDeleteModified);
+ this->__isset.sourceTablesUpdateDeleteModified = true;
} else {
xfer += iprot->skip(ftype);
}
@@ -24486,8 +24499,6 @@ uint32_t Materialization::read(::apache::thrift::protocol::TProtocol* iprot) {
if (!isset_tablesUsed)
throw TProtocolException(TProtocolException::INVALID_DATA);
- if (!isset_invalidationTime)
- throw TProtocolException(TProtocolException::INVALID_DATA);
return xfer;
}
@@ -24513,10 +24524,16 @@ uint32_t Materialization::write(::apache::thrift::protocol::TProtocol* oprot) co
xfer += oprot->writeString(this->validTxnList);
xfer += oprot->writeFieldEnd();
}
- xfer += oprot->writeFieldBegin("invalidationTime", ::apache::thrift::protocol::T_I64, 3);
- xfer += oprot->writeI64(this->invalidationTime);
- xfer += oprot->writeFieldEnd();
-
+ if (this->__isset.invalidationTime) {
+ xfer += oprot->writeFieldBegin("invalidationTime", ::apache::thrift::protocol::T_I64, 3);
+ xfer += oprot->writeI64(this->invalidationTime);
+ xfer += oprot->writeFieldEnd();
+ }
+ if (this->__isset.sourceTablesUpdateDeleteModified) {
+ xfer += oprot->writeFieldBegin("sourceTablesUpdateDeleteModified", ::apache::thrift::protocol::T_BOOL, 4);
+ xfer += oprot->writeBool(this->sourceTablesUpdateDeleteModified);
+ xfer += oprot->writeFieldEnd();
+ }
xfer += oprot->writeFieldStop();
xfer += oprot->writeStructEnd();
return xfer;
@@ -24527,6 +24544,7 @@ void swap(Materialization &a, Materialization &b) {
swap(a.tablesUsed, b.tablesUsed);
swap(a.validTxnList, b.validTxnList);
swap(a.invalidationTime, b.invalidationTime);
+ swap(a.sourceTablesUpdateDeleteModified, b.sourceTablesUpdateDeleteModified);
swap(a.__isset, b.__isset);
}
@@ -24534,12 +24552,14 @@ Materialization::Materialization(const Materialization& other978) {
tablesUsed = other978.tablesUsed;
validTxnList = other978.validTxnList;
invalidationTime = other978.invalidationTime;
+ sourceTablesUpdateDeleteModified = other978.sourceTablesUpdateDeleteModified;
__isset = other978.__isset;
}
Materialization& Materialization::operator=(const Materialization& other979) {
tablesUsed = other979.tablesUsed;
validTxnList = other979.validTxnList;
invalidationTime = other979.invalidationTime;
+ sourceTablesUpdateDeleteModified = other979.sourceTablesUpdateDeleteModified;
__isset = other979.__isset;
return *this;
}
@@ -24548,7 +24568,8 @@ void Materialization::printTo(std::ostream& out) const {
out << "Materialization(";
out << "tablesUsed=" << to_string(tablesUsed);
out << ", " << "validTxnList="; (__isset.validTxnList ? (out << to_string(validTxnList)) : (out << "<null>"));
- out << ", " << "invalidationTime=" << to_string(invalidationTime);
+ out << ", " << "invalidationTime="; (__isset.invalidationTime ? (out << to_string(invalidationTime)) : (out << "<null>"));
+ out << ", " << "sourceTablesUpdateDeleteModified="; (__isset.sourceTablesUpdateDeleteModified ? (out << to_string(sourceTablesUpdateDeleteModified)) : (out << "<null>"));
out << ")";
}
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/standalone-metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h b/standalone-metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h
index 086cfe9..55a97de 100644
--- a/standalone-metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h
+++ b/standalone-metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h
@@ -10066,8 +10066,10 @@ inline std::ostream& operator<<(std::ostream& out, const TableMeta& obj)
}
typedef struct _Materialization__isset {
- _Materialization__isset() : validTxnList(false) {}
+ _Materialization__isset() : validTxnList(false), invalidationTime(false), sourceTablesUpdateDeleteModified(false) {}
bool validTxnList :1;
+ bool invalidationTime :1;
+ bool sourceTablesUpdateDeleteModified :1;
} _Materialization__isset;
class Materialization {
@@ -10075,13 +10077,14 @@ class Materialization {
Materialization(const Materialization&);
Materialization& operator=(const Materialization&);
- Materialization() : validTxnList(), invalidationTime(0) {
+ Materialization() : validTxnList(), invalidationTime(0), sourceTablesUpdateDeleteModified(0) {
}
virtual ~Materialization() throw();
std::set<std::string> tablesUsed;
std::string validTxnList;
int64_t invalidationTime;
+ bool sourceTablesUpdateDeleteModified;
_Materialization__isset __isset;
@@ -10091,6 +10094,8 @@ class Materialization {
void __set_invalidationTime(const int64_t val);
+ void __set_sourceTablesUpdateDeleteModified(const bool val);
+
bool operator == (const Materialization & rhs) const
{
if (!(tablesUsed == rhs.tablesUsed))
@@ -10099,7 +10104,13 @@ class Materialization {
return false;
else if (__isset.validTxnList && !(validTxnList == rhs.validTxnList))
return false;
- if (!(invalidationTime == rhs.invalidationTime))
+ if (__isset.invalidationTime != rhs.__isset.invalidationTime)
+ return false;
+ else if (__isset.invalidationTime && !(invalidationTime == rhs.invalidationTime))
+ return false;
+ if (__isset.sourceTablesUpdateDeleteModified != rhs.__isset.sourceTablesUpdateDeleteModified)
+ return false;
+ else if (__isset.sourceTablesUpdateDeleteModified && !(sourceTablesUpdateDeleteModified == rhs.sourceTablesUpdateDeleteModified))
return false;
return true;
}
[20/24] hive git commit: HIVE-18839: Implement incremental rebuild
for materialized views (only insert operations in source tables) (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_time_window.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_time_window.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_time_window.q.out
new file mode 100644
index 0000000..e820e5c
--- /dev/null
+++ b/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_time_window.q.out
@@ -0,0 +1,859 @@
+PREHOOK: query: create table cmv_basetable (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@cmv_basetable
+POSTHOOK: query: create table cmv_basetable (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@cmv_basetable
+PREHOOK: query: insert into cmv_basetable values
+ (1, 'alfred', 10.30, 2),
+ (2, 'bob', 3.14, 3),
+ (2, 'bonnie', 172342.2, 3),
+ (3, 'calvin', 978.76, 3),
+ (3, 'charlie', 9.8, 1)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@cmv_basetable
+POSTHOOK: query: insert into cmv_basetable values
+ (1, 'alfred', 10.30, 2),
+ (2, 'bob', 3.14, 3),
+ (2, 'bonnie', 172342.2, 3),
+ (3, 'calvin', 978.76, 3),
+ (3, 'charlie', 9.8, 1)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@cmv_basetable
+POSTHOOK: Lineage: cmv_basetable.a SCRIPT []
+POSTHOOK: Lineage: cmv_basetable.b SCRIPT []
+POSTHOOK: Lineage: cmv_basetable.c SCRIPT []
+POSTHOOK: Lineage: cmv_basetable.d SCRIPT []
+PREHOOK: query: analyze table cmv_basetable compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable
+PREHOOK: Output: default@cmv_basetable
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table cmv_basetable compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable
+POSTHOOK: Output: default@cmv_basetable
+#### A masked pattern was here ####
+PREHOOK: query: create table cmv_basetable_2 (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@cmv_basetable_2
+POSTHOOK: query: create table cmv_basetable_2 (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@cmv_basetable_2
+PREHOOK: query: insert into cmv_basetable_2 values
+ (1, 'alfred', 10.30, 2),
+ (3, 'calvin', 978.76, 3)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@cmv_basetable_2
+POSTHOOK: query: insert into cmv_basetable_2 values
+ (1, 'alfred', 10.30, 2),
+ (3, 'calvin', 978.76, 3)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@cmv_basetable_2
+POSTHOOK: Lineage: cmv_basetable_2.a SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2.b SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2.c SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2.d SCRIPT []
+PREHOOK: query: analyze table cmv_basetable_2 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Output: default@cmv_basetable_2
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table cmv_basetable_2 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Output: default@cmv_basetable_2
+#### A masked pattern was here ####
+PREHOOK: query: EXPLAIN
+CREATE MATERIALIZED VIEW cmv_mat_view TBLPROPERTIES('rewriting.time.window'='300s') AS
+ SELECT cmv_basetable.a, cmv_basetable_2.c
+ FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+ WHERE cmv_basetable_2.c > 10.0
+ GROUP BY cmv_basetable.a, cmv_basetable_2.c
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: query: EXPLAIN
+CREATE MATERIALIZED VIEW cmv_mat_view TBLPROPERTIES('rewriting.time.window'='300s') AS
+ SELECT cmv_basetable.a, cmv_basetable_2.c
+ FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+ WHERE cmv_basetable_2.c > 10.0
+ GROUP BY cmv_basetable.a, cmv_basetable_2.c
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-4 depends on stages: Stage-2, Stage-0
+ Stage-3 depends on stages: Stage-4
+ Stage-5 depends on stages: Stage-3
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: a is not null (type: boolean)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 4
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable_2
+ Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((c > 10) and a is not null) (type: boolean)
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int), c (type: decimal(10,2))
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: decimal(10,2))
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: int)
+ 1 _col0 (type: int)
+ outputColumnNames: _col0, _col2
+ Statistics: Num rows: 3 Data size: 348 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ keys: _col0 (type: int), _col2 (type: decimal(10,2))
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ keys: KEY._col0 (type: int), KEY._col1 (type: decimal(10,2))
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cmv_mat_view
+
+ Stage: Stage-2
+ Dependency Collection
+
+ Stage: Stage-4
+ Create View Operator:
+ Create View
+ columns: a int, c decimal(10,2)
+ table properties:
+ rewriting.time.window 300s
+ expanded text: SELECT `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
+ FROM `default`.`cmv_basetable` JOIN `default`.`cmv_basetable_2` ON (`cmv_basetable`.`a` = `cmv_basetable_2`.`a`)
+ WHERE `cmv_basetable_2`.`c` > 10.0
+ GROUP BY `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
+ name: default.cmv_mat_view
+ original text: SELECT cmv_basetable.a, cmv_basetable_2.c
+ FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+ WHERE cmv_basetable_2.c > 10.0
+ GROUP BY cmv_basetable.a, cmv_basetable_2.c
+
+ Stage: Stage-3
+ Stats Work
+ Basic Stats Work:
+
+ Stage: Stage-5
+ Materialized View Work
+
+ Stage: Stage-0
+ Move Operator
+ files:
+ hdfs directory: true
+#### A masked pattern was here ####
+
+PREHOOK: query: CREATE MATERIALIZED VIEW cmv_mat_view TBLPROPERTIES('rewriting.time.window'='300s') AS
+ SELECT cmv_basetable.a, cmv_basetable_2.c
+ FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+ WHERE cmv_basetable_2.c > 10.0
+ GROUP BY cmv_basetable.a, cmv_basetable_2.c
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@cmv_basetable
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Output: database:default
+PREHOOK: Output: default@cmv_mat_view
+POSTHOOK: query: CREATE MATERIALIZED VIEW cmv_mat_view TBLPROPERTIES('rewriting.time.window'='300s') AS
+ SELECT cmv_basetable.a, cmv_basetable_2.c
+ FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+ WHERE cmv_basetable_2.c > 10.0
+ GROUP BY cmv_basetable.a, cmv_basetable_2.c
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@cmv_basetable
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@cmv_mat_view
+PREHOOK: query: DESCRIBE FORMATTED cmv_mat_view
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@cmv_mat_view
+POSTHOOK: query: DESCRIBE FORMATTED cmv_mat_view
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@cmv_mat_view
+# col_name data_type comment
+a int
+c decimal(10,2)
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MATERIALIZED_VIEW
+Table Parameters:
+ COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\"}
+ numFiles 2
+ numRows 2
+ rawDataSize 232
+ rewriting.time.window 300s
+ totalSize 586
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+InputFormat: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+
+# View Information
+View Original Text: SELECT cmv_basetable.a, cmv_basetable_2.c
+ FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+ WHERE cmv_basetable_2.c > 10.0
+ GROUP BY cmv_basetable.a, cmv_basetable_2.c
+View Expanded Text: SELECT `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
+ FROM `default`.`cmv_basetable` JOIN `default`.`cmv_basetable_2` ON (`cmv_basetable`.`a` = `cmv_basetable_2`.`a`)
+ WHERE `cmv_basetable_2`.`c` > 10.0
+ GROUP BY `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
+View Rewrite Enabled: No
+PREHOOK: query: EXPLAIN
+SELECT cmv_basetable.a
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT cmv_basetable.a
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: a is not null (type: boolean)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 4
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable_2
+ Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((c > 10.1) and a is not null) (type: boolean)
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int), c (type: decimal(10,2))
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: decimal(10,2))
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: int)
+ 1 _col0 (type: int)
+ outputColumnNames: _col0, _col2
+ Statistics: Num rows: 3 Data size: 348 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ keys: _col0 (type: int), _col2 (type: decimal(10,2))
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ keys: KEY._col0 (type: int), KEY._col1 (type: decimal(10,2))
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col0 (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: SELECT cmv_basetable.a
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable
+PREHOOK: Input: default@cmv_basetable_2
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT cmv_basetable.a
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable
+POSTHOOK: Input: default@cmv_basetable_2
+#### A masked pattern was here ####
+3
+1
+PREHOOK: query: insert into cmv_basetable_2 values
+ (3, 'charlie', 15.8, 1)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@cmv_basetable_2
+POSTHOOK: query: insert into cmv_basetable_2 values
+ (3, 'charlie', 15.8, 1)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@cmv_basetable_2
+POSTHOOK: Lineage: cmv_basetable_2.a SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2.b SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2.c SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2.d SCRIPT []
+PREHOOK: query: analyze table cmv_basetable_2 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Output: default@cmv_basetable_2
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table cmv_basetable_2 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Output: default@cmv_basetable_2
+#### A masked pattern was here ####
+PREHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cmv_mat_view ENABLE REWRITE
+PREHOOK: type: ALTER_MATERIALIZED_VIEW_REWRITE
+POSTHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cmv_mat_view ENABLE REWRITE
+POSTHOOK: type: ALTER_MATERIALIZED_VIEW_REWRITE
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Alter Materialized View Operator:
+ Alter Materialized View
+ name: default.cmv_mat_view
+ operation: UPDATE_REWRITE_FLAG
+
+PREHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view ENABLE REWRITE
+PREHOOK: type: ALTER_MATERIALIZED_VIEW_REWRITE
+PREHOOK: Input: default@cmv_mat_view
+PREHOOK: Output: default@cmv_mat_view
+POSTHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view ENABLE REWRITE
+POSTHOOK: type: ALTER_MATERIALIZED_VIEW_REWRITE
+POSTHOOK: Input: default@cmv_mat_view
+POSTHOOK: Output: default@cmv_mat_view
+PREHOOK: query: DESCRIBE FORMATTED cmv_mat_view
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@cmv_mat_view
+POSTHOOK: query: DESCRIBE FORMATTED cmv_mat_view
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@cmv_mat_view
+# col_name data_type comment
+a int
+c decimal(10,2)
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MATERIALIZED_VIEW
+Table Parameters:
+ COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\"}
+ numFiles 2
+ numRows 2
+ rawDataSize 232
+ rewriting.time.window 300s
+ totalSize 586
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+InputFormat: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+
+# View Information
+View Original Text: SELECT cmv_basetable.a, cmv_basetable_2.c
+ FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+ WHERE cmv_basetable_2.c > 10.0
+ GROUP BY cmv_basetable.a, cmv_basetable_2.c
+View Expanded Text: SELECT `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
+ FROM `default`.`cmv_basetable` JOIN `default`.`cmv_basetable_2` ON (`cmv_basetable`.`a` = `cmv_basetable_2`.`a`)
+ WHERE `cmv_basetable_2`.`c` > 10.0
+ GROUP BY `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
+View Rewrite Enabled: Yes
+PREHOOK: query: EXPLAIN
+SELECT cmv_basetable.a
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT cmv_basetable.a
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.cmv_mat_view
+ Filter Operator
+ predicate: (c > 10.1) (type: boolean)
+ Select Operator
+ expressions: a (type: int)
+ outputColumnNames: _col0
+ ListSink
+
+PREHOOK: query: SELECT cmv_basetable.a
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Input: default@cmv_mat_view
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT cmv_basetable.a
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Input: default@cmv_mat_view
+#### A masked pattern was here ####
+3
+1
+PREHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
+ Stage-3 depends on stages: Stage-0
+ Stage-4 depends on stages: Stage-3
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Map 8 <- Union 4 (CONTAINS)
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (SIMPLE_EDGE), Union 4 (CONTAINS)
+ Reducer 5 <- Union 4 (SIMPLE_EDGE)
+ Reducer 6 <- Reducer 5 (CUSTOM_SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: a is not null (type: boolean)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 7
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable_2
+ Statistics: Num rows: 3 Data size: 348 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((ROW__ID.writeid > 1) and (c > 10) and a is not null) (type: boolean)
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int), c (type: decimal(10,2))
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 192 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 1 Data size: 192 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: decimal(10,2))
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 8
+ Map Operator Tree:
+ TableScan
+ alias: default.cmv_mat_view
+ Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: a (type: int), c (type: decimal(10,2))
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
+ Group By Operator
+ keys: _col0 (type: int), _col1 (type: decimal(10,2))
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: PARTIAL
+ Reduce Output Operator
+ key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: PARTIAL
+ Execution mode: llap
+ LLAP IO: all inputs
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: int)
+ 1 _col0 (type: int)
+ outputColumnNames: _col0, _col2
+ Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ keys: _col0 (type: int), _col2 (type: decimal(10,2))
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ keys: KEY._col0 (type: int), KEY._col1 (type: decimal(10,2))
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ keys: _col0 (type: int), _col1 (type: decimal(10,2))
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: PARTIAL
+ Reduce Output Operator
+ key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: PARTIAL
+ Reducer 5
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ keys: KEY._col0 (type: int), KEY._col1 (type: decimal(10,2))
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: PARTIAL
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: PARTIAL
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cmv_mat_view
+ Select Operator
+ expressions: _col0 (type: int), _col1 (type: decimal(10,2))
+ outputColumnNames: a, c
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: PARTIAL
+ Group By Operator
+ aggregations: compute_stats(a, 'hll'), compute_stats(c, 'hll')
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 1056 Basic stats: COMPLETE Column stats: PARTIAL
+ Reduce Output Operator
+ sort order:
+ Statistics: Num rows: 1 Data size: 1056 Basic stats: COMPLETE Column stats: PARTIAL
+ value expressions: _col0 (type: struct<columntype:string,min:bigint,max:bigint,countnulls:bigint,bitvector:binary>), _col1 (type: struct<columntype:string,min:decimal(10,2),max:decimal(10,2),countnulls:bigint,bitvector:binary>)
+ Reducer 6
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 1088 Basic stats: COMPLETE Column stats: PARTIAL
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 1088 Basic stats: COMPLETE Column stats: PARTIAL
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+ Union 4
+ Vertex: Union 4
+
+ Stage: Stage-2
+ Dependency Collection
+
+ Stage: Stage-0
+ Move Operator
+ tables:
+ replace: true
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cmv_mat_view
+
+ Stage: Stage-3
+ Stats Work
+ Basic Stats Work:
+ Column Stats Desc:
+ Columns: a, c
+ Column Types: int, decimal(10,2)
+ Table: default.cmv_mat_view
+
+ Stage: Stage-4
+ Materialized View Work
+
+PREHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Input: default@cmv_mat_view
+PREHOOK: Output: default@cmv_mat_view
+POSTHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Input: default@cmv_mat_view
+POSTHOOK: Output: default@cmv_mat_view
+POSTHOOK: Lineage: cmv_mat_view.a EXPRESSION [(cmv_basetable)cmv_basetable.FieldSchema(name:a, type:int, comment:null), (cmv_mat_view)default.cmv_mat_view.FieldSchema(name:a, type:int, comment:null), ]
+POSTHOOK: Lineage: cmv_mat_view.c EXPRESSION [(cmv_basetable_2)cmv_basetable_2.FieldSchema(name:c, type:decimal(10,2), comment:null), (cmv_mat_view)default.cmv_mat_view.FieldSchema(name:c, type:decimal(10,2), comment:null), ]
+PREHOOK: query: DESCRIBE FORMATTED cmv_mat_view
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@cmv_mat_view
+POSTHOOK: query: DESCRIBE FORMATTED cmv_mat_view
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@cmv_mat_view
+# col_name data_type comment
+a int
+c decimal(10,2)
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MATERIALIZED_VIEW
+Table Parameters:
+ COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\"a\":\"true\",\"c\":\"true\"}}
+ numFiles 3
+ numRows 3
+ rawDataSize 348
+ rewriting.time.window 300s
+ totalSize 877
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+InputFormat: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+
+# View Information
+View Original Text: SELECT cmv_basetable.a, cmv_basetable_2.c
+ FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+ WHERE cmv_basetable_2.c > 10.0
+ GROUP BY cmv_basetable.a, cmv_basetable_2.c
+View Expanded Text: SELECT `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
+ FROM `default`.`cmv_basetable` JOIN `default`.`cmv_basetable_2` ON (`cmv_basetable`.`a` = `cmv_basetable_2`.`a`)
+ WHERE `cmv_basetable_2`.`c` > 10.0
+ GROUP BY `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
+View Rewrite Enabled: Yes
+PREHOOK: query: EXPLAIN
+SELECT cmv_basetable.a
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT cmv_basetable.a
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.cmv_mat_view
+ Filter Operator
+ predicate: (c > 10.1) (type: boolean)
+ Select Operator
+ expressions: a (type: int)
+ outputColumnNames: _col0
+ ListSink
+
+PREHOOK: query: SELECT cmv_basetable.a
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Input: default@cmv_mat_view
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT cmv_basetable.a
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+GROUP BY cmv_basetable.a, cmv_basetable_2.c
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Input: default@cmv_mat_view
+#### A masked pattern was here ####
+3
+3
+1
+PREHOOK: query: drop materialized view cmv_mat_view
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@cmv_mat_view
+PREHOOK: Output: default@cmv_mat_view
+POSTHOOK: query: drop materialized view cmv_mat_view
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@cmv_mat_view
+POSTHOOK: Output: default@cmv_mat_view
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_1.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_1.q.out
new file mode 100644
index 0000000..675fe28
--- /dev/null
+++ b/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_1.q.out
@@ -0,0 +1,1152 @@
+PREHOOK: query: create table emps (
+ empid int,
+ deptno int,
+ name varchar(256),
+ salary float,
+ commission int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@emps
+POSTHOOK: query: create table emps (
+ empid int,
+ deptno int,
+ name varchar(256),
+ salary float,
+ commission int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@emps
+PREHOOK: query: insert into emps values (100, 10, 'Bill', 10000, 1000), (200, 20, 'Eric', 8000, 500),
+ (150, 10, 'Sebastian', 7000, null), (110, 10, 'Theodore', 10000, 250), (110, 10, 'Bill', 10000, 250)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@emps
+POSTHOOK: query: insert into emps values (100, 10, 'Bill', 10000, 1000), (200, 20, 'Eric', 8000, 500),
+ (150, 10, 'Sebastian', 7000, null), (110, 10, 'Theodore', 10000, 250), (110, 10, 'Bill', 10000, 250)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@emps
+POSTHOOK: Lineage: emps.commission SCRIPT []
+POSTHOOK: Lineage: emps.deptno SCRIPT []
+POSTHOOK: Lineage: emps.empid SCRIPT []
+POSTHOOK: Lineage: emps.name SCRIPT []
+POSTHOOK: Lineage: emps.salary SCRIPT []
+PREHOOK: query: analyze table emps compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@emps
+PREHOOK: Output: default@emps
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table emps compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: default@emps
+#### A masked pattern was here ####
+PREHOOK: query: create table depts (
+ deptno int,
+ name varchar(256),
+ locationid int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@depts
+POSTHOOK: query: create table depts (
+ deptno int,
+ name varchar(256),
+ locationid int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@depts
+PREHOOK: query: insert into depts values (10, 'Sales', 10), (30, 'Marketing', null), (20, 'HR', 20)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@depts
+POSTHOOK: query: insert into depts values (10, 'Sales', 10), (30, 'Marketing', null), (20, 'HR', 20)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@depts
+POSTHOOK: Lineage: depts.deptno SCRIPT []
+POSTHOOK: Lineage: depts.locationid SCRIPT []
+POSTHOOK: Lineage: depts.name SCRIPT []
+PREHOOK: query: analyze table depts compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@depts
+PREHOOK: Output: default@depts
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table depts compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@depts
+POSTHOOK: Output: default@depts
+#### A masked pattern was here ####
+PREHOOK: query: create table dependents (
+ empid int,
+ name varchar(256))
+stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@dependents
+POSTHOOK: query: create table dependents (
+ empid int,
+ name varchar(256))
+stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@dependents
+PREHOOK: query: insert into dependents values (10, 'Michael'), (10, 'Jane')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@dependents
+POSTHOOK: query: insert into dependents values (10, 'Michael'), (10, 'Jane')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@dependents
+POSTHOOK: Lineage: dependents.empid SCRIPT []
+POSTHOOK: Lineage: dependents.name SCRIPT []
+PREHOOK: query: analyze table dependents compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dependents
+PREHOOK: Output: default@dependents
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table dependents compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dependents
+POSTHOOK: Output: default@dependents
+#### A masked pattern was here ####
+PREHOOK: query: create table locations (
+ locationid int,
+ name varchar(256))
+stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@locations
+POSTHOOK: query: create table locations (
+ locationid int,
+ name varchar(256))
+stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@locations
+PREHOOK: query: insert into locations values (10, 'San Francisco'), (10, 'San Diego')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@locations
+POSTHOOK: query: insert into locations values (10, 'San Francisco'), (10, 'San Diego')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@locations
+POSTHOOK: Lineage: locations.locationid SCRIPT []
+POSTHOOK: Lineage: locations.name SCRIPT []
+PREHOOK: query: analyze table locations compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@locations
+PREHOOK: Output: default@locations
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table locations compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@locations
+POSTHOOK: Output: default@locations
+#### A masked pattern was here ####
+PREHOOK: query: alter table emps add constraint pk1 primary key (empid) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table emps add constraint pk1 primary key (empid) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table depts add constraint pk2 primary key (deptno) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table depts add constraint pk2 primary key (deptno) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table dependents add constraint pk3 primary key (empid) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table dependents add constraint pk3 primary key (empid) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table locations add constraint pk4 primary key (locationid) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table locations add constraint pk4 primary key (locationid) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table emps add constraint fk1 foreign key (deptno) references depts(deptno) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table emps add constraint fk1 foreign key (deptno) references depts(deptno) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table depts add constraint fk2 foreign key (locationid) references locations(locationid) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table depts add constraint fk2 foreign key (locationid) references locations(locationid) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select * from emps where empid < 150
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select * from emps where empid < 150
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select *
+from (select * from emps where empid < 120) t
+join depts using (deptno)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select *
+from (select * from emps where empid < 120) t
+join depts using (deptno)
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 3 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.mv1
+ Statistics: Num rows: 3 Data size: 315 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((empid < 120) and deptno is not null) (type: boolean)
+ Statistics: Num rows: 3 Data size: 315 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: empid (type: int), deptno (type: int), name (type: varchar(256)), salary (type: float), commission (type: int)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4
+ Statistics: Num rows: 3 Data size: 315 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col1 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col1 (type: int)
+ Statistics: Num rows: 3 Data size: 315 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: int), _col2 (type: varchar(256)), _col3 (type: float), _col4 (type: int)
+ Execution mode: llap
+ LLAP IO: all inputs
+ Map 3
+ Map Operator Tree:
+ TableScan
+ alias: depts
+ Statistics: Num rows: 3 Data size: 291 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: deptno (type: int), name (type: varchar(256)), locationid (type: int)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 3 Data size: 291 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 3 Data size: 291 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: varchar(256)), _col2 (type: int)
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col1 (type: int)
+ 1 _col0 (type: int)
+ outputColumnNames: _col0, _col2, _col3, _col4, _col5, _col6, _col7
+ Statistics: Num rows: 3 Data size: 594 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col5 (type: int), _col0 (type: int), _col2 (type: varchar(256)), _col3 (type: float), _col4 (type: int), _col6 (type: varchar(256)), _col7 (type: int)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
+ Statistics: Num rows: 3 Data size: 594 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 3 Data size: 594 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select *
+from (select * from emps where empid < 120) t
+join depts using (deptno)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select *
+from (select * from emps where empid < 120) t
+join depts using (deptno)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+10 100 Bill 10000.0 1000 Sales 10
+10 110 Bill 10000.0 250 Sales 10
+10 110 Theodore 10000.0 250 Sales 10
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select deptno, name, salary, commission
+from emps
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select deptno, name, salary, commission
+from emps
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select emps.name, emps.salary, emps.commission
+from emps
+join depts using (deptno)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select emps.name, emps.salary, emps.commission
+from emps
+join depts using (deptno)
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 3 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.mv1
+ Statistics: Num rows: 5 Data size: 510 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: deptno is not null (type: boolean)
+ Statistics: Num rows: 5 Data size: 510 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: deptno (type: int), name (type: varchar(256)), salary (type: float), commission (type: int)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 5 Data size: 510 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 5 Data size: 510 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: varchar(256)), _col2 (type: float), _col3 (type: int)
+ Execution mode: llap
+ LLAP IO: all inputs
+ Map 3
+ Map Operator Tree:
+ TableScan
+ alias: depts
+ Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: deptno (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: int)
+ 1 _col0 (type: int)
+ outputColumnNames: _col1, _col2, _col3
+ Statistics: Num rows: 5 Data size: 490 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col1 (type: varchar(256)), _col2 (type: float), _col3 (type: int)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 5 Data size: 490 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 5 Data size: 490 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select emps.name, emps.salary, emps.commission
+from emps
+join depts using (deptno)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select emps.name, emps.salary, emps.commission
+from emps
+join depts using (deptno)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+Bill 10000.0 1000
+Bill 10000.0 250
+Eric 8000.0 500
+Sebastian 7000.0 NULL
+Theodore 10000.0 250
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select empid deptno from emps
+join depts using (deptno)
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select empid deptno from emps
+join depts using (deptno)
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select empid deptno from emps
+join depts using (deptno) where empid = 1
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select empid deptno from emps
+join depts using (deptno) where empid = 1
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.mv1
+ Filter Operator
+ predicate: (deptno = 1) (type: boolean)
+ Select Operator
+ expressions: 1 (type: int)
+ outputColumnNames: _col0
+ ListSink
+
+PREHOOK: query: select empid deptno from emps
+join depts using (deptno) where empid = 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select empid deptno from emps
+join depts using (deptno) where empid = 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select * from emps where empid < 200
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select * from emps where empid < 200
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select * from emps where empid > 120
+union all select * from emps where empid < 150
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select * from emps where empid > 120
+union all select * from emps where empid < 150
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Map 1 <- Union 2 (CONTAINS)
+ Map 3 <- Union 2 (CONTAINS)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: emps
+ Statistics: Num rows: 5 Data size: 530 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: (empid > 120) (type: boolean)
+ Statistics: Num rows: 1 Data size: 106 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: empid (type: int), deptno (type: int), name (type: varchar(256)), salary (type: float), commission (type: int)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4
+ Statistics: Num rows: 1 Data size: 106 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2 Data size: 212 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 3
+ Map Operator Tree:
+ TableScan
+ alias: default.mv1
+ Statistics: Num rows: 4 Data size: 424 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: (empid < 150) (type: boolean)
+ Statistics: Num rows: 1 Data size: 106 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: empid (type: int), deptno (type: int), name (type: varchar(256)), salary (type: float), commission (type: int)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4
+ Statistics: Num rows: 1 Data size: 106 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2 Data size: 212 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+ Execution mode: llap
+ LLAP IO: all inputs
+ Union 2
+ Vertex: Union 2
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select * from emps where empid > 120
+union all select * from emps where empid < 150
+PREHOOK: type: QUERY
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select * from emps where empid > 120
+union all select * from emps where empid < 150
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+100 10 Bill 10000.0 1000
+110 10 Bill 10000.0 250
+110 10 Theodore 10000.0 250
+150 10 Sebastian 7000.0 NULL
+200 20 Eric 8000.0 500
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select empid, deptno from emps group by empid, deptno
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select empid, deptno from emps group by empid, deptno
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select empid, deptno from emps group by empid, deptno
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select empid, deptno from emps group by empid, deptno
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: emps
+ Select Operator
+ expressions: empid (type: int), deptno (type: int)
+ outputColumnNames: _col0, _col1
+ ListSink
+
+PREHOOK: query: select empid, deptno from emps group by empid, deptno
+PREHOOK: type: QUERY
+PREHOOK: Input: default@emps
+#### A masked pattern was here ####
+POSTHOOK: query: select empid, deptno from emps group by empid, deptno
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@emps
+#### A masked pattern was here ####
+100 10
+110 10
+110 10
+150 10
+200 20
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select empid, name from emps group by empid, name
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select empid, name from emps group by empid, name
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select empid, name from emps group by empid, name
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select empid, name from emps group by empid, name
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: emps
+ Select Operator
+ expressions: empid (type: int), name (type: varchar(256))
+ outputColumnNames: _col0, _col1
+ ListSink
+
+PREHOOK: query: select empid, name from emps group by empid, name
+PREHOOK: type: QUERY
+PREHOOK: Input: default@emps
+#### A masked pattern was here ####
+POSTHOOK: query: select empid, name from emps group by empid, name
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@emps
+#### A masked pattern was here ####
+100 Bill
+110 Bill
+110 Theodore
+150 Sebastian
+200 Eric
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select name, salary from emps group by name, salary
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select name, salary from emps group by name, salary
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select name, salary from emps group by name, salary
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select name, salary from emps group by name, salary
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.mv1
+ Select Operator
+ expressions: name (type: varchar(256)), salary (type: float)
+ outputColumnNames: _col0, _col1
+ ListSink
+
+PREHOOK: query: select name, salary from emps group by name, salary
+PREHOOK: type: QUERY
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select name, salary from emps group by name, salary
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+Bill 10000.0
+Eric 8000.0
+Sebastian 7000.0
+Theodore 10000.0
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select name, salary from emps group by name, salary
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select name, salary from emps group by name, salary
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select name from emps group by name
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select name from emps group by name
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.mv1
+ Statistics: Num rows: 4 Data size: 360 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: name (type: varchar(256))
+ outputColumnNames: name
+ Statistics: Num rows: 4 Data size: 360 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ keys: name (type: varchar(256))
+ mode: hash
+ outputColumnNames: _col0
+ Statistics: Num rows: 2 Data size: 180 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: varchar(256))
+ sort order: +
+ Map-reduce partition columns: _col0 (type: varchar(256))
+ Statistics: Num rows: 2 Data size: 180 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: all inputs
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ keys: KEY._col0 (type: varchar(256))
+ mode: mergepartial
+ outputColumnNames: _col0
+ Statistics: Num rows: 2 Data size: 180 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2 Data size: 180 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select name from emps group by name
+PREHOOK: type: QUERY
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select name from emps group by name
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+Bill
+Eric
+Sebastian
+Theodore
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select name, salary from emps where deptno = 10 group by name, salary
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select name, salary from emps where deptno = 10 group by name, salary
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select name from emps where deptno = 10 group by name
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select name from emps where deptno = 10 group by name
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.mv1
+ Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: name (type: varchar(256))
+ outputColumnNames: name
+ Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ keys: name (type: varchar(256))
+ mode: hash
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 91 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: varchar(256))
+ sort order: +
+ Map-reduce partition columns: _col0 (type: varchar(256))
+ Statistics: Num rows: 1 Data size: 91 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: all inputs
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ keys: KEY._col0 (type: varchar(256))
+ mode: mergepartial
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 91 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 91 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select name from emps where deptno = 10 group by name
+PREHOOK: type: QUERY
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select name from emps where deptno = 10 group by name
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+Bill
+Sebastian
+Theodore
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select name, salary, count(*) as c, sum(empid) as s
+from emps group by name, salary
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select name, salary, count(*) as c, sum(empid) as s
+from emps group by name, salary
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select name from emps group by name
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select name from emps group by name
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.mv1
+ Statistics: Num rows: 4 Data size: 360 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: name (type: varchar(256))
+ outputColumnNames: name
+ Statistics: Num rows: 4 Data size: 360 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ keys: name (type: varchar(256))
+ mode: hash
+ outputColumnNames: _col0
+ Statistics: Num rows: 2 Data size: 180 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: varchar(256))
+ sort order: +
+ Map-reduce partition columns: _col0 (type: varchar(256))
+ Statistics: Num rows: 2 Data size: 180 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: all inputs
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ keys: KEY._col0 (type: varchar(256))
+ mode: mergepartial
+ outputColumnNames: _col0
+ Statistics: Num rows: 2 Data size: 180 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2 Data size: 180 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select name from emps group by name
+PREHOOK: type: QUERY
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select name from emps group by name
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+Bill
+Eric
+Sebastian
+Theodore
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
[11/24] hive git commit: HIVE-18839: Implement incremental rebuild
for materialized views (only insert operations in source tables) (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/materialized_view_rewrite_4.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/materialized_view_rewrite_4.q.out b/ql/src/test/results/clientpositive/materialized_view_rewrite_4.q.out
deleted file mode 100644
index 7301571..0000000
--- a/ql/src/test/results/clientpositive/materialized_view_rewrite_4.q.out
+++ /dev/null
@@ -1,944 +0,0 @@
-PREHOOK: query: create table emps (
- empid int,
- deptno int,
- name varchar(256),
- salary float,
- commission int)
-stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@emps
-POSTHOOK: query: create table emps (
- empid int,
- deptno int,
- name varchar(256),
- salary float,
- commission int)
-stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@emps
-PREHOOK: query: insert into emps values (100, 10, 'Bill', 10000, 1000), (200, 20, 'Eric', 8000, 500),
- (150, 10, 'Sebastian', 7000, null), (110, 10, 'Theodore', 10000, 250), (110, 10, 'Bill', 10000, 250)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@emps
-POSTHOOK: query: insert into emps values (100, 10, 'Bill', 10000, 1000), (200, 20, 'Eric', 8000, 500),
- (150, 10, 'Sebastian', 7000, null), (110, 10, 'Theodore', 10000, 250), (110, 10, 'Bill', 10000, 250)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@emps
-POSTHOOK: Lineage: emps.commission SCRIPT []
-POSTHOOK: Lineage: emps.deptno SCRIPT []
-POSTHOOK: Lineage: emps.empid SCRIPT []
-POSTHOOK: Lineage: emps.name SCRIPT []
-POSTHOOK: Lineage: emps.salary SCRIPT []
-PREHOOK: query: analyze table emps compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@emps
-PREHOOK: Output: default@emps
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table emps compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: default@emps
-#### A masked pattern was here ####
-PREHOOK: query: create table depts (
- deptno int,
- name varchar(256),
- locationid int)
-stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@depts
-POSTHOOK: query: create table depts (
- deptno int,
- name varchar(256),
- locationid int)
-stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@depts
-PREHOOK: query: insert into depts values (10, 'Sales', 10), (30, 'Marketing', null), (20, 'HR', 20)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@depts
-POSTHOOK: query: insert into depts values (10, 'Sales', 10), (30, 'Marketing', null), (20, 'HR', 20)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@depts
-POSTHOOK: Lineage: depts.deptno SCRIPT []
-POSTHOOK: Lineage: depts.locationid SCRIPT []
-POSTHOOK: Lineage: depts.name SCRIPT []
-PREHOOK: query: analyze table depts compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@depts
-PREHOOK: Output: default@depts
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table depts compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@depts
-POSTHOOK: Output: default@depts
-#### A masked pattern was here ####
-PREHOOK: query: create table dependents (
- empid int,
- name varchar(256))
-stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@dependents
-POSTHOOK: query: create table dependents (
- empid int,
- name varchar(256))
-stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@dependents
-PREHOOK: query: insert into dependents values (10, 'Michael'), (10, 'Jane')
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@dependents
-POSTHOOK: query: insert into dependents values (10, 'Michael'), (10, 'Jane')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@dependents
-POSTHOOK: Lineage: dependents.empid SCRIPT []
-POSTHOOK: Lineage: dependents.name SCRIPT []
-PREHOOK: query: analyze table dependents compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dependents
-PREHOOK: Output: default@dependents
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table dependents compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dependents
-POSTHOOK: Output: default@dependents
-#### A masked pattern was here ####
-PREHOOK: query: create table locations (
- locationid int,
- name varchar(256))
-stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@locations
-POSTHOOK: query: create table locations (
- locationid int,
- name varchar(256))
-stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@locations
-PREHOOK: query: insert into locations values (10, 'San Francisco'), (10, 'San Diego')
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@locations
-POSTHOOK: query: insert into locations values (10, 'San Francisco'), (10, 'San Diego')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@locations
-POSTHOOK: Lineage: locations.locationid SCRIPT []
-POSTHOOK: Lineage: locations.name SCRIPT []
-PREHOOK: query: analyze table locations compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@locations
-PREHOOK: Output: default@locations
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table locations compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@locations
-POSTHOOK: Output: default@locations
-#### A masked pattern was here ####
-PREHOOK: query: alter table emps add constraint pk1 primary key (empid) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table emps add constraint pk1 primary key (empid) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table depts add constraint pk2 primary key (deptno) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table depts add constraint pk2 primary key (deptno) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table dependents add constraint pk3 primary key (empid) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table dependents add constraint pk3 primary key (empid) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table locations add constraint pk4 primary key (locationid) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table locations add constraint pk4 primary key (locationid) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table emps add constraint fk1 foreign key (deptno) references depts(deptno) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table emps add constraint fk1 foreign key (deptno) references depts(deptno) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table depts add constraint fk2 foreign key (locationid) references locations(locationid) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table depts add constraint fk2 foreign key (locationid) references locations(locationid) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select name, salary, count(*) as c, sum(empid) as s
-from emps group by name, salary
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select name, salary, count(*) as c, sum(empid) as s
-from emps group by name, salary
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select name, count(*) as c, sum(empid) as s
-from emps group by name
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select name, count(*) as c, sum(empid) as s
-from emps group by name
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 4 Data size: 424 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: name (type: varchar(256)), c (type: bigint), s (type: bigint)
- outputColumnNames: name, c, s
- Statistics: Num rows: 4 Data size: 424 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- aggregations: $sum0(c), sum(s)
- keys: name (type: varchar(256))
- mode: hash
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 2 Data size: 212 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: varchar(256))
- sort order: +
- Map-reduce partition columns: _col0 (type: varchar(256))
- Statistics: Num rows: 2 Data size: 212 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col1 (type: bigint), _col2 (type: bigint)
- Reduce Operator Tree:
- Group By Operator
- aggregations: $sum0(VALUE._col0), sum(VALUE._col1)
- keys: KEY._col0 (type: varchar(256))
- mode: mergepartial
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 2 Data size: 212 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 2 Data size: 212 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select name, count(*) as c, sum(empid) as s
-from emps group by name
-PREHOOK: type: QUERY
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select name, count(*) as c, sum(empid) as s
-from emps group by name
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-Bill 2 210
-Eric 1 200
-Sebastian 1 150
-Theodore 1 110
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select name, salary, count(*) as c, sum(empid) as s
-from emps group by name, salary
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select name, salary, count(*) as c, sum(empid) as s
-from emps group by name, salary
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select salary, name, sum(empid) as s, count(*) as c
-from emps group by name, salary
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select salary, name, sum(empid) as s, count(*) as c
-from emps group by name, salary
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-0 is a root stage
-
-STAGE PLANS:
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 4 Data size: 440 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: salary (type: float), name (type: varchar(256)), s (type: bigint), c (type: bigint)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 4 Data size: 440 Basic stats: COMPLETE Column stats: COMPLETE
- ListSink
-
-PREHOOK: query: select salary, name, sum(empid) as s, count(*) as c
-from emps group by name, salary
-PREHOOK: type: QUERY
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select salary, name, sum(empid) as s, count(*) as c
-from emps group by name, salary
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-10000.0 Bill 210 2
-10000.0 Theodore 110 1
-7000.0 Sebastian 150 1
-8000.0 Eric 200 1
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select empid, emps.deptno, count(*) as c, sum(empid) as s
-from emps join depts using (deptno)
-group by empid, emps.deptno
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select empid, emps.deptno, count(*) as c, sum(empid) as s
-from emps join depts using (deptno)
-group by empid, emps.deptno
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select depts.deptno, count(*) as c, sum(empid) as s
-from emps join depts using (deptno)
-group by depts.deptno
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select depts.deptno, count(*) as c, sum(empid) as s
-from emps join depts using (deptno)
-group by depts.deptno
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 4 Data size: 80 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: deptno (type: int), c (type: bigint), s (type: bigint)
- outputColumnNames: deptno, c, s
- Statistics: Num rows: 4 Data size: 80 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- aggregations: $sum0(c), sum(s)
- keys: deptno (type: int)
- mode: hash
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 2 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 2 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col1 (type: bigint), _col2 (type: bigint)
- Reduce Operator Tree:
- Group By Operator
- aggregations: $sum0(VALUE._col0), sum(VALUE._col1)
- keys: KEY._col0 (type: int)
- mode: mergepartial
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 2 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 2 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select depts.deptno, count(*) as c, sum(empid) as s
-from emps join depts using (deptno)
-group by depts.deptno
-PREHOOK: type: QUERY
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select depts.deptno, count(*) as c, sum(empid) as s
-from emps join depts using (deptno)
-group by depts.deptno
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-10 4 470
-20 1 200
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select empid, emps.deptno, count(*) as c, sum(empid) as s
-from emps join depts using (deptno)
-where emps.deptno >= 10 group by empid, emps.deptno
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select empid, emps.deptno, count(*) as c, sum(empid) as s
-from emps join depts using (deptno)
-where emps.deptno >= 10 group by empid, emps.deptno
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select depts.deptno, sum(empid) as s
-from emps join depts using (deptno)
-where emps.deptno > 10 group by depts.deptno
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select depts.deptno, sum(empid) as s
-from emps join depts using (deptno)
-where emps.deptno > 10 group by depts.deptno
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 4 Data size: 48 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: (deptno > 10) (type: boolean)
- Statistics: Num rows: 4 Data size: 48 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- aggregations: sum(s)
- keys: deptno (type: int)
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col1 (type: bigint)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: int)
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select depts.deptno, sum(empid) as s
-from emps join depts using (deptno)
-where emps.deptno > 10 group by depts.deptno
-PREHOOK: type: QUERY
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select depts.deptno, sum(empid) as s
-from emps join depts using (deptno)
-where emps.deptno > 10 group by depts.deptno
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-20 200
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select empid, depts.deptno, count(*) + 1 as c, sum(empid) as s
-from emps join depts using (deptno)
-where depts.deptno >= 10 group by empid, depts.deptno
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select empid, depts.deptno, count(*) + 1 as c, sum(empid) as s
-from emps join depts using (deptno)
-where depts.deptno >= 10 group by empid, depts.deptno
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select depts.deptno, sum(empid) + 1 as s
-from emps join depts using (deptno)
-where depts.deptno > 10 group by depts.deptno
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select depts.deptno, sum(empid) + 1 as s
-from emps join depts using (deptno)
-where depts.deptno > 10 group by depts.deptno
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 4 Data size: 48 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: (deptno > 10) (type: boolean)
- Statistics: Num rows: 4 Data size: 48 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: deptno (type: int), s (type: bigint)
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 4 Data size: 48 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- aggregations: sum(_col1)
- keys: _col0 (type: int)
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col1 (type: bigint)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: int)
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: _col0 (type: int), (_col1 + 1L) (type: bigint)
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select depts.deptno, sum(empid) + 1 as s
-from emps join depts using (deptno)
-where depts.deptno > 10 group by depts.deptno
-PREHOOK: type: QUERY
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select depts.deptno, sum(empid) + 1 as s
-from emps join depts using (deptno)
-where depts.deptno > 10 group by depts.deptno
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-20 201
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select depts.name, sum(salary) as s
-from emps
-join depts on (emps.deptno = depts.deptno)
-group by depts.name
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select depts.name, sum(salary) as s
-from emps
-join depts on (emps.deptno = depts.deptno)
-group by depts.name
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select dependents.empid, sum(salary) as s
-from emps
-join depts on (emps.deptno = depts.deptno)
-join dependents on (depts.name = dependents.name)
-group by dependents.empid
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select dependents.empid, sum(salary) as s
-from emps
-join depts on (emps.deptno = depts.deptno)
-join dependents on (depts.name = dependents.name)
-group by dependents.empid
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 2 Data size: 192 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: name is not null (type: boolean)
- Statistics: Num rows: 2 Data size: 192 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: name (type: varchar(256)), s (type: double)
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 192 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: varchar(256))
- sort order: +
- Map-reduce partition columns: _col0 (type: varchar(256))
- Statistics: Num rows: 2 Data size: 192 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col1 (type: double)
- TableScan
- alias: dependents
- Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: name is not null (type: boolean)
- Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: empid (type: int), name (type: varchar(256))
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col1 (type: varchar(256))
- sort order: +
- Map-reduce partition columns: _col1 (type: varchar(256))
- Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col0 (type: int)
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- keys:
- 0 _col0 (type: varchar(256))
- 1 _col1 (type: varchar(256))
- outputColumnNames: _col1, _col2
- Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- aggregations: sum(_col1)
- keys: _col2 (type: int)
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col1 (type: double)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: int)
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select dependents.empid, sum(salary) as s
-from emps
-join depts on (emps.deptno = depts.deptno)
-join dependents on (depts.name = dependents.name)
-group by dependents.empid
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select dependents.empid, sum(salary) as s
-from emps
-join depts on (emps.deptno = depts.deptno)
-join dependents on (depts.name = dependents.name)
-group by dependents.empid
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select dependents.empid, emps.deptno, count(distinct salary) as s
-from emps
-join dependents on (emps.empid = dependents.empid)
-group by dependents.empid, emps.deptno
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select dependents.empid, emps.deptno, count(distinct salary) as s
-from emps
-join dependents on (emps.empid = dependents.empid)
-group by dependents.empid, emps.deptno
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select emps.deptno, count(distinct salary) as s
-from emps
-join dependents on (emps.empid = dependents.empid)
-group by dependents.empid, emps.deptno
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select emps.deptno, count(distinct salary) as s
-from emps
-join dependents on (emps.empid = dependents.empid)
-group by dependents.empid, emps.deptno
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-0 is a root stage
-
-STAGE PLANS:
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: deptno (type: int), s (type: bigint)
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- ListSink
-
-PREHOOK: query: select emps.deptno, count(distinct salary) as s
-from emps
-join dependents on (emps.empid = dependents.empid)
-group by dependents.empid, emps.deptno
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select emps.deptno, count(distinct salary) as s
-from emps
-join dependents on (emps.empid = dependents.empid)
-group by dependents.empid, emps.deptno
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
[07/24] hive git commit: HIVE-18839: Implement incremental rebuild
for materialized views (only insert operations in source tables) (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/materialized_view_rewrite_ssb.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/materialized_view_rewrite_ssb.q.out b/ql/src/test/results/clientpositive/materialized_view_rewrite_ssb.q.out
deleted file mode 100644
index bc42df0..0000000
--- a/ql/src/test/results/clientpositive/materialized_view_rewrite_ssb.q.out
+++ /dev/null
@@ -1,1975 +0,0 @@
-PREHOOK: query: CREATE TABLE `customer_ext`(
- `c_custkey` bigint,
- `c_name` string,
- `c_address` string,
- `c_city` string,
- `c_nation` string,
- `c_region` string,
- `c_phone` string,
- `c_mktsegment` string)
-ROW FORMAT DELIMITED
-FIELDS TERMINATED BY '|'
-STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@customer_ext
-POSTHOOK: query: CREATE TABLE `customer_ext`(
- `c_custkey` bigint,
- `c_name` string,
- `c_address` string,
- `c_city` string,
- `c_nation` string,
- `c_region` string,
- `c_phone` string,
- `c_mktsegment` string)
-ROW FORMAT DELIMITED
-FIELDS TERMINATED BY '|'
-STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@customer_ext
-PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/ssb/customer/' into table `customer_ext`
-PREHOOK: type: LOAD
-#### A masked pattern was here ####
-PREHOOK: Output: default@customer_ext
-POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/ssb/customer/' into table `customer_ext`
-POSTHOOK: type: LOAD
-#### A masked pattern was here ####
-POSTHOOK: Output: default@customer_ext
-PREHOOK: query: CREATE TABLE `customer`(
- `c_custkey` bigint,
- `c_name` string,
- `c_address` string,
- `c_city` string,
- `c_nation` string,
- `c_region` string,
- `c_phone` string,
- `c_mktsegment` string,
- primary key (`c_custkey`) disable rely)
-STORED AS ORC
-TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@customer
-POSTHOOK: query: CREATE TABLE `customer`(
- `c_custkey` bigint,
- `c_name` string,
- `c_address` string,
- `c_city` string,
- `c_nation` string,
- `c_region` string,
- `c_phone` string,
- `c_mktsegment` string,
- primary key (`c_custkey`) disable rely)
-STORED AS ORC
-TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@customer
-PREHOOK: query: INSERT INTO `customer`
-SELECT * FROM `customer_ext`
-PREHOOK: type: QUERY
-PREHOOK: Input: default@customer_ext
-PREHOOK: Output: default@customer
-POSTHOOK: query: INSERT INTO `customer`
-SELECT * FROM `customer_ext`
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@customer_ext
-POSTHOOK: Output: default@customer
-POSTHOOK: Lineage: customer.c_address SIMPLE [(customer_ext)customer_ext.FieldSchema(name:c_address, type:string, comment:null), ]
-POSTHOOK: Lineage: customer.c_city SIMPLE [(customer_ext)customer_ext.FieldSchema(name:c_city, type:string, comment:null), ]
-POSTHOOK: Lineage: customer.c_custkey SIMPLE [(customer_ext)customer_ext.FieldSchema(name:c_custkey, type:bigint, comment:null), ]
-POSTHOOK: Lineage: customer.c_mktsegment SIMPLE [(customer_ext)customer_ext.FieldSchema(name:c_mktsegment, type:string, comment:null), ]
-POSTHOOK: Lineage: customer.c_name SIMPLE [(customer_ext)customer_ext.FieldSchema(name:c_name, type:string, comment:null), ]
-POSTHOOK: Lineage: customer.c_nation SIMPLE [(customer_ext)customer_ext.FieldSchema(name:c_nation, type:string, comment:null), ]
-POSTHOOK: Lineage: customer.c_phone SIMPLE [(customer_ext)customer_ext.FieldSchema(name:c_phone, type:string, comment:null), ]
-POSTHOOK: Lineage: customer.c_region SIMPLE [(customer_ext)customer_ext.FieldSchema(name:c_region, type:string, comment:null), ]
-PREHOOK: query: CREATE TABLE `dates_ext`(
- `d_datekey` bigint,
- `d_date` string,
- `d_dayofweek` string,
- `d_month` string,
- `d_year` int,
- `d_yearmonthnum` int,
- `d_yearmonth` string,
- `d_daynuminweek` int,
- `d_daynuminmonth` int,
- `d_daynuminyear` int,
- `d_monthnuminyear` int,
- `d_weeknuminyear` int,
- `d_sellingseason` string,
- `d_lastdayinweekfl` int,
- `d_lastdayinmonthfl` int,
- `d_holidayfl` int ,
- `d_weekdayfl`int)
-ROW FORMAT DELIMITED
-FIELDS TERMINATED BY '|'
-STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@dates_ext
-POSTHOOK: query: CREATE TABLE `dates_ext`(
- `d_datekey` bigint,
- `d_date` string,
- `d_dayofweek` string,
- `d_month` string,
- `d_year` int,
- `d_yearmonthnum` int,
- `d_yearmonth` string,
- `d_daynuminweek` int,
- `d_daynuminmonth` int,
- `d_daynuminyear` int,
- `d_monthnuminyear` int,
- `d_weeknuminyear` int,
- `d_sellingseason` string,
- `d_lastdayinweekfl` int,
- `d_lastdayinmonthfl` int,
- `d_holidayfl` int ,
- `d_weekdayfl`int)
-ROW FORMAT DELIMITED
-FIELDS TERMINATED BY '|'
-STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@dates_ext
-PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/ssb/date/' into table `dates_ext`
-PREHOOK: type: LOAD
-#### A masked pattern was here ####
-PREHOOK: Output: default@dates_ext
-POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/ssb/date/' into table `dates_ext`
-POSTHOOK: type: LOAD
-#### A masked pattern was here ####
-POSTHOOK: Output: default@dates_ext
-PREHOOK: query: CREATE TABLE `dates`(
- `d_datekey` bigint,
- `d_date` string,
- `d_dayofweek` string,
- `d_month` string,
- `d_year` int,
- `d_yearmonthnum` int,
- `d_yearmonth` string,
- `d_daynuminweek` int,
- `d_daynuminmonth` int,
- `d_daynuminyear` int,
- `d_monthnuminyear` int,
- `d_weeknuminyear` int,
- `d_sellingseason` string,
- `d_lastdayinweekfl` int,
- `d_lastdayinmonthfl` int,
- `d_holidayfl` int ,
- `d_weekdayfl`int,
- primary key (`d_datekey`) disable rely
-)
-STORED AS ORC
-TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@dates
-POSTHOOK: query: CREATE TABLE `dates`(
- `d_datekey` bigint,
- `d_date` string,
- `d_dayofweek` string,
- `d_month` string,
- `d_year` int,
- `d_yearmonthnum` int,
- `d_yearmonth` string,
- `d_daynuminweek` int,
- `d_daynuminmonth` int,
- `d_daynuminyear` int,
- `d_monthnuminyear` int,
- `d_weeknuminyear` int,
- `d_sellingseason` string,
- `d_lastdayinweekfl` int,
- `d_lastdayinmonthfl` int,
- `d_holidayfl` int ,
- `d_weekdayfl`int,
- primary key (`d_datekey`) disable rely
-)
-STORED AS ORC
-TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@dates
-PREHOOK: query: INSERT INTO `dates`
-SELECT * FROM `dates_ext`
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dates_ext
-PREHOOK: Output: default@dates
-POSTHOOK: query: INSERT INTO `dates`
-SELECT * FROM `dates_ext`
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dates_ext
-POSTHOOK: Output: default@dates
-POSTHOOK: Lineage: dates.d_date SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_date, type:string, comment:null), ]
-POSTHOOK: Lineage: dates.d_datekey SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_datekey, type:bigint, comment:null), ]
-POSTHOOK: Lineage: dates.d_daynuminmonth SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_daynuminmonth, type:int, comment:null), ]
-POSTHOOK: Lineage: dates.d_daynuminweek SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_daynuminweek, type:int, comment:null), ]
-POSTHOOK: Lineage: dates.d_daynuminyear SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_daynuminyear, type:int, comment:null), ]
-POSTHOOK: Lineage: dates.d_dayofweek SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_dayofweek, type:string, comment:null), ]
-POSTHOOK: Lineage: dates.d_holidayfl SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_holidayfl, type:int, comment:null), ]
-POSTHOOK: Lineage: dates.d_lastdayinmonthfl SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_lastdayinmonthfl, type:int, comment:null), ]
-POSTHOOK: Lineage: dates.d_lastdayinweekfl SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_lastdayinweekfl, type:int, comment:null), ]
-POSTHOOK: Lineage: dates.d_month SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_month, type:string, comment:null), ]
-POSTHOOK: Lineage: dates.d_monthnuminyear SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_monthnuminyear, type:int, comment:null), ]
-POSTHOOK: Lineage: dates.d_sellingseason SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_sellingseason, type:string, comment:null), ]
-POSTHOOK: Lineage: dates.d_weekdayfl SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_weekdayfl, type:int, comment:null), ]
-POSTHOOK: Lineage: dates.d_weeknuminyear SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_weeknuminyear, type:int, comment:null), ]
-POSTHOOK: Lineage: dates.d_year SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_year, type:int, comment:null), ]
-POSTHOOK: Lineage: dates.d_yearmonth SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_yearmonth, type:string, comment:null), ]
-POSTHOOK: Lineage: dates.d_yearmonthnum SIMPLE [(dates_ext)dates_ext.FieldSchema(name:d_yearmonthnum, type:int, comment:null), ]
-PREHOOK: query: CREATE TABLE `ssb_part_ext`(
- `p_partkey` bigint,
- `p_name` string,
- `p_mfgr` string,
- `p_category` string,
- `p_brand1` string,
- `p_color` string,
- `p_type` string,
- `p_size` int,
- `p_container` string)
-ROW FORMAT DELIMITED
-FIELDS TERMINATED BY '|'
-STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@ssb_part_ext
-POSTHOOK: query: CREATE TABLE `ssb_part_ext`(
- `p_partkey` bigint,
- `p_name` string,
- `p_mfgr` string,
- `p_category` string,
- `p_brand1` string,
- `p_color` string,
- `p_type` string,
- `p_size` int,
- `p_container` string)
-ROW FORMAT DELIMITED
-FIELDS TERMINATED BY '|'
-STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@ssb_part_ext
-PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/ssb/part/' into table `ssb_part_ext`
-PREHOOK: type: LOAD
-#### A masked pattern was here ####
-PREHOOK: Output: default@ssb_part_ext
-POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/ssb/part/' into table `ssb_part_ext`
-POSTHOOK: type: LOAD
-#### A masked pattern was here ####
-POSTHOOK: Output: default@ssb_part_ext
-PREHOOK: query: CREATE TABLE `ssb_part`(
- `p_partkey` bigint,
- `p_name` string,
- `p_mfgr` string,
- `p_category` string,
- `p_brand1` string,
- `p_color` string,
- `p_type` string,
- `p_size` int,
- `p_container` string,
- primary key (`p_partkey`) disable rely)
-STORED AS ORC
-TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@ssb_part
-POSTHOOK: query: CREATE TABLE `ssb_part`(
- `p_partkey` bigint,
- `p_name` string,
- `p_mfgr` string,
- `p_category` string,
- `p_brand1` string,
- `p_color` string,
- `p_type` string,
- `p_size` int,
- `p_container` string,
- primary key (`p_partkey`) disable rely)
-STORED AS ORC
-TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@ssb_part
-PREHOOK: query: INSERT INTO `ssb_part`
-SELECT * FROM `ssb_part_ext`
-PREHOOK: type: QUERY
-PREHOOK: Input: default@ssb_part_ext
-PREHOOK: Output: default@ssb_part
-POSTHOOK: query: INSERT INTO `ssb_part`
-SELECT * FROM `ssb_part_ext`
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@ssb_part_ext
-POSTHOOK: Output: default@ssb_part
-POSTHOOK: Lineage: ssb_part.p_brand1 SIMPLE [(ssb_part_ext)ssb_part_ext.FieldSchema(name:p_brand1, type:string, comment:null), ]
-POSTHOOK: Lineage: ssb_part.p_category SIMPLE [(ssb_part_ext)ssb_part_ext.FieldSchema(name:p_category, type:string, comment:null), ]
-POSTHOOK: Lineage: ssb_part.p_color SIMPLE [(ssb_part_ext)ssb_part_ext.FieldSchema(name:p_color, type:string, comment:null), ]
-POSTHOOK: Lineage: ssb_part.p_container SIMPLE [(ssb_part_ext)ssb_part_ext.FieldSchema(name:p_container, type:string, comment:null), ]
-POSTHOOK: Lineage: ssb_part.p_mfgr SIMPLE [(ssb_part_ext)ssb_part_ext.FieldSchema(name:p_mfgr, type:string, comment:null), ]
-POSTHOOK: Lineage: ssb_part.p_name SIMPLE [(ssb_part_ext)ssb_part_ext.FieldSchema(name:p_name, type:string, comment:null), ]
-POSTHOOK: Lineage: ssb_part.p_partkey SIMPLE [(ssb_part_ext)ssb_part_ext.FieldSchema(name:p_partkey, type:bigint, comment:null), ]
-POSTHOOK: Lineage: ssb_part.p_size SIMPLE [(ssb_part_ext)ssb_part_ext.FieldSchema(name:p_size, type:int, comment:null), ]
-POSTHOOK: Lineage: ssb_part.p_type SIMPLE [(ssb_part_ext)ssb_part_ext.FieldSchema(name:p_type, type:string, comment:null), ]
-PREHOOK: query: CREATE TABLE `supplier_ext`(
- `s_suppkey` bigint,
- `s_name` string,
- `s_address` string,
- `s_city` string,
- `s_nation` string,
- `s_region` string,
- `s_phone` string)
-ROW FORMAT DELIMITED
-FIELDS TERMINATED BY '|'
-STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@supplier_ext
-POSTHOOK: query: CREATE TABLE `supplier_ext`(
- `s_suppkey` bigint,
- `s_name` string,
- `s_address` string,
- `s_city` string,
- `s_nation` string,
- `s_region` string,
- `s_phone` string)
-ROW FORMAT DELIMITED
-FIELDS TERMINATED BY '|'
-STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@supplier_ext
-PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/ssb/supplier/' into table `supplier_ext`
-PREHOOK: type: LOAD
-#### A masked pattern was here ####
-PREHOOK: Output: default@supplier_ext
-POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/ssb/supplier/' into table `supplier_ext`
-POSTHOOK: type: LOAD
-#### A masked pattern was here ####
-POSTHOOK: Output: default@supplier_ext
-PREHOOK: query: CREATE TABLE `supplier`(
- `s_suppkey` bigint,
- `s_name` string,
- `s_address` string,
- `s_city` string,
- `s_nation` string,
- `s_region` string,
- `s_phone` string,
- primary key (`s_suppkey`) disable rely)
-STORED AS ORC
-TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@supplier
-POSTHOOK: query: CREATE TABLE `supplier`(
- `s_suppkey` bigint,
- `s_name` string,
- `s_address` string,
- `s_city` string,
- `s_nation` string,
- `s_region` string,
- `s_phone` string,
- primary key (`s_suppkey`) disable rely)
-STORED AS ORC
-TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@supplier
-PREHOOK: query: INSERT INTO `supplier`
-SELECT * FROM `supplier_ext`
-PREHOOK: type: QUERY
-PREHOOK: Input: default@supplier_ext
-PREHOOK: Output: default@supplier
-POSTHOOK: query: INSERT INTO `supplier`
-SELECT * FROM `supplier_ext`
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@supplier_ext
-POSTHOOK: Output: default@supplier
-POSTHOOK: Lineage: supplier.s_address SIMPLE [(supplier_ext)supplier_ext.FieldSchema(name:s_address, type:string, comment:null), ]
-POSTHOOK: Lineage: supplier.s_city SIMPLE [(supplier_ext)supplier_ext.FieldSchema(name:s_city, type:string, comment:null), ]
-POSTHOOK: Lineage: supplier.s_name SIMPLE [(supplier_ext)supplier_ext.FieldSchema(name:s_name, type:string, comment:null), ]
-POSTHOOK: Lineage: supplier.s_nation SIMPLE [(supplier_ext)supplier_ext.FieldSchema(name:s_nation, type:string, comment:null), ]
-POSTHOOK: Lineage: supplier.s_phone SIMPLE [(supplier_ext)supplier_ext.FieldSchema(name:s_phone, type:string, comment:null), ]
-POSTHOOK: Lineage: supplier.s_region SIMPLE [(supplier_ext)supplier_ext.FieldSchema(name:s_region, type:string, comment:null), ]
-POSTHOOK: Lineage: supplier.s_suppkey SIMPLE [(supplier_ext)supplier_ext.FieldSchema(name:s_suppkey, type:bigint, comment:null), ]
-PREHOOK: query: CREATE TABLE `lineorder_ext`(
- `lo_orderkey` bigint,
- `lo_linenumber` int,
- `lo_custkey` bigint not null disable rely,
- `lo_partkey` bigint not null disable rely,
- `lo_suppkey` bigint not null disable rely,
- `lo_orderdate` bigint not null disable rely,
- `lo_ordpriority` string,
- `lo_shippriority` string,
- `lo_quantity` double,
- `lo_extendedprice` double,
- `lo_ordtotalprice` double,
- `lo_discount` double,
- `lo_revenue` double,
- `lo_supplycost` double,
- `lo_tax` double,
- `lo_commitdate` bigint,
- `lo_shipmode` string)
-ROW FORMAT DELIMITED
-FIELDS TERMINATED BY '|'
-STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@lineorder_ext
-POSTHOOK: query: CREATE TABLE `lineorder_ext`(
- `lo_orderkey` bigint,
- `lo_linenumber` int,
- `lo_custkey` bigint not null disable rely,
- `lo_partkey` bigint not null disable rely,
- `lo_suppkey` bigint not null disable rely,
- `lo_orderdate` bigint not null disable rely,
- `lo_ordpriority` string,
- `lo_shippriority` string,
- `lo_quantity` double,
- `lo_extendedprice` double,
- `lo_ordtotalprice` double,
- `lo_discount` double,
- `lo_revenue` double,
- `lo_supplycost` double,
- `lo_tax` double,
- `lo_commitdate` bigint,
- `lo_shipmode` string)
-ROW FORMAT DELIMITED
-FIELDS TERMINATED BY '|'
-STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@lineorder_ext
-PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/ssb/lineorder/' into table `lineorder_ext`
-PREHOOK: type: LOAD
-#### A masked pattern was here ####
-PREHOOK: Output: default@lineorder_ext
-POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/ssb/lineorder/' into table `lineorder_ext`
-POSTHOOK: type: LOAD
-#### A masked pattern was here ####
-POSTHOOK: Output: default@lineorder_ext
-PREHOOK: query: CREATE TABLE `lineorder`(
- `lo_orderkey` bigint,
- `lo_linenumber` int,
- `lo_custkey` bigint not null disable rely,
- `lo_partkey` bigint not null disable rely,
- `lo_suppkey` bigint not null disable rely,
- `lo_orderdate` bigint not null disable rely,
- `lo_ordpriority` string,
- `lo_shippriority` string,
- `lo_quantity` double,
- `lo_extendedprice` double,
- `lo_ordtotalprice` double,
- `lo_discount` double,
- `lo_revenue` double,
- `lo_supplycost` double,
- `lo_tax` double,
- `lo_commitdate` bigint,
- `lo_shipmode` string,
- primary key (`lo_orderkey`) disable rely,
- constraint fk1 foreign key (`lo_custkey`) references `customer`(`c_custkey`) disable rely,
- constraint fk2 foreign key (`lo_orderdate`) references `dates`(`d_datekey`) disable rely,
- constraint fk3 foreign key (`lo_partkey`) references `ssb_part`(`p_partkey`) disable rely,
- constraint fk4 foreign key (`lo_suppkey`) references `supplier`(`s_suppkey`) disable rely)
-STORED AS ORC
-TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@lineorder
-POSTHOOK: query: CREATE TABLE `lineorder`(
- `lo_orderkey` bigint,
- `lo_linenumber` int,
- `lo_custkey` bigint not null disable rely,
- `lo_partkey` bigint not null disable rely,
- `lo_suppkey` bigint not null disable rely,
- `lo_orderdate` bigint not null disable rely,
- `lo_ordpriority` string,
- `lo_shippriority` string,
- `lo_quantity` double,
- `lo_extendedprice` double,
- `lo_ordtotalprice` double,
- `lo_discount` double,
- `lo_revenue` double,
- `lo_supplycost` double,
- `lo_tax` double,
- `lo_commitdate` bigint,
- `lo_shipmode` string,
- primary key (`lo_orderkey`) disable rely,
- constraint fk1 foreign key (`lo_custkey`) references `customer`(`c_custkey`) disable rely,
- constraint fk2 foreign key (`lo_orderdate`) references `dates`(`d_datekey`) disable rely,
- constraint fk3 foreign key (`lo_partkey`) references `ssb_part`(`p_partkey`) disable rely,
- constraint fk4 foreign key (`lo_suppkey`) references `supplier`(`s_suppkey`) disable rely)
-STORED AS ORC
-TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@lineorder
-PREHOOK: query: INSERT INTO `lineorder`
-SELECT * FROM `lineorder_ext`
-PREHOOK: type: QUERY
-PREHOOK: Input: default@lineorder_ext
-PREHOOK: Output: default@lineorder
-POSTHOOK: query: INSERT INTO `lineorder`
-SELECT * FROM `lineorder_ext`
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@lineorder_ext
-POSTHOOK: Output: default@lineorder
-POSTHOOK: Lineage: lineorder.lo_commitdate SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_commitdate, type:bigint, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_custkey SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_custkey, type:bigint, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_discount SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_discount, type:double, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_extendedprice SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_extendedprice, type:double, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_linenumber SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_linenumber, type:int, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_orderdate SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_orderdate, type:bigint, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_orderkey SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_orderkey, type:bigint, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_ordpriority SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_ordpriority, type:string, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_ordtotalprice SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_ordtotalprice, type:double, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_partkey SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_partkey, type:bigint, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_quantity SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_quantity, type:double, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_revenue SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_revenue, type:double, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_shipmode SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_shipmode, type:string, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_shippriority SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_shippriority, type:string, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_suppkey SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_suppkey, type:bigint, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_supplycost SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_supplycost, type:double, comment:null), ]
-POSTHOOK: Lineage: lineorder.lo_tax SIMPLE [(lineorder_ext)lineorder_ext.FieldSchema(name:lo_tax, type:double, comment:null), ]
-PREHOOK: query: analyze table customer compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@customer
-PREHOOK: Output: default@customer
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table customer compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@customer
-POSTHOOK: Output: default@customer
-#### A masked pattern was here ####
-PREHOOK: query: analyze table dates compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dates
-PREHOOK: Output: default@dates
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table dates compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dates
-POSTHOOK: Output: default@dates
-#### A masked pattern was here ####
-PREHOOK: query: analyze table ssb_part compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@ssb_part
-PREHOOK: Output: default@ssb_part
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table ssb_part compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@ssb_part
-POSTHOOK: Output: default@ssb_part
-#### A masked pattern was here ####
-PREHOOK: query: analyze table supplier compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@supplier
-PREHOOK: Output: default@supplier
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table supplier compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@supplier
-POSTHOOK: Output: default@supplier
-#### A masked pattern was here ####
-PREHOOK: query: analyze table lineorder compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@lineorder
-PREHOOK: Output: default@lineorder
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table lineorder compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@lineorder
-POSTHOOK: Output: default@lineorder
-#### A masked pattern was here ####
-PREHOOK: query: CREATE MATERIALIZED VIEW `ssb_mv` ENABLE REWRITE
-AS
-SELECT
- c_city,
- c_nation,
- c_region,
- d_weeknuminyear,
- d_year,
- d_yearmonth,
- d_yearmonthnum,
- lo_discount,
- lo_quantity,
- p_brand1,
- p_category,
- p_mfgr,
- s_city,
- s_nation,
- s_region,
- lo_revenue,
- lo_extendedprice * lo_discount discounted_price,
- lo_revenue - lo_supplycost net_revenue
-FROM
- customer, dates, lineorder, ssb_part, supplier
-where
- lo_orderdate = d_datekey
- and lo_partkey = p_partkey
- and lo_suppkey = s_suppkey
- and lo_custkey = c_custkey
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@customer
-PREHOOK: Input: default@dates
-PREHOOK: Input: default@lineorder
-PREHOOK: Input: default@ssb_part
-PREHOOK: Input: default@supplier
-PREHOOK: Output: database:default
-PREHOOK: Output: default@ssb_mv
-POSTHOOK: query: CREATE MATERIALIZED VIEW `ssb_mv` ENABLE REWRITE
-AS
-SELECT
- c_city,
- c_nation,
- c_region,
- d_weeknuminyear,
- d_year,
- d_yearmonth,
- d_yearmonthnum,
- lo_discount,
- lo_quantity,
- p_brand1,
- p_category,
- p_mfgr,
- s_city,
- s_nation,
- s_region,
- lo_revenue,
- lo_extendedprice * lo_discount discounted_price,
- lo_revenue - lo_supplycost net_revenue
-FROM
- customer, dates, lineorder, ssb_part, supplier
-where
- lo_orderdate = d_datekey
- and lo_partkey = p_partkey
- and lo_suppkey = s_suppkey
- and lo_custkey = c_custkey
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@customer
-POSTHOOK: Input: default@dates
-POSTHOOK: Input: default@lineorder
-POSTHOOK: Input: default@ssb_part
-POSTHOOK: Input: default@supplier
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@ssb_mv
-PREHOOK: query: explain
-select
- sum(lo_extendedprice*lo_discount) as revenue
-from
- lineorder, dates
-where
- lo_orderdate = d_datekey
- and d_year = 1993
- and lo_discount between 1 and 3
- and lo_quantity < 25
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
- sum(lo_extendedprice*lo_discount) as revenue
-from
- lineorder, dates
-where
- lo_orderdate = d_datekey
- and d_year = 1993
- and lo_discount between 1 and 3
- and lo_quantity < 25
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.ssb_mv
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Filter Operator
- predicate: ((d_year = 1993) and (lo_quantity < 25.0D) and lo_discount BETWEEN 1.0D AND 3.0D) (type: boolean)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: discounted_price (type: double)
- outputColumnNames: discounted_price
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Group By Operator
- aggregations: sum(discounted_price)
- mode: hash
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 8 Basic stats: PARTIAL Column stats: NONE
- Reduce Output Operator
- sort order:
- Statistics: Num rows: 1 Data size: 8 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col0 (type: double)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- mode: mergepartial
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 8 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 8 Basic stats: PARTIAL Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
- sum(lo_extendedprice*lo_discount) as revenue
-from
- lineorder, dates
-where
- lo_orderdate = d_datekey
- and d_yearmonthnum = 199401
- and lo_discount between 4 and 6
- and lo_quantity between 26 and 35
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
- sum(lo_extendedprice*lo_discount) as revenue
-from
- lineorder, dates
-where
- lo_orderdate = d_datekey
- and d_yearmonthnum = 199401
- and lo_discount between 4 and 6
- and lo_quantity between 26 and 35
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.ssb_mv
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Filter Operator
- predicate: ((d_yearmonthnum = 199401) and lo_discount BETWEEN 4.0D AND 6.0D and lo_quantity BETWEEN 26.0D AND 35.0D) (type: boolean)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: discounted_price (type: double)
- outputColumnNames: discounted_price
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Group By Operator
- aggregations: sum(discounted_price)
- mode: hash
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 8 Basic stats: PARTIAL Column stats: NONE
- Reduce Output Operator
- sort order:
- Statistics: Num rows: 1 Data size: 8 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col0 (type: double)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- mode: mergepartial
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 8 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 8 Basic stats: PARTIAL Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
- sum(lo_extendedprice*lo_discount) as revenue
-from
- lineorder, dates
-where
- lo_orderdate = d_datekey
- and d_weeknuminyear = 6
- and d_year = 1994
- and lo_discount between 5 and 7
- and lo_quantity between 26 and 35
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
- sum(lo_extendedprice*lo_discount) as revenue
-from
- lineorder, dates
-where
- lo_orderdate = d_datekey
- and d_weeknuminyear = 6
- and d_year = 1994
- and lo_discount between 5 and 7
- and lo_quantity between 26 and 35
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.ssb_mv
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Filter Operator
- predicate: ((d_weeknuminyear = 6) and (d_year = 1994) and lo_discount BETWEEN 5.0D AND 7.0D and lo_quantity BETWEEN 26.0D AND 35.0D) (type: boolean)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: discounted_price (type: double)
- outputColumnNames: discounted_price
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Group By Operator
- aggregations: sum(discounted_price)
- mode: hash
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 8 Basic stats: PARTIAL Column stats: NONE
- Reduce Output Operator
- sort order:
- Statistics: Num rows: 1 Data size: 8 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col0 (type: double)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- mode: mergepartial
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 8 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 8 Basic stats: PARTIAL Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
- sum(lo_revenue) as lo_revenue, d_year, p_brand1
-from
- lineorder, dates, ssb_part, supplier
-where
- lo_orderdate = d_datekey
- and lo_partkey = p_partkey
- and lo_suppkey = s_suppkey
- and p_category = 'MFGR#12'
- and s_region = 'AMERICA'
-group by
- d_year, p_brand1
-order by
- d_year, p_brand1
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
- sum(lo_revenue) as lo_revenue, d_year, p_brand1
-from
- lineorder, dates, ssb_part, supplier
-where
- lo_orderdate = d_datekey
- and lo_partkey = p_partkey
- and lo_suppkey = s_suppkey
- and p_category = 'MFGR#12'
- and s_region = 'AMERICA'
-group by
- d_year, p_brand1
-order by
- d_year, p_brand1
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.ssb_mv
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Filter Operator
- predicate: ((p_category = 'MFGR#12') and (s_region = 'AMERICA')) (type: boolean)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: d_year (type: int), p_brand1 (type: string), lo_revenue (type: double)
- outputColumnNames: d_year, p_brand1, lo_revenue
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Group By Operator
- aggregations: sum(lo_revenue)
- keys: d_year (type: int), p_brand1 (type: string)
- mode: hash
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: string)
- sort order: ++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: string)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col2 (type: double)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: int), KEY._col1 (type: string)
- mode: mergepartial
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: _col2 (type: double), _col0 (type: int), _col1 (type: string)
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col1 (type: int), _col2 (type: string)
- sort order: ++
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col0 (type: double)
- Reduce Operator Tree:
- Select Operator
- expressions: VALUE._col0 (type: double), KEY.reducesinkkey0 (type: int), KEY.reducesinkkey1 (type: string)
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
- sum(lo_revenue) as lo_revenue, d_year, p_brand1
-from
- lineorder, dates, ssb_part, supplier
-where
- lo_orderdate = d_datekey
- and lo_partkey = p_partkey
- and lo_suppkey = s_suppkey
- and p_brand1 between 'MFGR#2221' and 'MFGR#2228'
- and s_region = 'ASIA'
-group by
- d_year, p_brand1
-order by
- d_year, p_brand1
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
- sum(lo_revenue) as lo_revenue, d_year, p_brand1
-from
- lineorder, dates, ssb_part, supplier
-where
- lo_orderdate = d_datekey
- and lo_partkey = p_partkey
- and lo_suppkey = s_suppkey
- and p_brand1 between 'MFGR#2221' and 'MFGR#2228'
- and s_region = 'ASIA'
-group by
- d_year, p_brand1
-order by
- d_year, p_brand1
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.ssb_mv
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Filter Operator
- predicate: ((s_region = 'ASIA') and p_brand1 BETWEEN 'MFGR#2221' AND 'MFGR#2228') (type: boolean)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: d_year (type: int), p_brand1 (type: string), lo_revenue (type: double)
- outputColumnNames: d_year, p_brand1, lo_revenue
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Group By Operator
- aggregations: sum(lo_revenue)
- keys: d_year (type: int), p_brand1 (type: string)
- mode: hash
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: string)
- sort order: ++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: string)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col2 (type: double)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: int), KEY._col1 (type: string)
- mode: mergepartial
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: _col2 (type: double), _col0 (type: int), _col1 (type: string)
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col1 (type: int), _col2 (type: string)
- sort order: ++
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col0 (type: double)
- Reduce Operator Tree:
- Select Operator
- expressions: VALUE._col0 (type: double), KEY.reducesinkkey0 (type: int), KEY.reducesinkkey1 (type: string)
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
- sum(lo_revenue) as lo_revenue, d_year, p_brand1
-from
- lineorder, dates, ssb_part, supplier
-where
- lo_orderdate = d_datekey
- and lo_partkey = p_partkey
- and lo_suppkey = s_suppkey
- and p_brand1 = 'MFGR#2239'
- and s_region = 'EUROPE'
-group by
- d_year, p_brand1
-order by
- d_year, p_brand1
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
- sum(lo_revenue) as lo_revenue, d_year, p_brand1
-from
- lineorder, dates, ssb_part, supplier
-where
- lo_orderdate = d_datekey
- and lo_partkey = p_partkey
- and lo_suppkey = s_suppkey
- and p_brand1 = 'MFGR#2239'
- and s_region = 'EUROPE'
-group by
- d_year, p_brand1
-order by
- d_year, p_brand1
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.ssb_mv
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Filter Operator
- predicate: ((p_brand1 = 'MFGR#2239') and (s_region = 'EUROPE')) (type: boolean)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: d_year (type: int), lo_revenue (type: double)
- outputColumnNames: d_year, lo_revenue
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Group By Operator
- aggregations: sum(lo_revenue)
- keys: d_year (type: int)
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col1 (type: double)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: int)
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: _col1 (type: double), _col0 (type: int)
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col1 (type: int)
- sort order: +
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col0 (type: double)
- Reduce Operator Tree:
- Select Operator
- expressions: VALUE._col0 (type: double), KEY.reducesinkkey0 (type: int), 'MFGR#2239' (type: string)
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
- c_nation, s_nation, d_year,
- sum(lo_revenue) as lo_revenue
-from
- customer, lineorder, supplier, dates
-where
- lo_custkey = c_custkey
- and lo_suppkey = s_suppkey
- and lo_orderdate = d_datekey
- and c_region = 'ASIA'
- and s_region = 'ASIA'
- and d_year >= 1992 and d_year <= 1997
-group by
- c_nation, s_nation, d_year
-order by
- d_year asc, lo_revenue desc
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
- c_nation, s_nation, d_year,
- sum(lo_revenue) as lo_revenue
-from
- customer, lineorder, supplier, dates
-where
- lo_custkey = c_custkey
- and lo_suppkey = s_suppkey
- and lo_orderdate = d_datekey
- and c_region = 'ASIA'
- and s_region = 'ASIA'
- and d_year >= 1992 and d_year <= 1997
-group by
- c_nation, s_nation, d_year
-order by
- d_year asc, lo_revenue desc
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.ssb_mv
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Filter Operator
- predicate: ((c_region = 'ASIA') and (d_year <= 1997) and (d_year >= 1992) and (s_region = 'ASIA')) (type: boolean)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: c_nation (type: string), d_year (type: int), s_nation (type: string), lo_revenue (type: double)
- outputColumnNames: c_nation, d_year, s_nation, lo_revenue
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Group By Operator
- aggregations: sum(lo_revenue)
- keys: d_year (type: int), c_nation (type: string), s_nation (type: string)
- mode: hash
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- sort order: +++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col3 (type: double)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: int), KEY._col1 (type: string), KEY._col2 (type: string)
- mode: mergepartial
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: _col1 (type: string), _col2 (type: string), _col0 (type: int), _col3 (type: double)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col2 (type: int), _col3 (type: double)
- sort order: +-
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col0 (type: string), _col1 (type: string)
- Reduce Operator Tree:
- Select Operator
- expressions: VALUE._col0 (type: string), VALUE._col1 (type: string), KEY.reducesinkkey0 (type: int), KEY.reducesinkkey1 (type: double)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
- c_city, s_city, d_year, sum(lo_revenue) as lo_revenue
-from
- customer, lineorder, supplier, dates
-where
- lo_custkey = c_custkey
- and lo_suppkey = s_suppkey
- and lo_orderdate = d_datekey
- and c_nation = 'UNITED STATES'
- and s_nation = 'UNITED STATES'
- and d_year >= 1992 and d_year <= 1997
-group by
- c_city, s_city, d_year
-order by
- d_year asc, lo_revenue desc
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
- c_city, s_city, d_year, sum(lo_revenue) as lo_revenue
-from
- customer, lineorder, supplier, dates
-where
- lo_custkey = c_custkey
- and lo_suppkey = s_suppkey
- and lo_orderdate = d_datekey
- and c_nation = 'UNITED STATES'
- and s_nation = 'UNITED STATES'
- and d_year >= 1992 and d_year <= 1997
-group by
- c_city, s_city, d_year
-order by
- d_year asc, lo_revenue desc
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.ssb_mv
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Filter Operator
- predicate: ((c_nation = 'UNITED STATES') and (d_year <= 1997) and (d_year >= 1992) and (s_nation = 'UNITED STATES')) (type: boolean)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: c_city (type: string), d_year (type: int), s_city (type: string), lo_revenue (type: double)
- outputColumnNames: c_city, d_year, s_city, lo_revenue
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Group By Operator
- aggregations: sum(lo_revenue)
- keys: d_year (type: int), c_city (type: string), s_city (type: string)
- mode: hash
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- sort order: +++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col3 (type: double)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: int), KEY._col1 (type: string), KEY._col2 (type: string)
- mode: mergepartial
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: _col1 (type: string), _col2 (type: string), _col0 (type: int), _col3 (type: double)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col2 (type: int), _col3 (type: double)
- sort order: +-
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col0 (type: string), _col1 (type: string)
- Reduce Operator Tree:
- Select Operator
- expressions: VALUE._col0 (type: string), VALUE._col1 (type: string), KEY.reducesinkkey0 (type: int), KEY.reducesinkkey1 (type: double)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
- c_city, s_city, d_year, sum(lo_revenue) as lo_revenue
-from
- customer, lineorder, supplier, dates
-where
- lo_custkey = c_custkey
- and lo_suppkey = s_suppkey
- and lo_orderdate = d_datekey
- and (c_city='UNITED KI1' or c_city='UNITED KI5')
- and (s_city='UNITED KI1' or s_city='UNITED KI5')
- and d_year >= 1992 and d_year <= 1997
-group by
- c_city, s_city, d_year
-order by
- d_year asc, lo_revenue desc
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
- c_city, s_city, d_year, sum(lo_revenue) as lo_revenue
-from
- customer, lineorder, supplier, dates
-where
- lo_custkey = c_custkey
- and lo_suppkey = s_suppkey
- and lo_orderdate = d_datekey
- and (c_city='UNITED KI1' or c_city='UNITED KI5')
- and (s_city='UNITED KI1' or s_city='UNITED KI5')
- and d_year >= 1992 and d_year <= 1997
-group by
- c_city, s_city, d_year
-order by
- d_year asc, lo_revenue desc
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.ssb_mv
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Filter Operator
- predicate: (((c_city = 'UNITED KI1') or (c_city = 'UNITED KI5')) and ((s_city = 'UNITED KI1') or (s_city = 'UNITED KI5')) and (d_year <= 1997) and (d_year >= 1992)) (type: boolean)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Group By Operator
- aggregations: sum(lo_revenue)
- keys: d_year (type: int), c_city (type: string), s_city (type: string)
- mode: hash
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- sort order: +++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col3 (type: double)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: int), KEY._col1 (type: string), KEY._col2 (type: string)
- mode: mergepartial
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: _col1 (type: string), _col2 (type: string), _col0 (type: int), _col3 (type: double)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col2 (type: int), _col3 (type: double)
- sort order: +-
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col0 (type: string), _col1 (type: string)
- Reduce Operator Tree:
- Select Operator
- expressions: VALUE._col0 (type: string), VALUE._col1 (type: string), KEY.reducesinkkey0 (type: int), KEY.reducesinkkey1 (type: double)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
- c_city, s_city, d_year, sum(lo_revenue) as lo_revenue
-from
- customer, lineorder, supplier, dates
-where
- lo_custkey = c_custkey
- and lo_suppkey = s_suppkey
- and lo_orderdate = d_datekey
- and (c_city='UNITED KI1' or c_city='UNITED KI5')
- and (s_city='UNITED KI1' or s_city='UNITED KI5')
- and d_yearmonth = 'Dec1997'
-group by
- c_city, s_city, d_year
-order by
- d_year asc, lo_revenue desc
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
- c_city, s_city, d_year, sum(lo_revenue) as lo_revenue
-from
- customer, lineorder, supplier, dates
-where
- lo_custkey = c_custkey
- and lo_suppkey = s_suppkey
- and lo_orderdate = d_datekey
- and (c_city='UNITED KI1' or c_city='UNITED KI5')
- and (s_city='UNITED KI1' or s_city='UNITED KI5')
- and d_yearmonth = 'Dec1997'
-group by
- c_city, s_city, d_year
-order by
- d_year asc, lo_revenue desc
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.ssb_mv
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Filter Operator
- predicate: (((c_city = 'UNITED KI1') or (c_city = 'UNITED KI5')) and ((s_city = 'UNITED KI1') or (s_city = 'UNITED KI5')) and (d_yearmonth = 'Dec1997')) (type: boolean)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: c_city (type: string), d_year (type: int), s_city (type: string), lo_revenue (type: double)
- outputColumnNames: c_city, d_year, s_city, lo_revenue
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Group By Operator
- aggregations: sum(lo_revenue)
- keys: d_year (type: int), c_city (type: string), s_city (type: string)
- mode: hash
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- sort order: +++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col3 (type: double)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: int), KEY._col1 (type: string), KEY._col2 (type: string)
- mode: mergepartial
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: _col1 (type: string), _col2 (type: string), _col0 (type: int), _col3 (type: double)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col2 (type: int), _col3 (type: double)
- sort order: +-
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col0 (type: string), _col1 (type: string)
- Reduce Operator Tree:
- Select Operator
- expressions: VALUE._col0 (type: string), VALUE._col1 (type: string), KEY.reducesinkkey0 (type: int), KEY.reducesinkkey1 (type: double)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
- d_year, c_nation,
- sum(lo_revenue - lo_supplycost) as profit
-from
- dates, customer, supplier, ssb_part, lineorder
-where
- lo_custkey = c_custkey
- and lo_suppkey = s_suppkey
- and lo_partkey = p_partkey
- and lo_orderdate = d_datekey
- and c_region = 'AMERICA'
- and s_region = 'AMERICA'
- and (p_mfgr = 'MFGR#1' or p_mfgr = 'MFGR#2')
-group by
- d_year, c_nation
-order by
- d_year, c_nation
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
- d_year, c_nation,
- sum(lo_revenue - lo_supplycost) as profit
-from
- dates, customer, supplier, ssb_part, lineorder
-where
- lo_custkey = c_custkey
- and lo_suppkey = s_suppkey
- and lo_partkey = p_partkey
- and lo_orderdate = d_datekey
- and c_region = 'AMERICA'
- and s_region = 'AMERICA'
- and (p_mfgr = 'MFGR#1' or p_mfgr = 'MFGR#2')
-group by
- d_year, c_nation
-order by
- d_year, c_nation
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.ssb_mv
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Filter Operator
- predicate: (((p_mfgr = 'MFGR#1') or (p_mfgr = 'MFGR#2')) and (c_region = 'AMERICA') and (s_region = 'AMERICA')) (type: boolean)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: c_nation (type: string), d_year (type: int), net_revenue (type: double)
- outputColumnNames: c_nation, d_year, net_revenue
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Group By Operator
- aggregations: sum(net_revenue)
- keys: d_year (type: int), c_nation (type: string)
- mode: hash
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: string)
- sort order: ++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: string)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col2 (type: double)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: int), KEY._col1 (type: string)
- mode: mergepartial
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: string)
- sort order: ++
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col2 (type: double)
- Reduce Operator Tree:
- Select Operator
- expressions: KEY.reducesinkkey0 (type: int), KEY.reducesinkkey1 (type: string), VALUE._col0 (type: double)
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
- d_year, s_nation, p_category,
- sum(lo_revenue - lo_supplycost) as profit
-from
- dates, customer, supplier, ssb_part, lineorder
-where
- lo_custkey = c_custkey
- and lo_suppkey = s_suppkey
- and lo_partkey = p_partkey
- and lo_orderdate = d_datekey
- and c_region = 'AMERICA'
- and s_region = 'AMERICA'
- and (d_year = 1997 or d_year = 1998)
- and (p_mfgr = 'MFGR#1' or p_mfgr = 'MFGR#2')
-group by
- d_year, s_nation, p_category
-order by
- d_year, s_nation, p_category
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
- d_year, s_nation, p_category,
- sum(lo_revenue - lo_supplycost) as profit
-from
- dates, customer, supplier, ssb_part, lineorder
-where
- lo_custkey = c_custkey
- and lo_suppkey = s_suppkey
- and lo_partkey = p_partkey
- and lo_orderdate = d_datekey
- and c_region = 'AMERICA'
- and s_region = 'AMERICA'
- and (d_year = 1997 or d_year = 1998)
- and (p_mfgr = 'MFGR#1' or p_mfgr = 'MFGR#2')
-group by
- d_year, s_nation, p_category
-order by
- d_year, s_nation, p_category
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.ssb_mv
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Filter Operator
- predicate: (((d_year = 1997) or (d_year = 1998)) and ((p_mfgr = 'MFGR#1') or (p_mfgr = 'MFGR#2')) and (c_region = 'AMERICA') and (s_region = 'AMERICA')) (type: boolean)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: d_year (type: int), p_category (type: string), s_nation (type: string), net_revenue (type: double)
- outputColumnNames: d_year, p_category, s_nation, net_revenue
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Group By Operator
- aggregations: sum(net_revenue)
- keys: d_year (type: int), s_nation (type: string), p_category (type: string)
- mode: hash
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- sort order: +++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col3 (type: double)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: int), KEY._col1 (type: string), KEY._col2 (type: string)
- mode: mergepartial
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- sort order: +++
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col3 (type: double)
- Reduce Operator Tree:
- Select Operator
- expressions: KEY.reducesinkkey0 (type: int), KEY.reducesinkkey1 (type: string), KEY.reducesinkkey2 (type: string), VALUE._col0 (type: double)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
- d_year, s_city, p_brand1,
- sum(lo_revenue - lo_supplycost) as profit
-from
- dates, customer, supplier, ssb_part, lineorder
-where
- lo_custkey = c_custkey
- and lo_suppkey = s_suppkey
- and lo_partkey = p_partkey
- and lo_orderdate = d_datekey
- and c_region = 'AMERICA'
- and s_nation = 'UNITED STATES'
- and (d_year = 1997 or d_year = 1998)
- and p_category = 'MFGR#14'
-group by
- d_year, s_city, p_brand1
-order by
- d_year, s_city, p_brand1
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
- d_year, s_city, p_brand1,
- sum(lo_revenue - lo_supplycost) as profit
-from
- dates, customer, supplier, ssb_part, lineorder
-where
- lo_custkey = c_custkey
- and lo_suppkey = s_suppkey
- and lo_partkey = p_partkey
- and lo_orderdate = d_datekey
- and c_region = 'AMERICA'
- and s_nation = 'UNITED STATES'
- and (d_year = 1997 or d_year = 1998)
- and p_category = 'MFGR#14'
-group by
- d_year, s_city, p_brand1
-order by
- d_year, s_city, p_brand1
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.ssb_mv
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Filter Operator
- predicate: (((d_year = 1997) or (d_year = 1998)) and (c_region = 'AMERICA') and (p_category = 'MFGR#14') and (s_nation = 'UNITED STATES')) (type: boolean)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Select Operator
- expressions: d_year (type: int), p_brand1 (type: string), s_city (type: string), net_revenue (type: double)
- outputColumnNames: d_year, p_brand1, s_city, net_revenue
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Group By Operator
- aggregations: sum(net_revenue)
- keys: d_year (type: int), s_city (type: string), p_brand1 (type: string)
- mode: hash
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- sort order: +++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col3 (type: double)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: int), KEY._col1 (type: string), KEY._col2 (type: string)
- mode: mergepartial
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: string), _col2 (type: string)
- sort order: +++
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- value expressions: _col3 (type: double)
- Reduce Operator Tree:
- Select Operator
- expressions: KEY.reducesinkkey0 (type: int), KEY.reducesinkkey1 (type: string), KEY.reducesinkkey2 (type: string), VALUE._col0 (type: double)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: DROP MATERIALIZED VIEW `ssb_mv`
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@ssb_mv
-PREHOOK: Output: default@ssb_mv
-POSTHOOK: query: DROP MATERIALIZED VIEW `ssb_mv`
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@ssb_mv
-POSTHOOK: Output: default@ssb_mv
[19/24] hive git commit: HIVE-18839: Implement incremental rebuild
for materialized views (only insert operations in source tables) (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_2.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_2.q.out
new file mode 100644
index 0000000..e8fe69f
--- /dev/null
+++ b/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_2.q.out
@@ -0,0 +1,756 @@
+PREHOOK: query: create table emps (
+ empid int,
+ deptno int,
+ name varchar(256),
+ salary float,
+ commission int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@emps
+POSTHOOK: query: create table emps (
+ empid int,
+ deptno int,
+ name varchar(256),
+ salary float,
+ commission int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@emps
+PREHOOK: query: insert into emps values (100, 10, 'Bill', 10000, 1000), (200, 20, 'Eric', 8000, 500),
+ (150, 10, 'Sebastian', 7000, null), (110, 10, 'Theodore', 10000, 250), (110, 10, 'Bill', 10000, 250)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@emps
+POSTHOOK: query: insert into emps values (100, 10, 'Bill', 10000, 1000), (200, 20, 'Eric', 8000, 500),
+ (150, 10, 'Sebastian', 7000, null), (110, 10, 'Theodore', 10000, 250), (110, 10, 'Bill', 10000, 250)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@emps
+POSTHOOK: Lineage: emps.commission SCRIPT []
+POSTHOOK: Lineage: emps.deptno SCRIPT []
+POSTHOOK: Lineage: emps.empid SCRIPT []
+POSTHOOK: Lineage: emps.name SCRIPT []
+POSTHOOK: Lineage: emps.salary SCRIPT []
+PREHOOK: query: analyze table emps compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@emps
+PREHOOK: Output: default@emps
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table emps compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: default@emps
+#### A masked pattern was here ####
+PREHOOK: query: create table depts (
+ deptno int,
+ name varchar(256),
+ locationid int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@depts
+POSTHOOK: query: create table depts (
+ deptno int,
+ name varchar(256),
+ locationid int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@depts
+PREHOOK: query: insert into depts values (10, 'Sales', 10), (30, 'Marketing', null), (20, 'HR', 20)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@depts
+POSTHOOK: query: insert into depts values (10, 'Sales', 10), (30, 'Marketing', null), (20, 'HR', 20)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@depts
+POSTHOOK: Lineage: depts.deptno SCRIPT []
+POSTHOOK: Lineage: depts.locationid SCRIPT []
+POSTHOOK: Lineage: depts.name SCRIPT []
+PREHOOK: query: analyze table depts compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@depts
+PREHOOK: Output: default@depts
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table depts compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@depts
+POSTHOOK: Output: default@depts
+#### A masked pattern was here ####
+PREHOOK: query: create table dependents (
+ empid int,
+ name varchar(256))
+stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@dependents
+POSTHOOK: query: create table dependents (
+ empid int,
+ name varchar(256))
+stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@dependents
+PREHOOK: query: insert into dependents values (10, 'Michael'), (10, 'Jane')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@dependents
+POSTHOOK: query: insert into dependents values (10, 'Michael'), (10, 'Jane')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@dependents
+POSTHOOK: Lineage: dependents.empid SCRIPT []
+POSTHOOK: Lineage: dependents.name SCRIPT []
+PREHOOK: query: analyze table dependents compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dependents
+PREHOOK: Output: default@dependents
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table dependents compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dependents
+POSTHOOK: Output: default@dependents
+#### A masked pattern was here ####
+PREHOOK: query: create table locations (
+ locationid int,
+ name varchar(256))
+stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@locations
+POSTHOOK: query: create table locations (
+ locationid int,
+ name varchar(256))
+stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@locations
+PREHOOK: query: insert into locations values (10, 'San Francisco'), (10, 'San Diego')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@locations
+POSTHOOK: query: insert into locations values (10, 'San Francisco'), (10, 'San Diego')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@locations
+POSTHOOK: Lineage: locations.locationid SCRIPT []
+POSTHOOK: Lineage: locations.name SCRIPT []
+PREHOOK: query: analyze table locations compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@locations
+PREHOOK: Output: default@locations
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table locations compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@locations
+POSTHOOK: Output: default@locations
+#### A masked pattern was here ####
+PREHOOK: query: alter table emps add constraint pk1 primary key (empid) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table emps add constraint pk1 primary key (empid) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table depts add constraint pk2 primary key (deptno) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table depts add constraint pk2 primary key (deptno) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table dependents add constraint pk3 primary key (empid) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table dependents add constraint pk3 primary key (empid) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table locations add constraint pk4 primary key (locationid) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table locations add constraint pk4 primary key (locationid) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table emps add constraint fk1 foreign key (deptno) references depts(deptno) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table emps add constraint fk1 foreign key (deptno) references depts(deptno) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table depts add constraint fk2 foreign key (locationid) references locations(locationid) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table depts add constraint fk2 foreign key (locationid) references locations(locationid) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select empid, depts.deptno from emps
+join depts using (deptno) where depts.deptno > 10
+group by empid, depts.deptno
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select empid, depts.deptno from emps
+join depts using (deptno) where depts.deptno > 10
+group by empid, depts.deptno
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select empid from emps
+join depts using (deptno) where depts.deptno > 20
+group by empid, depts.deptno
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select empid from emps
+join depts using (deptno) where depts.deptno > 20
+group by empid, depts.deptno
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.mv1
+ Filter Operator
+ predicate: (deptno > 20) (type: boolean)
+ Select Operator
+ expressions: empid (type: int)
+ outputColumnNames: _col0
+ ListSink
+
+PREHOOK: query: select empid from emps
+join depts using (deptno) where depts.deptno > 20
+group by empid, depts.deptno
+PREHOOK: type: QUERY
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select empid from emps
+join depts using (deptno) where depts.deptno > 20
+group by empid, depts.deptno
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select depts.deptno, empid from depts
+join emps using (deptno) where depts.deptno > 10
+group by empid, depts.deptno
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select depts.deptno, empid from depts
+join emps using (deptno) where depts.deptno > 10
+group by empid, depts.deptno
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select empid from emps
+join depts using (deptno) where depts.deptno > 20
+group by empid, depts.deptno
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select empid from emps
+join depts using (deptno) where depts.deptno > 20
+group by empid, depts.deptno
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.mv1
+ Filter Operator
+ predicate: (deptno > 20) (type: boolean)
+ Select Operator
+ expressions: empid (type: int)
+ outputColumnNames: _col0
+ ListSink
+
+PREHOOK: query: select empid from emps
+join depts using (deptno) where depts.deptno > 20
+group by empid, depts.deptno
+PREHOOK: type: QUERY
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select empid from emps
+join depts using (deptno) where depts.deptno > 20
+group by empid, depts.deptno
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select empid, depts.deptno from emps
+join depts using (deptno) where emps.deptno > 10
+group by empid, depts.deptno
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select empid, depts.deptno from emps
+join depts using (deptno) where emps.deptno > 10
+group by empid, depts.deptno
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select empid from emps
+join depts using (deptno) where depts.deptno > 20
+group by empid, depts.deptno
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select empid from emps
+join depts using (deptno) where depts.deptno > 20
+group by empid, depts.deptno
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.mv1
+ Filter Operator
+ predicate: (deptno > 20) (type: boolean)
+ Select Operator
+ expressions: empid (type: int)
+ outputColumnNames: _col0
+ ListSink
+
+PREHOOK: query: select empid from emps
+join depts using (deptno) where depts.deptno > 20
+group by empid, depts.deptno
+PREHOOK: type: QUERY
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select empid from emps
+join depts using (deptno) where depts.deptno > 20
+group by empid, depts.deptno
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select depts.deptno, emps.empid from depts
+join emps using (deptno) where emps.empid > 10
+group by depts.deptno, emps.empid
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select depts.deptno, emps.empid from depts
+join emps using (deptno) where emps.empid > 10
+group by depts.deptno, emps.empid
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select depts.deptno from depts
+join emps using (deptno) where emps.empid > 15
+group by depts.deptno, emps.empid
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select depts.deptno from depts
+join emps using (deptno) where emps.empid > 15
+group by depts.deptno, emps.empid
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.mv1
+ Filter Operator
+ predicate: (empid > 15) (type: boolean)
+ Select Operator
+ expressions: deptno (type: int)
+ outputColumnNames: _col0
+ ListSink
+
+PREHOOK: query: select depts.deptno from depts
+join emps using (deptno) where emps.empid > 15
+group by depts.deptno, emps.empid
+PREHOOK: type: QUERY
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select depts.deptno from depts
+join emps using (deptno) where emps.empid > 15
+group by depts.deptno, emps.empid
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+10
+10
+10
+10
+20
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select depts.deptno, emps.empid from depts
+join emps using (deptno) where emps.empid > 10
+group by depts.deptno, emps.empid
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select depts.deptno, emps.empid from depts
+join emps using (deptno) where emps.empid > 10
+group by depts.deptno, emps.empid
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select depts.deptno from depts
+join emps using (deptno) where emps.empid > 15
+group by depts.deptno
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select depts.deptno from depts
+join emps using (deptno) where emps.empid > 15
+group by depts.deptno
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.mv1
+ Statistics: Num rows: 5 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: (empid > 15) (type: boolean)
+ Statistics: Num rows: 5 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: deptno (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 5 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ keys: _col0 (type: int)
+ mode: hash
+ outputColumnNames: _col0
+ Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: all inputs
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ keys: KEY._col0 (type: int)
+ mode: mergepartial
+ outputColumnNames: _col0
+ Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select depts.deptno from depts
+join emps using (deptno) where emps.empid > 15
+group by depts.deptno
+PREHOOK: type: QUERY
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select depts.deptno from depts
+join emps using (deptno) where emps.empid > 15
+group by depts.deptno
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+10
+20
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+Warning: Shuffle Join MERGEJOIN[18][tables = [$hdt$_0, $hdt$_1, $hdt$_2]] in Stage 'Reducer 2' is a cross product
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select depts.name, dependents.name as name2, emps.deptno, depts.deptno as deptno2, dependents.empid
+from depts, dependents, emps
+where depts.deptno > 10
+group by depts.name, dependents.name, emps.deptno, depts.deptno, dependents.empid
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select depts.name, dependents.name as name2, emps.deptno, depts.deptno as deptno2, dependents.empid
+from depts, dependents, emps
+where depts.deptno > 10
+group by depts.name, dependents.name, emps.deptno, depts.deptno, dependents.empid
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select dependents.empid
+from depts
+join dependents on (depts.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+where depts.deptno > 10
+group by dependents.empid
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select dependents.empid
+from depts
+join dependents on (depts.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+where depts.deptno > 10
+group by dependents.empid
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.mv1
+ Statistics: Num rows: 8 Data size: 1536 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((deptno = deptno2) and (name = name2)) (type: boolean)
+ Statistics: Num rows: 2 Data size: 384 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: empid (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 2 Data size: 384 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ keys: _col0 (type: int)
+ mode: hash
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: all inputs
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ keys: KEY._col0 (type: int)
+ mode: mergepartial
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select dependents.empid
+from depts
+join dependents on (depts.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+where depts.deptno > 10
+group by dependents.empid
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select dependents.empid
+from depts
+join dependents on (depts.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+where depts.deptno > 10
+group by dependents.empid
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_3.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_3.q.out
new file mode 100644
index 0000000..353a5d8
--- /dev/null
+++ b/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_3.q.out
@@ -0,0 +1,545 @@
+PREHOOK: query: create table emps (
+ empid int,
+ deptno int,
+ name varchar(256),
+ salary float,
+ commission int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@emps
+POSTHOOK: query: create table emps (
+ empid int,
+ deptno int,
+ name varchar(256),
+ salary float,
+ commission int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@emps
+PREHOOK: query: insert into emps values (100, 10, 'Bill', 10000, 1000), (200, 20, 'Eric', 8000, 500),
+ (150, 10, 'Sebastian', 7000, null), (110, 10, 'Theodore', 10000, 250)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@emps
+POSTHOOK: query: insert into emps values (100, 10, 'Bill', 10000, 1000), (200, 20, 'Eric', 8000, 500),
+ (150, 10, 'Sebastian', 7000, null), (110, 10, 'Theodore', 10000, 250)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@emps
+POSTHOOK: Lineage: emps.commission SCRIPT []
+POSTHOOK: Lineage: emps.deptno SCRIPT []
+POSTHOOK: Lineage: emps.empid SCRIPT []
+POSTHOOK: Lineage: emps.name SCRIPT []
+POSTHOOK: Lineage: emps.salary SCRIPT []
+PREHOOK: query: analyze table emps compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@emps
+PREHOOK: Output: default@emps
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table emps compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: default@emps
+#### A masked pattern was here ####
+PREHOOK: query: create table depts (
+ deptno int,
+ name varchar(256),
+ locationid int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@depts
+POSTHOOK: query: create table depts (
+ deptno int,
+ name varchar(256),
+ locationid int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@depts
+PREHOOK: query: insert into depts values (10, 'Sales', 10), (30, 'Marketing', null), (20, 'HR', 20)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@depts
+POSTHOOK: query: insert into depts values (10, 'Sales', 10), (30, 'Marketing', null), (20, 'HR', 20)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@depts
+POSTHOOK: Lineage: depts.deptno SCRIPT []
+POSTHOOK: Lineage: depts.locationid SCRIPT []
+POSTHOOK: Lineage: depts.name SCRIPT []
+PREHOOK: query: analyze table depts compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@depts
+PREHOOK: Output: default@depts
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table depts compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@depts
+POSTHOOK: Output: default@depts
+#### A masked pattern was here ####
+PREHOOK: query: create table dependents (
+ empid int,
+ name varchar(256))
+stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@dependents
+POSTHOOK: query: create table dependents (
+ empid int,
+ name varchar(256))
+stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@dependents
+PREHOOK: query: insert into dependents values (10, 'Michael'), (10, 'Jane')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@dependents
+POSTHOOK: query: insert into dependents values (10, 'Michael'), (10, 'Jane')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@dependents
+POSTHOOK: Lineage: dependents.empid SCRIPT []
+POSTHOOK: Lineage: dependents.name SCRIPT []
+PREHOOK: query: analyze table dependents compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dependents
+PREHOOK: Output: default@dependents
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table dependents compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dependents
+POSTHOOK: Output: default@dependents
+#### A masked pattern was here ####
+PREHOOK: query: create table locations (
+ locationid int,
+ name varchar(256))
+stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@locations
+POSTHOOK: query: create table locations (
+ locationid int,
+ name varchar(256))
+stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@locations
+PREHOOK: query: insert into locations values (10, 'San Francisco'), (10, 'San Diego')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@locations
+POSTHOOK: query: insert into locations values (10, 'San Francisco'), (10, 'San Diego')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@locations
+POSTHOOK: Lineage: locations.locationid SCRIPT []
+POSTHOOK: Lineage: locations.name SCRIPT []
+PREHOOK: query: analyze table locations compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@locations
+PREHOOK: Output: default@locations
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table locations compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@locations
+POSTHOOK: Output: default@locations
+#### A masked pattern was here ####
+PREHOOK: query: alter table emps add constraint pk1 primary key (empid) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table emps add constraint pk1 primary key (empid) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table depts add constraint pk2 primary key (deptno) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table depts add constraint pk2 primary key (deptno) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table dependents add constraint pk3 primary key (empid) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table dependents add constraint pk3 primary key (empid) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table locations add constraint pk4 primary key (locationid) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table locations add constraint pk4 primary key (locationid) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table emps add constraint fk1 foreign key (deptno) references depts(deptno) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table emps add constraint fk1 foreign key (deptno) references depts(deptno) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table depts add constraint fk2 foreign key (locationid) references locations(locationid) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table depts add constraint fk2 foreign key (locationid) references locations(locationid) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select empid deptno from emps
+join depts using (deptno)
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select empid deptno from emps
+join depts using (deptno)
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select empid deptno from emps
+join depts using (deptno) where empid = 1
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select empid deptno from emps
+join depts using (deptno) where empid = 1
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.mv1
+ Filter Operator
+ predicate: (deptno = 1) (type: boolean)
+ Select Operator
+ expressions: 1 (type: int)
+ outputColumnNames: _col0
+ ListSink
+
+PREHOOK: query: select empid deptno from emps
+join depts using (deptno) where empid = 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select empid deptno from emps
+join depts using (deptno) where empid = 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select cast(empid as BIGINT) from emps
+join depts using (deptno)
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select cast(empid as BIGINT) from emps
+join depts using (deptno)
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select empid deptno from emps
+join depts using (deptno) where empid > 1
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select empid deptno from emps
+join depts using (deptno) where empid > 1
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.mv1
+ Filter Operator
+ predicate: (UDFToInteger(_c0) > 1) (type: boolean)
+ Select Operator
+ expressions: UDFToInteger(_c0) (type: int)
+ outputColumnNames: _col0
+ ListSink
+
+PREHOOK: query: select empid deptno from emps
+join depts using (deptno) where empid > 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select empid deptno from emps
+join depts using (deptno) where empid > 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+100
+110
+150
+200
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select cast(empid as BIGINT) from emps
+join depts using (deptno)
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select cast(empid as BIGINT) from emps
+join depts using (deptno)
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select empid deptno from emps
+join depts using (deptno) where empid = 1
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select empid deptno from emps
+join depts using (deptno) where empid = 1
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.mv1
+ Filter Operator
+ predicate: (UDFToInteger(_c0) = 1) (type: boolean)
+ Select Operator
+ expressions: 1 (type: int)
+ outputColumnNames: _col0
+ ListSink
+
+PREHOOK: query: select empid deptno from emps
+join depts using (deptno) where empid = 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select empid deptno from emps
+join depts using (deptno) where empid = 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select depts.name
+from emps
+join depts on (emps.deptno = depts.deptno)
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select depts.name
+from emps
+join depts on (emps.deptno = depts.deptno)
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select dependents.empid
+from depts
+join dependents on (depts.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select dependents.empid
+from depts
+join dependents on (depts.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 3 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.mv1
+ Statistics: Num rows: 4 Data size: 352 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: name is not null (type: boolean)
+ Statistics: Num rows: 4 Data size: 352 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: name (type: varchar(256))
+ outputColumnNames: _col0
+ Statistics: Num rows: 4 Data size: 352 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: varchar(256))
+ sort order: +
+ Map-reduce partition columns: _col0 (type: varchar(256))
+ Statistics: Num rows: 4 Data size: 352 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: all inputs
+ Map 3
+ Map Operator Tree:
+ TableScan
+ alias: dependents
+ Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: name is not null (type: boolean)
+ Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: empid (type: int), name (type: varchar(256))
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col1 (type: varchar(256))
+ sort order: +
+ Map-reduce partition columns: _col1 (type: varchar(256))
+ Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: int)
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: varchar(256))
+ 1 _col1 (type: varchar(256))
+ outputColumnNames: _col1
+ Statistics: Num rows: 4 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col1 (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 4 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 4 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select dependents.empid
+from depts
+join dependents on (depts.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select dependents.empid
+from depts
+join dependents on (depts.name = dependents.name)
+join emps on (emps.deptno = depts.deptno)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
[08/24] hive git commit: HIVE-18839: Implement incremental rebuild
for materialized views (only insert operations in source tables) (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/materialized_view_rewrite_8.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/materialized_view_rewrite_8.q.out b/ql/src/test/results/clientpositive/materialized_view_rewrite_8.q.out
deleted file mode 100644
index 1ca06d3..0000000
--- a/ql/src/test/results/clientpositive/materialized_view_rewrite_8.q.out
+++ /dev/null
@@ -1,642 +0,0 @@
-PREHOOK: query: create table if not exists source_table_001 (
-MY_DATE date,
-MY_ID bigint,
-MY_ID2 bigint,
-ENVIRONMENT string,
-DOWN_VOLUME bigint,
-UP_VOLUME bigint
-)
-stored AS ORC
-TBLPROPERTIES("transactional"="true")
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@source_table_001
-POSTHOOK: query: create table if not exists source_table_001 (
-MY_DATE date,
-MY_ID bigint,
-MY_ID2 bigint,
-ENVIRONMENT string,
-DOWN_VOLUME bigint,
-UP_VOLUME bigint
-)
-stored AS ORC
-TBLPROPERTIES("transactional"="true")
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@source_table_001
-PREHOOK: query: insert into table source_table_001
- values ('2010-10-10', 1, 1, 'env', 1, 1)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@source_table_001
-POSTHOOK: query: insert into table source_table_001
- values ('2010-10-10', 1, 1, 'env', 1, 1)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@source_table_001
-POSTHOOK: Lineage: source_table_001.down_volume SCRIPT []
-POSTHOOK: Lineage: source_table_001.environment SCRIPT []
-POSTHOOK: Lineage: source_table_001.my_date SCRIPT []
-POSTHOOK: Lineage: source_table_001.my_id SCRIPT []
-POSTHOOK: Lineage: source_table_001.my_id2 SCRIPT []
-POSTHOOK: Lineage: source_table_001.up_volume SCRIPT []
-PREHOOK: query: analyze table source_table_001 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@source_table_001
-PREHOOK: Output: default@source_table_001
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table source_table_001 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@source_table_001
-POSTHOOK: Output: default@source_table_001
-#### A masked pattern was here ####
-PREHOOK: query: CREATE MATERIALIZED VIEW source_table_001_mv ENABLE REWRITE AS
-SELECT
-SUM(A.DOWN_VOLUME) AS DOWN_VOLUME_SUM,
-SUM(A.UP_VOLUME) AS UP_VOLUME_SUM,
-A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
-from source_table_001 AS A
-group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@source_table_001
-PREHOOK: Output: database:default
-PREHOOK: Output: default@source_table_001_mv
-POSTHOOK: query: CREATE MATERIALIZED VIEW source_table_001_mv ENABLE REWRITE AS
-SELECT
-SUM(A.DOWN_VOLUME) AS DOWN_VOLUME_SUM,
-SUM(A.UP_VOLUME) AS UP_VOLUME_SUM,
-A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
-from source_table_001 AS A
-group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@source_table_001
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@source_table_001_mv
-PREHOOK: query: analyze table source_table_001_mv compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@source_table_001_mv
-PREHOOK: Output: default@source_table_001_mv
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table source_table_001_mv compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@source_table_001_mv
-POSTHOOK: Output: default@source_table_001_mv
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select
-SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
-A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
-FROM source_table_001 AS A
-group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
-SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
-A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
-FROM source_table_001 AS A
-group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-0 is a root stage
-
-STAGE PLANS:
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- TableScan
- alias: default.source_table_001_mv
- Statistics: Num rows: 1 Data size: 159 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: down_volume_sum (type: bigint), my_date (type: date), my_id2 (type: bigint), environment (type: string)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 159 Basic stats: COMPLETE Column stats: COMPLETE
- ListSink
-
-PREHOOK: query: explain
-select
-SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
-A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
-FROM source_table_001 AS A
-group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
-LIMIT 100
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
-SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
-A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
-FROM source_table_001 AS A
-group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
-LIMIT 100
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-0 is a root stage
-
-STAGE PLANS:
- Stage: Stage-0
- Fetch Operator
- limit: 100
- Processor Tree:
- TableScan
- alias: default.source_table_001_mv
- Statistics: Num rows: 1 Data size: 159 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: down_volume_sum (type: bigint), my_date (type: date), my_id2 (type: bigint), environment (type: string)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 159 Basic stats: COMPLETE Column stats: COMPLETE
- Limit
- Number of rows: 100
- Statistics: Num rows: 1 Data size: 159 Basic stats: COMPLETE Column stats: COMPLETE
- ListSink
-
-PREHOOK: query: explain
-select
-1,
-SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
-A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
-FROM source_table_001 AS A
-group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
-1,
-SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
-A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
-FROM source_table_001 AS A
-group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-0 is a root stage
-
-STAGE PLANS:
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- TableScan
- alias: default.source_table_001_mv
- Statistics: Num rows: 1 Data size: 159 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: 1 (type: int), down_volume_sum (type: bigint), my_date (type: date), my_id2 (type: bigint), environment (type: string)
- outputColumnNames: _col0, _col1, _col2, _col3, _col4
- Statistics: Num rows: 1 Data size: 163 Basic stats: COMPLETE Column stats: COMPLETE
- ListSink
-
-PREHOOK: query: explain
-select
-SUM(A.DOWN_VOLUME) + 0 AS DOWNLOAD_VOLUME_BYTES,
-A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
-FROM source_table_001 AS A
-group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
-SUM(A.DOWN_VOLUME) + 0 AS DOWNLOAD_VOLUME_BYTES,
-A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
-FROM source_table_001 AS A
-group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.source_table_001_mv
- Statistics: Num rows: 1 Data size: 159 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: (down_volume_sum + 0L) (type: bigint), my_date (type: date), my_id2 (type: bigint), environment (type: string)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 159 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 159 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
-SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
-A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
-FROM source_table_001 AS A
-group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
-ORDER BY A.MY_ID2
-LIMIT 100
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
-SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
-A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
-FROM source_table_001 AS A
-group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
-ORDER BY A.MY_ID2
-LIMIT 100
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.source_table_001_mv
- Statistics: Num rows: 1 Data size: 159 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: down_volume_sum (type: bigint), my_date (type: date), my_id2 (type: bigint), environment (type: string)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 159 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col2 (type: bigint)
- sort order: +
- Statistics: Num rows: 1 Data size: 159 Basic stats: COMPLETE Column stats: COMPLETE
- TopN Hash Memory Usage: 0.1
- value expressions: _col0 (type: bigint), _col1 (type: date), _col3 (type: string)
- Reduce Operator Tree:
- Select Operator
- expressions: VALUE._col0 (type: bigint), VALUE._col1 (type: date), KEY.reducesinkkey0 (type: bigint), VALUE._col2 (type: string)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 159 Basic stats: COMPLETE Column stats: COMPLETE
- Limit
- Number of rows: 100
- Statistics: Num rows: 1 Data size: 159 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 159 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: 100
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
-distinct A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
-FROM source_table_001 AS A
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
-distinct A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
-FROM source_table_001 AS A
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.source_table_001_mv
- Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: my_date (type: date), my_id2 (type: bigint), environment (type: string)
- outputColumnNames: my_date, my_id2, environment
- Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- keys: my_date (type: date), my_id2 (type: bigint), environment (type: string)
- mode: hash
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: date), _col1 (type: bigint), _col2 (type: string)
- sort order: +++
- Map-reduce partition columns: _col0 (type: date), _col1 (type: bigint), _col2 (type: string)
- Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Operator Tree:
- Group By Operator
- keys: KEY._col0 (type: date), KEY._col1 (type: bigint), KEY._col2 (type: string)
- mode: mergepartial
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
-SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
-A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
-FROM source_table_001 AS A
-where A.MY_DATE=TO_DATE('2010-01-10')
-group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
-SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
-A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
-FROM source_table_001 AS A
-where A.MY_DATE=TO_DATE('2010-01-10')
-group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.source_table_001_mv
- Statistics: Num rows: 1 Data size: 159 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: (my_date = DATE'2010-01-10') (type: boolean)
- Statistics: Num rows: 1 Data size: 159 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: down_volume_sum (type: bigint), DATE'2010-01-10' (type: date), my_id2 (type: bigint), environment (type: string)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 159 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 159 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
-SUM(A.DOWN_VOLUME) + SUM(A.UP_VOLUME) AS TOTAL_VOLUME_BYTES,
-A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
-FROM source_table_001 AS A
-where A.MY_DATE=TO_DATE('2010-01-10')
-group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
-SUM(A.DOWN_VOLUME) + SUM(A.UP_VOLUME) AS TOTAL_VOLUME_BYTES,
-A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
-FROM source_table_001 AS A
-where A.MY_DATE=TO_DATE('2010-01-10')
-group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.source_table_001_mv
- Statistics: Num rows: 1 Data size: 167 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: (my_date = DATE'2010-01-10') (type: boolean)
- Statistics: Num rows: 1 Data size: 167 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: (down_volume_sum + up_volume_sum) (type: bigint), DATE'2010-01-10' (type: date), my_id2 (type: bigint), environment (type: string)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 159 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 159 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
-SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES
-FROM source_table_001 AS A
-where A.MY_DATE=TO_DATE('2010-01-10')
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
-SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES
-FROM source_table_001 AS A
-where A.MY_DATE=TO_DATE('2010-01-10')
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.source_table_001_mv
- Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: (my_date = DATE'2010-01-10') (type: boolean)
- Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: down_volume_sum (type: bigint)
- outputColumnNames: down_volume_sum
- Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- aggregations: sum(down_volume_sum)
- mode: hash
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- sort order:
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col0 (type: bigint)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- mode: mergepartial
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
-SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
-TO_DATE('2010-01-10')
-FROM source_table_001 AS A
-where A.MY_DATE=TO_DATE('2010-01-10')
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
-SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
-TO_DATE('2010-01-10')
-FROM source_table_001 AS A
-where A.MY_DATE=TO_DATE('2010-01-10')
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.source_table_001_mv
- Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: (my_date = DATE'2010-01-10') (type: boolean)
- Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: down_volume_sum (type: bigint)
- outputColumnNames: down_volume_sum
- Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- aggregations: sum(down_volume_sum)
- mode: hash
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- sort order:
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col0 (type: bigint)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- mode: mergepartial
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: _col0 (type: bigint), DATE'2010-01-10' (type: date)
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
-SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
-A.MY_DATE
-FROM source_table_001 AS A
-where A.MY_DATE=TO_DATE('2010-01-10')
-group by A.MY_DATE
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
-SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
-A.MY_DATE
-FROM source_table_001 AS A
-where A.MY_DATE=TO_DATE('2010-01-10')
-group by A.MY_DATE
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.source_table_001_mv
- Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: (my_date = DATE'2010-01-10') (type: boolean)
- Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: down_volume_sum (type: bigint)
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- aggregations: sum(_col0)
- keys: DATE'2010-01-10' (type: date)
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: date)
- sort order: +
- Map-reduce partition columns: _col0 (type: date)
- Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col1 (type: bigint)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: date)
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: _col1 (type: bigint), DATE'2010-01-10' (type: date)
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: drop materialized view source_table_001_mv
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@source_table_001_mv
-PREHOOK: Output: default@source_table_001_mv
-POSTHOOK: query: drop materialized view source_table_001_mv
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@source_table_001_mv
-POSTHOOK: Output: default@source_table_001_mv
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/materialized_view_rewrite_9.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/materialized_view_rewrite_9.q.out b/ql/src/test/results/clientpositive/materialized_view_rewrite_9.q.out
deleted file mode 100644
index 3120e0d..0000000
--- a/ql/src/test/results/clientpositive/materialized_view_rewrite_9.q.out
+++ /dev/null
@@ -1,361 +0,0 @@
-PREHOOK: query: create table if not exists source_table_001 (
-MY_DATE timestamp,
-MY_ID bigint,
-MY_ID2 bigint,
-ENVIRONMENT string,
-DOWN_VOLUME bigint,
-UP_VOLUME bigint
-)
-stored AS ORC
-TBLPROPERTIES("transactional"="true")
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@source_table_001
-POSTHOOK: query: create table if not exists source_table_001 (
-MY_DATE timestamp,
-MY_ID bigint,
-MY_ID2 bigint,
-ENVIRONMENT string,
-DOWN_VOLUME bigint,
-UP_VOLUME bigint
-)
-stored AS ORC
-TBLPROPERTIES("transactional"="true")
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@source_table_001
-PREHOOK: query: insert into table source_table_001
- values ('2010-10-10 00:00:00', 1, 1, 'env', 1, 1)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@source_table_001
-POSTHOOK: query: insert into table source_table_001
- values ('2010-10-10 00:00:00', 1, 1, 'env', 1, 1)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@source_table_001
-POSTHOOK: Lineage: source_table_001.down_volume SCRIPT []
-POSTHOOK: Lineage: source_table_001.environment SCRIPT []
-POSTHOOK: Lineage: source_table_001.my_date SCRIPT []
-POSTHOOK: Lineage: source_table_001.my_id SCRIPT []
-POSTHOOK: Lineage: source_table_001.my_id2 SCRIPT []
-POSTHOOK: Lineage: source_table_001.up_volume SCRIPT []
-PREHOOK: query: analyze table source_table_001 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@source_table_001
-PREHOOK: Output: default@source_table_001
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table source_table_001 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@source_table_001
-POSTHOOK: Output: default@source_table_001
-#### A masked pattern was here ####
-PREHOOK: query: CREATE MATERIALIZED VIEW source_table_001_mv ENABLE REWRITE AS
-SELECT
-SUM(A.DOWN_VOLUME) AS DOWN_VOLUME_SUM,
-SUM(A.UP_VOLUME) AS UP_VOLUME_SUM,
-A.MY_ID,A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
-from source_table_001 AS A
-group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@source_table_001
-PREHOOK: Output: database:default
-PREHOOK: Output: default@source_table_001_mv
-POSTHOOK: query: CREATE MATERIALIZED VIEW source_table_001_mv ENABLE REWRITE AS
-SELECT
-SUM(A.DOWN_VOLUME) AS DOWN_VOLUME_SUM,
-SUM(A.UP_VOLUME) AS UP_VOLUME_SUM,
-A.MY_ID,A.MY_DATE,A.MY_ID2,A.ENVIRONMENT
-from source_table_001 AS A
-group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,A.MY_DATE
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@source_table_001
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@source_table_001_mv
-PREHOOK: query: analyze table source_table_001_mv compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@source_table_001_mv
-PREHOOK: Output: default@source_table_001_mv
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table source_table_001_mv compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@source_table_001_mv
-POSTHOOK: Output: default@source_table_001_mv
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select
-SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
-FLOOR(A.MY_DATE to hour),A.MY_ID2,A.ENVIRONMENT
-FROM source_table_001 AS A
-group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,FLOOR(A.MY_DATE to hour)
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
-SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
-FLOOR(A.MY_DATE to hour),A.MY_ID2,A.ENVIRONMENT
-FROM source_table_001 AS A
-group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,FLOOR(A.MY_DATE to hour)
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.source_table_001_mv
- Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: down_volume_sum (type: bigint), my_id (type: bigint), my_id2 (type: bigint), environment (type: string), floor_hour(my_date) (type: timestamp)
- outputColumnNames: _col0, _col1, _col2, _col3, _col4
- Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- aggregations: sum(_col0)
- keys: _col1 (type: bigint), _col2 (type: bigint), _col3 (type: string), _col4 (type: timestamp)
- mode: hash
- outputColumnNames: _col0, _col1, _col2, _col3, _col4
- Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: bigint), _col1 (type: bigint), _col2 (type: string), _col3 (type: timestamp)
- sort order: ++++
- Map-reduce partition columns: _col0 (type: bigint), _col1 (type: bigint), _col2 (type: string), _col3 (type: timestamp)
- Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col4 (type: bigint)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: bigint), KEY._col1 (type: bigint), KEY._col2 (type: string), KEY._col3 (type: timestamp)
- mode: mergepartial
- outputColumnNames: _col0, _col1, _col2, _col3, _col4
- Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: _col4 (type: bigint), _col3 (type: timestamp), _col1 (type: bigint), _col2 (type: string)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 143 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 143 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: DROP MATERIALIZED VIEW source_table_001_mv
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@source_table_001_mv
-PREHOOK: Output: default@source_table_001_mv
-POSTHOOK: query: DROP MATERIALIZED VIEW source_table_001_mv
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@source_table_001_mv
-POSTHOOK: Output: default@source_table_001_mv
-PREHOOK: query: CREATE MATERIALIZED VIEW source_table_001_mv ENABLE REWRITE AS
-SELECT
-SUM(A.DOWN_VOLUME) AS DOWN_VOLUME_SUM,
-SUM(A.UP_VOLUME) AS UP_VOLUME_SUM,
-A.MY_ID,FLOOR(A.MY_DATE to hour),A.MY_ID2,A.ENVIRONMENT
-from source_table_001 AS A
-group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,FLOOR(A.MY_DATE to hour)
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@source_table_001
-PREHOOK: Output: database:default
-PREHOOK: Output: default@source_table_001_mv
-POSTHOOK: query: CREATE MATERIALIZED VIEW source_table_001_mv ENABLE REWRITE AS
-SELECT
-SUM(A.DOWN_VOLUME) AS DOWN_VOLUME_SUM,
-SUM(A.UP_VOLUME) AS UP_VOLUME_SUM,
-A.MY_ID,FLOOR(A.MY_DATE to hour),A.MY_ID2,A.ENVIRONMENT
-from source_table_001 AS A
-group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,FLOOR(A.MY_DATE to hour)
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@source_table_001
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@source_table_001_mv
-PREHOOK: query: analyze table source_table_001_mv compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@source_table_001_mv
-PREHOOK: Output: default@source_table_001_mv
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table source_table_001_mv compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@source_table_001_mv
-POSTHOOK: Output: default@source_table_001_mv
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select
-SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
-FLOOR(A.MY_DATE to day),A.MY_ID2,A.ENVIRONMENT
-FROM source_table_001 AS A
-group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,FLOOR(A.MY_DATE to day)
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
-SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
-FLOOR(A.MY_DATE to day),A.MY_ID2,A.ENVIRONMENT
-FROM source_table_001 AS A
-group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,FLOOR(A.MY_DATE to day)
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.source_table_001_mv
- Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: down_volume_sum (type: bigint), my_id (type: bigint), my_id2 (type: bigint), environment (type: string), floor_day(_c3) (type: timestamp)
- outputColumnNames: _col0, _col1, _col2, _col3, _col4
- Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- aggregations: sum(_col0)
- keys: _col1 (type: bigint), _col2 (type: bigint), _col3 (type: string), _col4 (type: timestamp)
- mode: hash
- outputColumnNames: _col0, _col1, _col2, _col3, _col4
- Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: bigint), _col1 (type: bigint), _col2 (type: string), _col3 (type: timestamp)
- sort order: ++++
- Map-reduce partition columns: _col0 (type: bigint), _col1 (type: bigint), _col2 (type: string), _col3 (type: timestamp)
- Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col4 (type: bigint)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: bigint), KEY._col1 (type: bigint), KEY._col2 (type: string), KEY._col3 (type: timestamp)
- mode: mergepartial
- outputColumnNames: _col0, _col1, _col2, _col3, _col4
- Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: _col4 (type: bigint), _col3 (type: timestamp), _col1 (type: bigint), _col2 (type: string)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 143 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 143 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: explain
-select
-SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
-FLOOR(A.MY_DATE to hour),A.MY_ID2,A.ENVIRONMENT
-FROM source_table_001 AS A
-group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,FLOOR(A.MY_DATE to hour)
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
-SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
-FLOOR(A.MY_DATE to hour),A.MY_ID2,A.ENVIRONMENT
-FROM source_table_001 AS A
-group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,FLOOR(A.MY_DATE to hour)
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-0 is a root stage
-
-STAGE PLANS:
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- TableScan
- alias: default.source_table_001_mv
- Statistics: Num rows: 1 Data size: 143 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: down_volume_sum (type: bigint), _c3 (type: timestamp), my_id2 (type: bigint), environment (type: string)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 143 Basic stats: COMPLETE Column stats: COMPLETE
- ListSink
-
-PREHOOK: query: explain
-select
-SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
-FLOOR(A.MY_DATE to second),A.MY_ID2,A.ENVIRONMENT
-FROM source_table_001 AS A
-group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,FLOOR(A.MY_DATE to second)
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select
-SUM(A.DOWN_VOLUME) AS DOWNLOAD_VOLUME_BYTES,
-FLOOR(A.MY_DATE to second),A.MY_ID2,A.ENVIRONMENT
-FROM source_table_001 AS A
-group by A.MY_ID,A.MY_ID2,A.ENVIRONMENT,FLOOR(A.MY_DATE to second)
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: a
- Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: my_id (type: bigint), my_id2 (type: bigint), environment (type: string), floor_second(my_date) (type: timestamp), down_volume (type: bigint)
- outputColumnNames: _col0, _col1, _col2, _col3, _col4
- Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- aggregations: sum(_col4)
- keys: _col0 (type: bigint), _col1 (type: bigint), _col2 (type: string), _col3 (type: timestamp)
- mode: hash
- outputColumnNames: _col0, _col1, _col2, _col3, _col4
- Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: bigint), _col1 (type: bigint), _col2 (type: string), _col3 (type: timestamp)
- sort order: ++++
- Map-reduce partition columns: _col0 (type: bigint), _col1 (type: bigint), _col2 (type: string), _col3 (type: timestamp)
- Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col4 (type: bigint)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: bigint), KEY._col1 (type: bigint), KEY._col2 (type: string), KEY._col3 (type: timestamp)
- mode: mergepartial
- outputColumnNames: _col0, _col1, _col2, _col3, _col4
- Statistics: Num rows: 1 Data size: 151 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: _col4 (type: bigint), _col3 (type: timestamp), _col1 (type: bigint), _col2 (type: string)
- outputColumnNames: _col0, _col1, _col2, _col3
- Statistics: Num rows: 1 Data size: 143 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 143 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: DROP MATERIALIZED VIEW source_table_001_mv
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@source_table_001_mv
-PREHOOK: Output: default@source_table_001_mv
-POSTHOOK: query: DROP MATERIALIZED VIEW source_table_001_mv
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@source_table_001_mv
-POSTHOOK: Output: default@source_table_001_mv
[12/24] hive git commit: HIVE-18839: Implement incremental rebuild
for materialized views (only insert operations in source tables) (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/materialized_view_rewrite_2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/materialized_view_rewrite_2.q.out b/ql/src/test/results/clientpositive/materialized_view_rewrite_2.q.out
deleted file mode 100644
index 6e8b2e3..0000000
--- a/ql/src/test/results/clientpositive/materialized_view_rewrite_2.q.out
+++ /dev/null
@@ -1,796 +0,0 @@
-PREHOOK: query: create table emps (
- empid int,
- deptno int,
- name varchar(256),
- salary float,
- commission int)
-stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@emps
-POSTHOOK: query: create table emps (
- empid int,
- deptno int,
- name varchar(256),
- salary float,
- commission int)
-stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@emps
-PREHOOK: query: insert into emps values (100, 10, 'Bill', 10000, 1000), (200, 20, 'Eric', 8000, 500),
- (150, 10, 'Sebastian', 7000, null), (110, 10, 'Theodore', 10000, 250), (110, 10, 'Bill', 10000, 250)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@emps
-POSTHOOK: query: insert into emps values (100, 10, 'Bill', 10000, 1000), (200, 20, 'Eric', 8000, 500),
- (150, 10, 'Sebastian', 7000, null), (110, 10, 'Theodore', 10000, 250), (110, 10, 'Bill', 10000, 250)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@emps
-POSTHOOK: Lineage: emps.commission SCRIPT []
-POSTHOOK: Lineage: emps.deptno SCRIPT []
-POSTHOOK: Lineage: emps.empid SCRIPT []
-POSTHOOK: Lineage: emps.name SCRIPT []
-POSTHOOK: Lineage: emps.salary SCRIPT []
-PREHOOK: query: analyze table emps compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@emps
-PREHOOK: Output: default@emps
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table emps compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: default@emps
-#### A masked pattern was here ####
-PREHOOK: query: create table depts (
- deptno int,
- name varchar(256),
- locationid int)
-stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@depts
-POSTHOOK: query: create table depts (
- deptno int,
- name varchar(256),
- locationid int)
-stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@depts
-PREHOOK: query: insert into depts values (10, 'Sales', 10), (30, 'Marketing', null), (20, 'HR', 20)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@depts
-POSTHOOK: query: insert into depts values (10, 'Sales', 10), (30, 'Marketing', null), (20, 'HR', 20)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@depts
-POSTHOOK: Lineage: depts.deptno SCRIPT []
-POSTHOOK: Lineage: depts.locationid SCRIPT []
-POSTHOOK: Lineage: depts.name SCRIPT []
-PREHOOK: query: analyze table depts compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@depts
-PREHOOK: Output: default@depts
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table depts compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@depts
-POSTHOOK: Output: default@depts
-#### A masked pattern was here ####
-PREHOOK: query: create table dependents (
- empid int,
- name varchar(256))
-stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@dependents
-POSTHOOK: query: create table dependents (
- empid int,
- name varchar(256))
-stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@dependents
-PREHOOK: query: insert into dependents values (10, 'Michael'), (10, 'Jane')
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@dependents
-POSTHOOK: query: insert into dependents values (10, 'Michael'), (10, 'Jane')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@dependents
-POSTHOOK: Lineage: dependents.empid SCRIPT []
-POSTHOOK: Lineage: dependents.name SCRIPT []
-PREHOOK: query: analyze table dependents compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dependents
-PREHOOK: Output: default@dependents
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table dependents compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dependents
-POSTHOOK: Output: default@dependents
-#### A masked pattern was here ####
-PREHOOK: query: create table locations (
- locationid int,
- name varchar(256))
-stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@locations
-POSTHOOK: query: create table locations (
- locationid int,
- name varchar(256))
-stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@locations
-PREHOOK: query: insert into locations values (10, 'San Francisco'), (10, 'San Diego')
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@locations
-POSTHOOK: query: insert into locations values (10, 'San Francisco'), (10, 'San Diego')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@locations
-POSTHOOK: Lineage: locations.locationid SCRIPT []
-POSTHOOK: Lineage: locations.name SCRIPT []
-PREHOOK: query: analyze table locations compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@locations
-PREHOOK: Output: default@locations
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table locations compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@locations
-POSTHOOK: Output: default@locations
-#### A masked pattern was here ####
-PREHOOK: query: alter table emps add constraint pk1 primary key (empid) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table emps add constraint pk1 primary key (empid) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table depts add constraint pk2 primary key (deptno) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table depts add constraint pk2 primary key (deptno) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table dependents add constraint pk3 primary key (empid) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table dependents add constraint pk3 primary key (empid) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table locations add constraint pk4 primary key (locationid) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table locations add constraint pk4 primary key (locationid) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table emps add constraint fk1 foreign key (deptno) references depts(deptno) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table emps add constraint fk1 foreign key (deptno) references depts(deptno) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table depts add constraint fk2 foreign key (locationid) references locations(locationid) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table depts add constraint fk2 foreign key (locationid) references locations(locationid) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select empid, depts.deptno from emps
-join depts using (deptno) where depts.deptno > 10
-group by empid, depts.deptno
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select empid, depts.deptno from emps
-join depts using (deptno) where depts.deptno > 10
-group by empid, depts.deptno
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select empid from emps
-join depts using (deptno) where depts.deptno > 20
-group by empid, depts.deptno
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select empid from emps
-join depts using (deptno) where depts.deptno > 20
-group by empid, depts.deptno
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: (deptno > 20) (type: boolean)
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: empid (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select empid from emps
-join depts using (deptno) where depts.deptno > 20
-group by empid, depts.deptno
-PREHOOK: type: QUERY
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select empid from emps
-join depts using (deptno) where depts.deptno > 20
-group by empid, depts.deptno
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select depts.deptno, empid from depts
-join emps using (deptno) where depts.deptno > 10
-group by empid, depts.deptno
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select depts.deptno, empid from depts
-join emps using (deptno) where depts.deptno > 10
-group by empid, depts.deptno
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select empid from emps
-join depts using (deptno) where depts.deptno > 20
-group by empid, depts.deptno
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select empid from emps
-join depts using (deptno) where depts.deptno > 20
-group by empid, depts.deptno
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: (deptno > 20) (type: boolean)
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: empid (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select empid from emps
-join depts using (deptno) where depts.deptno > 20
-group by empid, depts.deptno
-PREHOOK: type: QUERY
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select empid from emps
-join depts using (deptno) where depts.deptno > 20
-group by empid, depts.deptno
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select empid, depts.deptno from emps
-join depts using (deptno) where emps.deptno > 10
-group by empid, depts.deptno
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select empid, depts.deptno from emps
-join depts using (deptno) where emps.deptno > 10
-group by empid, depts.deptno
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select empid from emps
-join depts using (deptno) where depts.deptno > 20
-group by empid, depts.deptno
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select empid from emps
-join depts using (deptno) where depts.deptno > 20
-group by empid, depts.deptno
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: (deptno > 20) (type: boolean)
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: empid (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select empid from emps
-join depts using (deptno) where depts.deptno > 20
-group by empid, depts.deptno
-PREHOOK: type: QUERY
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select empid from emps
-join depts using (deptno) where depts.deptno > 20
-group by empid, depts.deptno
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select depts.deptno, emps.empid from depts
-join emps using (deptno) where emps.empid > 10
-group by depts.deptno, emps.empid
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select depts.deptno, emps.empid from depts
-join emps using (deptno) where emps.empid > 10
-group by depts.deptno, emps.empid
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select depts.deptno from depts
-join emps using (deptno) where emps.empid > 15
-group by depts.deptno, emps.empid
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select depts.deptno from depts
-join emps using (deptno) where emps.empid > 15
-group by depts.deptno, emps.empid
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 5 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: (empid > 15) (type: boolean)
- Statistics: Num rows: 5 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: deptno (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select depts.deptno from depts
-join emps using (deptno) where emps.empid > 15
-group by depts.deptno, emps.empid
-PREHOOK: type: QUERY
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select depts.deptno from depts
-join emps using (deptno) where emps.empid > 15
-group by depts.deptno, emps.empid
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-10
-10
-10
-10
-20
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select depts.deptno, emps.empid from depts
-join emps using (deptno) where emps.empid > 10
-group by depts.deptno, emps.empid
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select depts.deptno, emps.empid from depts
-join emps using (deptno) where emps.empid > 10
-group by depts.deptno, emps.empid
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select depts.deptno from depts
-join emps using (deptno) where emps.empid > 15
-group by depts.deptno
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select depts.deptno from depts
-join emps using (deptno) where emps.empid > 15
-group by depts.deptno
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 5 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: (empid > 15) (type: boolean)
- Statistics: Num rows: 5 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: deptno (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 5 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- keys: _col0 (type: int)
- mode: hash
- outputColumnNames: _col0
- Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Operator Tree:
- Group By Operator
- keys: KEY._col0 (type: int)
- mode: mergepartial
- outputColumnNames: _col0
- Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select depts.deptno from depts
-join emps using (deptno) where emps.empid > 15
-group by depts.deptno
-PREHOOK: type: QUERY
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select depts.deptno from depts
-join emps using (deptno) where emps.empid > 15
-group by depts.deptno
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-10
-20
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-Warning: Shuffle Join JOIN[10][tables = [$hdt$_0, $hdt$_1, $hdt$_2]] in Stage 'Stage-1:MAPRED' is a cross product
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select depts.name, dependents.name as name2, emps.deptno, depts.deptno as deptno2, dependents.empid
-from depts, dependents, emps
-where depts.deptno > 10
-group by depts.name, dependents.name, emps.deptno, depts.deptno, dependents.empid
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select depts.name, dependents.name as name2, emps.deptno, depts.deptno as deptno2, dependents.empid
-from depts, dependents, emps
-where depts.deptno > 10
-group by depts.name, dependents.name, emps.deptno, depts.deptno, dependents.empid
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select dependents.empid
-from depts
-join dependents on (depts.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-where depts.deptno > 10
-group by dependents.empid
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select dependents.empid
-from depts
-join dependents on (depts.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-where depts.deptno > 10
-group by dependents.empid
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 8 Data size: 1536 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: ((deptno = deptno2) and (name = name2)) (type: boolean)
- Statistics: Num rows: 2 Data size: 384 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: empid (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 2 Data size: 384 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- keys: _col0 (type: int)
- mode: hash
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Operator Tree:
- Group By Operator
- keys: KEY._col0 (type: int)
- mode: mergepartial
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select dependents.empid
-from depts
-join dependents on (depts.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-where depts.deptno > 10
-group by dependents.empid
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select dependents.empid
-from depts
-join dependents on (depts.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-where depts.deptno > 10
-group by dependents.empid
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/materialized_view_rewrite_3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/materialized_view_rewrite_3.q.out b/ql/src/test/results/clientpositive/materialized_view_rewrite_3.q.out
deleted file mode 100644
index e3bd233..0000000
--- a/ql/src/test/results/clientpositive/materialized_view_rewrite_3.q.out
+++ /dev/null
@@ -1,576 +0,0 @@
-PREHOOK: query: create table emps (
- empid int,
- deptno int,
- name varchar(256),
- salary float,
- commission int)
-stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@emps
-POSTHOOK: query: create table emps (
- empid int,
- deptno int,
- name varchar(256),
- salary float,
- commission int)
-stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@emps
-PREHOOK: query: insert into emps values (100, 10, 'Bill', 10000, 1000), (200, 20, 'Eric', 8000, 500),
- (150, 10, 'Sebastian', 7000, null), (110, 10, 'Theodore', 10000, 250)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@emps
-POSTHOOK: query: insert into emps values (100, 10, 'Bill', 10000, 1000), (200, 20, 'Eric', 8000, 500),
- (150, 10, 'Sebastian', 7000, null), (110, 10, 'Theodore', 10000, 250)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@emps
-POSTHOOK: Lineage: emps.commission SCRIPT []
-POSTHOOK: Lineage: emps.deptno SCRIPT []
-POSTHOOK: Lineage: emps.empid SCRIPT []
-POSTHOOK: Lineage: emps.name SCRIPT []
-POSTHOOK: Lineage: emps.salary SCRIPT []
-PREHOOK: query: analyze table emps compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@emps
-PREHOOK: Output: default@emps
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table emps compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: default@emps
-#### A masked pattern was here ####
-PREHOOK: query: create table depts (
- deptno int,
- name varchar(256),
- locationid int)
-stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@depts
-POSTHOOK: query: create table depts (
- deptno int,
- name varchar(256),
- locationid int)
-stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@depts
-PREHOOK: query: insert into depts values (10, 'Sales', 10), (30, 'Marketing', null), (20, 'HR', 20)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@depts
-POSTHOOK: query: insert into depts values (10, 'Sales', 10), (30, 'Marketing', null), (20, 'HR', 20)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@depts
-POSTHOOK: Lineage: depts.deptno SCRIPT []
-POSTHOOK: Lineage: depts.locationid SCRIPT []
-POSTHOOK: Lineage: depts.name SCRIPT []
-PREHOOK: query: analyze table depts compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@depts
-PREHOOK: Output: default@depts
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table depts compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@depts
-POSTHOOK: Output: default@depts
-#### A masked pattern was here ####
-PREHOOK: query: create table dependents (
- empid int,
- name varchar(256))
-stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@dependents
-POSTHOOK: query: create table dependents (
- empid int,
- name varchar(256))
-stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@dependents
-PREHOOK: query: insert into dependents values (10, 'Michael'), (10, 'Jane')
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@dependents
-POSTHOOK: query: insert into dependents values (10, 'Michael'), (10, 'Jane')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@dependents
-POSTHOOK: Lineage: dependents.empid SCRIPT []
-POSTHOOK: Lineage: dependents.name SCRIPT []
-PREHOOK: query: analyze table dependents compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dependents
-PREHOOK: Output: default@dependents
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table dependents compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dependents
-POSTHOOK: Output: default@dependents
-#### A masked pattern was here ####
-PREHOOK: query: create table locations (
- locationid int,
- name varchar(256))
-stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@locations
-POSTHOOK: query: create table locations (
- locationid int,
- name varchar(256))
-stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@locations
-PREHOOK: query: insert into locations values (10, 'San Francisco'), (10, 'San Diego')
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@locations
-POSTHOOK: query: insert into locations values (10, 'San Francisco'), (10, 'San Diego')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@locations
-POSTHOOK: Lineage: locations.locationid SCRIPT []
-POSTHOOK: Lineage: locations.name SCRIPT []
-PREHOOK: query: analyze table locations compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@locations
-PREHOOK: Output: default@locations
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table locations compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@locations
-POSTHOOK: Output: default@locations
-#### A masked pattern was here ####
-PREHOOK: query: alter table emps add constraint pk1 primary key (empid) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table emps add constraint pk1 primary key (empid) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table depts add constraint pk2 primary key (deptno) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table depts add constraint pk2 primary key (deptno) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table dependents add constraint pk3 primary key (empid) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table dependents add constraint pk3 primary key (empid) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table locations add constraint pk4 primary key (locationid) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table locations add constraint pk4 primary key (locationid) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table emps add constraint fk1 foreign key (deptno) references depts(deptno) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table emps add constraint fk1 foreign key (deptno) references depts(deptno) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table depts add constraint fk2 foreign key (locationid) references locations(locationid) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table depts add constraint fk2 foreign key (locationid) references locations(locationid) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select empid deptno from emps
-join depts using (deptno)
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select empid deptno from emps
-join depts using (deptno)
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select empid deptno from emps
-join depts using (deptno) where empid = 1
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select empid deptno from emps
-join depts using (deptno) where empid = 1
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 4 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: (deptno = 1) (type: boolean)
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: 1 (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select empid deptno from emps
-join depts using (deptno) where empid = 1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select empid deptno from emps
-join depts using (deptno) where empid = 1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select cast(empid as BIGINT) from emps
-join depts using (deptno)
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select cast(empid as BIGINT) from emps
-join depts using (deptno)
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select empid deptno from emps
-join depts using (deptno) where empid > 1
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select empid deptno from emps
-join depts using (deptno) where empid > 1
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 4 Data size: 32 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: (UDFToInteger(_c0) > 1) (type: boolean)
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: UDFToInteger(_c0) (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select empid deptno from emps
-join depts using (deptno) where empid > 1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select empid deptno from emps
-join depts using (deptno) where empid > 1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-100
-110
-150
-200
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select cast(empid as BIGINT) from emps
-join depts using (deptno)
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select cast(empid as BIGINT) from emps
-join depts using (deptno)
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select empid deptno from emps
-join depts using (deptno) where empid = 1
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select empid deptno from emps
-join depts using (deptno) where empid = 1
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 4 Data size: 32 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: (UDFToInteger(_c0) = 1) (type: boolean)
- Statistics: Num rows: 2 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: 1 (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select empid deptno from emps
-join depts using (deptno) where empid = 1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select empid deptno from emps
-join depts using (deptno) where empid = 1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select depts.name
-from emps
-join depts on (emps.deptno = depts.deptno)
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select depts.name
-from emps
-join depts on (emps.deptno = depts.deptno)
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select dependents.empid
-from depts
-join dependents on (depts.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select dependents.empid
-from depts
-join dependents on (depts.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 4 Data size: 352 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: name is not null (type: boolean)
- Statistics: Num rows: 4 Data size: 352 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: name (type: varchar(256))
- outputColumnNames: _col0
- Statistics: Num rows: 4 Data size: 352 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: varchar(256))
- sort order: +
- Map-reduce partition columns: _col0 (type: varchar(256))
- Statistics: Num rows: 4 Data size: 352 Basic stats: COMPLETE Column stats: COMPLETE
- TableScan
- alias: dependents
- Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: name is not null (type: boolean)
- Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: empid (type: int), name (type: varchar(256))
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col1 (type: varchar(256))
- sort order: +
- Map-reduce partition columns: _col1 (type: varchar(256))
- Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col0 (type: int)
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- keys:
- 0 _col0 (type: varchar(256))
- 1 _col1 (type: varchar(256))
- outputColumnNames: _col1
- Statistics: Num rows: 4 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: _col1 (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 4 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 4 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select dependents.empid
-from depts
-join dependents on (depts.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select dependents.empid
-from depts
-join dependents on (depts.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
[18/24] hive git commit: HIVE-18839: Implement incremental rebuild
for materialized views (only insert operations in source tables) (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_4.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_4.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_4.q.out
new file mode 100644
index 0000000..4da2ed3
--- /dev/null
+++ b/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_4.q.out
@@ -0,0 +1,1071 @@
+PREHOOK: query: create table emps (
+ empid int,
+ deptno int,
+ name varchar(256),
+ salary float,
+ commission int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@emps
+POSTHOOK: query: create table emps (
+ empid int,
+ deptno int,
+ name varchar(256),
+ salary float,
+ commission int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@emps
+PREHOOK: query: insert into emps values (100, 10, 'Bill', 10000, 1000), (200, 20, 'Eric', 8000, 500),
+ (150, 10, 'Sebastian', 7000, null), (110, 10, 'Theodore', 10000, 250), (110, 10, 'Bill', 10000, 250)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@emps
+POSTHOOK: query: insert into emps values (100, 10, 'Bill', 10000, 1000), (200, 20, 'Eric', 8000, 500),
+ (150, 10, 'Sebastian', 7000, null), (110, 10, 'Theodore', 10000, 250), (110, 10, 'Bill', 10000, 250)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@emps
+POSTHOOK: Lineage: emps.commission SCRIPT []
+POSTHOOK: Lineage: emps.deptno SCRIPT []
+POSTHOOK: Lineage: emps.empid SCRIPT []
+POSTHOOK: Lineage: emps.name SCRIPT []
+POSTHOOK: Lineage: emps.salary SCRIPT []
+PREHOOK: query: analyze table emps compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@emps
+PREHOOK: Output: default@emps
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table emps compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: default@emps
+#### A masked pattern was here ####
+PREHOOK: query: create table depts (
+ deptno int,
+ name varchar(256),
+ locationid int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@depts
+POSTHOOK: query: create table depts (
+ deptno int,
+ name varchar(256),
+ locationid int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@depts
+PREHOOK: query: insert into depts values (10, 'Sales', 10), (30, 'Marketing', null), (20, 'HR', 20)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@depts
+POSTHOOK: query: insert into depts values (10, 'Sales', 10), (30, 'Marketing', null), (20, 'HR', 20)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@depts
+POSTHOOK: Lineage: depts.deptno SCRIPT []
+POSTHOOK: Lineage: depts.locationid SCRIPT []
+POSTHOOK: Lineage: depts.name SCRIPT []
+PREHOOK: query: analyze table depts compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@depts
+PREHOOK: Output: default@depts
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table depts compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@depts
+POSTHOOK: Output: default@depts
+#### A masked pattern was here ####
+PREHOOK: query: create table dependents (
+ empid int,
+ name varchar(256))
+stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@dependents
+POSTHOOK: query: create table dependents (
+ empid int,
+ name varchar(256))
+stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@dependents
+PREHOOK: query: insert into dependents values (10, 'Michael'), (10, 'Jane')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@dependents
+POSTHOOK: query: insert into dependents values (10, 'Michael'), (10, 'Jane')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@dependents
+POSTHOOK: Lineage: dependents.empid SCRIPT []
+POSTHOOK: Lineage: dependents.name SCRIPT []
+PREHOOK: query: analyze table dependents compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dependents
+PREHOOK: Output: default@dependents
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table dependents compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dependents
+POSTHOOK: Output: default@dependents
+#### A masked pattern was here ####
+PREHOOK: query: create table locations (
+ locationid int,
+ name varchar(256))
+stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@locations
+POSTHOOK: query: create table locations (
+ locationid int,
+ name varchar(256))
+stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@locations
+PREHOOK: query: insert into locations values (10, 'San Francisco'), (10, 'San Diego')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@locations
+POSTHOOK: query: insert into locations values (10, 'San Francisco'), (10, 'San Diego')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@locations
+POSTHOOK: Lineage: locations.locationid SCRIPT []
+POSTHOOK: Lineage: locations.name SCRIPT []
+PREHOOK: query: analyze table locations compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@locations
+PREHOOK: Output: default@locations
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table locations compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@locations
+POSTHOOK: Output: default@locations
+#### A masked pattern was here ####
+PREHOOK: query: alter table emps add constraint pk1 primary key (empid) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table emps add constraint pk1 primary key (empid) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table depts add constraint pk2 primary key (deptno) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table depts add constraint pk2 primary key (deptno) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table dependents add constraint pk3 primary key (empid) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table dependents add constraint pk3 primary key (empid) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table locations add constraint pk4 primary key (locationid) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table locations add constraint pk4 primary key (locationid) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table emps add constraint fk1 foreign key (deptno) references depts(deptno) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table emps add constraint fk1 foreign key (deptno) references depts(deptno) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: alter table depts add constraint fk2 foreign key (locationid) references locations(locationid) disable novalidate rely
+PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
+POSTHOOK: query: alter table depts add constraint fk2 foreign key (locationid) references locations(locationid) disable novalidate rely
+POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select name, salary, count(*) as c, sum(empid) as s
+from emps group by name, salary
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select name, salary, count(*) as c, sum(empid) as s
+from emps group by name, salary
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select name, count(*) as c, sum(empid) as s
+from emps group by name
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select name, count(*) as c, sum(empid) as s
+from emps group by name
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.mv1
+ Statistics: Num rows: 4 Data size: 424 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: name (type: varchar(256)), c (type: bigint), s (type: bigint)
+ outputColumnNames: name, c, s
+ Statistics: Num rows: 4 Data size: 424 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: $sum0(c), sum(s)
+ keys: name (type: varchar(256))
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 2 Data size: 212 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: varchar(256))
+ sort order: +
+ Map-reduce partition columns: _col0 (type: varchar(256))
+ Statistics: Num rows: 2 Data size: 212 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: bigint), _col2 (type: bigint)
+ Execution mode: llap
+ LLAP IO: all inputs
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: $sum0(VALUE._col0), sum(VALUE._col1)
+ keys: KEY._col0 (type: varchar(256))
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 2 Data size: 212 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2 Data size: 212 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select name, count(*) as c, sum(empid) as s
+from emps group by name
+PREHOOK: type: QUERY
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select name, count(*) as c, sum(empid) as s
+from emps group by name
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+Bill 2 210
+Eric 1 200
+Sebastian 1 150
+Theodore 1 110
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select name, salary, count(*) as c, sum(empid) as s
+from emps group by name, salary
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select name, salary, count(*) as c, sum(empid) as s
+from emps group by name, salary
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select salary, name, sum(empid) as s, count(*) as c
+from emps group by name, salary
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select salary, name, sum(empid) as s, count(*) as c
+from emps group by name, salary
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.mv1
+ Select Operator
+ expressions: salary (type: float), name (type: varchar(256)), s (type: bigint), c (type: bigint)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ ListSink
+
+PREHOOK: query: select salary, name, sum(empid) as s, count(*) as c
+from emps group by name, salary
+PREHOOK: type: QUERY
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select salary, name, sum(empid) as s, count(*) as c
+from emps group by name, salary
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+10000.0 Bill 210 2
+10000.0 Theodore 110 1
+7000.0 Sebastian 150 1
+8000.0 Eric 200 1
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select empid, emps.deptno, count(*) as c, sum(empid) as s
+from emps join depts using (deptno)
+group by empid, emps.deptno
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select empid, emps.deptno, count(*) as c, sum(empid) as s
+from emps join depts using (deptno)
+group by empid, emps.deptno
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select depts.deptno, count(*) as c, sum(empid) as s
+from emps join depts using (deptno)
+group by depts.deptno
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select depts.deptno, count(*) as c, sum(empid) as s
+from emps join depts using (deptno)
+group by depts.deptno
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.mv1
+ Statistics: Num rows: 4 Data size: 80 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: deptno (type: int), c (type: bigint), s (type: bigint)
+ outputColumnNames: deptno, c, s
+ Statistics: Num rows: 4 Data size: 80 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: $sum0(c), sum(s)
+ keys: deptno (type: int)
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 2 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 2 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: bigint), _col2 (type: bigint)
+ Execution mode: llap
+ LLAP IO: all inputs
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: $sum0(VALUE._col0), sum(VALUE._col1)
+ keys: KEY._col0 (type: int)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 2 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select depts.deptno, count(*) as c, sum(empid) as s
+from emps join depts using (deptno)
+group by depts.deptno
+PREHOOK: type: QUERY
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select depts.deptno, count(*) as c, sum(empid) as s
+from emps join depts using (deptno)
+group by depts.deptno
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+10 4 470
+20 1 200
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select empid, emps.deptno, count(*) as c, sum(empid) as s
+from emps join depts using (deptno)
+where emps.deptno >= 10 group by empid, emps.deptno
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select empid, emps.deptno, count(*) as c, sum(empid) as s
+from emps join depts using (deptno)
+where emps.deptno >= 10 group by empid, emps.deptno
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select depts.deptno, sum(empid) as s
+from emps join depts using (deptno)
+where emps.deptno > 10 group by depts.deptno
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select depts.deptno, sum(empid) as s
+from emps join depts using (deptno)
+where emps.deptno > 10 group by depts.deptno
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.mv1
+ Statistics: Num rows: 4 Data size: 48 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: (deptno > 10) (type: boolean)
+ Statistics: Num rows: 4 Data size: 48 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: sum(s)
+ keys: deptno (type: int)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: bigint)
+ Execution mode: llap
+ LLAP IO: all inputs
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: sum(VALUE._col0)
+ keys: KEY._col0 (type: int)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select depts.deptno, sum(empid) as s
+from emps join depts using (deptno)
+where emps.deptno > 10 group by depts.deptno
+PREHOOK: type: QUERY
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select depts.deptno, sum(empid) as s
+from emps join depts using (deptno)
+where emps.deptno > 10 group by depts.deptno
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+20 200
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select empid, depts.deptno, count(*) + 1 as c, sum(empid) as s
+from emps join depts using (deptno)
+where depts.deptno >= 10 group by empid, depts.deptno
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select empid, depts.deptno, count(*) + 1 as c, sum(empid) as s
+from emps join depts using (deptno)
+where depts.deptno >= 10 group by empid, depts.deptno
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select depts.deptno, sum(empid) + 1 as s
+from emps join depts using (deptno)
+where depts.deptno > 10 group by depts.deptno
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select depts.deptno, sum(empid) + 1 as s
+from emps join depts using (deptno)
+where depts.deptno > 10 group by depts.deptno
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.mv1
+ Statistics: Num rows: 4 Data size: 48 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: (deptno > 10) (type: boolean)
+ Statistics: Num rows: 4 Data size: 48 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: deptno (type: int), s (type: bigint)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 4 Data size: 48 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: sum(_col1)
+ keys: _col0 (type: int)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: bigint)
+ Execution mode: llap
+ LLAP IO: all inputs
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: sum(VALUE._col0)
+ keys: KEY._col0 (type: int)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col0 (type: int), (_col1 + 1L) (type: bigint)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select depts.deptno, sum(empid) + 1 as s
+from emps join depts using (deptno)
+where depts.deptno > 10 group by depts.deptno
+PREHOOK: type: QUERY
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select depts.deptno, sum(empid) + 1 as s
+from emps join depts using (deptno)
+where depts.deptno > 10 group by depts.deptno
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+20 201
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select depts.name, sum(salary) as s
+from emps
+join depts on (emps.deptno = depts.deptno)
+group by depts.name
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select depts.name, sum(salary) as s
+from emps
+join depts on (emps.deptno = depts.deptno)
+group by depts.name
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select dependents.empid, sum(salary) as s
+from emps
+join depts on (emps.deptno = depts.deptno)
+join dependents on (depts.name = dependents.name)
+group by dependents.empid
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select dependents.empid, sum(salary) as s
+from emps
+join depts on (emps.deptno = depts.deptno)
+join dependents on (depts.name = dependents.name)
+group by dependents.empid
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: default.mv1
+ Statistics: Num rows: 2 Data size: 192 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: name is not null (type: boolean)
+ Statistics: Num rows: 2 Data size: 192 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: name (type: varchar(256)), s (type: double)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 2 Data size: 192 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: varchar(256))
+ sort order: +
+ Map-reduce partition columns: _col0 (type: varchar(256))
+ Statistics: Num rows: 2 Data size: 192 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: double)
+ Execution mode: llap
+ LLAP IO: all inputs
+ Map 4
+ Map Operator Tree:
+ TableScan
+ alias: dependents
+ Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: name is not null (type: boolean)
+ Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: empid (type: int), name (type: varchar(256))
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col1 (type: varchar(256))
+ sort order: +
+ Map-reduce partition columns: _col1 (type: varchar(256))
+ Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: int)
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: varchar(256))
+ 1 _col1 (type: varchar(256))
+ outputColumnNames: _col1, _col2
+ Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: sum(_col1)
+ keys: _col2 (type: int)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: double)
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: sum(VALUE._col0)
+ keys: KEY._col0 (type: int)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select dependents.empid, sum(salary) as s
+from emps
+join depts on (emps.deptno = depts.deptno)
+join dependents on (depts.name = dependents.name)
+group by dependents.empid
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@depts
+PREHOOK: Input: default@emps
+PREHOOK: Input: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: select dependents.empid, sum(salary) as s
+from emps
+join depts on (emps.deptno = depts.deptno)
+join dependents on (depts.name = dependents.name)
+group by dependents.empid
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@depts
+POSTHOOK: Input: default@emps
+POSTHOOK: Input: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+PREHOOK: query: create materialized view mv1 enable rewrite as
+select dependents.empid, emps.deptno, count(distinct salary) as s
+from emps
+join dependents on (emps.empid = dependents.empid)
+group by dependents.empid, emps.deptno
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@emps
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1
+POSTHOOK: query: create materialized view mv1 enable rewrite as
+select dependents.empid, emps.deptno, count(distinct salary) as s
+from emps
+join dependents on (emps.empid = dependents.empid)
+group by dependents.empid, emps.deptno
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@emps
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1
+PREHOOK: query: analyze table mv1 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select emps.deptno, count(distinct salary) as s
+from emps
+join dependents on (emps.empid = dependents.empid)
+group by dependents.empid, emps.deptno
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select emps.deptno, count(distinct salary) as s
+from emps
+join dependents on (emps.empid = dependents.empid)
+group by dependents.empid, emps.deptno
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: emps
+ Statistics: Num rows: 5 Data size: 60 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: empid (type: int), deptno (type: int), salary (type: float)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 5 Data size: 60 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 5 Data size: 60 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: int), _col2 (type: float)
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 4
+ Map Operator Tree:
+ TableScan
+ alias: dependents
+ Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: empid (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: int)
+ 1 _col0 (type: int)
+ outputColumnNames: _col1, _col2, _col3
+ Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ keys: _col1 (type: int), _col3 (type: int), _col2 (type: float)
+ mode: hash
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int), _col1 (type: int), _col2 (type: float)
+ sort order: +++
+ Map-reduce partition columns: _col0 (type: int), _col1 (type: int)
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ keys: KEY._col0 (type: int), KEY._col1 (type: int), KEY._col2 (type: float)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col0 (type: int), _col2 (type: float), _col1 (type: int)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: count(_col1)
+ keys: _col0 (type: int), _col2 (type: int)
+ mode: complete
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col0 (type: int), _col2 (type: bigint)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select emps.deptno, count(distinct salary) as s
+from emps
+join dependents on (emps.empid = dependents.empid)
+group by dependents.empid, emps.deptno
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dependents
+PREHOOK: Input: default@emps
+#### A masked pattern was here ####
+POSTHOOK: query: select emps.deptno, count(distinct salary) as s
+from emps
+join dependents on (emps.empid = dependents.empid)
+group by dependents.empid, emps.deptno
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dependents
+POSTHOOK: Input: default@emps
+#### A masked pattern was here ####
+PREHOOK: query: drop materialized view mv1
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1
+PREHOOK: Output: default@mv1
+POSTHOOK: query: drop materialized view mv1
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1
+POSTHOOK: Output: default@mv1
[04/24] hive git commit: HIVE-18839: Implement incremental rebuild
for materialized views (only insert operations in source tables) (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/standalone-metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Materialization.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Materialization.java b/standalone-metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Materialization.java
index 6960728..556207e 100644
--- a/standalone-metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Materialization.java
+++ b/standalone-metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Materialization.java
@@ -41,6 +41,7 @@ import org.slf4j.LoggerFactory;
private static final org.apache.thrift.protocol.TField TABLES_USED_FIELD_DESC = new org.apache.thrift.protocol.TField("tablesUsed", org.apache.thrift.protocol.TType.SET, (short)1);
private static final org.apache.thrift.protocol.TField VALID_TXN_LIST_FIELD_DESC = new org.apache.thrift.protocol.TField("validTxnList", org.apache.thrift.protocol.TType.STRING, (short)2);
private static final org.apache.thrift.protocol.TField INVALIDATION_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("invalidationTime", org.apache.thrift.protocol.TType.I64, (short)3);
+ private static final org.apache.thrift.protocol.TField SOURCE_TABLES_UPDATE_DELETE_MODIFIED_FIELD_DESC = new org.apache.thrift.protocol.TField("sourceTablesUpdateDeleteModified", org.apache.thrift.protocol.TType.BOOL, (short)4);
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
static {
@@ -50,13 +51,15 @@ import org.slf4j.LoggerFactory;
private Set<String> tablesUsed; // required
private String validTxnList; // optional
- private long invalidationTime; // required
+ private long invalidationTime; // optional
+ private boolean sourceTablesUpdateDeleteModified; // optional
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
TABLES_USED((short)1, "tablesUsed"),
VALID_TXN_LIST((short)2, "validTxnList"),
- INVALIDATION_TIME((short)3, "invalidationTime");
+ INVALIDATION_TIME((short)3, "invalidationTime"),
+ SOURCE_TABLES_UPDATE_DELETE_MODIFIED((short)4, "sourceTablesUpdateDeleteModified");
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
@@ -77,6 +80,8 @@ import org.slf4j.LoggerFactory;
return VALID_TXN_LIST;
case 3: // INVALIDATION_TIME
return INVALIDATION_TIME;
+ case 4: // SOURCE_TABLES_UPDATE_DELETE_MODIFIED
+ return SOURCE_TABLES_UPDATE_DELETE_MODIFIED;
default:
return null;
}
@@ -118,8 +123,9 @@ import org.slf4j.LoggerFactory;
// isset id assignments
private static final int __INVALIDATIONTIME_ISSET_ID = 0;
+ private static final int __SOURCETABLESUPDATEDELETEMODIFIED_ISSET_ID = 1;
private byte __isset_bitfield = 0;
- private static final _Fields optionals[] = {_Fields.VALID_TXN_LIST};
+ private static final _Fields optionals[] = {_Fields.VALID_TXN_LIST,_Fields.INVALIDATION_TIME,_Fields.SOURCE_TABLES_UPDATE_DELETE_MODIFIED};
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
static {
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
@@ -128,8 +134,10 @@ import org.slf4j.LoggerFactory;
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
tmpMap.put(_Fields.VALID_TXN_LIST, new org.apache.thrift.meta_data.FieldMetaData("validTxnList", org.apache.thrift.TFieldRequirementType.OPTIONAL,
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
- tmpMap.put(_Fields.INVALIDATION_TIME, new org.apache.thrift.meta_data.FieldMetaData("invalidationTime", org.apache.thrift.TFieldRequirementType.REQUIRED,
+ tmpMap.put(_Fields.INVALIDATION_TIME, new org.apache.thrift.meta_data.FieldMetaData("invalidationTime", org.apache.thrift.TFieldRequirementType.OPTIONAL,
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+ tmpMap.put(_Fields.SOURCE_TABLES_UPDATE_DELETE_MODIFIED, new org.apache.thrift.meta_data.FieldMetaData("sourceTablesUpdateDeleteModified", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
metaDataMap = Collections.unmodifiableMap(tmpMap);
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(Materialization.class, metaDataMap);
}
@@ -138,13 +146,10 @@ import org.slf4j.LoggerFactory;
}
public Materialization(
- Set<String> tablesUsed,
- long invalidationTime)
+ Set<String> tablesUsed)
{
this();
this.tablesUsed = tablesUsed;
- this.invalidationTime = invalidationTime;
- setInvalidationTimeIsSet(true);
}
/**
@@ -160,6 +165,7 @@ import org.slf4j.LoggerFactory;
this.validTxnList = other.validTxnList;
}
this.invalidationTime = other.invalidationTime;
+ this.sourceTablesUpdateDeleteModified = other.sourceTablesUpdateDeleteModified;
}
public Materialization deepCopy() {
@@ -172,6 +178,8 @@ import org.slf4j.LoggerFactory;
this.validTxnList = null;
setInvalidationTimeIsSet(false);
this.invalidationTime = 0;
+ setSourceTablesUpdateDeleteModifiedIsSet(false);
+ this.sourceTablesUpdateDeleteModified = false;
}
public int getTablesUsedSize() {
@@ -257,6 +265,28 @@ import org.slf4j.LoggerFactory;
__isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __INVALIDATIONTIME_ISSET_ID, value);
}
+ public boolean isSourceTablesUpdateDeleteModified() {
+ return this.sourceTablesUpdateDeleteModified;
+ }
+
+ public void setSourceTablesUpdateDeleteModified(boolean sourceTablesUpdateDeleteModified) {
+ this.sourceTablesUpdateDeleteModified = sourceTablesUpdateDeleteModified;
+ setSourceTablesUpdateDeleteModifiedIsSet(true);
+ }
+
+ public void unsetSourceTablesUpdateDeleteModified() {
+ __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SOURCETABLESUPDATEDELETEMODIFIED_ISSET_ID);
+ }
+
+ /** Returns true if field sourceTablesUpdateDeleteModified is set (has been assigned a value) and false otherwise */
+ public boolean isSetSourceTablesUpdateDeleteModified() {
+ return EncodingUtils.testBit(__isset_bitfield, __SOURCETABLESUPDATEDELETEMODIFIED_ISSET_ID);
+ }
+
+ public void setSourceTablesUpdateDeleteModifiedIsSet(boolean value) {
+ __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SOURCETABLESUPDATEDELETEMODIFIED_ISSET_ID, value);
+ }
+
public void setFieldValue(_Fields field, Object value) {
switch (field) {
case TABLES_USED:
@@ -283,6 +313,14 @@ import org.slf4j.LoggerFactory;
}
break;
+ case SOURCE_TABLES_UPDATE_DELETE_MODIFIED:
+ if (value == null) {
+ unsetSourceTablesUpdateDeleteModified();
+ } else {
+ setSourceTablesUpdateDeleteModified((Boolean)value);
+ }
+ break;
+
}
}
@@ -297,6 +335,9 @@ import org.slf4j.LoggerFactory;
case INVALIDATION_TIME:
return getInvalidationTime();
+ case SOURCE_TABLES_UPDATE_DELETE_MODIFIED:
+ return isSourceTablesUpdateDeleteModified();
+
}
throw new IllegalStateException();
}
@@ -314,6 +355,8 @@ import org.slf4j.LoggerFactory;
return isSetValidTxnList();
case INVALIDATION_TIME:
return isSetInvalidationTime();
+ case SOURCE_TABLES_UPDATE_DELETE_MODIFIED:
+ return isSetSourceTablesUpdateDeleteModified();
}
throw new IllegalStateException();
}
@@ -349,8 +392,8 @@ import org.slf4j.LoggerFactory;
return false;
}
- boolean this_present_invalidationTime = true;
- boolean that_present_invalidationTime = true;
+ boolean this_present_invalidationTime = true && this.isSetInvalidationTime();
+ boolean that_present_invalidationTime = true && that.isSetInvalidationTime();
if (this_present_invalidationTime || that_present_invalidationTime) {
if (!(this_present_invalidationTime && that_present_invalidationTime))
return false;
@@ -358,6 +401,15 @@ import org.slf4j.LoggerFactory;
return false;
}
+ boolean this_present_sourceTablesUpdateDeleteModified = true && this.isSetSourceTablesUpdateDeleteModified();
+ boolean that_present_sourceTablesUpdateDeleteModified = true && that.isSetSourceTablesUpdateDeleteModified();
+ if (this_present_sourceTablesUpdateDeleteModified || that_present_sourceTablesUpdateDeleteModified) {
+ if (!(this_present_sourceTablesUpdateDeleteModified && that_present_sourceTablesUpdateDeleteModified))
+ return false;
+ if (this.sourceTablesUpdateDeleteModified != that.sourceTablesUpdateDeleteModified)
+ return false;
+ }
+
return true;
}
@@ -375,11 +427,16 @@ import org.slf4j.LoggerFactory;
if (present_validTxnList)
list.add(validTxnList);
- boolean present_invalidationTime = true;
+ boolean present_invalidationTime = true && (isSetInvalidationTime());
list.add(present_invalidationTime);
if (present_invalidationTime)
list.add(invalidationTime);
+ boolean present_sourceTablesUpdateDeleteModified = true && (isSetSourceTablesUpdateDeleteModified());
+ list.add(present_sourceTablesUpdateDeleteModified);
+ if (present_sourceTablesUpdateDeleteModified)
+ list.add(sourceTablesUpdateDeleteModified);
+
return list.hashCode();
}
@@ -421,6 +478,16 @@ import org.slf4j.LoggerFactory;
return lastComparison;
}
}
+ lastComparison = Boolean.valueOf(isSetSourceTablesUpdateDeleteModified()).compareTo(other.isSetSourceTablesUpdateDeleteModified());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetSourceTablesUpdateDeleteModified()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sourceTablesUpdateDeleteModified, other.sourceTablesUpdateDeleteModified);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
return 0;
}
@@ -458,10 +525,18 @@ import org.slf4j.LoggerFactory;
}
first = false;
}
- if (!first) sb.append(", ");
- sb.append("invalidationTime:");
- sb.append(this.invalidationTime);
- first = false;
+ if (isSetInvalidationTime()) {
+ if (!first) sb.append(", ");
+ sb.append("invalidationTime:");
+ sb.append(this.invalidationTime);
+ first = false;
+ }
+ if (isSetSourceTablesUpdateDeleteModified()) {
+ if (!first) sb.append(", ");
+ sb.append("sourceTablesUpdateDeleteModified:");
+ sb.append(this.sourceTablesUpdateDeleteModified);
+ first = false;
+ }
sb.append(")");
return sb.toString();
}
@@ -472,10 +547,6 @@ import org.slf4j.LoggerFactory;
throw new org.apache.thrift.protocol.TProtocolException("Required field 'tablesUsed' is unset! Struct:" + toString());
}
- if (!isSetInvalidationTime()) {
- throw new org.apache.thrift.protocol.TProtocolException("Required field 'invalidationTime' is unset! Struct:" + toString());
- }
-
// check for sub-struct validity
}
@@ -549,6 +620,14 @@ import org.slf4j.LoggerFactory;
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
break;
+ case 4: // SOURCE_TABLES_UPDATE_DELETE_MODIFIED
+ if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+ struct.sourceTablesUpdateDeleteModified = iprot.readBool();
+ struct.setSourceTablesUpdateDeleteModifiedIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
default:
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
@@ -581,9 +660,16 @@ import org.slf4j.LoggerFactory;
oprot.writeFieldEnd();
}
}
- oprot.writeFieldBegin(INVALIDATION_TIME_FIELD_DESC);
- oprot.writeI64(struct.invalidationTime);
- oprot.writeFieldEnd();
+ if (struct.isSetInvalidationTime()) {
+ oprot.writeFieldBegin(INVALIDATION_TIME_FIELD_DESC);
+ oprot.writeI64(struct.invalidationTime);
+ oprot.writeFieldEnd();
+ }
+ if (struct.isSetSourceTablesUpdateDeleteModified()) {
+ oprot.writeFieldBegin(SOURCE_TABLES_UPDATE_DELETE_MODIFIED_FIELD_DESC);
+ oprot.writeBool(struct.sourceTablesUpdateDeleteModified);
+ oprot.writeFieldEnd();
+ }
oprot.writeFieldStop();
oprot.writeStructEnd();
}
@@ -608,15 +694,26 @@ import org.slf4j.LoggerFactory;
oprot.writeString(_iter828);
}
}
- oprot.writeI64(struct.invalidationTime);
BitSet optionals = new BitSet();
if (struct.isSetValidTxnList()) {
optionals.set(0);
}
- oprot.writeBitSet(optionals, 1);
+ if (struct.isSetInvalidationTime()) {
+ optionals.set(1);
+ }
+ if (struct.isSetSourceTablesUpdateDeleteModified()) {
+ optionals.set(2);
+ }
+ oprot.writeBitSet(optionals, 3);
if (struct.isSetValidTxnList()) {
oprot.writeString(struct.validTxnList);
}
+ if (struct.isSetInvalidationTime()) {
+ oprot.writeI64(struct.invalidationTime);
+ }
+ if (struct.isSetSourceTablesUpdateDeleteModified()) {
+ oprot.writeBool(struct.sourceTablesUpdateDeleteModified);
+ }
}
@Override
@@ -633,13 +730,19 @@ import org.slf4j.LoggerFactory;
}
}
struct.setTablesUsedIsSet(true);
- struct.invalidationTime = iprot.readI64();
- struct.setInvalidationTimeIsSet(true);
- BitSet incoming = iprot.readBitSet(1);
+ BitSet incoming = iprot.readBitSet(3);
if (incoming.get(0)) {
struct.validTxnList = iprot.readString();
struct.setValidTxnListIsSet(true);
}
+ if (incoming.get(1)) {
+ struct.invalidationTime = iprot.readI64();
+ struct.setInvalidationTimeIsSet(true);
+ }
+ if (incoming.get(2)) {
+ struct.sourceTablesUpdateDeleteModified = iprot.readBool();
+ struct.setSourceTablesUpdateDeleteModifiedIsSet(true);
+ }
}
}
[21/24] hive git commit: HIVE-18839: Implement incremental rebuild
for materialized views (only insert operations in source tables) (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_5.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_5.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_5.q.out
new file mode 100644
index 0000000..d69f962
--- /dev/null
+++ b/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_5.q.out
@@ -0,0 +1,1106 @@
+PREHOOK: query: create table cmv_basetable (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@cmv_basetable
+POSTHOOK: query: create table cmv_basetable (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@cmv_basetable
+PREHOOK: query: insert into cmv_basetable values
+ (1, 'alfred', 10.30, 2),
+ (2, 'bob', 3.14, 3),
+ (2, 'bonnie', 172342.2, 3),
+ (3, 'calvin', 978.76, 3),
+ (3, 'charlie', 9.8, 1)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@cmv_basetable
+POSTHOOK: query: insert into cmv_basetable values
+ (1, 'alfred', 10.30, 2),
+ (2, 'bob', 3.14, 3),
+ (2, 'bonnie', 172342.2, 3),
+ (3, 'calvin', 978.76, 3),
+ (3, 'charlie', 9.8, 1)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@cmv_basetable
+POSTHOOK: Lineage: cmv_basetable.a SCRIPT []
+POSTHOOK: Lineage: cmv_basetable.b SCRIPT []
+POSTHOOK: Lineage: cmv_basetable.c SCRIPT []
+POSTHOOK: Lineage: cmv_basetable.d SCRIPT []
+PREHOOK: query: analyze table cmv_basetable compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable
+PREHOOK: Output: default@cmv_basetable
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table cmv_basetable compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable
+POSTHOOK: Output: default@cmv_basetable
+#### A masked pattern was here ####
+PREHOOK: query: create table cmv_basetable_2 (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@cmv_basetable_2
+POSTHOOK: query: create table cmv_basetable_2 (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@cmv_basetable_2
+PREHOOK: query: insert into cmv_basetable_2 values
+ (1, 'alfred', 10.30, 2),
+ (3, 'calvin', 978.76, 3)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@cmv_basetable_2
+POSTHOOK: query: insert into cmv_basetable_2 values
+ (1, 'alfred', 10.30, 2),
+ (3, 'calvin', 978.76, 3)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@cmv_basetable_2
+POSTHOOK: Lineage: cmv_basetable_2.a SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2.b SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2.c SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2.d SCRIPT []
+PREHOOK: query: analyze table cmv_basetable_2 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Output: default@cmv_basetable_2
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table cmv_basetable_2 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Output: default@cmv_basetable_2
+#### A masked pattern was here ####
+PREHOOK: query: CREATE MATERIALIZED VIEW cmv_mat_view ENABLE REWRITE
+ TBLPROPERTIES ('transactional'='true') AS
+ SELECT cmv_basetable.a, cmv_basetable_2.c
+ FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+ WHERE cmv_basetable_2.c > 10.0
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@cmv_basetable
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Output: database:default
+PREHOOK: Output: default@cmv_mat_view
+POSTHOOK: query: CREATE MATERIALIZED VIEW cmv_mat_view ENABLE REWRITE
+ TBLPROPERTIES ('transactional'='true') AS
+ SELECT cmv_basetable.a, cmv_basetable_2.c
+ FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+ WHERE cmv_basetable_2.c > 10.0
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@cmv_basetable
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@cmv_mat_view
+PREHOOK: query: analyze table cmv_mat_view compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_mat_view
+PREHOOK: Output: default@cmv_mat_view
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table cmv_mat_view compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_mat_view
+POSTHOOK: Output: default@cmv_mat_view
+#### A masked pattern was here ####
+PREHOOK: query: insert into cmv_basetable_2 values
+ (3, 'charlie', 15.8, 1)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@cmv_basetable_2
+POSTHOOK: query: insert into cmv_basetable_2 values
+ (3, 'charlie', 15.8, 1)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@cmv_basetable_2
+POSTHOOK: Lineage: cmv_basetable_2.a SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2.b SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2.c SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2.d SCRIPT []
+PREHOOK: query: analyze table cmv_basetable_2 compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Output: default@cmv_basetable_2
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table cmv_basetable_2 compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Output: default@cmv_basetable_2
+#### A masked pattern was here ####
+PREHOOK: query: EXPLAIN
+SELECT cmv_basetable.a
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT cmv_basetable.a
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 3 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: a is not null (type: boolean)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 3
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable_2
+ Statistics: Num rows: 3 Data size: 348 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((c > 10.1) and a is not null) (type: boolean)
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: int)
+ 1 _col0 (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: SELECT cmv_basetable.a
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable
+PREHOOK: Input: default@cmv_basetable_2
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT cmv_basetable.a
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable
+POSTHOOK: Input: default@cmv_basetable_2
+#### A masked pattern was here ####
+1
+3
+3
+3
+3
+PREHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
+ Stage-3 depends on stages: Stage-0
+ Stage-4 depends on stages: Stage-3
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (CUSTOM_SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: a is not null (type: boolean)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 4
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable_2
+ Statistics: Num rows: 3 Data size: 348 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((ROW__ID.writeid > 1) and (c > 10) and a is not null) (type: boolean)
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int), c (type: decimal(10,2))
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 192 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 1 Data size: 192 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: decimal(10,2))
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: int)
+ 1 _col0 (type: int)
+ outputColumnNames: _col0, _col2
+ Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col0 (type: int), _col2 (type: decimal(10,2))
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cmv_mat_view
+ Write Type: INSERT
+ Select Operator
+ expressions: _col0 (type: int), _col1 (type: decimal(10,2))
+ outputColumnNames: a, c
+ Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: compute_stats(a, 'hll'), compute_stats(c, 'hll')
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 1056 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ sort order:
+ Statistics: Num rows: 1 Data size: 1056 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: struct<columntype:string,min:bigint,max:bigint,countnulls:bigint,bitvector:binary>), _col1 (type: struct<columntype:string,min:decimal(10,2),max:decimal(10,2),countnulls:bigint,bitvector:binary>)
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 1088 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 1088 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-2
+ Dependency Collection
+
+ Stage: Stage-0
+ Move Operator
+ tables:
+ replace: false
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cmv_mat_view
+ Write Type: INSERT
+
+ Stage: Stage-3
+ Stats Work
+ Basic Stats Work:
+ Column Stats Desc:
+ Columns: a, c
+ Column Types: int, decimal(10,2)
+ Table: default.cmv_mat_view
+
+ Stage: Stage-4
+ Materialized View Work
+
+PREHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Output: default@cmv_mat_view
+POSTHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Output: default@cmv_mat_view
+POSTHOOK: Lineage: cmv_mat_view.a SIMPLE [(cmv_basetable)cmv_basetable.FieldSchema(name:a, type:int, comment:null), ]
+POSTHOOK: Lineage: cmv_mat_view.c SIMPLE [(cmv_basetable_2)cmv_basetable_2.FieldSchema(name:c, type:decimal(10,2), comment:null), ]
+PREHOOK: query: DESCRIBE FORMATTED cmv_mat_view
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@cmv_mat_view
+POSTHOOK: query: DESCRIBE FORMATTED cmv_mat_view
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@cmv_mat_view
+# col_name data_type comment
+a int
+c decimal(10,2)
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MATERIALIZED_VIEW
+Table Parameters:
+ numFiles 2
+ totalSize 1055
+ transactional true
+ transactional_properties default
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+InputFormat: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+
+# View Information
+View Original Text: SELECT cmv_basetable.a, cmv_basetable_2.c
+ FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+ WHERE cmv_basetable_2.c > 10.0
+View Expanded Text: SELECT `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
+ FROM `default`.`cmv_basetable` JOIN `default`.`cmv_basetable_2` ON (`cmv_basetable`.`a` = `cmv_basetable_2`.`a`)
+ WHERE `cmv_basetable_2`.`c` > 10.0
+View Rewrite Enabled: Yes
+PREHOOK: query: EXPLAIN
+SELECT cmv_basetable.a
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT cmv_basetable.a
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.cmv_mat_view
+ Filter Operator
+ predicate: (c > 10.1) (type: boolean)
+ Select Operator
+ expressions: a (type: int)
+ outputColumnNames: _col0
+ ListSink
+
+PREHOOK: query: SELECT cmv_basetable.a
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Input: default@cmv_mat_view
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT cmv_basetable.a
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Input: default@cmv_mat_view
+#### A masked pattern was here ####
+1
+3
+3
+3
+3
+PREHOOK: query: UPDATE cmv_basetable_2 SET a=2 WHERE a=1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Output: default@cmv_basetable_2
+POSTHOOK: query: UPDATE cmv_basetable_2 SET a=2 WHERE a=1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Output: default@cmv_basetable_2
+PREHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
+ Stage-3 depends on stages: Stage-0
+ Stage-4 depends on stages: Stage-3
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (CUSTOM_SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: a is not null (type: boolean)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 4
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable_2
+ Statistics: Num rows: 60 Data size: 6960 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((c > 10) and a is not null) (type: boolean)
+ Statistics: Num rows: 20 Data size: 2320 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int), c (type: decimal(10,2))
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 20 Data size: 2320 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 20 Data size: 2320 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: decimal(10,2))
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: int)
+ 1 _col0 (type: int)
+ outputColumnNames: _col0, _col2
+ Statistics: Num rows: 33 Data size: 3828 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col0 (type: int), _col2 (type: decimal(10,2))
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 33 Data size: 3828 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 33 Data size: 3828 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cmv_mat_view
+ Write Type: INSERT
+ Select Operator
+ expressions: _col0 (type: int), _col1 (type: decimal(10,2))
+ outputColumnNames: a, c
+ Statistics: Num rows: 33 Data size: 3828 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: compute_stats(a, 'hll'), compute_stats(c, 'hll')
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 1056 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ sort order:
+ Statistics: Num rows: 1 Data size: 1056 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: struct<columntype:string,min:bigint,max:bigint,countnulls:bigint,bitvector:binary>), _col1 (type: struct<columntype:string,min:decimal(10,2),max:decimal(10,2),countnulls:bigint,bitvector:binary>)
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 1088 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 1088 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-2
+ Dependency Collection
+
+ Stage: Stage-0
+ Move Operator
+ tables:
+ replace: false
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cmv_mat_view
+ Write Type: INSERT
+
+ Stage: Stage-3
+ Stats Work
+ Basic Stats Work:
+ Column Stats Desc:
+ Columns: a, c
+ Column Types: int, decimal(10,2)
+ Table: default.cmv_mat_view
+
+ Stage: Stage-4
+ Materialized View Work
+
+PREHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Output: default@cmv_mat_view
+POSTHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Output: default@cmv_mat_view
+POSTHOOK: Lineage: cmv_mat_view.a SIMPLE [(cmv_basetable)cmv_basetable.FieldSchema(name:a, type:int, comment:null), ]
+POSTHOOK: Lineage: cmv_mat_view.c SIMPLE [(cmv_basetable_2)cmv_basetable_2.FieldSchema(name:c, type:decimal(10,2), comment:null), ]
+PREHOOK: query: EXPLAIN
+SELECT cmv_basetable.a
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT cmv_basetable.a
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.cmv_mat_view
+ Filter Operator
+ predicate: (c > 10.1) (type: boolean)
+ Select Operator
+ expressions: a (type: int)
+ outputColumnNames: _col0
+ ListSink
+
+PREHOOK: query: SELECT cmv_basetable.a
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Input: default@cmv_mat_view
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT cmv_basetable.a
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Input: default@cmv_mat_view
+#### A masked pattern was here ####
+2
+2
+3
+3
+3
+3
+PREHOOK: query: DELETE FROM cmv_basetable_2 WHERE a=2
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Output: default@cmv_basetable_2
+POSTHOOK: query: DELETE FROM cmv_basetable_2 WHERE a=2
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Output: default@cmv_basetable_2
+PREHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
+ Stage-3 depends on stages: Stage-0
+ Stage-4 depends on stages: Stage-3
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (CUSTOM_SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: a is not null (type: boolean)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 4
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable_2
+ Statistics: Num rows: 70 Data size: 8120 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((c > 10) and a is not null) (type: boolean)
+ Statistics: Num rows: 23 Data size: 2668 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int), c (type: decimal(10,2))
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 23 Data size: 2668 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 23 Data size: 2668 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: decimal(10,2))
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: int)
+ 1 _col0 (type: int)
+ outputColumnNames: _col0, _col2
+ Statistics: Num rows: 38 Data size: 4408 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col0 (type: int), _col2 (type: decimal(10,2))
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 38 Data size: 4408 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 38 Data size: 4408 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cmv_mat_view
+ Write Type: INSERT
+ Select Operator
+ expressions: _col0 (type: int), _col1 (type: decimal(10,2))
+ outputColumnNames: a, c
+ Statistics: Num rows: 38 Data size: 4408 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: compute_stats(a, 'hll'), compute_stats(c, 'hll')
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 1056 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ sort order:
+ Statistics: Num rows: 1 Data size: 1056 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: struct<columntype:string,min:bigint,max:bigint,countnulls:bigint,bitvector:binary>), _col1 (type: struct<columntype:string,min:decimal(10,2),max:decimal(10,2),countnulls:bigint,bitvector:binary>)
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 1088 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 1088 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-2
+ Dependency Collection
+
+ Stage: Stage-0
+ Move Operator
+ tables:
+ replace: false
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cmv_mat_view
+ Write Type: INSERT
+
+ Stage: Stage-3
+ Stats Work
+ Basic Stats Work:
+ Column Stats Desc:
+ Columns: a, c
+ Column Types: int, decimal(10,2)
+ Table: default.cmv_mat_view
+
+ Stage: Stage-4
+ Materialized View Work
+
+PREHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Output: default@cmv_mat_view
+POSTHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Output: default@cmv_mat_view
+POSTHOOK: Lineage: cmv_mat_view.a SIMPLE [(cmv_basetable)cmv_basetable.FieldSchema(name:a, type:int, comment:null), ]
+POSTHOOK: Lineage: cmv_mat_view.c SIMPLE [(cmv_basetable_2)cmv_basetable_2.FieldSchema(name:c, type:decimal(10,2), comment:null), ]
+PREHOOK: query: EXPLAIN
+SELECT cmv_basetable.a
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT cmv_basetable.a
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.cmv_mat_view
+ Filter Operator
+ predicate: (c > 10.1) (type: boolean)
+ Select Operator
+ expressions: a (type: int)
+ outputColumnNames: _col0
+ ListSink
+
+PREHOOK: query: SELECT cmv_basetable.a
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Input: default@cmv_mat_view
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT cmv_basetable.a
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Input: default@cmv_mat_view
+#### A masked pattern was here ####
+3
+3
+3
+3
+PREHOOK: query: insert into cmv_basetable_2 values
+ (1, 'charlie', 15.8, 1)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@cmv_basetable_2
+POSTHOOK: query: insert into cmv_basetable_2 values
+ (1, 'charlie', 15.8, 1)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@cmv_basetable_2
+POSTHOOK: Lineage: cmv_basetable_2.a SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2.b SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2.c SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2.d SCRIPT []
+PREHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
+ Stage-3 depends on stages: Stage-0
+ Stage-4 depends on stages: Stage-3
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (CUSTOM_SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: a is not null (type: boolean)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Map 4
+ Map Operator Tree:
+ TableScan
+ alias: cmv_basetable_2
+ Statistics: Num rows: 85 Data size: 9860 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: ((ROW__ID.writeid > 4) and (c > 10) and a is not null) (type: boolean)
+ Statistics: Num rows: 9 Data size: 1044 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: a (type: int), c (type: decimal(10,2))
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 9 Data size: 1728 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: int)
+ Statistics: Num rows: 9 Data size: 1728 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col1 (type: decimal(10,2))
+ Execution mode: llap
+ LLAP IO: may be used (ACID table)
+ Reducer 2
+ Execution mode: llap
+ Reduce Operator Tree:
+ Merge Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: int)
+ 1 _col0 (type: int)
+ outputColumnNames: _col0, _col2
+ Statistics: Num rows: 15 Data size: 1740 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: _col0 (type: int), _col2 (type: decimal(10,2))
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 15 Data size: 1740 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 15 Data size: 1740 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cmv_mat_view
+ Write Type: INSERT
+ Select Operator
+ expressions: _col0 (type: int), _col1 (type: decimal(10,2))
+ outputColumnNames: a, c
+ Statistics: Num rows: 15 Data size: 1740 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: compute_stats(a, 'hll'), compute_stats(c, 'hll')
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 1056 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ sort order:
+ Statistics: Num rows: 1 Data size: 1056 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: struct<columntype:string,min:bigint,max:bigint,countnulls:bigint,bitvector:binary>), _col1 (type: struct<columntype:string,min:decimal(10,2),max:decimal(10,2),countnulls:bigint,bitvector:binary>)
+ Reducer 3
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 1088 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 1088 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-2
+ Dependency Collection
+
+ Stage: Stage-0
+ Move Operator
+ tables:
+ replace: false
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.cmv_mat_view
+ Write Type: INSERT
+
+ Stage: Stage-3
+ Stats Work
+ Basic Stats Work:
+ Column Stats Desc:
+ Columns: a, c
+ Column Types: int, decimal(10,2)
+ Table: default.cmv_mat_view
+
+ Stage: Stage-4
+ Materialized View Work
+
+PREHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Output: default@cmv_mat_view
+POSTHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Output: default@cmv_mat_view
+POSTHOOK: Lineage: cmv_mat_view.a SIMPLE [(cmv_basetable)cmv_basetable.FieldSchema(name:a, type:int, comment:null), ]
+POSTHOOK: Lineage: cmv_mat_view.c SIMPLE [(cmv_basetable_2)cmv_basetable_2.FieldSchema(name:c, type:decimal(10,2), comment:null), ]
+PREHOOK: query: EXPLAIN
+SELECT cmv_basetable.a
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT cmv_basetable.a
+FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: default.cmv_mat_view
+ Filter Operator
+ predicate: (c > 10.1) (type: boolean)
+ Select Operator
+ expressions: a (type: int)
+ outputColumnNames: _col0
+ ListSink
+
+PREHOOK: query: SELECT cmv_basetable.a
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable
+PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Input: default@cmv_mat_view
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT cmv_basetable.a
+FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
+WHERE cmv_basetable_2.c > 10.10
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable
+POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Input: default@cmv_mat_view
+#### A masked pattern was here ####
+3
+3
+3
+3
+1
+PREHOOK: query: drop materialized view cmv_mat_view
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@cmv_mat_view
+PREHOOK: Output: default@cmv_mat_view
+POSTHOOK: query: drop materialized view cmv_mat_view
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@cmv_mat_view
+POSTHOOK: Output: default@cmv_mat_view
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_rebuild_dummy.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_rebuild_dummy.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_rebuild_dummy.q.out
index 1ef7b87..bd0f903 100644
--- a/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_rebuild_dummy.q.out
+++ b/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_rebuild_dummy.q.out
@@ -452,9 +452,11 @@ STAGE PLANS:
Tez
#### A masked pattern was here ####
Edges:
- Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 5 (SIMPLE_EDGE)
- Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
- Reducer 4 <- Reducer 3 (CUSTOM_SIMPLE_EDGE)
+ Map 8 <- Union 4 (CONTAINS)
+ Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (SIMPLE_EDGE), Union 4 (CONTAINS)
+ Reducer 5 <- Union 4 (SIMPLE_EDGE)
+ Reducer 6 <- Reducer 5 (CUSTOM_SIMPLE_EDGE)
#### A masked pattern was here ####
Vertices:
Map 1
@@ -476,26 +478,47 @@ STAGE PLANS:
Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
Execution mode: llap
LLAP IO: may be used (ACID table)
- Map 5
+ Map 7
Map Operator Tree:
TableScan
alias: cmv_basetable_2
Statistics: Num rows: 3 Data size: 348 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
- predicate: ((c > 10) and a is not null) (type: boolean)
+ predicate: ((ROW__ID.writeid > 1) and (c > 10) and a is not null) (type: boolean)
Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
Select Operator
expressions: a (type: int), c (type: decimal(10,2))
outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ Statistics: Num rows: 1 Data size: 192 Basic stats: COMPLETE Column stats: COMPLETE
Reduce Output Operator
key expressions: _col0 (type: int)
sort order: +
Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ Statistics: Num rows: 1 Data size: 192 Basic stats: COMPLETE Column stats: COMPLETE
value expressions: _col1 (type: decimal(10,2))
Execution mode: llap
LLAP IO: may be used (ACID table)
+ Map 8
+ Map Operator Tree:
+ TableScan
+ alias: default.cmv_mat_view
+ Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: a (type: int), c (type: decimal(10,2))
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
+ Group By Operator
+ keys: _col0 (type: int), _col1 (type: decimal(10,2))
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: PARTIAL
+ Reduce Output Operator
+ key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: PARTIAL
+ Execution mode: llap
+ LLAP IO: all inputs
Reducer 2
Execution mode: llap
Reduce Operator Tree:
@@ -525,9 +548,27 @@ STAGE PLANS:
mode: mergepartial
outputColumnNames: _col0, _col1
Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ keys: _col0 (type: int), _col1 (type: decimal(10,2))
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: PARTIAL
+ Reduce Output Operator
+ key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: PARTIAL
+ Reducer 5
+ Execution mode: llap
+ Reduce Operator Tree:
+ Group By Operator
+ keys: KEY._col0 (type: int), KEY._col1 (type: decimal(10,2))
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: PARTIAL
File Output Operator
compressed: false
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: PARTIAL
table:
input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
@@ -536,31 +577,33 @@ STAGE PLANS:
Select Operator
expressions: _col0 (type: int), _col1 (type: decimal(10,2))
outputColumnNames: a, c
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: PARTIAL
Group By Operator
aggregations: compute_stats(a, 'hll'), compute_stats(c, 'hll')
mode: hash
outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 1056 Basic stats: COMPLETE Column stats: COMPLETE
+ Statistics: Num rows: 1 Data size: 1056 Basic stats: COMPLETE Column stats: PARTIAL
Reduce Output Operator
sort order:
- Statistics: Num rows: 1 Data size: 1056 Basic stats: COMPLETE Column stats: COMPLETE
+ Statistics: Num rows: 1 Data size: 1056 Basic stats: COMPLETE Column stats: PARTIAL
value expressions: _col0 (type: struct<columntype:string,min:bigint,max:bigint,countnulls:bigint,bitvector:binary>), _col1 (type: struct<columntype:string,min:decimal(10,2),max:decimal(10,2),countnulls:bigint,bitvector:binary>)
- Reducer 4
+ Reducer 6
Execution mode: llap
Reduce Operator Tree:
Group By Operator
aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1)
mode: mergepartial
outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 1088 Basic stats: COMPLETE Column stats: COMPLETE
+ Statistics: Num rows: 1 Data size: 1088 Basic stats: COMPLETE Column stats: PARTIAL
File Output Operator
compressed: false
- Statistics: Num rows: 1 Data size: 1088 Basic stats: COMPLETE Column stats: COMPLETE
+ Statistics: Num rows: 1 Data size: 1088 Basic stats: COMPLETE Column stats: PARTIAL
table:
input format: org.apache.hadoop.mapred.SequenceFileInputFormat
output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+ Union 4
+ Vertex: Union 4
Stage: Stage-2
Dependency Collection
@@ -590,14 +633,16 @@ PREHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
PREHOOK: type: QUERY
PREHOOK: Input: default@cmv_basetable
PREHOOK: Input: default@cmv_basetable_2
+PREHOOK: Input: default@cmv_mat_view
PREHOOK: Output: default@cmv_mat_view
POSTHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
POSTHOOK: type: QUERY
POSTHOOK: Input: default@cmv_basetable
POSTHOOK: Input: default@cmv_basetable_2
+POSTHOOK: Input: default@cmv_mat_view
POSTHOOK: Output: default@cmv_mat_view
-POSTHOOK: Lineage: cmv_mat_view.a SIMPLE [(cmv_basetable)cmv_basetable.FieldSchema(name:a, type:int, comment:null), ]
-POSTHOOK: Lineage: cmv_mat_view.c SIMPLE [(cmv_basetable_2)cmv_basetable_2.FieldSchema(name:c, type:decimal(10,2), comment:null), ]
+POSTHOOK: Lineage: cmv_mat_view.a EXPRESSION [(cmv_basetable)cmv_basetable.FieldSchema(name:a, type:int, comment:null), (cmv_mat_view)default.cmv_mat_view.FieldSchema(name:a, type:int, comment:null), ]
+POSTHOOK: Lineage: cmv_mat_view.c EXPRESSION [(cmv_basetable_2)cmv_basetable_2.FieldSchema(name:c, type:decimal(10,2), comment:null), (cmv_mat_view)default.cmv_mat_view.FieldSchema(name:c, type:decimal(10,2), comment:null), ]
PREHOOK: query: EXPLAIN
SELECT cmv_basetable.a
FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
[09/24] hive git commit: HIVE-18839: Implement incremental rebuild
for materialized views (only insert operations in source tables) (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/materialized_view_rewrite_6.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/materialized_view_rewrite_6.q.out b/ql/src/test/results/clientpositive/materialized_view_rewrite_6.q.out
deleted file mode 100644
index 017d793..0000000
--- a/ql/src/test/results/clientpositive/materialized_view_rewrite_6.q.out
+++ /dev/null
@@ -1,830 +0,0 @@
-PREHOOK: query: create table emps (
- empid int,
- deptno int,
- name varchar(256),
- salary float,
- commission int)
-stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@emps
-POSTHOOK: query: create table emps (
- empid int,
- deptno int,
- name varchar(256),
- salary float,
- commission int)
-stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@emps
-PREHOOK: query: insert into emps values (100, 10, 'Bill', 10000, 1000), (200, 20, 'Eric', 8000, 500),
- (150, 10, 'Sebastian', 7000, null), (110, 10, 'Theodore', 10000, 250), (110, 10, 'Bill', 10000, 250)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@emps
-POSTHOOK: query: insert into emps values (100, 10, 'Bill', 10000, 1000), (200, 20, 'Eric', 8000, 500),
- (150, 10, 'Sebastian', 7000, null), (110, 10, 'Theodore', 10000, 250), (110, 10, 'Bill', 10000, 250)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@emps
-POSTHOOK: Lineage: emps.commission SCRIPT []
-POSTHOOK: Lineage: emps.deptno SCRIPT []
-POSTHOOK: Lineage: emps.empid SCRIPT []
-POSTHOOK: Lineage: emps.name SCRIPT []
-POSTHOOK: Lineage: emps.salary SCRIPT []
-PREHOOK: query: analyze table emps compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@emps
-PREHOOK: Output: default@emps
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table emps compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: default@emps
-#### A masked pattern was here ####
-PREHOOK: query: create table depts (
- deptno int,
- name varchar(256),
- locationid int)
-stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@depts
-POSTHOOK: query: create table depts (
- deptno int,
- name varchar(256),
- locationid int)
-stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@depts
-PREHOOK: query: insert into depts values (10, 'Sales', 10), (30, 'Marketing', null), (20, 'HR', 20)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@depts
-POSTHOOK: query: insert into depts values (10, 'Sales', 10), (30, 'Marketing', null), (20, 'HR', 20)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@depts
-POSTHOOK: Lineage: depts.deptno SCRIPT []
-POSTHOOK: Lineage: depts.locationid SCRIPT []
-POSTHOOK: Lineage: depts.name SCRIPT []
-PREHOOK: query: analyze table depts compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@depts
-PREHOOK: Output: default@depts
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table depts compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@depts
-POSTHOOK: Output: default@depts
-#### A masked pattern was here ####
-PREHOOK: query: create table dependents (
- empid int,
- name varchar(256))
-stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@dependents
-POSTHOOK: query: create table dependents (
- empid int,
- name varchar(256))
-stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@dependents
-PREHOOK: query: insert into dependents values (10, 'Michael'), (10, 'Jane')
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@dependents
-POSTHOOK: query: insert into dependents values (10, 'Michael'), (10, 'Jane')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@dependents
-POSTHOOK: Lineage: dependents.empid SCRIPT []
-POSTHOOK: Lineage: dependents.name SCRIPT []
-PREHOOK: query: analyze table dependents compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dependents
-PREHOOK: Output: default@dependents
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table dependents compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dependents
-POSTHOOK: Output: default@dependents
-#### A masked pattern was here ####
-PREHOOK: query: create table locations (
- locationid int,
- name varchar(256))
-stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@locations
-POSTHOOK: query: create table locations (
- locationid int,
- name varchar(256))
-stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@locations
-PREHOOK: query: insert into locations values (10, 'San Francisco'), (10, 'San Diego')
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@locations
-POSTHOOK: query: insert into locations values (10, 'San Francisco'), (10, 'San Diego')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@locations
-POSTHOOK: Lineage: locations.locationid SCRIPT []
-POSTHOOK: Lineage: locations.name SCRIPT []
-PREHOOK: query: analyze table locations compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@locations
-PREHOOK: Output: default@locations
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table locations compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@locations
-POSTHOOK: Output: default@locations
-#### A masked pattern was here ####
-PREHOOK: query: alter table emps add constraint pk1 primary key (empid) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table emps add constraint pk1 primary key (empid) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table depts add constraint pk2 primary key (deptno) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table depts add constraint pk2 primary key (deptno) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table dependents add constraint pk3 primary key (empid) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table dependents add constraint pk3 primary key (empid) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table locations add constraint pk4 primary key (locationid) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table locations add constraint pk4 primary key (locationid) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table emps add constraint fk1 foreign key (deptno) references depts(deptno) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table emps add constraint fk1 foreign key (deptno) references depts(deptno) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table depts add constraint fk2 foreign key (locationid) references locations(locationid) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table depts add constraint fk2 foreign key (locationid) references locations(locationid) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table emps change column deptno deptno int constraint nn1 not null disable novalidate rely
-PREHOOK: type: ALTERTABLE_RENAMECOL
-PREHOOK: Input: default@emps
-PREHOOK: Output: default@emps
-POSTHOOK: query: alter table emps change column deptno deptno int constraint nn1 not null disable novalidate rely
-POSTHOOK: type: ALTERTABLE_RENAMECOL
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: default@emps
-PREHOOK: query: alter table depts change column locationid locationid int constraint nn2 not null disable novalidate rely
-PREHOOK: type: ALTERTABLE_RENAMECOL
-PREHOOK: Input: default@depts
-PREHOOK: Output: default@depts
-POSTHOOK: query: alter table depts change column locationid locationid int constraint nn2 not null disable novalidate rely
-POSTHOOK: type: ALTERTABLE_RENAMECOL
-POSTHOOK: Input: default@depts
-POSTHOOK: Output: default@depts
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select name, deptno, salary, count(*) + 1 as c, sum(empid) as s
-from emps where deptno >= 10 group by name, deptno, salary
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select name, deptno, salary, count(*) + 1 as c, sum(empid) as s
-from emps where deptno >= 10 group by name, deptno, salary
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select salary, sum(empid) + 1 as s
-from emps where deptno > 10 group by salary
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select salary, sum(empid) + 1 as s
-from emps where deptno > 10 group by salary
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 4 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: (deptno > 10) (type: boolean)
- Statistics: Num rows: 4 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: salary (type: float), s (type: bigint)
- outputColumnNames: salary, s
- Statistics: Num rows: 4 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- aggregations: sum(s)
- keys: salary (type: float)
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: float)
- sort order: +
- Map-reduce partition columns: _col0 (type: float)
- Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col1 (type: bigint)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: float)
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: _col0 (type: float), (_col1 + 1L) (type: bigint)
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select salary, sum(empid) + 1 as s
-from emps where deptno > 10 group by salary
-PREHOOK: type: QUERY
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select salary, sum(empid) + 1 as s
-from emps where deptno > 10 group by salary
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-8000.0 201
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select name, deptno, salary, count(*) + 1 as c, sum(empid) as s
-from emps where deptno >= 15 group by name, deptno, salary
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select name, deptno, salary, count(*) + 1 as c, sum(empid) as s
-from emps where deptno >= 15 group by name, deptno, salary
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select salary + 1, sum(empid) + 1 as s
-from emps where deptno > 15 group by salary
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select salary + 1, sum(empid) + 1 as s
-from emps where deptno > 15 group by salary
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: (deptno > 15) (type: boolean)
- Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: salary (type: float), s (type: bigint)
- outputColumnNames: salary, s
- Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- aggregations: sum(s)
- keys: salary (type: float)
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: float)
- sort order: +
- Map-reduce partition columns: _col0 (type: float)
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col1 (type: bigint)
- Reduce Operator Tree:
- Group By Operator
- aggregations: sum(VALUE._col0)
- keys: KEY._col0 (type: float)
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: (_col0 + 1.0) (type: float), (_col1 + 1L) (type: bigint)
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select salary + 1, sum(empid) + 1 as s
-from emps where deptno > 15 group by salary
-PREHOOK: type: QUERY
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select salary + 1, sum(empid) + 1 as s
-from emps where deptno > 15 group by salary
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-8001.0 201
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select depts.name
-from emps
-join depts on (emps.deptno = depts.deptno)
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select depts.name
-from emps
-join depts on (emps.deptno = depts.deptno)
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select dependents.empid
-from emps
-join depts on (emps.deptno = depts.deptno)
-join dependents on (depts.name = dependents.name)
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select dependents.empid
-from emps
-join depts on (emps.deptno = depts.deptno)
-join dependents on (depts.name = dependents.name)
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 5 Data size: 440 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: name is not null (type: boolean)
- Statistics: Num rows: 5 Data size: 440 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: name (type: varchar(256))
- outputColumnNames: _col0
- Statistics: Num rows: 5 Data size: 440 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: varchar(256))
- sort order: +
- Map-reduce partition columns: _col0 (type: varchar(256))
- Statistics: Num rows: 5 Data size: 440 Basic stats: COMPLETE Column stats: COMPLETE
- TableScan
- alias: dependents
- Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: name is not null (type: boolean)
- Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: empid (type: int), name (type: varchar(256))
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col1 (type: varchar(256))
- sort order: +
- Map-reduce partition columns: _col1 (type: varchar(256))
- Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col0 (type: int)
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- keys:
- 0 _col0 (type: varchar(256))
- 1 _col1 (type: varchar(256))
- outputColumnNames: _col1
- Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: _col1 (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select dependents.empid
-from emps
-join depts on (emps.deptno = depts.deptno)
-join dependents on (depts.name = dependents.name)
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select dependents.empid
-from emps
-join depts on (emps.deptno = depts.deptno)
-join dependents on (depts.name = dependents.name)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select depts.name
-from emps
-join depts on (emps.deptno = depts.deptno)
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select depts.name
-from emps
-join depts on (emps.deptno = depts.deptno)
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select dependents.empid
-from depts
-join dependents on (depts.name = dependents.name)
-join locations on (locations.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select dependents.empid
-from depts
-join dependents on (depts.name = dependents.name)
-join locations on (locations.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 5 Data size: 440 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: name is not null (type: boolean)
- Statistics: Num rows: 5 Data size: 440 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: name (type: varchar(256))
- outputColumnNames: _col0
- Statistics: Num rows: 5 Data size: 440 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: varchar(256))
- sort order: +
- Map-reduce partition columns: _col0 (type: varchar(256))
- Statistics: Num rows: 5 Data size: 440 Basic stats: COMPLETE Column stats: COMPLETE
- TableScan
- alias: locations
- Statistics: Num rows: 2 Data size: 190 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: name is not null (type: boolean)
- Statistics: Num rows: 2 Data size: 190 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: name (type: varchar(256))
- outputColumnNames: _col0
- Statistics: Num rows: 2 Data size: 190 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: varchar(256))
- sort order: +
- Map-reduce partition columns: _col0 (type: varchar(256))
- Statistics: Num rows: 2 Data size: 190 Basic stats: COMPLETE Column stats: COMPLETE
- TableScan
- alias: dependents
- Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: name is not null (type: boolean)
- Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: empid (type: int), name (type: varchar(256))
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col1 (type: varchar(256))
- sort order: +
- Map-reduce partition columns: _col1 (type: varchar(256))
- Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col0 (type: int)
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- Inner Join 0 to 2
- keys:
- 0 _col0 (type: varchar(256))
- 1 _col0 (type: varchar(256))
- 2 _col1 (type: varchar(256))
- outputColumnNames: _col2
- Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: _col2 (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select dependents.empid
-from depts
-join dependents on (depts.name = dependents.name)
-join locations on (locations.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@locations
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select dependents.empid
-from depts
-join dependents on (depts.name = dependents.name)
-join locations on (locations.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@locations
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select emps.empid, emps.deptno, emps.name as name1, emps.salary, emps.commission, dependents.name as name2
-from emps join dependents on (emps.empid = dependents.empid)
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select emps.empid, emps.deptno, emps.name as name1, emps.salary, emps.commission, dependents.name as name2
-from emps join dependents on (emps.empid = dependents.empid)
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select emps.empid, dependents.empid, emps.deptno
-from emps
-join dependents on (emps.empid = dependents.empid)
-join depts a on (emps.deptno=a.deptno)
-where emps.name = 'Bill'
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select emps.empid, dependents.empid, emps.deptno
-from emps
-join dependents on (emps.empid = dependents.empid)
-join depts a on (emps.deptno=a.deptno)
-where emps.name = 'Bill'
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: a
- Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: deptno (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- TableScan
- alias: default.mv1
- Statistics: Num rows: 1 Data size: 92 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: (UDFToString(name1) = 'Bill') (type: boolean)
- Statistics: Num rows: 1 Data size: 92 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: empid (type: int), deptno (type: int)
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col1 (type: int)
- sort order: +
- Map-reduce partition columns: _col1 (type: int)
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col0 (type: int)
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- keys:
- 0 _col0 (type: int)
- 1 _col1 (type: int)
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: _col1 (type: int), _col1 (type: int), _col0 (type: int)
- outputColumnNames: _col0, _col1, _col2
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select emps.empid, dependents.empid, emps.deptno
-from emps
-join dependents on (emps.empid = dependents.empid)
-join depts a on (emps.deptno=a.deptno)
-where emps.name = 'Bill'
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select emps.empid, dependents.empid, emps.deptno
-from emps
-join dependents on (emps.empid = dependents.empid)
-join depts a on (emps.deptno=a.deptno)
-where emps.name = 'Bill'
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/materialized_view_rewrite_7.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/materialized_view_rewrite_7.q.out b/ql/src/test/results/clientpositive/materialized_view_rewrite_7.q.out
deleted file mode 100644
index 486a50d..0000000
--- a/ql/src/test/results/clientpositive/materialized_view_rewrite_7.q.out
+++ /dev/null
@@ -1,1036 +0,0 @@
-PREHOOK: query: create table emps (
- empid int,
- deptno int,
- name varchar(256),
- salary float,
- commission int)
-stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@emps
-POSTHOOK: query: create table emps (
- empid int,
- deptno int,
- name varchar(256),
- salary float,
- commission int)
-stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@emps
-PREHOOK: query: insert into emps values (100, 10, 'Bill', 10000, 1000), (200, 20, 'Eric', 8000, 500),
- (150, 10, 'Sebastian', 7000, null), (110, 10, 'Theodore', 10000, 250)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@emps
-POSTHOOK: query: insert into emps values (100, 10, 'Bill', 10000, 1000), (200, 20, 'Eric', 8000, 500),
- (150, 10, 'Sebastian', 7000, null), (110, 10, 'Theodore', 10000, 250)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@emps
-POSTHOOK: Lineage: emps.commission SCRIPT []
-POSTHOOK: Lineage: emps.deptno SCRIPT []
-POSTHOOK: Lineage: emps.empid SCRIPT []
-POSTHOOK: Lineage: emps.name SCRIPT []
-POSTHOOK: Lineage: emps.salary SCRIPT []
-PREHOOK: query: analyze table emps compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@emps
-PREHOOK: Output: default@emps
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table emps compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: default@emps
-#### A masked pattern was here ####
-PREHOOK: query: create table depts (
- deptno int,
- name varchar(256),
- locationid int)
-stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@depts
-POSTHOOK: query: create table depts (
- deptno int,
- name varchar(256),
- locationid int)
-stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@depts
-PREHOOK: query: insert into depts values (10, 'Sales', 10), (30, 'Marketing', null), (20, 'HR', 20)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@depts
-POSTHOOK: query: insert into depts values (10, 'Sales', 10), (30, 'Marketing', null), (20, 'HR', 20)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@depts
-POSTHOOK: Lineage: depts.deptno SCRIPT []
-POSTHOOK: Lineage: depts.locationid SCRIPT []
-POSTHOOK: Lineage: depts.name SCRIPT []
-PREHOOK: query: analyze table depts compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@depts
-PREHOOK: Output: default@depts
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table depts compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@depts
-POSTHOOK: Output: default@depts
-#### A masked pattern was here ####
-PREHOOK: query: create table dependents (
- empid int,
- name varchar(256))
-stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@dependents
-POSTHOOK: query: create table dependents (
- empid int,
- name varchar(256))
-stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@dependents
-PREHOOK: query: insert into dependents values (10, 'Michael'), (10, 'Jane')
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@dependents
-POSTHOOK: query: insert into dependents values (10, 'Michael'), (10, 'Jane')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@dependents
-POSTHOOK: Lineage: dependents.empid SCRIPT []
-POSTHOOK: Lineage: dependents.name SCRIPT []
-PREHOOK: query: analyze table dependents compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dependents
-PREHOOK: Output: default@dependents
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table dependents compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dependents
-POSTHOOK: Output: default@dependents
-#### A masked pattern was here ####
-PREHOOK: query: create table locations (
- locationid int,
- name varchar(256))
-stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@locations
-POSTHOOK: query: create table locations (
- locationid int,
- name varchar(256))
-stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@locations
-PREHOOK: query: insert into locations values (10, 'San Francisco'), (10, 'San Diego')
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@locations
-POSTHOOK: query: insert into locations values (10, 'San Francisco'), (10, 'San Diego')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@locations
-POSTHOOK: Lineage: locations.locationid SCRIPT []
-POSTHOOK: Lineage: locations.name SCRIPT []
-PREHOOK: query: analyze table locations compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@locations
-PREHOOK: Output: default@locations
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table locations compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@locations
-POSTHOOK: Output: default@locations
-#### A masked pattern was here ####
-PREHOOK: query: alter table emps add constraint pk1 primary key (empid) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table emps add constraint pk1 primary key (empid) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table depts add constraint pk2 primary key (deptno) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table depts add constraint pk2 primary key (deptno) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table dependents add constraint pk3 primary key (empid) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table dependents add constraint pk3 primary key (empid) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table locations add constraint pk4 primary key (locationid) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table locations add constraint pk4 primary key (locationid) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table emps add constraint fk1 foreign key (deptno) references depts(deptno) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table emps add constraint fk1 foreign key (deptno) references depts(deptno) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table depts add constraint fk2 foreign key (locationid) references locations(locationid) disable novalidate rely
-PREHOOK: type: ALTERTABLE_ADDCONSTRAINT
-POSTHOOK: query: alter table depts add constraint fk2 foreign key (locationid) references locations(locationid) disable novalidate rely
-POSTHOOK: type: ALTERTABLE_ADDCONSTRAINT
-PREHOOK: query: alter table emps change column deptno deptno int constraint nn1 not null disable novalidate rely
-PREHOOK: type: ALTERTABLE_RENAMECOL
-PREHOOK: Input: default@emps
-PREHOOK: Output: default@emps
-POSTHOOK: query: alter table emps change column deptno deptno int constraint nn1 not null disable novalidate rely
-POSTHOOK: type: ALTERTABLE_RENAMECOL
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: default@emps
-PREHOOK: query: alter table depts change column locationid locationid int constraint nn2 not null disable novalidate rely
-PREHOOK: type: ALTERTABLE_RENAMECOL
-PREHOOK: Input: default@depts
-PREHOOK: Output: default@depts
-POSTHOOK: query: alter table depts change column locationid locationid int constraint nn2 not null disable novalidate rely
-POSTHOOK: type: ALTERTABLE_RENAMECOL
-POSTHOOK: Input: default@depts
-POSTHOOK: Output: default@depts
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select depts.deptno, dependents.empid
-from depts
-join dependents on (depts.name = dependents.name)
-join locations on (locations.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-where depts.deptno > 11
-group by depts.deptno, dependents.empid
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@locations
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select depts.deptno, dependents.empid
-from depts
-join dependents on (depts.name = dependents.name)
-join locations on (locations.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-where depts.deptno > 11
-group by depts.deptno, dependents.empid
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@locations
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select dependents.empid, depts.deptno
-from depts
-join dependents on (depts.name = dependents.name)
-join locations on (locations.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-where depts.deptno > 10
-group by dependents.empid, depts.deptno
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select dependents.empid, depts.deptno
-from depts
-join dependents on (depts.name = dependents.name)
-join locations on (locations.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-where depts.deptno > 10
-group by dependents.empid, depts.deptno
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-5 is a root stage
- Stage-1 depends on stages: Stage-5
- Stage-2 depends on stages: Stage-1
- Stage-3 depends on stages: Stage-2
- Stage-0 depends on stages: Stage-3
-
-STAGE PLANS:
- Stage: Stage-5
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: depts
- Statistics: Num rows: 3 Data size: 279 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: ((deptno <= 11) and (deptno > 10) and name is not null) (type: boolean)
- Statistics: Num rows: 1 Data size: 93 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: deptno (type: int), name (type: varchar(256))
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 93 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 93 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col1 (type: varchar(256))
- TableScan
- alias: emps
- Statistics: Num rows: 4 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: ((deptno <= 11) and (deptno > 10)) (type: boolean)
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: deptno (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- keys:
- 0 _col0 (type: int)
- 1 _col0 (type: int)
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 93 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: dependents
- Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: name is not null (type: boolean)
- Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: empid (type: int), name (type: varchar(256))
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col1 (type: varchar(256))
- sort order: +
- Map-reduce partition columns: _col1 (type: varchar(256))
- Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col0 (type: int)
- TableScan
- alias: locations
- Statistics: Num rows: 2 Data size: 190 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: name is not null (type: boolean)
- Statistics: Num rows: 2 Data size: 190 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: name (type: varchar(256))
- outputColumnNames: _col0
- Statistics: Num rows: 2 Data size: 190 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: varchar(256))
- sort order: +
- Map-reduce partition columns: _col0 (type: varchar(256))
- Statistics: Num rows: 2 Data size: 190 Basic stats: COMPLETE Column stats: COMPLETE
- TableScan
- Reduce Output Operator
- key expressions: _col1 (type: varchar(256))
- sort order: +
- Map-reduce partition columns: _col1 (type: varchar(256))
- Statistics: Num rows: 1 Data size: 93 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col0 (type: int)
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- Inner Join 0 to 2
- keys:
- 0 _col1 (type: varchar(256))
- 1 _col0 (type: varchar(256))
- 2 _col1 (type: varchar(256))
- outputColumnNames: _col0, _col3
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- keys: _col0 (type: int), _col3 (type: int)
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: int)
- sort order: ++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: int)
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Operator Tree:
- Group By Operator
- keys: KEY._col0 (type: int), KEY._col1 (type: int)
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-3
- Map Reduce
- Map Operator Tree:
- TableScan
- Union
- Statistics: Num rows: 2 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- keys: _col0 (type: int), _col1 (type: int)
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: int)
- sort order: ++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: int)
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- TableScan
- alias: default.mv1
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: empid (type: int), deptno (type: int)
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- Union
- Statistics: Num rows: 2 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- keys: _col0 (type: int), _col1 (type: int)
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: int)
- sort order: ++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: int)
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Operator Tree:
- Group By Operator
- keys: KEY._col0 (type: int), KEY._col1 (type: int)
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select dependents.empid, depts.deptno
-from depts
-join dependents on (depts.name = dependents.name)
-join locations on (locations.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-where depts.deptno > 10
-group by dependents.empid, depts.deptno
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@locations
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select dependents.empid, depts.deptno
-from depts
-join dependents on (depts.name = dependents.name)
-join locations on (locations.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-where depts.deptno > 10
-group by dependents.empid, depts.deptno
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@locations
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select depts.deptno, dependents.empid, count(emps.salary) as s
-from depts
-join dependents on (depts.name = dependents.name)
-join locations on (locations.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-where depts.deptno > 11 and depts.deptno < 19
-group by depts.deptno, dependents.empid
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@locations
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select depts.deptno, dependents.empid, count(emps.salary) as s
-from depts
-join dependents on (depts.name = dependents.name)
-join locations on (locations.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-where depts.deptno > 11 and depts.deptno < 19
-group by depts.deptno, dependents.empid
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@locations
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select dependents.empid, count(emps.salary) + 1
-from depts
-join dependents on (depts.name = dependents.name)
-join locations on (locations.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-where depts.deptno > 10 and depts.deptno < 20
-group by dependents.empid
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select dependents.empid, count(emps.salary) + 1
-from depts
-join dependents on (depts.name = dependents.name)
-join locations on (locations.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-where depts.deptno > 10 and depts.deptno < 20
-group by dependents.empid
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-5 is a root stage
- Stage-1 depends on stages: Stage-5
- Stage-2 depends on stages: Stage-1
- Stage-3 depends on stages: Stage-2, Stage-7
- Stage-7 is a root stage
- Stage-0 depends on stages: Stage-3
-
-STAGE PLANS:
- Stage: Stage-5
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: emps
- Statistics: Num rows: 4 Data size: 32 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: (((deptno <= 11) or (deptno >= 19)) and (deptno < 20) and (deptno > 10)) (type: boolean)
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: deptno (type: int), salary (type: float)
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col1 (type: float)
- TableScan
- alias: depts
- Statistics: Num rows: 3 Data size: 279 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: (((deptno <= 11) or (deptno >= 19)) and (deptno < 20) and (deptno > 10) and name is not null) (type: boolean)
- Statistics: Num rows: 1 Data size: 93 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: deptno (type: int), name (type: varchar(256))
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 93 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 93 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col1 (type: varchar(256))
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- keys:
- 0 _col0 (type: int)
- 1 _col0 (type: int)
- outputColumnNames: _col1, _col3
- Statistics: Num rows: 1 Data size: 93 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: dependents
- Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: name is not null (type: boolean)
- Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: empid (type: int), name (type: varchar(256))
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col1 (type: varchar(256))
- sort order: +
- Map-reduce partition columns: _col1 (type: varchar(256))
- Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col0 (type: int)
- TableScan
- alias: locations
- Statistics: Num rows: 2 Data size: 190 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: name is not null (type: boolean)
- Statistics: Num rows: 2 Data size: 190 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: name (type: varchar(256))
- outputColumnNames: _col0
- Statistics: Num rows: 2 Data size: 190 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: varchar(256))
- sort order: +
- Map-reduce partition columns: _col0 (type: varchar(256))
- Statistics: Num rows: 2 Data size: 190 Basic stats: COMPLETE Column stats: COMPLETE
- TableScan
- Reduce Output Operator
- key expressions: _col3 (type: varchar(256))
- sort order: +
- Map-reduce partition columns: _col3 (type: varchar(256))
- Statistics: Num rows: 1 Data size: 93 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col1 (type: float)
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- Inner Join 0 to 2
- keys:
- 0 _col1 (type: varchar(256))
- 1 _col0 (type: varchar(256))
- 2 _col3 (type: varchar(256))
- outputColumnNames: _col0, _col4
- Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- aggregations: count(_col4)
- keys: _col0 (type: int)
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col1 (type: bigint)
- Reduce Operator Tree:
- Group By Operator
- aggregations: count(VALUE._col0)
- keys: KEY._col0 (type: int)
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-3
- Map Reduce
- Map Operator Tree:
- TableScan
- Union
- Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- aggregations: $sum0(_col1)
- keys: _col0 (type: int)
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col1 (type: bigint)
- TableScan
- Union
- Statistics: Num rows: 2 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- aggregations: $sum0(_col1)
- keys: _col0 (type: int)
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col1 (type: bigint)
- Reduce Operator Tree:
- Group By Operator
- aggregations: $sum0(VALUE._col0)
- keys: KEY._col0 (type: int)
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: _col0 (type: int), (_col1 + 1L) (type: bigint)
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-7
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.mv1
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: empid (type: int), s (type: bigint)
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- Group By Operator
- aggregations: $sum0(_col1)
- keys: _col0 (type: int)
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col1 (type: bigint)
- Reduce Operator Tree:
- Group By Operator
- aggregations: $sum0(VALUE._col0)
- keys: KEY._col0 (type: int)
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select dependents.empid, count(emps.salary) + 1
-from depts
-join dependents on (depts.name = dependents.name)
-join locations on (locations.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-where depts.deptno > 10 and depts.deptno < 20
-group by dependents.empid
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@locations
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select dependents.empid, count(emps.salary) + 1
-from depts
-join dependents on (depts.name = dependents.name)
-join locations on (locations.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-where depts.deptno > 10 and depts.deptno < 20
-group by dependents.empid
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@locations
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-PREHOOK: query: create materialized view mv1 enable rewrite as
-select depts.deptno, dependents.empid
-from depts
-join dependents on (depts.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-where depts.deptno >= 10
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Output: database:default
-PREHOOK: Output: default@mv1
-POSTHOOK: query: create materialized view mv1 enable rewrite as
-select depts.deptno, dependents.empid
-from depts
-join dependents on (depts.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-where depts.deptno >= 10
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@mv1
-PREHOOK: query: analyze table mv1 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table mv1 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: explain
-select dependents.empid
-from depts
-join dependents on (depts.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-where depts.deptno > 0
-PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select dependents.empid
-from depts
-join dependents on (depts.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-where depts.deptno > 0
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-3 depends on stages: Stage-2
- Stage-0 depends on stages: Stage-3
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: depts
- Statistics: Num rows: 3 Data size: 279 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: ((deptno < 10) and (deptno > 0) and name is not null) (type: boolean)
- Statistics: Num rows: 1 Data size: 93 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: deptno (type: int), name (type: varchar(256))
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 93 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 93 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col1 (type: varchar(256))
- TableScan
- alias: emps
- Statistics: Num rows: 4 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: ((deptno < 10) and (deptno > 0)) (type: boolean)
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: deptno (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- keys:
- 0 _col0 (type: int)
- 1 _col0 (type: int)
- outputColumnNames: _col1
- Statistics: Num rows: 1 Data size: 89 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col1 (type: varchar(256))
- sort order: +
- Map-reduce partition columns: _col1 (type: varchar(256))
- Statistics: Num rows: 1 Data size: 89 Basic stats: COMPLETE Column stats: COMPLETE
- TableScan
- alias: dependents
- Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
- Filter Operator
- predicate: name is not null (type: boolean)
- Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: empid (type: int), name (type: varchar(256))
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
- Reduce Output Operator
- key expressions: _col1 (type: varchar(256))
- sort order: +
- Map-reduce partition columns: _col1 (type: varchar(256))
- Statistics: Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: COMPLETE
- value expressions: _col0 (type: int)
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- keys:
- 0 _col1 (type: varchar(256))
- 1 _col1 (type: varchar(256))
- outputColumnNames: _col3
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: _col3 (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-3
- Map Reduce
- Map Operator Tree:
- TableScan
- Union
- Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
- TableScan
- alias: default.mv1
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- Select Operator
- expressions: empid (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
- Union
- Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- File Output Operator
- compressed: false
- Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: select dependents.empid
-from depts
-join dependents on (depts.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-where depts.deptno > 0
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dependents
-PREHOOK: Input: default@depts
-PREHOOK: Input: default@emps
-PREHOOK: Input: default@mv1
-#### A masked pattern was here ####
-POSTHOOK: query: select dependents.empid
-from depts
-join dependents on (depts.name = dependents.name)
-join emps on (emps.deptno = depts.deptno)
-where depts.deptno > 0
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dependents
-POSTHOOK: Input: default@depts
-POSTHOOK: Input: default@emps
-POSTHOOK: Input: default@mv1
-#### A masked pattern was here ####
-PREHOOK: query: drop materialized view mv1
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@mv1
-PREHOOK: Output: default@mv1
-POSTHOOK: query: drop materialized view mv1
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@mv1
-POSTHOOK: Output: default@mv1
[14/24] hive git commit: HIVE-18839: Implement incremental rebuild
for materialized views (only insert operations in source tables) (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/materialized_view_create_rewrite_3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/materialized_view_create_rewrite_3.q.out b/ql/src/test/results/clientpositive/materialized_view_create_rewrite_3.q.out
deleted file mode 100644
index 6561456..0000000
--- a/ql/src/test/results/clientpositive/materialized_view_create_rewrite_3.q.out
+++ /dev/null
@@ -1,1100 +0,0 @@
-PREHOOK: query: create table cmv_basetable (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@cmv_basetable
-POSTHOOK: query: create table cmv_basetable (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@cmv_basetable
-PREHOOK: query: insert into cmv_basetable values
- (1, 'alfred', 10.30, 2),
- (2, 'bob', 3.14, 3),
- (2, 'bonnie', 172342.2, 3),
- (3, 'calvin', 978.76, 3),
- (3, 'charlie', 9.8, 1)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@cmv_basetable
-POSTHOOK: query: insert into cmv_basetable values
- (1, 'alfred', 10.30, 2),
- (2, 'bob', 3.14, 3),
- (2, 'bonnie', 172342.2, 3),
- (3, 'calvin', 978.76, 3),
- (3, 'charlie', 9.8, 1)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@cmv_basetable
-POSTHOOK: Lineage: cmv_basetable.a SCRIPT []
-POSTHOOK: Lineage: cmv_basetable.b SCRIPT []
-POSTHOOK: Lineage: cmv_basetable.c SCRIPT []
-POSTHOOK: Lineage: cmv_basetable.d SCRIPT []
-PREHOOK: query: analyze table cmv_basetable compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Output: default@cmv_basetable
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table cmv_basetable compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Output: default@cmv_basetable
-#### A masked pattern was here ####
-PREHOOK: query: create table cmv_basetable_2 (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@cmv_basetable_2
-POSTHOOK: query: create table cmv_basetable_2 (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@cmv_basetable_2
-PREHOOK: query: insert into cmv_basetable_2 values
- (1, 'alfred', 10.30, 2),
- (3, 'calvin', 978.76, 3)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@cmv_basetable_2
-POSTHOOK: query: insert into cmv_basetable_2 values
- (1, 'alfred', 10.30, 2),
- (3, 'calvin', 978.76, 3)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@cmv_basetable_2
-POSTHOOK: Lineage: cmv_basetable_2.a SCRIPT []
-POSTHOOK: Lineage: cmv_basetable_2.b SCRIPT []
-POSTHOOK: Lineage: cmv_basetable_2.c SCRIPT []
-POSTHOOK: Lineage: cmv_basetable_2.d SCRIPT []
-PREHOOK: query: analyze table cmv_basetable_2 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable_2
-PREHOOK: Output: default@cmv_basetable_2
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table cmv_basetable_2 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable_2
-POSTHOOK: Output: default@cmv_basetable_2
-#### A masked pattern was here ####
-PREHOOK: query: EXPLAIN
-CREATE MATERIALIZED VIEW cmv_mat_view ENABLE REWRITE AS
- SELECT cmv_basetable.a, cmv_basetable_2.c
- FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
- WHERE cmv_basetable_2.c > 10.0
- GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: query: EXPLAIN
-CREATE MATERIALIZED VIEW cmv_mat_view ENABLE REWRITE AS
- SELECT cmv_basetable.a, cmv_basetable_2.c
- FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
- WHERE cmv_basetable_2.c > 10.0
- GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
- Stage-5 depends on stages: Stage-0
- Stage-3 depends on stages: Stage-5
- Stage-6 depends on stages: Stage-3
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: cmv_basetable
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: a is not null (type: boolean)
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- TableScan
- alias: cmv_basetable_2
- Statistics: Num rows: 2 Data size: 484 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: ((c > 10) and a is not null) (type: boolean)
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int), c (type: decimal(10,2))
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- value expressions: _col1 (type: decimal(10,2))
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- keys:
- 0 _col0 (type: int)
- 1 _col0 (type: int)
- outputColumnNames: _col0, _col2
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- Group By Operator
- keys: _col0 (type: int), _col2 (type: decimal(10,2))
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
- sort order: ++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- Reduce Operator Tree:
- Group By Operator
- keys: KEY._col0 (type: int), KEY._col1 (type: decimal(10,2))
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
- output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
- serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
- name: default.cmv_mat_view
-
- Stage: Stage-0
- Move Operator
- files:
- hdfs directory: true
-#### A masked pattern was here ####
-
- Stage: Stage-5
- Create View Operator:
- Create View
- columns: a int, c decimal(10,2)
- expanded text: SELECT `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
- FROM `default`.`cmv_basetable` JOIN `default`.`cmv_basetable_2` ON (`cmv_basetable`.`a` = `cmv_basetable_2`.`a`)
- WHERE `cmv_basetable_2`.`c` > 10.0
- GROUP BY `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
- name: default.cmv_mat_view
- original text: SELECT cmv_basetable.a, cmv_basetable_2.c
- FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
- WHERE cmv_basetable_2.c > 10.0
- GROUP BY cmv_basetable.a, cmv_basetable_2.c
- rewrite enabled: true
-
- Stage: Stage-3
- Stats Work
- Basic Stats Work:
-
- Stage: Stage-6
- Materialized View Work
-
-PREHOOK: query: CREATE MATERIALIZED VIEW cmv_mat_view ENABLE REWRITE AS
- SELECT cmv_basetable.a, cmv_basetable_2.c
- FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
- WHERE cmv_basetable_2.c > 10.0
- GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Input: default@cmv_basetable_2
-PREHOOK: Output: database:default
-PREHOOK: Output: default@cmv_mat_view
-POSTHOOK: query: CREATE MATERIALIZED VIEW cmv_mat_view ENABLE REWRITE AS
- SELECT cmv_basetable.a, cmv_basetable_2.c
- FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
- WHERE cmv_basetable_2.c > 10.0
- GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Input: default@cmv_basetable_2
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@cmv_mat_view
-PREHOOK: query: EXPLAIN
-SELECT cmv_basetable.a
-FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: QUERY
-POSTHOOK: query: EXPLAIN
-SELECT cmv_basetable.a
-FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.cmv_mat_view
- Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: (c > 10.1) (type: boolean)
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: SELECT cmv_basetable.a
-FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Input: default@cmv_basetable_2
-PREHOOK: Input: default@cmv_mat_view
-#### A masked pattern was here ####
-POSTHOOK: query: SELECT cmv_basetable.a
-FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Input: default@cmv_basetable_2
-POSTHOOK: Input: default@cmv_mat_view
-#### A masked pattern was here ####
-1
-3
-PREHOOK: query: insert into cmv_basetable_2 values
- (3, 'charlie', 15.8, 1)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@cmv_basetable_2
-POSTHOOK: query: insert into cmv_basetable_2 values
- (3, 'charlie', 15.8, 1)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@cmv_basetable_2
-POSTHOOK: Lineage: cmv_basetable_2.a SCRIPT []
-POSTHOOK: Lineage: cmv_basetable_2.b SCRIPT []
-POSTHOOK: Lineage: cmv_basetable_2.c SCRIPT []
-POSTHOOK: Lineage: cmv_basetable_2.d SCRIPT []
-PREHOOK: query: analyze table cmv_basetable_2 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable_2
-PREHOOK: Output: default@cmv_basetable_2
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table cmv_basetable_2 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable_2
-POSTHOOK: Output: default@cmv_basetable_2
-#### A masked pattern was here ####
-PREHOOK: query: EXPLAIN
-SELECT cmv_basetable.a
-FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: QUERY
-POSTHOOK: query: EXPLAIN
-SELECT cmv_basetable.a
-FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: cmv_basetable
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: a is not null (type: boolean)
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- TableScan
- alias: cmv_basetable_2
- Statistics: Num rows: 3 Data size: 727 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: ((c > 10.1) and a is not null) (type: boolean)
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int), c (type: decimal(10,2))
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- value expressions: _col1 (type: decimal(10,2))
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- keys:
- 0 _col0 (type: int)
- 1 _col0 (type: int)
- outputColumnNames: _col0, _col2
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- Group By Operator
- keys: _col0 (type: int), _col2 (type: decimal(10,2))
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
- sort order: ++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- Reduce Operator Tree:
- Group By Operator
- keys: KEY._col0 (type: int), KEY._col1 (type: decimal(10,2))
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: _col0 (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: SELECT cmv_basetable.a
-FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Input: default@cmv_basetable_2
-#### A masked pattern was here ####
-POSTHOOK: query: SELECT cmv_basetable.a
-FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Input: default@cmv_basetable_2
-#### A masked pattern was here ####
-1
-3
-3
-PREHOOK: query: EXPLAIN
-ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
-PREHOOK: type: QUERY
-POSTHOOK: query: EXPLAIN
-ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
- Stage-3 depends on stages: Stage-0, Stage-4
- Stage-6 depends on stages: Stage-3
- Stage-4 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: cmv_basetable
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: a is not null (type: boolean)
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- TableScan
- alias: cmv_basetable_2
- Statistics: Num rows: 3 Data size: 727 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: ((c > 10) and a is not null) (type: boolean)
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int), c (type: decimal(10,2))
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- value expressions: _col1 (type: decimal(10,2))
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- keys:
- 0 _col0 (type: int)
- 1 _col0 (type: int)
- outputColumnNames: _col0, _col2
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- Group By Operator
- keys: _col0 (type: int), _col2 (type: decimal(10,2))
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
- sort order: ++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- Reduce Operator Tree:
- Group By Operator
- keys: KEY._col0 (type: int), KEY._col1 (type: decimal(10,2))
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
- output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
- serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
- name: default.cmv_mat_view
- Select Operator
- expressions: _col0 (type: int), _col1 (type: decimal(10,2))
- outputColumnNames: a, c
- Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE
- Group By Operator
- aggregations: compute_stats(a, 'hll'), compute_stats(c, 'hll')
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 1056 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-0
- Move Operator
- tables:
- replace: true
- table:
- input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
- output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
- serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
- name: default.cmv_mat_view
-
- Stage: Stage-3
- Stats Work
- Basic Stats Work:
- Column Stats Desc:
- Columns: a, c
- Column Types: int, decimal(10,2)
- Table: default.cmv_mat_view
-
- Stage: Stage-6
- Materialized View Work
-
- Stage: Stage-4
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- sort order:
- Statistics: Num rows: 1 Data size: 1056 Basic stats: COMPLETE Column stats: NONE
- value expressions: _col0 (type: struct<columntype:string,min:bigint,max:bigint,countnulls:bigint,bitvector:binary>), _col1 (type: struct<columntype:string,min:decimal(10,2),max:decimal(10,2),countnulls:bigint,bitvector:binary>)
- Reduce Operator Tree:
- Group By Operator
- aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1)
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 1088 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 1088 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
-PREHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Input: default@cmv_basetable_2
-PREHOOK: Output: default@cmv_mat_view
-POSTHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Input: default@cmv_basetable_2
-POSTHOOK: Output: default@cmv_mat_view
-POSTHOOK: Lineage: cmv_mat_view.a SIMPLE [(cmv_basetable)cmv_basetable.FieldSchema(name:a, type:int, comment:null), ]
-POSTHOOK: Lineage: cmv_mat_view.c SIMPLE [(cmv_basetable_2)cmv_basetable_2.FieldSchema(name:c, type:decimal(10,2), comment:null), ]
-PREHOOK: query: EXPLAIN
-SELECT cmv_basetable.a
-FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: QUERY
-POSTHOOK: query: EXPLAIN
-SELECT cmv_basetable.a
-FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.cmv_mat_view
- Statistics: Num rows: 3 Data size: 348 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: (c > 10.1) (type: boolean)
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: SELECT cmv_basetable.a
-FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Input: default@cmv_basetable_2
-PREHOOK: Input: default@cmv_mat_view
-#### A masked pattern was here ####
-POSTHOOK: query: SELECT cmv_basetable.a
-FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Input: default@cmv_basetable_2
-POSTHOOK: Input: default@cmv_mat_view
-#### A masked pattern was here ####
-1
-3
-3
-PREHOOK: query: DELETE FROM cmv_basetable_2 WHERE a = 3
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable_2
-PREHOOK: Output: default@cmv_basetable_2
-POSTHOOK: query: DELETE FROM cmv_basetable_2 WHERE a = 3
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable_2
-POSTHOOK: Output: default@cmv_basetable_2
-PREHOOK: query: EXPLAIN
-SELECT cmv_basetable.a
-FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: QUERY
-POSTHOOK: query: EXPLAIN
-SELECT cmv_basetable.a
-FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: cmv_basetable
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: a is not null (type: boolean)
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- TableScan
- alias: cmv_basetable_2
- Statistics: Num rows: 42 Data size: 23560 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: ((c > 10.1) and a is not null) (type: boolean)
- Statistics: Num rows: 14 Data size: 7853 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int), c (type: decimal(10,2))
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 14 Data size: 7853 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 14 Data size: 7853 Basic stats: COMPLETE Column stats: NONE
- value expressions: _col1 (type: decimal(10,2))
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- keys:
- 0 _col0 (type: int)
- 1 _col0 (type: int)
- outputColumnNames: _col0, _col2
- Statistics: Num rows: 15 Data size: 8638 Basic stats: COMPLETE Column stats: NONE
- Group By Operator
- keys: _col0 (type: int), _col2 (type: decimal(10,2))
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 15 Data size: 8638 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
- sort order: ++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
- Statistics: Num rows: 15 Data size: 8638 Basic stats: COMPLETE Column stats: NONE
- Reduce Operator Tree:
- Group By Operator
- keys: KEY._col0 (type: int), KEY._col1 (type: decimal(10,2))
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 7 Data size: 4031 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: _col0 (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 7 Data size: 4031 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 7 Data size: 4031 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: SELECT cmv_basetable.a
-FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Input: default@cmv_basetable_2
-#### A masked pattern was here ####
-POSTHOOK: query: SELECT cmv_basetable.a
-FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Input: default@cmv_basetable_2
-#### A masked pattern was here ####
-1
-PREHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Input: default@cmv_basetable_2
-PREHOOK: Output: default@cmv_mat_view
-POSTHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Input: default@cmv_basetable_2
-POSTHOOK: Output: default@cmv_mat_view
-POSTHOOK: Lineage: cmv_mat_view.a SIMPLE [(cmv_basetable)cmv_basetable.FieldSchema(name:a, type:int, comment:null), ]
-POSTHOOK: Lineage: cmv_mat_view.c SIMPLE [(cmv_basetable_2)cmv_basetable_2.FieldSchema(name:c, type:decimal(10,2), comment:null), ]
-PREHOOK: query: EXPLAIN
-SELECT cmv_basetable.a
-FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: QUERY
-POSTHOOK: query: EXPLAIN
-SELECT cmv_basetable.a
-FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.cmv_mat_view
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: (c > 10.1) (type: boolean)
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: SELECT cmv_basetable.a
-FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Input: default@cmv_basetable_2
-PREHOOK: Input: default@cmv_mat_view
-#### A masked pattern was here ####
-POSTHOOK: query: SELECT cmv_basetable.a
-FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Input: default@cmv_basetable_2
-POSTHOOK: Input: default@cmv_mat_view
-#### A masked pattern was here ####
-1
-PREHOOK: query: create table cmv_irrelevant_table (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@cmv_irrelevant_table
-POSTHOOK: query: create table cmv_irrelevant_table (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@cmv_irrelevant_table
-PREHOOK: query: insert into cmv_irrelevant_table values
- (1, 'alfred', 10.30, 2),
- (3, 'charlie', 9.8, 1)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@cmv_irrelevant_table
-POSTHOOK: query: insert into cmv_irrelevant_table values
- (1, 'alfred', 10.30, 2),
- (3, 'charlie', 9.8, 1)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@cmv_irrelevant_table
-POSTHOOK: Lineage: cmv_irrelevant_table.a SCRIPT []
-POSTHOOK: Lineage: cmv_irrelevant_table.b SCRIPT []
-POSTHOOK: Lineage: cmv_irrelevant_table.c SCRIPT []
-POSTHOOK: Lineage: cmv_irrelevant_table.d SCRIPT []
-PREHOOK: query: analyze table cmv_irrelevant_table compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_irrelevant_table
-PREHOOK: Output: default@cmv_irrelevant_table
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table cmv_irrelevant_table compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_irrelevant_table
-POSTHOOK: Output: default@cmv_irrelevant_table
-#### A masked pattern was here ####
-PREHOOK: query: EXPLAIN
-SELECT cmv_basetable.a
-FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: QUERY
-POSTHOOK: query: EXPLAIN
-SELECT cmv_basetable.a
-FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.cmv_mat_view
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: (c > 10.1) (type: boolean)
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: SELECT cmv_basetable.a
-FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Input: default@cmv_basetable_2
-PREHOOK: Input: default@cmv_mat_view
-#### A masked pattern was here ####
-POSTHOOK: query: SELECT cmv_basetable.a
-FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Input: default@cmv_basetable_2
-POSTHOOK: Input: default@cmv_mat_view
-#### A masked pattern was here ####
-1
-PREHOOK: query: drop materialized view cmv_mat_view
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@cmv_mat_view
-PREHOOK: Output: default@cmv_mat_view
-POSTHOOK: query: drop materialized view cmv_mat_view
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@cmv_mat_view
-POSTHOOK: Output: default@cmv_mat_view
-PREHOOK: query: EXPLAIN
-SELECT cmv_basetable.a
-FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: QUERY
-POSTHOOK: query: EXPLAIN
-SELECT cmv_basetable.a
-FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: cmv_basetable
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: a is not null (type: boolean)
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- TableScan
- alias: cmv_basetable_2
- Statistics: Num rows: 42 Data size: 23560 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: ((c > 10.1) and a is not null) (type: boolean)
- Statistics: Num rows: 14 Data size: 7853 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int), c (type: decimal(10,2))
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 14 Data size: 7853 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 14 Data size: 7853 Basic stats: COMPLETE Column stats: NONE
- value expressions: _col1 (type: decimal(10,2))
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- keys:
- 0 _col0 (type: int)
- 1 _col0 (type: int)
- outputColumnNames: _col0, _col2
- Statistics: Num rows: 15 Data size: 8638 Basic stats: COMPLETE Column stats: NONE
- Group By Operator
- keys: _col0 (type: int), _col2 (type: decimal(10,2))
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 15 Data size: 8638 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
- sort order: ++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
- Statistics: Num rows: 15 Data size: 8638 Basic stats: COMPLETE Column stats: NONE
- Reduce Operator Tree:
- Group By Operator
- keys: KEY._col0 (type: int), KEY._col1 (type: decimal(10,2))
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 7 Data size: 4031 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: _col0 (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 7 Data size: 4031 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 7 Data size: 4031 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: SELECT cmv_basetable.a
-FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Input: default@cmv_basetable_2
-#### A masked pattern was here ####
-POSTHOOK: query: SELECT cmv_basetable.a
-FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Input: default@cmv_basetable_2
-#### A masked pattern was here ####
-1
http://git-wip-us.apache.org/repos/asf/hive/blob/be420098/ql/src/test/results/clientpositive/materialized_view_create_rewrite_4.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/materialized_view_create_rewrite_4.q.out b/ql/src/test/results/clientpositive/materialized_view_create_rewrite_4.q.out
deleted file mode 100644
index 48c0ecb..0000000
--- a/ql/src/test/results/clientpositive/materialized_view_create_rewrite_4.q.out
+++ /dev/null
@@ -1,886 +0,0 @@
-PREHOOK: query: create table cmv_basetable (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@cmv_basetable
-POSTHOOK: query: create table cmv_basetable (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@cmv_basetable
-PREHOOK: query: insert into cmv_basetable values
- (1, 'alfred', 10.30, 2),
- (2, 'bob', 3.14, 3),
- (2, 'bonnie', 172342.2, 3),
- (3, 'calvin', 978.76, 3),
- (3, 'charlie', 9.8, 1)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@cmv_basetable
-POSTHOOK: query: insert into cmv_basetable values
- (1, 'alfred', 10.30, 2),
- (2, 'bob', 3.14, 3),
- (2, 'bonnie', 172342.2, 3),
- (3, 'calvin', 978.76, 3),
- (3, 'charlie', 9.8, 1)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@cmv_basetable
-POSTHOOK: Lineage: cmv_basetable.a SCRIPT []
-POSTHOOK: Lineage: cmv_basetable.b SCRIPT []
-POSTHOOK: Lineage: cmv_basetable.c SCRIPT []
-POSTHOOK: Lineage: cmv_basetable.d SCRIPT []
-PREHOOK: query: analyze table cmv_basetable compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Output: default@cmv_basetable
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table cmv_basetable compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Output: default@cmv_basetable
-#### A masked pattern was here ####
-PREHOOK: query: create table cmv_basetable_2 (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@cmv_basetable_2
-POSTHOOK: query: create table cmv_basetable_2 (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@cmv_basetable_2
-PREHOOK: query: insert into cmv_basetable_2 values
- (1, 'alfred', 10.30, 2),
- (3, 'calvin', 978.76, 3)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@cmv_basetable_2
-POSTHOOK: query: insert into cmv_basetable_2 values
- (1, 'alfred', 10.30, 2),
- (3, 'calvin', 978.76, 3)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@cmv_basetable_2
-POSTHOOK: Lineage: cmv_basetable_2.a SCRIPT []
-POSTHOOK: Lineage: cmv_basetable_2.b SCRIPT []
-POSTHOOK: Lineage: cmv_basetable_2.c SCRIPT []
-POSTHOOK: Lineage: cmv_basetable_2.d SCRIPT []
-PREHOOK: query: analyze table cmv_basetable_2 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable_2
-PREHOOK: Output: default@cmv_basetable_2
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table cmv_basetable_2 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable_2
-POSTHOOK: Output: default@cmv_basetable_2
-#### A masked pattern was here ####
-PREHOOK: query: EXPLAIN
-CREATE MATERIALIZED VIEW cmv_mat_view AS
- SELECT cmv_basetable.a, cmv_basetable_2.c
- FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
- WHERE cmv_basetable_2.c > 10.0
- GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: query: EXPLAIN
-CREATE MATERIALIZED VIEW cmv_mat_view AS
- SELECT cmv_basetable.a, cmv_basetable_2.c
- FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
- WHERE cmv_basetable_2.c > 10.0
- GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
- Stage-5 depends on stages: Stage-0
- Stage-3 depends on stages: Stage-5
- Stage-6 depends on stages: Stage-3
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: cmv_basetable
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: a is not null (type: boolean)
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- TableScan
- alias: cmv_basetable_2
- Statistics: Num rows: 2 Data size: 484 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: ((c > 10) and a is not null) (type: boolean)
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int), c (type: decimal(10,2))
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- value expressions: _col1 (type: decimal(10,2))
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- keys:
- 0 _col0 (type: int)
- 1 _col0 (type: int)
- outputColumnNames: _col0, _col2
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- Group By Operator
- keys: _col0 (type: int), _col2 (type: decimal(10,2))
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
- sort order: ++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- Reduce Operator Tree:
- Group By Operator
- keys: KEY._col0 (type: int), KEY._col1 (type: decimal(10,2))
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
- output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
- serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
- name: default.cmv_mat_view
-
- Stage: Stage-0
- Move Operator
- files:
- hdfs directory: true
-#### A masked pattern was here ####
-
- Stage: Stage-5
- Create View Operator:
- Create View
- columns: a int, c decimal(10,2)
- expanded text: SELECT `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
- FROM `default`.`cmv_basetable` JOIN `default`.`cmv_basetable_2` ON (`cmv_basetable`.`a` = `cmv_basetable_2`.`a`)
- WHERE `cmv_basetable_2`.`c` > 10.0
- GROUP BY `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
- name: default.cmv_mat_view
- original text: SELECT cmv_basetable.a, cmv_basetable_2.c
- FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
- WHERE cmv_basetable_2.c > 10.0
- GROUP BY cmv_basetable.a, cmv_basetable_2.c
-
- Stage: Stage-3
- Stats Work
- Basic Stats Work:
-
- Stage: Stage-6
- Materialized View Work
-
-PREHOOK: query: CREATE MATERIALIZED VIEW cmv_mat_view AS
- SELECT cmv_basetable.a, cmv_basetable_2.c
- FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
- WHERE cmv_basetable_2.c > 10.0
- GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: CREATE_MATERIALIZED_VIEW
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Input: default@cmv_basetable_2
-PREHOOK: Output: database:default
-PREHOOK: Output: default@cmv_mat_view
-POSTHOOK: query: CREATE MATERIALIZED VIEW cmv_mat_view AS
- SELECT cmv_basetable.a, cmv_basetable_2.c
- FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
- WHERE cmv_basetable_2.c > 10.0
- GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: CREATE_MATERIALIZED_VIEW
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Input: default@cmv_basetable_2
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@cmv_mat_view
-PREHOOK: query: DESCRIBE FORMATTED cmv_mat_view
-PREHOOK: type: DESCTABLE
-PREHOOK: Input: default@cmv_mat_view
-POSTHOOK: query: DESCRIBE FORMATTED cmv_mat_view
-POSTHOOK: type: DESCTABLE
-POSTHOOK: Input: default@cmv_mat_view
-# col_name data_type comment
-a int
-c decimal(10,2)
-
-# Detailed Table Information
-Database: default
-#### A masked pattern was here ####
-Retention: 0
-#### A masked pattern was here ####
-Table Type: MATERIALIZED_VIEW
-Table Parameters:
- COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\"}
- numFiles 1
- numRows 2
- rawDataSize 232
- totalSize 325
-#### A masked pattern was here ####
-
-# Storage Information
-SerDe Library: org.apache.hadoop.hive.ql.io.orc.OrcSerde
-InputFormat: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
-OutputFormat: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
-Compressed: No
-Num Buckets: -1
-Bucket Columns: []
-Sort Columns: []
-
-# View Information
-View Original Text: SELECT cmv_basetable.a, cmv_basetable_2.c
- FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
- WHERE cmv_basetable_2.c > 10.0
- GROUP BY cmv_basetable.a, cmv_basetable_2.c
-View Expanded Text: SELECT `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
- FROM `default`.`cmv_basetable` JOIN `default`.`cmv_basetable_2` ON (`cmv_basetable`.`a` = `cmv_basetable_2`.`a`)
- WHERE `cmv_basetable_2`.`c` > 10.0
- GROUP BY `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
-View Rewrite Enabled: No
-PREHOOK: query: EXPLAIN
-SELECT cmv_basetable.a
-FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: QUERY
-POSTHOOK: query: EXPLAIN
-SELECT cmv_basetable.a
-FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: cmv_basetable
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: a is not null (type: boolean)
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- TableScan
- alias: cmv_basetable_2
- Statistics: Num rows: 2 Data size: 484 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: ((c > 10.1) and a is not null) (type: boolean)
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int), c (type: decimal(10,2))
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- value expressions: _col1 (type: decimal(10,2))
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- keys:
- 0 _col0 (type: int)
- 1 _col0 (type: int)
- outputColumnNames: _col0, _col2
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- Group By Operator
- keys: _col0 (type: int), _col2 (type: decimal(10,2))
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
- sort order: ++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- Reduce Operator Tree:
- Group By Operator
- keys: KEY._col0 (type: int), KEY._col1 (type: decimal(10,2))
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: _col0 (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: SELECT cmv_basetable.a
-FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Input: default@cmv_basetable_2
-#### A masked pattern was here ####
-POSTHOOK: query: SELECT cmv_basetable.a
-FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Input: default@cmv_basetable_2
-#### A masked pattern was here ####
-1
-3
-PREHOOK: query: insert into cmv_basetable_2 values
- (3, 'charlie', 15.8, 1)
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@cmv_basetable_2
-POSTHOOK: query: insert into cmv_basetable_2 values
- (3, 'charlie', 15.8, 1)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@cmv_basetable_2
-POSTHOOK: Lineage: cmv_basetable_2.a SCRIPT []
-POSTHOOK: Lineage: cmv_basetable_2.b SCRIPT []
-POSTHOOK: Lineage: cmv_basetable_2.c SCRIPT []
-POSTHOOK: Lineage: cmv_basetable_2.d SCRIPT []
-PREHOOK: query: analyze table cmv_basetable_2 compute statistics for columns
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable_2
-PREHOOK: Output: default@cmv_basetable_2
-#### A masked pattern was here ####
-POSTHOOK: query: analyze table cmv_basetable_2 compute statistics for columns
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable_2
-POSTHOOK: Output: default@cmv_basetable_2
-#### A masked pattern was here ####
-PREHOOK: query: EXPLAIN
-ALTER MATERIALIZED VIEW cmv_mat_view ENABLE REWRITE
-PREHOOK: type: ALTER_MATERIALIZED_VIEW_REWRITE
-POSTHOOK: query: EXPLAIN
-ALTER MATERIALIZED VIEW cmv_mat_view ENABLE REWRITE
-POSTHOOK: type: ALTER_MATERIALIZED_VIEW_REWRITE
-STAGE DEPENDENCIES:
- Stage-0 is a root stage
-
-STAGE PLANS:
- Stage: Stage-0
- Alter Materialized View Operator:
- Alter Materialized View
- name: default.cmv_mat_view
- operation: UPDATE_REWRITE_FLAG
-
-PREHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view ENABLE REWRITE
-PREHOOK: type: ALTER_MATERIALIZED_VIEW_REWRITE
-PREHOOK: Input: default@cmv_mat_view
-PREHOOK: Output: default@cmv_mat_view
-POSTHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view ENABLE REWRITE
-POSTHOOK: type: ALTER_MATERIALIZED_VIEW_REWRITE
-POSTHOOK: Input: default@cmv_mat_view
-POSTHOOK: Output: default@cmv_mat_view
-PREHOOK: query: DESCRIBE FORMATTED cmv_mat_view
-PREHOOK: type: DESCTABLE
-PREHOOK: Input: default@cmv_mat_view
-POSTHOOK: query: DESCRIBE FORMATTED cmv_mat_view
-POSTHOOK: type: DESCTABLE
-POSTHOOK: Input: default@cmv_mat_view
-# col_name data_type comment
-a int
-c decimal(10,2)
-
-# Detailed Table Information
-Database: default
-#### A masked pattern was here ####
-Retention: 0
-#### A masked pattern was here ####
-Table Type: MATERIALIZED_VIEW
-Table Parameters:
- COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\"}
- numFiles 1
- numRows 2
- rawDataSize 232
- totalSize 325
-#### A masked pattern was here ####
-
-# Storage Information
-SerDe Library: org.apache.hadoop.hive.ql.io.orc.OrcSerde
-InputFormat: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
-OutputFormat: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
-Compressed: No
-Num Buckets: -1
-Bucket Columns: []
-Sort Columns: []
-
-# View Information
-View Original Text: SELECT cmv_basetable.a, cmv_basetable_2.c
- FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
- WHERE cmv_basetable_2.c > 10.0
- GROUP BY cmv_basetable.a, cmv_basetable_2.c
-View Expanded Text: SELECT `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
- FROM `default`.`cmv_basetable` JOIN `default`.`cmv_basetable_2` ON (`cmv_basetable`.`a` = `cmv_basetable_2`.`a`)
- WHERE `cmv_basetable_2`.`c` > 10.0
- GROUP BY `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
-View Rewrite Enabled: Yes
-PREHOOK: query: EXPLAIN
-SELECT cmv_basetable.a
-FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: QUERY
-POSTHOOK: query: EXPLAIN
-SELECT cmv_basetable.a
-FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: cmv_basetable
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: a is not null (type: boolean)
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- TableScan
- alias: cmv_basetable_2
- Statistics: Num rows: 3 Data size: 727 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: ((c > 10.1) and a is not null) (type: boolean)
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int), c (type: decimal(10,2))
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- value expressions: _col1 (type: decimal(10,2))
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- keys:
- 0 _col0 (type: int)
- 1 _col0 (type: int)
- outputColumnNames: _col0, _col2
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- Group By Operator
- keys: _col0 (type: int), _col2 (type: decimal(10,2))
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
- sort order: ++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- Reduce Operator Tree:
- Group By Operator
- keys: KEY._col0 (type: int), KEY._col1 (type: decimal(10,2))
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: _col0 (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: SELECT cmv_basetable.a
-FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Input: default@cmv_basetable_2
-#### A masked pattern was here ####
-POSTHOOK: query: SELECT cmv_basetable.a
-FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Input: default@cmv_basetable_2
-#### A masked pattern was here ####
-1
-3
-3
-PREHOOK: query: EXPLAIN
-ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
-PREHOOK: type: QUERY
-POSTHOOK: query: EXPLAIN
-ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-2 depends on stages: Stage-1
- Stage-0 depends on stages: Stage-2
- Stage-3 depends on stages: Stage-0, Stage-4
- Stage-6 depends on stages: Stage-3
- Stage-4 depends on stages: Stage-2
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: cmv_basetable
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: a is not null (type: boolean)
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE
- TableScan
- alias: cmv_basetable_2
- Statistics: Num rows: 3 Data size: 727 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: ((c > 10) and a is not null) (type: boolean)
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int), c (type: decimal(10,2))
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- Reduce Output Operator
- key expressions: _col0 (type: int)
- sort order: +
- Map-reduce partition columns: _col0 (type: int)
- Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE
- value expressions: _col1 (type: decimal(10,2))
- Reduce Operator Tree:
- Join Operator
- condition map:
- Inner Join 0 to 1
- keys:
- 0 _col0 (type: int)
- 1 _col0 (type: int)
- outputColumnNames: _col0, _col2
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- Group By Operator
- keys: _col0 (type: int), _col2 (type: decimal(10,2))
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-2
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
- sort order: ++
- Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
- Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE
- Reduce Operator Tree:
- Group By Operator
- keys: KEY._col0 (type: int), KEY._col1 (type: decimal(10,2))
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
- output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
- serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
- name: default.cmv_mat_view
- Select Operator
- expressions: _col0 (type: int), _col1 (type: decimal(10,2))
- outputColumnNames: a, c
- Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE
- Group By Operator
- aggregations: compute_stats(a, 'hll'), compute_stats(c, 'hll')
- mode: hash
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 1056 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
-
- Stage: Stage-0
- Move Operator
- tables:
- replace: true
- table:
- input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
- output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
- serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
- name: default.cmv_mat_view
-
- Stage: Stage-3
- Stats Work
- Basic Stats Work:
- Column Stats Desc:
- Columns: a, c
- Column Types: int, decimal(10,2)
- Table: default.cmv_mat_view
-
- Stage: Stage-6
- Materialized View Work
-
- Stage: Stage-4
- Map Reduce
- Map Operator Tree:
- TableScan
- Reduce Output Operator
- sort order:
- Statistics: Num rows: 1 Data size: 1056 Basic stats: COMPLETE Column stats: NONE
- value expressions: _col0 (type: struct<columntype:string,min:bigint,max:bigint,countnulls:bigint,bitvector:binary>), _col1 (type: struct<columntype:string,min:decimal(10,2),max:decimal(10,2),countnulls:bigint,bitvector:binary>)
- Reduce Operator Tree:
- Group By Operator
- aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1)
- mode: mergepartial
- outputColumnNames: _col0, _col1
- Statistics: Num rows: 1 Data size: 1088 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 1088 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
-PREHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Input: default@cmv_basetable_2
-PREHOOK: Output: default@cmv_mat_view
-POSTHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Input: default@cmv_basetable_2
-POSTHOOK: Output: default@cmv_mat_view
-POSTHOOK: Lineage: cmv_mat_view.a SIMPLE [(cmv_basetable)cmv_basetable.FieldSchema(name:a, type:int, comment:null), ]
-POSTHOOK: Lineage: cmv_mat_view.c SIMPLE [(cmv_basetable_2)cmv_basetable_2.FieldSchema(name:c, type:decimal(10,2), comment:null), ]
-PREHOOK: query: DESCRIBE FORMATTED cmv_mat_view
-PREHOOK: type: DESCTABLE
-PREHOOK: Input: default@cmv_mat_view
-POSTHOOK: query: DESCRIBE FORMATTED cmv_mat_view
-POSTHOOK: type: DESCTABLE
-POSTHOOK: Input: default@cmv_mat_view
-# col_name data_type comment
-a int
-c decimal(10,2)
-
-# Detailed Table Information
-Database: default
-#### A masked pattern was here ####
-Retention: 0
-#### A masked pattern was here ####
-Table Type: MATERIALIZED_VIEW
-Table Parameters:
- COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\"a\":\"true\",\"c\":\"true\"}}
- numFiles 1
- numRows 3
- rawDataSize 348
- totalSize 332
-#### A masked pattern was here ####
-
-# Storage Information
-SerDe Library: org.apache.hadoop.hive.ql.io.orc.OrcSerde
-InputFormat: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
-OutputFormat: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
-Compressed: No
-Num Buckets: -1
-Bucket Columns: []
-Sort Columns: []
-
-# View Information
-View Original Text: SELECT cmv_basetable.a, cmv_basetable_2.c
- FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
- WHERE cmv_basetable_2.c > 10.0
- GROUP BY cmv_basetable.a, cmv_basetable_2.c
-View Expanded Text: SELECT `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
- FROM `default`.`cmv_basetable` JOIN `default`.`cmv_basetable_2` ON (`cmv_basetable`.`a` = `cmv_basetable_2`.`a`)
- WHERE `cmv_basetable_2`.`c` > 10.0
- GROUP BY `cmv_basetable`.`a`, `cmv_basetable_2`.`c`
-View Rewrite Enabled: Yes
-PREHOOK: query: EXPLAIN
-SELECT cmv_basetable.a
-FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: QUERY
-POSTHOOK: query: EXPLAIN
-SELECT cmv_basetable.a
-FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
- Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
- Stage: Stage-1
- Map Reduce
- Map Operator Tree:
- TableScan
- alias: default.cmv_mat_view
- Statistics: Num rows: 3 Data size: 348 Basic stats: COMPLETE Column stats: NONE
- Filter Operator
- predicate: (c > 10.1) (type: boolean)
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- Select Operator
- expressions: a (type: int)
- outputColumnNames: _col0
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
- Stage: Stage-0
- Fetch Operator
- limit: -1
- Processor Tree:
- ListSink
-
-PREHOOK: query: SELECT cmv_basetable.a
-FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-PREHOOK: type: QUERY
-PREHOOK: Input: default@cmv_basetable
-PREHOOK: Input: default@cmv_basetable_2
-PREHOOK: Input: default@cmv_mat_view
-#### A masked pattern was here ####
-POSTHOOK: query: SELECT cmv_basetable.a
-FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a)
-WHERE cmv_basetable_2.c > 10.10
-GROUP BY cmv_basetable.a, cmv_basetable_2.c
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@cmv_basetable
-POSTHOOK: Input: default@cmv_basetable_2
-POSTHOOK: Input: default@cmv_mat_view
-#### A masked pattern was here ####
-1
-3
-3
-PREHOOK: query: drop materialized view cmv_mat_view
-PREHOOK: type: DROP_MATERIALIZED_VIEW
-PREHOOK: Input: default@cmv_mat_view
-PREHOOK: Output: default@cmv_mat_view
-POSTHOOK: query: drop materialized view cmv_mat_view
-POSTHOOK: type: DROP_MATERIALIZED_VIEW
-POSTHOOK: Input: default@cmv_mat_view
-POSTHOOK: Output: default@cmv_mat_view