6ddcbd5dc0d768abe45e9e31b7cf3838c625fc04
[Pman.Core] / DataObjects / core_functions.sql
1
2
3 DROP FUNCTION IF EXISTS i18n_translate;
4 DELIMITER $$
5 CREATE FUNCTION i18n_translate(in_ltype  varchar(1) , in_lkey varchar(8), in_inlang varchar(8)) 
6         RETURNS VARCHAR(64) DETERMINISTIC
7     BEGIN
8         DECLARE ret  VARCHAR(64);
9         SET ret  = '';
10         SELECT lval INTO ret FROM i18n
11             WHERE ltype=in_ltype AND lkey=in_lkey and inlang=in_inlang LIMIT 1;
12         RETURN ret;
13         
14     END $$
15 DELIMITER ;
16
17 DROP FUNCTION IF EXISTS core_enum_seqmax_update;
18 DELIMITER $$
19 CREATE FUNCTION core_enum_seqmax_update( in_etype varchar(128))
20         RETURNS INT(11) DETERMINISTIC
21
22 BEGIN
23         DECLARE v_seqmax INT(11);
24         SELECT MAX(seqid) +1 INTO v_seqmax FROM core_enum WHERE
25             etype = in_etype;
26         UPDATE core_enum SET seqmax = v_seqmax WHERE etype = in_etype;
27         RETURN v_seqmax;
28     END $$
29 DELIMITER ;
30
31 -- usage: SELECT core_enum_seqmax_update(DISTINCT(etype)) FROM core_enum;
32 DROP TABLE IF EXISTS core_enum_tmp;
33 CREATE TEMPORARY TABLE core_enum_tmp SELECT DISTINCT(etype) FROM core_enum;
34 SELECT core_enum_seqmax_update(etype) FROM core_enum_tmp;
35 DROP TABLE IF EXISTS core_enum_tmp;