--
-- xowiki_file_f/1
--
create or replace function xowiki_file_f(
  p_new xowiki_filei
) returns void as $$

             declare
               v_revision_id integer;
             begin

               select content_revision__new(
                                     p_new.title,
                                     p_new.description,
                                     p_new.publish_date,
                                     p_new.mime_type,
                                     p_new.nls_language,
                                     case when p_new.text is null 
                                              then p_new.data 
                                              else p_new.text
                                           end,
                                     content_symlink__resolve(p_new.item_id),
                                     p_new.revision_id,
                                     now(),
                                     p_new.creation_user, 
                                     p_new.creation_ip,
                                     null,                    -- content_length
                                     p_new.object_package_id
                ) into v_revision_id;
                insert into xowiki_page ( page_id, page_title, creator, page_order ) values (v_revision_id, p_new.page_title, p_new.creator, p_new.page_order);
    insert into xowiki_file ( file_id ) values (v_revision_id);
    
   return;
   end;$$ language plpgsql;