]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/sql/Postgres/010.schema.biblio.sql
updating SQL to have audit xact ids
[Evergreen.git] / Open-ILS / src / sql / Postgres / 010.schema.biblio.sql
1 DROP SCHEMA biblio CASCADE;
2
3 BEGIN;
4 CREATE SCHEMA biblio;
5
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;
9 $$ LANGUAGE PLPGSQL;
10
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,
21         source          INT,
22         last_xact_id    TEXT            NOT NULL DEFAULT 'none',
23         CONSTRAINT unique_tcn UNIQUE (tcn_source,tcn_value)
24 );
25
26 CREATE TABLE biblio.record_data (
27         id              BIGSERIAL       PRIMARY KEY,
28         owner_doc       BIGINT          NOT NULL,
29         intra_doc_id    INT             NOT NULL,
30         parent_node     INT,
31         node_type       INT             NOT NULL,
32         namespace_uri   TEXT,
33         name            TEXT,
34         value           TEXT,
35         last_xact_id    TEXT            NOT NULL DEFAULT 'none',
36         CONSTRAINT unique_doc_and_id UNIQUE (owner_doc,intra_doc_id)
37 );
38
39 CREATE TABLE biblio.record_note (
40         id              BIGSERIAL       PRIMARY KEY,
41         record          BIGINT          NOT NULL,
42         value           TEXT            NOT NULL,
43         creator         INT             NOT NULL DEFAULT 1,
44         editor          INT             NOT NULL DEFAULT 1,
45         create_date     TIMESTAMP       NOT NULL DEFAULT now(),
46         edit_date       TIMESTAMP       NOT NULL DEFAULT now()
47 );
48
49 COMMIT;