Advertisement
Guest User

Untitled

a guest
Jan 14th, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. CREATE OR REPLACE FUNCTION operator_check() RETURNS TRIGGER AS $$
  2. DECLARE
  3.     curDate TIMESTAMP;
  4.     curDuration INTERVAL;
  5. BEGIN
  6.     FOR curDate, curDuration IN
  7.     (SELECT start_time, duration FROM Shoots
  8.         WHERE oid=NEW.oid AND
  9.         start_time > current_timestamp - interval '1 day') LOOP
  10.             IF (SELECT (NEW.start_time, NEW.duration) OVERLAPS (curDate, curDuration))
  11.             THEN
  12.                 RAISE EXCEPTION 'Operator is busy at %-%', curDate, curDate + curDuration;
  13.             END IF;
  14.         RETURN NEW;
  15.     END LOOP;
  16. END;
  17. $$ LANGUAGE plpgsql;
  18.  
  19. CREATE OR REPLACE FUNCTION journalist_check() RETURNS TRIGGER AS $$
  20. DECLARE
  21.     curDate TIMESTAMP;
  22.     curDuration INTERVAL;
  23. BEGIN
  24.     FOR curDate, curDuration IN
  25.     (SELECT start_time, duration FROM Shoots
  26.         WHERE jid=NEW.jid AND
  27.         start_time > current_timestamp - interval '1 day') LOOP
  28.             IF (SELECT (NEW.start_time, NEW.duration) OVERLAPS (curDate, curDuration))
  29.             THEN
  30.                 RAISE EXCEPTION 'Journalist is busy at %-%', curDate, curDate + curDuration;
  31.             END IF;
  32.         RETURN NEW;
  33.     END LOOP;
  34. END;
  35. $$ LANGUAGE plpgsql;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement