22469cd796ca2fe0b09fb4964d6c3a84721a28f3
[migration-tools.git] / kmig.d / sql / init / 020-string_functions.sql
1 DELIMITER $
2 CREATE FUNCTION
3    m_remove_bracketed_text(str TEXT)
4    RETURNS TEXT
5    DETERMINISTIC
6     BEGIN
7     RETURN REPLACE(str, SUBSTRING(str, LOCATE('(', str), LENGTH(str) - LOCATE(')', REVERSE(str)) - LOCATE('(', str) + 2), '');
8     END
9 $
10 DELIMITER ;
11
12 DROP FUNCTION IF EXISTS m_split_string;
13 DELIMITER $
14 CREATE FUNCTION 
15    m_split_string (s TEXT, del VARCHAR(10), i INT)
16    RETURNS TEXT
17    DETERMINISTIC
18     BEGIN
19         DECLARE n INT ;
20         SET n = LENGTH(s) - LENGTH(REPLACE(s, del, '')) + 1;
21         IF i > n THEN
22             RETURN NULL ;
23         ELSE
24             RETURN SUBSTRING_INDEX(SUBSTRING_INDEX(s, del, i) , del , -1 ) ;        
25         END IF;
26     END
27 $
28 DELIMITER ;
29
30 DROP FUNCTION IF EXISTS m_string_segment_count;
31 DELIMITER $
32 CREATE FUNCTION 
33    m_string_segment_count(s TEXT, del VARCHAR(10))
34    RETURNS TEXT
35    DETERMINISTIC
36     BEGIN
37         DECLARE n INT ;
38         SET n = LENGTH(s) - LENGTH(REPLACE(s, del, '')) + 1;
39         RETURN n;
40     END
41 $
42 DELIMITER ;
43