]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/sql/Postgres/030.schema.metabib.sql
added tons more SQL level stuff... I am going to bed now
[working/Evergreen.git] / Open-ILS / src / sql / Postgres / 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            NOT NULL
11 );
12 CREATE INDEX metabib_metarecord_master_record_idx ON metabib.metarecord (master_record);
13
14 CREATE TABLE metabib.title_field_entry (
15         id              BIGSERIAL       PRIMARY KEY,
16         field           INT             NOT NULL,
17         value           TEXT            NOT NULL,
18         index_vector    tsvector        NOT NULL
19 );
20 CREATE TRIGGER metabib_title_field_entry_fti_trigger
21         BEFORE UPDATE OR INSERT ON metabib.title_field_entry
22         FOR EACH ROW EXECUTE PROCEDURE tsearch2(index_vector, value);
23
24
25 CREATE TABLE metabib.author_field_entry (
26         id              BIGSERIAL       PRIMARY KEY,
27         field           INT             NOT NULL,
28         value           TEXT            NOT NULL,
29         index_vector    tsvector        NOT NULL
30 );
31 CREATE TRIGGER metabib_author_field_entry_fti_trigger
32         BEFORE UPDATE OR INSERT ON metabib.author_field_entry
33         FOR EACH ROW EXECUTE PROCEDURE tsearch2(index_vector, value);
34
35
36 CREATE TABLE metabib.subject_field_entry (
37         id              BIGSERIAL       PRIMARY KEY,
38         field           INT             NOT NULL,
39         value           TEXT            NOT NULL,
40         index_vector    tsvector        NOT NULL
41 );
42 CREATE TRIGGER metabib_subject_field_entry_fti_trigger
43         BEFORE UPDATE OR INSERT ON metabib.subject_field_entry
44         FOR EACH ROW EXECUTE PROCEDURE tsearch2(index_vector, value);
45
46
47 CREATE TABLE metabib.keyword_field_entry (
48         id              BIGSERIAL       PRIMARY KEY,
49         field           INT             NOT NULL,
50         value           TEXT            NOT NULL,
51         index_vector    tsvector        NOT NULL
52 );
53 CREATE TRIGGER metabib_keyword_field_entry_fti_trigger
54         BEFORE UPDATE OR INSERT ON metabib.keyword_field_entry
55         FOR EACH ROW EXECUTE PROCEDURE tsearch2(index_vector, value);
56
57
58 CREATE TABLE metabib.full_rec (
59         id              BIGSERIAL       PRIMARY KEY,
60         record          BIGINT          NOT NULL,
61         tag             CHAR(3)         NOT NULL,
62         ind1            CHAR(1),
63         ind2            CHAR(1),
64         subfield        CHAR(1),
65         value           TEXT            NOT NULL,
66         index_vector    tsvector        NOT NULL
67 );
68 CREATE INDEX metabib_full_rec_record_idx ON metabib.full_rec (record);
69 CREATE TRIGGER metabib_full_rec_fti_trigger
70         BEFORE UPDATE OR INSERT ON metabib.full_rec
71         FOR EACH ROW EXECUTE PROCEDURE tsearch2(index_vector, value);
72
73 CREATE TABLE metabib.title_field_entry_source_map (
74         field_entry     BIGINT          NOT NULL,
75         source_record   BIGINT          NOT NULL
76 );
77 CREATE INDEX metabib_title_field_entry_source_map_source_record_idx ON metabib.title_field_entry_source_map (source_record);
78 CREATE INDEX metabib_title_field_entry_source_map_field_entry_idx ON metabib.title_field_entry_source_map (field_entry);
79
80 CREATE TABLE metabib.author_field_entry_source_map (
81         field_entry     BIGINT          NOT NULL,
82         source_record   BIGINT          NOT NULL
83 );
84 CREATE INDEX metabib_author_field_entry_source_map_source_record_idx ON metabib.author_field_entry_source_map (source_record);
85 CREATE INDEX metabib_author_field_entry_source_map_field_entry_idx ON metabib.author_field_entry_source_map (field_entry);
86
87 CREATE TABLE metabib.subject_field_entry_source_map (
88         field_entry     BIGINT          NOT NULL,
89         source_record   BIGINT          NOT NULL
90 );
91 CREATE INDEX metabib_subject_field_entry_source_map_source_record_idx ON metabib.subject_field_entry_source_map (source_record);
92 CREATE INDEX metabib_subject_field_entry_source_map_field_entry_idx ON metabib.subject_field_entry_source_map (field_entry);
93
94 CREATE TABLE metabib.keyword_field_entry_source_map (
95         field_entry     BIGINT          NOT NULL,
96         source_record   BIGINT          NOT NULL
97 );
98 CREATE INDEX metabib_keyword_field_entry_source_map_source_record_idx ON metabib.keyword_field_entry_source_map (source_record);
99 CREATE INDEX metabib_keyword_field_entry_source_map_field_entry_idx ON metabib.keyword_field_entry_source_map (field_entry);
100
101 CREATE TABLE metabib.metarecord_source_map (
102         metarecord      BIGINT          NOT NULL,
103         source_record   BIGINT          NOT NULL
104 );
105 CREATE INDEX metabib_metarecord_source_map_metarecord_idx ON metabib.metarecord_source_map (metarecord);
106 CREATE INDEX metabib_metarecord_source_map_source_record_idx ON metabib.metarecord_source_map (source_record);
107
108
109 COMMIT;