MySource Matrix Developer

Main Content

MySource Matrix Developer Newsletter Issue 116
Friday 2nd March 2006

covers versions 3.10.6 stable, 3.12.1 stable, 3.13.0 development

News

New Releases on Monday

Two new point releases of MySource Matrix are currently scheduled for release at about lunchtime on Monday, 5th March 2007. Version 3.12.2 and 3.10.7 currently contain fixes to about 28 and 15 reported bugs. These releases are bug-fix releases only and no features are planned for them.

Function Change: Extracting Keywords

Early on during the week, the retrieve_keywords_replacements() function in Fudge's general/text.inc was renamed extract_keywords() in the development version. This was because the original name of the function is somewhat misleading; it does not deal with replacements at all, but rather simply extracts (what appears to be) keywords from a string.

The former function name remains as a deprecated alias to the extract_keywords() function; however the new function name should be used from now on.

Backend Search Changes

When the backend search was implemented, when an asset with an asset ID or URL matching the search text would be displayed along with any other search results, but only after the search is completed. There were a number of concerns about the effect this had on the Quick Search's original feature - the ability to search on an asset ID or URL and jump directly to that asset's Details screen - as it would only occur after what can be a slow search on large systems, due to the sheer size involved.

This has been modified so the original feature has priority, so only if an asset is not found with the same ID as what was entered, will a backend search be completed. This will affect searching for URLs within your MySource Matrix system, as well as searching for numbers most likely (as they may be valid asset IDs). This applies to the development version only.

Rollback Table Indexes

There have been some issues regarding the performance of rollback systems recently. The most common way to trace an issue in a PostgreSQL system is if running EXPLAIN ANALYZE on a query (especially an INSERT or UPDATE) shows the query itself runs quickly, but the time taken to execute the trigger blows out.

Although the unique keys of the rollback tables are set to a combination of sq_eff_from and the unique keys of the main table (primary or otherwise), some triggers call on a combination of just the main table's key columns, or of sq_eff_to and those columns. As the rollback table's keys state sq_eff_from first, those queries cannot be used for these situations, resulting in no index being used - hence the slow query times.

Some further queries have therefore been provided in the Upgrading section below, that will generate indexes for each of the key columns in a table, so they can be used in these situations. These should only be run if your system runs rollback. Hopefully these should provide some sort of improvement to rollback systems in general. Note that on new systems, these indexes will automatically be generated by the step_02.php install script.

New Features

Refresh Cache Cron Job

Added to: 3.13.0 development

A new screen, Refresh Cache, has been added to the Cron Manager. This screen allows you to schedule a periodic Cron Job to refresh the public cache of an asset. Normally, the cache for an asset is refreshed when a user visits it; this can take a while on an asset like an Asset Listing. It will do this by deleting the existing cache, and regenerating as the Public User (through calling the printBody() function of the asset).

This has the potential for the Refresh Cache job to pick up changes to the asset and re-generate the public cache without a user finding out the hard way first, thus potentially improving the user experience.

Create Asset Import Action: Set Attributes

Added to: 3.13.0 development

The Create Asset import action can now set attributes at the same time as creating the asset. This feature had been in the related trigger for a long time (to provide the ability to set required attributes - import actions essentially use triggers), and now has been exposed to the import script for much the same reason.

Setting attributes can be done through a new, optional <attributes> section, which looks like the below snippet of import XML. Note that like the trigger, serialise attributes are not currently handled.

        <action>
            <action_type>create_asset</action_type>
            (... rest of action ...)
            <attributes>
                <attribute>
                    <name>attribute_name</name>
                    <value>Attribute Value</value>
                </attribute>
                (... more attributes ...)
            </attributes>
        </action>
Create Design Customisation Trigger Action

Added to: 3.13.0 development

This new trigger action allows you to automatically create a customisation on a design when a trigger is fired. Currently, the customisation is created with a default name ("Customisation #<asset ID>") that can be changed after creation. (This will shortly be changed so that the customisation's name can itself be customised.)

Planned Development

No new generic features are currently scheduled for development.

Upgrading

3.13.0 Development

Additional queries:

If rollback is enabled on your system, run the following queries:

CREATE INDEX sq_rb_ast_mdata_dflt_val_asset ON sq_rb_ast_mdata_dflt_val (assetid);
CREATE INDEX sq_rb_ast_wflow_assetid ON sq_rb_ast_wflow (assetid);
CREATE INDEX sq_rb_ast_wflow_schemaid ON sq_rb_ast_wflow (schemaid);
CREATE INDEX sq_rb_ast_role_roleid ON sq_rb_ast_role (roleid);
CREATE INDEX sq_rb_ast_role_assetid ON sq_rb_ast_role (assetid);
CREATE INDEX sq_rb_ast_role_userid ON sq_rb_ast_role (userid);
CREATE INDEX sq_rb_trig_id ON sq_rb_trig (id);
CREATE INDEX sq_rb_cal_date_val_assetid ON sq_rb_cal_date_val (assetid);
CREATE INDEX sq_rb_ast_attr_uniq_val_owning ON sq_rb_ast_attr_uniq_val (owning_attrid);
CREATE INDEX sq_rb_ast_attr_uniq_val_custom ON sq_rb_ast_attr_uniq_val (custom_val);
CREATE INDEX sq_rb_ast_url_urlid ON sq_rb_ast_url (urlid);
CREATE INDEX sq_rb_ast_url_url ON sq_rb_ast_url (url);
CREATE INDEX sq_rb_ast_path_path ON sq_rb_ast_path (path);
CREATE INDEX sq_rb_ast_lookup_url ON sq_rb_ast_lookup (url);
CREATE INDEX sq_rb_ast_lookup_value_name ON sq_rb_ast_lookup_value (name);
CREATE INDEX sq_rb_ast_lookup_value_url ON sq_rb_ast_lookup_value (url);
CREATE INDEX sq_rb_ast_lookup_remap_url ON sq_rb_ast_lookup_remap (url);
CREATE INDEX sq_rb_ast_lookup_perm_permissi ON sq_rb_ast_perm (permission);
CREATE INDEX sq_rb_ast_edit_access_userid ON sq_rb_ast_edit_access (userid);
CREATE INDEX sq_rb_ast_edit_access_type_cod ON sq_rb_ast_edit_access (type_code);
CREATE INDEX sq_rb_ast_edit_access_screen ON sq_rb_ast_edit_access (screen);
CREATE INDEX sq_rb_ast_edit_access_section ON sq_rb_ast_edit_access (section);
CREATE INDEX sq_rb_ast_edit_mdata_assetid ON sq_rb_ast_mdata (assetid);
CREATE INDEX sq_rb_ast_edit_mdata_schemaid ON sq_rb_ast_mdata (schemaid);
CREATE INDEX sq_rb_ast_assetid ON sq_rb_ast (assetid);
CREATE INDEX sq_rb_ast_lnk_value ON sq_rb_ast_lnk (value);
CREATE INDEX sq_rb_shdw_ast_lnk_linkid ON sq_rb_shdw_ast_lnk (linkid);
CREATE INDEX sq_rb_ast_lnk_tree_treeid ON sq_rb_ast_lnk_tree (treeid);
CREATE INDEX sq_rb_ast_lnk_linkid ON sq_rb_ast_lnk (linkid);
CREATE INDEX sq_rb_ast_lnk_value ON sq_rb_ast_lnk (value);
CREATE INDEX sq_rb_ast_mdata_val_assetid ON sq_rb_ast_mdata_val (assetid);
CREATE INDEX sq_rb_ast_mdata_val_fieldid ON sq_rb_ast_mdata_val (fieldid);

Additional comments: No additional upgrade steps are required.

3.12.2 Stable

Additional queries:

As for 3.13.0 Development.

Additional comments: No additional upgrade steps are required.

3.10.7 Stable

Additional queries:

As for 3.13.0 Development.

Additional comments: No additional upgrade steps are required.

New Bugs Added To Bug Tracker

Bug ID 3.10.x 3.12.x Dev Description
2194 N Y N search min word error
2197 N N Y Data Source throws error with Oracle and ;
2198 Y Y Y Image Editor and Internet Explorer
2199 N N Y Cannot clone custom form
2201 Y Y Y Global search and replace shows the number of occurrences doubled
2203 N Y Y Global search and replace tool dies on oracle system
2204 N Y N Unable to link metadata fields between sections
2207 N Y N Replace Text tool not showing
Notes:

Bug #2013 (Cloning an asaset does not apply roles) was reported by Bridgy on 16th January 2007 but was re-affirmed as Can Not Replicate. This bug reported that when cloning between two sites, the roles did not cascade from the parent asset. This was tested by two different developers on Dev, 3.12 and 3.10 versions (the second time after the reporter suggested it to be a problem with 3.10.5) but it still could not be replicated.

Bug #2184 (Cloned File Asset in 3.12.1 has no webpath) was reported by Jeff Van Campen but was marked as Can Not Replicate after a developer could not reproduce the bug in Dev, 3.12 and 3.10.

Bug #2185 (Bulkmail job not sending -> invalid recipients?) was reported by Daniel Nitsche but was marked as not being a bug. The Bulkmail Job was attempting to send a Text File asset, however Bulkmail Jobs should only be able to send Page assets. A commit was made in the development version to ensure that only Page assets can be selected to be sent.

Bug #2186 (Global search and replace inserts replaced data twice) was reported by Anthony Barnes but was marked as a duplicate of bug #2076 (Global search and replace shows matches multiple times) which was reported by Scott Kim on 31st January 2007. The bug was fixed this Thursday; the duplicate has been closed.

Bug #2195 (html tidy not running correctly + xhtml output) was reported by Mark-H but was marked as not being a bug. The bug report suggested that HTML Tidy was not working correctly, and XHTML output was not being created. It was found that the reporter's system had HTML Tidy's path correctly configured in External Tools Configuration, but the plugin was disabled in Global Preferences.

Bug #2202 (Sitemap icons not displaying in Internet Explorer) was reported by DCITA but was marked as not a bug with Matrix. The bug report alleged that Site Map icons display in IE but not Firefox. The Site Map asset uses a hack to get them to print as transparent images in IE6, which does not work when IE is in strict rendering mode.

New Feature Requests Added To Bug Tracker

Bug ID Description
2196 Suppress Query Builder screen for Oracle
2200 Metadata Value: Ticking 'Use Default' loses original value immediately
2205 Cannot send plain text emails from bulkmail
2206 Orphaned Files Report

Bugs Fixed In The Bug Tracker

Bug ID 3.10.x 3.12.x Dev Description
2110 N Y Y Error when trying to export hte link report to csv
2188 Y Y Y Misleading message when public bulkmail user subscribes and enters unverified users folder
2189 Y Y Y Messages don't stay marked "Read" as LDAP user
2191 N N Y Cannot clone under an asset with a common tag
2193 Y Y Y null asset problem in filterAssetStatuses
2198 Y Y Y Image Editor and Internet Explorer
2201 Y Y Y Global search and replace shows the number of occurrences doubled
2203 N Y Y Global search and replace tool dies on oracle system
Add a Comment

You must click here to log in before posting comments.

View Comments

There are currently no comments for this newsletter.