]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/sql/Pg/030.schema.metabib.sql
add a reasonable prefix to autogenerated TCNs
[Evergreen.git] / Open-ILS / src / sql / Pg / 030.schema.metabib.sql
1 /*
2  * Copyright (C) 2004-2008  Georgia Public Library Service
3  * Copyright (C) 2007-2008  Equinox Software, Inc.
4  * Mike Rylander <miker@esilibrary.com> 
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 2
9  * of the License, or (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  */
17
18 DROP SCHEMA metabib CASCADE;
19
20 BEGIN;
21 CREATE SCHEMA metabib;
22
23 CREATE TABLE metabib.metarecord (
24         id              BIGSERIAL       PRIMARY KEY,
25         fingerprint     TEXT            NOT NULL,
26         master_record   BIGINT,
27         mods            TEXT
28 );
29 CREATE INDEX metabib_metarecord_master_record_idx ON metabib.metarecord (master_record);
30 CREATE INDEX metabib_metarecord_fingerprint_idx ON metabib.metarecord (fingerprint);
31
32 CREATE TABLE metabib.title_field_entry (
33         id              BIGSERIAL       PRIMARY KEY,
34         source          BIGINT          NOT NULL,
35         field           INT             NOT NULL,
36         value           TEXT            NOT NULL,
37         index_vector    tsvector        NOT NULL
38 );
39 CREATE TRIGGER metabib_title_field_entry_fti_trigger
40         BEFORE UPDATE OR INSERT ON metabib.title_field_entry
41         FOR EACH ROW EXECUTE PROCEDURE oils_tsearch2('title');
42
43 CREATE INDEX metabib_title_field_entry_index_vector_idx ON metabib.title_field_entry USING GIST (index_vector);
44
45
46 CREATE TABLE metabib.author_field_entry (
47         id              BIGSERIAL       PRIMARY KEY,
48         source          BIGINT          NOT NULL,
49         field           INT             NOT NULL,
50         value           TEXT            NOT NULL,
51         index_vector    tsvector        NOT NULL
52 );
53 CREATE TRIGGER metabib_author_field_entry_fti_trigger
54         BEFORE UPDATE OR INSERT ON metabib.author_field_entry
55         FOR EACH ROW EXECUTE PROCEDURE oils_tsearch2('author');
56
57 CREATE INDEX metabib_author_field_entry_index_vector_idx ON metabib.author_field_entry USING GIST (index_vector);
58
59
60 CREATE TABLE metabib.subject_field_entry (
61         id              BIGSERIAL       PRIMARY KEY,
62         source          BIGINT          NOT NULL,
63         field           INT             NOT NULL,
64         value           TEXT            NOT NULL,
65         index_vector    tsvector        NOT NULL
66 );
67 CREATE TRIGGER metabib_subject_field_entry_fti_trigger
68         BEFORE UPDATE OR INSERT ON metabib.subject_field_entry
69         FOR EACH ROW EXECUTE PROCEDURE oils_tsearch2('subject');
70
71 CREATE INDEX metabib_subject_field_entry_index_vector_idx ON metabib.subject_field_entry USING GIST (index_vector);
72
73
74 CREATE TABLE metabib.keyword_field_entry (
75         id              BIGSERIAL       PRIMARY KEY,
76         source          BIGINT          NOT NULL,
77         field           INT             NOT NULL,
78         value           TEXT            NOT NULL,
79         index_vector    tsvector        NOT NULL
80 );
81 CREATE TRIGGER metabib_keyword_field_entry_fti_trigger
82         BEFORE UPDATE OR INSERT ON metabib.keyword_field_entry
83         FOR EACH ROW EXECUTE PROCEDURE oils_tsearch2('keyword');
84
85 CREATE INDEX metabib_keyword_field_entry_index_vector_idx ON metabib.keyword_field_entry USING GIST (index_vector);
86
87
88 CREATE TABLE metabib.series_field_entry (
89         id              BIGSERIAL       PRIMARY KEY,
90         source          BIGINT          NOT NULL,
91         field           INT             NOT NULL,
92         value           TEXT            NOT NULL,
93         index_vector    tsvector        NOT NULL
94 );
95 CREATE TRIGGER metabib_series_field_entry_fti_trigger
96         BEFORE UPDATE OR INSERT ON metabib.series_field_entry
97         FOR EACH ROW EXECUTE PROCEDURE oils_tsearch2('series');
98
99 CREATE INDEX metabib_series_field_entry_index_vector_idx ON metabib.series_field_entry USING GIST (index_vector);
100
101
102 CREATE TABLE metabib.rec_descriptor (
103         id              BIGSERIAL PRIMARY KEY,
104         record          BIGINT,
105         item_type       TEXT,
106         item_form       TEXT,
107         bib_level       TEXT,
108         control_type    TEXT,
109         char_encoding   TEXT,
110         enc_level       TEXT,
111         audience        TEXT,
112         lit_form        TEXT,
113         type_mat        TEXT,
114         cat_form        TEXT,
115         pub_status      TEXT,
116         item_lang       TEXT,
117         vr_format       TEXT,
118         date1           TEXT,
119         date2           TEXT
120 );
121 CREATE INDEX metabib_rec_descriptor_record_idx ON metabib.rec_descriptor (record);
122 /* We may not need these...
123
124 CREATE INDEX metabib_rec_descriptor_item_type_idx ON metabib.rec_descriptor (item_type);
125 CREATE INDEX metabib_rec_descriptor_item_form_idx ON metabib.rec_descriptor (item_form);
126 CREATE INDEX metabib_rec_descriptor_bib_level_idx ON metabib.rec_descriptor (bib_level);
127 CREATE INDEX metabib_rec_descriptor_control_type_idx ON metabib.rec_descriptor (control_type);
128 CREATE INDEX metabib_rec_descriptor_char_encoding_idx ON metabib.rec_descriptor (char_encoding);
129 CREATE INDEX metabib_rec_descriptor_enc_level_idx ON metabib.rec_descriptor (enc_level);
130 CREATE INDEX metabib_rec_descriptor_audience_idx ON metabib.rec_descriptor (audience);
131 CREATE INDEX metabib_rec_descriptor_lit_form_idx ON metabib.rec_descriptor (lit_form);
132 CREATE INDEX metabib_rec_descriptor_cat_form_idx ON metabib.rec_descriptor (cat_form);
133 CREATE INDEX metabib_rec_descriptor_pub_status_idx ON metabib.rec_descriptor (pub_status);
134 CREATE INDEX metabib_rec_descriptor_item_lang_idx ON metabib.rec_descriptor (item_lang);
135 CREATE INDEX metabib_rec_descriptor_vr_format_idx ON metabib.rec_descriptor (vr_format);
136
137 */
138
139
140 CREATE TABLE metabib.full_rec (
141         id              BIGSERIAL       PRIMARY KEY,
142         record          BIGINT          NOT NULL,
143         tag             CHAR(3)         NOT NULL,
144         ind1            TEXT,
145         ind2            TEXT,
146         subfield        TEXT,
147         value           TEXT            NOT NULL,
148         index_vector    tsvector        NOT NULL
149 );
150 CREATE INDEX metabib_full_rec_tag_subfield_idx ON metabib.full_rec (tag,subfield);
151 --CREATE INDEX metabib_full_rec_value_idx ON metabib.full_rec (value);
152 CREATE INDEX metabib_full_rec_record_idx ON metabib.full_rec (record);
153 CREATE TRIGGER metabib_full_rec_fti_trigger
154         BEFORE UPDATE OR INSERT ON metabib.full_rec
155         FOR EACH ROW EXECUTE PROCEDURE oils_tsearch2('default');
156
157 CREATE INDEX metabib_full_rec_index_vector_idx ON metabib.full_rec USING GIST (index_vector);
158
159
160 CREATE TABLE metabib.metarecord_source_map (
161         id              BIGSERIAL       PRIMARY KEY,
162         metarecord      BIGINT          NOT NULL,
163         source          BIGINT          NOT NULL
164 );
165 CREATE INDEX metabib_metarecord_source_map_metarecord_idx ON metabib.metarecord_source_map (metarecord);
166 CREATE INDEX metabib_metarecord_source_map_source_record_idx ON metabib.metarecord_source_map (source);
167
168
169 COMMIT;