Seems clearly your mistake to me... you do realize that (null + z) is always going to be null, right? Maybe your totals columns should have been declared NOT NULL (and presumably DEFAULT 0) to avoid this problem?
Adding some diagnostics to your function (and fixing all the syntax errors) and running it shows that you're frequently trying to add to nulls, e.g.: NOTICE: sum_pkt_in_int = <NULL> NOTICE: sum_orig_raw_pktcount = 4 NOTICE: sum_pkt_in_int = <NULL> NOTICE: sum_orig_raw_pktcount = 599 these diagnostics were obtained as follows: CREATE OR REPLACE FUNCTION statistics.notice(text, anyelement) RETURNS anyelement LANGUAGE plpgsql AS $function$ begin raise notice '% = %', $1, $2; return $2; end; $function$ and changing your update to: sum_pkt_in_int = notice(''sum_pkt_in_int'',sum_pkt_in_int) + notice(''sum_orig_raw_pktcount'',sum_orig_raw_pktcount), -- XXX THIS IS IT, does not work even when ... + 1000000 XXX (doing \set VERBOSITY terse in psql is a good idea for this case to avoid excessive CONTEXT output) -- Andrew (irc:RhodiumToad) -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs