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 tcn_source TEXT NOT NULL DEFAULT 'AUTOGEN',
14 tcn_value TEXT NOT NULL DEFAULT biblio.next_autogen_tcn_value(),
15 creator INT NOT NULL DEFAULT 1,
16 editor INT NOT NULL DEFAULT 1,
17 create_date TIMESTAMP NOT NULL DEFAULT now(),
18 edit_date TIMESTAMP NOT NULL DEFAULT now(),
19 active BOOL NOT NULL DEFAULT TRUE,
20 deleted BOOL NOT NULL DEFAULT FALSE,
22 last_xact_id TEXT NOT NULL DEFAULT 'none'
24 CREATE INDEX biblio_record_entry_creator_idx ON biblio.record_note ( creator );
25 CREATE INDEX biblio_record_entry_editor_idx ON biblio.record_note ( editor );
26 CREATE UNIQUE INDEX biblio_record_unique_tcn ON (tcn_source,tcn_value) WHERE deleted IS FALSE;
28 CREATE TABLE biblio.record_mods (
29 id BIGINT PRIMARY KEY,
33 CREATE TABLE biblio.record_data (
34 id BIGSERIAL PRIMARY KEY,
35 owner_doc BIGINT NOT NULL,
36 intra_doc_id INT NOT NULL,
38 node_type INT NOT NULL,
42 last_xact_id TEXT NOT NULL DEFAULT 'none',
43 CONSTRAINT unique_doc_and_id UNIQUE (owner_doc,intra_doc_id)
46 CREATE TABLE biblio.record_note (
47 id BIGSERIAL PRIMARY KEY,
48 record BIGINT NOT NULL,
50 creator INT NOT NULL DEFAULT 1,
51 editor INT NOT NULL DEFAULT 1,
52 create_date TIMESTAMP NOT NULL DEFAULT now(),
53 edit_date TIMESTAMP NOT NULL DEFAULT now()
55 CREATE INDEX biblio_record_note_record_idx ON biblio.record_note ( record );
56 CREATE INDEX biblio_record_note_creator_idx ON biblio.record_note ( creator );
57 CREATE INDEX biblio_record_note_editor_idx ON biblio.record_note ( editor );