3 -- check whether patch can be applied
4 SELECT evergreen.upgrade_deps_block_check('0811', :eg_version);
6 DROP FUNCTION action.copy_related_hold_stats(integer);
8 CREATE OR REPLACE FUNCTION action.copy_related_hold_stats(copy_id bigint)
9 RETURNS action.hold_stats AS
12 output action.hold_stats%ROWTYPE;
15 available_count INT := 0;
19 output.hold_count := 0;
20 output.copy_count := 0;
21 output.available_count := 0;
23 SELECT COUNT( DISTINCT m.hold ) INTO hold_count
24 FROM action.hold_copy_map m
25 JOIN action.hold_request h ON (m.hold = h.id)
26 WHERE m.target_copy = copy_id
29 output.hold_count := hold_count;
31 IF output.hold_count > 0 THEN
33 SELECT DISTINCT m.target_copy,
35 FROM action.hold_copy_map m
36 JOIN asset.copy acp ON (m.target_copy = acp.id)
37 JOIN action.hold_request h ON (m.hold = h.id)
38 WHERE m.hold IN ( SELECT DISTINCT hold FROM action.hold_copy_map WHERE target_copy = copy_id ) AND NOT h.frozen
40 output.copy_count := output.copy_count + 1;
41 IF hold_map_data.status IN (0,7,12) THEN
42 output.available_count := output.available_count + 1;
45 output.total_copy_ratio = output.copy_count::FLOAT / output.hold_count::FLOAT;
46 output.available_copy_ratio = output.available_count::FLOAT / output.hold_count::FLOAT;
54 LANGUAGE plpgsql VOLATILE
56 ALTER FUNCTION action.copy_related_hold_stats(bigint)