3 DROP SCHEMA serial CASCADE;
9 CREATE TABLE serial.record_entry (
10 id BIGSERIAL PRIMARY KEY,
11 record BIGINT REFERENCES biblio.record_entry (id) ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED,
12 owning_lib INT NOT NULL DEFAULT 1 REFERENCES actor.org_unit (id) ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED,
13 creator INT NOT NULL DEFAULT 1,
14 editor INT NOT NULL DEFAULT 1,
16 create_date TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
17 edit_date TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
18 active BOOL NOT NULL DEFAULT TRUE,
19 deleted BOOL NOT NULL DEFAULT FALSE,
21 last_xact_id TEXT NOT NULL
23 CREATE INDEX serial_record_entry_creator_idx ON serial.record_entry ( creator );
24 CREATE INDEX serial_record_entry_editor_idx ON serial.record_entry ( editor );
25 CREATE INDEX serial_record_entry_owning_lib_idx ON serial.record_entry ( owning_lib, deleted );
27 CREATE TABLE serial.full_rec (
28 id BIGSERIAL PRIMARY KEY,
29 record BIGINT NOT NULL REFERENCES serial.record_entry(id) DEFERRABLE INITIALLY DEFERRED,
35 index_vector tsvector NOT NULL
37 CREATE INDEX serial_full_rec_record_idx ON serial.full_rec (record);
38 CREATE INDEX serial_full_rec_tag_part_idx ON serial.full_rec (SUBSTRING(tag FROM 2));
39 CREATE TRIGGER serial_full_rec_fti_trigger
40 BEFORE UPDATE OR INSERT ON serial.full_rec
41 FOR EACH ROW EXECUTE PROCEDURE tsearch2(index_vector, value);
43 CREATE INDEX serial_full_rec_index_vector_idx ON serial.full_rec USING GIST (index_vector);
44 /* Enable LIKE to use an index for database clusters with locales other than C or POSIX */
45 CREATE INDEX serial_full_rec_value_tpo_index ON serial.full_rec (value text_pattern_ops);
47 CREATE TABLE serial.subscription (
48 id SERIAL PRIMARY KEY,
49 callnumber BIGINT REFERENCES asset.call_number (id) ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED,
50 uri INT REFERENCES asset.uri (id) ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED,
51 start_date DATE NOT NULL,
52 end_date DATE -- interpret NULL as current subscription
55 CREATE TABLE serial.binding_unit (
56 id SERIAL PRIMARY KEY,
57 subscription INT NOT NULL REFERENCES serial.subscription (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
59 CONSTRAINT bu_label_once_per_sub UNIQUE (subscription, label)
62 CREATE TABLE serial.issuance (
63 id SERIAL PRIMARY KEY,
64 subscription INT NOT NULL REFERENCES serial.subscription (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
65 target_copy BIGINT REFERENCES asset.copy (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
66 location BIGINT REFERENCES asset.copy_location(id) DEFERRABLE INITIALLY DEFERRED,
67 binding_unit INT REFERENCES serial.binding_unit (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
71 CREATE TABLE serial.bib_summary (
72 id SERIAL PRIMARY KEY,
73 subscription INT UNIQUE NOT NULL REFERENCES serial.subscription (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
74 generated_coverage TEXT NOT NULL,
78 CREATE TABLE serial.sup_summary (
79 id SERIAL PRIMARY KEY,
80 subscription INT UNIQUE NOT NULL REFERENCES serial.subscription (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
81 generated_coverage TEXT NOT NULL,
85 CREATE TABLE serial.index_summary (
86 id SERIAL PRIMARY KEY,
87 subscription INT UNIQUE NOT NULL REFERENCES serial.subscription (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
88 generated_coverage TEXT NOT NULL,