Commit 8ece5eac authored by Alexandre Delanoë's avatar Alexandre Delanoë

[DB] Trigger for sha256sum (WIP)

parent d03e0973
Pipeline #1037 failed with stage
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,
......@@ -191,19 +194,4 @@ create index node_by_pos on nodes using btree(node_pos(id,typename));
-- Trigger to update hash of nodes
CREATE EXTENSION pgcrypto;
CREATE OR REPLACE FUNCTION hash_update_nodes()
RETURNS trigger AS $$
BEGIN
IF tg_op = 'INSERT' OR tg_op = 'UPDATE' THEN
IF NEW.hash_id = ''
THEN NEW.hash_id = digest(CONCAT(NEW.id, NEW.hyperdata), 'sha256');
END IF;
RETURN NEW;
END IF;
END
$$ LANGUAGE plpgsql;
CREATE TRIGGER some_table_hash_update
BEFORE INSERT OR UPDATE ON nodes FOR EACH ROW EXECUTE PROCEDURE hash_update_nodes();
......@@ -67,4 +67,32 @@ triggerSearchUpdate = execPGSQuery query ( nodeTypeId NodeDocument
|]
triggerUpdateHash :: Cmd err Int64
triggerUpdateHash = execPGSQuery query ( nodeTypeId NodeDocument
, nodeTypeId NodeContact
)
where
query :: DPS.Query
query = [sql|
CREATE OR REPLACE FUNCTION hash_update_nodes()
RETURNS trigger AS $$
BEGIN
IF tg_op = 'INSERT' OR tg_op = 'UPDATE' THEN
IF NEW.hash_id = ''
THEN
IF NEW.typename = ? OR NEW.typename = ?
THEN NEW.hash_id = digest(CONCAT(NEW.parent_id, NEW.hyperdata), 'sha256');
ELSE NEW.hash_id = digest(CONCAT(NEW.id, NEW.hyperdata), 'sha256');
END IF;
END IF;
RETURN NEW;
END IF;
END
$$ LANGUAGE plpgsql;
CREATE TRIGGER some_table_hash_update
BEFORE INSERT OR UPDATE ON nodes FOR EACH ROW EXECUTE PROCEDURE hash_update_nodes();
|]
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment