]> git.evergreen-ils.org Git - Evergreen.git/blob - Evergreen/src/extras/import/legacy_hold.sql
attempt to speed up date overlap calc
[Evergreen.git] / Evergreen / src / extras / import / legacy_hold.sql
1 BEGIN;
2
3 -- These are copy level holds
4 -- CREATE TABLE legacy_copy_hold_insert AS
5 create table copy_hold_fix as 
6         SELECT  lh.hold_key AS id,
7                 cp.id AS target,
8                 cp.id AS current_copy,
9                 'C'::TEXT AS hold_type,
10                 pou.id AS pickup_lib,
11                 pou.id AS selection_ou,
12                 CASE    WHEN lh.hold_range = 'SYSTEM' THEN 0
13                         WHEN lh.hold_range = 'GROUP' THEN 1
14                         ELSE 2
15                 END AS selection_depth,
16                 lh.hold_date AS request_time,
17                 CASE    WHEN lh.available IN ('Y','I') THEN '2006-09-01'::timestamptz
18                         ELSE NULL
19                 END AS capture_time,
20                 rou.id AS request_lib,
21                 au.id AS requestor,
22                 au.id AS usr
23           FROM  legacy_hold lh
24                 JOIN legacy_item jl
25                         ON (    jl.cat_key = lh.cat_key
26                                 AND jl.call_key = lh.call_key
27                                 AND jl.item_key = lh.item_key )
28                 JOIN asset.copy cp ON (cp.barcode = jl.item_id)
29                 JOIN actor.usr au ON (au.id = lh.user_key)
30                 JOIN actor.org_unit rou ON (rou.shortname = lh.placing_lib)
31                 JOIN actor.org_unit pou ON (pou.shortname = lh.pickup_lib)
32           WHERE lh.hold_level = 'C'
33                 AND lh.hold_date > '2006-01-01';
34
35
36 -- And these are CN level holds
37 -- CREATE TABLE legacy_cn_hold_insert AS
38 create table cn_hold_fix as
39         SELECT  lh.hold_key AS id,
40                 cp.call_number AS target,
41                 cp.id AS current_copy,
42                 'V'::TEXT AS hold_type,
43                 pou.id AS pickup_lib,
44                 pou.id AS selection_ou,
45                 CASE    WHEN lh.hold_range = 'SYSTEM' THEN 0
46                         WHEN lh.hold_range = 'GROUP' THEN 1
47                         ELSE 2
48                 END AS selection_depth,
49                 lh.hold_date AS request_time,
50                 CASE    WHEN lh.available IN ('Y','I') THEN '2006-09-01'::timestamptz
51                         ELSE NULL
52                 END AS capture_time,
53                 rou.id AS request_lib,
54                 au.id AS requestor,
55                 au.id AS usr
56           FROM  legacy_hold lh
57                 JOIN legacy_item jl
58                         ON (    jl.cat_key = lh.cat_key
59                                 AND jl.call_key = lh.call_key
60                                 AND jl.item_key = lh.item_key )
61                 JOIN asset.copy cp ON (cp.barcode = jl.item_id)
62                 JOIN actor.usr au ON (au.id = lh.user_key)
63                 JOIN actor.org_unit rou ON (rou.shortname = lh.placing_lib)
64                 JOIN actor.org_unit pou ON (pou.shortname = lh.pickup_lib)
65           WHERE lh.hold_level = 'A'
66                 AND lh.hold_date > '2006-01-01';
67
68 -- And these are Title level holds
69 -- CREATE TABLE legacy_title_hold_insert AS
70 create table title_hold_fix as
71         SELECT  lh.hold_key AS id,
72                 lh.cat_key AS target,
73                 cp.id AS current_copy,
74                 'T'::TEXT AS hold_type,
75                 pou.id AS pickup_lib,
76                 pou.id AS selection_ou,
77                 CASE    WHEN lh.hold_range = 'SYSTEM' THEN 0
78                         WHEN lh.hold_range = 'GROUP' THEN 1
79                         ELSE 2
80                 END AS selection_depth,
81                 lh.hold_date AS request_time,
82                 CASE    WHEN lh.available IN ('Y','I') THEN '2006-09-01'::timestamptz
83                         ELSE NULL
84                 END AS capture_time,
85                 rou.id AS request_lib,
86                 au.id AS requestor,
87                 au.id AS usr
88           FROM  legacy_hold lh
89                 JOIN legacy_item jl
90                         ON (    jl.cat_key = lh.cat_key
91                                 AND jl.call_key = lh.call_key
92                                 AND jl.item_key = lh.item_key )
93                 JOIN asset.copy cp ON (cp.barcode = jl.item_id)
94                 JOIN actor.usr au ON (au.id = lh.user_key)
95                 JOIN actor.org_unit rou ON (rou.shortname = lh.placing_lib)
96                 JOIN actor.org_unit pou ON (pou.shortname = lh.pickup_lib)
97           WHERE lh.hold_level = 'T'
98                 AND lh.hold_date > '2006-01-01';
99
100 SELECT SETVAL('action.hold_request_id_seq',(SELECT MAX(id) FROM action.hold_request),TRUE);
101
102 COMMIT;