All pastes #994241 Raw Edit

Unnamed

public sql v1 · immutable
#994241 ·published 2008-04-23 07:36 UTC
rendered paste body
CREATE OR REPLACE FUNCTION current_calls () RETURNS opaque AS $$  DECLARE	-- Declare variables to hold the information.	invite			RECORD;	  BEGIN		IF NEW.method = 'INVITE' AND NEW.sip_code = '200' THEN		SELECT * INTO invite FROM currently WHERE callid = NEW.callid;		IF NOT FOUND THEN			INSERT INTO currently (callid) VALUES (NEW.callid);		END IF;	END IF;		IF NEW.method = 'BYE' AND NEW.sip_code = '200' THEN  		DELETE FROM currently WHERE callid = NEW.callid;    END IF;        RETURN NEW;  END;$$ LANGUAGE 'plpgsql';CREATE OR REPLACE FUNCTION concurrent () RETURNS opaque AS $$  DECLARE	-- Declare variables to hold the information.	m_calls			RECORD;	  BEGIN		SELECT * INTO m_calls FROM concurrent ORDER BY call_time DESC LIMIT 1;		IF TG_OP = 'INSERT' THEN		INSERT INTO concurrent (calls) VALUES(m_calls.calls + 1);	END IF;		IF TG_OP = 'DELETE' THEN		INSERT INTO concurrent (calls) VALUES(m_calls.calls - 1);    END IF;        RETURN NEW;  END;$$ LANGUAGE 'plpgsql';CREATE TRIGGER concurrent BEFORE INSERT OR DELETE ON currently FOR EACH ROW EXECUTE PROCEDURE concurrent();CREATE TRIGGER currently AFTER INSERT ON acc FOR EACH ROW EXECUTE PROCEDURE current_calls();