fixe the label
[gargantext.git] / devops / postgres / schema.sql
index 1b85b61209b12fda1469b24b6c5a41681a4e4d4b..12ff0063a81583b1c8c41a47b3ad56feaedeee37 100644 (file)
@@ -1,7 +1,10 @@
 CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
-CREATE EXTENSION IF NOT EXISTS tsm_system_rows;
 COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
 
+CREATE EXTENSION IF NOT EXISTS tsm_system_rows;
+CREATE EXTENSION pgcrypto;
+
+-----------------------------------------------------------------
 CREATE TABLE public.auth_user (
     id SERIAL,
     password     CHARACTER varying(128) NOT NULL,
@@ -23,6 +26,7 @@ ALTER TABLE public.auth_user OWNER TO gargantua;
 -- TODO typename -> type_id
 CREATE TABLE public.nodes (
     id        SERIAL,
+    hash_id   CHARACTER varying(66) DEFAULT ''::character varying NOT NULL,
     typename  INTEGER NOT NULL,
     user_id   INTEGER NOT NULL,
     parent_id INTEGER REFERENCES public.nodes(id) ON DELETE CASCADE ,
@@ -92,10 +96,11 @@ CREATE TABLE public.nodes_nodes (
     node2_id INTEGER NOT NULL REFERENCES public.nodes(id) ON DELETE CASCADE,
     score REAL,
     category INTEGER,
-    PRIMARY KEY (node1_id,node2_id)
+    PRIMARY KEY (node1_id, node2_id)
 );
 ALTER TABLE public.nodes_nodes OWNER TO gargantua;
 
+
 ---------------------------------------------------------------
 CREATE TABLE public.node_node_ngrams (
 node1_id   INTEGER NOT NULL REFERENCES public.nodes  (id) ON DELETE CASCADE,
@@ -107,9 +112,8 @@ PRIMARY KEY (node1_id, node2_id, ngrams_id, ngrams_type)
 );
 ALTER TABLE public.node_node_ngrams OWNER TO gargantua;
 
-
 CREATE TABLE public.node_node_ngrams2 (
-node_id   INTEGER NOT NULL REFERENCES public.nodes  (id) ON DELETE CASCADE,
+node_id         INTEGER NOT NULL REFERENCES public.nodes  (id) ON DELETE CASCADE,
 nodengrams_id   INTEGER NOT NULL REFERENCES public.node_ngrams  (id) ON DELETE CASCADE,
 weight double precision,
 PRIMARY KEY (node_id, nodengrams_id)
@@ -138,9 +142,9 @@ CREATE TABLE public.rights (
 );
 ALTER TABLE public.rights OWNER TO gargantua;
 
+------------------------------------------------------------
 ------------------------------------------------------------
 -- INDEXES
-
 CREATE INDEX        ON public.auth_user USING btree (username varchar_pattern_ops);
 CREATE UNIQUE INDEX ON public.auth_user USING btree (username);
 
@@ -148,10 +152,13 @@ CREATE INDEX        ON public.rights USING btree (user_id,node_id);
 
 CREATE INDEX        ON public.nodes USING gin (hyperdata);
 CREATE INDEX        ON public.nodes USING btree (user_id, typename, parent_id);
+CREATE INDEX        ON public.nodes USING btree (id, typename, date ASC);
+CREATE INDEX        ON public.nodes USING btree (id, typename, date DESC);
 CREATE INDEX        ON public.nodes USING btree (typename, id);
-CREATE UNIQUE INDEX ON public.nodes USING btree (((hyperdata ->> 'uniqId'::text)));
-CREATE UNIQUE INDEX ON public.nodes USING btree (((hyperdata ->> 'uniqIdBdd'::text)));
-CREATE UNIQUE INDEX ON public.nodes USING btree (typename, parent_id, ((hyperdata ->> 'uniqId'::text)));
+CREATE UNIQUE INDEX ON public.nodes USING btree (hash_id);
+-- CREATE UNIQUE INDEX ON public.nodes USING btree (((hyperdata ->> 'uniqId'::text)));
+-- CREATE UNIQUE INDEX ON public.nodes USING btree (((hyperdata ->> 'uniqIdBdd'::text)));
+-- CREATE UNIQUE INDEX ON public.nodes USING btree (typename, parent_id, ((hyperdata ->> 'uniqId'::text)));
 
 CREATE UNIQUE INDEX ON public.ngrams (terms); -- TEST GIN
 CREATE        INDEX ON public.ngrams USING btree (id, terms);
@@ -164,9 +171,14 @@ CREATE INDEX        ON public.nodes_nodes  USING btree (node1_id, node2_id, cate
 CREATE UNIQUE INDEX ON public.node_node_ngrams USING btree (node1_id, node2_id, ngrams_id, ngrams_type);
 CREATE        INDEX ON public.node_node_ngrams USING btree (node1_id,  node2_id);
 CREATE        INDEX ON public.node_node_ngrams USING btree (ngrams_id, node2_id);
-
+CREATE        INDEX ON public.node_node_ngrams USING btree (ngrams_type);
 CREATE INDEX ON public.node_nodengrams_nodengrams USING btree (node_id, node_ngrams1_id, node_ngrams2_id);
+CREATE INDEX ON public.node_nodengrams_nodengrams USING btree (node_ngrams1_id);
+CREATE INDEX ON public.node_nodengrams_nodengrams USING btree (node_ngrams2_id);
+CREATE INDEX ON public.node_node_ngrams2 USING btree (node_id);
+CREATE INDEX ON public.node_node_ngrams2 USING btree (nodengrams_id);
 CREATE INDEX ON public.node_node_ngrams2 USING btree (node_id, nodengrams_id);
+------------------------------------------------------------
 ------------------------------------------------------------------------
 -- Ngrams Full DB Extraction Optim
 -- TODO remove hard parameter and move elsewhere