Index: openacs-4/packages/acs-content-repository/acs-content-repository.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/acs-content-repository.info,v diff -u -r1.109.2.25 -r1.109.2.26 --- openacs-4/packages/acs-content-repository/acs-content-repository.info 27 Oct 2016 18:01:59 -0000 1.109.2.25 +++ openacs-4/packages/acs-content-repository/acs-content-repository.info 27 Nov 2016 10:10:37 -0000 1.109.2.26 @@ -9,7 +9,7 @@ f t - + OpenACS The canonical repository for OpenACS content. 2016-10-24 @@ -21,7 +21,7 @@ GPL 3 - + Index: openacs-4/packages/acs-content-repository/sql/postgresql/content-item.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/sql/postgresql/content-item.sql,v diff -u -r1.72.2.7 -r1.72.2.8 --- openacs-4/packages/acs-content-repository/sql/postgresql/content-item.sql 16 May 2016 10:38:40 -0000 1.72.2.7 +++ openacs-4/packages/acs-content-repository/sql/postgresql/content-item.sql 27 Nov 2016 10:10:37 -0000 1.72.2.8 @@ -1574,38 +1574,46 @@ $$ LANGUAGE plpgsql stable strict; -select define_function_args('content_item__set_live_revision','revision_id,publish_status;ready,publish_date;now()'); +select define_function_args('content_item__set_live_revision','revision_id,publish_status;ready,publish_date;now(),is_latest;f'); -- --- procedure content_item__set_live_revision/1,2,3 +-- procedure content_item__set_live_revision/1,2,3,4 -- CREATE OR REPLACE FUNCTION content_item__set_live_revision( - set_live_revision__revision_id integer, - set_live_revision__publish_status varchar default 'ready', - set_live_revision__publish_date timestamptz default now() + p__revision_id integer, + p__publish_status varchar default 'ready', + p__publish_date timestamptz default now(), + p__is_latest boolean default false ) RETURNS integer AS $$ DECLARE BEGIN - update - cr_items + if p__is_latest then + update cr_items + set + live_revision = p__revision_id, + publish_status = p__publish_status, + latest_revision = p__revision_id + where + item_id = (select item_id + from cr_revisions + where revision_id = p__revision_id); + else + update cr_items + set + live_revision = p__revision_id, + publish_status = p__publish_status + where + item_id = (select item_id + from cr_revisions + where revision_id = p__revision_id); + end if; + + update cr_revisions set - live_revision = set_live_revision__revision_id, - publish_status = set_live_revision__publish_status + publish_date = p__publish_date where - item_id = (select - item_id - from - cr_revisions - where - revision_id = set_live_revision__revision_id); + revision_id = p__revision_id; - update - cr_revisions - set - publish_date = set_live_revision__publish_date - where - revision_id = set_live_revision__revision_id; - return 0; END; $$ LANGUAGE plpgsql; 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 -r1.48.2.1 -r1.48.2.2 --- openacs-4/packages/acs-content-repository/sql/postgresql/content-revision.sql 10 Feb 2016 09:14:20 -0000 1.48.2.1 +++ openacs-4/packages/acs-content-repository/sql/postgresql/content-revision.sql 27 Nov 2016 10:10:37 -0000 1.48.2.2 @@ -790,14 +790,21 @@ END; $$ LANGUAGE plpgsql stable strict; --- show errors - +-- -- Trigger to maintain latest_revision in cr_items - +-- CREATE OR REPLACE FUNCTION cr_revision_latest_tr () RETURNS trigger AS $$ +DECLARE + v_latest_revision cr_revisions.revision_id%TYPE; BEGIN - update cr_items set latest_revision = new.revision_id - where item_id = new.item_id; + + select latest_revision from cr_items into v_latest_revision where item_id = new.item_id; + + if v_latest_revision <> new.revision_id then + update cr_items set latest_revision = new.revision_id + where item_id = new.item_id; + end if; + return new; END; $$ LANGUAGE plpgsql; Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/acs-content-repository/sql/postgresql/upgrade/upgrade-5.9.1d22-5.9.1d23.sql'. Fisheye: No comparison available. Pass `N' to diff?