Hi,

I'm trying to time a pl/sql function using a rougn and ready method,
basically: print a TIMESTAMP at the begining of the function, print a
TIMESTAMP at the end of the function.

So...:

CREATE OR REPLACE FUNCTION timer() RETURNS INTEGER AS '
DECLARE 

        timer1 TIMESTAMP;
        timer2 TIMESTAMP;
        num_operators INTEGER;

BEGIN
        
        timer1 := ''now''; -- As suggested in 23.4 of programmer guide  
        RAISE NOTICE ''Start: %'', timer1;
        
        /* Some function which takes time.
        Here, a select from a pg catalogue */
         
        SELECT INTO num_operators COUNT(*) FROM pg_operator;
        
        timer2 := ''now'';
        RAISE NOTICE ''End: %'', timer2;
        
        RETURN(num_operators);
        
END;' 
LANGUAGE 'plpgsql';

Gives me:

testdb2=# select timer();
NOTICE:  Start: 2002-11-26 13:40:14.116605+00
NOTICE:  End: 2002-11-26 13:40:14.116605+00
 timer
-------
   623
(1 row)

I've tried all sorts of variations but I hit one of two problems; either the
TIMESTAMP is fixed to the function compile time or, as above, the timer1 and
timer2 TIMESTAMPs are always identical.

Any help/pointers/suggestions appreciate... well of course a working
solution would be the best ;)

Cheers,

Stuart.

---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

http://archives.postgresql.org

Reply via email to