fe43e07880218e86a5a4ac842906b4a956f7b96c
[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 --         DECLARE v_id INTEGER
10         SET ret  = '';
11         SELECT CASE in_inlang WHEN 'zh_TW' THEN 'zh_HK' ELSE 'en' END;
12             
13         SELECT CASE WHEN in_inlang='zh_TW' THEN in_inlang='zh_HK' END CASE
14         FROM i18n;
15 --         SET v_id = 0;
16         SELECT lval  INTO ret FROM i18n
17             WHERE ltype=in_ltype AND lkey=in_lkey and inlang=in_inlang LIMIT 1;
18
19 --         IF NOT FOUND THEN
20 --             SELECT CASE WHEN in_inlang='zh_TW' THEN 'zh_HK'
21 --         END IF;
22 --         if (v_id < 1) THEN
23         
24
25
26         RETURN ret;
27         
28     END $$
29 DELIMITER ;
30
31 DROP FUNCTION IF EXISTS core_enum_seqmax_update;
32 DELIMITER $$
33 CREATE FUNCTION core_enum_seqmax_update( in_etype varchar(128))
34         RETURNS INT(11) DETERMINISTIC
35
36 BEGIN
37         DECLARE v_seqmax INT(11);
38         SELECT MAX(seqid) +1 INTO v_seqmax FROM core_enum WHERE
39             etype = in_etype;
40         UPDATE core_enum SET seqmax = v_seqmax WHERE etype = in_etype;
41         RETURN v_seqmax;
42     END $$
43 DELIMITER ;
44
45 -- usage: SELECT core_enum_seqmax_update(DISTINCT(etype)) FROM core_enum;
46 DROP TABLE IF EXISTS core_enum_tmp;
47 CREATE TEMPORARY TABLE core_enum_tmp SELECT DISTINCT(etype) FROM core_enum;
48 SELECT core_enum_seqmax_update(etype) FROM core_enum_tmp;
49 DROP TABLE IF EXISTS core_enum_tmp;