Index: openacs-4/packages/acs-kernel/acs-kernel.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/acs-kernel.info,v diff -u -r1.150.2.6 -r1.150.2.7 --- openacs-4/packages/acs-kernel/acs-kernel.info 23 Feb 2019 13:03:40 -0000 1.150.2.6 +++ openacs-4/packages/acs-kernel/acs-kernel.info 25 Feb 2019 12:29:08 -0000 1.150.2.7 @@ -9,15 +9,15 @@ f t - + OpenACS Core Team Routines and data models providing the foundation for OpenACS-based Web services. 2017-08-06 OpenACS The OpenACS kernel contains the core datamodel create and drop scripts for such things as objects, groups, parties and the supporting PL/SQL and PL/pgSQL procedures. 3 - + Index: openacs-4/packages/acs-kernel/sql/postgresql/site-nodes-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/sql/postgresql/site-nodes-create.sql,v diff -u -r1.30 -r1.30.2.1 --- openacs-4/packages/acs-kernel/sql/postgresql/site-nodes-create.sql 1 May 2018 10:45:43 -0000 1.30 +++ openacs-4/packages/acs-kernel/sql/postgresql/site-nodes-create.sql 25 Feb 2019 12:29:08 -0000 1.30.2.1 @@ -7,7 +7,6 @@ -- - -- -- procedure inline_0/0 -- @@ -59,191 +58,20 @@ -- mapped to this node? pattern_p boolean default false not null, object_id integer constraint site_nodes_object_id_fk - references acs_objects (object_id), - tree_sortkey varbit + references acs_objects (object_id) ); create index site_nodes_object_id_idx on site_nodes (object_id); create index site_nodes_parent_object_node_id_idx on site_nodes(parent_id, object_id, node_id); -create index site_nodes_tree_skey_idx on site_nodes (tree_sortkey); create index site_nodes_parent_id_idx on site_nodes(parent_id); - --- --- procedure site_node_get_tree_sortkey/1 --- -select define_function_args('site_node_get_tree_sortkey','node_id'); - -CREATE OR REPLACE FUNCTION site_node_get_tree_sortkey( - p_node_id integer -) RETURNS varbit AS $$ -DECLARE -BEGIN - return tree_sortkey from site_nodes where node_id = p_node_id; -END; -$$ LANGUAGE plpgsql stable strict; - - - --- --- procedure site_node_insert_tr/0 --- -CREATE OR REPLACE FUNCTION site_node_insert_tr( - -) RETURNS trigger AS $$ -DECLARE - v_parent_sk varbit default null; - v_max_value integer; -BEGIN - if new.parent_id is null then - select max(tree_leaf_key_to_int(tree_sortkey)) into v_max_value - from site_nodes - where parent_id is null; - else - select max(tree_leaf_key_to_int(tree_sortkey)) into v_max_value - from site_nodes - where parent_id = new.parent_id; - - select tree_sortkey into v_parent_sk - from site_nodes - where node_id = new.parent_id; - end if; - - new.tree_sortkey := tree_next_key(v_parent_sk, v_max_value); - - return new; - -END; -$$ LANGUAGE plpgsql; - -create trigger site_node_insert_tr before insert -on site_nodes for each row -execute procedure site_node_insert_tr (); - - - --- --- procedure site_node_update_tr/0 --- -CREATE OR REPLACE FUNCTION site_node_update_tr( - -) RETURNS trigger AS $$ -DECLARE - v_parent_sk varbit default null; - v_max_value integer; - p_id integer; - v_rec record; - clr_keys_p boolean default 't'; -BEGIN - if new.node_id = old.node_id and - ((new.parent_id = old.parent_id) or - (new.parent_id is null and old.parent_id is null)) then - - return new; - - end if; - - for v_rec in select node_id - from site_nodes - where tree_sortkey between new.tree_sortkey and tree_right(new.tree_sortkey) - order by tree_sortkey - LOOP - if clr_keys_p then - update site_nodes set tree_sortkey = null - where tree_sortkey between new.tree_sortkey and tree_right(new.tree_sortkey); - clr_keys_p := 'f'; - end if; - - select parent_id into p_id - from site_nodes - where node_id = v_rec.node_id; - - if p_id is null then - select max(tree_leaf_key_to_int(tree_sortkey)) into v_max_value - from site_nodes - where parent_id is null; - else - select max(tree_leaf_key_to_int(tree_sortkey)) into v_max_value - from site_nodes - where parent_id = p_id; - - select tree_sortkey into v_parent_sk - from site_nodes - where node_id = p_id; - end if; - - update site_nodes - set tree_sortkey = tree_next_key(v_parent_sk, v_max_value) - where node_id = v_rec.node_id; - - end LOOP; - - return new; - -END; -$$ LANGUAGE plpgsql; - -create trigger site_node_update_tr after update -on site_nodes -for each row -execute procedure site_node_update_tr (); - - --- create or replace package site_node --- as -- --- -- Create a new site node. If you set directory_p to be 'f' then you --- -- cannot create nodes that have this node as their parent. +-- procedure site_node__new/8 -- --- function new ( --- node_id in site_nodes.node_id%TYPE default null, --- parent_id in site_nodes.node_id%TYPE default null, --- name in site_nodes.name%TYPE, --- object_id in site_nodes.object_id%TYPE default null, --- directory_p in site_nodes.directory_p%TYPE, --- pattern_p in site_nodes.pattern_p%TYPE default 'f', --- creation_user in acs_objects.creation_user%TYPE default null, --- creation_ip in acs_objects.creation_ip%TYPE default null --- ) return site_nodes.node_id%TYPE; --- --- -- Delete a site node. --- --- procedure delete ( --- node_id in site_nodes.node_id%TYPE --- ); --- --- -- Return the node_id of a URL. If the url begins with '/' then the --- -- parent_id must be null. This will raise the no_data_found --- -- exception if there is no mathing node in the site_nodes table. --- -- This will match directories even if no trailing slash is included --- -- in the url. --- --- function node_id ( --- url in varchar2, --- parent_id in site_nodes.node_id%TYPE default null --- ) return site_nodes.node_id%TYPE; --- --- -- Return the url of a node_id. --- --- function url ( --- node_id in site_nodes.node_id%TYPE --- ) return varchar2; --- --- end; --- show errors - - --- old define_function_args ('site_node__new', 'node_id,parent_id,name,object_id,directory_p,pattern_p,creation_user,creation_ip') --- new select define_function_args('site_node__new','node_id;null,parent_id;null,name,object_id;null,directory_p,pattern_p;f,creation_user;null,creation_ip;null'); - - --- --- procedure site_node__new/8 --- CREATE OR REPLACE FUNCTION site_node__new( new__node_id integer, -- default null new__parent_id integer, -- default null Fisheye: Tag 1.1.2.4 refers to a dead (removed) revision in file `openacs-4/packages/acs-kernel/sql/postgresql/upgrade/upgrade-5.10.0d12-5.10.0d13.sql'. Fisheye: No comparison available. Pass `N' to diff?