Index: openacs-4/packages/forums/sql/postgresql/upgrade/upgrade-1.2d1-1.2d2.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/forums/sql/postgresql/upgrade/upgrade-1.2d1-1.2d2.sql,v
diff -u -r1.1 -r1.2
--- openacs-4/packages/forums/sql/postgresql/upgrade/upgrade-1.2d1-1.2d2.sql	15 Mar 2005 20:06:45 -0000	1.1
+++ openacs-4/packages/forums/sql/postgresql/upgrade/upgrade-1.2d1-1.2d2.sql	12 Aug 2013 09:34:31 -0000	1.2
@@ -55,33 +55,41 @@
 --
 -- Replace the procs which manipulate state and new message to save last_poster.
 --
-create or replace function forums_message__new (integer,varchar,integer,varchar,text,char,integer,varchar,integer,timestamptz,integer,varchar,integer)
-returns integer as '
-declare
-    p_message_id                    alias for $1;
-    p_object_type                   alias for $2;
-    p_forum_id                      alias for $3;
-    p_subject                       alias for $4;
-    p_content                       alias for $5;
-    p_format                        alias for $6;
-    p_user_id                       alias for $7;
-    p_state                         alias for $8;
-    p_parent_id                     alias for $9;
-    p_creation_date                 alias for $10;
-    p_creation_user                 alias for $11;
-    p_creation_ip                   alias for $12;
-    p_context_id                    alias for $13;
+
+
+-- added
+select define_function_args('forums_message__new','message_id,object_type,forum_id,subject,content,format,user_id,state,parent_id,creation_date,creation_user,creation_ip,context_id');
+
+--
+-- procedure forums_message__new/13
+--
+CREATE OR REPLACE FUNCTION forums_message__new(
+   p_message_id integer,
+   p_object_type varchar,
+   p_forum_id integer,
+   p_subject varchar,
+   p_content text,
+   p_format char,
+   p_user_id integer,
+   p_state varchar,
+   p_parent_id integer,
+   p_creation_date timestamptz,
+   p_creation_user integer,
+   p_creation_ip varchar,
+   p_context_id integer
+) RETURNS integer AS $$
+DECLARE
     v_message_id                    integer;
     v_forum_policy                  forums_forums.posting_policy%TYPE;
     v_state                         forums_messages.state%TYPE;
     v_posting_date                  forums_messages.posting_date%TYPE;
     v_package_id                    acs_objects.package_id%TYPE;
-begin
+BEGIN
 
     select package_id into v_package_id from forums_forums where forum_id = p_forum_id;
 
     if v_package_id is null then
-        raise exception ''forums_message__new: forum_id % not found'', p_forum_id;
+        raise exception 'forums_message__new: forum_id % not found', p_forum_id;
     end if;
 
     v_message_id := acs_object__new(
@@ -91,7 +99,7 @@
         p_creation_user,
         p_creation_ip,
         coalesce(p_context_id, p_forum_id),
-        ''t'',
+        't',
         p_subject,
         v_package_id
     );
@@ -102,9 +110,9 @@
         from forums_forums
         where forum_id = p_forum_id;
 
-        if v_forum_policy = ''moderated''
-        then v_state := ''pending'';
-        else v_state := ''approved'';
+        if v_forum_policy = 'moderated'
+        then v_state := 'pending';
+        else v_state := 'approved';
         end if;
     else
         v_state := p_state;
@@ -121,7 +129,7 @@
     where forum_id = p_forum_id;
 
     if p_parent_id is null then
-      if v_state = ''approved'' then
+      if v_state = 'approved' then
         update forums_forums
         set thread_count = thread_count + 1,
           approved_thread_count = approved_thread_count + 1
@@ -132,7 +140,7 @@
         where forum_id=p_forum_id;
       end if;
     else
-      if v_state = ''approved'' then
+      if v_state = 'approved' then
         update forums_messages
         set approved_reply_count = approved_reply_count + 1,
           reply_count = reply_count + 1,
@@ -149,39 +157,46 @@
 
     return v_message_id;
 
-end;' language 'plpgsql';
+END;
+$$ LANGUAGE plpgsql;
 
 select define_function_args ('forums_message__set_state', 'message_id,state');
 
-create or replace function forums_message__set_state(integer,varchar) returns integer as '
-declare
-  p_message_id      alias for $1;
-  p_state           alias for $2;
+
+
+--
+-- procedure forums_message__set_state/2
+--
+CREATE OR REPLACE FUNCTION forums_message__set_state(
+   p_message_id integer,
+   p_state varchar
+) RETURNS integer AS $$
+DECLARE
   v_cur             record;
-begin
+BEGIN
 
   select into v_cur *
   from forums_messages
   where message_id = p_message_id;
 
   if v_cur.parent_id is null then
-    if p_state = ''approved'' and v_cur.state <> ''approved'' then
+    if p_state = 'approved' and v_cur.state <> 'approved' then
       update forums_forums
       set approved_thread_count = approved_thread_count + 1
       where forum_id=v_cur.forum_id;
-    elsif p_state <> ''approved'' and v_cur.state = ''approved'' then
+    elsif p_state <> 'approved' and v_cur.state = 'approved' then
       update forums_forums
       set approved_thread_count = approved_thread_count - 1
       where forum_id=v_cur.forum_id;
     end if;
   else
-    if p_state = ''approved'' and v_cur.state <> ''approved'' then
+    if p_state = 'approved' and v_cur.state <> 'approved' then
       update forums_messages
       set approved_reply_count = approved_reply_count + 1, 
         last_poster = (case when v_cur.posting_date > last_child_post then v_cur.user_id else last_poster end),
         last_child_post = (case when v_cur.posting_date > last_child_post then v_cur.posting_date else last_child_post end)
       where message_id = forums_message__root_message_id(v_cur.message_id);
-    elsif p_state <> ''approved'' and v_cur.state = ''approved'' then
+    elsif p_state <> 'approved' and v_cur.state = 'approved' then
       update forums_messages
       set approved_reply_count = approved_reply_count - 1
       where message_id = forums_message__root_message_id(v_cur.message_id);
@@ -194,16 +209,22 @@
 
   return 0;
 
-end;' language 'plpgsql';
+END;
+$$ LANGUAGE plpgsql;
 
 select define_function_args ('forums_message__delete', 'message_id');
 
-create or replace function forums_message__delete (integer)
-returns integer as '
-declare
-  p_message_id      alias for $1;    
+
+
+--
+-- procedure forums_message__delete/1
+--
+CREATE OR REPLACE FUNCTION forums_message__delete(
+   p_message_id integer
+) RETURNS integer AS $$
+DECLARE
   v_cur             record;
-begin
+BEGIN
 
   -- Maintain the forum thread counts
 
@@ -212,7 +233,7 @@
   where message_id = p_message_id;
 
   if v_cur.parent_id is null then
-    if v_cur.state = ''approved'' then
+    if v_cur.state = 'approved' then
       update forums_forums
       set thread_count = thread_count - 1,
         approved_thread_count = approved_thread_count - 1
@@ -222,7 +243,7 @@
       set thread_count = thread_count - 1
       where forum_id=v_cur.forum_id;
     end if;
-  elsif v_cur.state = ''approved'' then
+  elsif v_cur.state = 'approved' then
     update forums_messages
     set approved_reply_count = approved_reply_count - 1,
       reply_count = reply_count - 1
@@ -235,4 +256,5 @@
 
   perform acs_object__delete(p_message_id);
   return 0;
-end;' language 'plpgsql';
+END;
+$$ LANGUAGE plpgsql;
