You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by sp...@apache.org on 2018/05/30 13:24:17 UTC
[2/6] hive git commit: HIVE-19372: Add table ownerType to JDO/SQL and
ObjectStore (Sergio Pena, reviewed by Vihang Karajgaonkar)
HIVE-19372: Add table ownerType to JDO/SQL and ObjectStore (Sergio Pena, reviewed by Vihang Karajgaonkar)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/72f75d37
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/72f75d37
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/72f75d37
Branch: refs/heads/branch-2
Commit: 72f75d37675cad605e7b8fd1f2255470255395ce
Parents: 117c3b4
Author: Sergio Pena <se...@cloudera.com>
Authored: Thu May 24 17:02:49 2018 -0500
Committer: Sergio Pena <se...@cloudera.com>
Committed: Wed May 30 08:21:12 2018 -0500
----------------------------------------------------------------------
.../metastore/hbase/TestHBaseSchemaTool.java | 8 ++++----
.../upgrade/derby/041-HIVE-19372.derby.sql | 1 +
.../upgrade/derby/hive-schema-2.4.0.derby.sql | 2 +-
.../derby/upgrade-2.3.0-to-2.4.0.derby.sql | 2 ++
.../upgrade/mssql/026-HIVE-19372.mssql.sql | 1 +
.../upgrade/mssql/hive-schema-2.4.0.mssql.sql | 1 +
.../mssql/upgrade-2.3.0-to-2.4.0.mssql.sql | 2 ++
.../upgrade/mysql/041-HIVE-19372.mysql.sql | 1 +
.../upgrade/mysql/hive-schema-2.4.0.mysql.sql | 1 +
.../mysql/upgrade-2.3.0-to-2.4.0.mysql.sql | 2 ++
.../upgrade/oracle/041-HIVE-19372.oracle.sql | 1 +
.../upgrade/oracle/hive-schema-2.4.0.oracle.sql | 1 +
.../oracle/upgrade-2.3.0-to-2.4.0.oracle.sql | 1 +
.../upgrade/postgres/040-HIVE-19372.postgres.sql | 1 +
.../postgres/hive-schema-2.4.0.postgres.sql | 1 +
.../postgres/upgrade-2.3.0-to-2.4.0.postgres.sql | 1 +
.../hadoop/hive/metastore/ObjectStore.java | 16 +++++++++++++++-
.../hadoop/hive/metastore/model/MTable.java | 19 ++++++++++++++++++-
metastore/src/model/package.jdo | 3 +++
.../hadoop/hive/metastore/TestObjectStore.java | 10 ++++++++++
20 files changed, 68 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/72f75d37/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/TestHBaseSchemaTool.java
----------------------------------------------------------------------
diff --git a/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/TestHBaseSchemaTool.java b/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/TestHBaseSchemaTool.java
index c98911a..68ed10c 100644
--- a/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/TestHBaseSchemaTool.java
+++ b/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/TestHBaseSchemaTool.java
@@ -455,7 +455,7 @@ public class TestHBaseSchemaTool extends HBaseIntegrationTests {
"\"createTime\":0,\"lastAccessTime\":0,\"retention\":0," +
"\"partitionKeys\":[{\"name\":\"pcol1\",\"type\":\"string\",\"comment\":\"\"}," +
"{\"name\":\"pcol2\",\"type\":\"string\",\"comment\":\"\"}],\"parameters\":{}," +
- "\"tableType\":\"\",\"rewriteEnabled\":0} sdHash: qQTgZAi5VzgpozzFGmIVTQ stats:" + lsep,
+ "\"tableType\":\"\",\"rewriteEnabled\":0,\"ownerType\":1} sdHash: qQTgZAi5VzgpozzFGmIVTQ stats:" + lsep,
outStr.toString());
outStr = new ByteArrayOutputStream();
@@ -465,7 +465,7 @@ public class TestHBaseSchemaTool extends HBaseIntegrationTests {
"\"createTime\":0,\"lastAccessTime\":0,\"retention\":0," +
"\"partitionKeys\":[{\"name\":\"pcol1\",\"type\":\"string\",\"comment\":\"\"}," +
"{\"name\":\"pcol2\",\"type\":\"string\",\"comment\":\"\"}],\"parameters\":{\"COLUMN_STATS_ACCURATE\":\"{\\\"COLUMN_STATS\\\":{\\\"col1\\\":\\\"true\\\",\\\"col2\\\":\\\"true\\\"}}\"}," +
- "\"tableType\":\"\",\"rewriteEnabled\":0} sdHash: qQTgZAi5VzgpozzFGmIVTQ stats: column " +
+ "\"tableType\":\"\",\"rewriteEnabled\":0,\"ownerType\":1} sdHash: qQTgZAi5VzgpozzFGmIVTQ stats: column " +
"col1: {\"colName\":\"col1\",\"colType\":\"int\"," +
"\"statsData\":{\"longStats\":{\"lowValue\":-95,\"highValue\":95,\"numNulls\":1," +
"\"numDVs\":2,\"bitVectors\":\"\"}}} column col2: {\"colName\":\"col2\",\"colType\":\"varchar(32)\"," +
@@ -474,12 +474,12 @@ public class TestHBaseSchemaTool extends HBaseIntegrationTests {
"{\"tableName\":\"tab1\",\"dbName\":\"db0\",\"owner\":\"me\",\"createTime\":0," +
"\"lastAccessTime\":0,\"retention\":0,\"partitionKeys\":[{\"name\":\"pcol1\"," +
"\"type\":\"string\",\"comment\":\"\"},{\"name\":\"pcol2\",\"type\":\"string\"," +
- "\"comment\":\"\"}],\"parameters\":{},\"tableType\":\"\",\"rewriteEnabled\":0} sdHash: " +
+ "\"comment\":\"\"}],\"parameters\":{},\"tableType\":\"\",\"rewriteEnabled\":0,\"ownerType\":1} sdHash: " +
"qQTgZAi5VzgpozzFGmIVTQ stats:" + lsep +
"{\"tableName\":\"tab2\",\"dbName\":\"db0\",\"owner\":\"me\",\"createTime\":0," +
"\"lastAccessTime\":0,\"retention\":0,\"partitionKeys\":[{\"name\":\"pcol1\"," +
"\"type\":\"string\",\"comment\":\"\"},{\"name\":\"pcol2\",\"type\":\"string\"," +
- "\"comment\":\"\"}],\"parameters\":{},\"tableType\":\"\",\"rewriteEnabled\":0} sdHash: " +
+ "\"comment\":\"\"}],\"parameters\":{},\"tableType\":\"\",\"rewriteEnabled\":0,\"ownerType\":1} sdHash: " +
"qQTgZAi5VzgpozzFGmIVTQ stats:" + lsep, outStr.toString());
List<List<String>> partVals = Arrays.asList(Arrays.asList("a", "b"), Arrays.asList("c", "d"));
http://git-wip-us.apache.org/repos/asf/hive/blob/72f75d37/metastore/scripts/upgrade/derby/041-HIVE-19372.derby.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/derby/041-HIVE-19372.derby.sql b/metastore/scripts/upgrade/derby/041-HIVE-19372.derby.sql
new file mode 100644
index 0000000..4119607
--- /dev/null
+++ b/metastore/scripts/upgrade/derby/041-HIVE-19372.derby.sql
@@ -0,0 +1 @@
+ALTER TABLE "APP"."TBLS" ADD COLUMN "OWNER_TYPE" VARCHAR(10);
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/72f75d37/metastore/scripts/upgrade/derby/hive-schema-2.4.0.derby.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/derby/hive-schema-2.4.0.derby.sql b/metastore/scripts/upgrade/derby/hive-schema-2.4.0.derby.sql
index 8e69b4c..f30b5b4 100644
--- a/metastore/scripts/upgrade/derby/hive-schema-2.4.0.derby.sql
+++ b/metastore/scripts/upgrade/derby/hive-schema-2.4.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(256), "TBL_TYPE" VARCHAR(128), "VIEW_EXPANDED_TEXT" LONG VARCHAR, "VIEW_ORIGINAL_TEXT" LONG VARCHAR, "IS_REWRITE_ENABLED" CHAR(1) NOT NULL);
+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), "OWNER_TYPE" VARCHAR(10), "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);
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);
http://git-wip-us.apache.org/repos/asf/hive/blob/72f75d37/metastore/scripts/upgrade/derby/upgrade-2.3.0-to-2.4.0.derby.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/derby/upgrade-2.3.0-to-2.4.0.derby.sql b/metastore/scripts/upgrade/derby/upgrade-2.3.0-to-2.4.0.derby.sql
index 4bb473f..58dde50 100644
--- a/metastore/scripts/upgrade/derby/upgrade-2.3.0-to-2.4.0.derby.sql
+++ b/metastore/scripts/upgrade/derby/upgrade-2.3.0-to-2.4.0.derby.sql
@@ -1,3 +1,5 @@
-- Upgrade MetaStore schema from 2.3.0 to 2.4.0
+RUN '041-HIVE-19372.derby.sql';
+
UPDATE "APP".VERSION SET SCHEMA_VERSION='2.4.0', VERSION_COMMENT='Hive release version 2.4.0' where VER_ID=1;
http://git-wip-us.apache.org/repos/asf/hive/blob/72f75d37/metastore/scripts/upgrade/mssql/026-HIVE-19372.mssql.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/mssql/026-HIVE-19372.mssql.sql b/metastore/scripts/upgrade/mssql/026-HIVE-19372.mssql.sql
new file mode 100644
index 0000000..4119607
--- /dev/null
+++ b/metastore/scripts/upgrade/mssql/026-HIVE-19372.mssql.sql
@@ -0,0 +1 @@
+ALTER TABLE "APP"."TBLS" ADD COLUMN "OWNER_TYPE" VARCHAR(10);
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/72f75d37/metastore/scripts/upgrade/mssql/hive-schema-2.4.0.mssql.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/mssql/hive-schema-2.4.0.mssql.sql b/metastore/scripts/upgrade/mssql/hive-schema-2.4.0.mssql.sql
index 20f6be0..c6c733e 100644
--- a/metastore/scripts/upgrade/mssql/hive-schema-2.4.0.mssql.sql
+++ b/metastore/scripts/upgrade/mssql/hive-schema-2.4.0.mssql.sql
@@ -353,6 +353,7 @@ CREATE TABLE TBLS
DB_ID bigint NULL,
LAST_ACCESS_TIME int NOT NULL,
OWNER nvarchar(767) NULL,
+ OWNER_TYPE nvarchar(10) NULL,
RETENTION int NOT NULL,
SD_ID bigint NULL,
TBL_NAME nvarchar(256) NULL,
http://git-wip-us.apache.org/repos/asf/hive/blob/72f75d37/metastore/scripts/upgrade/mssql/upgrade-2.3.0-to-2.4.0.mssql.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/mssql/upgrade-2.3.0-to-2.4.0.mssql.sql b/metastore/scripts/upgrade/mssql/upgrade-2.3.0-to-2.4.0.mssql.sql
index 6877315..b3cceea 100644
--- a/metastore/scripts/upgrade/mssql/upgrade-2.3.0-to-2.4.0.mssql.sql
+++ b/metastore/scripts/upgrade/mssql/upgrade-2.3.0-to-2.4.0.mssql.sql
@@ -1,4 +1,6 @@
SELECT 'Upgrading MetaStore schema from 2.3.0 to 2.4.0' AS MESSAGE;
+:r 026-HIVE-19372.mssql.sql
+
UPDATE VERSION SET SCHEMA_VERSION='2.4.0', VERSION_COMMENT='Hive release version 2.4.0' where VER_ID=1;
SELECT 'Finished upgrading MetaStore schema from 2.3.0 to 2.4.0' AS MESSAGE;
http://git-wip-us.apache.org/repos/asf/hive/blob/72f75d37/metastore/scripts/upgrade/mysql/041-HIVE-19372.mysql.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/mysql/041-HIVE-19372.mysql.sql b/metastore/scripts/upgrade/mysql/041-HIVE-19372.mysql.sql
new file mode 100644
index 0000000..da4aff7
--- /dev/null
+++ b/metastore/scripts/upgrade/mysql/041-HIVE-19372.mysql.sql
@@ -0,0 +1 @@
+ALTER TABLE `TBLS` ADD COLUMN `OWNER_TYPE` VARCHAR(10) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL;
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/72f75d37/metastore/scripts/upgrade/mysql/hive-schema-2.4.0.mysql.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/mysql/hive-schema-2.4.0.mysql.sql b/metastore/scripts/upgrade/mysql/hive-schema-2.4.0.mysql.sql
index 2f9aff2..7aed5a8 100644
--- a/metastore/scripts/upgrade/mysql/hive-schema-2.4.0.mysql.sql
+++ b/metastore/scripts/upgrade/mysql/hive-schema-2.4.0.mysql.sql
@@ -581,6 +581,7 @@ CREATE TABLE IF NOT EXISTS `TBLS` (
`DB_ID` bigint(20) DEFAULT NULL,
`LAST_ACCESS_TIME` int(11) NOT NULL,
`OWNER` varchar(767) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
+ `OWNER_TYPE` varchar(10) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
`RETENTION` int(11) NOT NULL,
`SD_ID` bigint(20) DEFAULT NULL,
`TBL_NAME` varchar(256) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
http://git-wip-us.apache.org/repos/asf/hive/blob/72f75d37/metastore/scripts/upgrade/mysql/upgrade-2.3.0-to-2.4.0.mysql.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/mysql/upgrade-2.3.0-to-2.4.0.mysql.sql b/metastore/scripts/upgrade/mysql/upgrade-2.3.0-to-2.4.0.mysql.sql
index 68db617..d85b30b 100644
--- a/metastore/scripts/upgrade/mysql/upgrade-2.3.0-to-2.4.0.mysql.sql
+++ b/metastore/scripts/upgrade/mysql/upgrade-2.3.0-to-2.4.0.mysql.sql
@@ -1,5 +1,7 @@
SELECT 'Upgrading MetaStore schema from 2.3.0 to 2.4.0' AS ' ';
+SOURCE 041-HIVE-19372.mysql.sql;
+
UPDATE VERSION SET SCHEMA_VERSION='2.4.0', VERSION_COMMENT='Hive release version 2.4.0' where VER_ID=1;
SELECT 'Finished upgrading MetaStore schema from 2.3.0 to 2.4.0' AS ' ';
http://git-wip-us.apache.org/repos/asf/hive/blob/72f75d37/metastore/scripts/upgrade/oracle/041-HIVE-19372.oracle.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/oracle/041-HIVE-19372.oracle.sql b/metastore/scripts/upgrade/oracle/041-HIVE-19372.oracle.sql
new file mode 100644
index 0000000..98264f3
--- /dev/null
+++ b/metastore/scripts/upgrade/oracle/041-HIVE-19372.oracle.sql
@@ -0,0 +1 @@
+ALTER TABLE TBLS ADD OWNER_TYPE VARCHAR2(10) NULL;
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/72f75d37/metastore/scripts/upgrade/oracle/hive-schema-2.4.0.oracle.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/oracle/hive-schema-2.4.0.oracle.sql b/metastore/scripts/upgrade/oracle/hive-schema-2.4.0.oracle.sql
index c07ca79..94d1221 100644
--- a/metastore/scripts/upgrade/oracle/hive-schema-2.4.0.oracle.sql
+++ b/metastore/scripts/upgrade/oracle/hive-schema-2.4.0.oracle.sql
@@ -370,6 +370,7 @@ CREATE TABLE TBLS
DB_ID NUMBER NULL,
LAST_ACCESS_TIME NUMBER (10) NOT NULL,
OWNER VARCHAR2(767) NULL,
+ OWNER_TYPE VARCHAR2(10) NULL,
RETENTION NUMBER (10) NOT NULL,
SD_ID NUMBER NULL,
TBL_NAME VARCHAR2(256) NULL,
http://git-wip-us.apache.org/repos/asf/hive/blob/72f75d37/metastore/scripts/upgrade/oracle/upgrade-2.3.0-to-2.4.0.oracle.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/oracle/upgrade-2.3.0-to-2.4.0.oracle.sql b/metastore/scripts/upgrade/oracle/upgrade-2.3.0-to-2.4.0.oracle.sql
index 45a274a..3b4e273 100644
--- a/metastore/scripts/upgrade/oracle/upgrade-2.3.0-to-2.4.0.oracle.sql
+++ b/metastore/scripts/upgrade/oracle/upgrade-2.3.0-to-2.4.0.oracle.sql
@@ -1,6 +1,7 @@
SELECT 'Upgrading MetaStore schema from 2.3.0 to 2.4.0' AS Status from dual;
@040-HIVE-16399.oracle.sql;
+@041-HIVE-19372.oracle.sql;
UPDATE VERSION SET SCHEMA_VERSION='2.4.0', VERSION_COMMENT='Hive release version 2.4.0' where VER_ID=1;
SELECT 'Finished upgrading MetaStore schema from 2.3.0 to 2.4.0' AS Status from dual;
http://git-wip-us.apache.org/repos/asf/hive/blob/72f75d37/metastore/scripts/upgrade/postgres/040-HIVE-19372.postgres.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/postgres/040-HIVE-19372.postgres.sql b/metastore/scripts/upgrade/postgres/040-HIVE-19372.postgres.sql
new file mode 100644
index 0000000..dfa469c
--- /dev/null
+++ b/metastore/scripts/upgrade/postgres/040-HIVE-19372.postgres.sql
@@ -0,0 +1 @@
+ALTER TABLE "TBLS" ADD COLUMN "OWNER_TYPE" character varying(10) DEFAULT NULL::character varying;
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/72f75d37/metastore/scripts/upgrade/postgres/hive-schema-2.4.0.postgres.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/postgres/hive-schema-2.4.0.postgres.sql b/metastore/scripts/upgrade/postgres/hive-schema-2.4.0.postgres.sql
index c54d9e7..ffa29cf 100644
--- a/metastore/scripts/upgrade/postgres/hive-schema-2.4.0.postgres.sql
+++ b/metastore/scripts/upgrade/postgres/hive-schema-2.4.0.postgres.sql
@@ -367,6 +367,7 @@ CREATE TABLE "TBLS" (
"DB_ID" bigint,
"LAST_ACCESS_TIME" bigint NOT NULL,
"OWNER" character varying(767) DEFAULT NULL::character varying,
+ "OWNER_TYPE" character varying(10) DEFAULT NULL::character varying,
"RETENTION" bigint NOT NULL,
"SD_ID" bigint,
"TBL_NAME" character varying(256) DEFAULT NULL::character varying,
http://git-wip-us.apache.org/repos/asf/hive/blob/72f75d37/metastore/scripts/upgrade/postgres/upgrade-2.3.0-to-2.4.0.postgres.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/postgres/upgrade-2.3.0-to-2.4.0.postgres.sql b/metastore/scripts/upgrade/postgres/upgrade-2.3.0-to-2.4.0.postgres.sql
index 5e34d96..1b2a52a 100644
--- a/metastore/scripts/upgrade/postgres/upgrade-2.3.0-to-2.4.0.postgres.sql
+++ b/metastore/scripts/upgrade/postgres/upgrade-2.3.0-to-2.4.0.postgres.sql
@@ -1,6 +1,7 @@
SELECT 'Upgrading MetaStore schema from 2.3.0 to 2.4.0';
\i 039-HIVE-16399.postgres.sql;
+\i 040-HIVE-19372.postgres.sql;
UPDATE "VERSION" SET "SCHEMA_VERSION"='2.4.0', "VERSION_COMMENT"='Hive release version 2.4.0' where "VER_ID"=1;
SELECT 'Finished upgrading MetaStore schema from 2.3.0 to 2.4.0';
http://git-wip-us.apache.org/repos/asf/hive/blob/72f75d37/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java
----------------------------------------------------------------------
diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java b/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java
index d85a001..ba46e63 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java
@@ -56,6 +56,7 @@ import javax.jdo.Transaction;
import javax.jdo.datastore.DataStoreCache;
import javax.jdo.identity.IntIdentity;
+import com.google.common.base.Strings;
import org.apache.commons.lang.ArrayUtils;
import org.apache.hadoop.conf.Configurable;
import org.apache.hadoop.conf.Configuration;
@@ -1445,6 +1446,15 @@ public class ObjectStore implements RawStore, Configurable {
.getRetention(), convertToStorageDescriptor(mtbl.getSd()),
convertToFieldSchemas(mtbl.getPartitionKeys()), convertMap(mtbl.getParameters()),
mtbl.getViewOriginalText(), mtbl.getViewExpandedText(), tableType);
+
+ if (Strings.isNullOrEmpty(mtbl.getOwnerType())) {
+ // Before the ownerType exists in an old Hive schema, USER was the default type for owner.
+ // Let's set the default to USER to keep backward compatibility.
+ table.setOwnerType(PrincipalType.USER);
+ } else {
+ table.setOwnerType(PrincipalType.valueOf(mtbl.getOwnerType()));
+ }
+
table.setRewriteEnabled(mtbl.isRewriteEnabled());
return table;
}
@@ -1478,9 +1488,12 @@ public class ObjectStore implements RawStore, Configurable {
}
}
+ PrincipalType ownerPrincipalType = tbl.getOwnerType();
+ String ownerType = (ownerPrincipalType == null) ? PrincipalType.USER.name() : ownerPrincipalType.name();
+
// A new table is always created with a new column descriptor
return new MTable(HiveStringUtils.normalizeIdentifier(tbl.getTableName()), mdb,
- convertToMStorageDescriptor(tbl.getSd()), tbl.getOwner(), tbl
+ convertToMStorageDescriptor(tbl.getSd()), tbl.getOwner(), ownerType, tbl
.getCreateTime(), tbl.getLastAccessTime(), tbl.getRetention(),
convertToMFieldSchemas(tbl.getPartitionKeys()), tbl.getParameters(),
tbl.getViewOriginalText(), tbl.getViewExpandedText(), tbl.isRewriteEnabled(),
@@ -3463,6 +3476,7 @@ public class ObjectStore implements RawStore, Configurable {
oldt.setTableName(HiveStringUtils.normalizeIdentifier(newt.getTableName()));
oldt.setParameters(newt.getParameters());
oldt.setOwner(newt.getOwner());
+ oldt.setOwnerType(newt.getOwnerType());
// Fully copy over the contents of the new SD into the old SD,
// so we don't create an extra SD in the metastore db that has no references.
copyMSD(newt.getSd(), oldt.getSd());
http://git-wip-us.apache.org/repos/asf/hive/blob/72f75d37/metastore/src/model/org/apache/hadoop/hive/metastore/model/MTable.java
----------------------------------------------------------------------
diff --git a/metastore/src/model/org/apache/hadoop/hive/metastore/model/MTable.java b/metastore/src/model/org/apache/hadoop/hive/metastore/model/MTable.java
index 6cc7157..0fd8bf0 100644
--- a/metastore/src/model/org/apache/hadoop/hive/metastore/model/MTable.java
+++ b/metastore/src/model/org/apache/hadoop/hive/metastore/model/MTable.java
@@ -27,6 +27,7 @@ public class MTable {
private MDatabase database;
private MStorageDescriptor sd;
private String owner;
+ private String ownerType;
private int createTime;
private int lastAccessTime;
private int retention;
@@ -44,6 +45,7 @@ public class MTable {
* @param database
* @param sd
* @param owner
+ * @param ownerType
* @param createTime
* @param lastAccessTime
* @param retention
@@ -53,7 +55,7 @@ public class MTable {
* @param viewExpandedText
* @param tableType
*/
- public MTable(String tableName, MDatabase database, MStorageDescriptor sd, String owner,
+ public MTable(String tableName, MDatabase database, MStorageDescriptor sd, String owner, String ownerType,
int createTime, int lastAccessTime, int retention, List<MFieldSchema> partitionKeys,
Map<String, String> parameters, String viewOriginalText, String viewExpandedText,
boolean rewriteEnabled, String tableType) {
@@ -61,6 +63,7 @@ public class MTable {
this.database = database;
this.sd = sd;
this.owner = owner;
+ this.ownerType = ownerType;
this.createTime = createTime;
this.setLastAccessTime(lastAccessTime);
this.retention = retention;
@@ -73,6 +76,20 @@ public class MTable {
}
/**
+ * @return the owner type
+ */
+ public String getOwnerType() {
+ return ownerType;
+ }
+
+ /**
+ * @param ownerType the owner type to set
+ */
+ public void setOwnerType(String ownerType) {
+ this.ownerType = ownerType;
+ }
+
+ /**
* @return the tableName
*/
public String getTableName() {
http://git-wip-us.apache.org/repos/asf/hive/blob/72f75d37/metastore/src/model/package.jdo
----------------------------------------------------------------------
diff --git a/metastore/src/model/package.jdo b/metastore/src/model/package.jdo
index bdecd2a..b272456 100644
--- a/metastore/src/model/package.jdo
+++ b/metastore/src/model/package.jdo
@@ -152,6 +152,9 @@
<field name="owner">
<column name="OWNER" length="767" jdbc-type="VARCHAR"/>
</field>
+ <field name="ownerType">
+ <column name="OWNER_TYPE" length="10" jdbc-type="VARCHAR" allows-null="true"/>
+ </field>
<field name="createTime">
<column name="CREATE_TIME" jdbc-type="integer"/>
</field>
http://git-wip-us.apache.org/repos/asf/hive/blob/72f75d37/metastore/src/test/org/apache/hadoop/hive/metastore/TestObjectStore.java
----------------------------------------------------------------------
diff --git a/metastore/src/test/org/apache/hadoop/hive/metastore/TestObjectStore.java b/metastore/src/test/org/apache/hadoop/hive/metastore/TestObjectStore.java
index 4ba1a03..27dda1f 100644
--- a/metastore/src/test/org/apache/hadoop/hive/metastore/TestObjectStore.java
+++ b/metastore/src/test/org/apache/hadoop/hive/metastore/TestObjectStore.java
@@ -234,11 +234,21 @@ public class TestObjectStore {
Assert.assertEquals(TABLE1, tables.get(0));
Table newTbl1 = new Table("new" + TABLE1, DB1, "owner", 1, 2, 3, sd, null, params, null, null, "MANAGED_TABLE");
+
+ // Change different fields and verify they were altered
+ newTbl1.setOwner("role1");
+ newTbl1.setOwnerType(PrincipalType.ROLE);
+
objectStore.alterTable(DB1, TABLE1, newTbl1);
tables = objectStore.getTables(DB1, "new*");
Assert.assertEquals(1, tables.size());
Assert.assertEquals("new" + TABLE1, tables.get(0));
+ // Verify fields were altered during the alterTable operation
+ Table alteredTable = objectStore.getTable(DB1, "new" + TABLE1);
+ Assert.assertEquals("Owner of table was not altered", newTbl1.getOwner(), alteredTable.getOwner());
+ Assert.assertEquals("Owner type of table was not altered", newTbl1.getOwnerType(), alteredTable.getOwnerType());
+
objectStore.dropTable(DB1, "new" + TABLE1);
tables = objectStore.getAllTables(DB1);
Assert.assertEquals(0, tables.size());