From eacd9d840c6a577d9258cfd38dc3dfc5f34d3de5 Mon Sep 17 00:00:00 2001 From: Xiaobing Zhou Date: Tue, 28 Oct 2014 17:37:13 -0700 Subject: [PATCH] HIVE-8550: Hive cannot load data into partitioned table with Unicode key --- metastore/scripts/upgrade/mssql/004-HIVE-8550.mssql.sql | 13 +++++++++++++ .../scripts/upgrade/mssql/hive-schema-0.14.0.mssql.sql | 6 +++--- .../scripts/upgrade/mssql/hive-schema-0.15.0.mssql.sql | 6 +++--- .../upgrade/mssql/upgrade-0.13.0-to-0.14.0.mssql.sql | 1 + 4 files changed, 20 insertions(+), 6 deletions(-) create mode 100644 metastore/scripts/upgrade/mssql/004-HIVE-8550.mssql.sql diff --git a/metastore/scripts/upgrade/mssql/004-HIVE-8550.mssql.sql b/metastore/scripts/upgrade/mssql/004-HIVE-8550.mssql.sql new file mode 100644 index 0000000..cc19c74 --- /dev/null +++ b/metastore/scripts/upgrade/mssql/004-HIVE-8550.mssql.sql @@ -0,0 +1,13 @@ +--ALTER PARTITIONS.PART_NAME from varchar to nvarchar +DROP INDEX PARTITIONS.UNIQUEPARTITION; +ALTER TABLE PARTITIONS ALTER COLUMN PART_NAME NVARCHAR(767) NULL; +CREATE UNIQUE INDEX UNIQUEPARTITION ON PARTITIONS (PART_NAME,TBL_ID); +GO + +--ALTER SDS.LOCATION from varchar to nvarchar +ALTER TABLE SDS ALTER COLUMN LOCATION NVARCHAR(4000) NULL; +GO + +--ALTER PARTITION_KEY_VALS.PART_KEY_VAL from varchar to nvarchar +ALTER TABLE PARTITION_KEY_VALS ALTER COLUMN PART_KEY_VAL NVARCHAR(255) NULL; +GO \ No newline at end of file diff --git a/metastore/scripts/upgrade/mssql/hive-schema-0.14.0.mssql.sql b/metastore/scripts/upgrade/mssql/hive-schema-0.14.0.mssql.sql index 174ed39..e9c6cb1 100644 --- a/metastore/scripts/upgrade/mssql/hive-schema-0.14.0.mssql.sql +++ b/metastore/scripts/upgrade/mssql/hive-schema-0.14.0.mssql.sql @@ -140,7 +140,7 @@ CREATE TABLE PARTITIONS PART_ID bigint NOT NULL, CREATE_TIME int NOT NULL, LAST_ACCESS_TIME int NOT NULL, - PART_NAME varchar(767) NULL, + PART_NAME nvarchar(767) NULL, SD_ID bigint NULL, TBL_ID bigint NULL ); @@ -371,7 +371,7 @@ CREATE TABLE SDS INPUT_FORMAT varchar(4000) NULL, IS_COMPRESSED bit NOT NULL, IS_STOREDASSUBDIRECTORIES bit NOT NULL, - LOCATION varchar(4000) NULL, + LOCATION nvarchar(4000) NULL, NUM_BUCKETS int NOT NULL, OUTPUT_FORMAT varchar(4000) NULL, SERDE_ID bigint NULL @@ -437,7 +437,7 @@ ALTER TABLE SKEWED_STRING_LIST_VALUES ADD CONSTRAINT SKEWED_STRING_LIST_VALUES_P CREATE TABLE PARTITION_KEY_VALS ( PART_ID bigint NOT NULL, - PART_KEY_VAL varchar(255) NULL, + PART_KEY_VAL nvarchar(255) NULL, INTEGER_IDX int NOT NULL ); diff --git a/metastore/scripts/upgrade/mssql/hive-schema-0.15.0.mssql.sql b/metastore/scripts/upgrade/mssql/hive-schema-0.15.0.mssql.sql index 16a9564..62cc962 100644 --- a/metastore/scripts/upgrade/mssql/hive-schema-0.15.0.mssql.sql +++ b/metastore/scripts/upgrade/mssql/hive-schema-0.15.0.mssql.sql @@ -140,7 +140,7 @@ CREATE TABLE PARTITIONS PART_ID bigint NOT NULL, CREATE_TIME int NOT NULL, LAST_ACCESS_TIME int NOT NULL, - PART_NAME varchar(767) NULL, + PART_NAME nvarchar(767) NULL, SD_ID bigint NULL, TBL_ID bigint NULL ); @@ -371,7 +371,7 @@ CREATE TABLE SDS INPUT_FORMAT varchar(4000) NULL, IS_COMPRESSED bit NOT NULL, IS_STOREDASSUBDIRECTORIES bit NOT NULL, - LOCATION varchar(4000) NULL, + LOCATION nvarchar(4000) NULL, NUM_BUCKETS int NOT NULL, OUTPUT_FORMAT varchar(4000) NULL, SERDE_ID bigint NULL @@ -437,7 +437,7 @@ ALTER TABLE SKEWED_STRING_LIST_VALUES ADD CONSTRAINT SKEWED_STRING_LIST_VALUES_P CREATE TABLE PARTITION_KEY_VALS ( PART_ID bigint NOT NULL, - PART_KEY_VAL varchar(255) NULL, + PART_KEY_VAL nvarchar(255) NULL, INTEGER_IDX int NOT NULL ); diff --git a/metastore/scripts/upgrade/mssql/upgrade-0.13.0-to-0.14.0.mssql.sql b/metastore/scripts/upgrade/mssql/upgrade-0.13.0-to-0.14.0.mssql.sql index 1bda6d5..e442f3a 100644 --- a/metastore/scripts/upgrade/mssql/upgrade-0.13.0-to-0.14.0.mssql.sql +++ b/metastore/scripts/upgrade/mssql/upgrade-0.13.0-to-0.14.0.mssql.sql @@ -2,6 +2,7 @@ SELECT 'Upgrading MetaStore schema from 0.13.0 to 0.14.0' AS MESSAGE; :r 002-HIVE-7784.mssql.sql; :r 003-HIVE-8239.mssql.sql; +:r 004-HIVE-8550.mssql.sql; UPDATE VERSION SET SCHEMA_VERSION='0.14.0', VERSION_COMMENT='Hive release version 0.14.0' where VER_ID=1; SELECT 'Finished upgrading MetaStore schema from 0.13.0 to 0.14.0' AS MESSAGE; -- 1.8.5.2 (Apple Git-48)