HIVE-14637 : edit or split MoveTask to commit job results to metastore (Sergey 
Shelukhin)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/30fd19f4
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/30fd19f4
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/30fd19f4

Branch: refs/heads/hive-14535
Commit: 30fd19f4b358f12fbbb21d75785817c20e1adf15
Parents: 38409da
Author: Sergey Shelukhin <ser...@apache.org>
Authored: Wed Sep 7 18:51:39 2016 -0700
Committer: Sergey Shelukhin <ser...@apache.org>
Committed: Wed Sep 7 18:51:39 2016 -0700

----------------------------------------------------------------------
 .../hadoop/hive/ql/history/TestHiveHistory.java |    2 +-
 metastore/if/hive_metastore.thrift              |   36 +-
 .../upgrade/derby/037-HIVE-14637.derby.sql      |    6 +
 .../upgrade/derby/hive-schema-2.2.0.derby.sql   |   12 +-
 .../derby/upgrade-2.1.0-to-2.2.0.derby.sql      |    2 +
 .../upgrade/mssql/022-HIVE-14637.mssql.sql      |   14 +
 .../upgrade/mssql/hive-schema-2.2.0.mssql.sql   |   21 +-
 .../mssql/upgrade-2.1.0-to-2.2.0.mssql.sql      |    2 +
 .../upgrade/mysql/037-HIVE-14637.mysql.sql      |   14 +
 .../upgrade/mysql/hive-schema-2.2.0.mysql.sql   |   15 +
 .../mysql/upgrade-2.1.0-to-2.2.0.mysql.sql      |    2 +
 .../upgrade/oracle/037-HIVE-14637.oracle.sql    |   14 +
 .../upgrade/oracle/hive-schema-2.2.0.oracle.sql |   18 +-
 .../oracle/upgrade-2.1.0-to-2.2.0.oracle.sql    |    2 +
 .../postgres/036-HIVE-14637.postgres.sql        |   15 +
 .../postgres/hive-schema-2.2.0.postgres.sql     |   22 +-
 .../upgrade-2.1.0-to-2.2.0.postgres.sql         |    2 +
 .../gen/thrift/gen-cpp/ThriftHiveMetastore.cpp  | 4269 ++++++++-----
 .../gen/thrift/gen-cpp/ThriftHiveMetastore.h    |  378 ++
 .../ThriftHiveMetastore_server.skeleton.cpp     |   15 +
 .../thrift/gen-cpp/hive_metastore_constants.cpp |    2 +
 .../thrift/gen-cpp/hive_metastore_constants.h   |    1 +
 .../gen/thrift/gen-cpp/hive_metastore_types.cpp | 1130 +++-
 .../gen/thrift/gen-cpp/hive_metastore_types.h   |  292 +-
 .../metastore/api/FinalizeWriteIdRequest.java   |  684 ++
 .../metastore/api/FinalizeWriteIdResult.java    |  283 +
 .../metastore/api/GetNextWriteIdRequest.java    |  490 ++
 .../metastore/api/GetNextWriteIdResult.java     |  387 ++
 .../metastore/api/HeartbeatWriteIdRequest.java  |  589 ++
 .../metastore/api/HeartbeatWriteIdResult.java   |  283 +
 .../apache/hadoop/hive/metastore/api/Table.java |  206 +-
 .../hive/metastore/api/ThriftHiveMetastore.java | 5924 +++++++++++++-----
 .../metastore/api/hive_metastoreConstants.java  |   30 +-
 .../gen-php/metastore/ThriftHiveMetastore.php   |  966 ++-
 .../src/gen/thrift/gen-php/metastore/Types.php  |  805 ++-
 .../hive_metastore/ThriftHiveMetastore-remote   |   21 +
 .../hive_metastore/ThriftHiveMetastore.py       |  567 ++
 .../thrift/gen-py/hive_metastore/constants.py   |    1 +
 .../gen/thrift/gen-py/hive_metastore/ttypes.py  |  478 +-
 .../thrift/gen-rb/hive_metastore_constants.rb   |    2 +
 .../gen/thrift/gen-rb/hive_metastore_types.rb   |  122 +-
 .../gen/thrift/gen-rb/thrift_hive_metastore.rb  |  162 +
 .../hadoop/hive/metastore/HiveMetaStore.java    |  203 +-
 .../hive/metastore/HiveMetaStoreClient.java     |  116 +-
 .../hadoop/hive/metastore/IMetaStoreClient.java |    7 +
 .../hadoop/hive/metastore/ObjectStore.java      |  116 +-
 .../apache/hadoop/hive/metastore/RawStore.java  |    7 +
 .../hadoop/hive/metastore/hbase/HBaseStore.java |   19 +
 .../hadoop/hive/metastore/model/MTable.java     |   23 +-
 .../hive/metastore/model/MTableWrite.java       |   67 +
 metastore/src/model/package.jdo                 |   29 +
 .../DummyRawStoreControlledCommit.java          |   15 +
 .../DummyRawStoreForJdoConnection.java          |   14 +
 .../java/org/apache/hadoop/hive/ql/Context.java |    8 +-
 .../hadoop/hive/ql/exec/FileSinkOperator.java   |   22 +-
 .../apache/hadoop/hive/ql/exec/MoveTask.java    |   28 +-
 .../org/apache/hadoop/hive/ql/io/AcidUtils.java |   10 +
 .../apache/hadoop/hive/ql/metadata/Hive.java    |  118 +-
 .../hive/ql/optimizer/GenMapRedUtils.java       |    1 +
 .../physical/AnnotateRunTimeStatsOptimizer.java |    3 +-
 .../hive/ql/parse/DDLSemanticAnalyzer.java      |    2 +
 .../hive/ql/parse/ImportSemanticAnalyzer.java   |    2 +
 .../hive/ql/parse/LoadSemanticAnalyzer.java     |    1 +
 .../hadoop/hive/ql/parse/ParseContext.java      |    8 -
 .../hadoop/hive/ql/parse/SemanticAnalyzer.java  |   42 +-
 .../hadoop/hive/ql/parse/TaskCompiler.java      |    1 +
 .../hadoop/hive/ql/plan/FileSinkDesc.java       |   24 +-
 .../hadoop/hive/ql/plan/LoadTableDesc.java      |   32 +-
 .../apache/hadoop/hive/ql/plan/MoveWork.java    |    1 -
 .../hadoop/hive/ql/exec/TestExecDriver.java     |    2 +-
 .../hive/ql/exec/TestFileSinkOperator.java      |    2 +-
 ql/src/test/queries/clientpositive/mm_current.q |   26 +-
 .../clientpositive/llap/mm_current.q.out        |  171 +-
 73 files changed, 15320 insertions(+), 4086 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/30fd19f4/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/history/TestHiveHistory.java
----------------------------------------------------------------------
diff --git 
a/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/history/TestHiveHistory.java
 
b/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/history/TestHiveHistory.java
index 76c1636..0c51a68 100644
--- 
a/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/history/TestHiveHistory.java
+++ 
b/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/history/TestHiveHistory.java
@@ -103,7 +103,7 @@ public class TestHiveHistory extends TestCase {
         db.dropTable(MetaStoreUtils.DEFAULT_DATABASE_NAME, src, true, true);
         db.createTable(src, cols, null, TextInputFormat.class,
             IgnoreKeyTextOutputFormat.class);
-        db.loadTable(hadoopDataFile[i], src, false, false, false, false, 
false);
+        db.loadTable(hadoopDataFile[i], src, false, false, false, false, 
false, null);
         i++;
       }
 

http://git-wip-us.apache.org/repos/asf/hive/blob/30fd19f4/metastore/if/hive_metastore.thrift
----------------------------------------------------------------------
diff --git a/metastore/if/hive_metastore.thrift 
b/metastore/if/hive_metastore.thrift
index 872c0f3..95eee27 100755
--- a/metastore/if/hive_metastore.thrift
+++ b/metastore/if/hive_metastore.thrift
@@ -305,7 +305,9 @@ struct Table {
   11: string viewExpandedText,         // expanded view text, null for non-view
   12: string tableType,                 // table type enum, e.g. EXTERNAL_TABLE
   13: optional PrincipalPrivilegeSet privileges,
-  14: optional bool temporary=false
+  14: optional bool temporary=false,
+  15: optional i64 mmNextWriteId,
+  16: optional i64 mmWatermarkWriteId
 }
 
 struct Partition {
@@ -890,6 +892,33 @@ struct CacheFileMetadataRequest {
   4: optional bool isAllParts
 }
 
+
+struct GetNextWriteIdRequest {
+  1: required string dbName,
+  2: required string tblName
+}
+struct GetNextWriteIdResult {
+  1: required i64 writeId
+}
+
+struct FinalizeWriteIdRequest {
+  1: required string dbName,
+  2: required string tblName,
+  3: required i64 writeId,
+  4: required bool commit
+}
+struct FinalizeWriteIdResult {
+}
+
+struct HeartbeatWriteIdRequest {
+  1: required string dbName,
+  2: required string tblName,
+  3: required i64 writeId
+}
+struct HeartbeatWriteIdResult {
+}
+
+
 struct GetAllFunctionsResponse {
   1: optional list<Function> functions
 }
@@ -1438,6 +1467,9 @@ service ThriftHiveMetastore extends fb303.FacebookService
   ClearFileMetadataResult clear_file_metadata(1:ClearFileMetadataRequest req)
   CacheFileMetadataResult cache_file_metadata(1:CacheFileMetadataRequest req)
 
+  GetNextWriteIdResult get_next_write_id(1:GetNextWriteIdRequest req)
+  FinalizeWriteIdResult finalize_write_id(1:FinalizeWriteIdRequest req)
+  HeartbeatWriteIdResult heartbeat_write_id(1:HeartbeatWriteIdRequest req)
 }
 
 // * Note about the DDL_TIME: When creating or altering a table or a partition,
@@ -1476,5 +1508,7 @@ const string META_TABLE_STORAGE   = "storage_handler",
 const string TABLE_IS_TRANSACTIONAL = "transactional",
 const string TABLE_NO_AUTO_COMPACT = "no_auto_compaction",
 const string TABLE_TRANSACTIONAL_PROPERTIES = "transactional_properties",
+const string TABLE_IS_MM = "hivecommit",
+
 
 

http://git-wip-us.apache.org/repos/asf/hive/blob/30fd19f4/metastore/scripts/upgrade/derby/037-HIVE-14637.derby.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/derby/037-HIVE-14637.derby.sql 
b/metastore/scripts/upgrade/derby/037-HIVE-14637.derby.sql
new file mode 100644
index 0000000..8cea9f1
--- /dev/null
+++ b/metastore/scripts/upgrade/derby/037-HIVE-14637.derby.sql
@@ -0,0 +1,6 @@
+ALTER TABLE "TBLS" ADD "MM_WATERMARK_WRITE_ID" BIGINT;
+ALTER TABLE "TBLS" ADD "MM_NEXT_WRITE_ID" BIGINT;
+CREATE TABLE "APP"."TBL_WRITES" ("TW_ID" BIGINT NOT NULL, "TBL_ID" BIGINT NOT 
NULL, "WRITE_ID" BIGINT NOT NULL, "STATE" CHAR(1) NOT NULL, "LAST_HEARTBEAT" 
BIGINT);
+ALTER TABLE "APP"."TBL_WRITES" ADD CONSTRAINT "TBL_WRITES_PK" PRIMARY KEY 
("TW_ID");
+ALTER TABLE "APP"."TBL_WRITES" ADD CONSTRAINT "TBL_WRITES_FK1" FOREIGN KEY 
("TBL_ID") REFERENCES "APP"."TBLS" ("TBL_ID") ON DELETE NO ACTION ON UPDATE NO 
ACTION;
+CREATE UNIQUE INDEX "APP"."UNIQUEWRITE" ON "APP"."TBL_WRITES" ("TBL_ID", 
"WRITE_ID");

http://git-wip-us.apache.org/repos/asf/hive/blob/30fd19f4/metastore/scripts/upgrade/derby/hive-schema-2.2.0.derby.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/derby/hive-schema-2.2.0.derby.sql 
b/metastore/scripts/upgrade/derby/hive-schema-2.2.0.derby.sql
index ae980e0..3c4ba4b 100644
--- a/metastore/scripts/upgrade/derby/hive-schema-2.2.0.derby.sql
+++ b/metastore/scripts/upgrade/derby/hive-schema-2.2.0.derby.sql
@@ -60,7 +60,7 @@ CREATE TABLE "APP"."COLUMNS" ("SD_ID" BIGINT NOT NULL, 
"COMMENT" VARCHAR(256), "
 
 CREATE TABLE "APP"."ROLES" ("ROLE_ID" BIGINT NOT NULL, "CREATE_TIME" INTEGER 
NOT NULL, "OWNER_NAME" VARCHAR(128), "ROLE_NAME" VARCHAR(128));
 
-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(128), "TBL_TYPE" VARCHAR(128), "VIEW_EXPANDED_TEXT" LONG VARCHAR, 
"VIEW_ORIGINAL_TEXT" LONG VARCHAR);
+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(128), "TBL_TYPE" VARCHAR(128), "VIEW_EXPANDED_TEXT" LONG VARCHAR, 
"VIEW_ORIGINAL_TEXT" LONG VARCHAR, "MM_WATERMARK_WRITE_ID" BIGINT, 
"MM_NEXT_WRITE_ID" BIGINT);
 
 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);
 
@@ -112,6 +112,16 @@ ALTER TABLE "APP"."KEY_CONSTRAINTS" ADD CONSTRAINT 
"CONSTRAINTS_PK" PRIMARY KEY
 
 CREATE INDEX "APP"."CONSTRAINTS_PARENT_TBL_ID_INDEX" ON 
"APP"."KEY_CONSTRAINTS"("PARENT_TBL_ID");
 
+CREATE TABLE "APP"."TBL_WRITES" ("TW_ID" BIGINT NOT NULL, "TBL_ID" BIGINT NOT 
NULL, "WRITE_ID" BIGINT NOT NULL, "STATE" CHAR(1) NOT NULL, "LAST_HEARTBEAT" 
BIGINT);
+
+ALTER TABLE "APP"."TBL_WRITES" ADD CONSTRAINT "TBL_WRITES_PK" PRIMARY KEY 
("TW_ID");
+
+ALTER TABLE "APP"."TBL_WRITES" ADD CONSTRAINT "TBL_WRITES_FK1" FOREIGN KEY 
("TBL_ID") REFERENCES "APP"."TBLS" ("TBL_ID") ON DELETE NO ACTION ON UPDATE NO 
ACTION;
+
+CREATE UNIQUE INDEX "APP"."UNIQUEWRITE" ON "APP"."TBL_WRITES" ("TBL_ID", 
"WRITE_ID");
+
+
+
 -- ----------------------------------------------
 -- DDL Statements for indexes
 -- ----------------------------------------------

http://git-wip-us.apache.org/repos/asf/hive/blob/30fd19f4/metastore/scripts/upgrade/derby/upgrade-2.1.0-to-2.2.0.derby.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/derby/upgrade-2.1.0-to-2.2.0.derby.sql 
b/metastore/scripts/upgrade/derby/upgrade-2.1.0-to-2.2.0.derby.sql
index 25a5e37..67750a6 100644
--- a/metastore/scripts/upgrade/derby/upgrade-2.1.0-to-2.2.0.derby.sql
+++ b/metastore/scripts/upgrade/derby/upgrade-2.1.0-to-2.2.0.derby.sql
@@ -1,3 +1,5 @@
 -- Upgrade MetaStore schema from 2.1.0 to 2.2.0
 
+RUN '037-HIVE-14637.derby.sql';
+
 UPDATE "APP".VERSION SET SCHEMA_VERSION='2.2.0', VERSION_COMMENT='Hive release 
version 2.2.0' where VER_ID=1;

http://git-wip-us.apache.org/repos/asf/hive/blob/30fd19f4/metastore/scripts/upgrade/mssql/022-HIVE-14637.mssql.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/mssql/022-HIVE-14637.mssql.sql 
b/metastore/scripts/upgrade/mssql/022-HIVE-14637.mssql.sql
new file mode 100644
index 0000000..bb42935
--- /dev/null
+++ b/metastore/scripts/upgrade/mssql/022-HIVE-14637.mssql.sql
@@ -0,0 +1,14 @@
+ALTER TABLE TBLS ADD MM_WATERMARK_WRITE_ID BIGINT NULL;
+ALTER TABLE TBLS ADD MM_NEXT_WRITE_ID BIGINT NULL;
+
+CREATE TABLE TBL_WRITES 
+(
+  TW_ID BIGINT NOT NULL,
+  TBL_ID BIGINT NOT NULL,
+  WRITE_ID BIGINT NOT NULL,
+  STATE CHAR(1) NOT NULL,
+  LAST_HEARTBEAT BIGINT
+);
+ALTER TABLE TBL_WRITES ADD CONSTRAINT TBL_WRITES_PK PRIMARY KEY (TW_ID);
+ALTER TABLE TBL_WRITES ADD CONSTRAINT TBL_WRITES_FK1 FOREIGN KEY (TBL_ID) 
REFERENCES TBLS (TBL_ID) ;
+CREATE UNIQUE INDEX UNIQUEWRITE ON TBL_WRITES (TBL_ID, WRITE_ID);

http://git-wip-us.apache.org/repos/asf/hive/blob/30fd19f4/metastore/scripts/upgrade/mssql/hive-schema-2.2.0.mssql.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/mssql/hive-schema-2.2.0.mssql.sql 
b/metastore/scripts/upgrade/mssql/hive-schema-2.2.0.mssql.sql
index 8735b50..6bd0d87 100644
--- a/metastore/scripts/upgrade/mssql/hive-schema-2.2.0.mssql.sql
+++ b/metastore/scripts/upgrade/mssql/hive-schema-2.2.0.mssql.sql
@@ -358,7 +358,9 @@ CREATE TABLE TBLS
     TBL_NAME nvarchar(128) NULL,
     TBL_TYPE nvarchar(128) NULL,
     VIEW_EXPANDED_TEXT text NULL,
-    VIEW_ORIGINAL_TEXT text NULL
+    VIEW_ORIGINAL_TEXT text NULL,
+    MM_WATERMARK_WRITE_ID BIGINT NULL,
+    MM_NEXT_WRITE_ID BIGINT NULL
 );
 
 ALTER TABLE TBLS ADD CONSTRAINT TBLS_PK PRIMARY KEY (TBL_ID);
@@ -591,6 +593,23 @@ CREATE TABLE NOTIFICATION_SEQUENCE
 
 ALTER TABLE NOTIFICATION_SEQUENCE ADD CONSTRAINT NOTIFICATION_SEQUENCE_PK 
PRIMARY KEY (NNI_ID);
 
+
+CREATE TABLE TBL_WRITES 
+(
+  TW_ID BIGINT NOT NULL,
+  TBL_ID BIGINT NOT NULL,
+  WRITE_ID BIGINT NOT NULL,
+  STATE CHAR(1) NOT NULL,
+  LAST_HEARTBEAT BIGINT
+);
+
+ALTER TABLE TBL_WRITES ADD CONSTRAINT TBL_WRITES_PK PRIMARY KEY (TW_ID);
+
+ALTER TABLE TBL_WRITES ADD CONSTRAINT TBL_WRITES_FK1 FOREIGN KEY (TBL_ID) 
REFERENCES TBLS (TBL_ID) ;
+
+CREATE UNIQUE INDEX UNIQUEWRITE ON TBL_WRITES (TBL_ID, WRITE_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/30fd19f4/metastore/scripts/upgrade/mssql/upgrade-2.1.0-to-2.2.0.mssql.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/mssql/upgrade-2.1.0-to-2.2.0.mssql.sql 
b/metastore/scripts/upgrade/mssql/upgrade-2.1.0-to-2.2.0.mssql.sql
index df97206..2e6f394 100644
--- a/metastore/scripts/upgrade/mssql/upgrade-2.1.0-to-2.2.0.mssql.sql
+++ b/metastore/scripts/upgrade/mssql/upgrade-2.1.0-to-2.2.0.mssql.sql
@@ -1,4 +1,6 @@
 SELECT 'Upgrading MetaStore schema from 2.1.0 to 2.2.0' AS MESSAGE;
 
+:r 022-HIVE-14637.mssql.sql
+
 UPDATE VERSION SET SCHEMA_VERSION='2.2.0', VERSION_COMMENT='Hive release 
version 2.2.0' where VER_ID=1;
 SELECT 'Finished upgrading MetaStore schema from 2.1.0 to 2.2.0' AS MESSAGE;

http://git-wip-us.apache.org/repos/asf/hive/blob/30fd19f4/metastore/scripts/upgrade/mysql/037-HIVE-14637.mysql.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/mysql/037-HIVE-14637.mysql.sql 
b/metastore/scripts/upgrade/mysql/037-HIVE-14637.mysql.sql
new file mode 100644
index 0000000..1b740d5
--- /dev/null
+++ b/metastore/scripts/upgrade/mysql/037-HIVE-14637.mysql.sql
@@ -0,0 +1,14 @@
+alter table `TBLS` ADD COLUMN `MM_WATERMARK_WRITE_ID` bigint(20);
+alter table `TBLS` ADD COLUMN `MM_NEXT_WRITE_ID` bigint(20);
+
+CREATE TABLE IF NOT EXISTS `TBL_WRITES`
+(
+  `TW_ID` BIGINT NOT NULL,
+  `TBL_ID` BIGINT NOT NULL,
+  `WRITE_ID` BIGINT NOT NULL,
+  `STATE` CHAR(1) NOT NULL,
+  `LAST_HEARTBEAT` BIGINT,
+  PRIMARY KEY (`TW_ID`),
+  UNIQUE KEY `UNIQUEWRITE` (`TBL_ID`,`WRITE_ID`),
+  CONSTRAINT `TBL_WRITES_FK1` FOREIGN KEY (`TBL_ID`) REFERENCES `TBLS` 
(`TBL_ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;

http://git-wip-us.apache.org/repos/asf/hive/blob/30fd19f4/metastore/scripts/upgrade/mysql/hive-schema-2.2.0.mysql.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/mysql/hive-schema-2.2.0.mysql.sql 
b/metastore/scripts/upgrade/mysql/hive-schema-2.2.0.mysql.sql
index 91e221d..f7ef948 100644
--- a/metastore/scripts/upgrade/mysql/hive-schema-2.2.0.mysql.sql
+++ b/metastore/scripts/upgrade/mysql/hive-schema-2.2.0.mysql.sql
@@ -587,6 +587,8 @@ 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,
+  `MM_WATERMARK_WRITE_ID` bigint(20),
+  `MM_NEXT_WRITE_ID` bigint(20),
   PRIMARY KEY (`TBL_ID`),
   UNIQUE KEY `UNIQUETABLE` (`TBL_NAME`,`DB_ID`),
   KEY `TBLS_N50` (`SD_ID`),
@@ -827,6 +829,19 @@ CREATE TABLE IF NOT EXISTS `KEY_CONSTRAINTS`
 
 CREATE INDEX `CONSTRAINTS_PARENT_TABLE_ID_INDEX` ON KEY_CONSTRAINTS 
(`PARENT_TBL_ID`) USING BTREE;
 
+CREATE TABLE IF NOT EXISTS `TBL_WRITES`
+(
+  `TW_ID` BIGINT NOT NULL,
+  `TBL_ID` BIGINT NOT NULL,
+  `WRITE_ID` BIGINT NOT NULL,
+  `STATE` CHAR(1) NOT NULL,
+  `LAST_HEARTBEAT` BIGINT,
+  PRIMARY KEY (`TW_ID`),
+  UNIQUE KEY `UNIQUEWRITE` (`TBL_ID`,`WRITE_ID`),
+  CONSTRAINT `TBL_WRITES_FK1` 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/30fd19f4/metastore/scripts/upgrade/mysql/upgrade-2.1.0-to-2.2.0.mysql.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/mysql/upgrade-2.1.0-to-2.2.0.mysql.sql 
b/metastore/scripts/upgrade/mysql/upgrade-2.1.0-to-2.2.0.mysql.sql
index de38b58..6ac1b89 100644
--- a/metastore/scripts/upgrade/mysql/upgrade-2.1.0-to-2.2.0.mysql.sql
+++ b/metastore/scripts/upgrade/mysql/upgrade-2.1.0-to-2.2.0.mysql.sql
@@ -1,5 +1,7 @@
 SELECT 'Upgrading MetaStore schema from 2.1.0 to 2.2.0' AS ' ';
 
+SOURCE 037-HIVE-14637.mysql.sql;
+
 UPDATE VERSION SET SCHEMA_VERSION='2.2.0', VERSION_COMMENT='Hive release 
version 2.2.0' where VER_ID=1;
 SELECT 'Finished upgrading MetaStore schema from 2.1.0 to 2.2.0' AS ' ';
 

http://git-wip-us.apache.org/repos/asf/hive/blob/30fd19f4/metastore/scripts/upgrade/oracle/037-HIVE-14637.oracle.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/oracle/037-HIVE-14637.oracle.sql 
b/metastore/scripts/upgrade/oracle/037-HIVE-14637.oracle.sql
new file mode 100644
index 0000000..bc5fb6b
--- /dev/null
+++ b/metastore/scripts/upgrade/oracle/037-HIVE-14637.oracle.sql
@@ -0,0 +1,14 @@
+ALTER TABLE TBLS ADD MM_WATERMARK_WRITE_ID NUMBER;
+ALTER TABLE TBLS ADD MM_NEXT_WRITE_ID NUMBER;
+
+CREATE TABLE TBL_WRITES
+(
+  TW_ID NUMBER NOT NULL,
+  TBL_ID NUMBER NOT NULL,
+  WRITE_ID NUMBER NOT NULL,
+  STATE CHAR(1) NOT NULL,
+  LAST_HEARTBEAT NUMBER NOT NULL
+);
+ALTER TABLE TBL_WRITES ADD CONSTRAINT TBL_WRITES_PK PRIMARY KEY (TW_ID);
+ALTER TABLE TBL_WRITES ADD CONSTRAINT TBL_WRITES_FK1 FOREIGN KEY (TBL_ID) 
REFERENCES TBLS (TBL_ID) INITIALLY DEFERRED ;
+CREATE UNIQUE INDEX UNIQUEWRITE ON TBL_WRITES (TBL_ID, WRITE_ID);

http://git-wip-us.apache.org/repos/asf/hive/blob/30fd19f4/metastore/scripts/upgrade/oracle/hive-schema-2.2.0.oracle.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/oracle/hive-schema-2.2.0.oracle.sql 
b/metastore/scripts/upgrade/oracle/hive-schema-2.2.0.oracle.sql
index 39ba7cb..503ce09 100644
--- a/metastore/scripts/upgrade/oracle/hive-schema-2.2.0.oracle.sql
+++ b/metastore/scripts/upgrade/oracle/hive-schema-2.2.0.oracle.sql
@@ -375,7 +375,9 @@ CREATE TABLE TBLS
     TBL_NAME VARCHAR2(128) NULL,
     TBL_TYPE VARCHAR2(128) NULL,
     VIEW_EXPANDED_TEXT CLOB NULL,
-    VIEW_ORIGINAL_TEXT CLOB NULL
+    VIEW_ORIGINAL_TEXT CLOB NULL,
+    MM_WATERMARK_WRITE_ID NUMBER NULL,
+    MM_NEXT_WRITE_ID NUMBER NULL
 );
 
 ALTER TABLE TBLS ADD CONSTRAINT TBLS_PK PRIMARY KEY (TBL_ID);
@@ -797,6 +799,20 @@ ALTER TABLE KEY_CONSTRAINTS ADD CONSTRAINT CONSTRAINTS_PK 
PRIMARY KEY (CONSTRAIN
 
 CREATE INDEX CONSTRAINTS_PT_INDEX ON KEY_CONSTRAINTS(PARENT_TBL_ID);
 
+CREATE TABLE TBL_WRITES
+(
+  TW_ID NUMBER NOT NULL,
+  TBL_ID NUMBER NOT NULL,
+  WRITE_ID NUMBER NOT NULL,
+  STATE CHAR(1) NOT NULL,
+  LAST_HEARTBEAT NUMBER NOT NULL
+);
+
+ALTER TABLE TBL_WRITES ADD CONSTRAINT TBL_WRITES_PK PRIMARY KEY (TW_ID);
+
+ALTER TABLE TBL_WRITES ADD CONSTRAINT TBL_WRITES_FK1 FOREIGN KEY (TBL_ID) 
REFERENCES TBLS (TBL_ID) INITIALLY DEFERRED ;
+
+CREATE UNIQUE INDEX UNIQUEWRITE ON TBL_WRITES (TBL_ID, WRITE_ID);
 
 ------------------------------
 -- Transaction and lock tables

http://git-wip-us.apache.org/repos/asf/hive/blob/30fd19f4/metastore/scripts/upgrade/oracle/upgrade-2.1.0-to-2.2.0.oracle.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/oracle/upgrade-2.1.0-to-2.2.0.oracle.sql 
b/metastore/scripts/upgrade/oracle/upgrade-2.1.0-to-2.2.0.oracle.sql
index 66784a4..8d841d6 100644
--- a/metastore/scripts/upgrade/oracle/upgrade-2.1.0-to-2.2.0.oracle.sql
+++ b/metastore/scripts/upgrade/oracle/upgrade-2.1.0-to-2.2.0.oracle.sql
@@ -1,4 +1,6 @@
 SELECT 'Upgrading MetaStore schema from 2.1.0 to 2.2.0' AS Status from dual;
 
+@037-HIVE-14637.oracle.sql;
+
 UPDATE VERSION SET SCHEMA_VERSION='2.2.0', VERSION_COMMENT='Hive release 
version 2.2.0' where VER_ID=1;
 SELECT 'Finished upgrading MetaStore schema from 2.1.0 to 2.2.0' AS Status 
from dual;

http://git-wip-us.apache.org/repos/asf/hive/blob/30fd19f4/metastore/scripts/upgrade/postgres/036-HIVE-14637.postgres.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/postgres/036-HIVE-14637.postgres.sql 
b/metastore/scripts/upgrade/postgres/036-HIVE-14637.postgres.sql
new file mode 100644
index 0000000..d94c19d
--- /dev/null
+++ b/metastore/scripts/upgrade/postgres/036-HIVE-14637.postgres.sql
@@ -0,0 +1,15 @@
+
+ALTER TABLE "TBLS" ADD COLUMN "MM_WATERMARK_WRITE_ID" bigint;
+ALTER TABLE "TBLS" ADD COLUMN "MM_NEXT_WRITE_ID" bigint;
+
+CREATE TABLE "TBL_WRITES"
+(
+  "TW_ID" BIGINT NOT NULL,
+  "TBL_ID" BIGINT NOT NULL,
+  "WRITE_ID" BIGINT NOT NULL,
+  "STATE" CHAR(1) NOT NULL,
+  "LAST_HEARTBEAT" BIGINT NOT NULL
+);
+ALTER TABLE ONLY "TBL_WRITES" ADD CONSTRAINT "TBL_WRITES_PK" PRIMARY KEY 
("TW_ID");
+ALTER TABLE ONLY "TBL_WRITES" ADD CONSTRAINT "TBL_WRITES_FK1" FOREIGN KEY 
("TBL_ID") REFERENCES "TBLS" ("TBL_ID") DEFERRABLE;
+ALTER TABLE ONLY "TBL_WRITES" ADD CONSTRAINT "UNIQUEWRITE" UNIQUE ("TBL_ID", 
"WRITE_ID");

http://git-wip-us.apache.org/repos/asf/hive/blob/30fd19f4/metastore/scripts/upgrade/postgres/hive-schema-2.2.0.postgres.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/postgres/hive-schema-2.2.0.postgres.sql 
b/metastore/scripts/upgrade/postgres/hive-schema-2.2.0.postgres.sql
index 63ac3be..bf1d769 100644
--- a/metastore/scripts/upgrade/postgres/hive-schema-2.2.0.postgres.sql
+++ b/metastore/scripts/upgrade/postgres/hive-schema-2.2.0.postgres.sql
@@ -372,7 +372,9 @@ CREATE TABLE "TBLS" (
     "TBL_NAME" character varying(128) DEFAULT NULL::character varying,
     "TBL_TYPE" character varying(128) DEFAULT NULL::character varying,
     "VIEW_EXPANDED_TEXT" text,
-    "VIEW_ORIGINAL_TEXT" text
+    "VIEW_ORIGINAL_TEXT" text,
+    "MM_WATERMARK_WRITE_ID" bigint,
+    "MM_NEXT_WRITE_ID" bigint
 );
 
 
@@ -604,6 +606,24 @@ CREATE TABLE "KEY_CONSTRAINTS"
 
 CREATE INDEX "CONSTRAINTS_PARENT_TBLID_INDEX" ON "KEY_CONSTRAINTS" USING BTREE 
("PARENT_TBL_ID");
 
+
+
+CREATE TABLE "TBL_WRITES"
+(
+  "TW_ID" BIGINT NOT NULL,
+  "TBL_ID" BIGINT NOT NULL,
+  "WRITE_ID" BIGINT NOT NULL,
+  "STATE" CHAR(1) NOT NULL,
+  "LAST_HEARTBEAT" BIGINT NOT NULL
+);
+
+ALTER TABLE ONLY "TBL_WRITES" ADD CONSTRAINT "TBL_WRITES_PK" PRIMARY KEY 
("TW_ID");
+
+ALTER TABLE ONLY "TBL_WRITES" ADD CONSTRAINT "TBL_WRITES_FK1" FOREIGN KEY 
("TBL_ID") REFERENCES "TBLS" ("TBL_ID") DEFERRABLE;
+
+ALTER TABLE ONLY "TBL_WRITES" ADD CONSTRAINT "UNIQUEWRITE" UNIQUE ("TBL_ID", 
"WRITE_ID");
+
+
 --
 -- Name: BUCKETING_COLS_pkey; Type: CONSTRAINT; Schema: public; Owner: 
hiveuser; Tablespace:
 --

http://git-wip-us.apache.org/repos/asf/hive/blob/30fd19f4/metastore/scripts/upgrade/postgres/upgrade-2.1.0-to-2.2.0.postgres.sql
----------------------------------------------------------------------
diff --git 
a/metastore/scripts/upgrade/postgres/upgrade-2.1.0-to-2.2.0.postgres.sql 
b/metastore/scripts/upgrade/postgres/upgrade-2.1.0-to-2.2.0.postgres.sql
index 0b4591d..70542b8 100644
--- a/metastore/scripts/upgrade/postgres/upgrade-2.1.0-to-2.2.0.postgres.sql
+++ b/metastore/scripts/upgrade/postgres/upgrade-2.1.0-to-2.2.0.postgres.sql
@@ -1,5 +1,7 @@
 SELECT 'Upgrading MetaStore schema from 2.1.0 to 2.2.0';
 
+\i 036-HIVE-14637.postgres.sql;
+
 UPDATE "VERSION" SET "SCHEMA_VERSION"='2.2.0', "VERSION_COMMENT"='Hive release 
version 2.2.0' where "VER_ID"=1;
 SELECT 'Finished upgrading MetaStore schema from 2.1.0 to 2.2.0';
 

Reply via email to