HIVE-17566 : Create schema required for workload management (Harish Jaiprakash, 
reviewed Prasanth Jayachandran and Sergey Shelukhin)


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

Branch: refs/heads/hive-14535
Commit: 32b7abac961ca3879d23b074357f211fc7c49131
Parents: f4a12a5
Author: sergey <[email protected]>
Authored: Fri Oct 6 17:22:04 2017 -0700
Committer: sergey <[email protected]>
Committed: Fri Oct 6 17:22:04 2017 -0700

----------------------------------------------------------------------
 .../org/apache/hive/beeline/HiveSchemaTool.java |   36 +-
 .../upgrade/derby/046-HIVE-17566.derby.sql      |   25 +
 .../upgrade/derby/hive-schema-3.0.0.derby.sql   |   41 +-
 .../derby/upgrade-2.3.0-to-3.0.0.derby.sql      |    1 +
 .../upgrade/hive/hive-schema-3.0.0.hive.sql     |   17 +
 .../upgrade/mssql/031-HIVE-17566.mssql.sql      |   76 +
 .../upgrade/mssql/hive-schema-3.0.0.mssql.sql   |   78 +-
 .../mssql/upgrade-2.3.0-to-3.0.0.mssql.sql      |    1 +
 .../upgrade/mysql/046-HIVE-17566.mysql.sql      |   57 +
 .../upgrade/mysql/hive-schema-3.0.0.mysql.sql   |   62 +
 .../mysql/upgrade-2.3.0-to-3.0.0.mysql.sql      |    1 +
 .../upgrade/oracle/046-HIVE-17566.oracle.sql    |   76 +
 .../upgrade/oracle/hive-schema-3.0.0.oracle.sql |   78 +-
 .../oracle/upgrade-2.3.0-to-3.0.0.oracle.sql    |    1 +
 .../postgres/045-HIVE-17566.postgres.sql        |   88 +
 .../postgres/hive-schema-3.0.0.postgres.sql     |   91 +
 .../upgrade-2.3.0-to-3.0.0.postgres.sql         |    1 +
 .../hive/metastore/MetaStoreDirectSql.java      |    2 +
 .../results/clientpositive/llap/sysdb.q.out     |   45 +-
 .../gen/thrift/gen-cpp/ThriftHiveMetastore.cpp  | 2132 +++++++++---------
 .../gen/thrift/gen-cpp/hive_metastore_types.cpp |  860 ++++++-
 .../gen/thrift/gen-cpp/hive_metastore_types.h   |  288 +++
 .../hadoop/hive/metastore/api/WMMapping.java    |  804 +++++++
 .../hadoop/hive/metastore/api/WMPool.java       |  908 ++++++++
 .../hive/metastore/api/WMResourcePlan.java      |  602 +++++
 .../hadoop/hive/metastore/api/WMTrigger.java    |  706 ++++++
 .../src/gen/thrift/gen-php/metastore/Types.php  |  622 +++++
 .../gen/thrift/gen-py/hive_metastore/ttypes.py  |  458 ++++
 .../gen/thrift/gen-rb/hive_metastore_types.rb   |  100 +
 .../hadoop/hive/metastore/model/MWMMapping.java |   82 +
 .../hadoop/hive/metastore/model/MWMPool.java    |   89 +
 .../hive/metastore/model/MWMResourcePlan.java   |   95 +
 .../hadoop/hive/metastore/model/MWMTrigger.java |   78 +
 .../src/main/resources/package.jdo              |  111 +
 .../src/main/thrift/hive_metastore.thrift       |   30 +
 35 files changed, 7541 insertions(+), 1201 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/32b7abac/beeline/src/java/org/apache/hive/beeline/HiveSchemaTool.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/HiveSchemaTool.java 
b/beeline/src/java/org/apache/hive/beeline/HiveSchemaTool.java
index 84963af..7c65fe1 100644
--- a/beeline/src/java/org/apache/hive/beeline/HiveSchemaTool.java
+++ b/beeline/src/java/org/apache/hive/beeline/HiveSchemaTool.java
@@ -806,39 +806,9 @@ public class HiveSchemaTool {
     Matcher matcher                 = null;
     Pattern regexp                  = null;
     List<String> subs               = new ArrayList<String>();
-    int groupNo                     = 0;
+    int groupNo                     = 2;
 
-    switch (dbType) {
-      case HiveSchemaHelper.DB_ORACLE:
-        regexp = Pattern.compile("(CREATE TABLE(IF NOT EXISTS)*) (\\S+).*");
-        groupNo = 3;
-        break;
-
-      case HiveSchemaHelper.DB_MYSQL:
-        regexp = Pattern.compile("(CREATE TABLE) (\\S+).*");
-        groupNo = 2;
-        break;
-
-      case HiveSchemaHelper.DB_MSSQL:
-        regexp = Pattern.compile("(CREATE TABLE) (\\S+).*");
-        groupNo = 2;
-        break;
-
-      case HiveSchemaHelper.DB_DERBY:
-        regexp = Pattern.compile("(CREATE TABLE(IF NOT EXISTS)*) (\\S+).*");
-        groupNo = 3;
-        break;
-
-      case HiveSchemaHelper.DB_POSTGRACE:
-        regexp = Pattern.compile("(CREATE TABLE(IF NOT EXISTS)*) (\\S+).*");
-        groupNo = 3;
-        break;
-
-      default:
-        regexp = Pattern.compile("(CREATE TABLE(IF NOT EXISTS)*) (\\S+).*");
-        groupNo = 3;
-        break;
-    }
+    regexp = Pattern.compile("CREATE TABLE(\\s+IF NOT EXISTS)?\\s+(\\S+).*");
 
     if (!(new File(path)).exists()) {
       throw new Exception(path + " does not exist. Potentially incorrect 
version in the metastore VERSION table");
@@ -867,7 +837,7 @@ public class HiveSchemaTool {
         if (matcher.find()) {
           String table = matcher.group(groupNo);
           if (dbType.equals("derby"))
-            table  = table.replaceAll("APP.","");
+            table  = table.replaceAll("APP\\.","");
           tableList.add(table.toLowerCase());
           LOG.debug("Found table " + table + " in the schema");
         }

http://git-wip-us.apache.org/repos/asf/hive/blob/32b7abac/metastore/scripts/upgrade/derby/046-HIVE-17566.derby.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/derby/046-HIVE-17566.derby.sql 
b/metastore/scripts/upgrade/derby/046-HIVE-17566.derby.sql
new file mode 100644
index 0000000..16190dc
--- /dev/null
+++ b/metastore/scripts/upgrade/derby/046-HIVE-17566.derby.sql
@@ -0,0 +1,25 @@
+CREATE TABLE "APP"."WM_RESOURCEPLAN" (RP_ID BIGINT NOT NULL, NAME VARCHAR(128) 
NOT NULL, QUERY_PARALLELISM INTEGER, STATUS VARCHAR(20) NOT NULL);
+CREATE UNIQUE INDEX "APP"."UNIQUE_WM_RESOURCEPLAN" ON "APP"."WM_RESOURCEPLAN" 
("NAME");
+ALTER TABLE "APP"."WM_RESOURCEPLAN" ADD CONSTRAINT "WM_RESOURCEPLAN_PK" 
PRIMARY KEY ("RP_ID");
+
+CREATE TABLE "APP"."WM_POOL" (POOL_ID BIGINT NOT NULL, RP_ID BIGINT NOT NULL, 
PATH VARCHAR(1024) NOT NULL, PARENT_POOL_ID BIGINT, ALLOC_FRACTION DOUBLE, 
QUERY_PARALLELISM INTEGER);
+CREATE UNIQUE INDEX "APP"."UNIQUE_WM_POOL" ON "APP"."WM_POOL" ("RP_ID", 
"PATH");
+ALTER TABLE "APP"."WM_POOL" ADD CONSTRAINT "WM_POOL_PK" PRIMARY KEY 
("POOL_ID");
+ALTER TABLE "APP"."WM_POOL" ADD CONSTRAINT "WM_POOL_FK1" FOREIGN KEY ("RP_ID") 
REFERENCES "APP"."WM_RESOURCEPLAN" ("RP_ID") ON DELETE NO ACTION ON UPDATE NO 
ACTION;
+ALTER TABLE "APP"."WM_POOL" ADD CONSTRAINT "WM_POOL_FK2" FOREIGN KEY 
("PARENT_POOL_ID") REFERENCES "APP"."WM_POOL" ("POOL_ID") ON DELETE NO ACTION 
ON UPDATE NO ACTION;
+
+CREATE TABLE "APP"."WM_TRIGGER" (TRIGGER_ID BIGINT NOT NULL, RP_ID BIGINT NOT 
NULL, NAME VARCHAR(128) NOT NULL, TRIGGER_EXPRESSION VARCHAR(1024), 
ACTION_EXPRESSION VARCHAR(1024));
+CREATE UNIQUE INDEX "APP"."UNIQUE_WM_TRIGGER" ON "APP"."WM_TRIGGER" ("RP_ID", 
"NAME");
+ALTER TABLE "APP"."WM_TRIGGER" ADD CONSTRAINT "WM_TRIGGER_PK" PRIMARY KEY 
("TRIGGER_ID");
+ALTER TABLE "APP"."WM_TRIGGER" ADD CONSTRAINT "WM_TRIGGER_FK1" FOREIGN KEY 
("RP_ID") REFERENCES "APP"."WM_RESOURCEPLAN" ("RP_ID") ON DELETE NO ACTION ON 
UPDATE NO ACTION;
+
+CREATE TABLE "APP"."WM_POOL_TO_TRIGGER"  (POOL_ID BIGINT NOT NULL, TRIGGER_ID 
BIGINT NOT NULL);
+ALTER TABLE "APP"."WM_POOL_TO_TRIGGER" ADD CONSTRAINT "WM_POOL_TO_TRIGGER_PK" 
PRIMARY KEY ("POOL_ID", "TRIGGER_ID");
+ALTER TABLE "APP"."WM_POOL_TO_TRIGGER" ADD CONSTRAINT "WM_POOL_TO_TRIGGER_FK1" 
FOREIGN KEY ("POOL_ID") REFERENCES "APP"."WM_POOL" ("POOL_ID") ON DELETE NO 
ACTION ON UPDATE NO ACTION;
+ALTER TABLE "APP"."WM_POOL_TO_TRIGGER" ADD CONSTRAINT "WM_POOL_TO_TRIGGER_FK2" 
FOREIGN KEY ("TRIGGER_ID") REFERENCES "APP"."WM_TRIGGER" ("TRIGGER_ID") ON 
DELETE NO ACTION ON UPDATE NO ACTION;
+
+CREATE TABLE "APP"."WM_MAPPING" (MAPPING_ID BIGINT NOT NULL, RP_ID BIGINT NOT 
NULL, ENTITY_TYPE VARCHAR(10) NOT NULL, ENTITY_NAME VARCHAR(128) NOT NULL, 
POOL_ID BIGINT NOT NULL, ORDERING INTEGER);
+CREATE UNIQUE INDEX "APP"."UNIQUE_WM_MAPPING" ON "APP"."WM_MAPPING" ("RP_ID", 
"ENTITY_TYPE", "ENTITY_NAME");
+ALTER TABLE "APP"."WM_MAPPING" ADD CONSTRAINT "WM_MAPPING_PK" PRIMARY KEY 
("MAPPING_ID");
+ALTER TABLE "APP"."WM_MAPPING" ADD CONSTRAINT "WM_MAPPING_FK1" FOREIGN KEY 
("RP_ID") REFERENCES "APP"."WM_RESOURCEPLAN" ("RP_ID") ON DELETE NO ACTION ON 
UPDATE NO ACTION;
+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;

http://git-wip-us.apache.org/repos/asf/hive/blob/32b7abac/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 7b8bef1..4c35380 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
@@ -110,6 +110,16 @@ CREATE TABLE "APP"."KEY_CONSTRAINTS" ("CHILD_CD_ID" 
BIGINT, "CHILD_INTEGER_IDX"
 
 CREATE TABLE "APP"."METASTORE_DB_PROPERTIES" ("PROPERTY_KEY" VARCHAR(255) NOT 
NULL, "PROPERTY_VALUE" VARCHAR(1000) NOT NULL, "DESCRIPTION" VARCHAR(1000));
 
+CREATE TABLE "APP"."WM_RESOURCEPLAN" (RP_ID INTEGER NOT NULL, NAME 
VARCHAR(128) NOT NULL, QUERY_PARALLELISM INTEGER, STATUS VARCHAR(20) NOT NULL);
+
+CREATE TABLE "APP"."WM_POOL" (POOL_ID INTEGER NOT NULL, RP_ID INTEGER NOT 
NULL, PATH VARCHAR(1024) NOT NULL, PARENT_POOL_ID INTEGER, ALLOC_FRACTION 
DOUBLE, QUERY_PARALLELISM INTEGER);
+
+CREATE TABLE "APP"."WM_TRIGGER" (TRIGGER_ID INTEGER NOT NULL, RP_ID INTEGER 
NOT NULL, NAME VARCHAR(128) NOT NULL, TRIGGER_EXPRESSION VARCHAR(1024), 
ACTION_EXPRESSION VARCHAR(1024));
+
+CREATE TABLE "APP"."WM_POOL_TO_TRIGGER"  (POOL_ID INTEGER NOT NULL, TRIGGER_ID 
INTEGER NOT NULL);
+
+CREATE TABLE "APP"."WM_MAPPING" (MAPPING_ID INTEGER NOT NULL, RP_ID INTEGER 
NOT NULL, ENTITY_TYPE VARCHAR(10) NOT NULL, ENTITY_NAME VARCHAR(128) NOT NULL, 
POOL_ID INTEGER NOT NULL, ORDERING INTEGER);
+
 -- ----------------------------------------------
 -- DML Statements
 -- ----------------------------------------------
@@ -158,6 +168,14 @@ CREATE INDEX "APP"."CONSTRAINTS_PARENT_TBL_ID_INDEX" ON 
"APP"."KEY_CONSTRAINTS"(
 
 CREATE INDEX "APP"."CONSTRAINTS_CONSTRAINT_TYPE_INDEX" ON 
"APP"."KEY_CONSTRAINTS"("CONSTRAINT_TYPE");
 
+CREATE UNIQUE INDEX "APP"."UNIQUE_WM_RESOURCEPLAN" ON "APP"."WM_RESOURCEPLAN" 
("NAME");
+
+CREATE UNIQUE INDEX "APP"."UNIQUE_WM_POOL" ON "APP"."WM_POOL" ("RP_ID", 
"PATH");
+
+CREATE UNIQUE INDEX "APP"."UNIQUE_WM_TRIGGER" ON "APP"."WM_TRIGGER" ("RP_ID", 
"NAME");
+
+CREATE UNIQUE INDEX "APP"."UNIQUE_WM_MAPPING" ON "APP"."WM_MAPPING" ("RP_ID", 
"ENTITY_TYPE", "ENTITY_NAME");
+
 -- ----------------------------------------------
 -- DDL Statements for keys
 -- ----------------------------------------------
@@ -332,6 +350,28 @@ ALTER TABLE "APP"."FUNCS" ADD CONSTRAINT "FUNCS_FK1" 
FOREIGN KEY ("DB_ID") REFER
 
 ALTER TABLE "APP"."FUNC_RU" ADD CONSTRAINT "FUNC_RU_FK1" FOREIGN KEY 
("FUNC_ID") REFERENCES "APP"."FUNCS" ("FUNC_ID") ON DELETE NO ACTION ON UPDATE 
NO ACTION;
 
+ALTER TABLE "APP"."WM_RESOURCEPLAN" ADD CONSTRAINT "WM_RESOURCEPLAN_PK" 
PRIMARY KEY ("RP_ID");
+
+ALTER TABLE "APP"."WM_POOL" ADD CONSTRAINT "WM_POOL_PK" PRIMARY KEY 
("POOL_ID");
+
+ALTER TABLE "APP"."WM_POOL" ADD CONSTRAINT "WM_POOL_FK1" FOREIGN KEY ("RP_ID") 
REFERENCES "APP"."WM_RESOURCEPLAN" ("RP_ID") ON DELETE NO ACTION ON UPDATE NO 
ACTION;
+
+ALTER TABLE "APP"."WM_POOL" ADD CONSTRAINT "WM_POOL_FK2" FOREIGN KEY 
("PARENT_POOL_ID") REFERENCES "APP"."WM_POOL" ("POOL_ID") ON DELETE NO ACTION 
ON UPDATE NO ACTION;
+
+ALTER TABLE "APP"."WM_TRIGGER" ADD CONSTRAINT "WM_TRIGGER_PK" PRIMARY KEY 
("TRIGGER_ID");
+
+ALTER TABLE "APP"."WM_TRIGGER" ADD CONSTRAINT "WM_TRIGGER_FK1" FOREIGN KEY 
("RP_ID") REFERENCES "APP"."WM_RESOURCEPLAN" ("RP_ID") ON DELETE NO ACTION ON 
UPDATE NO ACTION;
+
+ALTER TABLE "APP"."WM_POOL_TO_TRIGGER" ADD CONSTRAINT "WM_POOL_TO_TRIGGER_FK1" 
FOREIGN KEY ("POOL_ID") REFERENCES "APP"."WM_POOL" ("POOL_ID") ON DELETE NO 
ACTION ON UPDATE NO ACTION;
+
+ALTER TABLE "APP"."WM_POOL_TO_TRIGGER" ADD CONSTRAINT "WM_POOL_TO_TRIGGER_FK2" 
FOREIGN KEY ("TRIGGER_ID") REFERENCES "APP"."WM_TRIGGER" ("TRIGGER_ID") ON 
DELETE NO ACTION ON UPDATE NO ACTION;
+
+ALTER TABLE "APP"."WM_MAPPING" ADD CONSTRAINT "WM_MAPPING_PK" PRIMARY KEY 
("MAPPING_ID");
+
+ALTER TABLE "APP"."WM_MAPPING" ADD CONSTRAINT "WM_MAPPING_FK1" FOREIGN KEY 
("RP_ID") REFERENCES "APP"."WM_RESOURCEPLAN" ("RP_ID") ON DELETE NO ACTION ON 
UPDATE NO ACTION;
+
+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;
+
 -- ----------------------------------------------
 -- DDL Statements for checks
 -- ----------------------------------------------
@@ -349,4 +389,3 @@ RUN 'hive-txn-schema-3.0.0.derby.sql';
 -- Record schema version. Should be the last step in the init script
 -- -----------------------------------------------------------------
 INSERT INTO "APP"."VERSION" (VER_ID, SCHEMA_VERSION, VERSION_COMMENT) VALUES 
(1, '3.0.0', 'Hive release version 3.0.0');
-

http://git-wip-us.apache.org/repos/asf/hive/blob/32b7abac/metastore/scripts/upgrade/derby/upgrade-2.3.0-to-3.0.0.derby.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/derby/upgrade-2.3.0-to-3.0.0.derby.sql 
b/metastore/scripts/upgrade/derby/upgrade-2.3.0-to-3.0.0.derby.sql
index 756c9c1..1f2647d 100644
--- a/metastore/scripts/upgrade/derby/upgrade-2.3.0-to-3.0.0.derby.sql
+++ b/metastore/scripts/upgrade/derby/upgrade-2.3.0-to-3.0.0.derby.sql
@@ -4,5 +4,6 @@ RUN '042-HIVE-16575.derby.sql';
 RUN '043-HIVE-16922.derby.sql';
 RUN '044-HIVE-16997.derby.sql';
 RUN '045-HIVE-16886.derby.sql';
+RUN '046-HIVE-17566.derby.sql';
 
 UPDATE "APP".VERSION SET SCHEMA_VERSION='3.0.0', VERSION_COMMENT='Hive release 
version 3.0.0' where VER_ID=1;

http://git-wip-us.apache.org/repos/asf/hive/blob/32b7abac/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 2db7e7d..ca7af06 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
@@ -947,6 +947,23 @@ SELECT
   max(CASE `PARAM_KEY` WHEN 'transient_lastDdlTime' THEN `PARAM_VALUE` END) AS 
TRANSIENT_LAST_DDL_TIME
 FROM `PARTITION_PARAMS` GROUP BY `PART_ID`;
 
+CREATE TABLE IF NOT EXISTS `WM_RESOURCEPLANS` (
+  `NAME` string,
+  `STATUS` string,
+  `QUERY_PARALLELISM` int
+)
+STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler'
+TBLPROPERTIES (
+"hive.sql.database.type" = "METASTORE",
+"hive.sql.query" =
+"SELECT
+  \"NAME\",
+  \"STATUS\",
+  \"QUERY_PARALLELISM\"
+FROM
+  \"WM_RESOURCEPLAN\""
+);
+
 DROP DATABASE IF EXISTS INFORMATION_SCHEMA;
 CREATE DATABASE INFORMATION_SCHEMA;
 

http://git-wip-us.apache.org/repos/asf/hive/blob/32b7abac/metastore/scripts/upgrade/mssql/031-HIVE-17566.mssql.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/mssql/031-HIVE-17566.mssql.sql 
b/metastore/scripts/upgrade/mssql/031-HIVE-17566.mssql.sql
new file mode 100644
index 0000000..0ee0f75
--- /dev/null
+++ b/metastore/scripts/upgrade/mssql/031-HIVE-17566.mssql.sql
@@ -0,0 +1,76 @@
+CREATE TABLE WM_RESOURCEPLAN
+(
+    RP_ID bigint NOT NULL,
+    "NAME" nvarchar(128) NOT NULL,
+    QUERY_PARALLELISM int,
+    STATUS nvarchar(20) NOT NULL
+);
+
+ALTER TABLE WM_RESOURCEPLAN ADD CONSTRAINT WM_RESOURCEPLAN_PK PRIMARY KEY 
(RP_ID);
+
+CREATE UNIQUE INDEX UNIQUE_WM_RESOURCEPLAN ON WM_RESOURCEPLAN ("NAME");
+
+
+CREATE TABLE WM_POOL
+(
+    POOL_ID bigint NOT NULL,
+    RP_ID bigint NOT NULL,
+    PATH nvarchar(1024) NOT NULL,
+    PARENT_POOL_ID bigint,
+    ALLOC_FRACTION DOUBLE,
+    QUERY_PARALLELISM int
+);
+
+ALTER TABLE WM_POOL ADD CONSTRAINT WM_POOL_PK PRIMARY KEY (POOL_ID);
+
+CREATE UNIQUE INDEX UNIQUE_WM_POOL ON WM_POOL (RP_ID, "NAME");
+ALTER TABLE WM_POOL ADD CONSTRAINT WM_POOL_FK1 FOREIGN KEY (RP_ID) REFERENCES 
WM_RESOURCEPLAN (RP_ID);
+ALTER TABLE WM_POOL ADD CONSTRAINT WM_POOL_FK2 FOREIGN KEY (PARENT_POOL_ID) 
REFERENCES WM_POOL (POOL_ID);
+
+
+CREATE TABLE WM_TRIGGER
+(
+    TRIGGER_ID bigint NOT NULL,
+    RP_ID bigint NOT NULL,
+    "NAME" nvarchar(128) NOT NULL,
+    TRIGGER_EXPRESSION nvarchar(1024),
+    ACTION_EXPRESSION nvarchar(1024)
+);
+
+ALTER TABLE WM_TRIGGER ADD CONSTRAINT WM_TRIGGER_PK PRIMARY KEY (TRIGGER_ID);
+
+CREATE UNIQUE INDEX UNIQUE_WM_TRIGGER ON WM_TRIGGER (RP_ID, "NAME");
+
+ALTER TABLE WM_TRIGGER ADD CONSTRAINT WM_TRIGGER_FK1 FOREIGN KEY (RP_ID) 
REFERENCES WM_RESOURCEPLAN (RP_ID);
+
+
+CREATE TABLE WM_POOL_TO_TRIGGER
+(
+    POOL_ID bigint NOT NULL,
+    TRIGGER_ID bigint NOT NULL
+);
+
+ALTER TABLE WM_POOL_TO_TRIGGER ADD CONSTRAINT WM_POOL_TO_TRIGGER_PK PRIMARY 
KEY (POOL_ID, TRIGGER_ID);
+
+ALTER TABLE WM_POOL_TO_TRIGGER ADD CONSTRAINT WM_POOL_TO_TRIGGER_FK1 FOREIGN 
KEY (POOL_ID) REFERENCES WM_POOL (POOL_ID);
+
+ALTER TABLE WM_POOL_TO_TRIGGER ADD CONSTRAINT WM_POOL_TO_TRIGGER_FK2 FOREIGN 
KEY (TRIGGER_ID) REFERENCES WM_TRIGGER (TRIGGER_ID);
+
+
+CREATE TABLE WM_MAPPING
+(
+    MAPPING_ID bigint NOT NULL,
+    RP_ID bigint NOT NULL,
+    ENTITY_TYPE nvarchar(10) NOT NULL,
+    ENTITY_NAME nvarchar(128) NOT NULL,
+    POOL_ID bigint NOT NULL,
+    ORDERING int
+);
+
+ALTER TABLE WM_MAPPING ADD CONSTRAINT WM_MAPPING_PK PRIMARY KEY (MAPPING_ID);
+
+CREATE UNIQUE INDEX UNIQUE_WM_MAPPING ON WM_MAPPING (RP_ID, ENTITY_TYPE, 
ENTITY_NAME);
+
+ALTER TABLE WM_MAPPING ADD CONSTRAINT WM_MAPPING_FK1 FOREIGN KEY (RP_ID) 
REFERENCES WM_RESOURCEPLAN (RP_ID);
+
+ALTER TABLE WM_MAPPING ADD CONSTRAINT WM_MAPPING_FK2 FOREIGN KEY (POOL_ID) 
REFERENCES WM_POOL (POOL_ID);

http://git-wip-us.apache.org/repos/asf/hive/blob/32b7abac/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 3c0169d..86f3e5c 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
@@ -595,7 +595,60 @@ CREATE TABLE NOTIFICATION_SEQUENCE
 
 ALTER TABLE NOTIFICATION_SEQUENCE ADD CONSTRAINT NOTIFICATION_SEQUENCE_PK 
PRIMARY KEY (NNI_ID);
 
-INSERT INTO NOTIFICATION_SEQUENCE (NNI_ID, NEXT_EVENT_ID) SELECT 1,1 WHERE NOT 
EXISTS (SELECT NEXT_EVENT_ID FROM NOTIFICATION_SEQUENCE);
+-- Tables to manage resource plans.
+
+CREATE TABLE WM_RESOURCEPLAN
+(
+    RP_ID bigint NOT NULL,
+    "NAME" nvarchar(128) NOT NULL,
+    QUERY_PARALLELISM int,
+    STATUS nvarchar(20) NOT NULL
+);
+
+ALTER TABLE WM_RESOURCEPLAN ADD CONSTRAINT WM_RESOURCEPLAN_PK PRIMARY KEY 
(RP_ID);
+
+CREATE TABLE WM_POOL
+(
+    POOL_ID bigint NOT NULL,
+    RP_ID bigint NOT NULL,
+    PATH nvarchar(1024) NOT NULL,
+    PARENT_POOL_ID bigint,
+    ALLOC_FRACTION DOUBLE,
+    QUERY_PARALLELISM int
+);
+
+ALTER TABLE WM_POOL ADD CONSTRAINT WM_POOL_PK PRIMARY KEY (POOL_ID);
+
+CREATE TABLE WM_TRIGGER
+(
+    TRIGGER_ID bigint NOT NULL,
+    RP_ID bigint NOT NULL,
+    "NAME" nvarchar(128) NOT NULL,
+    TRIGGER_EXPRESSION nvarchar(1024),
+    ACTION_EXPRESSION nvarchar(1024)
+);
+
+ALTER TABLE WM_TRIGGER ADD CONSTRAINT WM_TRIGGER_PK PRIMARY KEY (TRIGGER_ID);
+
+CREATE TABLE WM_POOL_TO_TRIGGER
+(
+    POOL_ID bigint NOT NULL,
+    TRIGGER_ID bigint NOT NULL
+);
+
+ALTER TABLE WM_POOL_TO_TRIGGER ADD CONSTRAINT WM_POOL_TO_TRIGGER_PK PRIMARY 
KEY (POOL_ID, TRIGGER_ID);
+
+CREATE TABLE WM_MAPPING
+(
+    MAPPING_ID bigint NOT NULL,
+    RP_ID bigint NOT NULL,
+    ENTITY_TYPE nvarchar(10) NOT NULL,
+    ENTITY_NAME nvarchar(128) NOT NULL,
+    POOL_ID bigint NOT NULL,
+    ORDERING int
+);
+
+ALTER TABLE WM_MAPPING ADD CONSTRAINT WM_MAPPING_PK PRIMARY KEY (MAPPING_ID);
 
 -- Constraints for table MASTER_KEYS for class(es) 
[org.apache.hadoop.hive.metastore.model.MMasterKey]
 
@@ -856,6 +909,29 @@ ALTER TABLE TABLE_PARAMS ADD CONSTRAINT TABLE_PARAMS_FK1 
FOREIGN KEY (TBL_ID) RE
 
 CREATE INDEX TABLE_PARAMS_N49 ON TABLE_PARAMS (TBL_ID);
 
+-- Constraints for resource plan tables.
+
+CREATE UNIQUE INDEX UNIQUE_WM_RESOURCEPLAN ON WM_RESOURCEPLAN ("NAME");
+
+CREATE UNIQUE INDEX UNIQUE_WM_POOL ON WM_POOL (RP_ID, PATH);
+
+ALTER TABLE WM_POOL ADD CONSTRAINT WM_POOL_FK1 FOREIGN KEY (RP_ID) REFERENCES 
WM_RESOURCEPLAN (RP_ID);
+
+ALTER TABLE WM_POOL ADD CONSTRAINT WM_POOL_FK2 FOREIGN KEY (PARENT_POOL_ID) 
REFERENCES WM_POOL (POOL_ID);
+
+CREATE UNIQUE INDEX UNIQUE_WM_TRIGGER ON WM_TRIGGER (RP_ID, "NAME");
+
+ALTER TABLE WM_TRIGGER ADD CONSTRAINT WM_TRIGGER_FK1 FOREIGN KEY (RP_ID) 
REFERENCES WM_RESOURCEPLAN (RP_ID);
+
+ALTER TABLE WM_POOL_TO_TRIGGER ADD CONSTRAINT WM_POOL_TO_TRIGGER_FK1 FOREIGN 
KEY (POOL_ID) REFERENCES WM_POOL (POOL_ID);
+
+ALTER TABLE WM_POOL_TO_TRIGGER ADD CONSTRAINT WM_POOL_TO_TRIGGER_FK2 FOREIGN 
KEY (TRIGGER_ID) REFERENCES WM_TRIGGER (TRIGGER_ID);
+
+CREATE UNIQUE INDEX UNIQUE_WM_MAPPING ON WM_MAPPING (RP_ID, ENTITY_TYPE, 
ENTITY_NAME);
+
+ALTER TABLE WM_MAPPING ADD CONSTRAINT WM_MAPPING_FK1 FOREIGN KEY (RP_ID) 
REFERENCES WM_RESOURCEPLAN (RP_ID);
+
+ALTER TABLE WM_MAPPING ADD CONSTRAINT WM_MAPPING_FK2 FOREIGN KEY (POOL_ID) 
REFERENCES WM_POOL (POOL_ID);
 
 
 -- 
-----------------------------------------------------------------------------------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/hive/blob/32b7abac/metastore/scripts/upgrade/mssql/upgrade-2.3.0-to-3.0.0.mssql.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/mssql/upgrade-2.3.0-to-3.0.0.mssql.sql 
b/metastore/scripts/upgrade/mssql/upgrade-2.3.0-to-3.0.0.mssql.sql
index cca8426..864a5e5 100644
--- a/metastore/scripts/upgrade/mssql/upgrade-2.3.0-to-3.0.0.mssql.sql
+++ b/metastore/scripts/upgrade/mssql/upgrade-2.3.0-to-3.0.0.mssql.sql
@@ -5,6 +5,7 @@ SELECT 'Upgrading MetaStore schema from 2.3.0 to 3.0.0' AS 
MESSAGE;
 :r 028-HIVE-16922.mssql.sql
 :r 029-HIVE-16997.mssql.sql
 :r 030-HIVE-16886.mssql.sql
+:r 031-HIVE-17566.mssql.sql
 
 UPDATE VERSION SET SCHEMA_VERSION='3.0.0', VERSION_COMMENT='Hive release 
version 3.0.0' where VER_ID=1;
 SELECT 'Finished upgrading MetaStore schema from 2.3.0 to 3.0.0' AS MESSAGE;

http://git-wip-us.apache.org/repos/asf/hive/blob/32b7abac/metastore/scripts/upgrade/mysql/046-HIVE-17566.mysql.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/mysql/046-HIVE-17566.mysql.sql 
b/metastore/scripts/upgrade/mysql/046-HIVE-17566.mysql.sql
new file mode 100644
index 0000000..25dfbe9
--- /dev/null
+++ b/metastore/scripts/upgrade/mysql/046-HIVE-17566.mysql.sql
@@ -0,0 +1,57 @@
+CREATE TABLE WM_RESOURCEPLAN (
+    `RP_ID` bigint(20) NOT NULL,
+    `NAME` varchar(128) NOT NULL,
+    `QUERY_PARALLELISM` int(11),
+    `STATUS` varchar(20) NOT NULL,
+    PRIMARY KEY (`RP_ID`),
+    KEY `UNIQUE_WM_RESOURCEPLAN` (`NAME`),
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE WM_POOL
+(
+    `POOL_ID` bigint(20) NOT NULL,
+    `RP_ID` bigint(20) NOT NULL,
+    `PATH` varchar(1024) NOT NULL,
+    `PARENT_POOL_ID` bigint(20),
+    `ALLOC_FRACTION` DOUBLE,
+    `QUERY_PARALLELISM` int(11),
+    PRIMARY KEY (`POOL_ID`),
+    KEY `UNIQUE_WM_POOL` (`RP_ID`, `PATH`),
+    CONSTRAINT `WM_POOL_FK1` FOREIGN KEY (`RP_ID`) REFERENCES 
`WM_RESOURCEPLAN` (`RP_ID`),
+    CONSTRAINT `WM_POOL_FK2` FOREIGN KEY (`PARENT_POOL_ID`) REFERENCES 
`WM_POOL` (`POOL_ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE WM_TRIGGER
+(
+    `TRIGGER_ID` bigint(20) NOT NULL,
+    `RP_ID` bigint(20) NOT NULL,
+    `NAME` varchar(128) NOT NULL,
+    `TRIGGER_EXPRESSION` varchar(1024),
+    `ACTION_EXPRESSION` varchar(1024),
+    PRIMARY KEY (`TRIGGER_ID`),
+    KEY `UNIQUE_WM_TRIGGER` (`RP_ID`, `NAME`),
+    CONSTRAINT `WM_TRIGGER_FK1` FOREIGN KEY (`RP_ID`) REFERENCES 
`WM_RESOURCEPLAN` (`RP_ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE WM_POOL_TO_TRIGGER
+(
+    `POOL_ID` bigint(20) NOT NULL,
+    `TRIGGER_ID` bigint(20) NOT NULL,
+    PRIMARY KEY (`POOL_ID`, `TRIGGER_ID`),
+    CONSTRAINT `WM_POOL_TO_TRIGGER_FK1` FOREIGN KEY (`POOL_ID`) REFERENCES 
`WM_POOL` (`POOL_ID`),
+    CONSTRAINT `WM_POOL_TO_TRIGGER_FK2` FOREIGN KEY (`TRIGGER_ID`) REFERENCES 
`WM_TRIGGER` (`TRIGGER_ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE WM_MAPPING
+(
+    `MAPPING_ID` bigint(20) NOT NULL,
+    `RP_ID` bigint(20) NOT NULL,
+    `ENTITY_TYPE` varchar(10) NOT NULL,
+    `ENTITY_NAME` varchar(128) NOT NULL,
+    `POOL_ID` bigint(20) NOT NULL,
+    `ORDERING int,
+    PRIMARY KEY (`MAPPING_ID`),
+    KEY `UNIQUE_WM_MAPPING` (`RP_ID`, `ENTITY_TYPE`, `ENTITY_NAME`),
+    CONSTRAINT `WM_MAPPING_FK1` FOREIGN KEY (`RP_ID`) REFERENCES 
`WM_RESOURCEPLAN` (`RP_ID`),
+    CONSTRAINT `WM_MAPPING_FK2` FOREIGN KEY (`POOL_ID`) REFERENCES `WM_POOL` 
(`POOL_ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;

http://git-wip-us.apache.org/repos/asf/hive/blob/32b7abac/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 f3baa44..0a02630 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
@@ -845,6 +845,68 @@ CREATE TABLE IF NOT EXISTS `METASTORE_DB_PROPERTIES` (
  PRIMARY KEY(`PROPERTY_KEY`)
 ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
+
+-- ---------------------
+-- Resource plan tables.
+-- ---------------------
+CREATE TABLE WM_RESOURCEPLAN (
+    `RP_ID` bigint(20) NOT NULL,
+    `NAME` varchar(128) NOT NULL,
+    `QUERY_PARALLELISM` int(11),
+    `STATUS` varchar(20) NOT NULL,
+    PRIMARY KEY (`RP_ID`),
+    KEY `UNIQUE_WM_RESOURCEPLAN` (`NAME`),
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE WM_POOL
+(
+    `POOL_ID` bigint(20) NOT NULL,
+    `RP_ID` bigint(20) NOT NULL,
+    `PATH` varchar(1024) NOT NULL,
+    `PARENT_POOL_ID` bigint(20),
+    `ALLOC_FRACTION` DOUBLE,
+    `QUERY_PARALLELISM` int(11),
+    PRIMARY KEY (`POOL_ID`),
+    KEY `UNIQUE_WM_POOL` (`RP_ID`, `PATH`),
+    CONSTRAINT `WM_POOL_FK1` FOREIGN KEY (`RP_ID`) REFERENCES 
`WM_RESOURCEPLAN` (`RP_ID`),
+    CONSTRAINT `WM_POOL_FK2` FOREIGN KEY (`PARENT_POOL_ID`) REFERENCES 
`WM_POOL` (`POOL_ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE WM_TRIGGER
+(
+    `TRIGGER_ID` bigint(20) NOT NULL,
+    `RP_ID` bigint(20) NOT NULL,
+    `NAME` varchar(128) NOT NULL,
+    `TRIGGER_EXPRESSION` varchar(1024),
+    `ACTION_EXPRESSION` varchar(1024),
+    PRIMARY KEY (`TRIGGER_ID`),
+    KEY `UNIQUE_WM_TRIGGER` (`RP_ID`, `NAME`),
+    CONSTRAINT `WM_TRIGGER_FK1` FOREIGN KEY (`RP_ID`) REFERENCES 
`WM_RESOURCEPLAN` (`RP_ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE WM_POOL_TO_TRIGGER
+(
+    `POOL_ID` bigint(20) NOT NULL,
+    `TRIGGER_ID` bigint(20) NOT NULL,
+    PRIMARY KEY (`POOL_ID`, `TRIGGER_ID`),
+    CONSTRAINT `WM_POOL_TO_TRIGGER_FK1` FOREIGN KEY (`POOL_ID`) REFERENCES 
`WM_POOL` (`POOL_ID`),
+    CONSTRAINT `WM_POOL_TO_TRIGGER_FK2` FOREIGN KEY (`TRIGGER_ID`) REFERENCES 
`WM_TRIGGER` (`TRIGGER_ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE WM_MAPPING
+(
+    `MAPPING_ID` bigint(20) NOT NULL,
+    `RP_ID` bigint(20) NOT NULL,
+    `ENTITY_TYPE` varchar(10) NOT NULL,
+    `ENTITY_NAME` varchar(128) NOT NULL,
+    `POOL_ID` bigint(20) NOT NULL,
+    `ORDERING int,
+    PRIMARY KEY (`MAPPING_ID`),
+    KEY `UNIQUE_WM_MAPPING` (`RP_ID`, `ENTITY_TYPE`, `ENTITY_NAME`),
+    CONSTRAINT `WM_MAPPING_FK1` FOREIGN KEY (`RP_ID`) REFERENCES 
`WM_RESOURCEPLAN` (`RP_ID`),
+    CONSTRAINT `WM_MAPPING_FK2` FOREIGN KEY (`POOL_ID`) REFERENCES `WM_POOL` 
(`POOL_ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
 -- ----------------------------
 -- Transaction and Lock Tables
 -- ----------------------------

http://git-wip-us.apache.org/repos/asf/hive/blob/32b7abac/metastore/scripts/upgrade/mysql/upgrade-2.3.0-to-3.0.0.mysql.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/mysql/upgrade-2.3.0-to-3.0.0.mysql.sql 
b/metastore/scripts/upgrade/mysql/upgrade-2.3.0-to-3.0.0.mysql.sql
index 120a1f8..caa059d 100644
--- a/metastore/scripts/upgrade/mysql/upgrade-2.3.0-to-3.0.0.mysql.sql
+++ b/metastore/scripts/upgrade/mysql/upgrade-2.3.0-to-3.0.0.mysql.sql
@@ -5,6 +5,7 @@ SOURCE 042-HIVE-16575.mysql.sql;
 SOURCE 043-HIVE-16922.mysql.sql;
 SOURCE 044-HIVE-16997.mysql.sql;
 SOURCE 045-HIVE-16886.mysql.sql;
+SOURCE 046-HIVE-17566.mysql.sql;
 
 UPDATE VERSION SET SCHEMA_VERSION='3.0.0', VERSION_COMMENT='Hive release 
version 3.0.0' where VER_ID=1;
 SELECT 'Finished upgrading MetaStore schema from 2.3.0 to 3.0.0' AS ' ';

http://git-wip-us.apache.org/repos/asf/hive/blob/32b7abac/metastore/scripts/upgrade/oracle/046-HIVE-17566.oracle.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/oracle/046-HIVE-17566.oracle.sql 
b/metastore/scripts/upgrade/oracle/046-HIVE-17566.oracle.sql
new file mode 100644
index 0000000..0ee0f75
--- /dev/null
+++ b/metastore/scripts/upgrade/oracle/046-HIVE-17566.oracle.sql
@@ -0,0 +1,76 @@
+CREATE TABLE WM_RESOURCEPLAN
+(
+    RP_ID bigint NOT NULL,
+    "NAME" nvarchar(128) NOT NULL,
+    QUERY_PARALLELISM int,
+    STATUS nvarchar(20) NOT NULL
+);
+
+ALTER TABLE WM_RESOURCEPLAN ADD CONSTRAINT WM_RESOURCEPLAN_PK PRIMARY KEY 
(RP_ID);
+
+CREATE UNIQUE INDEX UNIQUE_WM_RESOURCEPLAN ON WM_RESOURCEPLAN ("NAME");
+
+
+CREATE TABLE WM_POOL
+(
+    POOL_ID bigint NOT NULL,
+    RP_ID bigint NOT NULL,
+    PATH nvarchar(1024) NOT NULL,
+    PARENT_POOL_ID bigint,
+    ALLOC_FRACTION DOUBLE,
+    QUERY_PARALLELISM int
+);
+
+ALTER TABLE WM_POOL ADD CONSTRAINT WM_POOL_PK PRIMARY KEY (POOL_ID);
+
+CREATE UNIQUE INDEX UNIQUE_WM_POOL ON WM_POOL (RP_ID, "NAME");
+ALTER TABLE WM_POOL ADD CONSTRAINT WM_POOL_FK1 FOREIGN KEY (RP_ID) REFERENCES 
WM_RESOURCEPLAN (RP_ID);
+ALTER TABLE WM_POOL ADD CONSTRAINT WM_POOL_FK2 FOREIGN KEY (PARENT_POOL_ID) 
REFERENCES WM_POOL (POOL_ID);
+
+
+CREATE TABLE WM_TRIGGER
+(
+    TRIGGER_ID bigint NOT NULL,
+    RP_ID bigint NOT NULL,
+    "NAME" nvarchar(128) NOT NULL,
+    TRIGGER_EXPRESSION nvarchar(1024),
+    ACTION_EXPRESSION nvarchar(1024)
+);
+
+ALTER TABLE WM_TRIGGER ADD CONSTRAINT WM_TRIGGER_PK PRIMARY KEY (TRIGGER_ID);
+
+CREATE UNIQUE INDEX UNIQUE_WM_TRIGGER ON WM_TRIGGER (RP_ID, "NAME");
+
+ALTER TABLE WM_TRIGGER ADD CONSTRAINT WM_TRIGGER_FK1 FOREIGN KEY (RP_ID) 
REFERENCES WM_RESOURCEPLAN (RP_ID);
+
+
+CREATE TABLE WM_POOL_TO_TRIGGER
+(
+    POOL_ID bigint NOT NULL,
+    TRIGGER_ID bigint NOT NULL
+);
+
+ALTER TABLE WM_POOL_TO_TRIGGER ADD CONSTRAINT WM_POOL_TO_TRIGGER_PK PRIMARY 
KEY (POOL_ID, TRIGGER_ID);
+
+ALTER TABLE WM_POOL_TO_TRIGGER ADD CONSTRAINT WM_POOL_TO_TRIGGER_FK1 FOREIGN 
KEY (POOL_ID) REFERENCES WM_POOL (POOL_ID);
+
+ALTER TABLE WM_POOL_TO_TRIGGER ADD CONSTRAINT WM_POOL_TO_TRIGGER_FK2 FOREIGN 
KEY (TRIGGER_ID) REFERENCES WM_TRIGGER (TRIGGER_ID);
+
+
+CREATE TABLE WM_MAPPING
+(
+    MAPPING_ID bigint NOT NULL,
+    RP_ID bigint NOT NULL,
+    ENTITY_TYPE nvarchar(10) NOT NULL,
+    ENTITY_NAME nvarchar(128) NOT NULL,
+    POOL_ID bigint NOT NULL,
+    ORDERING int
+);
+
+ALTER TABLE WM_MAPPING ADD CONSTRAINT WM_MAPPING_PK PRIMARY KEY (MAPPING_ID);
+
+CREATE UNIQUE INDEX UNIQUE_WM_MAPPING ON WM_MAPPING (RP_ID, ENTITY_TYPE, 
ENTITY_NAME);
+
+ALTER TABLE WM_MAPPING ADD CONSTRAINT WM_MAPPING_FK1 FOREIGN KEY (RP_ID) 
REFERENCES WM_RESOURCEPLAN (RP_ID);
+
+ALTER TABLE WM_MAPPING ADD CONSTRAINT WM_MAPPING_FK2 FOREIGN KEY (POOL_ID) 
REFERENCES WM_POOL (POOL_ID);

http://git-wip-us.apache.org/repos/asf/hive/blob/32b7abac/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 79b9efb..47bfc5a 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
@@ -576,8 +576,60 @@ CREATE TABLE NOTIFICATION_SEQUENCE
 
 ALTER TABLE NOTIFICATION_SEQUENCE ADD CONSTRAINT NOTIFICATION_SEQUENCE_PK 
PRIMARY KEY (NNI_ID);
 
-INSERT INTO NOTIFICATION_SEQUENCE (NNI_ID, NEXT_EVENT_ID) SELECT 1,1 FROM DUAL 
WHERE NOT EXISTS ( SELECT NEXT_EVENT_ID FROM NOTIFICATION_SEQUENCE);
+-- Tables to manage resource plans.
 
+CREATE TABLE WM_RESOURCEPLAN
+(
+    RP_ID bigint NOT NULL,
+    "NAME" nvarchar(128) NOT NULL,
+    QUERY_PARALLELISM int,
+    STATUS nvarchar(20) NOT NULL
+);
+
+ALTER TABLE WM_RESOURCEPLAN ADD CONSTRAINT WM_RESOURCEPLAN_PK PRIMARY KEY 
(RP_ID);
+
+CREATE TABLE WM_POOL
+(
+    POOL_ID bigint NOT NULL,
+    RP_ID bigint NOT NULL,
+    PATH nvarchar(1024) NOT NULL,
+    PARENT_POOL_ID bigint,
+    ALLOC_FRACTION DOUBLE,
+    QUERY_PARALLELISM int
+);
+
+ALTER TABLE WM_POOL ADD CONSTRAINT WM_POOL_PK PRIMARY KEY (POOL_ID);
+
+CREATE TABLE WM_TRIGGER
+(
+    TRIGGER_ID bigint NOT NULL,
+    RP_ID bigint NOT NULL,
+    "NAME" nvarchar(128) NOT NULL,
+    TRIGGER_EXPRESSION nvarchar(1024),
+    ACTION_EXPRESSION nvarchar(1024)
+);
+
+ALTER TABLE WM_TRIGGER ADD CONSTRAINT WM_TRIGGER_PK PRIMARY KEY (TRIGGER_ID);
+
+CREATE TABLE WM_POOL_TO_TRIGGER
+(
+    POOL_ID bigint NOT NULL,
+    TRIGGER_ID bigint NOT NULL
+);
+
+ALTER TABLE WM_POOL_TO_TRIGGER ADD CONSTRAINT WM_POOL_TO_TRIGGER_PK PRIMARY 
KEY (POOL_ID, TRIGGER_ID);
+
+CREATE TABLE WM_MAPPING
+(
+    MAPPING_ID bigint NOT NULL,
+    RP_ID bigint NOT NULL,
+    ENTITY_TYPE nvarchar(10) NOT NULL,
+    ENTITY_NAME nvarchar(128) NOT NULL,
+    POOL_ID bigint NOT NULL,
+    ORDERING int
+);
+
+ALTER TABLE WM_MAPPING ADD CONSTRAINT WM_MAPPING_PK PRIMARY KEY (MAPPING_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 ;
@@ -814,6 +866,30 @@ CREATE TABLE METASTORE_DB_PROPERTIES
 
 ALTER TABLE METASTORE_DB_PROPERTIES ADD CONSTRAINT PROPERTY_KEY_PK PRIMARY KEY 
(PROPERTY_KEY);
 
+-- Constraints for resource plan tables.
+
+CREATE UNIQUE INDEX UNIQUE_WM_RESOURCEPLAN ON WM_RESOURCEPLAN ("NAME");
+
+CREATE UNIQUE INDEX UNIQUE_WM_POOL ON WM_POOL (RP_ID, PATH);
+
+ALTER TABLE WM_POOL ADD CONSTRAINT WM_POOL_FK1 FOREIGN KEY (RP_ID) REFERENCES 
WM_RESOURCEPLAN (RP_ID);
+
+ALTER TABLE WM_POOL ADD CONSTRAINT WM_POOL_FK2 FOREIGN KEY (PARENT_POOL_ID) 
REFERENCES WM_POOL (POOL_ID);
+
+CREATE UNIQUE INDEX UNIQUE_WM_TRIGGER ON WM_TRIGGER (RP_ID, "NAME");
+
+ALTER TABLE WM_TRIGGER ADD CONSTRAINT WM_TRIGGER_FK1 FOREIGN KEY (RP_ID) 
REFERENCES WM_RESOURCEPLAN (RP_ID);
+
+ALTER TABLE WM_POOL_TO_TRIGGER ADD CONSTRAINT WM_POOL_TO_TRIGGER_FK1 FOREIGN 
KEY (POOL_ID) REFERENCES WM_POOL (POOL_ID);
+
+ALTER TABLE WM_POOL_TO_TRIGGER ADD CONSTRAINT WM_POOL_TO_TRIGGER_FK2 FOREIGN 
KEY (TRIGGER_ID) REFERENCES WM_TRIGGER (TRIGGER_ID);
+
+CREATE UNIQUE INDEX UNIQUE_WM_MAPPING ON WM_MAPPING (RP_ID, ENTITY_TYPE, 
ENTITY_NAME);
+
+ALTER TABLE WM_MAPPING ADD CONSTRAINT WM_MAPPING_FK1 FOREIGN KEY (RP_ID) 
REFERENCES WM_RESOURCEPLAN (RP_ID);
+
+ALTER TABLE WM_MAPPING ADD CONSTRAINT WM_MAPPING_FK2 FOREIGN KEY (POOL_ID) 
REFERENCES WM_POOL (POOL_ID);
+
 ------------------------------
 -- Transaction and lock tables
 ------------------------------

http://git-wip-us.apache.org/repos/asf/hive/blob/32b7abac/metastore/scripts/upgrade/oracle/upgrade-2.3.0-to-3.0.0.oracle.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/oracle/upgrade-2.3.0-to-3.0.0.oracle.sql 
b/metastore/scripts/upgrade/oracle/upgrade-2.3.0-to-3.0.0.oracle.sql
index 9b8b162..33174c8 100644
--- a/metastore/scripts/upgrade/oracle/upgrade-2.3.0-to-3.0.0.oracle.sql
+++ b/metastore/scripts/upgrade/oracle/upgrade-2.3.0-to-3.0.0.oracle.sql
@@ -5,6 +5,7 @@ SELECT 'Upgrading MetaStore schema from 2.3.0 to 3.0.0' AS 
Status from dual;
 @043-HIVE-16922.oracle.sql;
 @044-HIVE-16997.oracle.sql;
 @045-HIVE-16886.oracle.sql;
[email protected];
 
 UPDATE VERSION SET SCHEMA_VERSION='3.0.0', VERSION_COMMENT='Hive release 
version 3.0.0' where VER_ID=1;
 SELECT 'Finished upgrading MetaStore schema from 2.3.0 to 3.0.0' AS Status 
from dual;

http://git-wip-us.apache.org/repos/asf/hive/blob/32b7abac/metastore/scripts/upgrade/postgres/045-HIVE-17566.postgres.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/postgres/045-HIVE-17566.postgres.sql 
b/metastore/scripts/upgrade/postgres/045-HIVE-17566.postgres.sql
new file mode 100644
index 0000000..aa27a64
--- /dev/null
+++ b/metastore/scripts/upgrade/postgres/045-HIVE-17566.postgres.sql
@@ -0,0 +1,88 @@
+CREATE TABLE "WM_RESOURCEPLAN" (
+    "RP_ID" bigint NOT NULL,
+    "NAME" character varying(128) NOT NULL,
+    "QUERY_PARALLELISM" integer,
+    "STATUS" character varying(20) NOT NULL
+);
+
+ALTER TABLE ONLY "WM_RESOURCEPLAN"
+    ADD CONSTRAINT "WM_RESOURCEPLAN_pkey" PRIMARY KEY ("RP_ID");
+
+ALTER TABLE ONLY "WM_RESOURCEPLAN"
+    ADD CONSTRAINT "UNIQUE_WM_RESOURCEPLAN" UNIQUE ("NAME");
+
+
+CREATE TABLE "WM_POOL" (
+    "POOL_ID" bigint NOT NULL,
+    "RP_ID" bigint NOT NULL,
+    "PATH" character varying(1024) NOT NULL,
+    "PARENT_POOL_ID" bigint,
+    "ALLOC_FRACTION" DOUBLE,
+    "QUERY_PARALLELISM" integer
+);
+
+ALTER TABLE ONLY "WM_POOL"
+    ADD CONSTRAINT "WM_POOL_pkey" PRIMARY KEY ("POOL_ID");
+
+ALTER TABLE ONLY "WM_POOL"
+    ADD CONSTRAINT "UNIQUE_WM_POOL" UNIQUE ("RP_ID", "PATH");
+
+ALTER TABLE ONLY "WM_POOL"
+    ADD CONSTRAINT "WM_POOL_FK1" FOREIGN KEY ("RP_ID") REFERENCES 
"WM_RESOURCEPLAN" ("RP_ID") DEFERRABLE;
+ALTER TABLE ONLY "WM_POOL"
+    ADD CONSTRAINT "WM_POOL_FK2" FOREIGN KEY ("PARENT_POOL_ID") REFERENCES 
"WM_POOL" ("POOL_ID") DEFERRABLE;
+
+
+CREATE TABLE "WM_TRIGGER" (
+    "TRIGGER_ID" bigint NOT NULL,
+    "RP_ID" bigint NOT NULL,
+    "NAME" character varying(128) NOT NULL,
+    "TRIGGER_EXPRESSION" character varying(1024) DEFAULT NULL::character 
varying,
+    "ACTION_EXPRESSION" character varying(1024) DEFAULT NULL::character varying
+);
+
+ALTER TABLE ONLY "WM_TRIGGER"
+    ADD CONSTRAINT "WM_TRIGGER_pkey" PRIMARY KEY ("TRIGGER_ID");
+
+ALTER TABLE ONLY "WM_TRIGGER"
+    ADD CONSTRAINT "UNIQUE_WM_TRIGGER" UNIQUE ("RP_ID", "NAME");
+
+ALTER TABLE ONLY "WM_TRIGGER"
+    ADD CONSTRAINT "WM_TRIGGER_FK1" FOREIGN KEY ("RP_ID") REFERENCES 
"WM_RESOURCEPLAN" ("RP_ID") DEFERRABLE;
+
+
+CREATE TABLE "WM_POOL_TO_TRIGGER" (
+    "POOL_ID" bigint NOT NULL,
+    "TRIGGER_ID" bigint NOT NULL
+);
+
+ALTER TABLE ONLY "WM_POOL_TO_TRIGGER"
+    ADD CONSTRAINT "WM_POOL_TO_TRIGGER_pkey" PRIMARY KEY ("POOL_ID", 
"TRIGGER_ID");
+
+ALTER TABLE ONLY "WM_POOL_TO_TRIGGER"
+    ADD CONSTRAINT "WM_POOL_TO_TRIGGER_FK1" FOREIGN KEY ("POOL_ID") REFERENCES 
"WM_POOL" ("POOL_ID") DEFERRABLE;
+
+ALTER TABLE ONLY "WM_POOL_TO_TRIGGER"
+    ADD CONSTRAINT "WM_POOL_TO_TRIGGER_FK2" FOREIGN KEY ("TRIGGER_ID") 
REFERENCES "WM_TRIGGER" ("TRIGGER_ID") DEFERRABLE;
+
+
+CREATE TABLE "WM_MAPPING" (
+    "MAPPING_ID" bigint NOT NULL,
+    "RP_ID" bigint NOT NULL,
+    "ENTITY_TYPE" character varying(10) NOT NULL,
+    "ENTITY_NAME" character varying(128) NOT NULL,
+    "POOL_ID" bigint NOT NULL,
+    "ORDERING" integer
+);
+
+ALTER TABLE ONLY "WM_MAPPING"
+    ADD CONSTRAINT "WM_MAPPING_pkey" PRIMARY KEY ("MAPPING_ID");
+
+ALTER TABLE ONLY "WM_MAPPING"
+    ADD CONSTRAINT "UNIQUE_WM_MAPPING" UNIQUE ("RP_ID", "ENTITY_TYPE", 
"ENTITY_NAME");
+
+ALTER TABLE ONLY "WM_MAPPING"
+    ADD CONSTRAINT "WM_MAPPING_FK1" FOREIGN KEY ("RP_ID") REFERENCES 
"WM_RESOURCEPLAN" ("RP_ID") DEFERRABLE;
+
+ALTER TABLE ONLY "WM_MAPPING"
+    ADD CONSTRAINT "WM_MAPPING_FK2" FOREIGN KEY ("POOL_ID") REFERENCES 
"WM_POOL" ("POOL_ID") DEFERRABLE;

http://git-wip-us.apache.org/repos/asf/hive/blob/32b7abac/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 92a2d38..5c770e2 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
@@ -618,6 +618,45 @@ CREATE TABLE "METASTORE_DB_PROPERTIES"
   "DESCRIPTION" VARCHAR(1000)
 );
 
+
+CREATE TABLE "WM_RESOURCEPLAN" (
+    "RP_ID" bigint NOT NULL,
+    "NAME" character varying(128) NOT NULL,
+    "QUERY_PARALLELISM" integer,
+    "STATUS" character varying(20) NOT NULL
+);
+
+CREATE TABLE "WM_POOL" (
+    "POOL_ID" bigint NOT NULL,
+    "RP_ID" bigint NOT NULL,
+    "PATH" character varying(1024) NOT NULL,
+    "PARENT_POOL_ID" bigint,
+    "ALLOC_FRACTION" DOUBLE,
+    "QUERY_PARALLELISM" integer
+);
+
+CREATE TABLE "WM_TRIGGER" (
+    "TRIGGER_ID" bigint NOT NULL,
+    "RP_ID" bigint NOT NULL,
+    "NAME" character varying(128) NOT NULL,
+    "TRIGGER_EXPRESSION" character varying(1024) DEFAULT NULL::character 
varying,
+    "ACTION_EXPRESSION" character varying(1024) DEFAULT NULL::character varying
+);
+
+CREATE TABLE "WM_POOL_TO_TRIGGER" (
+    "POOL_ID" bigint NOT NULL,
+    "TRIGGER_ID" bigint NOT NULL
+);
+
+CREATE TABLE "WM_MAPPING" (
+    "MAPPING_ID" bigint NOT NULL,
+    "RP_ID" bigint NOT NULL,
+    "ENTITY_TYPE" character varying(10) NOT NULL,
+    "ENTITY_NAME" character varying(128) NOT NULL,
+    "POOL_ID" bigint NOT NULL,
+    "ORDERING" integer
+);
+
 --
 -- Name: BUCKETING_COLS_pkey; Type: CONSTRAINT; Schema: public; Owner: 
hiveuser; Tablespace:
 --
@@ -965,6 +1004,35 @@ ALTER TABLE ONLY "ROLE_MAP"
 ALTER TABLE ONLY "METASTORE_DB_PROPERTIES"
     ADD CONSTRAINT "PROPERTY_KEY_PK" PRIMARY KEY ("PROPERTY_KEY");
 
+
+-- Resource plan: Primary key and unique key constraints.
+ALTER TABLE ONLY "WM_RESOURCEPLAN"
+    ADD CONSTRAINT "WM_RESOURCEPLAN_pkey" PRIMARY KEY ("RP_ID");
+
+ALTER TABLE ONLY "WM_POOL"
+    ADD CONSTRAINT "UNIQUE_WM_RESOURCEPLAN" UNIQUE ("NAME");
+
+ALTER TABLE ONLY "WM_POOL"
+    ADD CONSTRAINT "WM_POOL_pkey" PRIMARY KEY ("POOL_ID");
+
+ALTER TABLE ONLY "WM_POOL"
+    ADD CONSTRAINT "UNIQUE_WM_POOL" UNIQUE ("RP_ID", "PATH");
+
+ALTER TABLE ONLY "WM_TRIGGER"
+    ADD CONSTRAINT "WM_TRIGGER_pkey" PRIMARY KEY ("TRIGGER_ID");
+
+ALTER TABLE ONLY "WM_TRIGGER"
+    ADD CONSTRAINT "UNIQUE_WM_TRIGGER" UNIQUE ("RP_ID", "NAME");
+
+ALTER TABLE ONLY "WM_POOL_TO_TRIGGER"
+    ADD CONSTRAINT "WM_POOL_TO_TRIGGER_pkey" PRIMARY KEY ("POOL_ID", 
"TRIGGER_ID");
+
+ALTER TABLE ONLY "WM_MAPPING"
+    ADD CONSTRAINT "WM_MAPPING_pkey" PRIMARY KEY ("MAPPING_ID");
+
+ALTER TABLE ONLY "WM_MAPPING"
+    ADD CONSTRAINT "UNIQUE_WM_MAPPING" UNIQUE ("RP_ID", "ENTITY_TYPE", 
"ENTITY_NAME");
+
 --
 -- Name: BUCKETING_COLS_N49; Type: INDEX; Schema: public; Owner: hiveuser; 
Tablespace:
 --
@@ -1473,6 +1541,29 @@ ALTER TABLE ONLY "FUNCS"
 ALTER TABLE ONLY "FUNC_RU"
     ADD CONSTRAINT "FUNC_RU_FK1" FOREIGN KEY ("FUNC_ID") REFERENCES "FUNCS" 
("FUNC_ID") DEFERRABLE;
 
+-- Resource plan FK constraints.
+
+ALTER TABLE ONLY "WM_POOL"
+    ADD CONSTRAINT "WM_POOL_FK1" FOREIGN KEY ("RP_ID") REFERENCES 
"WM_RESOURCEPLAN" ("RP_ID") DEFERRABLE;
+
+ALTER TABLE ONLY "WM_POOL"
+    ADD CONSTRAINT "WM_POOL_FK2" FOREIGN KEY ("PARENT_POOL_ID") REFERENCES 
"WM_POOL" ("POOL_ID") DEFERRABLE;
+
+ALTER TABLE ONLY "WM_TRIGGER"
+    ADD CONSTRAINT "WM_TRIGGER_FK1" FOREIGN KEY ("RP_ID") REFERENCES 
"WM_RESOURCEPLAN" ("RP_ID") DEFERRABLE;
+
+ALTER TABLE ONLY "WM_POOL_TO_TRIGGER"
+    ADD CONSTRAINT "WM_POOL_TO_TRIGGER_FK1" FOREIGN KEY ("POOL_ID") REFERENCES 
"WM_POOL" ("POOL_ID") DEFERRABLE;
+
+ALTER TABLE ONLY "WM_POOL_TO_TRIGGER"
+    ADD CONSTRAINT "WM_POOL_TO_TRIGGER_FK2" FOREIGN KEY ("TRIGGER_ID") 
REFERENCES "WM_TRIGGER" ("TRIGGER_ID") DEFERRABLE;
+
+ALTER TABLE ONLY "WM_MAPPING"
+    ADD CONSTRAINT "WM_MAPPING_FK1" FOREIGN KEY ("RP_ID") REFERENCES 
"WM_RESOURCEPLAN" ("RP_ID") DEFERRABLE;
+
+ALTER TABLE ONLY "WM_MAPPING"
+    ADD CONSTRAINT "WM_MAPPING_FK2" FOREIGN KEY ("POOL_ID") REFERENCES 
"WM_POOL" ("POOL_ID") DEFERRABLE;
+
 --
 -- Name: public; Type: ACL; Schema: -; Owner: hiveuser
 --

http://git-wip-us.apache.org/repos/asf/hive/blob/32b7abac/metastore/scripts/upgrade/postgres/upgrade-2.3.0-to-3.0.0.postgres.sql
----------------------------------------------------------------------
diff --git 
a/metastore/scripts/upgrade/postgres/upgrade-2.3.0-to-3.0.0.postgres.sql 
b/metastore/scripts/upgrade/postgres/upgrade-2.3.0-to-3.0.0.postgres.sql
index c4d3d5f..01d359e 100644
--- a/metastore/scripts/upgrade/postgres/upgrade-2.3.0-to-3.0.0.postgres.sql
+++ b/metastore/scripts/upgrade/postgres/upgrade-2.3.0-to-3.0.0.postgres.sql
@@ -5,6 +5,7 @@ SELECT 'Upgrading MetaStore schema from 2.3.0 to 3.0.0';
 \i 042-HIVE-16922.postgres.sql;
 \i 043-HIVE-16997.postgres.sql;
 \i 044-HIVE-16886.postgres.sql;
+\i 045-HIVE-17566.postgres.sql;
 
 UPDATE "VERSION" SET "SCHEMA_VERSION"='3.0.0', "VERSION_COMMENT"='Hive release 
version 3.0.0' where "VER_ID"=1;
 SELECT 'Finished upgrading MetaStore schema from 2.3.0 to 3.0.0';

http://git-wip-us.apache.org/repos/asf/hive/blob/32b7abac/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreDirectSql.java
----------------------------------------------------------------------
diff --git 
a/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreDirectSql.java 
b/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreDirectSql.java
index 6ae6f32..9c51d8e 100644
--- 
a/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreDirectSql.java
+++ 
b/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreDirectSql.java
@@ -72,6 +72,7 @@ import 
org.apache.hadoop.hive.metastore.model.MNotificationLog;
 import org.apache.hadoop.hive.metastore.model.MNotificationNextId;
 import org.apache.hadoop.hive.metastore.model.MPartitionColumnStatistics;
 import org.apache.hadoop.hive.metastore.model.MTableColumnStatistics;
+import org.apache.hadoop.hive.metastore.model.MWMResourcePlan;
 import org.apache.hadoop.hive.metastore.parser.ExpressionTree;
 import org.apache.hadoop.hive.metastore.parser.ExpressionTree.FilterBuilder;
 import org.apache.hadoop.hive.metastore.parser.ExpressionTree.LeafNode;
@@ -222,6 +223,7 @@ class MetaStoreDirectSql {
       initQueries.add(pm.newQuery(MConstraint.class, "childIntegerIndex < 0"));
       initQueries.add(pm.newQuery(MNotificationLog.class, "dbName == ''"));
       initQueries.add(pm.newQuery(MNotificationNextId.class, "nextEventId < 
-1"));
+      initQueries.add(pm.newQuery(MWMResourcePlan.class, "name == ''"));
       Query q;
       while ((q = initQueries.peekFirst()) != null) {
         q.execute();

http://git-wip-us.apache.org/repos/asf/hive/blob/32b7abac/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 425dd97..9813636 100644
--- a/ql/src/test/results/clientpositive/llap/sysdb.q.out
+++ b/ql/src/test/results/clientpositive/llap/sysdb.q.out
@@ -2187,6 +2187,44 @@ POSTHOOK: Lineage: PARTITION_STATS_VIEW.part_id SIMPLE 
[(partition_params)partit
 POSTHOOK: Lineage: PARTITION_STATS_VIEW.raw_data_size EXPRESSION 
[(partition_params)partition_params.FieldSchema(name:param_key, type:string, 
comment:from deserializer), 
(partition_params)partition_params.FieldSchema(name:param_value, type:string, 
comment:from deserializer), ]
 POSTHOOK: Lineage: PARTITION_STATS_VIEW.total_size EXPRESSION 
[(partition_params)partition_params.FieldSchema(name:param_key, type:string, 
comment:from deserializer), 
(partition_params)partition_params.FieldSchema(name:param_value, type:string, 
comment:from deserializer), ]
 POSTHOOK: Lineage: PARTITION_STATS_VIEW.transient_last_ddl_time EXPRESSION 
[(partition_params)partition_params.FieldSchema(name:param_key, type:string, 
comment:from deserializer), 
(partition_params)partition_params.FieldSchema(name:param_value, type:string, 
comment:from deserializer), ]
+PREHOOK: query: CREATE TABLE IF NOT EXISTS `WM_RESOURCEPLANS` (
+  `NAME` string,
+  `STATUS` string,
+  `QUERY_PARALLELISM` int
+)
+STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler'
+TBLPROPERTIES (
+"hive.sql.database.type" = "METASTORE",
+"hive.sql.query" =
+"SELECT
+  \"NAME\",
+  \"STATUS\",
+  \"QUERY_PARALLELISM\"
+FROM
+  \"WM_RESOURCEPLAN\""
+)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: SYS@WM_RESOURCEPLANS
+PREHOOK: Output: database:sys
+POSTHOOK: query: CREATE TABLE IF NOT EXISTS `WM_RESOURCEPLANS` (
+  `NAME` string,
+  `STATUS` string,
+  `QUERY_PARALLELISM` int
+)
+STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler'
+TBLPROPERTIES (
+"hive.sql.database.type" = "METASTORE",
+"hive.sql.query" =
+"SELECT
+  \"NAME\",
+  \"STATUS\",
+  \"QUERY_PARALLELISM\"
+FROM
+  \"WM_RESOURCEPLAN\""
+)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: SYS@WM_RESOURCEPLANS
+POSTHOOK: Output: database:sys
 PREHOOK: query: DROP DATABASE IF EXISTS INFORMATION_SCHEMA
 PREHOOK: type: DROPDATABASE
 POSTHOOK: query: DROP DATABASE IF EXISTS INFORMATION_SCHEMA
@@ -2967,7 +3005,7 @@ POSTHOOK: query: select count(*) from cds
 POSTHOOK: type: QUERY
 POSTHOOK: Input: sys@cds
 #### A masked pattern was here ####
-65
+66
 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
@@ -3121,7 +3159,7 @@ POSTHOOK: query: select count(*) from sds
 POSTHOOK: type: QUERY
 POSTHOOK: Input: sys@sds
 #### A masked pattern was here ####
-71
+72
 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
@@ -3347,7 +3385,7 @@ 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":{"column_name":"true","create_time":"true","grant_option":"true","grantor":"true","grantor_type":"true","principal_name":"true","principal_type":"true","tbl_col_priv":"true","tbl_column_grant_id":"true","tbl_id":"true"}}
      0       0       0       0
+{"BASIC_STATS":"true","COLUMN_STATS":{"name":"true","query_parallelism":"true","status":"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
 #### A masked pattern was here ####
@@ -3552,6 +3590,7 @@ default   sys     tbl_col_privs   BASE_TABLE      NULL    
NULL    NULL    NULL    NULL    YES     NO      NULL
 default        sys     tbl_privs       BASE_TABLE      NULL    NULL    NULL    
NULL    NULL    YES     NO      NULL
 default        sys     tbls    BASE_TABLE      NULL    NULL    NULL    NULL    
NULL    YES     NO      NULL
 default        sys     version BASE_TABLE      NULL    NULL    NULL    NULL    
NULL    YES     NO      NULL
+default        sys     wm_resourceplans        BASE_TABLE      NULL    NULL    
NULL    NULL    NULL    YES     NO      NULL
 PREHOOK: query: select * from TABLE_PRIVILEGES order by GRANTOR, GRANTEE, 
TABLE_SCHEMA, TABLE_NAME, PRIVILEGE_TYPE limit 10
 PREHOOK: type: QUERY
 PREHOOK: Input: information_schema@table_privileges

Reply via email to