better docstring
[migration-tools.git] / final.load-bib.sql
1 SET CLIENT_ENCODING TO 'UNICODE';
2
3 BEGIN;
4
5 SELECT reporter.disable_materialized_simple_record_trigger();
6
7 CREATE TEMP TABLE dummy_bib AS SELECT * FROM biblio.record_entry WHERE id = -1;
8 CREATE TEMP TABLE dummy_cn AS SELECT * FROM asset.call_number WHERE id = -1;
9
10 DROP INDEX metabib.metabib_full_rec_index_vector_idx;
11 DROP INDEX metabib.metabib_title_field_entry_index_vector_idx;
12 DROP INDEX metabib.metabib_author_field_entry_index_vector_idx;
13 DROP INDEX metabib.metabib_subject_field_entry_index_vector_idx;
14 DROP INDEX metabib.metabib_keyword_field_entry_index_vector_idx;
15 DROP INDEX metabib.metabib_series_field_entry_index_vector_idx;
16
17 TRUNCATE biblio.record_entry CASCADE;
18 TRUNCATE metabib.full_rec;
19 TRUNCATE metabib.rec_descriptor;
20 TRUNCATE metabib.title_field_entry;
21 TRUNCATE metabib.author_field_entry;
22 TRUNCATE metabib.subject_field_entry;
23 TRUNCATE metabib.keyword_field_entry;
24 TRUNCATE metabib.series_field_entry;
25 TRUNCATE auditor.biblio_record_entry_history;
26
27 SELECT SETVAL('biblio.record_entry_id_seq', 1);
28 SELECT SETVAL('metabib.full_rec_id_seq', 1);
29 SELECT SETVAL('metabib.rec_descriptor_id_seq', 1);
30 SELECT SETVAL('metabib.title_field_entry_id_seq', 1);
31 SELECT SETVAL('metabib.author_field_entry_id_seq', 1);
32 SELECT SETVAL('metabib.subject_field_entry_id_seq', 1);
33 SELECT SETVAL('metabib.keyword_field_entry_id_seq', 1);
34 SELECT SETVAL('metabib.series_field_entry_id_seq', 1);
35 SELECT SETVAL('metabib.metarecord_id_seq', 1);
36 SELECT SETVAL('metabib.metarecord_source_map_id_seq', 1);
37
38 INSERT INTO biblio.record_entry SELECT * FROM dummy_bib;
39 INSERT INTO asset.call_number SELECT * FROM dummy_cn;
40
41 \i incumbent.sql
42 \i incoming.sql
43
44 CREATE INDEX metabib_title_field_entry_index_vector_idx ON metabib.title_field_entry USING GIST (index_vector);
45 CREATE INDEX metabib_author_field_entry_index_vector_idx ON metabib.author_field_entry USING GIST (index_vector);
46 CREATE INDEX metabib_subject_field_entry_index_vector_idx ON metabib.subject_field_entry USING GIST (index_vector);
47 CREATE INDEX metabib_keyword_field_entry_index_vector_idx ON metabib.keyword_field_entry USING GIST (index_vector);
48 CREATE INDEX metabib_series_field_entry_index_vector_idx ON metabib.series_field_entry USING GIST (index_vector);
49 CREATE INDEX metabib_full_rec_index_vector_idx ON metabib.full_rec USING GIST (index_vector);
50 CREATE INDEX metabib_full_rec_tag_subfield_idx ON metabib.full_rec (tag,subfield);
51 CREATE INDEX metabib_full_value_idx ON metabib.full_rec (value);
52
53 ALTER TABLE metabib.metarecord_source_map DROP CONSTRAINT metabib_metarecord_source_map_metarecord_fkey;
54
55 TRUNCATE metabib.metarecord;
56 TRUNCATE metabib.metarecord_source_map;
57
58 INSERT INTO metabib.metarecord (fingerprint,master_record)
59     SELECT  fingerprint,id
60       FROM  (SELECT DISTINCT ON (fingerprint)
61             fingerprint, id, quality
62           FROM  biblio.record_entry
63           ORDER BY fingerprint, quality desc) AS x
64       WHERE fingerprint IS NOT NULL;
65
66 INSERT INTO metabib.metarecord_source_map (metarecord,source)
67     SELECT  m.id, b.id
68       FROM  biblio.record_entry b
69         JOIN metabib.metarecord m ON (m.fingerprint = b.fingerprint);
70
71 ALTER TABLE metabib.metarecord_source_map
72         ADD CONSTRAINT metabib_metarecord_source_map_metarecord_fkey
73                 FOREIGN KEY (metarecord) REFERENCES metabib.metarecord (id) DEFERRABLE INITIALLY DEFERRED;
74
75 SELECT reporter.enable_materialized_simple_record_trigger();
76
77
78 -- COMMIT;
79 -- VACUUM FULL;
80