moving sql files to dir matching the Open-ILS driver name (sorry for killing the...
[Evergreen.git] / Open-ILS / src / sql / Pg / 030.schema.metabib.sql
1 DROP SCHEMA metabib CASCADE;
2
3 BEGIN;
4 CREATE SCHEMA metabib;
5
6 CREATE TABLE metabib.metarecord (
7         id              BIGSERIAL       PRIMARY KEY,
8         fingerprint     TEXT            NOT NULL,
9         master_record   BIGINT,
10         mods            TEXT
11 );
12 CREATE INDEX metabib_metarecord_master_record_idx ON metabib.metarecord (master_record);
13 CREATE INDEX metabib_metarecord_fingerprint_idx ON metabib.metarecord (fingerprint);
14
15 CREATE TABLE metabib.title_field_entry (
16         id              BIGSERIAL       PRIMARY KEY,
17         source          BIGINT          NOT NULL,
18         field           INT             NOT NULL,
19         value           TEXT            NOT NULL,
20         index_vector    tsvector        NOT NULL
21 );
22 CREATE TRIGGER metabib_title_field_entry_fti_trigger
23         BEFORE UPDATE OR INSERT ON metabib.title_field_entry
24         FOR EACH ROW EXECUTE PROCEDURE tsearch2(index_vector, value);
25
26
27 CREATE TABLE metabib.author_field_entry (
28         id              BIGSERIAL       PRIMARY KEY,
29         source          BIGINT          NOT NULL,
30         field           INT             NOT NULL,
31         value           TEXT            NOT NULL,
32         index_vector    tsvector        NOT NULL
33 );
34 CREATE TRIGGER metabib_author_field_entry_fti_trigger
35         BEFORE UPDATE OR INSERT ON metabib.author_field_entry
36         FOR EACH ROW EXECUTE PROCEDURE tsearch2(index_vector, value);
37
38
39 CREATE TABLE metabib.subject_field_entry (
40         id              BIGSERIAL       PRIMARY KEY,
41         source          BIGINT          NOT NULL,
42         field           INT             NOT NULL,
43         value           TEXT            NOT NULL,
44         index_vector    tsvector        NOT NULL
45 );
46 CREATE TRIGGER metabib_subject_field_entry_fti_trigger
47         BEFORE UPDATE OR INSERT ON metabib.subject_field_entry
48         FOR EACH ROW EXECUTE PROCEDURE tsearch2(index_vector, value);
49
50
51 CREATE TABLE metabib.keyword_field_entry (
52         id              BIGSERIAL       PRIMARY KEY,
53         source          BIGINT          NOT NULL,
54         field           INT             NOT NULL,
55         value           TEXT            NOT NULL,
56         index_vector    tsvector        NOT NULL
57 );
58 CREATE TRIGGER metabib_keyword_field_entry_fti_trigger
59         BEFORE UPDATE OR INSERT ON metabib.keyword_field_entry
60         FOR EACH ROW EXECUTE PROCEDURE tsearch2(index_vector, value);
61
62 CREATE TABLE metabib.series_field_entry (
63         id              BIGSERIAL       PRIMARY KEY,
64         source          BIGINT          NOT NULL,
65         field           INT             NOT NULL,
66         value           TEXT            NOT NULL,
67         index_vector    tsvector        NOT NULL
68 );
69 CREATE TRIGGER metabib_series_field_entry_fti_trigger
70         BEFORE UPDATE OR INSERT ON metabib.series_field_entry
71         FOR EACH ROW EXECUTE PROCEDURE tsearch2(index_vector, value);
72
73 CREATE TABLE metabib.rec_descriptor (
74         id              BIGSERIAL PRIMARY KEY,
75         record          BIGINT,
76         item_type       TEXT,
77         item_form       TEXT,
78         bib_level       TEXT,
79         control_type    TEXT,
80         char_encoding   TEXT,
81         enc_level       TEXT,
82         cat_form        TEXT,
83         pub_status      TEXT,
84         item_lang       TEXT,
85         audience        TEXT
86 );
87 CREATE INDEX metabib_rec_descriptor_record_idx ON metabib.rec_descriptor (record);
88 /* We may not need these...
89
90 CREATE INDEX metabib_rec_descriptor_item_type_idx ON metabib.rec_descriptor (item_type);
91 CREATE INDEX metabib_rec_descriptor_item_form_idx ON metabib.rec_descriptor (item_form);
92 CREATE INDEX metabib_rec_descriptor_bib_level_idx ON metabib.rec_descriptor (bib_level);
93 CREATE INDEX metabib_rec_descriptor_control_type_idx ON metabib.rec_descriptor (control_type);
94 CREATE INDEX metabib_rec_descriptor_char_encoding_idx ON metabib.rec_descriptor (char_encoding);
95 CREATE INDEX metabib_rec_descriptor_enc_level_idx ON metabib.rec_descriptor (enc_level);
96 CREATE INDEX metabib_rec_descriptor_cat_form_idx ON metabib.rec_descriptor (cat_form);
97 CREATE INDEX metabib_rec_descriptor_pub_status_idx ON metabib.rec_descriptor (pub_status);
98 CREATE INDEX metabib_rec_descriptor_item_lang_idx ON metabib.rec_descriptor (item_lang);
99 CREATE INDEX metabib_rec_descriptor_audience_idx ON metabib.rec_descriptor (audience);
100
101 */
102
103
104 CREATE TABLE metabib.full_rec (
105         id              BIGSERIAL       PRIMARY KEY,
106         record          BIGINT          NOT NULL,
107         tag             CHAR(3)         NOT NULL,
108         ind1            CHAR(1),
109         ind2            CHAR(1),
110         subfield        CHAR(1),
111         value           TEXT            NOT NULL,
112         index_vector    tsvector        NOT NULL
113 );
114 CREATE INDEX metabib_full_rec_record_idx ON metabib.full_rec (record);
115 CREATE TRIGGER metabib_full_rec_fti_trigger
116         BEFORE UPDATE OR INSERT ON metabib.full_rec
117         FOR EACH ROW EXECUTE PROCEDURE tsearch2(index_vector, value);
118
119 CREATE TABLE metabib.metarecord_source_map (
120         id              BIGSERIAL       PRIMARY KEY,
121         metarecord      BIGINT          NOT NULL,
122         source          BIGINT          NOT NULL
123 );
124 CREATE INDEX metabib_metarecord_source_map_metarecord_idx ON metabib.metarecord_source_map (metarecord);
125 CREATE INDEX metabib_metarecord_source_map_source_record_idx ON metabib.metarecord_source_map (source);
126
127
128 COMMIT;