-- Tracking and aggregating object views -- procedures.
--
-- Copyright (C) 2003 Jeff Davis
-- @author Jeff Davis <davis@xarg.net>
-- @creation-date 1/12/2003
--
-- @cvs-id $Id: views-procs.sql,v 1.1 2004/03/28 21:17:14 jeffd Exp $
--
-- This is free software distributed under the terms of the GNU Public
-- License.  Full text of the license is available from the GNU Project:
-- http://www.fsf.org/copyleft/gpl.html

create or replace function cop_object_record_view (integer, integer) returns integer as '
declare
    p_object_id alias for $1;
    p_viewer_id alias for $2;
begin 
    if not exists (select 1 from cop_object_views where object_id = p_object_id and viewer_id = p_viewer_id) then 
        INSERT into cop_object_views(object_id,viewer_id) 
        VALUES (p_object_id, p_viewer_id);
    else
        UPDATE cop_object_views
           SET views = views + 1, last_viewed = now()
         WHERE object_id = p_object_id
           and viewer_id = p_viewer_id;
    end if;

    return 0;
end;' language 'plpgsql';


