From: Bill Erickson Date: Thu, 18 Oct 2012 20:16:19 +0000 (-0400) Subject: simpler next_copy implementation X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=4ad07baa55758f2201b3440128955e26b7277189;p=working%2FEvergreen.git simpler next_copy implementation Signed-off-by: Bill Erickson --- diff --git a/Open-ILS/tests/datasets/sql/env_create.sql b/Open-ILS/tests/datasets/sql/env_create.sql index a974762e83..218c028856 100644 --- a/Open-ILS/tests/datasets/sql/env_create.sql +++ b/Open-ILS/tests/datasets/sql/env_create.sql @@ -36,23 +36,10 @@ $$ LANGUAGE SQL; /** Returns the next (by ID) non-deleted asset.copy */ CREATE FUNCTION evergreen.next_copy (copy_id BIGINT) RETURNS asset.copy AS $$ - DECLARE copy asset.copy%ROWTYPE; - DECLARE max_id BIGINT; -BEGIN - SELECT INTO max_id max(id) FROM asset.copy; - WHILE TRUE LOOP - copy_id := copy_id + 1; - IF copy_id > max_id THEN - RETURN NULL; - END IF; - SELECT INTO copy * FROM asset.copy WHERE id = copy_id; - IF NOT copy.deleted THEN - RETURN copy; - END IF; - END LOOP; - RETURN NULL; -END; -$$ LANGUAGE PLPGSQL; + SELECT * FROM asset.copy + WHERE id > $1 AND NOT deleted + ORDER BY id LIMIT 1; +$$ LANGUAGE SQL; /** Create one circulation */ @@ -92,8 +79,6 @@ BEGIN due_date := (DATE(due_date) || ' 23:59:59')::TIMESTAMP; END IF; - - INSERT INTO action.circulation ( xact_start, usr, target_copy, circ_lib, circ_staff, renewal_remaining, grace_period, duration, recurring_fine, max_fine, duration_rule,