Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE OR REPLACE FUNCTION operator_check() RETURNS TRIGGER AS $$
- DECLARE
- curDate TIMESTAMP;
- curDuration INTERVAL;
- BEGIN
- FOR curDate, curDuration IN
- (SELECT start_time, duration FROM Shoots
- WHERE oid=NEW.oid AND
- start_time > current_timestamp - interval '1 day') LOOP
- IF (SELECT (NEW.start_time, NEW.duration) OVERLAPS (curDate, curDuration))
- THEN
- RAISE EXCEPTION 'Operator is busy at %-%', curDate, curDate + curDuration;
- END IF;
- RETURN NEW;
- END LOOP;
- END;
- $$ LANGUAGE plpgsql;
- CREATE OR REPLACE FUNCTION journalist_check() RETURNS TRIGGER AS $$
- DECLARE
- curDate TIMESTAMP;
- curDuration INTERVAL;
- BEGIN
- FOR curDate, curDuration IN
- (SELECT start_time, duration FROM Shoots
- WHERE jid=NEW.jid AND
- start_time > current_timestamp - interval '1 day') LOOP
- IF (SELECT (NEW.start_time, NEW.duration) OVERLAPS (curDate, curDuration))
- THEN
- RAISE EXCEPTION 'Journalist is busy at %-%', curDate, curDate + curDuration;
- END IF;
- RETURN NEW;
- END LOOP;
- END;
- $$ LANGUAGE plpgsql;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement