jsharmony-factory
Version:
Enterprise framework for jsHarmony
61 lines • 2.34 kB
JSON
{
"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%%%)" },
"$ascii": { "params": ["VAL"], "sql": "ascii(%%%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)"
},
}