begin;
drop function if exists chat_transcript__del (integer);
drop function if exists chat_room__message_post (integer, varchar, integer, varchar);
drop function if exists chat_room__delete_all_msgs (integer);
drop function if exists chat_room__del (integer);
delete from acs_function_args
where function like 'CHAT_ROOM__%' or
function like 'CHAT_TRANSCRIPT__%';
alter table chat_rooms drop constraint chat_rooms_room_id_fk;
alter table chat_rooms add constraint chat_rooms_room_id_fk
foreign key (room_id) references acs_objects(object_id) on delete cascade;
alter table chat_transcripts drop column if exists creation_date;
alter table chat_transcripts drop constraint chat_trans_transcript_id_fk;
alter table chat_transcripts add constraint chat_trans_transcript_id_fk
foreign key (transcript_id) references acs_objects(object_id) on delete cascade;
alter table chat_transcripts drop constraint chat_trans_room_id_fk;
alter table chat_transcripts add constraint chat_trans_room_id_fk
foreign key (room_id) references chat_rooms(room_id) on delete cascade;
alter table chat_msgs drop constraint chat_msgs_creation_user_fk;
alter table chat_msgs add constraint chat_msgs_creation_user_fk
foreign key (creation_user) references parties(party_id) on delete cascade;
alter table chat_msgs drop constraint chat_msgs_room_id_fk;
alter table chat_msgs add constraint chat_msgs_room_id_fk
foreign key (room_id) references chat_rooms(room_id) on delete cascade;
end;