See `ob_expr_operator.h' for the interface of this module. collation etc. support status of each system function: ob_expr_abs.h ob_expr_add.h ob_expr_and.h ob_expr_arg_case.h ob_expr_between.h ob_expr_case.h ob_expr_cast.h ob_expr_coalesce.h ob_expr_collation.h - 这里面有好几个函数 ob_expr_concat.h ob_expr_concat_ws.h ob_expr_conv.h ob_expr_current_user.h ob_expr_cur_time.h ob_expr_database.h ob_expr_date_add.h - 超级恶心,select DATE_SUB(DateType, interval 1 year) from matrix; select DATE_SUB(DateType, interval 1 hour) from matrix;返回的类型是不同的, 前Date,后Datetime ob_expr_date_format.h ob_expr_date_sub.h - 同date_add,目前实现为返回timestamp类型。 ob_expr_div.h ob_expr_effective_tenant.h ob_expr_effective_tenant_id.h ob_expr_equal.h ob_expr_exists.h ob_expr_extract.h ob_expr_func_addr_to_part_id.h ob_expr_func_ceil.h - impl inefficient, by peiwei ob_expr_func_dump.h ob_expr_func_floor.h - impl inefficient, by peiwei ob_expr_func_part_hash.h ob_expr_func_partition_key.h ob_expr_func_round.h - result type should vary, by yubai ob_expr_fun_values.h ob_expr_greater_equal.h ob_expr_greater_than.h ob_expr_greatest.h ob_expr_hex.h ob_expr_in.h ob_expr_instr.h ob_expr_int2ip.h ob_expr_int_div.h ob_expr_ip2int.h ob_expr_is.h ob_expr_is_not.h ob_expr_last_insert_id.h ob_expr_least.h ob_expr_length.h ob_expr_less_equal.h ob_expr_less_than.h ob_expr_like.h ob_expr_lnnvl.h ob_expr_locate.h ob_expr_lower.h ob_expr_md5.h ob_expr_merging_frozen_time.h -- discarded function ob_expr_minus.h ob_expr_mod.h ob_expr_mul.h ob_expr_neg.h ob_expr_autoinc_nextval.h ob_expr_not_between.h ob_expr_not_equal.h ob_expr_not_exists.h ob_expr_not.h ob_expr_not_in.h ob_expr_null_safe_equal.h ob_expr_nvl.h ob_expr_or.h ob_expr_pow.h ob_expr_quote.h ob_expr_regexp.h ob_expr_repeat.h ob_expr_replace.h ob_expr_reverse.h ob_expr_right.h ob_expr_rpad.h - LengthMore这种跟数值有关 ob_expr_sign.h ob_expr_str_to_date.h - ResultType非常复杂,跟输入值相关, 例如SELECT STR_TO_DATE('abc','%s');SELECT STR_TO_DATE('abc','a');目前实现简单一些,统一返回timestamp ob_expr_subquery_equal.h ob_expr_subquery_greater_equal.h ob_expr_subquery_greater_than.h ob_expr_subquery_less_equal.h ob_expr_subquery_less_than.h ob_expr_subquery_not_equal.h ob_expr_subquery_ns_equal.h ob_expr_subquery_ref.h ob_expr_substr.h ob_expr_insert.h ob_expr_substring_index.h ob_expr_sys_view_bigint_param.h ob_expr_time_to_usec.h ob_expr_trim.h ob_expr_unhex.h ob_expr_upper.h ob_expr_usec_to_time.h ob_expr_user.h ob_expr_version.h ob_expr_xor.h - (1^-1 out of range bug @jiuren)