Merged BRANCHES/V3.3 to HEAD:

20575: ALF-3179: Correction to handling of peer associations for which the transferred node is the target.
   20586: Fix ALF-2996
   20587: ALF-2627 - Share site activity feeds are not working for DB2 dialect
   20590: Fixed ALF-3189: Oracle/DB2/SQLServer/PostgreSQL are missing indexes to support many FK constraints
   20593: Further fix for ALF-3189: Oracle/DB2/SQLServer/PostgreSQL are missing indexes to support many FK constraints
   20670: Fix for ALF-3260: XSS attack is made in Wiki tab if First/Last user name contain xss
   20671: Fixed ALF-3546: patch.db-V3.2-AddFKIndexes is failing on MSSQL Server 2008 on upgrade to 3.3.1 E build 95


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@20677 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2010-06-17 10:24:31 +00:00
parent 4badee51e0
commit 6e928249a5
7 changed files with 118 additions and 6 deletions

View File

@@ -73,6 +73,7 @@
</property>
<property name="postCreateScriptUrls">
<list>
<value>classpath:alfresco/dbscripts/create/2.2/${db.script.dialect}/AlfrescoPostCreate-2.2-MappedFKIndexes.sql</value>
<value>classpath:alfresco/dbscripts/create/2.2/${db.script.dialect}/AlfrescoPostCreate-2.2-Extra.sql</value>
<value>classpath:alfresco/dbscripts/create/2.2/${db.script.dialect}/post-create-indexes-04.sql</value>
<value>classpath:alfresco/dbscripts/create/3.0/${db.script.dialect}/create-activities-extras.sql</value>
@@ -108,6 +109,7 @@
<ref bean="patch.db-V3.2-AuditTables" />
<ref bean="patch.db-V3.2-Child-Assoc-QName-CRC" />
<ref bean="patch.db-V3.3-modify-index-permission_id" />
<ref bean="patch.db-V3.2-AddFKIndexes" />
</list>
</property>
<property name="postUpdateScriptPatches">

View File

@@ -0,0 +1,75 @@
--
-- Title: Post-Create Indexes
-- Database: Generic
-- Since: V2.2 Schema 86
-- Author: Derek Hulley
--
-- Hibernate only generates indexes on foreign key columns for MySQL.
--
-- Please contact support@alfresco.com if you need assistance with the upgrade.
--
--
-- ALF-3546: patch.db-V3.2-AddFKIndexes is failing on MSSQL Server 2008
-- Made the 'alf_access_control_entry' indexes optional
CREATE INDEX fk_alf_ace_auth ON alf_access_control_entry (authority_id); -- (optional)
CREATE INDEX fk_alf_ace_perm ON alf_access_control_entry (permission_id); -- (optional)
CREATE INDEX fk_alf_ace_ctx ON alf_access_control_entry (context_id); -- (optional)
CREATE INDEX fk_alf_acl_acs ON alf_access_control_list (acl_change_set);
CREATE INDEX fk_alf_aclm_acl ON alf_acl_member (acl_id);
CREATE INDEX fk_alf_aclm_ace ON alf_acl_member (ace_id);
CREATE INDEX fk_alf_attr_acl ON alf_attributes (acl_id);
CREATE INDEX fk_alf_adtf_src ON alf_audit_fact (audit_source_id);
CREATE INDEX fk_alf_adtf_date ON alf_audit_fact (audit_date_id);
CREATE INDEX fk_alf_adtf_conf ON alf_audit_fact (audit_conf_id);
CREATE INDEX fk_alf_autha_ali ON alf_authority_alias (alias_id);
CREATE INDEX fk_alf_autha_aut ON alf_authority_alias (auth_id);
CREATE INDEX fk_alf_cass_pnode ON alf_child_assoc (parent_node_id);
CREATE INDEX fk_alf_cass_cnode ON alf_child_assoc (child_node_id);
-- alf_global_attributes.attribute is declared unique. Indexes may automatically have been created.
CREATE INDEX fk_alf_gatt_att ON alf_global_attributes (attribute); -- (optional)
CREATE INDEX fk_alf_lent_att ON alf_list_attribute_entries (attribute_id);
CREATE INDEX fk_alf_lent_latt ON alf_list_attribute_entries (list_id);
CREATE INDEX fk_alf_matt_matt ON alf_map_attribute_entries (map_id);
CREATE INDEX fk_alf_matt_att ON alf_map_attribute_entries (attribute_id);
CREATE INDEX fk_alf_node_acl ON alf_node (acl_id);
CREATE INDEX fk_alf_node_txn ON alf_node (transaction_id);
CREATE INDEX fk_alf_node_store ON alf_node (store_id);
CREATE INDEX fk_alf_nasp_n ON alf_node_aspects (node_id);
CREATE INDEX fk_alf_nass_snode ON alf_node_assoc (source_node_id);
CREATE INDEX fk_alf_nass_tnode ON alf_node_assoc (target_node_id);
CREATE INDEX fk_alf_nprop_n ON alf_node_properties (node_id);
-- Optional: Present in AlfrescoCreate-3.3-RepoTables.sql for create but required during upgrade
CREATE INDEX fk_alf_qname_ns ON alf_qname (ns_id); -- (optional)
CREATE INDEX fk_alf_store_root ON alf_store (root_node_id);
CREATE INDEX fk_alf_txn_svr ON alf_transaction (server_id);
CREATE INDEX fk_alf_usaged_n ON alf_usage_delta (node_id);
--
-- Record script finish
--
DELETE FROM alf_applied_patch WHERE id = 'patch.db-V3.2-AddFKIndexes';
INSERT INTO alf_applied_patch
(id, description, fixes_from_schema, fixes_to_schema, applied_to_schema, target_schema, applied_on_date, applied_to_server, was_executed, succeeded, report)
VALUES
(
'patch.db-V3.2-AddFKIndexes', 'Fixes ALF-3189: Added missing FK indexes. Note: The script is empty for MySQL.',
3007, 4012, -1, 4013, null, 'UNKOWN', ${true}, ${true}, 'Script completed'
);

View File

@@ -0,0 +1,22 @@
--
-- Title: Post-Create Indexes
-- Database: MySQL
-- Since: V2.2 Schema 86
-- Author: Derek Hulley
--
-- Hibernate only generates indexes on foreign key columns for MySQL.
--
-- Please contact support@alfresco.com if you need assistance with the upgrade.
--
--
-- Record script finish
--
DELETE FROM alf_applied_patch WHERE id = 'patch.db-V3.2-AddFKIndexes';
INSERT INTO alf_applied_patch
(id, description, fixes_from_schema, fixes_to_schema, applied_to_schema, target_schema, applied_on_date, applied_to_server, was_executed, succeeded, report)
VALUES
(
'patch.db-V3.2-AddFKIndexes', 'Fixes ALF-3189: Added missing FK indexes. Note: The script is empty for MySQL.',
3007, 4012, -1, 4013, null, 'UNKOWN', ${true}, ${true}, 'Script completed'
);

View File

@@ -343,3 +343,5 @@ patch.fixAuthoritiesCrcValues.fixed=Updated CRC32 values for authority ID {0}, a
patch.fixAuthoritiesCrcValues.unableToChange=Failed to update the CRC32 value for authority ID {0}: \n Authority: {1} \n authority CRC old: {2} \n authority CRC new: {3} \n Error: {4}
patch.updateMimetypes1.description=Fix mimetypes for Excel and Powerpoint.
patch.db-V3.2-AddFKIndexes.description=Fixes ALF-3189: Added missing FK indexes. Note: The script is empty for MySQL.

View File

@@ -2253,4 +2253,15 @@
<value>classpath:alfresco/dbscripts/upgrade/3.3/${db.script.dialect}/modify-index-permission_id.sql</value>
</property>
</bean>
<bean id="patch.db-V3.2-AddFKIndexes" class="org.alfresco.repo.admin.patch.impl.SchemaUpgradeScriptPatch" parent="basePatch">
<property name="id"><value>patch.db-V3.2-AddFKIndexes</value></property>
<property name="description"><value>patch.schemaUpgradeScript.description</value></property>
<property name="fixesFromSchema"><value>3007</value></property>
<property name="fixesToSchema"><value>4103</value></property>
<property name="targetSchema"><value>4104</value></property>
<property name="scriptUrl">
<value>classpath:alfresco/dbscripts/create/2.2/${db.script.dialect}/AlfrescoPostCreate-2.2-MappedFKIndexes.sql</value>
</property>
</bean>
</beans>

View File

@@ -19,4 +19,4 @@ version.build=@build-number@
# Schema number
version.schema=4103
version.schema=4104

View File

@@ -120,27 +120,27 @@ public class ActivityServiceImplTest extends BaseSpringTest
public void testGetEmptyUserFeed() throws Exception
{
List<String> userFeedEntries = this.activityService.getUserFeedEntries("unknown user", "some format", null);
List<String> userFeedEntries = this.activityService.getUserFeedEntries("unknown user", "a format", null);
assertNotNull(userFeedEntries);
assertTrue(userFeedEntries.isEmpty());
userFeedEntries = this.activityService.getUserFeedEntries("unknown user", "some format", "some site");
userFeedEntries = this.activityService.getUserFeedEntries("unknown user", "a format", "some site");
assertNotNull(userFeedEntries);
assertTrue(userFeedEntries.isEmpty());
userFeedEntries = this.activityService.getUserFeedEntries("unknown user", "some format", "some site", true, false);
userFeedEntries = this.activityService.getUserFeedEntries("unknown user", "a format", "some site", true, false);
assertNotNull(userFeedEntries);
assertTrue(userFeedEntries.isEmpty());
userFeedEntries = this.activityService.getUserFeedEntries("unknown user", "some format", "some site", false, true);
userFeedEntries = this.activityService.getUserFeedEntries("unknown user", "a format", "some site", false, true);
assertNotNull(userFeedEntries);
assertTrue(userFeedEntries.isEmpty());
userFeedEntries = this.activityService.getUserFeedEntries("unknown user", "some format", "some site", true, true);
userFeedEntries = this.activityService.getUserFeedEntries("unknown user", "a format", "some site", true, true);
assertNotNull(userFeedEntries);
assertTrue(userFeedEntries.isEmpty());