CREATE OR REPLACE FUNCTION inline_0 () RETURNS integer AS $$ BEGIN PERFORM acs_rel_type__create_type ( 'blah_member_rel', 'Blah Membership Relationship', 'Blah Membership Relationships', 'membership_rel', 'blah_member_rels', 'rel_id', 'blah_member_rel', 'group', null, 0, null::integer, 'party', 'member', 0, null::integer, 't' ); PERFORM acs_rel_type__create_type ( 'yippie_member_rel', 'Yippie Membership Relationship', 'Yippie Membership Relationships', 'membership_rel', 'yippie_member_rels', 'rel_id', 'yippie_member_rel', 'group', null, 0, null::integer, 'party', 'member', 0, null::integer, 't' ); return null; END; $$ LANGUAGE plpgsql; select inline_0 (); drop function inline_0 (); -- show errors create table blah_member_rels ( rel_id integer constraint blah_member_rel_id_fk references membership_rels (rel_id) constraint blah_member_rel_pk primary key ); create table yippie_member_rels ( rel_id integer constraint yippie_member_rel_id_fk references membership_rels (rel_id) constraint yippie_member_rel_pk primary key ); -- create or replace package blah_member_rel -- is -- function new ( -- rel_id in blah_member_rels.rel_id%TYPE -- default null, -- rel_type in acs_rels.rel_type%TYPE -- default 'blah_member_rel', -- object_id_one in groups.group_id%TYPE, -- object_id_two in parties.party_id%TYPE -- ) return blah_member_rels.rel_id%TYPE; -- -- procedure delete ( -- rel_id in blah_member_rels.rel_id%TYPE -- ); -- end blah_member_rel; -- show errors -- create or replace package body blah_member_rel -- function new -- added select define_function_args('blah_member_rel__new','rel_id,rel_type,object_id_one,object_id_two'); -- -- procedure blah_member_rel__new/4 -- CREATE OR REPLACE FUNCTION blah_member_rel__new( new__rel_id integer, new__rel_type varchar, new__object_id_one integer, new__object_id_two integer ) RETURNS integer AS $$ DECLARE v_rel_id blah_member_rels.rel_id%TYPE; BEGIN v_rel_id := membership_rel__new( new__rel_id, new__rel_type, new__object_id_one, new__object_id_two, 'approved', null, null ); insert into blah_member_rels (rel_id) values (v_rel_id); return v_rel_id; END; $$ LANGUAGE plpgsql; -- procedure delete -- added select define_function_args('blah_member_rel__delete','rel_id'); -- -- procedure blah_member_rel__delete/1 -- CREATE OR REPLACE FUNCTION blah_member_rel__delete( delete__rel_id integer ) RETURNS integer AS $$ DECLARE BEGIN delete from blah_member_rels where rel_id = delete__rel_id; PERFORM membership_rel__delete(delete__rel_id); return 0; END; $$ LANGUAGE plpgsql; -- show errors -- create or replace package yippie_member_rel -- is -- function new ( -- rel_id in yippie_member_rels.rel_id%TYPE -- default null, -- rel_type in acs_rels.rel_type%TYPE -- default 'yippie_member_rel', -- object_id_one in groups.group_id%TYPE, -- object_id_two in parties.party_id%TYPE -- ) return yippie_member_rels.rel_id%TYPE; -- -- procedure delete ( -- rel_id in yippie_member_rels.rel_id%TYPE -- ); -- end yippie_member_rel; -- show errors -- create or replace package body yippie_member_rel -- function new -- added select define_function_args('yippie_member_rel__new','rel_id,rel_type,object_id_one,object_id_two'); -- -- procedure yippie_member_rel__new/4 -- CREATE OR REPLACE FUNCTION yippie_member_rel__new( new__rel_id integer, new__rel_type varchar, new__object_id_one integer, new__object_id_two integer ) RETURNS integer AS $$ DECLARE v_rel_id yippie_member_rels.rel_id%TYPE; BEGIN v_rel_id := membership_rel__new( new__rel_id, new__rel_type, new__object_id_one, new__object_id_two, 'approved', null, null ); insert into yippie_member_rels (rel_id) values (v_rel_id); return v_rel_id; END; $$ LANGUAGE plpgsql; -- procedure delete -- added select define_function_args('yippie_member_rel__delete','rel_id'); -- -- procedure yippie_member_rel__delete/1 -- CREATE OR REPLACE FUNCTION yippie_member_rel__delete( delete__rel_id integer ) RETURNS integer AS $$ DECLARE BEGIN delete from yippie_member_rels where rel_id = delete__rel_id; PERFORM membership_rel__delete(delete__rel_id); return 0; END; $$ LANGUAGE plpgsql; -- show errors