convert.addTypeMapping("timestamp", FunctionModifier.TIMESTAMP); //$NON-NLS-1$
convert.addNumericBooleanConversions();
registerFunctionModifier(SourceSystemFunctions.CONVERT, convert);
registerFunctionModifier(SourceSystemFunctions.IFNULL, new AliasModifier("nvl")); //$NON-NLS-1$
registerFunctionModifier(SourceSystemFunctions.CONCAT, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.ACOS, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.ASIN, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.ATAN, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.COS, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.COT, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.CURDATE, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.CURTIME, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.DAYNAME, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.DAYOFMONTH, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.DAYOFWEEK, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.DAYOFYEAR, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.EXP, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.HOUR, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.LOG,new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.LOG10, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.LEFT, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.MINUTE, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.MONTH, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.MONTHNAME, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.MOD, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.NOW, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.PI, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.QUARTER, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.RIGHT, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.SIN, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.SECOND, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.SQRT,new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.TAN, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.TIMESTAMPADD, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.TIMESTAMPDIFF, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.TRUNCATE, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.WEEK, new EscapeSyntaxModifier());
registerFunctionModifier(SourceSystemFunctions.DIVIDE_OP, new FunctionModifier() {
@Override
public List<?> translate(Function function) {
if (function.getType() == TypeFacility.RUNTIME_TYPES.INTEGER || function.getType() == TypeFacility.RUNTIME_TYPES.LONG) {