Project

General

Profile

« Previous | Next » 

Revision 2422

Added by sgarg over 19 years ago

Made changes in the sql scripts to create new tables xml_returnfield and xml_queryresult

View differences:

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