Revision 2422
Added by sgarg over 19 years ago
xmltables-postgres.sql | ||
---|---|---|
21 | 21 |
* along with this program; if not, write to the Free Software |
22 | 22 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
23 | 23 |
*/ |
24 |
|
|
24 |
|
|
25 | 25 |
/* |
26 |
* this is sql script does the same as the sql script named
|
|
27 |
* xmltables.sql except that this script is to be use to
|
|
26 |
* this is sql script does the same as the sql script named |
|
27 |
* xmltables.sql except that this script is to be use to |
|
28 | 28 |
* create the database tables on a Postgresql backend rather |
29 | 29 |
* than an Oracle Backend |
30 | 30 |
*/ |
... | ... | |
34 | 34 |
*/ |
35 | 35 |
CREATE SEQUENCE xml_replication_id_seq; |
36 | 36 |
CREATE TABLE xml_replication ( |
37 |
serverid INT8 default nextval('xml_replication_id_seq'),
|
|
37 |
serverid INT8 default nextval('xml_replication_id_seq'), |
|
38 | 38 |
server VARCHAR(512), |
39 | 39 |
last_checked DATE, |
40 | 40 |
replicate INT8, |
41 | 41 |
datareplicate INT8, |
42 | 42 |
hub INT8, |
43 | 43 |
CONSTRAINT xml_replication_pk PRIMARY KEY (serverid) |
44 |
);
|
|
44 |
); |
|
45 | 45 |
|
46 | 46 |
INSERT INTO xml_replication (server, replicate, datareplicate, hub) VALUES ('localhost', '0', '0', '0'); |
47 | 47 |
|
48 |
/*
|
|
48 |
/* |
|
49 | 49 |
* Nodes -- table to store XML Nodes (both elements and attributes) |
50 | 50 |
*/ |
51 | 51 |
CREATE SEQUENCE xml_nodes_id_seq; |
... | ... | |
57 | 57 |
-- ELEMENT, ATTRIBUTE, TEXT) |
58 | 58 |
nodename VARCHAR(250), -- the name of an element or attribute |
59 | 59 |
nodeprefix VARCHAR(50), -- the namespace prefix of the node |
60 |
nodedata VARCHAR(4000), -- the data for this node (e.g.,
|
|
60 |
nodedata VARCHAR(4000), -- the data for this node (e.g., |
|
61 | 61 |
-- for TEXT it is the content) |
62 | 62 |
parentnodeid INT8, -- index of the parent of this node |
63 | 63 |
rootnodeid INT8, -- index of the root node of this tree |
... | ... | |
67 | 67 |
nodedatanumerical FLOAT8, -- the data for this node if |
68 | 68 |
-- if it is a number |
69 | 69 |
CONSTRAINT xml_nodes_pk PRIMARY KEY (nodeid), |
70 |
CONSTRAINT xml_nodes_root_fk
|
|
70 |
CONSTRAINT xml_nodes_root_fk |
|
71 | 71 |
FOREIGN KEY (rootnodeid) REFERENCES xml_nodes, |
72 |
CONSTRAINT xml_nodes_parent_fk
|
|
72 |
CONSTRAINT xml_nodes_parent_fk |
|
73 | 73 |
FOREIGN KEY (parentnodeid) REFERENCES xml_nodes |
74 | 74 |
); |
75 |
/*
|
|
75 |
/* |
|
76 | 76 |
* Indexes of rootnodeid, parentnodeid, and nodename in xml_nodes |
77 | 77 |
*/ |
78 | 78 |
CREATE INDEX xml_nodes_idx1 ON xml_nodes (rootnodeid); |
79 | 79 |
CREATE INDEX xml_nodes_idx2 ON xml_nodes (parentnodeid); |
80 | 80 |
CREATE INDEX xml_nodes_idx3 ON xml_nodes (nodename); |
81 | 81 |
|
82 |
/*
|
|
82 |
/* |
|
83 | 83 |
* XML Catalog -- table to store all external sources for XML documents |
84 | 84 |
*/ |
85 | 85 |
CREATE SEQUENCE xml_catalog_id_seq; |
... | ... | |
93 | 93 |
public_id VARCHAR(500), -- the unique id for this type |
94 | 94 |
system_id VARCHAR(1000), -- the local location of the object |
95 | 95 |
CONSTRAINT xml_catalog_pk PRIMARY KEY (catalog_id), |
96 |
CONSTRAINT xml_catalog_uk UNIQUE
|
|
96 |
CONSTRAINT xml_catalog_uk UNIQUE |
|
97 | 97 |
(entry_type, source_doctype, target_doctype, public_id) |
98 | 98 |
); |
99 | 99 |
|
100 |
/*
|
|
100 |
/* |
|
101 | 101 |
* Sequence to get uniqueID for Accession # |
102 | 102 |
*/ |
103 | 103 |
CREATE SEQUENCE xml_documents_id_seq; |
104 |
/*
|
|
104 |
/* |
|
105 | 105 |
* Documents -- table to store XML documents |
106 | 106 |
*/ |
107 | 107 |
CREATE TABLE xml_documents ( |
... | ... | |
116 | 116 |
date_created DATE, |
117 | 117 |
date_updated DATE, |
118 | 118 |
public_access INT8, -- flag for public access |
119 |
catalog_id INT8, -- reference to xml_catalog
|
|
119 |
catalog_id INT8, -- reference to xml_catalog |
|
120 | 120 |
CONSTRAINT xml_documents_pk PRIMARY KEY (docid), |
121 | 121 |
CONSTRAINT xml_documents_rep_fk |
122 |
FOREIGN KEY (server_location) REFERENCES xml_replication,
|
|
123 |
CONSTRAINT xml_documents_root_fk
|
|
122 |
FOREIGN KEY (server_location) REFERENCES xml_replication, |
|
123 |
CONSTRAINT xml_documents_root_fk |
|
124 | 124 |
FOREIGN KEY (rootnodeid) REFERENCES xml_nodes, |
125 |
CONSTRAINT xml_documents_catalog_fk
|
|
125 |
CONSTRAINT xml_documents_catalog_fk |
|
126 | 126 |
FOREIGN KEY (catalog_id) REFERENCES xml_catalog |
127 | 127 |
); |
128 | 128 |
|
129 |
/*
|
|
129 |
/* |
|
130 | 130 |
* Index of <docid,doctype> in xml_document |
131 | 131 |
*/ |
132 | 132 |
CREATE INDEX xml_documents_idx1 ON xml_documents (docid, doctype); |
133 | 133 |
|
134 |
/*
|
|
134 |
/* |
|
135 | 135 |
* Revised Documents -- table to store XML documents saved after an UPDATE |
136 | 136 |
* or DELETE |
137 | 137 |
*/ |
... | ... | |
150 | 150 |
date_created DATE, |
151 | 151 |
date_updated DATE, |
152 | 152 |
public_access INT8, -- flag for public access |
153 |
catalog_id INT8, -- reference to xml_catalog
|
|
153 |
catalog_id INT8, -- reference to xml_catalog |
|
154 | 154 |
CONSTRAINT xml_revisions_pk PRIMARY KEY (revisionid), |
155 | 155 |
CONSTRAINT xml_revisions_rep_fk |
156 | 156 |
FOREIGN KEY (server_location) REFERENCES xml_replication, |
157 |
CONSTRAINT xml_revisions_root_fk
|
|
157 |
CONSTRAINT xml_revisions_root_fk |
|
158 | 158 |
FOREIGN KEY (rootnodeid) REFERENCES xml_nodes, |
159 |
CONSTRAINT xml_revisions_catalog_fk
|
|
159 |
CONSTRAINT xml_revisions_catalog_fk |
|
160 | 160 |
FOREIGN KEY (catalog_id) REFERENCES xml_catalog |
161 | 161 |
); |
162 | 162 |
|
163 | 163 |
|
164 |
/*
|
|
164 |
/* |
|
165 | 165 |
* ACL -- table to store ACL for XML documents by principals |
166 | 166 |
*/ |
167 | 167 |
CREATE TABLE xml_access ( |
... | ... | |
178 | 178 |
startnodeid INT8, |
179 | 179 |
endnodeid INT8, |
180 | 180 |
CONSTRAINT xml_access_ck CHECK (begin_time < end_time), |
181 |
CONSTRAINT xml_access_accessfileid_fk
|
|
181 |
CONSTRAINT xml_access_accessfileid_fk |
|
182 | 182 |
FOREIGN KEY (accessfileid) REFERENCES xml_documents |
183 | 183 |
); |
184 | 184 |
|
185 |
/*
|
|
186 |
* Index of Nodes -- table to store precomputed paths through tree for
|
|
185 |
/* |
|
186 |
* Index of Nodes -- table to store precomputed paths through tree for |
|
187 | 187 |
* quick searching in structured searches |
188 | 188 |
*/ |
189 | 189 |
CREATE TABLE xml_index ( |
... | ... | |
193 | 193 |
doctype VARCHAR(100), -- public id indicating document type |
194 | 194 |
parentnodeid INT8, -- id of the parent of the node represented |
195 | 195 |
-- by this row |
196 |
nodedata VARCHAR (4000),-- for storing data for a given path
|
|
196 |
nodedata VARCHAR (4000),-- for storing data for a given path |
|
197 | 197 |
CONSTRAINT xml_index_pk PRIMARY KEY (nodeid,path), |
198 | 198 |
CONSTRAINT xml_index_nodeid_fk FOREIGN KEY (nodeid) REFERENCES xml_nodes, |
199 |
CONSTRAINT xml_index_docid_fk
|
|
199 |
CONSTRAINT xml_index_docid_fk |
|
200 | 200 |
FOREIGN KEY (docid) REFERENCES xml_documents |
201 | 201 |
); |
202 | 202 |
|
203 |
/*
|
|
204 |
* Index of the paths in xml_index
|
|
203 |
/* |
|
204 |
* Index of the paths in xml_index |
|
205 | 205 |
*/ |
206 | 206 |
CREATE INDEX xml_index_idx1 ON xml_index (path); |
207 | 207 |
CREATE INDEX xml_index_idx2 ON xml_index (docid); |
... | ... | |
219 | 219 |
object VARCHAR(512) NOT NULL, -- the object of the relation |
220 | 220 |
objdoctype VARCHAR(128), -- the doctype of the object |
221 | 221 |
CONSTRAINT xml_relation_uk UNIQUE (docid, subject, relationship, object), |
222 |
CONSTRAINT xml_relation_docid_fk
|
|
222 |
CONSTRAINT xml_relation_docid_fk |
|
223 | 223 |
FOREIGN KEY (docid) REFERENCES xml_documents |
224 | 224 |
); |
225 | 225 |
|
226 |
/*
|
|
226 |
/* |
|
227 | 227 |
* Table used as Unique ID generator for the uniqueid part of Accession# |
228 | 228 |
*/ |
229 | 229 |
CREATE SEQUENCE accession_number_id_seq; |
... | ... | |
233 | 233 |
date_created DATE |
234 | 234 |
); |
235 | 235 |
|
236 |
/*
|
|
237 |
* accesssubtree -- table to store access subtree info
|
|
236 |
/* |
|
237 |
* accesssubtree -- table to store access subtree info |
|
238 | 238 |
*/ |
239 | 239 |
CREATE TABLE xml_accesssubtree ( |
240 | 240 |
docid VARCHAR(250), -- the document id # |
241 | 241 |
rev INT8 default 1, --the revision number of the docume |
242 | 242 |
controllevel VARCHAR(50), -- the level it control -- document or subtree |
243 |
subtreeid VARCHAR(250), -- the subtree id
|
|
243 |
subtreeid VARCHAR(250), -- the subtree id |
|
244 | 244 |
startnodeid INT8, -- the start node id of access subtree |
245 | 245 |
endnodeid INT8, -- the end node if of access subtree |
246 |
CONSTRAINT xml_accesssubtree_docid_fk
|
|
246 |
CONSTRAINT xml_accesssubtree_docid_fk |
|
247 | 247 |
FOREIGN KEY (docid) REFERENCES xml_documents |
248 | 248 |
); |
249 | 249 |
|
250 | 250 |
/* |
251 |
* Returnfields -- table to store combinations of returnfields requested |
|
252 |
* and the number of times this table is accessed |
|
253 |
*/ |
|
254 |
CREATE TABLE xml_returnfield ( |
|
255 |
returnfield_id INT8 default nextval('xml_returnfield_id_seq'), -- the id for this returnfield entry |
|
256 |
returnfield_string VARCHAR(2000), -- the returnfield string |
|
257 |
usage_count INT8, -- the number of times this string has been requested |
|
258 |
CONSTRAINT xml_returnfield_pk PRIMARY KEY (returnfield_id) |
|
259 |
); |
|
260 |
CREATE INDEX xml_returnfield_idx1 ON xml_returnfield(returnfield_string); |
|
261 |
|
|
262 |
CREATE SEQUENCE xml_returnfield_id_seq; |
|
263 |
|
|
264 |
/* |
|
265 |
* Queryresults -- table to store queryresults for a given docid |
|
266 |
* and returnfield_id |
|
267 |
*/ |
|
268 |
CREATE TABLE xml_queryresult( |
|
269 |
queryresult_id INT8 default nextval('xml_queryresult_id_seq'), -- id for this entry |
|
270 |
returnfield_id INT8, -- id for the returnfield corresponding to this entry |
|
271 |
docid VARCHAR(250), -- docid of the document |
|
272 |
queryresult_string VARCHAR(4000), -- resultant text generated for this docid and given |
|
273 |
-- returnfield |
|
274 |
CONSTRAINT xml_queryresult_pk PRIMARY KEY (queryresult_id), |
|
275 |
CONSTRAINT xml_queryresult_searchid_fk |
|
276 |
FOREIGN KEY (returnfield_id) REFERENCES xml_returnfield |
|
277 |
); |
|
278 |
|
|
279 |
CREATE INDEX xml_queryresult_idx1 ON xml_queryresult (returnfield_id, docid); |
|
280 |
|
|
281 |
CREATE SEQUENCE xml_queryresult_id_seq; |
|
282 |
|
|
283 |
/* |
|
251 | 284 |
* Logging -- table to store metadata and data access log |
252 | 285 |
*/ |
253 | 286 |
CREATE SEQUENCE access_log_id_seq; |
... | ... | |
261 | 294 |
CONSTRAINT access_log_pk PRIMARY KEY (entryid) |
262 | 295 |
); |
263 | 296 |
|
264 |
/*
|
|
297 |
/* |
|
265 | 298 |
* harvest_site_schedule -- table to store harvest sites and schedule info |
266 | 299 |
*/ |
267 | 300 |
CREATE TABLE harvest_site_schedule ( |
... | ... | |
277 | 310 |
CONSTRAINT harvest_site_schedule_pk PRIMARY KEY (site_schedule_id) |
278 | 311 |
); |
279 | 312 |
|
280 |
/*
|
|
313 |
/* |
|
281 | 314 |
* harvest_log -- table to log entries for harvest operations |
282 | 315 |
*/ |
283 | 316 |
CREATE TABLE harvest_log ( |
... | ... | |
290 | 323 |
CONSTRAINT harvest_log_pk PRIMARY KEY (harvest_log_id) |
291 | 324 |
); |
292 | 325 |
|
293 |
/*
|
|
326 |
/* |
|
294 | 327 |
* harvest_detail_log -- table to log detailed info about documents that |
295 | 328 |
* generated errors during the harvest |
296 | 329 |
*/ |
... | ... | |
304 | 337 |
error_message VARCHAR(1000), -- text error message |
305 | 338 |
document_type VARCHAR(100), -- document type |
306 | 339 |
CONSTRAINT harvest_detail_log_pk PRIMARY KEY (detail_log_id), |
307 |
CONSTRAINT harvest_detail_log_fk
|
|
340 |
CONSTRAINT harvest_detail_log_fk |
|
308 | 341 |
FOREIGN KEY (harvest_log_id) REFERENCES harvest_log |
309 | 342 |
); |
310 | 343 |
|
Also available in: Unified diff
Made changes in the sql scripts to create new tables xml_returnfield and xml_queryresult