add(Ops.NE, "{0} <> {1}");
add(Ops.MOD, "{0} % {1}", Precedence.ARITH_HIGH);
add(Ops.STRING_LENGTH, "character_length({0})");
add(Ops.INDEX_OF, "(instr({0},{1})-1)");
add(Ops.INDEX_OF_2ARGS, "(instr({0},{1},{2}+1)-1)");
add(Ops.STRING_CAST, "cast({0} as varchar(255))");
add(Ops.StringOps.LOCATE, "instr({1},{0})");
add(Ops.StringOps.LOCATE2, "instr({1},{0},{2s})");
add(Ops.StringOps.LEFT, "substr({0}, 1, {1})");
add(Ops.StringOps.RIGHT, "substr({0}, (character_length({0})-{1s}) + 1, {1})");
add(Ops.MATCHES, "(regexp_instr({0}, {1}) = 1)");
add(Ops.MATCHES_IC, "(regex_instr({0l}, {1}) = 1)");
add(Ops.MathOps.LOG, "(ln({0}) / ln({1}))");
add(Ops.MathOps.RANDOM, "cast(random(0, 1000000000) as numeric(20,10))/1000000000");
add(Ops.MathOps.COT, "(cos({0}) / sin({0}))");
add(Ops.MathOps.COTH, "(exp({0} * 2) + 1) / (exp({0} * 2) - 1)");
add(Ops.DateTimeOps.DATE, "cast({0} as date)");
add(Ops.DateTimeOps.WEEK, "(td_week_of_year({0}) + 1)");
add(Ops.DateTimeOps.DAY_OF_WEEK, "td_day_of_week({0})");
add(Ops.DateTimeOps.DAY_OF_YEAR, "td_day_of_year({0})");
add(Ops.DateTimeOps.YEAR_WEEK, "(extract (year from {0}) * 100 + td_week_of_year({0}))");
add(Ops.DateTimeOps.ADD_YEARS, "{0} + interval '{1s}' year");
add(Ops.DateTimeOps.ADD_MONTHS, "{0} + interval '{1s}' month");
add(Ops.DateTimeOps.ADD_DAYS, "{0} + interval '{1s}' day");