-- /packages/photo-album/sql/postgresql/photo-album-drop.sql
-- @cvs-id $Id: photo-album-drop.sql,v 1.5 2003/09/02 23:44:04 vinodk Exp $
\i pa-clip-drop.sql
drop view all_photo_images;
create function tmp_pa_revoke ()
returns integer as '
declare
priv_rec RECORD;
begin
for priv_rec in select object_id, grantee_id, privilege
from acs_permissions
where privilege = ''pa_create_photo''
loop
PERFORM acs_permission__revoke_permission (
priv_rec.object_id,
priv_rec.grantee_id,
priv_rec.privilege
);
end loop;
return 1;
end; ' language 'plpgsql';
select tmp_pa_revoke ();
drop function tmp_pa_revoke ();
create function tmp_pa_revoke2 ()
returns integer as '
declare
priv_rec RECORD;
begin
for priv_rec in select object_id, grantee_id, privilege
from acs_permissions
where privilege = ''pa_create_album''
loop
PERFORM acs_permission__revoke_permission (
priv_rec.object_id,
priv_rec.grantee_id,
priv_rec.privilege
);
end loop;
return 1;
end; ' language 'plpgsql';
select tmp_pa_revoke2 ();
drop function tmp_pa_revoke2 ();
create function tmp_pa_revoke3 ()
returns integer as '
declare
priv_rec RECORD;
begin
for priv_rec in select object_id, grantee_id, privilege
from acs_permissions
where privilege = ''pa_create_folder''
loop
PERFORM acs_permission__revoke_permission (
priv_rec.object_id,
priv_rec.grantee_id,
priv_rec.privilege
);
end loop;
return 1;
end; ' language 'plpgsql';
select tmp_pa_revoke3 ();
drop function tmp_pa_revoke3 ();
-- kill stuff in permissions.sql
select acs_privilege__remove_child('create', 'pa_create_photo');
select acs_privilege__remove_child('create', 'pa_create_album');
select acs_privilege__remove_child('create', 'pa_create_folder');
select acs_privilege__drop_privilege('pa_create_album');
select acs_privilege__drop_privilege('pa_create_folder');
select acs_privilege__drop_privilege('pa_create_photo');
-- pa_image changed to generic image content_type
select content_type__unregister_child_type (
'pa_album',
'pa_photo',
'generic'
);
select content_type__unregister_child_type (
'pa_photo',
'image',
'generic'
);
-- clear out all the reference that cause key violations when dropping type
-- delete images
-- now that pa_image is just image
-- the query needs to be adjusted to be specific to photo-album
-- this needs to be standardized with content-repository (clearing out files)
-- there isn't currently a image__delete function
-- so this bit won't work
create function tmp_pa_image_delete ()
returns integer as '
declare
image_rec RECORD;
begin
for image_rec in select i.item_id
from cr_items i, cr_child_rels rels,
cr_items i2
where i.content_type = ''image''
and i2.content_type = ''pa_photo''
and rels.child_id = i.item_id
and rels.parent_id = i2.item_id
loop
PERFORM image__delete (image_rec.item_id);
end loop;
return 1;
end; ' language 'plpgsql';
select tmp_pa_image_delete ();
drop function tmp_pa_image_delete ();
-- delete photos
create function tmp_pa_photo_delete ()
returns integer as '
declare
pa_photo_rec RECORD;
begin
for pa_photo_rec in select item_id
from cr_items
where content_type = ''pa_photo''
loop
PERFORM pa_photo__delete (pa_photo_rec.item_id);
end loop;
return 1;
end; ' language 'plpgsql';
select tmp_pa_photo_delete ();
drop function tmp_pa_photo_delete ();
-- delete albums
create function tmp_pa_album_delete ()
returns integer as '
declare
pa_album_rec RECORD;
begin
for pa_album_rec in select item_id
from cr_items
where content_type = ''pa_album''
loop
PERFORM pa_album__delete (pa_album_rec.item_id);
end loop;
return 1;
end; ' language 'plpgsql';
select tmp_pa_album_delete ();
drop function tmp_pa_album_delete ();
create function tmp_pa_folder_delete () returns integer as '
declare
folder_rec RECORD;
begin
for folder_rec in select folder_id, content_type
from cr_folder_type_map where content_type = ''pa_album''
loop
PERFORM content_folder__unregister_content_type (
folder_rec.folder_id,
folder_rec.content_type,
''t''
);
end loop;
return 1;
end; ' language 'plpgsql';
select tmp_pa_folder_delete ();
drop function tmp_pa_folder_delete ();
-- drop package photo_album;
drop function photo_album__new_root_folder (integer);
drop function photo_album__get_root_folder (integer);
-- this needs to drop the pa_album__ functions
-- drop package pa_album;
drop function pa_album__delete_revision (integer);
drop function pa_album__delete (integer);
drop function pa_album__new (varchar, integer, integer, boolean, integer, varchar, varchar, varchar, text, varchar, integer, timestamptz, varchar, integer, timestamptz, varchar) ;
-- this needs to drop the pa_photo__ functions
-- drop package pa_photo;
drop function pa_photo__delete (integer);
drop function pa_photo__delete_revision (integer);
drop function pa_photo__new (varchar,integer,integer,integer,timestamptz, integer, varchar, varchar, integer, varchar, varchar, boolean, timestamptz, varchar, varchar, text);
-- these drop tables as well
select content_type__drop_type('pa_photo','f','t');
select content_type__drop_type('pa_album','f','t');
-- delete all the folders under the root folders of photo album instances
-- replacing a connect by with the tree_sort business
create function tmp_pa_folder_delete2 () returns integer as '
declare
folder_rec RECORD;
begin
for folder_rec in select i1.item_id,
tree_level(i1.tree_sortkey) - tree_level(i2.tree_sortkey) as level
from cr_items i1, cr_items i2
where i1.tree_sortkey between i2.tree_sortkey and tree_right(i2.tree_sortkey)
and i2.item_id in (select folder_id from pa_package_root_folder_map)
order by i2.item_id, level desc
loop
if folder_rec.level = 0 then
-- folder is a root folder, delete it from maping table to avoid fk constraint violation
delete from pa_package_root_folder_map where folder_id = folder_rec.item_id;
end if;
PERFORM content_folder__delete (folder_rec.item_id);
end loop;
return 0;
end; ' language 'plpgsql';
select tmp_pa_folder_delete2 ();
drop function tmp_pa_folder_delete2 ();
drop table pa_package_root_folder_map;