@@ -48,7 +48,6 @@ CREATE TABLE `PilotAgents` (
4848 KEY ` Statuskey` (` GridSite` ,` DestinationSite` ,` Status` )
4949) ENGINE= InnoDB DEFAULT CHARSET= utf8mb4;
5050
51-
5251DROP TABLE IF EXISTS ` JobToPilotMapping` ;
5352CREATE TABLE `JobToPilotMapping ` (
5453 ` PilotID` INT (11 ) UNSIGNED NOT NULL ,
@@ -65,3 +64,89 @@ CREATE TABLE `PilotOutput` (
6564 ` StdError` MEDIUMTEXT,
6665 PRIMARY KEY (` PilotID` )
6766) ENGINE= InnoDB DEFAULT CHARSET= utf8mb4;
67+
68+
69+ -- ------------------------------------------------------------------------------
70+ -- summary tables and triggers
71+ -- ------------------------------------------------------------------------------
72+
73+ -- distict values for GridType, GridSite, DestinationSite, Status and VO
74+
75+ DROP TABLE IF EXISTS Summary_GridType;
76+ CREATE TABLE Summary_GridSite (
77+ GridSite VARCHAR (128 ) PRIMARY KEY
78+ );
79+ DROP TABLE IF EXISTS Summary_DestinationSite;
80+ CREATE TABLE Summary_DestinationSite (
81+ DestinationSite VARCHAR (128 ) PRIMARY KEY
82+ );
83+ DROP TABLE IF EXISTS Summary_Status;
84+ CREATE TABLE Summary_Status (
85+ Status VARCHAR (128 ) PRIMARY KEY
86+ );
87+ DROP TABLE IF EXISTS Summary_VO;
88+ CREATE TABLE Summary_VO (
89+ VO VARCHAR (128 ) PRIMARY KEY
90+ );
91+
92+ DELIMITER //
93+
94+ CREATE TRIGGER trg_pa_insert
95+ AFTER INSERT ON PilotAgents
96+ FOR EACH ROW
97+ BEGIN
98+ INSERT IGNORE INTO Summary_GridSite (GridSite)
99+ VALUES (NEW .GridSite );
100+
101+ INSERT IGNORE INTO Summary_DestinationSite (DestinationSite)
102+ VALUES (NEW .DestinationSite );
103+
104+ INSERT IGNORE INTO Summary_Status (Status)
105+ VALUES (NEW .Status );
106+
107+ INSERT IGNORE INTO Summary_VO (VO)
108+ VALUES (NEW .VO );
109+ END;
110+ //
111+
112+ DELIMITER ;
113+
114+ DELIMITER //
115+
116+ CREATE TRIGGER trg_pa_delete
117+ AFTER DELETE ON PilotAgents
118+ FOR EACH ROW
119+ BEGIN
120+ IF NOT EXISTS (
121+ SELECT 1 FROM PilotAgents WHERE GridType = OLD .GridType
122+ ) THEN
123+ DELETE FROM Summary_GridType WHERE GridType = OLD .GridType ;
124+ END IF;
125+
126+ IF NOT EXISTS (
127+ SELECT 1 FROM PilotAgents WHERE GridSite = OLD .GridSite
128+ ) THEN
129+ DELETE FROM Summary_GridSite WHERE GridSite = OLD .GridSite ;
130+ END IF;
131+
132+ IF NOT EXISTS (
133+ SELECT 1 FROM PilotAgents WHERE DestinationSite = OLD .DestinationSite
134+ ) THEN
135+ DELETE FROM Summary_DestinationSite WHERE DestinationSite = OLD .DestinationSite ;
136+ END IF;
137+
138+ IF NOT EXISTS (
139+ SELECT 1 FROM PilotAgents WHERE Status = OLD .Status
140+ ) THEN
141+ DELETE FROM Summary_Status WHERE Status = OLD .Status ;
142+ END IF;
143+
144+ IF NOT EXISTS (
145+ SELECT 1 FROM PilotAgents WHERE VO = OLD .VO
146+ ) THEN
147+ DELETE FROM Summary_VO WHERE VO = OLD .VO ;
148+ END IF;
149+ END;
150+ //
151+
152+ DELIMITER ;
0 commit comments