RETURNS VARCHAR(64) DETERMINISTIC
BEGIN
DECLARE ret VARCHAR(64);
+ DECLARE v_id INTEGER;
SET ret = '';
- SELECT lval INTO ret FROM i18n
+ SELECT id, lval INTO v_id, ret FROM i18n
WHERE ltype=in_ltype AND lkey=in_lkey and inlang=in_inlang LIMIT 1;
- RETURN ret;
+
+ IF v_id > 0 THEN
+ RETURN ret;
+ END IF;
+
+ -- we do not have it - return the english.
- END $$
-DELIMITER ;
+ SELECT id, lval INTO v_id, ret FROM i18n
+ WHERE ltype=in_ltype AND lkey=in_lkey and inlang='en' LIMIT 1;
+ IF v_id > 0 THEN
+ RETURN ret;
+ END IF;
+
+ RETURN '??';
+
+ END $$
+DELIMITER ;
DROP FUNCTION IF EXISTS core_enum_seqmax_update;
DELIMITER $$
END $$
DELIMITER ;
--- usage: SELECT core_enum_seqmax_update(DISTINCT(etype)) FROM core_enum;
\ No newline at end of file
+-- usage: SELECT core_enum_seqmax_update(DISTINCT(etype)) FROM core_enum;
+DROP TABLE IF EXISTS core_enum_tmp;
+CREATE TEMPORARY TABLE core_enum_tmp SELECT DISTINCT(etype) FROM core_enum;
+SELECT core_enum_seqmax_update(etype) FROM core_enum_tmp;
+DROP TABLE IF EXISTS core_enum_tmp;
\ No newline at end of file