-- Add user id and IP address to update_last_modified()
-- $Id
create or replace function acs_object__update_last_modified (integer, integer, integer)
returns integer as '
declare
acs_object__update_last_modified__object_id alias for $1;
acs_object__update_last_modified__modifying_user alias for $2;
acs_object__update_last_modified__modifying_ip alias for $3;
begin
return acs_object__update_last_modified(acs_object__update_last_modified__object_id, acs_object__update_last_modified__modifying_user, acs_object__update_last_modified__modifying_ip, now());
end;' language 'plpgsql';
create or replace function acs_object__update_last_modified (integer, integer, integer, timestamptz)
returns integer as '
declare
acs_object__update_last_modified__object_id alias for $1;
acs_object__update_last_modified__modifying_user alias for $2;
acs_object__update_last_modified__modifying_ip alias for $3;
acs_object__update_last_modified__last_modified alias for $4; -- default now()
v_parent_id integer;
v_last_modified timestamptz;
begin
if acs_object__update_last_modified__last_modified is null then
v_last_modified := now();
else
v_last_modified := acs_object__update_last_modified__last_modified;
end if;
update acs_objects
set last_modified = v_last_modified,
modifying_user = acs_object__update_last_modified__modifying_user,
modifying_ip = acs_object__update_last_modified__modifying_ip
where object_id = acs_object__update_last_modified__object_id;
select context_id
into v_parent_id
from acs_objects
where object_id = acs_object__update_last_modified__object_id;
if v_parent_id is not null and v_parent_id != 0 then
perform acs_object__update_last_modified(v_parent_id, acs_object__update_last_modified__modifying_user, acs_object__update_last_modified__modifying_ip, v_last_modified);
end if;
return acs_object__update_last_modified__object_id;
end;' language 'plpgsql';