@@ -1780,31 +1780,39 @@ VALUES
17801780(4748 , ' No network path between node_1=%node_1% and node_2=%node_2%' , NULL , 2 , true, ' utils' , ' core' , ' UI' )
17811781ON CONFLICT (id) DO NOTHING;
17821782
1783- -- om_scada_graph_json: one row per synoptic (group_id); expl_id is the union of exploitations.
1784- -- Existing JSON (PK expl_id, one blob for the whole graph) cannot be split: truncate and regenerate.
1785- TRUNCATE TABLE om_scada_graph_json;
1786-
1787- ALTER TABLE om_scada_graph_json DROP CONSTRAINT IF EXISTS om_scada_graph_json_pkey;
1788-
1789- SELECT gw_fct_admin_manage_fields($${" data" :{" action" :" ADD" ," table" :" om_scada_graph_json" ," column" :" group_id" ," dataType" :" integer" }}$$);
1783+ -- om_scada_graph_json: one row per synoptic (group_id first); expl_id is the union of exploitations.
1784+ -- Existing JSON (PK expl_id, one blob for the whole graph) cannot be split: drop-in recreate, regenerate with commit.
1785+ ALTER TABLE om_scada_graph_json RENAME TO _om_scada_graph_json_;
1786+ ALTER TABLE _om_scada_graph_json_ RENAME CONSTRAINT om_scada_graph_json_pkey TO _om_scada_graph_json_pkey;
1787+
1788+ CREATE TABLE om_scada_graph_json (
1789+ group_id int4 NOT NULL ,
1790+ expl_id int4[] NULL ,
1791+ om_scada_graph_json json,
1792+ insert_tstamp timestamp DEFAULT now(),
1793+ update_tstamp timestamp DEFAULT NULL ,
1794+ CONSTRAINT om_scada_graph_json_pkey PRIMARY KEY (group_id)
1795+ );
17901796
1791- DO $scada_json$
1797+ DO $scada_json_acl$
1798+ DECLARE
1799+ r record;
17921800BEGIN
1793- IF EXISTS (
1794- SELECT 1
1795- FROM information_schema .columns
1801+ FOR r IN
1802+ SELECT DISTINCT grantee, privilege_type
1803+ FROM information_schema .role_table_grants
17961804 WHERE table_schema = current_schema()
1797- AND table_name = ' om_scada_graph_json'
1798- AND column_name = ' expl_id'
1799- AND udt_name = ' int4'
1800- ) THEN
1801- PERFORM gw_fct_admin_manage_fields($${" data" :{" action" :" CHANGETYPE" ," table" :" om_scada_graph_json" ," column" :" expl_id" ," dataType" :" int4[]" }}$$);
1802- END IF;
1805+ AND table_name = ' _om_scada_graph_json_'
1806+ AND grantee <> ' PUBLIC'
1807+ LOOP
1808+ EXECUTE format(
1809+ ' GRANT %s ON TABLE om_scada_graph_json TO %I' ,
1810+ r .privilege_type ,
1811+ r .grantee
1812+ );
1813+ END LOOP;
18031814END
1804- $scada_json$;
1805-
1806- ALTER TABLE om_scada_graph_json ALTER COLUMN group_id SET NOT NULL ;
1807- ALTER TABLE om_scada_graph_json ADD CONSTRAINT om_scada_graph_json_pkey PRIMARY KEY (group_id);
1815+ $scada_json_acl$;
18081816
18091817-- om_scada_graph.order_id → level_id (same meaning as vertex level_id / JSON levelId)
18101818DROP TRIGGER IF EXISTS gw_trg_v_om_scada_graph_delete ON v_om_scada_graph;
0 commit comments