You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by ki...@apache.org on 2021/06/15 02:30:40 UTC

[dolphinscheduler] 01/12: [Fix-5581][SQL] Specific key was too long, max key length is 767 bytes for varchar(256) in some mysql with innodb_large_prefix=OFF (#5582)

This is an automated email from the ASF dual-hosted git repository.

kirs pushed a commit to branch json_split_two
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git

commit 309deaefe8416f81314405ec6ef4cb25ffaed990
Author: Shiwen Cheng <ch...@gmail.com>
AuthorDate: Fri Jun 4 09:55:42 2021 +0800

    [Fix-5581][SQL] Specific key was too long, max key length is 767 bytes for varchar(256) in some mysql with innodb_large_prefix=OFF (#5582)
---
 sql/dolphinscheduler_mysql.sql                     |  12 +--
 sql/dolphinscheduler_postgre.sql                   |  10 +-
 .../1.3.6_schema/mysql/dolphinscheduler_ddl.sql    |   2 +-
 .../postgresql/dolphinscheduler_ddl.sql            |   2 +-
 .../1.3.7_schema/mysql/dolphinscheduler_ddl.sql    | 119 +++++++++++++++++++++
 .../1.3.7_schema/mysql/dolphinscheduler_dml.sql    |  16 +++
 .../postgresql/dolphinscheduler_ddl.sql            | 106 ++++++++++++++++++
 .../postgresql/dolphinscheduler_dml.sql            |  16 +++
 8 files changed, 270 insertions(+), 13 deletions(-)

diff --git a/sql/dolphinscheduler_mysql.sql b/sql/dolphinscheduler_mysql.sql
index e2866e0..5f2814c 100644
--- a/sql/dolphinscheduler_mysql.sql
+++ b/sql/dolphinscheduler_mysql.sql
@@ -345,7 +345,7 @@ DROP TABLE IF EXISTS `t_ds_datasource`;
 CREATE TABLE `t_ds_datasource` (
   `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'key',
   `name` varchar(64) NOT NULL COMMENT 'data source name',
-  `note` varchar(256) DEFAULT NULL COMMENT 'description',
+  `note` varchar(255) DEFAULT NULL COMMENT 'description',
   `type` tinyint(4) NOT NULL COMMENT 'data source type: 0:mysql,1:postgresql,2:hive,3:spark',
   `user_id` int(11) NOT NULL COMMENT 'the creator id',
   `connection_params` text NOT NULL COMMENT 'json connection params',
@@ -724,7 +724,7 @@ CREATE TABLE `t_ds_resources` (
   `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'key',
   `alias` varchar(64) DEFAULT NULL COMMENT 'alias',
   `file_name` varchar(64) DEFAULT NULL COMMENT 'file name',
-  `description` varchar(256) DEFAULT NULL,
+  `description` varchar(255) DEFAULT NULL,
   `user_id` int(11) DEFAULT NULL COMMENT 'user id',
   `type` tinyint(4) DEFAULT NULL COMMENT 'resource type,0:FILE,1:UDF',
   `size` bigint(20) DEFAULT NULL COMMENT 'resource size',
@@ -751,14 +751,14 @@ CREATE TABLE `t_ds_schedules` (
   `start_time` datetime NOT NULL COMMENT 'start time',
   `end_time` datetime NOT NULL COMMENT 'end time',
   `timezone_id` varchar(40) DEFAULT NULL COMMENT 'timezoneId',
-  `crontab` varchar(256) NOT NULL COMMENT 'crontab description',
+  `crontab` varchar(255) NOT NULL COMMENT 'crontab description',
   `failure_strategy` tinyint(4) NOT NULL COMMENT 'failure strategy. 0:end,1:continue',
   `user_id` int(11) NOT NULL COMMENT 'user id',
   `release_state` tinyint(4) NOT NULL COMMENT 'release state. 0:offline,1:online ',
   `warning_type` tinyint(4) NOT NULL COMMENT 'Alarm type: 0 is not sent, 1 process is sent successfully, 2 process is sent failed, 3 process is sent successfully and all failures are sent',
   `warning_group_id` int(11) DEFAULT NULL COMMENT 'alert group id',
   `process_instance_priority` int(11) DEFAULT NULL COMMENT 'process instance priority:0 Highest,1 High,2 Medium,3 Low,4 Lowest',
-  `worker_group` varchar(256) DEFAULT '' COMMENT 'worker group id',
+  `worker_group` varchar(64) DEFAULT '' COMMENT 'worker group id',
   `create_time` datetime NOT NULL COMMENT 'create time',
   `update_time` datetime NOT NULL COMMENT 'update time',
   PRIMARY KEY (`id`)
@@ -832,7 +832,7 @@ DROP TABLE IF EXISTS `t_ds_tenant`;
 CREATE TABLE `t_ds_tenant` (
   `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'key',
   `tenant_code` varchar(64) DEFAULT NULL COMMENT 'tenant code',
-  `description` varchar(256) DEFAULT NULL,
+  `description` varchar(255) DEFAULT NULL,
   `queue_id` int(11) DEFAULT NULL COMMENT 'queue id',
   `create_time` datetime DEFAULT NULL COMMENT 'create time',
   `update_time` datetime DEFAULT NULL COMMENT 'update time',
@@ -897,7 +897,7 @@ CREATE TABLE `t_ds_user` (
 DROP TABLE IF EXISTS `t_ds_worker_group`;
 CREATE TABLE `t_ds_worker_group` (
   `id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
-  `name` varchar(256) NOT NULL COMMENT 'worker group name',
+  `name` varchar(255) NOT NULL COMMENT 'worker group name',
   `addr_list` text NULL DEFAULT NULL COMMENT 'worker addr list. split by [,]',
   `create_time` datetime NULL DEFAULT NULL COMMENT 'create time',
   `update_time` datetime NULL DEFAULT NULL COMMENT 'update time',
diff --git a/sql/dolphinscheduler_postgre.sql b/sql/dolphinscheduler_postgre.sql
index f9299cd..3393938 100644
--- a/sql/dolphinscheduler_postgre.sql
+++ b/sql/dolphinscheduler_postgre.sql
@@ -243,7 +243,7 @@ DROP TABLE IF EXISTS t_ds_datasource;
 CREATE TABLE t_ds_datasource (
   id int NOT NULL  ,
   name varchar(64) NOT NULL ,
-  note varchar(256) DEFAULT NULL ,
+  note varchar(255) DEFAULT NULL ,
   type int NOT NULL ,
   user_id int NOT NULL ,
   connection_params text NOT NULL ,
@@ -590,7 +590,7 @@ CREATE TABLE t_ds_resources (
   id int NOT NULL  ,
   alias varchar(64) DEFAULT NULL ,
   file_name varchar(64) DEFAULT NULL ,
-  description varchar(256) DEFAULT NULL ,
+  description varchar(255) DEFAULT NULL ,
   user_id int DEFAULT NULL ,
   type int DEFAULT NULL ,
   size bigint DEFAULT NULL ,
@@ -615,7 +615,7 @@ CREATE TABLE t_ds_schedules (
   start_time timestamp NOT NULL ,
   end_time timestamp NOT NULL ,
   timezone_id varchar(40) default NULL ,
-  crontab varchar(256) NOT NULL ,
+  crontab varchar(255) NOT NULL ,
   failure_strategy int NOT NULL ,
   user_id int NOT NULL ,
   release_state int NOT NULL ,
@@ -686,7 +686,7 @@ DROP TABLE IF EXISTS t_ds_tenant;
 CREATE TABLE t_ds_tenant (
   id int NOT NULL  ,
   tenant_code varchar(64) DEFAULT NULL ,
-  description varchar(256) DEFAULT NULL ,
+  description varchar(255) DEFAULT NULL ,
   queue_id int DEFAULT NULL ,
   create_time timestamp DEFAULT NULL ,
   update_time timestamp DEFAULT NULL ,
@@ -754,7 +754,7 @@ create index version_index on t_ds_version(version);
 DROP TABLE IF EXISTS t_ds_worker_group;
 CREATE TABLE t_ds_worker_group (
   id bigint NOT NULL  ,
-  name varchar(256) NOT NULL ,
+  name varchar(255) NOT NULL ,
   addr_list text DEFAULT NULL ,
   create_time timestamp DEFAULT NULL ,
   update_time timestamp DEFAULT NULL ,
diff --git a/sql/upgrade/1.3.6_schema/mysql/dolphinscheduler_ddl.sql b/sql/upgrade/1.3.6_schema/mysql/dolphinscheduler_ddl.sql
index f4df77a..b126163 100644
--- a/sql/upgrade/1.3.6_schema/mysql/dolphinscheduler_ddl.sql
+++ b/sql/upgrade/1.3.6_schema/mysql/dolphinscheduler_ddl.sql
@@ -28,7 +28,7 @@ BEGIN
         AND COLUMN_NAME ='ip_list')
     THEN
         ALTER TABLE t_ds_worker_group CHANGE COLUMN `ip_list` `addr_list` text;
-        ALTER TABLE t_ds_worker_group MODIFY COLUMN `name` varchar(256) NOT NULL;
+        ALTER TABLE t_ds_worker_group MODIFY COLUMN `name` varchar(255) NOT NULL;
         ALTER TABLE t_ds_worker_group ADD UNIQUE KEY `name_unique` (`name`);
     END IF;
 END;
diff --git a/sql/upgrade/1.3.6_schema/postgresql/dolphinscheduler_ddl.sql b/sql/upgrade/1.3.6_schema/postgresql/dolphinscheduler_ddl.sql
index b9744c3..e6470fd 100644
--- a/sql/upgrade/1.3.6_schema/postgresql/dolphinscheduler_ddl.sql
+++ b/sql/upgrade/1.3.6_schema/postgresql/dolphinscheduler_ddl.sql
@@ -25,7 +25,7 @@ BEGIN
     THEN
         ALTER TABLE t_ds_worker_group RENAME ip_list TO addr_list;
         ALTER TABLE t_ds_worker_group ALTER COLUMN addr_list type text;
-        ALTER TABLE t_ds_worker_group ALTER COLUMN name type varchar(256), ALTER COLUMN name SET NOT NULL;
+        ALTER TABLE t_ds_worker_group ALTER COLUMN name type varchar(255), ALTER COLUMN name SET NOT NULL;
         ALTER TABLE t_ds_worker_group ADD CONSTRAINT name_unique UNIQUE (name);
     END IF;
 END;
diff --git a/sql/upgrade/1.3.7_schema/mysql/dolphinscheduler_ddl.sql b/sql/upgrade/1.3.7_schema/mysql/dolphinscheduler_ddl.sql
new file mode 100644
index 0000000..e714bae
--- /dev/null
+++ b/sql/upgrade/1.3.7_schema/mysql/dolphinscheduler_ddl.sql
@@ -0,0 +1,119 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+*/
+
+SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
+
+-- uc_dolphin_T_t_ds_datasource_R_note
+drop PROCEDURE if EXISTS uc_dolphin_T_t_ds_datasource_R_note;
+delimiter d//
+CREATE PROCEDURE uc_dolphin_T_t_ds_datasource_R_note()
+BEGIN
+    IF EXISTS (SELECT 1 FROM information_schema.COLUMNS
+        WHERE TABLE_NAME='t_ds_datasource'
+        AND TABLE_SCHEMA=(SELECT DATABASE())
+        AND COLUMN_NAME ='note')
+    THEN
+        ALTER TABLE t_ds_datasource MODIFY COLUMN `note` varchar(255) DEFAULT NULL COMMENT 'description';
+    END IF;
+END;
+
+d//
+
+delimiter ;
+CALL uc_dolphin_T_t_ds_datasource_R_note;
+DROP PROCEDURE uc_dolphin_T_t_ds_datasource_R_note;
+
+-- uc_dolphin_T_t_ds_resources_R_description
+drop PROCEDURE if EXISTS uc_dolphin_T_t_ds_resources_R_description;
+delimiter d//
+CREATE PROCEDURE uc_dolphin_T_t_ds_resources_R_description()
+BEGIN
+    IF EXISTS (SELECT 1 FROM information_schema.COLUMNS
+        WHERE TABLE_NAME='t_ds_resources'
+        AND TABLE_SCHEMA=(SELECT DATABASE())
+        AND COLUMN_NAME ='description')
+    THEN
+        ALTER TABLE t_ds_resources MODIFY COLUMN `description` varchar(255) DEFAULT NULL;
+    END IF;
+END;
+
+d//
+
+delimiter ;
+CALL uc_dolphin_T_t_ds_resources_R_description;
+DROP PROCEDURE uc_dolphin_T_t_ds_resources_R_description;
+
+-- uc_dolphin_T_t_ds_schedules_R_crontab
+drop PROCEDURE if EXISTS uc_dolphin_T_t_ds_schedules_R_crontab;
+delimiter d//
+CREATE PROCEDURE uc_dolphin_T_t_ds_schedules_R_crontab()
+BEGIN
+    IF EXISTS (SELECT 1 FROM information_schema.COLUMNS
+        WHERE TABLE_NAME='t_ds_schedules'
+        AND TABLE_SCHEMA=(SELECT DATABASE())
+        AND COLUMN_NAME ='crontab')
+    THEN
+        ALTER TABLE t_ds_schedules MODIFY COLUMN `crontab` varchar(255) NOT NULL COMMENT 'crontab description';
+        ALTER TABLE t_ds_schedules MODIFY COLUMN `worker_group` varchar(64) DEFAULT '' COMMENT 'worker group id';
+    END IF;
+END;
+
+d//
+
+delimiter ;
+CALL uc_dolphin_T_t_ds_schedules_R_crontab;
+DROP PROCEDURE uc_dolphin_T_t_ds_schedules_R_crontab;
+
+-- uc_dolphin_T_t_ds_tenant_R_description
+drop PROCEDURE if EXISTS uc_dolphin_T_t_ds_tenant_R_description;
+delimiter d//
+CREATE PROCEDURE uc_dolphin_T_t_ds_tenant_R_description()
+BEGIN
+    IF EXISTS (SELECT 1 FROM information_schema.COLUMNS
+        WHERE TABLE_NAME='t_ds_tenant'
+        AND TABLE_SCHEMA=(SELECT DATABASE())
+        AND COLUMN_NAME ='description')
+    THEN
+        ALTER TABLE t_ds_tenant MODIFY COLUMN `description` varchar(255) DEFAULT NULL;
+    END IF;
+END;
+
+d//
+
+delimiter ;
+CALL uc_dolphin_T_t_ds_tenant_R_description;
+DROP PROCEDURE uc_dolphin_T_t_ds_tenant_R_description;
+
+-- uc_dolphin_T_t_ds_worker_group_R_name
+drop PROCEDURE if EXISTS uc_dolphin_T_t_ds_worker_group_R_name;
+delimiter d//
+CREATE PROCEDURE uc_dolphin_T_t_ds_worker_group_R_name()
+BEGIN
+    IF EXISTS (SELECT 1 FROM information_schema.COLUMNS
+        WHERE TABLE_NAME='t_ds_worker_group'
+        AND TABLE_SCHEMA=(SELECT DATABASE())
+        AND COLUMN_NAME ='name')
+    THEN
+        ALTER TABLE t_ds_worker_group MODIFY COLUMN `name` varchar(255) NOT NULL COMMENT 'worker group name';
+    END IF;
+END;
+
+d//
+
+delimiter ;
+CALL uc_dolphin_T_t_ds_worker_group_R_name;
+DROP PROCEDURE uc_dolphin_T_t_ds_worker_group_R_name;
diff --git a/sql/upgrade/1.3.7_schema/mysql/dolphinscheduler_dml.sql b/sql/upgrade/1.3.7_schema/mysql/dolphinscheduler_dml.sql
new file mode 100644
index 0000000..38964cc
--- /dev/null
+++ b/sql/upgrade/1.3.7_schema/mysql/dolphinscheduler_dml.sql
@@ -0,0 +1,16 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+*/
\ No newline at end of file
diff --git a/sql/upgrade/1.3.7_schema/postgresql/dolphinscheduler_ddl.sql b/sql/upgrade/1.3.7_schema/postgresql/dolphinscheduler_ddl.sql
new file mode 100644
index 0000000..8b20466
--- /dev/null
+++ b/sql/upgrade/1.3.7_schema/postgresql/dolphinscheduler_ddl.sql
@@ -0,0 +1,106 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+*/
+
+-- uc_dolphin_T_t_ds_datasource_A_note
+delimiter d//
+CREATE OR REPLACE FUNCTION uc_dolphin_T_t_ds_datasource_A_note() RETURNS void AS $$
+BEGIN
+    IF EXISTS (SELECT 1 FROM information_schema.COLUMNS
+        WHERE TABLE_NAME='t_ds_datasource'
+        AND COLUMN_NAME ='note')
+    THEN
+        ALTER TABLE t_ds_datasource ALTER COLUMN note type varchar(255);
+    END IF;
+END;
+$$ LANGUAGE plpgsql;
+d//
+
+delimiter ;
+SELECT uc_dolphin_T_t_ds_datasource_A_note();
+DROP FUNCTION IF EXISTS uc_dolphin_T_t_ds_datasource_A_note();
+
+-- uc_dolphin_T_t_ds_resources_A_description
+delimiter d//
+CREATE OR REPLACE FUNCTION uc_dolphin_T_t_ds_resources_A_description() RETURNS void AS $$
+BEGIN
+    IF EXISTS (SELECT 1 FROM information_schema.COLUMNS
+        WHERE TABLE_NAME='t_ds_resources'
+        AND COLUMN_NAME ='description')
+    THEN
+        ALTER TABLE t_ds_resources ALTER COLUMN description type varchar(255);
+    END IF;
+END;
+$$ LANGUAGE plpgsql;
+d//
+
+delimiter ;
+SELECT uc_dolphin_T_t_ds_resources_A_description();
+DROP FUNCTION IF EXISTS uc_dolphin_T_t_ds_resources_A_description();
+
+-- uc_dolphin_T_t_ds_schedules_A_crontab
+delimiter d//
+CREATE OR REPLACE FUNCTION uc_dolphin_T_t_ds_schedules_A_crontab() RETURNS void AS $$
+BEGIN
+    IF EXISTS (SELECT 1 FROM information_schema.COLUMNS
+        WHERE TABLE_NAME='t_ds_schedules'
+        AND COLUMN_NAME ='crontab')
+    THEN
+        ALTER TABLE t_ds_schedules ALTER COLUMN crontab type varchar(255);
+    END IF;
+END;
+$$ LANGUAGE plpgsql;
+d//
+
+delimiter ;
+SELECT uc_dolphin_T_t_ds_schedules_A_crontab();
+DROP FUNCTION IF EXISTS uc_dolphin_T_t_ds_schedules_A_crontab();
+
+-- uc_dolphin_T_t_ds_tenant_A_description
+delimiter d//
+CREATE OR REPLACE FUNCTION uc_dolphin_T_t_ds_tenant_A_description() RETURNS void AS $$
+BEGIN
+    IF EXISTS (SELECT 1 FROM information_schema.COLUMNS
+        WHERE TABLE_NAME='t_ds_tenant'
+        AND COLUMN_NAME ='description')
+    THEN
+        ALTER TABLE t_ds_tenant ALTER COLUMN description type varchar(255);
+    END IF;
+END;
+$$ LANGUAGE plpgsql;
+d//
+
+delimiter ;
+SELECT uc_dolphin_T_t_ds_tenant_A_description();
+DROP FUNCTION IF EXISTS uc_dolphin_T_t_ds_tenant_A_description();
+
+-- uc_dolphin_T_t_ds_worker_group_A_name
+delimiter d//
+CREATE OR REPLACE FUNCTION uc_dolphin_T_t_ds_worker_group_A_name() RETURNS void AS $$
+BEGIN
+    IF EXISTS (SELECT 1 FROM information_schema.COLUMNS
+        WHERE TABLE_NAME='t_ds_worker_group'
+        AND COLUMN_NAME ='name')
+    THEN
+        ALTER TABLE t_ds_worker_group ALTER COLUMN name type varchar(255);
+    END IF;
+END;
+$$ LANGUAGE plpgsql;
+d//
+
+delimiter ;
+SELECT uc_dolphin_T_t_ds_worker_group_A_name();
+DROP FUNCTION IF EXISTS uc_dolphin_T_t_ds_worker_group_A_name();
diff --git a/sql/upgrade/1.3.7_schema/postgresql/dolphinscheduler_dml.sql b/sql/upgrade/1.3.7_schema/postgresql/dolphinscheduler_dml.sql
new file mode 100644
index 0000000..38964cc
--- /dev/null
+++ b/sql/upgrade/1.3.7_schema/postgresql/dolphinscheduler_dml.sql
@@ -0,0 +1,16 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+*/
\ No newline at end of file