Project

General

Profile

metacat / src / upgrade-db-to-1.3-postgres.sql @ 6570

1
/*
2
 * reviseformetacat13_postgres.sql -- Add three columns to xml_access tables
3
 * and create a new table in Production Metacat
4
 *
5
 *      Created: 07/14/2002
6
 *       Author: Jing Tao
7
 * Organization: National Center for Ecological Analysis and Synthesis
8
 *    Copyright: 2000 Regents of the University of California and the
9
 *               National Center for Ecological Analysis and Synthesis
10
 *  For Details: http://www.nceas.ucsb.edu/
11
 *    File Info: '$Id: upgrade-db-to-1.3-postgres.sql 4080 2008-07-07 04:25:34Z daigle $'
12
 *
13
 */
14

    
15

    
16
/*
17
 * Add tow columns - datareplicate and hub to xml_access
18
 */
19
ALTER TABLE xml_access ADD subtreeid VARCHAR(32);
20
ALTER TABLE xml_access ADD startnodeid INT8;
21
ALTER TABLE xml_access ADD endnodeid INT8;
22

    
23
/*
24
 * accesssubtree -- table to store access subtree info
25
 */
26

    
27
CREATE TABLE xml_accesssubtree (
28
        docid                VARCHAR(250),        -- the document id #
29
  rev                 INT8 default 1, --the revision number of the docume
30
  controllevel VARCHAR(50), -- the level it control -- document or subtree
31
  subtreeid VARCHAR(250), -- the subtree id 
32
        startnodeid        INT8,        -- the start node id of access subtree
33
  endnodeid INT8, -- the end node if of access subtree
34
  CONSTRAINT xml_accesssubtree_docid_fk 
35
                FOREIGN KEY (docid) REFERENCES xml_documents
36
);
37

    
38
/*
39
 * We need to drop constraint(subject, relationship, object) and create new
40
 * new (docid, subject, relationship, object). Unfortunately, progres doesn't
41
 * remove the constrain directly and we should create a new one and copy the
42
 * old data to new one, then rename them.
43
 */
44
ALTER TABLE xml_relation RENAME TO old_xml_relation;
45
DROP INDEX xml_relation_pkey;
46
/*DROP SEQUENCE xml_relation_id_seq;
47
*CREATE SEQUENCE xml_relation_id_seq;
48
*/
49
CREATE TABLE xml_relation (
50
        relationid INT8 default nextval('xml_relation_id_seq') PRIMARY KEY,
51
                                             -- unique id
52
        docid VARCHAR(250) ,         -- the docid of the package file
53
                                             -- that this relation came from
54
        packagetype VARCHAR(250),          -- the type of the package
55
        subject VARCHAR(512) NOT NULL, -- the subject of the relation
56
        subdoctype VARCHAR(128),                -- the doctype of the subject
57
        relationship VARCHAR(128)  NOT NULL,-- the relationship type
58
        object VARCHAR(512) NOT NULL, -- the object of the relation
59
        objdoctype VARCHAR(128),          -- the doctype of the object
60
        CONSTRAINT xml_relation_uk1 UNIQUE (docid, subject, relationship, object),
61
        CONSTRAINT xml_relation_docid_fk1
62
                FOREIGN KEY (docid) REFERENCES xml_documents
63
);
64
INSERT INTO xml_relation SELECT * FROM old_xml_relation;
65

    
66