- Ensure uniqueness across any three (incl. null) Serializable values
- Required to support RM rma:identifier contextual uniqueness
DB Update for MySQL:
drop table if exists alf_prop_unique_ctx;
CREATE TABLE alf_prop_unique_ctx
(
id BIGINT NOT NULL AUTO_INCREMENT,
version SMALLINT NOT NULL,
value1_prop_id BIGINT NOT NULL,
value2_prop_id BIGINT NOT NULL,
value3_prop_id BIGINT NOT NULL,
UNIQUE INDEX idx_alf_prop_unique_ctx (value1_prop_id, value2_prop_id, value3_prop_id),
CONSTRAINT fk_alf_prop_unique_ctx_1 FOREIGN KEY (value1_prop_id) REFERENCES alf_prop_value (id) ON DELETE CASCADE,
CONSTRAINT fk_alf_prop_unique_ctx_2 FOREIGN KEY (value2_prop_id) REFERENCES alf_prop_value (id) ON DELETE CASCADE,
CONSTRAINT fk_alf_prop_unique_ctx_3 FOREIGN KEY (value3_prop_id) REFERENCES alf_prop_value (id) ON DELETE CASCADE,
PRIMARY KEY (id)
);
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@16417 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- alf_prop_xxx tables
- Added alf_prop_root table
- alf_prop_value_xxx tables enforce uniqueness
- Better splitting up of Collections and Maps (attempt to use exact storage type)
- Moved some indexes around to reduce size but maintain index data lookups
- Allow updates and deletes of properties via alf_prop_root (entry-point table)
- Audit Application
- Unique by name
- Add 'disabled paths' to control audit behaviour (not wired into services)
- Added concurrency checks for updates to the Audit Application (model change, etc)
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@16217 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- Any combination of application (e.g. RM, repo, etc), user and time
- TODO: Extend queries to support finding audit entries by arbitrary audited values
- TODO: Full map retrieval in single query
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@16086 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- Audit paths can now use mixed case (after alf_prop_string_value enhancements)
- Pluggable data conversion when pushing values into persistence
- Relaxed XSD to allow mixed-case key values
- Regex checking of paths and names when building strings
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@15976 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- Normal prefix-index has been shortened to 32 chars (from 64)
- Added a fully indexed 'string_end' column of 16 characters
- iBatis queries are optimized to pull short strings from the index
- Long paths and NodeRefs are well-indexed using this approach
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@15833 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- TODO: ID-based caching for entities that can't be found by value (e.g. maps, serializable)
- TODO: Serializable table
- TODO: Dedicated tests for node properties (QName-Serializable maps with nested MLText)
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@15753 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261