From 9c4eb96f816105560e7d4809f1d608e7eca9e523 Mon Sep 17 00:00:00 2001 From: Sourabh Badhya Date: Thu, 18 Jan 2024 13:38:06 +0530 Subject: [PATCH] HIVE-27749: Addendum: SchemaTool initSchema fails on Mariadb 10.2 - Fix INSERT query (#5009) (Sourabh Badhya reviewed by Attila Turoczy, Denys Kuzmenko) --- .../src/main/sql/mysql/hive-schema-4.0.0-alpha-2.mysql.sql | 2 +- .../src/main/sql/mysql/hive-schema-4.0.0-beta-1.mysql.sql | 2 +- .../src/main/sql/mysql/hive-schema-4.0.0-beta-2.mysql.sql | 4 ++-- .../tools/schematool/TestSchemaToolForMetastore.java | 3 ++- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/standalone-metastore/metastore-server/src/main/sql/mysql/hive-schema-4.0.0-alpha-2.mysql.sql b/standalone-metastore/metastore-server/src/main/sql/mysql/hive-schema-4.0.0-alpha-2.mysql.sql index 3016f8021f61..33085004cf81 100644 --- a/standalone-metastore/metastore-server/src/main/sql/mysql/hive-schema-4.0.0-alpha-2.mysql.sql +++ b/standalone-metastore/metastore-server/src/main/sql/mysql/hive-schema-4.0.0-alpha-2.mysql.sql @@ -894,7 +894,7 @@ CREATE TABLE IF NOT EXISTS `NOTIFICATION_SEQUENCE` ALTER TABLE `NOTIFICATION_SEQUENCE` ADD CONSTRAINT `ONE_ROW_CONSTRAINT` CHECK (`NNI_ID` = 1); -INSERT INTO `NOTIFICATION_SEQUENCE` (`NEXT_EVENT_ID`) SELECT * from (select 1 as `NOTIFICATION_SEQUENCE`) a WHERE (SELECT COUNT(*) FROM `NOTIFICATION_SEQUENCE`) = 0; +INSERT INTO `NOTIFICATION_SEQUENCE` (`NNI_ID`, `NEXT_EVENT_ID`) SELECT 1,1 FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `NOTIFICATION_SEQUENCE`); CREATE TABLE IF NOT EXISTS `KEY_CONSTRAINTS` ( diff --git a/standalone-metastore/metastore-server/src/main/sql/mysql/hive-schema-4.0.0-beta-1.mysql.sql b/standalone-metastore/metastore-server/src/main/sql/mysql/hive-schema-4.0.0-beta-1.mysql.sql index e9d37d357748..a99b9c5afb4f 100644 --- a/standalone-metastore/metastore-server/src/main/sql/mysql/hive-schema-4.0.0-beta-1.mysql.sql +++ b/standalone-metastore/metastore-server/src/main/sql/mysql/hive-schema-4.0.0-beta-1.mysql.sql @@ -896,7 +896,7 @@ CREATE TABLE IF NOT EXISTS `NOTIFICATION_SEQUENCE` ALTER TABLE `NOTIFICATION_SEQUENCE` ADD CONSTRAINT `ONE_ROW_CONSTRAINT` CHECK (`NNI_ID` = 1); -INSERT INTO `NOTIFICATION_SEQUENCE` (`NEXT_EVENT_ID`) SELECT * from (select 1 as `NOTIFICATION_SEQUENCE`) a WHERE (SELECT COUNT(*) FROM `NOTIFICATION_SEQUENCE`) = 0; +INSERT INTO `NOTIFICATION_SEQUENCE` (`NNI_ID`, `NEXT_EVENT_ID`) SELECT 1,1 FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `NOTIFICATION_SEQUENCE`); CREATE TABLE IF NOT EXISTS `KEY_CONSTRAINTS` ( diff --git a/standalone-metastore/metastore-server/src/main/sql/mysql/hive-schema-4.0.0-beta-2.mysql.sql b/standalone-metastore/metastore-server/src/main/sql/mysql/hive-schema-4.0.0-beta-2.mysql.sql index d97577f7d211..c1140eacf444 100644 --- a/standalone-metastore/metastore-server/src/main/sql/mysql/hive-schema-4.0.0-beta-2.mysql.sql +++ b/standalone-metastore/metastore-server/src/main/sql/mysql/hive-schema-4.0.0-beta-2.mysql.sql @@ -851,9 +851,9 @@ CREATE TABLE IF NOT EXISTS `NOTIFICATION_SEQUENCE` PRIMARY KEY (`NNI_ID`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -ALTER TABLE `NOTIFICATION_SEQUENCE` MODIFY COLUMN `NNI_ID` BIGINT(20) GENERATED ALWAYS AS (1) STORED NOT NULL; +ALTER TABLE `NOTIFICATION_SEQUENCE` ADD CONSTRAINT `ONE_ROW_CONSTRAINT` CHECK (`NNI_ID` = 1); -INSERT INTO `NOTIFICATION_SEQUENCE` (`NEXT_EVENT_ID`) SELECT * from (select 1 as `NOTIFICATION_SEQUENCE`) a WHERE (SELECT COUNT(*) FROM `NOTIFICATION_SEQUENCE`) = 0; +INSERT INTO `NOTIFICATION_SEQUENCE` (`NNI_ID`, `NEXT_EVENT_ID`) SELECT 1,1 FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `NOTIFICATION_SEQUENCE`); CREATE TABLE IF NOT EXISTS `KEY_CONSTRAINTS` ( diff --git a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/tools/schematool/TestSchemaToolForMetastore.java b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/tools/schematool/TestSchemaToolForMetastore.java index e82b943915bf..804bf156dc62 100644 --- a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/tools/schematool/TestSchemaToolForMetastore.java +++ b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/tools/schematool/TestSchemaToolForMetastore.java @@ -46,6 +46,7 @@ import org.apache.hadoop.hive.metastore.conf.MetastoreConf; import org.apache.hadoop.hive.metastore.dbinstall.rules.DatabaseRule; import org.apache.hadoop.hive.metastore.dbinstall.rules.Derby; +import org.apache.hadoop.hive.metastore.dbinstall.rules.Mariadb; import org.apache.hadoop.hive.metastore.dbinstall.rules.Mssql; import org.apache.hadoop.hive.metastore.dbinstall.rules.Mysql; import org.apache.hadoop.hive.metastore.dbinstall.rules.Oracle; @@ -85,7 +86,7 @@ public static Collection databases() { dbs.add(new Object[] { new Mysql() }); dbs.add(new Object[] { new Oracle() }); dbs.add(new Object[] { new Postgres() }); -// dbs.add(new Object[] { new Mariadb() }); Disabled due to HIVE-27749 + dbs.add(new Object[] { new Mariadb() }); dbs.add(new Object[] { new Mssql() }); return dbs; }