--
-- drop_package/1
--
create or replace function drop_package(
package_name character varying
) returns varchar as $$
DECLARE
v_rec record;
v_drop_cmd varchar;
v_pkg_name varchar;
BEGIN
raise NOTICE 'DROP PACKAGE: %', package_name;
v_pkg_name := package_name || '__' || '%';
for v_rec in select proname
from pg_proc
where proname like v_pkg_name
order by proname
LOOP
raise NOTICE 'DROPPING FUNCTION: %', v_rec.proname;
v_drop_cmd := get_func_drop_command (v_rec.proname::varchar);
EXECUTE v_drop_cmd;
DELETE FROM acs_function_args where function = upper(v_rec.proname);
end loop;
if NOT FOUND then
raise NOTICE 'PACKAGE: % NOT FOUND', package_name;
else
raise NOTICE 'PACKAGE: %: DROPPED', package_name;
end if;
return null;
END;
$$ language plpgsql;