UNPKG

jsharmony-factory

Version:
60 lines 2.28 kB
{ "str_concat":" CONCAT ", "$ifnull":{ "params": ["a","b"], "sql": "ifnull(%%%a%%%,%%%b%%%)" }, "$addDays":{ "params": ["date","cnt"], "sql": "(%%%date%%% + %%%cnt%%% days)" }, "$addHours":{ "params": ["date","cnt"], "sql": "(%%%date%%% + %%%cnt%%% hours)" }, "$addMinutes":{ "params": ["date","cnt"], "sql": "(%%%date%%% + %%%cnt%%% minutes)" }, "$toDate":{ "params": ["date"], "sql": "cast(%%%date%%% as date)" }, "$topn": { "params": ["CNT","..."], "sql": "%%%...%%% limit %%%CNT%%%" }, "$getInsertCount": { "params": [], "exec": "return 'SELECT COUNT(*) \"xrowcount\" FROM FINAL TABLE ('+[].slice.call(arguments).join(',')+')';" }, "$getUpdateCount": { "params": [], "exec": "return [].slice.call(arguments).join(',')+';return_row_count()';" }, "$errorif": { "params": ["COND","MSG"], "exec": [ "var errmsg_var = 'jsherrmsg'+Math.round(Math.random()*10000).toString(); while(errmsg_var in this.vars) errmsg_var += '_'; this.vars[errmsg_var] = true;", "var rslt = 'begin declare '+errmsg_var+' varchar(2048)\\\\; ';", "rslt += 'if ('+COND.trim()+') then \\n';", "MSG = MSG.trim();", "if(MSG && (MSG[0]=='\\'')) MSG = '\\'Application Error - '+MSG.substr(1);", "rslt += 'set '+errmsg_var+'='+MSG+'\\\\;\\n';", "rslt += ' SIGNAL SQLSTATE VALUE \\'JHERR\\' SET MESSAGE_TEXT = '+errmsg_var+'\\\\; \\n';", "rslt += 'end if\\\\; ';", "rslt += 'END';", "return rslt;" ] }, "$ceiling": { "params": ["VAL"], "sql": "ceil(%%%VAL%%%)" }, "$floor": { "params": ["VAL"], "sql": "floor(%%%VAL%%%)" }, "$greatest": { "params": [], "exec": "return 'greatest('+[].slice.call(arguments).join(',')+')';" }, "$lpad": { "params": ["STR","LEN","PADCHAR"], "sql": [ "LPAD(%%%STR%%%, %%%LEN%%%, %%%PADCHAR%%%)" ], }, "{{concat}}":{ "params": [], "exec": [ "if(arguments.length<1) return 'null';", "var rslt = '(' + arguments[0];", "for(var i=1;i<arguments.length;i++){", " rslt += ' CONCAT ' + arguments[i];", "}", "rslt += ')';", "return rslt;" ] }, "{schema}.my_now":{ "params": [], "sql": "(current timestamp)" }, }