IS: Correct REST base Url
[cps.git] / cps / cps-ri / src / main / resources / schema.sql
1 CREATE TABLE IF NOT EXISTS RELATION_TYPE\r
2 (\r
3     RELATION_TYPE TEXT NOT NULL,\r
4     ID SERIAL PRIMARY KEY\r
5 );\r
6 \r
7 CREATE TABLE IF NOT EXISTS DATASPACE\r
8 (\r
9     ID SERIAL PRIMARY KEY,\r
10     NAME TEXT NOT NULL,\r
11     CONSTRAINT "UQ_NAME" UNIQUE (NAME)\r
12 );\r
13 \r
14 CREATE TABLE IF NOT EXISTS SCHEMA_NODE\r
15 (\r
16     SCHEMA_NODE_IDENTIFIER TEXT NOT NULL,\r
17     ID SERIAL PRIMARY KEY\r
18 );\r
19 \r
20 CREATE TABLE IF NOT EXISTS MODULE_SET\r
21 (\r
22     MODULE_SET_REFERENCE TEXT NOT NULL,\r
23     ID SERIAL PRIMARY KEY\r
24 );\r
25 \r
26 CREATE TABLE IF NOT EXISTS FRAGMENT\r
27 (\r
28     ID BIGSERIAL PRIMARY KEY,\r
29     XPATH TEXT NOT NULL,\r
30     DATASPACE_ID INTEGER NOT NULL REFERENCES DATASPACE(ID),\r
31     ATTRIBUTES JSONB,\r
32     ANCHOR_ID BIGINT REFERENCES FRAGMENT(ID),\r
33     PARENT_ID BIGINT REFERENCES FRAGMENT(ID),\r
34     MODULE_SET_ID INTEGER REFERENCES MODULE_SET(ID),\r
35     SCHEMA_NODE_ID INTEGER REFERENCES SCHEMA_NODE(ID)\r
36 );\r
37 \r
38 CREATE TABLE IF NOT EXISTS RELATION\r
39 (\r
40     FROM_FRAGMENT_ID BIGINT NOT NULL REFERENCES FRAGMENT(ID),\r
41     TO_FRAGMENT_ID   BIGINT NOT NULL REFERENCES FRAGMENT(ID),\r
42     RELATION_TYPE_ID  INTEGER NOT NULL REFERENCES RELATION_TYPE(ID),\r
43     FROM_REL_XPATH TEXT NOT NULL,\r
44     TO_REL_XPATH TEXT NOT NULL,\r
45     CONSTRAINT RELATION_PKEY PRIMARY KEY (TO_FRAGMENT_ID, FROM_FRAGMENT_ID, RELATION_TYPE_ID)\r
46 );\r
47 \r
48 CREATE INDEX  IF NOT EXISTS "FKI_FRAGMENT_DATASPACE_ID_FK"     ON FRAGMENT USING BTREE(DATASPACE_ID) ;\r
49 CREATE INDEX  IF NOT EXISTS "FKI_FRAGMENT_MODULE_SET_ID_FK"    ON FRAGMENT USING BTREE(MODULE_SET_ID) ;\r
50 CREATE INDEX  IF NOT EXISTS "FKI_FRAGMENT_PARENT_ID_FK"        ON FRAGMENT USING BTREE(PARENT_ID) ;\r
51 CREATE INDEX  IF NOT EXISTS "FKI_FRAGMENT_ANCHOR_ID_FK"        ON FRAGMENT USING BTREE(ANCHOR_ID) ;\r
52 CREATE INDEX  IF NOT EXISTS "PERF_SCHEMA_NODE_SCHEMA_NODE_ID"  ON SCHEMA_NODE USING BTREE(SCHEMA_NODE_IDENTIFIER) ;\r
53 CREATE INDEX  IF NOT EXISTS "FKI_SCHEMA_NODE_ID_TO_ID"         ON FRAGMENT USING BTREE(SCHEMA_NODE_ID) ;\r
54 CREATE INDEX  IF NOT EXISTS "FKI_RELATION_TYPE_ID_FK"          ON RELATION USING BTREE(RELATION_TYPE_ID);\r
55 CREATE INDEX  IF NOT EXISTS "FKI_RELATIONS_FROM_ID_FK"         ON RELATION USING BTREE(FROM_FRAGMENT_ID);\r
56 CREATE INDEX  IF NOT EXISTS "FKI_RELATIONS_TO_ID_FK"           ON RELATION USING BTREE(TO_FRAGMENT_ID);\r
57 CREATE INDEX  IF NOT EXISTS "PERF_MODULE_SET_MODULE_SET_REFERENCE" ON MODULE_SET USING BTREE(MODULE_SET_REFERENCE) ;\r
58 CREATE UNIQUE INDEX  IF NOT EXISTS "UQ_FRAGMENT_XPATH"ON FRAGMENT USING btree(xpath COLLATE pg_catalog."default" text_pattern_ops, dataspace_id);