add(Ops.CONCAT, "{0} + {1}"); add(Ops.CHAR_AT, "cast(substring({0},{1}+1,1) as char)"); add(Ops.INDEX_OF, "charindex({1},{0})-1", Precedence.ARITH_LOW); add(Ops.INDEX_OF_2ARGS, "charindex({1},{0},{2})-1", Precedence.ARITH_LOW); add(Ops.MATCHES, "{0} like {1}", Precedence.OR); add(Ops.STRING_IS_EMPTY, "len({0}) = 0", Precedence.COMPARISON); add(Ops.STRING_LENGTH, "len({0})"); add(Ops.SUBSTR_1ARG, "substring({0},{1}+1,255)"); add(Ops.SUBSTR_2ARGS, "substring({0},{1}+1,{2s}-{1s})"); add(Ops.TRIM, "ltrim(rtrim({0}))"); add(Ops.StringOps.LOCATE, "charindex({0},{1})"); add(Ops.StringOps.LOCATE2, "charindex({0},{1},{2})"); add(Ops.StringOps.LPAD, "right(replicate(' ', {1}) + left({0}, {1}), {1})"); add(Ops.StringOps.LPAD2, "right(replicate({2}, {1}) + left({0}, {1}), {1})"); add(Ops.StringOps.RPAD, "left(left({0}, {1}) + replicate(' ', {1}), {1})"); add(Ops.StringOps.RPAD2, "left(left({0}, {1}) + replicate({2}, {1}), {1})"); add(SQLOps.NEXTVAL, "{0s}.nextval"); add(Ops.MOD, "{0} % {1}", Precedence.ARITH_HIGH); add(Ops.MathOps.COSH, "(exp({0}) + exp({0} * -1)) / 2"); add(Ops.MathOps.COTH, "(exp({0} * 2) + 1) / (exp({0} * 2) - 1)"); add(Ops.MathOps.LN, "log({0})"); add(Ops.MathOps.LOG, "log({0}, {1})"); add(Ops.MathOps.POWER, "power({0}, {1})"); add(Ops.MathOps.ROUND, "round({0}, 0)"); add(Ops.MathOps.SINH, "(exp({0}) - exp({0} * -1)) / 2");