Index: openacs-4/packages/chat/sql/postgresql/upgrade/upgrade-5.0d6-5.0d7.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/sql/postgresql/upgrade/upgrade-5.0d6-5.0d7.sql,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/chat/sql/postgresql/upgrade/upgrade-5.0d6-5.0d7.sql	4 Mar 2008 08:16:17 -0000	1.1
@@ -0,0 +1,92 @@
+
+create function inline_0 () returns integer as '
+declare 
+	col_exists_p boolean;
+begin
+	select count(*) > 0 into col_exists_p from information_schema.columns where table_name=''chat_rooms'' and column_name=''auto_flush_p'';
+	if not col_exists_p  then
+		alter table chat_rooms add column auto_flush_p boolean;
+		alter table chat_rooms alter column auto_flush_p set default ''t'';
+		update chat_rooms set auto_flush_p=''t'';
+	end if;
+
+	select count(*) > 0 into col_exists_p from information_schema.columns where table_name=''chat_rooms'' and column_name=''auto_transcript_p'';
+	if not col_exists_p then
+		alter table chat_rooms add column auto_transcript_p boolean;
+		alter table chat_rooms alter column auto_transcript_p set default ''f'';
+		update chat_rooms set auto_transcript_p=''f'';
+	end if;
+
+	return null;
+
+end;' language 'plpgsql';
+
+select inline_0 ();
+drop function inline_0 ();
+	
+alter table chat_msgs add column creation_date2 timestamptz;
+update chat_msgs set creation_date2 = creation_date;
+alter table chat_msgs drop column creation_date;
+alter table chat_msgs rename column creation_date2 to creation_date;
+
+create or replace function chat_room__edit (integer, varchar, varchar, boolean, boolean, boolean, boolean, boolean)
+returns integer as '
+declare
+   p_room_id        alias for $1;
+   p_pretty_name    alias for $2;
+   p_description    alias for $3;
+   p_moderated_p    alias for $4;
+   p_active_p       alias for $5;
+   p_archive_p      alias for $6;
+   p_auto_flush_p      alias for $7;
+   p_auto_transcript_p      alias for $8;
+begin
+
+        update chat_rooms set
+            pretty_name = p_pretty_name,
+            description = p_description,
+            moderated_p = p_moderated_p,
+            active_p    = p_active_p,
+            archive_p   = p_archive_p,
+            auto_flush_p   = p_auto_flush_p,
+            auto_transcript_p   = p_auto_transcript_p
+        where
+            room_id = p_room_id;
+        return 0;
+end;' language 'plpgsql';
+
+create or replace function chat_room__new (integer, varchar, varchar, boolean, boolean, boolean, boolean, boolean, integer, timestamptz, integer, varchar, varchar)
+returns integer as '
+declare
+   p_room_id        alias for $1;
+   p_pretty_name    alias for $2;
+   p_description    alias for $3;
+   p_moderated_p    alias for $4;
+   p_active_p       alias for $5;
+   p_archive_p      alias for $6;
+   p_auto_flush_p      alias for $7;
+   p_auto_transcript_p      alias for $8;
+   p_context_id     alias for $9;
+   p_creation_date  alias for $10;
+   p_creation_user  alias for $11;
+   p_creation_ip    alias for $12;
+   p_object_type    alias for $13;
+   v_room_id        chat_rooms.room_id%TYPE;
+begin
+   v_room_id := acs_object__new (
+     null,
+     ''chat_room'',
+     now(),
+     p_creation_user,
+     p_creation_ip,
+     p_context_id
+   );
+
+   insert into chat_rooms
+       (room_id, pretty_name, description, moderated_p, active_p, archive_p, auto_flush_p, auto_transcript_p)
+   values
+       (v_room_id, p_pretty_name, p_description, p_moderated_p, p_active_p, p_archive_p, p_auto_flush_p, p_auto_transcript_p);
+
+return v_room_id;
+
+end;' language 'plpgsql';