Hi,
I have a stored procedure run periodically that assign accounting records
to their respective customers based on username and other criteria.
It also does all kinds of validation work on the accounting records.
I would have liked to have the procedure log start and stop times
using RAISE NOTICE and also store start and stop time of each run
to a logging table.
I currently have following:
---snipp---
CREATE OR REPLACE FUNCTION radius.radius_acct_batch() RETURNS void
AS '
DECLARE
batch_id int;
realm RECORD;
start_time timestamp;
stop_time timestamp;
BEGIN
-- start new batch
start_time := ''now'';
INSERT INTO radius.radius_acct_batch ( radius_acct_batch_run_start ) VALUES ( start_time );
SELECT INTO batch_id currval(''radius.radius_acct_batch_radius_acct_batch_id_seq'');
RAISE NOTICE ''radius.radius_acct_batch, radius_acct_batch_id=%, start_time=%.'', batch_id, start_time;
-- do actual work
...
...
...
...
-- register end date in batch
stop_time := ''now'';
UPDATE radius.radius_acct_batch SET radius_acct_batch_run_end=stop_time WHERE radius_acct_batch_id=batch_id;
RAISE NOTICE ''radius.radius_acct_batch, radius_acct_batch_id=%, stop_time=%, done.'', batch_id, stop_time;
RETURN;
END'
LANGUAGE plpgsql;
---snipp---
the problem is that start_time and stop_time are identical.
Is there any way I can get plpgsql to reevaluate now at the end
of the batch ???
Greetings
Christian
--
Christian Kratzer ck@cksoft.de
CK Software GmbH http://www.cksoft.de/
Phone: +49 7452 889 135 Fax: +49 7452 889 136