adding lit_form
[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       "char",
89         item_form       "char",
90         bib_level       "char",
91         control_type    "char",
92         char_encoding   "char",
93         enc_level       "char",
94         audience        "char",
95         lit_form        "char",
96         cat_form        TEXT,
97         pub_status      TEXT,
98         item_lang       TEXT
99 );
100 CREATE INDEX metabib_rec_descriptor_record_idx ON metabib.rec_descriptor (record);
101 /* We may not need these...
102
103 CREATE INDEX metabib_rec_descriptor_item_type_idx ON metabib.rec_descriptor (item_type);
104 CREATE INDEX metabib_rec_descriptor_item_form_idx ON metabib.rec_descriptor (item_form);
105 CREATE INDEX metabib_rec_descriptor_bib_level_idx ON metabib.rec_descriptor (bib_level);
106 CREATE INDEX metabib_rec_descriptor_control_type_idx ON metabib.rec_descriptor (control_type);
107 CREATE INDEX metabib_rec_descriptor_char_encoding_idx ON metabib.rec_descriptor (char_encoding);
108 CREATE INDEX metabib_rec_descriptor_enc_level_idx ON metabib.rec_descriptor (enc_level);
109 CREATE INDEX metabib_rec_descriptor_cat_form_idx ON metabib.rec_descriptor (cat_form);
110 CREATE INDEX metabib_rec_descriptor_pub_status_idx ON metabib.rec_descriptor (pub_status);
111 CREATE INDEX metabib_rec_descriptor_item_lang_idx ON metabib.rec_descriptor (item_lang);
112 CREATE INDEX metabib_rec_descriptor_audience_idx ON metabib.rec_descriptor (audience);
113
114 */
115
116
117 CREATE TABLE metabib.full_rec (
118         id              BIGSERIAL       PRIMARY KEY,
119         record          BIGINT          NOT NULL,
120         tag             CHAR(3)         NOT NULL,
121         ind1            "char",
122         ind2            "char",
123         subfield        "char",
124         value           TEXT            NOT NULL,
125         index_vector    tsvector        NOT NULL
126 );
127 CREATE INDEX metabib_full_rec_record_idx ON metabib.full_rec (record);
128 CREATE TRIGGER metabib_full_rec_fti_trigger
129         BEFORE UPDATE OR INSERT ON metabib.full_rec
130         FOR EACH ROW EXECUTE PROCEDURE tsearch2(index_vector, value);
131
132 CREATE INDEX metabib_full_rec_index_vector_idx ON metabib.full_rec USING GIST (index_vector);
133
134
135 CREATE TABLE metabib.metarecord_source_map (
136         id              BIGSERIAL       PRIMARY KEY,
137         metarecord      BIGINT          NOT NULL,
138         source          BIGINT          NOT NULL
139 );
140 CREATE INDEX metabib_metarecord_source_map_metarecord_idx ON metabib.metarecord_source_map (metarecord);
141 CREATE INDEX metabib_metarecord_source_map_source_record_idx ON metabib.metarecord_source_map (source);
142
143
144 COMMIT;