All pastes #11455 Raw Edit

Miscellany

public text v1 · immutable
#11455 ·published 2005-05-11 02:47 UTC
rendered paste body
CREATE OR REPLACE FUNCTION check_com_meter() RETURNS TRIGGER AS '
  DECLARE
    
    times TIMESTAMP WITHOUT TIME ZONE;
    time_interval INTEGER;
    rows INTEGER;           
    reading double precision;   
    average double precision;
    seconds INTEGER;                
    new_time timestamp;
        

  BEGIN
    
    SELECT INTO times, reading timestamp, readings FROM com_meter WHERE did = NEW.did ORDER BY timestamp DESC;
    RAISE NOTICE ''test'';
    IF NOT FOUND THEN
        RETURN NEW;
    ELSE
        time_interval := EXTRACT(EPOCH FROM NEW.timestamp) - EXTRACT(EPOCH FROM times);
        rows := time_interval / 900;    
        RAISE NOTICE ''zzz %'', rows;
        RAISE NOTICE ''xxx %'', time_interval;
        IF rows > 1 THEN
                FOR i IN 1 .. rows-1 LOOP
                        seconds := EXTRACT(EPOCH FROM times) + 900*i;
                        --new_time := "2005-03-31 17:30:00";
                        INSERT INTO com_meter (did,timestamp, readings) VALUES (NEW.did, "2005-03-31 17:30:00", NEW.readings);
                        --RAISE NOTICE ''%<%<%<%'',times, reading, seconds,new_time;
                END LOOP;
        ELSE
                IF rows = 0 THEN
                        return NULL;
                END IF;
        END IF;
        RETURN NEW;
    END IF;
  END;
' LANGUAGE 'plpgsql';