From 74d883a3276cd74542529605c597f25e105a0a91 Mon Sep 17 00:00:00 2001 From: Nollymar Longa Date: Mon, 6 Apr 2020 14:46:49 -0500 Subject: [PATCH] #17976 Extending index_name column length to 100 as uuid is appended to the index name to avoid duplicity in concurrent environments (#18269) Co-authored-by: Nollymar Longa <> --- .../Task05221UpdateIndexNameLength.java | 52 +++++++++++++++++++ .../dotmarketing/util/TaskLocatorUtil.java | 1 + dotCMS/src/main/resources/mssql.sql | 2 +- dotCMS/src/main/resources/mysql.sql | 2 +- dotCMS/src/main/resources/oracle.sql | 2 +- dotCMS/src/main/resources/postgres.sql | 2 +- 6 files changed, 57 insertions(+), 4 deletions(-) create mode 100644 dotCMS/src/main/java/com/dotmarketing/startup/runonce/Task05221UpdateIndexNameLength.java diff --git a/dotCMS/src/main/java/com/dotmarketing/startup/runonce/Task05221UpdateIndexNameLength.java b/dotCMS/src/main/java/com/dotmarketing/startup/runonce/Task05221UpdateIndexNameLength.java new file mode 100644 index 000000000000..7fcb9aa664d1 --- /dev/null +++ b/dotCMS/src/main/java/com/dotmarketing/startup/runonce/Task05221UpdateIndexNameLength.java @@ -0,0 +1,52 @@ +package com.dotmarketing.startup.runonce; + +import com.dotmarketing.startup.AbstractJDBCStartupTask; +import java.util.List; + +public class Task05221UpdateIndexNameLength extends AbstractJDBCStartupTask { + + @Override + public String getMSSQLScript() { + return "DECLARE @SQL VARCHAR(4000)\n" + + "SET @SQL = 'ALTER TABLE dbo.Indicies DROP CONSTRAINT |ConstraintName| '\n" + + "\n" + + "SET @SQL = REPLACE(@SQL, '|ConstraintName|', ( SELECT name\n" + + " FROM sysobjects\n" + + " WHERE xtype = 'PK'\n" + + " AND parent_obj = OBJECT_ID('Indicies')))\n" + + "\n" + + "EXEC (@SQL)\n" + + "alter table indicies alter column index_name nvarchar(100) not null;\n" + + "alter table Indicies add primary key (index_name);"; + } + + @Override + public String getMySQLScript() { + return "alter table indicies modify index_name varchar(100);"; + } + + @Override + public String getOracleScript() { + return "alter table indicies modify index_name varchar2(100);"; + } + + @Override + public String getPostgresScript() { + return "alter table indicies alter column index_name type varchar(100);"; + } + + @Override + protected List getTablesToDropConstraints() { + return null; + } + + public boolean forceRun() { + return true; + } + + @Override + public String getH2Script() { + return "alter table indicies alter column index_name type varchar(100);"; + } + +} diff --git a/dotCMS/src/main/java/com/dotmarketing/util/TaskLocatorUtil.java b/dotCMS/src/main/java/com/dotmarketing/util/TaskLocatorUtil.java index 16136518b1e2..0b782538756c 100644 --- a/dotCMS/src/main/java/com/dotmarketing/util/TaskLocatorUtil.java +++ b/dotCMS/src/main/java/com/dotmarketing/util/TaskLocatorUtil.java @@ -278,6 +278,7 @@ public static List> getStartupRunOnceTaskClasses() { ret.add(Task05210CreateDefaultDotAsset.class); ret.add(Task05215AddSystemWorkflowToDotAssetContentType.class); ret.add(Task05220MakeFileAssetContentTypeBinaryFieldIndexedListed.class); + ret.add(Task05221UpdateIndexNameLength.class); return ret; } diff --git a/dotCMS/src/main/resources/mssql.sql b/dotCMS/src/main/resources/mssql.sql index 20fee145b09a..d5df338de8ba 100644 --- a/dotCMS/src/main/resources/mssql.sql +++ b/dotCMS/src/main/resources/mssql.sql @@ -2480,7 +2480,7 @@ alter table tag alter column user_id NVARCHAR(MAX); -- ****** Indicies Data Storage ******* create table indicies ( - index_name NVARCHAR(30) primary key, + index_name NVARCHAR(100) primary key, index_type NVARCHAR(16) not null unique ); -- ****** Log Console Table ******* diff --git a/dotCMS/src/main/resources/mysql.sql b/dotCMS/src/main/resources/mysql.sql index 71b890ac6a4a..152e0d2353b9 100644 --- a/dotCMS/src/main/resources/mysql.sql +++ b/dotCMS/src/main/resources/mysql.sql @@ -2137,7 +2137,7 @@ alter table tag_inode add constraint fk_tag_inode_tagid foreign key (tag_id) ref -- ****** Indicies Data Storage ******* create table indicies ( - index_name varchar(30) primary key, + index_name varchar(100) primary key, index_type varchar(16) not null unique ); diff --git a/dotCMS/src/main/resources/oracle.sql b/dotCMS/src/main/resources/oracle.sql index 7f0f0a0ba2b3..0639185456dc 100644 --- a/dotCMS/src/main/resources/oracle.sql +++ b/dotCMS/src/main/resources/oracle.sql @@ -2319,7 +2319,7 @@ create index tag_user_id_index on tag(user_id) indextype is ctxsys.context; -- ****** Indicies Data Storage ******* create table indicies ( - index_name varchar2(30) primary key, + index_name varchar2(100) primary key, index_type varchar2(16) not null unique ); -- ****** Log Console Table ******* diff --git a/dotCMS/src/main/resources/postgres.sql b/dotCMS/src/main/resources/postgres.sql index 59311ec97cb5..35ed16f48946 100644 --- a/dotCMS/src/main/resources/postgres.sql +++ b/dotCMS/src/main/resources/postgres.sql @@ -2267,7 +2267,7 @@ ALTER TABLE tag ALTER COLUMN user_id TYPE text; -- ****** Indicies Data Storage ******* create table indicies ( - index_name varchar(30) primary key, + index_name varchar(100) primary key, index_type varchar(16) not null unique ); -- ****** Log Console Table *******