1 CREATE TABLE IF NOT EXISTS RELATION_TYPE
3 RELATION_TYPE TEXT NOT NULL,
7 CREATE TABLE IF NOT EXISTS DATASPACE
11 CONSTRAINT "UQ_NAME" UNIQUE (NAME)
14 CREATE TABLE IF NOT EXISTS SCHEMA_NODE
16 SCHEMA_NODE_IDENTIFIER TEXT NOT NULL,
20 CREATE TABLE IF NOT EXISTS MODULE
22 NAMESPACE TEXT NOT NULL,
23 REVISION TEXT NOT NULL,
24 MODULE_CONTENT TEXT NOT NULL,
25 DATASPACE_ID BIGINT NOT NULL,
26 ID SERIAL PRIMARY KEY,
27 UNIQUE (DATASPACE_ID, NAMESPACE, REVISION),
28 CONSTRAINT module_dataspace FOREIGN KEY (DATASPACE_ID) REFERENCES DATASPACE (id) ON UPDATE CASCADE ON DELETE CASCADE
31 CREATE TABLE IF NOT EXISTS FRAGMENT
33 ID BIGSERIAL PRIMARY KEY,
35 DATASPACE_ID INTEGER NOT NULL REFERENCES DATASPACE(ID),
37 ANCHOR_ID BIGINT REFERENCES FRAGMENT(ID),
38 PARENT_ID BIGINT REFERENCES FRAGMENT(ID),
39 MODULE_ID INTEGER REFERENCES MODULE(ID),
40 SCHEMA_NODE_ID INTEGER REFERENCES SCHEMA_NODE(ID)
43 CREATE TABLE IF NOT EXISTS RELATION
45 FROM_FRAGMENT_ID BIGINT NOT NULL REFERENCES FRAGMENT(ID),
46 TO_FRAGMENT_ID BIGINT NOT NULL REFERENCES FRAGMENT(ID),
47 RELATION_TYPE_ID INTEGER NOT NULL REFERENCES RELATION_TYPE(ID),
48 FROM_REL_XPATH TEXT NOT NULL,
49 TO_REL_XPATH TEXT NOT NULL,
50 CONSTRAINT RELATION_PKEY PRIMARY KEY (TO_FRAGMENT_ID, FROM_FRAGMENT_ID, RELATION_TYPE_ID)
54 CREATE INDEX IF NOT EXISTS "FKI_FRAGMENT_DATASPACE_ID_FK" ON FRAGMENT USING BTREE(DATASPACE_ID) ;
55 CREATE INDEX IF NOT EXISTS "FKI_FRAGMENT_MODULE_ID_FK" ON FRAGMENT USING BTREE(MODULE_ID) ;
56 CREATE INDEX IF NOT EXISTS "FKI_FRAGMENT_PARENT_ID_FK" ON FRAGMENT USING BTREE(PARENT_ID) ;
57 CREATE INDEX IF NOT EXISTS "FKI_FRAGMENT_ANCHOR_ID_FK" ON FRAGMENT USING BTREE(ANCHOR_ID) ;
58 CREATE INDEX IF NOT EXISTS "PERF_SCHEMA_NODE_SCHEMA_NODE_ID" ON SCHEMA_NODE USING BTREE(SCHEMA_NODE_IDENTIFIER) ;
59 CREATE INDEX IF NOT EXISTS "FKI_SCHEMA_NODE_ID_TO_ID" ON FRAGMENT USING BTREE(SCHEMA_NODE_ID) ;
60 CREATE INDEX IF NOT EXISTS "FKI_RELATION_TYPE_ID_FK" ON RELATION USING BTREE(RELATION_TYPE_ID);
61 CREATE INDEX IF NOT EXISTS "FKI_RELATIONS_FROM_ID_FK" ON RELATION USING BTREE(FROM_FRAGMENT_ID);
62 CREATE INDEX IF NOT EXISTS "FKI_RELATIONS_TO_ID_FK" ON RELATION USING BTREE(TO_FRAGMENT_ID);
63 CREATE INDEX IF NOT EXISTS "PERF_MODULE_MODULE_CONTENT" ON MODULE USING BTREE(MODULE_CONTENT);
64 CREATE UNIQUE INDEX IF NOT EXISTS "UQ_FRAGMENT_XPATH"ON FRAGMENT USING btree(xpath COLLATE pg_catalog."default" text_pattern_ops, dataspace_id);