1 DROP SCHEMA biblio CASCADE;
6 CREATE SEQUENCE biblio.autogen_tcn_value_seq;
7 CREATE FUNCTION biblio.next_autogen_tcn_value () RETURNS TEXT AS $$
8 BEGIN RETURN nextval('biblio.autogen_tcn_value_seq'::TEXT); END;
11 CREATE TABLE biblio.record_entry (
12 id BIGSERIAL PRIMARY KEY,
13 creator INT NOT NULL DEFAULT 1,
14 editor INT NOT NULL DEFAULT 1,
17 create_date TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
18 edit_date TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
19 active BOOL NOT NULL DEFAULT TRUE,
20 deleted BOOL NOT NULL DEFAULT FALSE,
22 tcn_source TEXT NOT NULL DEFAULT 'AUTOGEN',
23 tcn_value TEXT NOT NULL DEFAULT biblio.next_autogen_tcn_value(),
25 last_xact_id TEXT NOT NULL
27 CREATE INDEX biblio_record_entry_creator_idx ON biblio.record_entry ( creator );
28 CREATE INDEX biblio_record_entry_editor_idx ON biblio.record_entry ( editor );
29 CREATE INDEX biblio_record_entry_fp_idx ON biblio.record_entry ( fingerprint );
30 CREATE UNIQUE INDEX biblio_record_unique_tcn ON biblio.record_entry (tcn_value) WHERE deleted IS FALSE;
32 CREATE RULE protect_bib_rec_delete AS ON DELETE TO biblio.record_entry DO INSTEAD UPDATE biblio.record_entry SET deleted = TRUE WHERE OLD.id = biblio.record_entry.id;
35 CREATE TABLE biblio.record_note (
36 id BIGSERIAL PRIMARY KEY,
37 record BIGINT NOT NULL,
39 creator INT NOT NULL DEFAULT 1,
40 editor INT NOT NULL DEFAULT 1,
41 pub BOOL NOT NULL DEFAULT FALSE,
42 create_date TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
43 edit_date TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now()
45 CREATE INDEX biblio_record_note_record_idx ON biblio.record_note ( record );
46 CREATE INDEX biblio_record_note_creator_idx ON biblio.record_note ( creator );
47 CREATE INDEX biblio_record_note_editor_idx ON biblio.record_note ( editor );