-- -- a mechanism for associating location (url) with a certain chunk of data. -- -- @author Ben Adida (ben@openforce) -- @version $Id: site-node-object-map-create.sql,v 1.7 2015/04/27 15:28:17 victorg Exp $ -- create table site_node_object_mappings ( object_id integer constraint snom_object_id_fk references acs_objects (object_id) on update cascade on delete cascade constraint snom_object_id_nn not null constraint site_node_object_mappings_pk primary key, node_id integer constraint snom_node_id_fk references site_nodes (node_id) on update cascade on delete cascade constraint snom_node_id_nn not null ); create index site_node_object_mappings_node_id_idx on site_node_object_mappings(node_id); select define_function_args('site_node_object_map__new', 'object_id,node_id'); -- -- procedure site_node_object_map__new/2 -- CREATE OR REPLACE FUNCTION site_node_object_map__new( p_object_id integer, p_node_id integer ) RETURNS integer AS $$ DECLARE BEGIN perform site_node_object_map__del(p_object_id); insert into site_node_object_mappings (object_id, node_id) values (p_object_id, p_node_id); return 0; END; $$ LANGUAGE plpgsql; select define_function_args('site_node_object_map__del', 'object_id'); -- -- procedure site_node_object_map__del/1 -- CREATE OR REPLACE FUNCTION site_node_object_map__del( p_object_id integer ) RETURNS integer AS $$ DECLARE BEGIN delete from site_node_object_mappings where object_id = p_object_id; return 0; END; $$ LANGUAGE plpgsql;