Index: openacs-4/packages/acs-content-repository/sql/postgresql/content-revision.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/sql/postgresql/content-revision.sql,v diff -u -N -r1.48.2.2 -r1.48.2.3 --- openacs-4/packages/acs-content-repository/sql/postgresql/content-revision.sql 27 Nov 2016 10:10:37 -0000 1.48.2.2 +++ openacs-4/packages/acs-content-repository/sql/postgresql/content-revision.sql 6 Dec 2016 12:04:04 -0000 1.48.2.3 @@ -795,12 +795,16 @@ -- CREATE OR REPLACE FUNCTION cr_revision_latest_tr () RETURNS trigger AS $$ DECLARE - v_latest_revision cr_revisions.revision_id%TYPE; + v_content_type cr_items.content_type%TYPE; BEGIN - select latest_revision from cr_items into v_latest_revision where item_id = new.item_id; - - if v_latest_revision <> new.revision_id then + select content_type from cr_items into v_content_type where item_id = new.item_id; + -- + -- Don't set the latest revision via trigger, since other means in + -- the xotcl-core frame work take care for it. This is not the most + -- general solution, but improves the situation for busy sites. + -- + if substring(v_content_type,1,2) != '::' then update cr_items set latest_revision = new.revision_id where item_id = new.item_id; end if;