HIVE-18546: Remove unnecessary code introduced in HIVE-14498 (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/0a328f03
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/0a328f03
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/0a328f03

Branch: refs/heads/master
Commit: 0a328f030b9e0ee4d87dd7242106a0c4ed820cea
Parents: 4a33ec8
Author: Jesus Camacho Rodriguez <jcama...@apache.org>
Authored: Thu Jan 25 09:47:13 2018 -0800
Committer: Jesus Camacho Rodriguez <jcama...@apache.org>
Committed: Sun Feb 4 14:06:39 2018 -0800

----------------------------------------------------------------------
 .../hive/ql/parse/TestReplicationScenarios.java |   17 +-
 .../org/apache/hadoop/hive/ql/QTestUtil.java    |   20 +
 .../upgrade/derby/048-HIVE-14498.derby.sql      |   28 +-
 .../upgrade/derby/hive-schema-3.0.0.derby.sql   |   16 +-
 .../derby/hive-txn-schema-3.0.0.derby.sql       |    4 +-
 .../upgrade/hive/hive-schema-3.0.0.hive.sql     |   51 +-
 .../upgrade/mssql/033-HIVE-14498.mssql.sql      |   32 +-
 .../upgrade/mssql/hive-schema-3.0.0.mssql.sql   |   30 +-
 .../upgrade/mysql/048-HIVE-14498.mysql.sql      |   33 +-
 .../upgrade/mysql/hive-schema-3.0.0.mysql.sql   |   40 +-
 .../mysql/hive-txn-schema-3.0.0.mysql.sql       |    4 +-
 .../upgrade/oracle/048-HIVE-14498.oracle.sql    |   36 +-
 .../upgrade/oracle/hive-schema-3.0.0.oracle.sql |   31 +-
 .../oracle/hive-txn-schema-3.0.0.oracle.sql     |    4 +-
 .../postgres/047-HIVE-14498.postgres.sql        |   37 +-
 .../postgres/hive-schema-3.0.0.postgres.sql     |   36 +-
 .../postgres/hive-txn-schema-3.0.0.postgres.sql |    4 +-
 .../org/apache/hadoop/hive/ql/exec/DDLTask.java |   52 +-
 .../apache/hadoop/hive/ql/metadata/Table.java   |    5 +-
 .../hive/ql/parse/DDLSemanticAnalyzer.java      |    2 +-
 .../hadoop/hive/ql/parse/SemanticAnalyzer.java  |    4 +-
 .../hadoop/hive/ql/plan/CreateViewDesc.java     |    7 +-
 .../hadoop/hive/ql/plan/ImportTableDesc.java    |    3 +
 .../hadoop/hive/ql/metadata/TestHive.java       |    4 -
 .../results/clientpositive/llap/sysdb.q.out     |  110 +-
 .../gen/thrift/gen-cpp/ThriftHiveMetastore.cpp  | 3656 +++++--------
 .../gen/thrift/gen-cpp/ThriftHiveMetastore.h    |  280 -
 .../ThriftHiveMetastore_server.skeleton.cpp     |   10 -
 .../gen/thrift/gen-cpp/hive_metastore_types.cpp | 4841 +++++++++---------
 .../gen/thrift/gen-cpp/hive_metastore_types.h   |   68 +-
 .../hive/metastore/api/AbortTxnsRequest.java    |   32 +-
 .../metastore/api/AddDynamicPartitions.java     |   32 +-
 .../metastore/api/AddForeignKeyRequest.java     |   36 +-
 .../api/AddNotNullConstraintRequest.java        |   36 +-
 .../metastore/api/AddPartitionsRequest.java     |   36 +-
 .../hive/metastore/api/AddPartitionsResult.java |   36 +-
 .../metastore/api/AddPrimaryKeyRequest.java     |   36 +-
 .../api/AddUniqueConstraintRequest.java         |   36 +-
 .../hadoop/hive/metastore/api/AggrStats.java    |   36 +-
 .../hadoop/hive/metastore/api/BasicTxnInfo.java |  167 +-
 .../metastore/api/ClearFileMetadataRequest.java |   32 +-
 .../hive/metastore/api/ClientCapabilities.java  |   32 +-
 .../hive/metastore/api/ColumnStatistics.java    |   36 +-
 .../hive/metastore/api/CompactionRequest.java   |   44 +-
 .../hive/metastore/api/CreationMetadata.java    |  750 +++
 .../metastore/api/DropPartitionsResult.java     |   36 +-
 .../hive/metastore/api/EnvironmentContext.java  |   44 +-
 .../hive/metastore/api/FireEventRequest.java    |   32 +-
 .../hive/metastore/api/ForeignKeysResponse.java |   36 +-
 .../hadoop/hive/metastore/api/Function.java     |   36 +-
 .../metastore/api/GetAllFunctionsResponse.java  |   36 +-
 .../api/GetFileMetadataByExprRequest.java       |   32 +-
 .../api/GetFileMetadataByExprResult.java        |   48 +-
 .../metastore/api/GetFileMetadataRequest.java   |   32 +-
 .../metastore/api/GetFileMetadataResult.java    |   44 +-
 .../metastore/api/GetOpenTxnsInfoResponse.java  |   36 +-
 .../hive/metastore/api/GetOpenTxnsResponse.java |   32 +-
 .../hive/metastore/api/GetTablesRequest.java    |   32 +-
 .../hive/metastore/api/GetTablesResult.java     |   36 +-
 .../api/HeartbeatTxnRangeResponse.java          |   64 +-
 .../apache/hadoop/hive/metastore/api/Index.java |   44 +-
 .../metastore/api/InsertEventRequestData.java   |   64 +-
 .../hadoop/hive/metastore/api/LockRequest.java  |   36 +-
 .../hive/metastore/api/Materialization.java     |   32 +-
 .../api/NotNullConstraintsResponse.java         |   36 +-
 .../api/NotificationEventResponse.java          |   36 +-
 .../hive/metastore/api/OpenTxnsResponse.java    |   32 +-
 .../hadoop/hive/metastore/api/Partition.java    |   76 +-
 .../api/PartitionListComposingSpec.java         |   36 +-
 .../api/PartitionSpecWithSharedSD.java          |   36 +-
 .../metastore/api/PartitionValuesRequest.java   |   72 +-
 .../metastore/api/PartitionValuesResponse.java  |   36 +-
 .../hive/metastore/api/PartitionValuesRow.java  |   32 +-
 .../hive/metastore/api/PartitionWithoutSD.java  |   76 +-
 .../metastore/api/PartitionsByExprResult.java   |   36 +-
 .../metastore/api/PartitionsStatsRequest.java   |   64 +-
 .../metastore/api/PartitionsStatsResult.java    |   76 +-
 .../hive/metastore/api/PrimaryKeysResponse.java |   36 +-
 .../metastore/api/PutFileMetadataRequest.java   |   64 +-
 .../hive/metastore/api/RequestPartsSpec.java    |   68 +-
 .../hadoop/hive/metastore/api/Schema.java       |   80 +-
 .../api/SetPartitionsStatsRequest.java          |   36 +-
 .../hive/metastore/api/ShowCompactResponse.java |   36 +-
 .../hive/metastore/api/ShowLocksResponse.java   |   36 +-
 .../apache/hadoop/hive/metastore/api/Table.java |  141 +-
 .../hive/metastore/api/TableStatsRequest.java   |   32 +-
 .../hive/metastore/api/TableStatsResult.java    |   36 +-
 .../hive/metastore/api/ThriftHiveMetastore.java | 4731 +++++------------
 .../hadoop/hive/metastore/api/TxnsSnapshot.java |  537 --
 .../api/UniqueConstraintsResponse.java          |   36 +-
 .../hive/metastore/api/WMFullResourcePlan.java  |  144 +-
 .../api/WMGetAllResourcePlanResponse.java       |   36 +-
 .../WMGetTriggersForResourePlanResponse.java    |   36 +-
 .../api/WMValidateResourcePlanResponse.java     |   64 +-
 .../gen-php/metastore/ThriftHiveMetastore.php   | 1979 +++----
 .../src/gen/thrift/gen-php/metastore/Types.php  | 1728 +++----
 .../hive_metastore/ThriftHiveMetastore-remote   |   14 -
 .../hive_metastore/ThriftHiveMetastore.py       | 1390 ++---
 .../gen/thrift/gen-py/hive_metastore/ttypes.py  | 1159 ++---
 .../gen/thrift/gen-rb/hive_metastore_types.rb   |   33 +-
 .../gen/thrift/gen-rb/thrift_hive_metastore.rb  |  116 -
 .../hadoop/hive/metastore/HiveMetaStore.java    |   13 -
 .../hive/metastore/HiveMetaStoreClient.java     |   19 -
 .../hadoop/hive/metastore/IMetaStoreClient.java |   18 -
 .../MaterializationsInvalidationCache.java      |  178 +-
 .../hadoop/hive/metastore/ObjectStore.java      |  109 +-
 .../hive/metastore/model/MCreationMetadata.java |   77 +
 .../hadoop/hive/metastore/model/MTable.java     |    8 +-
 .../hadoop/hive/metastore/txn/TxnHandler.java   |   90 +-
 .../hadoop/hive/metastore/txn/TxnStore.java     |   26 +-
 .../src/main/resources/package.jdo              |   32 +-
 .../src/main/thrift/hive_metastore.thrift       |   23 +-
 .../hive/metastore/cache/TestCachedStore.java   |    1 -
 .../hive/metastore/client/TestGetTableMeta.java |    6 +-
 .../TestTablesCreateDropAlterTruncate.java      |    2 +-
 115 files changed, 10434 insertions(+), 14974 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/0a328f03/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/parse/TestReplicationScenarios.java
----------------------------------------------------------------------
diff --git 
a/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/parse/TestReplicationScenarios.java
 
b/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/parse/TestReplicationScenarios.java
index 39d077a..d1d2d1f 100644
--- 
a/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/parse/TestReplicationScenarios.java
+++ 
b/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/parse/TestReplicationScenarios.java
@@ -2239,8 +2239,11 @@ public class TestReplicationScenarios {
     run("LOAD DATA LOCAL INPATH '" + ptn_locn_2 + "' OVERWRITE INTO TABLE " + 
dbName + ".ptned PARTITION(b=2)", driver);
     verifySetup("SELECT a from " + dbName + ".ptned WHERE b=2", ptn_data_2, 
driver);
 
-    run("CREATE MATERIALIZED VIEW " + dbName + ".mat_view AS SELECT a FROM " + 
dbName + ".ptned where b=1", driver);
-    verifySetup("SELECT a from " + dbName + ".mat_view", ptn_data_1, driver);
+    // TODO: Enable back when HIVE-18387 goes in, as it fixes the issue.
+    // The problem is that alter for stats is removing the metadata 
information.
+    // HIVE-18387 rewrites that logic and will fix the issue.
+    //run("CREATE MATERIALIZED VIEW " + dbName + ".mat_view AS SELECT a FROM " 
+ dbName + ".ptned where b=1", driver);
+    //verifySetup("SELECT a from " + dbName + ".mat_view", ptn_data_1, driver);
 
     advanceDumpDir();
     run("REPL DUMP " + dbName, driver);
@@ -2251,7 +2254,7 @@ public class TestReplicationScenarios {
 
     // view is referring to old database, so no data
     verifyRun("SELECT * from " + dbName + "_dupe.virtual_view", empty, 
driverMirror);
-    verifyRun("SELECT a from " + dbName + "_dupe.mat_view", ptn_data_1, 
driverMirror);
+    //verifyRun("SELECT a from " + dbName + "_dupe.mat_view", ptn_data_1, 
driverMirror);
 
     run("CREATE VIEW " + dbName + ".virtual_view2 AS SELECT a FROM " + dbName 
+ ".ptned where b=2", driver);
     verifySetup("SELECT a from " + dbName + ".virtual_view2", ptn_data_2, 
driver);
@@ -2259,8 +2262,8 @@ public class TestReplicationScenarios {
     // Create a view with name already exist. Just to verify if failure flow 
clears the added create_table event.
     run("CREATE VIEW " + dbName + ".virtual_view2 AS SELECT a FROM " + dbName 
+ ".ptned where b=2", driver);
 
-    run("CREATE MATERIALIZED VIEW " + dbName + ".mat_view2 AS SELECT * FROM " 
+ dbName + ".unptned", driver);
-    verifySetup("SELECT * from " + dbName + ".mat_view2", unptn_data, driver);
+    //run("CREATE MATERIALIZED VIEW " + dbName + ".mat_view2 AS SELECT * FROM 
" + dbName + ".unptned", driver);
+    //verifySetup("SELECT * from " + dbName + ".mat_view2", unptn_data, 
driver);
 
     // Perform REPL-DUMP/LOAD
     advanceDumpDir();
@@ -2277,10 +2280,10 @@ public class TestReplicationScenarios {
     verifyRun("SELECT a from " + dbName + "_dupe.ptned where b=1", ptn_data_1, 
driverMirror);
     // view is referring to old database, so no data
     verifyRun("SELECT * from " + dbName + "_dupe.virtual_view", empty, 
driverMirror);
-    verifyRun("SELECT a from " + dbName + "_dupe.mat_view", ptn_data_1, 
driverMirror);
+    //verifyRun("SELECT a from " + dbName + "_dupe.mat_view", ptn_data_1, 
driverMirror);
     // view is referring to old database, so no data
     verifyRun("SELECT * from " + dbName + "_dupe.virtual_view2", empty, 
driverMirror);
-    verifyRun("SELECT * from " + dbName + "_dupe.mat_view2", unptn_data, 
driverMirror);
+    //verifyRun("SELECT * from " + dbName + "_dupe.mat_view2", unptn_data, 
driverMirror);
 
     // Test "alter table" with rename
     run("ALTER VIEW " + dbName + ".virtual_view RENAME TO " + dbName + 
".virtual_view_rename", driver);

http://git-wip-us.apache.org/repos/asf/hive/blob/0a328f03/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java
----------------------------------------------------------------------
diff --git a/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java 
b/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java
index 4432aca..2bc33bd 100644
--- a/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java
+++ b/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java
@@ -926,6 +926,26 @@ public class QTestUtil {
     conf.set("hive.metastore.filter.hook",
         "org.apache.hadoop.hive.metastore.DefaultMetaStoreFilterHookImpl");
     db = Hive.get(conf);
+
+    // First delete any MVs to avoid race conditions
+    for (String dbName : db.getAllDatabases()) {
+      SessionState.get().setCurrentDatabase(dbName);
+      for (String tblName : db.getAllTables()) {
+        Table tblObj = null;
+        try {
+          tblObj = db.getTable(tblName);
+        } catch (InvalidTableException e) {
+          LOG.warn("Trying to drop table " + e.getTableName() + ". But it does 
not exist.");
+          continue;
+        }
+        // only remove MVs first
+        if (!tblObj.isMaterializedView()) {
+          continue;
+        }
+        db.dropTable(dbName, tblName, true, true, fsType == 
FsType.encrypted_hdfs);
+      }
+    }
+
     // Delete any tables other than the source tables
     // and any databases other than the default database.
     for (String dbName : db.getAllDatabases()) {

http://git-wip-us.apache.org/repos/asf/hive/blob/0a328f03/metastore/scripts/upgrade/derby/048-HIVE-14498.derby.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/derby/048-HIVE-14498.derby.sql 
b/metastore/scripts/upgrade/derby/048-HIVE-14498.derby.sql
index 4ffd054..e28d002 100644
--- a/metastore/scripts/upgrade/derby/048-HIVE-14498.derby.sql
+++ b/metastore/scripts/upgrade/derby/048-HIVE-14498.derby.sql
@@ -1,20 +1,14 @@
 -- create mv_creation_metadata table
-CREATE TABLE "APP"."MV_CREATION_METADATA" ("TBL_ID" BIGINT NOT NULL, 
"TBL_NAME" VARCHAR(256) NOT NULL, "LAST_TRANSACTION_INFO" LONG VARCHAR NOT 
NULL);
-ALTER TABLE "APP"."MV_CREATION_METADATA" ADD CONSTRAINT 
"MV_CREATION_METADATA_FK" FOREIGN KEY ("TBL_ID") REFERENCES "APP"."TBLS" 
("TBL_ID") ON DELETE NO ACTION ON UPDATE NO ACTION;
+CREATE TABLE "APP"."MV_CREATION_METADATA" ("MV_CREATION_METADATA_ID" BIGINT 
NOT NULL, "DB_NAME" VARCHAR(128) NOT NULL, "TBL_NAME" VARCHAR(256) NOT NULL, 
"TXN_LIST" CLOB);
+CREATE TABLE "APP"."MV_TABLES_USED" ("MV_CREATION_METADATA_ID" BIGINT NOT 
NULL, "TBL_ID" BIGINT NOT NULL);
+ALTER TABLE "APP"."MV_CREATION_METADATA" ADD CONSTRAINT 
"MV_CREATION_METADATA_PK" PRIMARY KEY ("MV_CREATION_METADATA_ID");
+CREATE UNIQUE INDEX "APP"."MV_UNIQUE_TABLE" ON "APP"."MV_CREATION_METADATA" 
("TBL_NAME", "DB_NAME");
+ALTER TABLE "APP"."MV_TABLES_USED" ADD CONSTRAINT "MV_TABLES_USED_FK1" FOREIGN 
KEY ("MV_CREATION_METADATA_ID") REFERENCES "APP"."MV_CREATION_METADATA" 
("MV_CREATION_METADATA_ID") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "APP"."MV_TABLES_USED" ADD CONSTRAINT "MV_TABLES_USED_FK2" FOREIGN 
KEY ("TBL_ID") REFERENCES "APP"."TBLS" ("TBL_ID") ON DELETE NO ACTION ON UPDATE 
NO ACTION;
 
 -- modify completed_txn_components table
-CREATE TABLE "COMPLETED_TXN_COMPONENTS_NEW" (
-  "CTC_TXNID" bigint,
-  "CTC_DATABASE" varchar(128) NOT NULL,
-  "CTC_TABLE" varchar(256),
-  "CTC_PARTITION" varchar(767),
-  "CTC_ID" bigint GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1) 
NOT NULL,
-  "CTC_TIMESTAMP" timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL
-);
-CREATE INDEX "APP"."COMPLETED_TXN_COMPONENTS_IDX" ON 
"APP"."COMPLETED_TXN_COMPONENTS_NEW" ("CTC_ID");
-CREATE INDEX "APP"."COMPLETED_TXN_COMPONENTS_IDX2" ON 
"APP"."COMPLETED_TXN_COMPONENTS_NEW" ("CTC_DATABASE", "CTC_TABLE", 
"CTC_PARTITION");
-INSERT INTO "COMPLETED_TXN_COMPONENTS_NEW" ("CTC_TXNID", "CTC_DATABASE", 
"CTC_TABLE", "CTC_PARTITION")
-SELECT "CTC_TXNID", "CTC_DATABASE", "CTC_TABLE", "CTC_PARTITION" FROM 
"COMPLETED_TXN_COMPONENTS";
-RENAME TABLE "COMPLETED_TXN_COMPONENTS" TO "COMPLETED_TXN_COMPONENTS_BACKUP";
-RENAME TABLE "COMPLETED_TXN_COMPONENTS_NEW" TO "COMPLETED_TXN_COMPONENTS";
-DROP TABLE "APP"."COMPLETED_TXN_COMPONENTS_BACKUP";
+ALTER TABLE "APP"."COMPLETED_TXN_COMPONENTS" ADD "CTC_TIMESTAMP" timestamp;
+UPDATE "APP"."TBLS" SET "IS_REWRITE_ENABLED" = CURRENT_TIMESTAMP;
+ALTER TABLE "APP"."COMPLETED_TXN_COMPONENTS" ALTER COLUMN "CTC_TIMESTAMP" SET 
DEFAULT CURRENT_TIMESTAMP;
+ALTER TABLE "APP"."COMPLETED_TXN_COMPONENTS" ALTER COLUMN "CTC_TIMESTAMP" NOT 
NULL;
+CREATE INDEX "APP"."COMPLETED_TXN_COMPONENTS_IDX" ON 
"APP"."COMPLETED_TXN_COMPONENTS" ("CTC_DATABASE", "CTC_TABLE", "CTC_PARTITION");

http://git-wip-us.apache.org/repos/asf/hive/blob/0a328f03/metastore/scripts/upgrade/derby/hive-schema-3.0.0.derby.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/derby/hive-schema-3.0.0.derby.sql 
b/metastore/scripts/upgrade/derby/hive-schema-3.0.0.derby.sql
index 6a59b0d..a8f227b 100644
--- a/metastore/scripts/upgrade/derby/hive-schema-3.0.0.derby.sql
+++ b/metastore/scripts/upgrade/derby/hive-schema-3.0.0.derby.sql
@@ -62,6 +62,10 @@ CREATE TABLE "APP"."ROLES" ("ROLE_ID" BIGINT NOT NULL, 
"CREATE_TIME" INTEGER NOT
 
 CREATE TABLE "APP"."TBLS" ("TBL_ID" BIGINT NOT NULL, "CREATE_TIME" INTEGER NOT 
NULL, "DB_ID" BIGINT, "LAST_ACCESS_TIME" INTEGER NOT NULL, "OWNER" 
VARCHAR(767), "RETENTION" INTEGER NOT NULL, "SD_ID" BIGINT, "TBL_NAME" 
VARCHAR(256), "TBL_TYPE" VARCHAR(128), "VIEW_EXPANDED_TEXT" LONG VARCHAR, 
"VIEW_ORIGINAL_TEXT" LONG VARCHAR, "IS_REWRITE_ENABLED" CHAR(1) NOT NULL 
DEFAULT 'N');
 
+CREATE TABLE "APP"."MV_CREATION_METADATA" ("MV_CREATION_METADATA_ID" BIGINT 
NOT NULL, "DB_NAME" VARCHAR(128) NOT NULL, "TBL_NAME" VARCHAR(256) NOT NULL, 
"TXN_LIST" CLOB);
+
+CREATE TABLE "APP"."MV_TABLES_USED" ("MV_CREATION_METADATA_ID" BIGINT NOT 
NULL, "TBL_ID" BIGINT NOT NULL);
+
 CREATE TABLE "APP"."PARTITION_KEYS" ("TBL_ID" BIGINT NOT NULL, "PKEY_COMMENT" 
VARCHAR(4000), "PKEY_NAME" VARCHAR(128) NOT NULL, "PKEY_TYPE" VARCHAR(767) NOT 
NULL, "INTEGER_IDX" INTEGER NOT NULL);
 
 CREATE TABLE "APP"."PART_COL_PRIVS" ("PART_COLUMN_GRANT_ID" BIGINT NOT NULL, 
"COLUMN_NAME" VARCHAR(767), "CREATE_TIME" INTEGER NOT NULL, "GRANT_OPTION" 
SMALLINT NOT NULL, "GRANTOR" VARCHAR(128), "GRANTOR_TYPE" VARCHAR(128), 
"PART_ID" BIGINT, "PRINCIPAL_NAME" VARCHAR(128), "PRINCIPAL_TYPE" VARCHAR(128), 
"PART_COL_PRIV" VARCHAR(128));
@@ -120,8 +124,6 @@ CREATE TABLE "APP"."WM_POOL_TO_TRIGGER"  (POOL_ID BIGINT 
NOT NULL, TRIGGER_ID BI
 
 CREATE TABLE "APP"."WM_MAPPING" (MAPPING_ID BIGINT NOT NULL, RP_ID BIGINT NOT 
NULL, ENTITY_TYPE VARCHAR(128) NOT NULL, ENTITY_NAME VARCHAR(128) NOT NULL, 
POOL_ID BIGINT, ORDERING INTEGER);
 
-CREATE TABLE "APP"."MV_CREATION_METADATA" ("TBL_ID" BIGINT NOT NULL, 
"TBL_NAME" VARCHAR(256) NOT NULL, "LAST_TRANSACTION_INFO" LONG VARCHAR NOT 
NULL);
-
 -- ----------------------------------------------
 -- DML Statements
 -- ----------------------------------------------
@@ -178,6 +180,8 @@ CREATE UNIQUE INDEX "APP"."UNIQUE_WM_TRIGGER" ON 
"APP"."WM_TRIGGER" ("RP_ID", "N
 
 CREATE UNIQUE INDEX "APP"."UNIQUE_WM_MAPPING" ON "APP"."WM_MAPPING" ("RP_ID", 
"ENTITY_TYPE", "ENTITY_NAME");
 
+CREATE UNIQUE INDEX "APP"."MV_UNIQUE_TABLE" ON "APP"."MV_CREATION_METADATA" 
("TBL_NAME", "DB_NAME");
+
 -- ----------------------------------------------
 -- DDL Statements for keys
 -- ----------------------------------------------
@@ -219,6 +223,8 @@ ALTER TABLE "APP"."NUCLEUS_TABLES" ADD CONSTRAINT 
"NUCLEUS_TABLES_PK" PRIMARY KE
 
 ALTER TABLE "APP"."TBLS" ADD CONSTRAINT "TBLS_PK" PRIMARY KEY ("TBL_ID");
 
+ALTER TABLE "APP"."MV_CREATION_METADATA" ADD CONSTRAINT 
"MV_CREATION_METADATA_PK" PRIMARY KEY ("MV_CREATION_METADATA_ID");
+
 ALTER TABLE "APP"."SD_PARAMS" ADD CONSTRAINT "SD_PARAMS_PK" PRIMARY KEY 
("SD_ID", "PARAM_KEY");
 
 ALTER TABLE "APP"."DATABASE_PARAMS" ADD CONSTRAINT "DATABASE_PARAMS_PK" 
PRIMARY KEY ("DB_ID", "PARAM_KEY");
@@ -306,6 +312,10 @@ ALTER TABLE "APP"."TBLS" ADD CONSTRAINT "TBLS_FK2" FOREIGN 
KEY ("SD_ID") REFEREN
 
 ALTER TABLE "APP"."TBLS" ADD CONSTRAINT "TBLS_FK1" FOREIGN KEY ("DB_ID") 
REFERENCES "APP"."DBS" ("DB_ID") ON DELETE NO ACTION ON UPDATE NO ACTION;
 
+ALTER TABLE "APP"."MV_TABLES_USED" ADD CONSTRAINT "MV_TABLES_USED_FK1" FOREIGN 
KEY ("MV_CREATION_METADATA_ID") REFERENCES "APP"."MV_CREATION_METADATA" 
("MV_CREATION_METADATA_ID") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+ALTER TABLE "APP"."MV_TABLES_USED" ADD CONSTRAINT "MV_TABLES_USED_FK2" FOREIGN 
KEY ("TBL_ID") REFERENCES "APP"."TBLS" ("TBL_ID") ON DELETE NO ACTION ON UPDATE 
NO ACTION;
+
 ALTER TABLE "APP"."SD_PARAMS" ADD CONSTRAINT "SD_PARAMS_FK1" FOREIGN KEY 
("SD_ID") REFERENCES "APP"."SDS" ("SD_ID") ON DELETE NO ACTION ON UPDATE NO 
ACTION;
 
 ALTER TABLE "APP"."DATABASE_PARAMS" ADD CONSTRAINT "DATABASE_PARAMS_FK1" 
FOREIGN KEY ("DB_ID") REFERENCES "APP"."DBS" ("DB_ID") ON DELETE NO ACTION ON 
UPDATE NO ACTION;
@@ -374,8 +384,6 @@ ALTER TABLE "APP"."WM_MAPPING" ADD CONSTRAINT 
"WM_MAPPING_FK1" FOREIGN KEY ("RP_
 
 ALTER TABLE "APP"."WM_MAPPING" ADD CONSTRAINT "WM_MAPPING_FK2" FOREIGN KEY 
("POOL_ID") REFERENCES "APP"."WM_POOL" ("POOL_ID") ON DELETE NO ACTION ON 
UPDATE NO ACTION;
 
-ALTER TABLE "APP"."MV_CREATION_METADATA" ADD CONSTRAINT 
"MV_CREATION_METADATA_FK" FOREIGN KEY ("TBL_ID") REFERENCES "APP"."TBLS" 
("TBL_ID") ON DELETE NO ACTION ON UPDATE NO ACTION;
-
 -- ----------------------------------------------
 -- DDL Statements for checks
 -- ----------------------------------------------

http://git-wip-us.apache.org/repos/asf/hive/blob/0a328f03/metastore/scripts/upgrade/derby/hive-txn-schema-3.0.0.derby.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/derby/hive-txn-schema-3.0.0.derby.sql 
b/metastore/scripts/upgrade/derby/hive-txn-schema-3.0.0.derby.sql
index d72b06c..85d593f 100644
--- a/metastore/scripts/upgrade/derby/hive-txn-schema-3.0.0.derby.sql
+++ b/metastore/scripts/upgrade/derby/hive-txn-schema-3.0.0.derby.sql
@@ -43,12 +43,10 @@ CREATE TABLE COMPLETED_TXN_COMPONENTS (
   CTC_DATABASE varchar(128) NOT NULL,
   CTC_TABLE varchar(256),
   CTC_PARTITION varchar(767),
-  CTC_ID bigint GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1) 
NOT NULL,
   CTC_TIMESTAMP timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL
 );
 
-CREATE INDEX COMPLETED_TXN_COMPONENTS_IDX ON COMPLETED_TXN_COMPONENTS (CTC_ID);
-CREATE INDEX COMPLETED_TXN_COMPONENTS_IDX2 ON COMPLETED_TXN_COMPONENTS 
(CTC_DATABASE, CTC_TABLE, CTC_PARTITION);
+CREATE INDEX COMPLETED_TXN_COMPONENTS_IDX ON COMPLETED_TXN_COMPONENTS 
(CTC_DATABASE, CTC_TABLE, CTC_PARTITION);
 
 CREATE TABLE NEXT_TXN_ID (
   NTXN_NEXT bigint NOT NULL

http://git-wip-us.apache.org/repos/asf/hive/blob/0a328f03/metastore/scripts/upgrade/hive/hive-schema-3.0.0.hive.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/hive/hive-schema-3.0.0.hive.sql 
b/metastore/scripts/upgrade/hive/hive-schema-3.0.0.hive.sql
index eb4f012..d6e0c5c 100644
--- a/metastore/scripts/upgrade/hive/hive-schema-3.0.0.hive.sql
+++ b/metastore/scripts/upgrade/hive/hive-schema-3.0.0.hive.sql
@@ -656,6 +656,39 @@ TBLPROPERTIES (
 FROM TBLS"
 );
 
+CREATE TABLE IF NOT EXISTS `MV_CREATION_METADATA` (
+  `MV_CREATION_METADATA_ID` bigint,
+  `DB_NAME` string,
+  `TBL_NAME` string,
+  `TXN_LIST` string,
+  CONSTRAINT `SYS_PK_MV_CREATION_METADATA` PRIMARY KEY 
(`MV_CREATION_METADATA_ID`) DISABLE
+)
+STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler'
+TBLPROPERTIES (
+"hive.sql.database.type" = "METASTORE",
+"hive.sql.query" =
+"SELECT
+  \"MV_CREATION_METADATA_ID\",
+  \"DB_NAME\",
+  \"TBL_NAME\",
+  \"TXN_LIST\"
+FROM MV_CREATION_METADATA"
+);
+
+CREATE TABLE IF NOT EXISTS `MV_TABLES_USED` (
+  `MV_CREATION_METADATA_ID` bigint,
+  `TBL_ID` bigint
+)
+STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler'
+TBLPROPERTIES (
+"hive.sql.database.type" = "METASTORE",
+"hive.sql.query" =
+"SELECT
+  \"MV_CREATION_METADATA_ID\",
+  \"TBL_ID\"
+FROM MV_TABLES_USED"
+);
+
 CREATE TABLE IF NOT EXISTS `TBL_COL_PRIVS` (
   `TBL_COLUMN_GRANT_ID` bigint,
   `COLUMN_NAME` string,
@@ -1065,24 +1098,6 @@ LEFT OUTER JOIN WM_POOL ON WM_POOL.POOL_ID = 
WM_MAPPING.POOL_ID
 "
 );
 
-CREATE TABLE IF NOT EXISTS `MV_CREATION_METADATA` (
-  TBL_ID bigint,
-  TBL_NAME string,
-  LAST_TRANSACTION_INFO string
-)
-STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler'
-TBLPROPERTIES (
-"hive.sql.database.type" = "METASTORE",
-"hive.sql.query" =
-"SELECT
-  \"TBL_ID\",
-  \"TBL_NAME\",
-  \"LAST_TRANSACTION_INFO\"
-FROM
-  \"MV_CREATION_METADATA\""
-);
-
-
 DROP DATABASE IF EXISTS INFORMATION_SCHEMA;
 CREATE DATABASE INFORMATION_SCHEMA;
 

http://git-wip-us.apache.org/repos/asf/hive/blob/0a328f03/metastore/scripts/upgrade/mssql/033-HIVE-14498.mssql.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/mssql/033-HIVE-14498.mssql.sql 
b/metastore/scripts/upgrade/mssql/033-HIVE-14498.mssql.sql
index 3a47600..cb41b99 100644
--- a/metastore/scripts/upgrade/mssql/033-HIVE-14498.mssql.sql
+++ b/metastore/scripts/upgrade/mssql/033-HIVE-14498.mssql.sql
@@ -1,23 +1,19 @@
 CREATE TABLE MV_CREATION_METADATA
 (
-    TBL_ID bigint NOT NULL,
+    MV_CREATION_METADATA_ID bigint NOT NULL,
+    DB_NAME nvarchar(128) NOT NULL,
     TBL_NAME nvarchar(256) NOT NULL,
-    LAST_TRANSACTION_INFO text NOT NULL
+    TXN_LIST text NULL
 );
-ALTER TABLE MV_CREATION_METADATA ADD CONSTRAINT MV_CREATION_METADATA_FK 
FOREIGN KEY (TBL_ID) REFERENCES TBLS (TBL_ID);
-
-CREATE TABLE COMPLETED_TXN_COMPONENTS_NEW(
-       CTC_TXNID bigint NULL,
-       CTC_DATABASE varchar(128) NOT NULL,
-       CTC_TABLE varchar(256) NULL,
-       CTC_PARTITION varchar(767) NULL,
-       CTC_ID bigint GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 
1) NOT NULL,
-       CTC_TIMESTAMP timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL
+CREATE TABLE MV_TABLES_USED
+(
+    MV_CREATION_METADATA_ID bigint NOT NULL,
+    TBL_ID bigint NOT NULL
 );
-CREATE INDEX COMPLETED_TXN_COMPONENTS_IDX ON COMPLETED_TXN_COMPONENTS_NEW 
(CTC_ID);
-CREATE INDEX COMPLETED_TXN_COMPONENTS_IDX2 ON COMPLETED_TXN_COMPONENTS_NEW 
(CTC_DATABASE, CTC_TABLE, CTC_PARTITION);
-INSERT INTO COMPLETED_TXN_COMPONENTS_NEW (CTC_TXNID, CTC_DATABASE, CTC_TABLE, 
CTC_PARTITION)
-SELECT CTC_TXNID, CTC_DATABASE, CTC_TABLE, CTC_PARTITION FROM 
COMPLETED_TXN_COMPONENTS;
-exec sp_rename 'COMPLETED_TXN_COMPONENTS', 'COMPLETED_TXN_COMPONENTS_BACKUP';
-exec sp_rename 'COMPLETED_TXN_COMPONENTS_NEW', 'COMPLETED_TXN_COMPONENTS';
-DROP TABLE COMPLETED_TXN_COMPONENTS_BACKUP;
+ALTER TABLE MV_CREATION_METADATA ADD CONSTRAINT MV_CREATION_METADATA_PK 
PRIMARY KEY (MV_CREATION_METADATA_ID);
+CREATE INDEX MV_UNIQUE_TABLE ON MV_CREATION_METADATA (TBL_NAME,DB_NAME);
+ALTER TABLE MV_TABLES_USED ADD FOREIGN KEY(MV_CREATION_METADATA_ID) REFERENCES 
MV_CREATION_METADATA (MV_CREATION_METADATA_ID);
+ALTER TABLE MV_TABLES_USED ADD FOREIGN KEY(TBL_ID) REFERENCES TBLS (TBL_ID);
+
+ALTER TABLE COMPLETED_TXN_COMPONENTS ADD CTC_TIMESTAMP timestamp NOT NULL 
DEFAULT(CURRENT_TIMESTAMP);
+CREATE INDEX COMPLETED_TXN_COMPONENTS_IDX ON COMPLETED_TXN_COMPONENTS 
(CTC_DATABASE, CTC_TABLE, CTC_PARTITION);

http://git-wip-us.apache.org/repos/asf/hive/blob/0a328f03/metastore/scripts/upgrade/mssql/hive-schema-3.0.0.mssql.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/mssql/hive-schema-3.0.0.mssql.sql 
b/metastore/scripts/upgrade/mssql/hive-schema-3.0.0.mssql.sql
index c45bb3e..448086e 100644
--- a/metastore/scripts/upgrade/mssql/hive-schema-3.0.0.mssql.sql
+++ b/metastore/scripts/upgrade/mssql/hive-schema-3.0.0.mssql.sql
@@ -366,6 +366,27 @@ CREATE TABLE TBLS
 
 ALTER TABLE TBLS ADD CONSTRAINT TBLS_PK PRIMARY KEY (TBL_ID);
 
+-- Table MV_CREATION_METADATA for classes 
[org.apache.hadoop.hive.metastore.model.MCreationMetadata]
+CREATE TABLE MV_CREATION_METADATA
+(
+    MV_CREATION_METADATA_ID bigint NOT NULL,
+    DB_NAME nvarchar(128) NOT NULL,
+    TBL_NAME nvarchar(256) NOT NULL,
+    TXN_LIST text NULL
+);
+
+ALTER TABLE MV_CREATION_METADATA ADD CONSTRAINT MV_CREATION_METADATA_PK 
PRIMARY KEY (MV_CREATION_METADATA_ID);
+CREATE INDEX MV_UNIQUE_TABLE ON MV_CREATION_METADATA (TBL_NAME,DB_NAME);
+
+CREATE TABLE MV_TABLES_USED
+(
+    MV_CREATION_METADATA_ID bigint NOT NULL,
+    TBL_ID bigint NOT NULL
+);
+
+ALTER TABLE MV_TABLES_USED WITH CHECK ADD FOREIGN KEY(MV_CREATION_METADATA_ID) 
REFERENCES MV_CREATION_METADATA (MV_CREATION_METADATA_ID);
+ALTER TABLE MV_TABLES_USED WITH CHECK ADD FOREIGN KEY(TBL_ID) REFERENCES TBLS 
(TBL_ID);
+
 -- Table SDS for classes 
[org.apache.hadoop.hive.metastore.model.MStorageDescriptor]
 CREATE TABLE SDS
 (
@@ -652,15 +673,6 @@ CREATE TABLE WM_MAPPING
 
 ALTER TABLE WM_MAPPING ADD CONSTRAINT WM_MAPPING_PK PRIMARY KEY (MAPPING_ID);
 
-CREATE TABLE MV_CREATION_METADATA
-(
-    TBL_ID bigint NOT NULL,
-    TBL_NAME nvarchar(256) NOT NULL,
-    LAST_TRANSACTION_INFO text NOT NULL
-);
-
-ALTER TABLE MV_CREATION_METADATA ADD CONSTRAINT MV_CREATION_METADATA_FK 
FOREIGN KEY (TBL_ID) REFERENCES TBLS (TBL_ID) ;
-
 -- Constraints for table MASTER_KEYS for class(es) 
[org.apache.hadoop.hive.metastore.model.MMasterKey]
 
 -- Constraints for table IDXS for class(es) 
[org.apache.hadoop.hive.metastore.model.MIndex]

http://git-wip-us.apache.org/repos/asf/hive/blob/0a328f03/metastore/scripts/upgrade/mysql/048-HIVE-14498.mysql.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/mysql/048-HIVE-14498.mysql.sql 
b/metastore/scripts/upgrade/mysql/048-HIVE-14498.mysql.sql
index 986eaf5..1a791a6 100644
--- a/metastore/scripts/upgrade/mysql/048-HIVE-14498.mysql.sql
+++ b/metastore/scripts/upgrade/mysql/048-HIVE-14498.mysql.sql
@@ -1,22 +1,19 @@
 CREATE TABLE IF NOT EXISTS `MV_CREATION_METADATA` (
+  `MV_CREATION_METADATA_ID` bigint(20) NOT NULL,
+  `DB_NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
+  `TBL_NAME` varchar(256) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
+  `TXN_LIST` TEXT DEFAULT NULL,
+  PRIMARY KEY (`MV_CREATION_METADATA_ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+CREATE INDEX MV_UNIQUE_TABLE ON MV_CREATION_METADATA (TBL_NAME, DB_NAME) USING 
BTREE;
+CREATE TABLE IF NOT EXISTS `MV_TABLES_USED` (
+  `MV_CREATION_METADATA_ID` bigint(20) NOT NULL,
   `TBL_ID` bigint(20) NOT NULL,
-  `TBL_NAME` varchar(256) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
-  `LAST_TRANSACTION_INFO` mediumtext NOT NULL,
-  CONSTRAINT `MV_CREATION_METADATA_FK` FOREIGN KEY (`TBL_ID`) REFERENCES 
`TBLS` (`TBL_ID`)
+  CONSTRAINT `MV_TABLES_USED_FK1` FOREIGN KEY (`MV_CREATION_METADATA_ID`) 
REFERENCES `MV_CREATION_METADATA` (`MV_CREATION_METADATA_ID`),
+  CONSTRAINT `MV_TABLES_USED_FK2` FOREIGN KEY (`TBL_ID`) REFERENCES `TBLS` 
(`TBL_ID`)
 ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
-CREATE TABLE COMPLETED_TXN_COMPONENTS_NEW (
-  CTC_TXNID bigint NOT NULL,
-  CTC_DATABASE varchar(128) NOT NULL,
-  CTC_TABLE varchar(256),
-  CTC_PARTITION varchar(767),
-  CTC_ID bigint NOT NULL AUTO_INCREMENT,
-  CTC_TIMESTAMP timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,
-  PRIMARY KEY(CTC_ID)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-CREATE INDEX COMPLETED_TXN_COMPONENTS_IDX2 ON COMPLETED_TXN_COMPONENTS_NEW 
(CTC_DATABASE, CTC_TABLE, CTC_PARTITION) USING BTREE;
-INSERT INTO COMPLETED_TXN_COMPONENTS_NEW (CTC_TXNID, CTC_DATABASE, CTC_TABLE, 
CTC_PARTITION)
-SELECT CTC_TXNID, CTC_DATABASE, CTC_TABLE, CTC_PARTITION FROM 
COMPLETED_TXN_COMPONENTS;
-RENAME TABLE COMPLETED_TXN_COMPONENTS TO COMPLETED_TXN_COMPONENTS_BACKUP;
-RENAME TABLE COMPLETED_TXN_COMPONENTS_NEW TO COMPLETED_TXN_COMPONENTS;
-DROP TABLE COMPLETED_TXN_COMPONENTS_BACKUP;
+ALTER TABLE `COMPLETED_TXN_COMPONENTS` ADD `CTC_TIMESTAMP` timestamp;
+UPDATE `COMPLETED_TXN_COMPONENTS` SET `CTC_TIMESTAMP` = CURRENT_TIMESTAMP;
+ALTER TABLE `COMPLETED_TXN_COMPONENTS` MODIFY COLUMN `CTC_TIMESTAMP` timestamp 
NOT NULL DEFAULT CURRENT_TIMESTAMP;
+CREATE INDEX COMPLETED_TXN_COMPONENTS_IDX ON COMPLETED_TXN_COMPONENTS 
(CTC_DATABASE, CTC_TABLE, CTC_PARTITION) USING BTREE;

http://git-wip-us.apache.org/repos/asf/hive/blob/0a328f03/metastore/scripts/upgrade/mysql/hive-schema-3.0.0.mysql.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/mysql/hive-schema-3.0.0.mysql.sql 
b/metastore/scripts/upgrade/mysql/hive-schema-3.0.0.mysql.sql
index 01c995d..947f2e1 100644
--- a/metastore/scripts/upgrade/mysql/hive-schema-3.0.0.mysql.sql
+++ b/metastore/scripts/upgrade/mysql/hive-schema-3.0.0.mysql.sql
@@ -570,6 +570,23 @@ CREATE TABLE IF NOT EXISTS `TABLE_PARAMS` (
 /*!40101 SET character_set_client = @saved_cs_client */;
 
 --
+-- Table structure for table `MV_CREATION_METADATA`
+--
+
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE IF NOT EXISTS `MV_CREATION_METADATA` (
+  `MV_CREATION_METADATA_ID` bigint(20) NOT NULL,
+  `DB_NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
+  `TBL_NAME` varchar(256) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
+  `TXN_LIST` TEXT DEFAULT NULL,
+  PRIMARY KEY (`MV_CREATION_METADATA_ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+CREATE INDEX MV_UNIQUE_TABLE ON MV_CREATION_METADATA (TBL_NAME, DB_NAME) USING 
BTREE;
+
+--
 -- Table structure for table `TBLS`
 --
 
@@ -587,7 +604,7 @@ CREATE TABLE IF NOT EXISTS `TBLS` (
   `TBL_TYPE` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
   `VIEW_EXPANDED_TEXT` mediumtext,
   `VIEW_ORIGINAL_TEXT` mediumtext,
-  `IS_REWRITE_ENABLED` bit(1) NOT NULL DEFAULT 0,
+  `IS_REWRITE_ENABLED` bit(1) NOT NULL DEFAULT 0
   PRIMARY KEY (`TBL_ID`),
   UNIQUE KEY `UNIQUETABLE` (`TBL_NAME`,`DB_ID`),
   KEY `TBLS_N50` (`SD_ID`),
@@ -598,6 +615,20 @@ CREATE TABLE IF NOT EXISTS `TBLS` (
 /*!40101 SET character_set_client = @saved_cs_client */;
 
 --
+-- Table structure for table `MV_TABLES_USED`
+--
+
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE IF NOT EXISTS `MV_TABLES_USED` (
+  `MV_CREATION_METADATA_ID` bigint(20) NOT NULL,
+  `TBL_ID` bigint(20) NOT NULL,
+  CONSTRAINT `MV_TABLES_USED_FK1` FOREIGN KEY (`MV_CREATION_METADATA_ID`) 
REFERENCES `MV_CREATION_METADATA` (`MV_CREATION_METADATA_ID`),
+  CONSTRAINT `MV_TABLES_USED_FK2` FOREIGN KEY (`TBL_ID`) REFERENCES `TBLS` 
(`TBL_ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
 -- Table structure for table `TBL_COL_PRIVS`
 --
 
@@ -910,13 +941,6 @@ CREATE TABLE IF NOT EXISTS WM_MAPPING
     CONSTRAINT `WM_MAPPING_FK2` FOREIGN KEY (`POOL_ID`) REFERENCES `WM_POOL` 
(`POOL_ID`)
 ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
-CREATE TABLE IF NOT EXISTS `MV_CREATION_METADATA` (
-  `TBL_ID` bigint(20) NOT NULL,
-  `TBL_NAME` varchar(256) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
-  `LAST_TRANSACTION_INFO` mediumtext NOT NULL,
-  CONSTRAINT `MV_CREATION_METADATA_FK` FOREIGN KEY (`TBL_ID`) REFERENCES 
`TBLS` (`TBL_ID`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-
 -- ----------------------------
 -- Transaction and Lock Tables
 -- ----------------------------

http://git-wip-us.apache.org/repos/asf/hive/blob/0a328f03/metastore/scripts/upgrade/mysql/hive-txn-schema-3.0.0.mysql.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/mysql/hive-txn-schema-3.0.0.mysql.sql 
b/metastore/scripts/upgrade/mysql/hive-txn-schema-3.0.0.mysql.sql
index 497846f..41da503 100644
--- a/metastore/scripts/upgrade/mysql/hive-txn-schema-3.0.0.mysql.sql
+++ b/metastore/scripts/upgrade/mysql/hive-txn-schema-3.0.0.mysql.sql
@@ -45,9 +45,7 @@ CREATE TABLE COMPLETED_TXN_COMPONENTS (
   CTC_DATABASE varchar(128) NOT NULL,
   CTC_TABLE varchar(256),
   CTC_PARTITION varchar(767),
-  CTC_ID bigint NOT NULL AUTO_INCREMENT,
-  CTC_TIMESTAMP timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,
-  PRIMARY KEY(CTC_ID)
+  CTC_TIMESTAMP timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL
 ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
 CREATE INDEX COMPLETED_TXN_COMPONENTS_IDX2 ON COMPLETED_TXN_COMPONENTS 
(CTC_DATABASE, CTC_TABLE, CTC_PARTITION) USING BTREE;

http://git-wip-us.apache.org/repos/asf/hive/blob/0a328f03/metastore/scripts/upgrade/oracle/048-HIVE-14498.oracle.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/oracle/048-HIVE-14498.oracle.sql 
b/metastore/scripts/upgrade/oracle/048-HIVE-14498.oracle.sql
index 0b01e89..9c3e3cc 100644
--- a/metastore/scripts/upgrade/oracle/048-HIVE-14498.oracle.sql
+++ b/metastore/scripts/upgrade/oracle/048-HIVE-14498.oracle.sql
@@ -1,23 +1,21 @@
 CREATE TABLE MV_CREATION_METADATA
 (
-    TBL_ID BIGINT NOT NULL,
-    TBL_NAME nvarchar(256) NOT NULL,
-    LAST_TRANSACTION_INFO CLOB NOT NULL
+    MV_CREATION_METADATA_ID NUMBER NOT NULL,
+    DB_NAME VARCHAR2(128) NOT NULL,
+    TBL_NAME VARCHAR2(256) NOT NULL,
+    TXN_LIST CLOB NULL
 );
-ALTER TABLE MV_CREATION_METADATA ADD CONSTRAINT MV_CREATION_METADATA_FK 
FOREIGN KEY (TBL_ID) REFERENCES TBLS (TBL_ID);
+CREATE TABLE MV_TABLES_USED
+(
+    MV_CREATION_METADATA_ID NUMBER NOT NULL,
+    TBL_ID NUMBER NOT NULL
+);
+ALTER TABLE MV_CREATION_METADATA ADD CONSTRAINT MV_CREATION_METADATA_PK 
PRIMARY KEY (MV_CREATION_METADATA_ID);
+ALTER TABLE MV_TABLES_USED ADD CONSTRAINT MV_TABLES_USED_FK1 FOREIGN KEY 
(MV_CREATION_METADATA_ID) REFERENCES MV_CREATION_METADATA 
(MV_CREATION_METADATA_ID);
+ALTER TABLE MV_TABLES_USED ADD CONSTRAINT MV_TABLES_USED_FK2 FOREIGN KEY 
(TBL_ID) REFERENCES TBLS (TBL_ID);
 
-CREATE TABLE COMPLETED_TXN_COMPONENTS_NEW (
-  CTC_TXNID NUMBER(19),
-  CTC_DATABASE varchar(128) NOT NULL,
-  CTC_TABLE varchar(128),
-  CTC_PARTITION varchar(767),
-  CTC_ID bigint GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1) 
NOT NULL,
-  CTC_TIMESTAMP timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL
-) ROWDEPENDENCIES;
-CREATE INDEX COMPLETED_TXN_COMPONENTS_INDEX ON COMPLETED_TXN_COMPONENTS_NEW 
(CTC_ID);
-CREATE INDEX COMPLETED_TXN_COMPONENTS_INDEX2 ON COMPLETED_TXN_COMPONENTS_NEW 
(CTC_DATABASE, CTC_TABLE, CTC_PARTITION);
-INSERT INTO COMPLETED_TXN_COMPONENTS_NEW (CTC_TXNID, CTC_DATABASE, CTC_TABLE, 
CTC_PARTITION)
-SELECT CTC_TXNID, CTC_DATABASE, CTC_TABLE, CTC_PARTITION FROM 
COMPLETED_TXN_COMPONENTS;
-RENAME TABLE COMPLETED_TXN_COMPONENTS TO COMPLETED_TXN_COMPONENTS_BACKUP;
-RENAME TABLE COMPLETED_TXN_COMPONENTS_NEW TO COMPLETED_TXN_COMPONENTS;
-DROP TABLE COMPLETED_TXN_COMPONENTS_BACKUP;
+ALTER TABLE COMPLETED_TXN_COMPONENTS ADD CTC_TIMESTAMP timestamp NULL;
+UPDATE COMPLETED_TXN_COMPONENTS SET CTC_TIMESTAMP = CURRENT_TIMESTAMP;
+ALTER TABLE COMPLETED_TXN_COMPONENTS MODIFY(CTC_TIMESTAMP DEFAULT 
CURRENT_TIMESTAMP);
+ALTER TABLE COMPLETED_TXN_COMPONENTS MODIFY(CTC_TIMESTAMP NOT NULL);
+CREATE INDEX COMPLETED_TXN_COMPONENTS_INDEX ON COMPLETED_TXN_COMPONENTS 
(CTC_DATABASE, CTC_TABLE, CTC_PARTITION);

http://git-wip-us.apache.org/repos/asf/hive/blob/0a328f03/metastore/scripts/upgrade/oracle/hive-schema-3.0.0.oracle.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/oracle/hive-schema-3.0.0.oracle.sql 
b/metastore/scripts/upgrade/oracle/hive-schema-3.0.0.oracle.sql
index e1aee6f..481d413 100644
--- a/metastore/scripts/upgrade/oracle/hive-schema-3.0.0.oracle.sql
+++ b/metastore/scripts/upgrade/oracle/hive-schema-3.0.0.oracle.sql
@@ -381,6 +381,24 @@ CREATE TABLE TBLS
 
 ALTER TABLE TBLS ADD CONSTRAINT TBLS_PK PRIMARY KEY (TBL_ID);
 
+-- Table MV_CREATION_METADATA for classes 
[org.apache.hadoop.hive.metastore.model.MCreationMetadata]
+CREATE TABLE MV_CREATION_METADATA
+(
+    MV_CREATION_METADATA_ID NUMBER NOT NULL,
+    DB_NAME VARCHAR2(128) NOT NULL,
+    TBL_NAME VARCHAR2(256) NOT NULL,
+    TXN_LIST CLOB NULL
+);
+
+ALTER TABLE MV_CREATION_METADATA ADD CONSTRAINT MV_CREATION_METADATA_PK 
PRIMARY KEY (MV_CREATION_METADATA_ID);
+
+-- Table MV_CREATION_METADATA for classes 
[org.apache.hadoop.hive.metastore.model.MCreationMetadata]
+CREATE TABLE MV_TABLES_USED
+(
+    MV_CREATION_METADATA_ID NUMBER NOT NULL,
+    TBL_ID NUMBER NOT NULL
+);
+
 -- Table PARTITION_EVENTS for classes 
[org.apache.hadoop.hive.metastore.model.MPartitionEvent]
 CREATE TABLE PARTITION_EVENTS
 (
@@ -633,15 +651,6 @@ CREATE TABLE WM_MAPPING
 
 ALTER TABLE WM_MAPPING ADD CONSTRAINT WM_MAPPING_PK PRIMARY KEY (MAPPING_ID);
 
-CREATE TABLE MV_CREATION_METADATA
-(
-    TBL_ID BIGINT NOT NULL,
-    TBL_NAME nvarchar(256) NOT NULL,
-    LAST_TRANSACTION_INFO CLOB NOT NULL
-);
-
-ALTER TABLE MV_CREATION_METADATA ADD CONSTRAINT MV_CREATION_METADATA_FK 
FOREIGN KEY (TBL_ID) REFERENCES TBLS (TBL_ID);
-
 -- Constraints for table PART_COL_PRIVS for class(es) 
[org.apache.hadoop.hive.metastore.model.MPartitionColumnPrivilege]
 ALTER TABLE PART_COL_PRIVS ADD CONSTRAINT PART_COL_PRIVS_FK1 FOREIGN KEY 
(PART_ID) REFERENCES PARTITIONS (PART_ID) INITIALLY DEFERRED ;
 
@@ -901,6 +910,10 @@ ALTER TABLE WM_MAPPING ADD CONSTRAINT WM_MAPPING_FK1 
FOREIGN KEY (RP_ID) REFEREN
 
 ALTER TABLE WM_MAPPING ADD CONSTRAINT WM_MAPPING_FK2 FOREIGN KEY (POOL_ID) 
REFERENCES WM_POOL (POOL_ID);
 
+ALTER TABLE MV_TABLES_USED ADD CONSTRAINT MV_TABLES_USED_FK1 FOREIGN KEY 
(MV_CREATION_METADATA_ID) REFERENCES MV_CREATION_METADATA 
(MV_CREATION_METADATA_ID);
+
+ALTER TABLE MV_TABLES_USED ADD CONSTRAINT MV_TABLES_USED_FK2 FOREIGN KEY 
(TBL_ID) REFERENCES TBLS (TBL_ID);
+
 ------------------------------
 -- Transaction and lock tables
 ------------------------------

http://git-wip-us.apache.org/repos/asf/hive/blob/0a328f03/metastore/scripts/upgrade/oracle/hive-txn-schema-3.0.0.oracle.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/oracle/hive-txn-schema-3.0.0.oracle.sql 
b/metastore/scripts/upgrade/oracle/hive-txn-schema-3.0.0.oracle.sql
index 5411bc4..5fcf037 100644
--- a/metastore/scripts/upgrade/oracle/hive-txn-schema-3.0.0.oracle.sql
+++ b/metastore/scripts/upgrade/oracle/hive-txn-schema-3.0.0.oracle.sql
@@ -44,12 +44,10 @@ CREATE TABLE COMPLETED_TXN_COMPONENTS (
   CTC_DATABASE varchar(128) NOT NULL,
   CTC_TABLE varchar(128),
   CTC_PARTITION varchar(767),
-  CTC_ID bigint GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1) 
NOT NULL,
   CTC_TIMESTAMP timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL
 ) ROWDEPENDENCIES;
 
-CREATE INDEX COMPLETED_TXN_COMPONENTS_INDEX ON COMPLETED_TXN_COMPONENTS 
(CTC_ID);
-CREATE INDEX COMPLETED_TXN_COMPONENTS_INDEX2 ON COMPLETED_TXN_COMPONENTS 
(CTC_DATABASE, CTC_TABLE, CTC_PARTITION);
+CREATE INDEX COMPLETED_TXN_COMPONENTS_INDEX ON COMPLETED_TXN_COMPONENTS 
(CTC_DATABASE, CTC_TABLE, CTC_PARTITION);
 
 CREATE TABLE NEXT_TXN_ID (
   NTXN_NEXT NUMBER(19) NOT NULL

http://git-wip-us.apache.org/repos/asf/hive/blob/0a328f03/metastore/scripts/upgrade/postgres/047-HIVE-14498.postgres.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/postgres/047-HIVE-14498.postgres.sql 
b/metastore/scripts/upgrade/postgres/047-HIVE-14498.postgres.sql
index 8d4de88..8d1c5b2 100644
--- a/metastore/scripts/upgrade/postgres/047-HIVE-14498.postgres.sql
+++ b/metastore/scripts/upgrade/postgres/047-HIVE-14498.postgres.sql
@@ -1,23 +1,24 @@
 CREATE TABLE "MV_CREATION_METADATA" (
-    "TBL_ID" BIGINT NOT NULL,
+    "MV_CREATION_METADATA_ID" bigint NOT NULL,
+    "DB_NAME" character varying(128) NOT NULL,
     "TBL_NAME" character varying(256) NOT NULL,
-    "LAST_TRANSACTION_INFO" TEXT NOT NULL
+    "TXN_LIST" text
+);
+CREATE TABLE "MV_TABLES_USED" (
+    "MV_CREATION_METADATA_ID" bigint NOT NULL,
+    "TBL_ID" bigint NOT NULL
 );
 ALTER TABLE ONLY "MV_CREATION_METADATA"
-    ADD CONSTRAINT "MV_CREATION_METADATA_FK" FOREIGN KEY ("TBL_ID") REFERENCES 
"TBLS"("TBL_ID") DEFERRABLE;
+    ADD CONSTRAINT "MV_CREATION_METADATA_PK" PRIMARY KEY 
("MV_CREATION_METADATA_ID");
+CREATE INDEX "MV_UNIQUE_TABLE"
+    ON "MV_CREATION_METADATA" USING btree ("TBL_NAME", "DB_NAME");
+ALTER TABLE ONLY "MV_TABLES_USED"
+    ADD CONSTRAINT "MV_TABLES_USED_FK1" FOREIGN KEY 
("MV_CREATION_METADATA_ID") REFERENCES "MV_CREATION_METADATA" 
("MV_CREATION_METADATA_ID") DEFERRABLE;
+ALTER TABLE ONLY "MV_TABLES_USED"
+    ADD CONSTRAINT "MV_TABLES_USED_FK2" FOREIGN KEY ("TBL_ID") REFERENCES 
"TBLS" ("TBL_ID") DEFERRABLE;
 
-CREATE TABLE COMPLETED_TXN_COMPONENTS_NEW (
-  CTC_TXNID bigint,
-  CTC_DATABASE varchar(128) NOT NULL,
-  CTC_TABLE varchar(256),
-  CTC_PARTITION varchar(767),
-  CTC_ID serial UNIQUE,
-  CTC_TIMESTAMP timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL
-);
-CREATE INDEX COMPLETED_TXN_COMPONENTS_INDEX ON COMPLETED_TXN_COMPONENTS_NEW 
USING btree (CTC_ID);
-CREATE INDEX COMPLETED_TXN_COMPONENTS_INDEX2 ON COMPLETED_TXN_COMPONENTS_NEW 
USING btree (CTC_DATABASE, CTC_TABLE, CTC_PARTITION);
-INSERT INTO COMPLETED_TXN_COMPONENTS_NEW (CTC_TXNID, CTC_DATABASE, CTC_TABLE, 
CTC_PARTITION)
-SELECT CTC_TXNID, CTC_DATABASE, CTC_TABLE, CTC_PARTITION FROM 
COMPLETED_TXN_COMPONENTS;
-ALTER TABLE COMPLETED_TXN_COMPONENTS RENAME TO COMPLETED_TXN_COMPONENTS_BACKUP;
-ALTER TABLE COMPLETED_TXN_COMPONENTS_NEW RENAME TO COMPLETED_TXN_COMPONENTS;
-DROP TABLE COMPLETED_TXN_COMPONENTS_BACKUP;
+ALTER TABLE COMPLETED_TXN_COMPONENTS ADD COLUMN CTC_TIMESTAMP timestamp NULL;
+UPDATE COMPLETED_TXN_COMPONENTS SET CTC_TIMESTAMP = CURRENT_TIMESTAMP;
+ALTER TABLE COMPLETED_TXN_COMPONENTS ALTER COLUMN CTC_TIMESTAMP SET NOT NULL;
+ALTER TABLE COMPLETED_TXN_COMPONENTS ALTER COLUMN CTC_TIMESTAMP SET DEFAULT 
CURRENT_TIMESTAMP;
+CREATE INDEX COMPLETED_TXN_COMPONENTS_INDEX ON COMPLETED_TXN_COMPONENTS USING 
btree (CTC_DATABASE, CTC_TABLE, CTC_PARTITION);

http://git-wip-us.apache.org/repos/asf/hive/blob/0a328f03/metastore/scripts/upgrade/postgres/hive-schema-3.0.0.postgres.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/postgres/hive-schema-3.0.0.postgres.sql 
b/metastore/scripts/upgrade/postgres/hive-schema-3.0.0.postgres.sql
index 28cb016..af71ed3 100644
--- a/metastore/scripts/upgrade/postgres/hive-schema-3.0.0.postgres.sql
+++ b/metastore/scripts/upgrade/postgres/hive-schema-3.0.0.postgres.sql
@@ -376,6 +376,25 @@ CREATE TABLE "TBLS" (
     "IS_REWRITE_ENABLED" boolean NOT NULL DEFAULT false
 );
 
+--
+-- Name: MV_CREATION_METADATA; Type: TABLE; Schema: public; Owner: hiveuser; 
Tablespace:
+--
+
+CREATE TABLE "MV_CREATION_METADATA" (
+    "MV_CREATION_METADATA_ID" bigint NOT NULL,
+    "DB_NAME" character varying(128) NOT NULL,
+    "TBL_NAME" character varying(256) NOT NULL,
+    "TXN_LIST" text
+);
+
+--
+-- Name: MV_TABLES_USED; Type: TABLE; Schema: public; Owner: hiveuser; 
Tablespace:
+--
+
+CREATE TABLE "MV_TABLES_USED" (
+    "MV_CREATION_METADATA_ID" bigint NOT NULL,
+    "TBL_ID" bigint NOT NULL
+);
 
 --
 -- Name: TBL_COL_PRIVS; Type: TABLE; Schema: public; Owner: hiveuser; 
Tablespace:
@@ -659,12 +678,6 @@ CREATE TABLE "WM_MAPPING" (
     "ORDERING" integer
 );
 
-CREATE TABLE "MV_CREATION_METADATA" (
-    "TBL_ID" BIGINT NOT NULL,
-    "TBL_NAME" character varying(256) NOT NULL,
-    "LAST_TRANSACTION_INFO" TEXT NOT NULL
-);
-
 --
 -- Name: BUCKETING_COLS_pkey; Type: CONSTRAINT; Schema: public; Owner: 
hiveuser; Tablespace:
 --
@@ -1573,7 +1586,16 @@ ALTER TABLE ONLY "WM_MAPPING"
     ADD CONSTRAINT "WM_MAPPING_FK2" FOREIGN KEY ("POOL_ID") REFERENCES 
"WM_POOL" ("POOL_ID") DEFERRABLE;
 
 ALTER TABLE ONLY "MV_CREATION_METADATA"
-    ADD CONSTRAINT "MV_CREATION_METADATA_FK" FOREIGN KEY ("TBL_ID") REFERENCES 
"TBLS"("TBL_ID") DEFERRABLE;
+    ADD CONSTRAINT "MV_CREATION_METADATA_PK" PRIMARY KEY 
("MV_CREATION_METADATA_ID");
+
+CREATE INDEX "MV_UNIQUE_TABLE"
+    ON "MV_CREATION_METADATA" USING btree ("TBL_NAME", "DB_NAME");
+
+ALTER TABLE ONLY "MV_TABLES_USED"
+    ADD CONSTRAINT "MV_TABLES_USED_FK1" FOREIGN KEY 
("MV_CREATION_METADATA_ID") REFERENCES "MV_CREATION_METADATA" 
("MV_CREATION_METADATA_ID") DEFERRABLE;
+
+ALTER TABLE ONLY "MV_TABLES_USED"
+    ADD CONSTRAINT "MV_TABLES_USED_FK2" FOREIGN KEY ("TBL_ID") REFERENCES 
"TBLS" ("TBL_ID") DEFERRABLE;
 
 --
 -- Name: public; Type: ACL; Schema: -; Owner: hiveuser

http://git-wip-us.apache.org/repos/asf/hive/blob/0a328f03/metastore/scripts/upgrade/postgres/hive-txn-schema-3.0.0.postgres.sql
----------------------------------------------------------------------
diff --git 
a/metastore/scripts/upgrade/postgres/hive-txn-schema-3.0.0.postgres.sql 
b/metastore/scripts/upgrade/postgres/hive-txn-schema-3.0.0.postgres.sql
index a81d6ee..3eb0730 100644
--- a/metastore/scripts/upgrade/postgres/hive-txn-schema-3.0.0.postgres.sql
+++ b/metastore/scripts/upgrade/postgres/hive-txn-schema-3.0.0.postgres.sql
@@ -44,12 +44,10 @@ CREATE TABLE COMPLETED_TXN_COMPONENTS (
   CTC_DATABASE varchar(128) NOT NULL,
   CTC_TABLE varchar(256),
   CTC_PARTITION varchar(767),
-  CTC_ID serial UNIQUE,
   CTC_TIMESTAMP timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL
 );
 
-CREATE INDEX COMPLETED_TXN_COMPONENTS_INDEX ON COMPLETED_TXN_COMPONENTS USING 
btree (CTC_ID);
-CREATE INDEX COMPLETED_TXN_COMPONENTS_INDEX2 ON COMPLETED_TXN_COMPONENTS USING 
btree (CTC_DATABASE, CTC_TABLE, CTC_PARTITION);
+CREATE INDEX COMPLETED_TXN_COMPONENTS_INDEX ON COMPLETED_TXN_COMPONENTS USING 
btree (CTC_DATABASE, CTC_TABLE, CTC_PARTITION);
 
 CREATE TABLE NEXT_TXN_ID (
   NTXN_NEXT bigint NOT NULL

http://git-wip-us.apache.org/repos/asf/hive/blob/0a328f03/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 51ef390..d3aa571 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
@@ -50,6 +50,7 @@ import java.util.TreeMap;
 import java.util.TreeSet;
 import java.util.concurrent.ExecutionException;
 
+import com.google.common.collect.ImmutableSet;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.hadoop.fs.FSDataOutputStream;
@@ -79,6 +80,7 @@ import org.apache.hadoop.hive.metastore.api.BasicTxnInfo;
 import org.apache.hadoop.hive.metastore.api.ColumnStatisticsData;
 import org.apache.hadoop.hive.metastore.api.ColumnStatisticsObj;
 import org.apache.hadoop.hive.metastore.api.CompactionResponse;
+import org.apache.hadoop.hive.metastore.api.CreationMetadata;
 import org.apache.hadoop.hive.metastore.api.Database;
 import org.apache.hadoop.hive.metastore.api.EnvironmentContext;
 import org.apache.hadoop.hive.metastore.api.FieldSchema;
@@ -5121,10 +5123,11 @@ public class DDLTask extends Task<DDLWork> implements 
Serializable {
 
       if (crtView.isMaterialized()) {
         // We need to update the status of the creation signature
-        String txnString = conf.get(ValidTxnList.VALID_TXNS_KEY);
-        oldview.getTTable().setCreationMetadata(
-            generateCreationMetadata(db, crtView.getTablesUsed(),
-                txnString == null ? null : new ValidReadTxnList(txnString)));
+        CreationMetadata cm =
+            new CreationMetadata(oldview.getDbName(), oldview.getTableName(),
+                ImmutableSet.copyOf(crtView.getTablesUsed()));
+        cm.setValidTxnList(conf.get(ValidTxnList.VALID_TXNS_KEY));
+        oldview.getTTable().setCreationMetadata(cm);
         db.alterTable(crtView.getViewName(), oldview, null);
         // This is a replace/rebuild, so we need an exclusive lock
         addIfAbsentByName(new WriteEntity(oldview, 
WriteEntity.WriteType.DDL_EXCLUSIVE));
@@ -5156,10 +5159,11 @@ public class DDLTask extends Task<DDLWork> implements 
Serializable {
       Table tbl = crtView.toTable(conf);
       // We set the signature for the view if it is a materialized view
       if (tbl.isMaterializedView()) {
-        String txnString = conf.get(ValidTxnList.VALID_TXNS_KEY);
-        tbl.getTTable().setCreationMetadata(
-            generateCreationMetadata(db, crtView.getTablesUsed(),
-                txnString == null ? null : new ValidReadTxnList(txnString)));
+        CreationMetadata cm =
+            new CreationMetadata(tbl.getDbName(), tbl.getTableName(),
+                ImmutableSet.copyOf(crtView.getTablesUsed()));
+        cm.setValidTxnList(conf.get(ValidTxnList.VALID_TXNS_KEY));
+        tbl.getTTable().setCreationMetadata(cm);
       }
       db.createTable(tbl, crtView.getIfNotExists());
       addIfAbsentByName(new WriteEntity(tbl, 
WriteEntity.WriteType.DDL_NO_LOCK));
@@ -5171,38 +5175,6 @@ public class DDLTask extends Task<DDLWork> implements 
Serializable {
     return 0;
   }
 
-  private Map<String, BasicTxnInfo> generateCreationMetadata(
-      Hive db, List<String> tablesUsed, ValidReadTxnList txnList)
-          throws SemanticException {
-    Map<String, BasicTxnInfo> signature = new HashMap<>();
-    try {
-      if (!CollectionUtils.isEmpty(tablesUsed)) {
-        if (txnList == null) {
-          for (String fullyQualifiedName : tablesUsed) {
-            signature.put(fullyQualifiedName, new BasicTxnInfo(true));
-          }
-        } else {
-          List<String> dbNames = new ArrayList<>();
-          List<String> tableNames = new ArrayList<>();
-          for (String fullyQualifiedName : tablesUsed) {
-            // Add to creation metadata
-            String[] names =  fullyQualifiedName.split("\\.");
-            dbNames.add(names[0]);
-            tableNames.add(names[1]);
-          }
-          List<BasicTxnInfo> txnInfos =
-              db.getMSC().getLastCompletedTransactionForTables(dbNames, 
tableNames, txnList);
-          for (int i = 0; i < tablesUsed.size(); i++) {
-            signature.put(tablesUsed.get(i), txnInfos.get(i));
-          }
-        }
-      }
-    } catch (Exception ex) {
-      throw new SemanticException(ex);
-    }
-    return signature;
-  }
-
   private int truncateTable(Hive db, TruncateTableDesc truncateTableDesc) 
throws HiveException {
 
     if (truncateTableDesc.getColumnIndexes() != null) {

http://git-wip-us.apache.org/repos/asf/hive/blob/0a328f03/ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java 
b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java
index 9b0ffe0..632a213 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java
@@ -43,6 +43,7 @@ import org.apache.hadoop.hive.metastore.HiveMetaStoreUtils;
 import org.apache.hadoop.hive.metastore.TableType;
 import org.apache.hadoop.hive.metastore.Warehouse;
 import org.apache.hadoop.hive.metastore.api.BasicTxnInfo;
+import org.apache.hadoop.hive.metastore.api.CreationMetadata;
 import org.apache.hadoop.hive.metastore.api.FieldSchema;
 import org.apache.hadoop.hive.metastore.api.MetaException;
 import org.apache.hadoop.hive.metastore.api.Order;
@@ -846,7 +847,7 @@ public class Table implements Serializable {
   /**
    * @return the creation metadata (only for materialized views)
    */
-  public Map<String, BasicTxnInfo> getCreationMetadata() {
+  public CreationMetadata getCreationMetadata() {
     return tTable.getCreationMetadata();
   }
 
@@ -854,7 +855,7 @@ public class Table implements Serializable {
    * @param creationMetadata
    *          the creation metadata (only for materialized views)
    */
-  public void setCreationMetadata(Map<String, BasicTxnInfo> creationMetadata) {
+  public void setCreationMetadata(CreationMetadata creationMetadata) {
     tTable.setCreationMetadata(creationMetadata);
   }
 

http://git-wip-us.apache.org/repos/asf/hive/blob/0a328f03/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
----------------------------------------------------------------------
diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java 
b/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
index d159e4b..3eb869d 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
@@ -4350,7 +4350,7 @@ public class DDLSemanticAnalyzer extends 
BaseSemanticAnalyzer {
     // One last test: if we are enabling the rewrite, we need to check that 
query
     // only uses transactional (MM and ACID) tables
     if (enableFlag) {
-      for (String tableName : 
materializedViewTable.getCreationMetadata().keySet()) {
+      for (String tableName : 
materializedViewTable.getCreationMetadata().getTablesUsed()) {
         Table table = getTable(tableName, true);
         if (!AcidUtils.isAcidTable(table)) {
           throw new SemanticException("Automatic rewriting for materialized 
view cannot "

http://git-wip-us.apache.org/repos/asf/hive/blob/0a328f03/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 c2e2499..b67a03f 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
@@ -11726,8 +11726,8 @@ public class SemanticAnalyzer extends 
BaseSemanticAnalyzer {
     createVwDesc.setViewExpandedText(expandedText);
   }
 
-  private List<String> getTablesUsed(ParseContext parseCtx) throws 
SemanticException {
-    List<String> tablesUsed = new ArrayList<>();
+  private Set<String> getTablesUsed(ParseContext parseCtx) throws 
SemanticException {
+    Set<String> tablesUsed = new HashSet<>();
     for (TableScanOperator topOp : parseCtx.getTopOps().values()) {
       Table table = topOp.getConf().getTableMetadata();
       if (!table.isMaterializedTable() && !table.isView()) {

http://git-wip-us.apache.org/repos/asf/hive/blob/0a328f03/ql/src/java/org/apache/hadoop/hive/ql/plan/CreateViewDesc.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/plan/CreateViewDesc.java 
b/ql/src/java/org/apache/hadoop/hive/ql/plan/CreateViewDesc.java
index 97baf25..f0f7b18 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/plan/CreateViewDesc.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/plan/CreateViewDesc.java
@@ -21,6 +21,7 @@ package org.apache.hadoop.hive.ql.plan;
 import java.io.Serializable;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hive.conf.HiveConf;
@@ -65,7 +66,7 @@ public class CreateViewDesc extends DDLDesc implements 
Serializable {
   private String serde; // only used for materialized views
   private String storageHandler; // only used for materialized views
   private Map<String, String> serdeProps; // only used for materialized views
-  private List<String> tablesUsed;  // only used for materialized views
+  private Set<String> tablesUsed;  // only used for materialized views
   private ReplicationSpec replicationSpec = null;
 
   /**
@@ -245,11 +246,11 @@ public class CreateViewDesc extends DDLDesc implements 
Serializable {
     this.ifNotExists = ifNotExists;
   }
 
-  public List<String> getTablesUsed() {
+  public Set<String> getTablesUsed() {
     return tablesUsed;
   }
 
-  public void setTablesUsed(List<String> tablesUsed) {
+  public void setTablesUsed(Set<String> tablesUsed) {
     this.tablesUsed = tablesUsed;
   }
 

http://git-wip-us.apache.org/repos/asf/hive/blob/0a328f03/ql/src/java/org/apache/hadoop/hive/ql/plan/ImportTableDesc.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/plan/ImportTableDesc.java 
b/ql/src/java/org/apache/hadoop/hive/ql/plan/ImportTableDesc.java
index 3535fa4..bdfb632 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/plan/ImportTableDesc.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/plan/ImportTableDesc.java
@@ -23,6 +23,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 
+import com.google.common.collect.ImmutableSet;
 import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.hive.metastore.TableType;
 import org.apache.hadoop.hive.metastore.api.FieldSchema;
@@ -100,6 +101,8 @@ public class ImportTableDesc {
                   table.getSd().getSerdeInfo().getSerializationLib(),
                   null, // storagehandler passed as table params
                   table.getSd().getSerdeInfo().getParameters());
+          this.createViewDesc.setTablesUsed(table.getCreationMetadata() != 
null ?
+              table.getCreationMetadata().getTablesUsed() : ImmutableSet.of());
         } else {
           this.createViewDesc = new CreateViewDesc(dbDotView,
                   table.getAllCols(),

http://git-wip-us.apache.org/repos/asf/hive/blob/0a328f03/ql/src/test/org/apache/hadoop/hive/ql/metadata/TestHive.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/metadata/TestHive.java 
b/ql/src/test/org/apache/hadoop/hive/ql/metadata/TestHive.java
index aa95d2f..b5b478f 100755
--- a/ql/src/test/org/apache/hadoop/hive/ql/metadata/TestHive.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/metadata/TestHive.java
@@ -172,8 +172,6 @@ public class TestHive extends TestCase {
 
       tbl.setRewriteEnabled(false);
 
-      tbl.setCreationMetadata(new HashMap<String, BasicTxnInfo>());
-
       // create table
       setNullCreateTableGrants();
       try {
@@ -235,8 +233,6 @@ public class TestHive extends TestCase {
 
       tbl.setRewriteEnabled(false);
 
-      tbl.setCreationMetadata(new HashMap<String, BasicTxnInfo>());
-
       setNullCreateTableGrants();
       try {
         hm.createTable(tbl);

http://git-wip-us.apache.org/repos/asf/hive/blob/0a328f03/ql/src/test/results/clientpositive/llap/sysdb.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/sysdb.q.out 
b/ql/src/test/results/clientpositive/llap/sysdb.q.out
index 5ed427f..4ff9875 100644
--- a/ql/src/test/results/clientpositive/llap/sysdb.q.out
+++ b/ql/src/test/results/clientpositive/llap/sysdb.q.out
@@ -1572,6 +1572,80 @@ FROM TBLS"
 POSTHOOK: type: CREATETABLE
 POSTHOOK: Output: SYS@TBLS
 POSTHOOK: Output: database:sys
+PREHOOK: query: CREATE TABLE IF NOT EXISTS `MV_CREATION_METADATA` (
+  `MV_CREATION_METADATA_ID` bigint,
+  `DB_NAME` string,
+  `TBL_NAME` string,
+  `TXN_LIST` string,
+  CONSTRAINT `SYS_PK_MV_CREATION_METADATA` PRIMARY KEY 
(`MV_CREATION_METADATA_ID`) DISABLE
+)
+STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler'
+TBLPROPERTIES (
+"hive.sql.database.type" = "METASTORE",
+"hive.sql.query" =
+"SELECT
+  \"MV_CREATION_METADATA_ID\",
+  \"DB_NAME\",
+  \"TBL_NAME\",
+  \"TXN_LIST\"
+FROM MV_CREATION_METADATA"
+)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: SYS@MV_CREATION_METADATA
+PREHOOK: Output: database:sys
+POSTHOOK: query: CREATE TABLE IF NOT EXISTS `MV_CREATION_METADATA` (
+  `MV_CREATION_METADATA_ID` bigint,
+  `DB_NAME` string,
+  `TBL_NAME` string,
+  `TXN_LIST` string,
+  CONSTRAINT `SYS_PK_MV_CREATION_METADATA` PRIMARY KEY 
(`MV_CREATION_METADATA_ID`) DISABLE
+)
+STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler'
+TBLPROPERTIES (
+"hive.sql.database.type" = "METASTORE",
+"hive.sql.query" =
+"SELECT
+  \"MV_CREATION_METADATA_ID\",
+  \"DB_NAME\",
+  \"TBL_NAME\",
+  \"TXN_LIST\"
+FROM MV_CREATION_METADATA"
+)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: SYS@MV_CREATION_METADATA
+POSTHOOK: Output: database:sys
+PREHOOK: query: CREATE TABLE IF NOT EXISTS `MV_TABLES_USED` (
+  `MV_CREATION_METADATA_ID` bigint,
+  `TBL_ID` bigint
+)
+STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler'
+TBLPROPERTIES (
+"hive.sql.database.type" = "METASTORE",
+"hive.sql.query" =
+"SELECT
+  \"MV_CREATION_METADATA_ID\",
+  \"TBL_ID\"
+FROM MV_TABLES_USED"
+)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: SYS@MV_TABLES_USED
+PREHOOK: Output: database:sys
+POSTHOOK: query: CREATE TABLE IF NOT EXISTS `MV_TABLES_USED` (
+  `MV_CREATION_METADATA_ID` bigint,
+  `TBL_ID` bigint
+)
+STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler'
+TBLPROPERTIES (
+"hive.sql.database.type" = "METASTORE",
+"hive.sql.query" =
+"SELECT
+  \"MV_CREATION_METADATA_ID\",
+  \"TBL_ID\"
+FROM MV_TABLES_USED"
+)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: SYS@MV_TABLES_USED
+POSTHOOK: Output: database:sys
 PREHOOK: query: CREATE TABLE IF NOT EXISTS `TBL_COL_PRIVS` (
   `TBL_COLUMN_GRANT_ID` bigint,
   `COLUMN_NAME` string,
@@ -1936,13 +2010,15 @@ POSTHOOK: Output: SYS@VERSION
 POSTHOOK: Output: database:sys
 PREHOOK: query: INSERT INTO `VERSION` VALUES (1, '3.0.0', 'Hive release 
version 3.0.0')
 PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
 PREHOOK: Output: sys@version
 POSTHOOK: query: INSERT INTO `VERSION` VALUES (1, '3.0.0', 'Hive release 
version 3.0.0')
 POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
 POSTHOOK: Output: sys@version
-POSTHOOK: Lineage: version.schema_version SIMPLE 
[(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, 
type:string, comment:), ]
-POSTHOOK: Lineage: version.ver_id EXPRESSION 
[(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, 
type:string, comment:), ]
-POSTHOOK: Lineage: version.version_comment SIMPLE 
[(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col3, 
type:string, comment:), ]
+POSTHOOK: Lineage: version.schema_version SCRIPT []
+POSTHOOK: Lineage: version.ver_id SCRIPT []
+POSTHOOK: Lineage: version.version_comment SCRIPT []
 PREHOOK: query: CREATE TABLE IF NOT EXISTS `DB_VERSION` (
   `VER_ID` BIGINT,
   `SCHEMA_VERSION` string,
@@ -3227,7 +3303,7 @@ POSTHOOK: query: select count(*) from cds
 POSTHOOK: type: QUERY
 POSTHOOK: Input: sys@cds
 #### A masked pattern was here ####
-71
+73
 PREHOOK: query: select column_name, type_name, integer_idx from columns_v2 
order by column_name, integer_idx limit 5
 PREHOOK: type: QUERY
 PREHOOK: Input: sys@columns_v2
@@ -3381,7 +3457,7 @@ POSTHOOK: query: select count(*) from sds
 POSTHOOK: type: QUERY
 POSTHOOK: Input: sys@sds
 #### A masked pattern was here ####
-77
+79
 PREHOOK: query: select param_key, param_value from sd_params order by 
param_key, param_value limit 5
 PREHOOK: type: QUERY
 PREHOOK: Input: sys@sd_params
@@ -3606,11 +3682,11 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: sys@table_params
 POSTHOOK: Input: sys@table_stats_view
 #### A masked pattern was here ####
-{"BASIC_STATS":"true","COLUMN_STATS":{"key":"true","value":"true"}}    0       
0       0       0
-{"BASIC_STATS":"true","COLUMN_STATS":{"entity_name":"true","entity_type":"true","ordering":"true","pool_path":"true","rp_name":"true"}}
        0       0       0       0
-{"BASIC_STATS":"true","COLUMN_STATS":{"next_val":"true","sequence_name":"true"}}
       0       0       0       0
-{"BASIC_STATS":"true","COLUMN_STATS":{"key":"true","value":"true"}}    0       
0       0       0
+{"BASIC_STATS":"true","COLUMN_STATS":{"key":"true"}}   0       0       0       0
+{"BASIC_STATS":"true","COLUMN_STATS":{"alloc_fraction":"true","path":"true","query_parallelism":"true","rp_name":"true","scheduling_policy":"true"}}
   0       0       0       0
+{"BASIC_STATS":"true","COLUMN_STATS":{"name":"true","serde_id":"true","slib":"true"}}
  0       0       0       0
 #### A masked pattern was here ####
+{"BASIC_STATS":"true","COLUMN_STATS":{"db_id":"true","param_key":"true","param_value":"true"}}
 0       0       0       0
 PREHOOK: query: select COLUMN_STATS_ACCURATE, NUM_FILES, NUM_ROWS, 
RAW_DATA_SIZE, TOTAL_SIZE FROM PARTITION_STATS_VIEW where COLUMN_STATS_ACCURATE 
is not null order by NUM_FILES, NUM_ROWS, RAW_DATA_SIZE limit 5
 PREHOOK: type: QUERY
 PREHOOK: Input: sys@partition_params
@@ -3785,6 +3861,8 @@ default   sys     global_privs    BASE_TABLE      NULL    
NULL    NULL    NULL    NULL    YES     NO      NULL
 default        sys     idxs    BASE_TABLE      NULL    NULL    NULL    NULL    
NULL    YES     NO      NULL
 default        sys     index_params    BASE_TABLE      NULL    NULL    NULL    
NULL    NULL    YES     NO      NULL
 default        sys     key_constraints BASE_TABLE      NULL    NULL    NULL    
NULL    NULL    YES     NO      NULL
+default        sys     mv_creation_metadata    BASE_TABLE      NULL    NULL    
NULL    NULL    NULL    YES     NO      NULL
+default        sys     mv_tables_used  BASE_TABLE      NULL    NULL    NULL    
NULL    NULL    YES     NO      NULL
 default        sys     part_col_privs  BASE_TABLE      NULL    NULL    NULL    
NULL    NULL    YES     NO      NULL
 default        sys     part_col_stats  BASE_TABLE      NULL    NULL    NULL    
NULL    NULL    YES     NO      NULL
 default        sys     part_privs      BASE_TABLE      NULL    NULL    NULL    
NULL    NULL    YES     NO      NULL
@@ -3870,13 +3948,13 @@ default default alltypesorc     ctimestamp1     8       
NULL    YES     timestamp       NULL    NULL    NULL    NULL
 default        default alltypesorc     ctimestamp2     9       NULL    YES     
timestamp       NULL    NULL    NULL    NULL    NULL    9       NULL    NULL    
NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL    11      NO      NO      NULL    NULL    NULL    NULL    
NULL    NULL    NEVER   NULL    NO      NO      NULL    YES     timestamp       
NULL    NULL
 default        default alltypesorc     cboolean1       10      NULL    YES     
boolean NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    11      NO      NO      NULL    NULL    NULL    NULL    NULL    
NULL    NEVER   NULL    NO      NO      NULL    YES     boolean NULL    NULL
 default        default alltypesorc     cboolean2       11      NULL    YES     
boolean NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    11      NO      NO      NULL    NULL    NULL    NULL    NULL    
NULL    NEVER   NULL    NO      NO      NULL    YES     boolean NULL    NULL
-default        default moretypes       a       0       NULL    YES     
decimal(10,2)   NULL    NULL    10      10      2       NULL    NULL    NULL    
NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL    85      NO      NO      NULL    NULL    NULL    NULL    
NULL    NULL    NEVER   NULL    NO      NO      NULL    YES     decimal(10,2)   
10      10
-default        default moretypes       b       1       NULL    YES     tinyint 
NULL    NULL    3       10      NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    85      NO      NO      NULL    NULL    NULL    NULL    NULL    NULL    
NEVER   NULL    NO      NO      NULL    YES     tinyint 3       10
-default        default moretypes       c       2       NULL    YES     
smallint        NULL    NULL    5       10      NULL    NULL    NULL    NULL    
NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL    85      NO      NO      NULL    NULL    NULL    NULL    
NULL    NULL    NEVER   NULL    NO      NO      NULL    YES     smallint        
5       10
-default        default moretypes       d       3       NULL    YES     int     
NULL    NULL    10      10      NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    85      NO      NO      NULL    NULL    NULL    NULL    NULL    NULL    
NEVER   NULL    NO      NO      NULL    YES     int     10      10
-default        default moretypes       e       4       NULL    YES     bigint  
NULL    NULL    19      10      NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    85      NO      NO      NULL    NULL    NULL    NULL    NULL    NULL    
NEVER   NULL    NO      NO      NULL    YES     bigint  19      10
-default        default moretypes       f       5       NULL    YES     
varchar(10)     10      10      NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL    85      NO      NO      NULL    NULL    NULL    NULL    
NULL    NULL    NEVER   NULL    NO      NO      NULL    YES     varchar(10)     
NULL    NULL
-default        default moretypes       g       6       NULL    YES     char(3) 
3       3       NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    85      NO      NO      NULL    NULL    NULL    NULL    NULL    NULL    
NEVER   NULL    NO      NO      NULL    YES     char(3) NULL    NULL
+default        default moretypes       a       0       NULL    YES     
decimal(10,2)   NULL    NULL    10      10      2       NULL    NULL    NULL    
NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL    28      NO      NO      NULL    NULL    NULL    NULL    
NULL    NULL    NEVER   NULL    NO      NO      NULL    YES     decimal(10,2)   
10      10
+default        default moretypes       b       1       NULL    YES     tinyint 
NULL    NULL    3       10      NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    28      NO      NO      NULL    NULL    NULL    NULL    NULL    NULL    
NEVER   NULL    NO      NO      NULL    YES     tinyint 3       10
+default        default moretypes       c       2       NULL    YES     
smallint        NULL    NULL    5       10      NULL    NULL    NULL    NULL    
NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL    28      NO      NO      NULL    NULL    NULL    NULL    
NULL    NULL    NEVER   NULL    NO      NO      NULL    YES     smallint        
5       10
+default        default moretypes       d       3       NULL    YES     int     
NULL    NULL    10      10      NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    28      NO      NO      NULL    NULL    NULL    NULL    NULL    NULL    
NEVER   NULL    NO      NO      NULL    YES     int     10      10
+default        default moretypes       e       4       NULL    YES     bigint  
NULL    NULL    19      10      NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    28      NO      NO      NULL    NULL    NULL    NULL    NULL    NULL    
NEVER   NULL    NO      NO      NULL    YES     bigint  19      10
+default        default moretypes       f       5       NULL    YES     
varchar(10)     10      10      NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL    28      NO      NO      NULL    NULL    NULL    NULL    
NULL    NULL    NEVER   NULL    NO      NO      NULL    YES     varchar(10)     
NULL    NULL
+default        default moretypes       g       6       NULL    YES     char(3) 
3       3       NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    28      NO      NO      NULL    NULL    NULL    NULL    NULL    NULL    
NEVER   NULL    NO      NO      NULL    YES     char(3) NULL    NULL
 PREHOOK: query: select * from COLUMN_PRIVILEGES order by GRANTOR, GRANTEE, 
TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME limit 10
 PREHOOK: type: QUERY
 PREHOOK: Input: information_schema@column_privileges

Reply via email to