registerOp(SqlStdOperatorTable.CAST, this::convertCast); registerOp(SqlStdOperatorTable.IS_DISTINCT_FROM, (cx, call) -> convertIsDistinctFrom(cx, call, false)); registerOp(SqlStdOperatorTable.IS_NOT_DISTINCT_FROM, (cx, call) -> convertIsDistinctFrom(cx, call, true)); registerOp(SqlStdOperatorTable.PLUS, this::convertPlus); registerOp(SqlStdOperatorTable.MINUS, (cx, call) -> { final RexCall e = registerOp(OracleSqlOperatorTable.LTRIM, new TrimConvertlet(SqlTrimFunction.Flag.LEADING)); registerOp(OracleSqlOperatorTable.RTRIM, new TrimConvertlet(SqlTrimFunction.Flag.TRAILING)); registerOp(OracleSqlOperatorTable.GREATEST, new GreatestConvertlet()); registerOp(OracleSqlOperatorTable.LEAST, new GreatestConvertlet()); registerOp(OracleSqlOperatorTable.NVL, (cx, call) -> { final RexBuilder rexBuilder = cx.getRexBuilder(); registerOp(OracleSqlOperatorTable.DECODE, (cx, call) -> { final RexBuilder rexBuilder = cx.getRexBuilder(); registerOp(SqlStdOperatorTable.NOT_LIKE,
registerOp(SqlStdOperatorTable.CAST, this::convertCast); registerOp(SqlStdOperatorTable.IS_DISTINCT_FROM, (cx, call) -> convertIsDistinctFrom(cx, call, false)); registerOp(SqlStdOperatorTable.IS_NOT_DISTINCT_FROM, (cx, call) -> convertIsDistinctFrom(cx, call, true)); registerOp(SqlStdOperatorTable.PLUS, this::convertPlus); registerOp(SqlStdOperatorTable.MINUS, (cx, call) -> { final RexCall e = registerOp(OracleSqlOperatorTable.LTRIM, new TrimConvertlet(SqlTrimFunction.Flag.LEADING)); registerOp(OracleSqlOperatorTable.RTRIM, new TrimConvertlet(SqlTrimFunction.Flag.TRAILING)); registerOp(OracleSqlOperatorTable.GREATEST, new GreatestConvertlet()); registerOp(OracleSqlOperatorTable.LEAST, new GreatestConvertlet()); registerOp(OracleSqlOperatorTable.NVL, (cx, call) -> { final RexBuilder rexBuilder = cx.getRexBuilder(); registerOp(OracleSqlOperatorTable.DECODE, (cx, call) -> { final RexBuilder rexBuilder = cx.getRexBuilder(); registerOp(SqlStdOperatorTable.NOT_LIKE,