--
-- views__record_view/2
--
create or replace function views__record_view(
p_object_id integer,
p_viewer_id integer
) returns int4 as $$
DECLARE
v_views views_views.views_count%TYPE;
BEGIN
select views_count into v_views from views_views where object_id = p_object_id and viewer_id = p_viewer_id;
if v_views is null then
INSERT into views_views(object_id,viewer_id)
VALUES (p_object_id, p_viewer_id);
v_views := 0;
else
UPDATE views_views
SET views_count = views_count + 1, last_viewed = now()
WHERE object_id = p_object_id
and viewer_id = p_viewer_id;
end if;
return v_views + 1;
END;
$$ language plpgsql;