adding vr_format to rec_descriptor
[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 CREATE INDEX metabib_title_field_entry_index_vector_idx ON metabib.title_field_entry USING GIST (index_vector);
27
28
29 CREATE TABLE metabib.author_field_entry (
30         id              BIGSERIAL       PRIMARY KEY,
31         source          BIGINT          NOT NULL,
32         field           INT             NOT NULL,
33         value           TEXT            NOT NULL,
34         index_vector    tsvector        NOT NULL
35 );
36 CREATE TRIGGER metabib_author_field_entry_fti_trigger
37         BEFORE UPDATE OR INSERT ON metabib.author_field_entry
38         FOR EACH ROW EXECUTE PROCEDURE tsearch2(index_vector, value);
39
40 CREATE INDEX metabib_author_field_entry_index_vector_idx ON metabib.author_field_entry USING GIST (index_vector);
41
42
43 CREATE TABLE metabib.subject_field_entry (
44         id              BIGSERIAL       PRIMARY KEY,
45         source          BIGINT          NOT NULL,
46         field           INT             NOT NULL,
47         value           TEXT            NOT NULL,
48         index_vector    tsvector        NOT NULL
49 );
50 CREATE TRIGGER metabib_subject_field_entry_fti_trigger
51         BEFORE UPDATE OR INSERT ON metabib.subject_field_entry
52         FOR EACH ROW EXECUTE PROCEDURE tsearch2(index_vector, value);
53
54 CREATE INDEX metabib_subject_field_entry_index_vector_idx ON metabib.subject_field_entry USING GIST (index_vector);
55
56
57 CREATE TABLE metabib.keyword_field_entry (
58         id              BIGSERIAL       PRIMARY KEY,
59         source          BIGINT          NOT NULL,
60         field           INT             NOT NULL,
61         value           TEXT            NOT NULL,
62         index_vector    tsvector        NOT NULL
63 );
64 CREATE TRIGGER metabib_keyword_field_entry_fti_trigger
65         BEFORE UPDATE OR INSERT ON metabib.keyword_field_entry
66         FOR EACH ROW EXECUTE PROCEDURE tsearch2(index_vector, value);
67
68 CREATE INDEX metabib_keyword_field_entry_index_vector_idx ON metabib.keyword_field_entry USING GIST (index_vector);
69
70
71 CREATE TABLE metabib.series_field_entry (
72         id              BIGSERIAL       PRIMARY KEY,
73         source          BIGINT          NOT NULL,
74         field           INT             NOT NULL,
75         value           TEXT            NOT NULL,
76         index_vector    tsvector        NOT NULL
77 );
78 CREATE TRIGGER metabib_series_field_entry_fti_trigger
79         BEFORE UPDATE OR INSERT ON metabib.series_field_entry
80         FOR EACH ROW EXECUTE PROCEDURE tsearch2(index_vector, value);
81
82 CREATE INDEX metabib_series_field_entry_index_vector_idx ON metabib.series_field_entry USING GIST (index_vector);
83
84
85 CREATE TABLE metabib.rec_descriptor (
86         id              BIGSERIAL PRIMARY KEY,
87         record          BIGINT,
88         item_type       TEXT,
89         item_form       TEXT,
90         bib_level       TEXT,
91         control_type    TEXT,
92         char_encoding   TEXT,
93         enc_level       TEXT,
94         audience        TEXT,
95         lit_form        TEXT,
96         type_mat        TEXT,
97         cat_form        TEXT,
98         pub_status      TEXT,
99         item_lang       TEXT,
100         vr_format       TEXT
101 );
102 CREATE INDEX metabib_rec_descriptor_record_idx ON metabib.rec_descriptor (record);
103 /* We may not need these...
104
105 CREATE INDEX metabib_rec_descriptor_item_type_idx ON metabib.rec_descriptor (item_type);
106 CREATE INDEX metabib_rec_descriptor_item_form_idx ON metabib.rec_descriptor (item_form);
107 CREATE INDEX metabib_rec_descriptor_bib_level_idx ON metabib.rec_descriptor (bib_level);
108 CREATE INDEX metabib_rec_descriptor_control_type_idx ON metabib.rec_descriptor (control_type);
109 CREATE INDEX metabib_rec_descriptor_char_encoding_idx ON metabib.rec_descriptor (char_encoding);
110 CREATE INDEX metabib_rec_descriptor_enc_level_idx ON metabib.rec_descriptor (enc_level);
111 CREATE INDEX metabib_rec_descriptor_cat_form_idx ON metabib.rec_descriptor (cat_form);
112 CREATE INDEX metabib_rec_descriptor_pub_status_idx ON metabib.rec_descriptor (pub_status);
113 CREATE INDEX metabib_rec_descriptor_item_lang_idx ON metabib.rec_descriptor (item_lang);
114 CREATE INDEX metabib_rec_descriptor_audience_idx ON metabib.rec_descriptor (audience);
115
116 */
117
118
119 CREATE TABLE metabib.full_rec (
120         id              BIGSERIAL       PRIMARY KEY,
121         record          BIGINT          NOT NULL,
122         tag             CHAR(3)         NOT NULL,
123         ind1            TEXT,
124         ind2            TEXT,
125         subfield        TEXT,
126         value           TEXT            NOT NULL,
127         index_vector    tsvector        NOT NULL
128 );
129 CREATE INDEX metabib_full_rec_record_idx ON metabib.full_rec (record);
130 CREATE TRIGGER metabib_full_rec_fti_trigger
131         BEFORE UPDATE OR INSERT ON metabib.full_rec
132         FOR EACH ROW EXECUTE PROCEDURE tsearch2(index_vector, value);
133
134 CREATE INDEX metabib_full_rec_index_vector_idx ON metabib.full_rec USING GIST (index_vector);
135
136
137 CREATE TABLE metabib.metarecord_source_map (
138         id              BIGSERIAL       PRIMARY KEY,
139         metarecord      BIGINT          NOT NULL,
140         source          BIGINT          NOT NULL
141 );
142 CREATE INDEX metabib_metarecord_source_map_metarecord_idx ON metabib.metarecord_source_map (metarecord);
143 CREATE INDEX metabib_metarecord_source_map_source_record_idx ON metabib.metarecord_source_map (source);
144
145
146 COMMIT;