Skip to content

Commit d0cdd52

Browse files
authored
New proc insert_screening_v2 with grant and updated routines.sql (#300)
1 parent 6464aca commit d0cdd52

File tree

3 files changed

+73
-3
lines changed

3 files changed

+73
-3
lines changed

grants/ispyb_processing.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ GRANT EXECUTE ON PROCEDURE retrieve_most_recent_session TO 'ispyb_processing';
7777
GRANT EXECUTE ON PROCEDURE retrieve_containers_submitted_non_ls TO 'ispyb_processing';
7878

7979
GRANT EXECUTE ON PROCEDURE `insert_screening` TO 'ispyb_processing';
80+
GRANT EXECUTE ON PROCEDURE `insert_screening_v2` TO 'ispyb_processing';
8081
GRANT EXECUTE ON PROCEDURE insert_screening_input TO 'ispyb_processing';
8182
GRANT EXECUTE ON PROCEDURE `insert_screening_output` TO 'ispyb_processing';
8283
GRANT EXECUTE ON PROCEDURE `insert_screening_output_v2` TO 'ispyb_processing';

schemas/ispyb/routines.sql

Lines changed: 42 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ DELIMITER ;
131131
/*!50003 SET character_set_results = utf8mb3 */ ;
132132
/*!50003 SET collation_connection = utf8mb3_general_ci */ ;
133133
DELIMITER ;;
134-
CREATE FUNCTION `retrieve_proposal_title`(p_proposal_code varchar(5), p_proposal_number int) RETURNS varchar(255) CHARSET latin1
134+
CREATE FUNCTION `retrieve_proposal_title`(p_proposal_code varchar(5), p_proposal_number int) RETURNS varchar(255) CHARSET latin1 COLLATE latin1_swedish_ci
135135
READS SQL DATA
136136
BEGIN
137137
DECLARE ret_title varchar(255);
@@ -156,7 +156,7 @@ DELIMITER ;
156156
/*!50003 SET character_set_results = utf8mb3 */ ;
157157
/*!50003 SET collation_connection = utf8mb3_general_ci */ ;
158158
DELIMITER ;;
159-
CREATE FUNCTION `retrieve_proposal_title_v2`(p_proposalCode varchar(5), p_proposalNumber int) RETURNS varchar(255) CHARSET latin1
159+
CREATE FUNCTION `retrieve_proposal_title_v2`(p_proposalCode varchar(5), p_proposalNumber int) RETURNS varchar(255) CHARSET latin1 COLLATE latin1_swedish_ci
160160
READS SQL DATA
161161
COMMENT 'Retrieve the title for a given proposal code and number.'
162162
BEGIN
@@ -207,7 +207,7 @@ DELIMITER ;
207207
/*!50003 SET character_set_results = utf8mb3 */ ;
208208
/*!50003 SET collation_connection = utf8mb3_general_ci */ ;
209209
DELIMITER ;;
210-
CREATE FUNCTION `root_replace`(p_str varchar(255), p_oldroot varchar(255), p_newroot varchar(255)) RETURNS varchar(255) CHARSET latin1
210+
CREATE FUNCTION `root_replace`(p_str varchar(255), p_oldroot varchar(255), p_newroot varchar(255)) RETURNS varchar(255) CHARSET latin1 COLLATE latin1_swedish_ci
211211
COMMENT 'Returns a varchar where the old root p_oldroot (the leftmost part) of p_str has been replaced with a new root p_newroot'
212212
BEGIN
213213
DECLARE path_len smallint unsigned DEFAULT LENGTH(p_oldroot);
@@ -2334,6 +2334,45 @@ BEGIN
23342334
SET p_id = LAST_INSERT_ID();
23352335
END IF;
23362336

2337+
END ;;
2338+
DELIMITER ;
2339+
/*!50003 SET sql_mode = @saved_sql_mode */ ;
2340+
/*!50003 SET character_set_client = @saved_cs_client */ ;
2341+
/*!50003 SET character_set_results = @saved_cs_results */ ;
2342+
/*!50003 SET collation_connection = @saved_col_connection */ ;
2343+
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
2344+
/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
2345+
/*!50003 DROP PROCEDURE IF EXISTS `insert_screening_v2` */;
2346+
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
2347+
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
2348+
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
2349+
/*!50003 SET character_set_client = utf8mb3 */ ;
2350+
/*!50003 SET character_set_results = utf8mb3 */ ;
2351+
/*!50003 SET collation_connection = utf8mb3_general_ci */ ;
2352+
DELIMITER ;;
2353+
CREATE PROCEDURE `insert_screening_v2`(
2354+
OUT p_id int(11) unsigned,
2355+
p_dcgId int(11) unsigned,
2356+
p_dcId int(11) unsigned,
2357+
p_programVersion varchar(45),
2358+
p_shortComments varchar(20),
2359+
p_comments varchar(255),
2360+
p_autoProcProgramId int(10) unsigned
2361+
)
2362+
MODIFIES SQL DATA
2363+
COMMENT 'Insert a row with info about a screening. Returns the ID in p_id.'
2364+
BEGIN
2365+
IF p_dcgId IS NULL AND p_dcId IS NOT NULL THEN
2366+
SELECT dataCollectionGroupId INTO p_dcgId FROM DataCollection WHERE dataCollectionId = p_dcId;
2367+
END IF;
2368+
2369+
INSERT INTO Screening (dataCollectionGroupId, dataCollectionId, programVersion, shortComments, comments, autoProcProgramId)
2370+
VALUES (p_dcgId, p_dcId, p_programVersion, p_shortComments, p_comments, p_autoProcProgramId);
2371+
2372+
IF LAST_INSERT_ID() <> 0 THEN
2373+
SET p_id = LAST_INSERT_ID();
2374+
END IF;
2375+
23372376
END ;;
23382377
DELIMITER ;
23392378
/*!50003 SET sql_mode = @saved_sql_mode */ ;
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
-- To test:
2+
-- SET @id = NULL;
3+
-- CALL insert_screening_v2(@id, NULL, 6017416, 'EDNA MXv1', 'EDNAStrategy2', 'Standard Anomalous Dataset Multiplicity=3 I/sig=2 Maxlifespan=4034 s', 56986688);
4+
5+
DELIMITER ;;
6+
CREATE OR REPLACE PROCEDURE `insert_screening_v2`(
7+
OUT p_id int(11) unsigned,
8+
p_dcgId int(11) unsigned,
9+
p_dcId int(11) unsigned,
10+
p_programVersion varchar(45),
11+
p_shortComments varchar(20),
12+
p_comments varchar(255),
13+
p_autoProcProgramId int(10) unsigned
14+
)
15+
MODIFIES SQL DATA
16+
COMMENT 'Insert a row with info about a screening. Returns the ID in p_id.'
17+
BEGIN
18+
IF p_dcgId IS NULL AND p_dcId IS NOT NULL THEN
19+
SELECT dataCollectionGroupId INTO p_dcgId FROM DataCollection WHERE dataCollectionId = p_dcId;
20+
END IF;
21+
22+
INSERT INTO Screening (dataCollectionGroupId, dataCollectionId, programVersion, shortComments, comments, autoProcProgramId)
23+
VALUES (p_dcgId, p_dcId, p_programVersion, p_shortComments, p_comments, p_autoProcProgramId);
24+
25+
IF LAST_INSERT_ID() <> 0 THEN
26+
SET p_id = LAST_INSERT_ID();
27+
END IF;
28+
29+
END;;
30+
DELIMITER ;

0 commit comments

Comments
 (0)