Index: openacs.org-dev/packages/forums/sql/postgresql/forums-notifications-sanitize.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs.org-dev/packages/forums/sql/postgresql/forums-notifications-sanitize.sql,v
diff -u -r1.1 -r1.2
--- openacs.org-dev/packages/forums/sql/postgresql/forums-notifications-sanitize.sql	9 Jul 2002 17:35:09 -0000	1.1
+++ openacs.org-dev/packages/forums/sql/postgresql/forums-notifications-sanitize.sql	10 Jul 2002 18:42:30 -0000	1.2
@@ -25,3 +25,112 @@
 
 select inline_0();
 drop function inline_0 ();
+
+--
+-- Service contract drop stuff was missing - Roberto Mello 
+--
+
+create function inline_0() returns integer as '
+declare
+        impl_id integer;
+        v_foo   integer;
+begin
+
+        -- the notification type impl
+        impl_id := acs_sc_impl__get_id (
+                      ''NotificationType'',		-- impl_contract_name
+                      ''forums_forum_notif_type''	-- impl_name
+        );
+
+        PERFORM acs_sc_binding__delete (
+                    ''NotificationType'',
+                    ''forums_forum_notif_type''
+        );
+
+        v_foo := acs_sc_impl_alias__delete (
+                    ''NotificationType'',		-- impl_contract_name	
+                    ''forums_forum_notif_type'',	-- impl_name
+                    ''GetURL''				-- impl_operation_name
+        );
+
+        v_foo := acs_sc_impl_alias__delete (
+                    ''NotificationType'',		-- impl_contract_name	
+                    ''forums_forum_notif_type'',	-- impl_name
+                    ''ProcessReply''			-- impl_operation_name
+        );
+
+	select into v_foo type_id 
+	  from notification_types
+	 where sc_impl_id = impl_id
+	  and short_name = ''forums_forum_notif'';
+
+	perform notification_type__delete (v_foo);
+
+	delete from notification_types_intervals
+	 where type_id = v_foo 
+	   and interval_id in ( 
+		select interval_id
+		  from notification_intervals 
+		 where name in (''instant'',''hourly'',''daily'')
+	);
+
+	delete from notification_types_del_methods
+	 where type_id = v_foo
+	   and delivery_method_id in (
+		select delivery_method_id
+		  from notification_delivery_methods 
+		 where short_name in (''email'')
+	);
+
+        -- the notification type impl
+        impl_id := acs_sc_impl__get_id (
+                      ''NotificationType'',
+                      ''forums_message_notif_type''
+                   );
+
+        PERFORM acs_sc_binding__delete (
+                    ''NotificationType'',
+                    ''forums_message_notif_type''
+        );
+
+        v_foo := acs_sc_impl_alias__delete (
+                    ''NotificationType'',
+                    ''forums_message_notif_type'',
+                    ''GetURL''
+        );
+
+        v_foo := acs_sc_impl_alias__delete (
+                    ''NotificationType'',
+                    ''forums_message_notif_type'',
+                    ''ProcessReply''
+        );
+
+	select into v_foo type_id 
+	  from notification_types
+	 where sc_impl_id = impl_id
+	   and short_name = ''forums_message_notif'';
+
+	perform notification_type__delete (v_foo);
+
+	delete from notification_types_intervals
+	 where type_id = v_foo 
+	   and interval_id in ( 
+		select interval_id
+		  from notification_intervals 
+		 where name in (''instant'',''hourly'',''daily'')
+	);
+
+	delete from notification_types_del_methods
+	 where type_id = v_foo
+	   and delivery_method_id in (
+		select delivery_method_id
+		  from notification_delivery_methods 
+		 where short_name in (''email'')
+	);
+
+	return (0);
+end;
+' language 'plpgsql';
+
+select inline_0();
+drop function inline_0();
