From ada7e349d686ba5a1cf370666dd24aae927f74eb Mon Sep 17 00:00:00 2001 From: Jan Vonka Date: Fri, 22 Oct 2010 14:01:26 +0000 Subject: [PATCH] For MySQL, replace remaining TYPE=InnoDB with ENGINE=InnoDB - also fix for generated SQL (ie. JBPM) - enables bootstrap on MySQL 5.5 rc (note: untested / unsupported) - see http://forums.alfresco.com/en/viewtopic.php?f=8&t=26674 - re: ALF-4996 git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@23228 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../AlfrescoCreate-AvmTables.sql | 20 ++++++++-------- .../AlfrescoCreate-LockTables.sql | 4 ++-- .../upgrade-0-create-missing-tables.sql | 10 ++++---- .../upgrade-from-2.1.sql | 24 +++++++++---------- .../upgrade-from-2.2SP1.sql | 24 +++++++++---------- .../repo/domain/schema/SchemaBootstrap.java | 6 +++++ 6 files changed, 47 insertions(+), 41 deletions(-) diff --git a/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoCreate-AvmTables.sql b/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoCreate-AvmTables.sql index 990420a814..6a2b5da47a 100644 --- a/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoCreate-AvmTables.sql +++ b/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoCreate-AvmTables.sql @@ -11,26 +11,26 @@ node_id bigint not null, qname_id bigint not null, primary key (node_id, qname_id) - ) type=InnoDB; + ) ENGINE=InnoDB; create table avm_child_entries ( parent_id bigint not null, name varchar(160) not null, child_id bigint not null, primary key (parent_id, name) - ) type=InnoDB; + ) ENGINE=InnoDB; create table avm_history_links ( ancestor bigint not null, descendent bigint not null, primary key (ancestor, descendent) - ) type=InnoDB; + ) ENGINE=InnoDB; create table avm_merge_links ( mfrom bigint not null, mto bigint not null, primary key (mfrom, mto) - ) type=InnoDB; + ) ENGINE=InnoDB; create table avm_node_properties ( node_id bigint not null, @@ -45,7 +45,7 @@ serializable_value blob, qname_id bigint not null, primary key (node_id, qname_id) - ) type=InnoDB; + ) ENGINE=InnoDB; create table avm_nodes ( id bigint not null auto_increment, @@ -73,7 +73,7 @@ encoding varchar(16), length bigint, primary key (id) - ) type=InnoDB; + ) ENGINE=InnoDB; create table avm_store_properties ( id bigint not null auto_increment, @@ -89,7 +89,7 @@ string_value text, serializable_value blob, primary key (id) - ) type=InnoDB; + ) ENGINE=InnoDB; create table avm_stores ( id bigint not null auto_increment, @@ -99,14 +99,14 @@ current_root_id bigint, acl_id bigint, primary key (id) - ) type=InnoDB; + ) ENGINE=InnoDB; create table avm_version_layered_node_entry ( version_root_id bigint not null, md5sum varchar(32) not null, path text, primary key (version_root_id, md5sum) - ) type=InnoDB; + ) ENGINE=InnoDB; create table avm_version_roots ( id bigint not null auto_increment, @@ -119,7 +119,7 @@ description text, primary key (id), unique (version_id, avm_store_id) - ) type=InnoDB; + ) ENGINE=InnoDB; alter table avm_aspects add index fk_avm_nasp_n (node_id), diff --git a/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoCreate-LockTables.sql b/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoCreate-LockTables.sql index c8245e00a9..dd64bae177 100644 --- a/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoCreate-LockTables.sql +++ b/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoCreate-LockTables.sql @@ -16,7 +16,7 @@ CREATE TABLE alf_lock_resource CONSTRAINT fk_alf_lockr_ns FOREIGN KEY (qname_ns_id) REFERENCES alf_namespace (id), PRIMARY KEY (id), UNIQUE INDEX idx_alf_lockr_key (qname_ns_id, qname_localname) -) TYPE=InnoDB; +) ENGINE=InnoDB; CREATE TABLE alf_lock ( @@ -31,7 +31,7 @@ CREATE TABLE alf_lock CONSTRAINT fk_alf_lock_excl FOREIGN KEY fk_alf_lock_excl (excl_resource_id) REFERENCES alf_lock_resource (id), PRIMARY KEY (id), UNIQUE INDEX idx_alf_lock_key (shared_resource_id, excl_resource_id) -) TYPE=InnoDB; +) ENGINE=InnoDB; -- -- Record script finish diff --git a/config/alfresco/dbscripts/upgrade/2.2/org.hibernate.dialect.MySQLInnoDBDialect/upgrade-0-create-missing-tables.sql b/config/alfresco/dbscripts/upgrade/2.2/org.hibernate.dialect.MySQLInnoDBDialect/upgrade-0-create-missing-tables.sql index 492a545086..a912a34e73 100644 --- a/config/alfresco/dbscripts/upgrade/2.2/org.hibernate.dialect.MySQLInnoDBDialect/upgrade-0-create-missing-tables.sql +++ b/config/alfresco/dbscripts/upgrade/2.2/org.hibernate.dialect.MySQLInnoDBDialect/upgrade-0-create-missing-tables.sql @@ -22,13 +22,13 @@ ALTER TABLE alf_audit_date CHANGE COLUMN year full_year INTEGER NOT NULL; node_id bigint, qname varchar(200), primary key (id) - ) type=InnoDB; -- (optional) + ) ENGINE=InnoDB; -- (optional) create table avm_aspects_new ( id bigint not null, name varchar(200) not null, primary key (id, name) - ) type=InnoDB; -- (optional) + ) ENGINE=InnoDB; -- (optional) create table avm_node_properties ( id bigint not null auto_increment, @@ -44,7 +44,7 @@ ALTER TABLE alf_audit_date CHANGE COLUMN year full_year INTEGER NOT NULL; string_value text, serializable_value blob, primary key (id) - ) type=InnoDB; -- (optional) + ) ENGINE=InnoDB; -- (optional) create table avm_node_properties_new ( node_id bigint not null, @@ -59,7 +59,7 @@ ALTER TABLE alf_audit_date CHANGE COLUMN year full_year INTEGER NOT NULL; serializable_value blob, qname varchar(200) not null, primary key (node_id, qname) - ) type=InnoDB; -- (optional) + ) ENGINE=InnoDB; -- (optional) create table avm_store_properties ( id bigint not null auto_increment, @@ -75,7 +75,7 @@ ALTER TABLE alf_audit_date CHANGE COLUMN year full_year INTEGER NOT NULL; string_value text, serializable_value blob, primary key (id) - ) type=InnoDB; -- (optional) + ) ENGINE=InnoDB; -- (optional) -- Add ACL column for AVM tables ALTER TABLE avm_stores diff --git a/config/alfresco/dbscripts/upgrade/2.2/org.hibernate.dialect.MySQLInnoDBDialect/upgrade-from-2.1.sql b/config/alfresco/dbscripts/upgrade/2.2/org.hibernate.dialect.MySQLInnoDBDialect/upgrade-from-2.1.sql index 164a010f2e..9f7bc755e3 100644 --- a/config/alfresco/dbscripts/upgrade/2.2/org.hibernate.dialect.MySQLInnoDBDialect/upgrade-from-2.1.sql +++ b/config/alfresco/dbscripts/upgrade/2.2/org.hibernate.dialect.MySQLInnoDBDialect/upgrade-from-2.1.sql @@ -233,7 +233,7 @@ CREATE TABLE t_alf_store root_node_id BIGINT, PRIMARY KEY (id), UNIQUE (protocol, identifier) -) TYPE=InnoDB; +) ENGINE=InnoDB; -- -------------------------- -- Populate the ADM nodes -- @@ -264,7 +264,7 @@ CREATE TABLE t_alf_node ( CONSTRAINT fk_alf_node_store FOREIGN KEY (store_id) REFERENCES t_alf_store (id), PRIMARY KEY (id), UNIQUE (store_id, uuid) -) TYPE=InnoDB; +) ENGINE=InnoDB; -- Fill the store table INSERT INTO t_alf_store (version, protocol, identifier, root_node_id) @@ -277,7 +277,7 @@ CREATE TABLE t_summary_nstat node_id BIGINT(20) NOT NULL, transaction_id BIGINT(20) DEFAULT NULL, PRIMARY KEY (node_id) -) TYPE=InnoDB; +) ENGINE=InnoDB; --FOREACH alf_node_status.node_id system.upgrade.t_summary_nstat.batchsize INSERT INTO t_summary_nstat (node_id, transaction_id) SELECT node_id, transaction_id @@ -324,7 +324,7 @@ CREATE TABLE t_alf_version_count INDEX fk_alf_vc_store (store_id), CONSTRAINT fk_alf_vc_store FOREIGN KEY (store_id) REFERENCES t_alf_store (id), PRIMARY KEY (id) -) TYPE=InnoDB; +) ENGINE=InnoDB; INSERT INTO t_alf_version_count ( @@ -369,7 +369,7 @@ CREATE TABLE t_alf_child_assoc CONSTRAINT fk_alf_cass_qnns foreign key (qname_ns_id) REFERENCES alf_namespace (id), PRIMARY KEY (id), UNIQUE (parent_node_id, type_qname_id, child_node_name_crc, child_node_name) -) TYPE=InnoDB; +) ENGINE=InnoDB; --FOREACH alf_child_assoc.id system.upgrade.t_alf_child_assoc.batchsize INSERT INTO t_alf_child_assoc @@ -422,7 +422,7 @@ CREATE TABLE t_alf_node_assoc CONSTRAINT fk_alf_nass_tqn FOREIGN KEY (type_qname_id) REFERENCES alf_qname (id), PRIMARY KEY (id), UNIQUE (source_node_id, target_node_id, type_qname_id) -) TYPE=InnoDB; +) ENGINE=InnoDB; --FOREACH alf_node_assoc.id system.upgrade.t_alf_node_assoc.batchsize INSERT INTO t_alf_node_assoc @@ -459,7 +459,7 @@ CREATE TABLE t_alf_node_aspects CONSTRAINT fk_alf_nasp_n FOREIGN KEY (node_id) REFERENCES t_alf_node (id), CONSTRAINT fk_alf_nasp_qn FOREIGN KEY (qname_id) REFERENCES alf_qname (id), PRIMARY KEY (node_id, qname_id) -) TYPE=InnoDB; +) ENGINE=InnoDB; --FOREACH alf_node_aspects.node_id system.upgrade.t_alf_node_aspects.batchsize -- Note the omission of sys:referencable. This is implicit. @@ -495,7 +495,7 @@ CREATE TABLE t_avm_aspects CONSTRAINT fk_avm_nasp_n FOREIGN KEY (node_id) REFERENCES avm_nodes (id), CONSTRAINT fk_avm_nasp_qn FOREIGN KEY (qname_id) REFERENCES alf_qname (id), PRIMARY KEY (node_id, qname_id) -) TYPE=InnoDB; +) ENGINE=InnoDB; --FOREACH avm_aspects.node_id system.upgrade.t_avm_aspects.batchsize INSERT INTO t_avm_aspects @@ -584,7 +584,7 @@ CREATE TABLE t_avm_store_properties CONSTRAINT fk_avm_sprop_store FOREIGN KEY (avm_store_id) REFERENCES avm_stores (id), CONSTRAINT fk_avm_sprop_qname FOREIGN KEY (qname_id) REFERENCES alf_qname (id), PRIMARY KEY (id) -) TYPE=InnoDB; +) ENGINE=InnoDB; --FOREACH avm_store_properties.avm_store_id system.upgrade.t_avm_store_properties.batchsize INSERT INTO t_avm_store_properties ( @@ -628,7 +628,7 @@ CREATE TABLE t_avm_node_properties CONSTRAINT fk_avm_nprop_n FOREIGN KEY (node_id) REFERENCES avm_nodes (id), CONSTRAINT fk_avm_nprop_qn FOREIGN KEY (qname_id) REFERENCES alf_qname (id), PRIMARY KEY (node_id, qname_id) -) TYPE=InnoDB; +) ENGINE=InnoDB; --FOREACH avm_node_properties_new.node_id system.upgrade.t_avm_node_properties.batchsize INSERT INTO t_avm_node_properties ( @@ -690,7 +690,7 @@ CREATE TABLE alf_locale locale_str VARCHAR(20) NOT NULL, PRIMARY KEY (id), UNIQUE (locale_str) -) TYPE=InnoDB; +) ENGINE=InnoDB; INSERT INTO alf_locale (id, locale_str) VALUES (1, '.default'); @@ -732,7 +732,7 @@ CREATE TABLE t_alf_node_properties CONSTRAINT fk_alf_nprop_qn FOREIGN KEY (qname_id) REFERENCES alf_qname (id), CONSTRAINT fk_alf_nprop_loc FOREIGN KEY (locale_id) REFERENCES alf_locale (id), PRIMARY KEY (node_id, qname_id, list_index, locale_id) -) TYPE=InnoDB; +) ENGINE=InnoDB; --BEGIN TXN -- Copy values over diff --git a/config/alfresco/dbscripts/upgrade/2.2/org.hibernate.dialect.MySQLInnoDBDialect/upgrade-from-2.2SP1.sql b/config/alfresco/dbscripts/upgrade/2.2/org.hibernate.dialect.MySQLInnoDBDialect/upgrade-from-2.2SP1.sql index 59a85e0ac4..7a84687b05 100644 --- a/config/alfresco/dbscripts/upgrade/2.2/org.hibernate.dialect.MySQLInnoDBDialect/upgrade-from-2.2SP1.sql +++ b/config/alfresco/dbscripts/upgrade/2.2/org.hibernate.dialect.MySQLInnoDBDialect/upgrade-from-2.2SP1.sql @@ -25,7 +25,7 @@ CREATE TABLE t_alf_store root_node_id BIGINT, PRIMARY KEY (id), UNIQUE (protocol, identifier) -) TYPE=InnoDB; +) ENGINE=InnoDB; -- -------------------------- -- Populate the ADM nodes -- @@ -56,7 +56,7 @@ CREATE TABLE t_alf_node ( CONSTRAINT fk_alf_node_store FOREIGN KEY (store_id) REFERENCES t_alf_store (id), PRIMARY KEY (id), UNIQUE (store_id, uuid) -) TYPE=InnoDB; +) ENGINE=InnoDB; -- Fill the store table INSERT INTO t_alf_store (version, protocol, identifier, root_node_id) @@ -69,7 +69,7 @@ CREATE TABLE t_summary_nstat node_id BIGINT(20) NOT NULL, transaction_id BIGINT(20) DEFAULT NULL, PRIMARY KEY (node_id) -) TYPE=InnoDB; +) ENGINE=InnoDB; --FOREACH alf_node_status.node_id system.upgrade.t_summary_nstat.batchsize INSERT INTO t_summary_nstat (node_id, transaction_id) SELECT node_id, transaction_id @@ -115,7 +115,7 @@ CREATE TABLE t_alf_version_count INDEX fk_alf_vc_store (store_id), CONSTRAINT fk_alf_vc_store FOREIGN KEY (store_id) REFERENCES t_alf_store (id), PRIMARY KEY (id) -) TYPE=InnoDB; +) ENGINE=InnoDB; INSERT INTO t_alf_version_count ( @@ -160,7 +160,7 @@ CREATE TABLE t_alf_child_assoc CONSTRAINT fk_alf_cass_qnns foreign key (qname_ns_id) REFERENCES alf_namespace (id), PRIMARY KEY (id), UNIQUE (parent_node_id, type_qname_id, child_node_name_crc, child_node_name) -) TYPE=InnoDB; +) ENGINE=InnoDB; --FOREACH alf_child_assoc.id system.upgrade.t_alf_child_assoc.batchsize INSERT INTO t_alf_child_assoc @@ -210,7 +210,7 @@ CREATE TABLE t_alf_node_assoc CONSTRAINT fk_alf_nass_tqn FOREIGN KEY (type_qname_id) REFERENCES alf_qname (id), PRIMARY KEY (id), UNIQUE (source_node_id, target_node_id, type_qname_id) -) TYPE=InnoDB; +) ENGINE=InnoDB; --FOREACH alf_node_assoc.id system.upgrade.t_alf_node_assoc.batchsize INSERT INTO t_alf_node_assoc @@ -246,7 +246,7 @@ CREATE TABLE t_alf_node_aspects CONSTRAINT fk_alf_nasp_n FOREIGN KEY (node_id) REFERENCES t_alf_node (id), CONSTRAINT fk_alf_nasp_qn FOREIGN KEY (qname_id) REFERENCES alf_qname (id), PRIMARY KEY (node_id, qname_id) -) TYPE=InnoDB; +) ENGINE=InnoDB; --FOREACH alf_node_aspects.node_id system.upgrade.t_alf_node_aspects.batchsize -- Note the omission of sys:referencable. This is implicit. @@ -284,7 +284,7 @@ CREATE TABLE t_avm_aspects CONSTRAINT fk_avm_nasp_n FOREIGN KEY (node_id) REFERENCES avm_nodes (id), CONSTRAINT fk_avm_nasp_qn FOREIGN KEY (qname_id) REFERENCES alf_qname (id), PRIMARY KEY (node_id, qname_id) -) TYPE=InnoDB; +) ENGINE=InnoDB; --FOREACH avm_aspects_new.id system.upgrade.t_avm_aspects.batchsize INSERT INTO t_avm_aspects @@ -329,7 +329,7 @@ CREATE TABLE t_avm_store_properties CONSTRAINT fk_avm_sprop_store FOREIGN KEY (avm_store_id) REFERENCES avm_stores (id), CONSTRAINT fk_avm_sprop_qname FOREIGN KEY (qname_id) REFERENCES alf_qname (id), PRIMARY KEY (id) -) TYPE=InnoDB; +) ENGINE=InnoDB; --FOREACH avm_store_properties.avm_store_id system.upgrade.t_avm_store_properties.batchsize INSERT INTO t_avm_store_properties ( @@ -370,7 +370,7 @@ CREATE TABLE t_avm_node_properties CONSTRAINT fk_avm_nprop_n FOREIGN KEY (node_id) REFERENCES avm_nodes (id), CONSTRAINT fk_avm_nprop_qn FOREIGN KEY (qname_id) REFERENCES alf_qname (id), PRIMARY KEY (node_id, qname_id) -) TYPE=InnoDB; +) ENGINE=InnoDB; --FOREACH avm_node_properties_new.node_id system.upgrade.t_avm_node_properties.batchsize INSERT INTO t_avm_node_properties ( @@ -406,7 +406,7 @@ CREATE TABLE alf_locale locale_str VARCHAR(20) NOT NULL, PRIMARY KEY (id), UNIQUE (locale_str) -) TYPE=InnoDB; +) ENGINE=InnoDB; INSERT INTO alf_locale (id, locale_str) VALUES (1, '.default'); @@ -447,7 +447,7 @@ CREATE TABLE t_alf_node_properties CONSTRAINT fk_alf_nprop_qn FOREIGN KEY (qname_id) REFERENCES alf_qname (id), CONSTRAINT fk_alf_nprop_loc FOREIGN KEY (locale_id) REFERENCES alf_locale (id), PRIMARY KEY (node_id, qname_id, list_index, locale_id) -) TYPE=InnoDB; +) ENGINE=InnoDB; --BEGIN TXN -- Copy values over diff --git a/source/java/org/alfresco/repo/domain/schema/SchemaBootstrap.java b/source/java/org/alfresco/repo/domain/schema/SchemaBootstrap.java index 434dc6f6ee..3adca88875 100644 --- a/source/java/org/alfresco/repo/domain/schema/SchemaBootstrap.java +++ b/source/java/org/alfresco/repo/domain/schema/SchemaBootstrap.java @@ -1162,6 +1162,12 @@ public class SchemaBootstrap extends AbstractLifecycleBean sql = sql.replaceAll("\\$\\{TRUE\\}", "1"); } + if (this.dialect != null && this.dialect instanceof MySQLInnoDBDialect) + { + // note: enable bootstrap on MySQL 5.5 (eg. for auto-generated SQL, such as JBPM) + sql = sql.replaceAll("(?i)TYPE=InnoDB", "ENGINE=InnoDB"); + } + Object fetchedVal = executeStatement(connection, sql, fetchColumnName, optional, line, scriptFile); if (fetchVarName != null && fetchColumnName != null) {