init push

This commit is contained in:
oceanbase-admin
2021-05-31 22:56:52 +08:00
commit cea7de1475
7020 changed files with 5689869 additions and 0 deletions

View File

@ -0,0 +1,647 @@
/**
* Copyright (c) 2021 OceanBase
* OceanBase CE is licensed under Mulan PubL v2.
* You can use this software according to the terms and conditions of the Mulan PubL v2.
* You may obtain a copy of Mulan PubL v2 at:
* http://license.coscl.org.cn/MulanPubL-2.0
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PubL v2 for more details.
*/
#include "ob_expr_eval_functions.h"
#include "sql/engine/ob_serializable_function.h"
#include "ob_expr_add.h"
#include "ob_expr_bit_count.h"
#include "ob_expr_bit_neg.h"
#include "ob_expr_column_conv.h"
#include "ob_expr_concat.h"
#include "ob_expr_connection_id.h"
#include "ob_expr_regexp_count.h"
#include "ob_expr_conv.h"
#include "ob_expr_current_user.h"
#include "ob_expr_cur_time.h"
#include "ob_expr_database.h"
#include "ob_expr_date.h"
#include "ob_expr_date_diff.h"
#include "ob_expr_day_of_func.h"
#include "ob_expr_div.h"
#include "ob_expr_effective_tenant.h"
#include "ob_expr_effective_tenant_id.h"
#include "ob_expr_exists.h"
#include "ob_expr_extract.h"
#include "ob_expr_found_rows.h"
#include "ob_expr_from_unix_time.h"
#include "ob_expr_func_partition_key.h"
#include "ob_expr_greatest.h"
#include "ob_expr_host_ip.h"
#include "ob_expr_trim.h"
#include "ob_expr_insert.h"
#include "ob_expr_int2ip.h"
#include "ob_expr_int_div.h"
#include "ob_expr_ip2int.h"
#include "ob_expr_is.h"
#include "ob_expr_last_exec_id.h"
#include "ob_expr_last_trace_id.h"
#include "ob_expr_least.h"
#include "ob_expr_length.h"
#include "ob_expr_like.h"
#include "ob_expr_lower.h"
#include "ob_expr_md5.h"
#include "ob_expr_mid.h"
#include "ob_expr_minus.h"
#include "ob_expr_mod.h"
#include "ob_expr_mul.h"
#include "ob_expr_mysql_port.h"
#include "ob_expr_neg.h"
#include "ob_expr_not.h"
#include "ob_expr_not_exists.h"
#include "ob_expr_null_safe_equal.h"
#include "ob_expr_nvl2_oracle.h"
#include "ob_expr_nvl.h"
#include "ob_expr_operator.h"
#include "ob_expr_pow.h"
#include "ob_expr_regexp_count.h"
#include "ob_expr_regexp.h"
#include "ob_expr_regexp_instr.h"
#include "ob_expr_regexp_like.h"
#include "ob_expr_regexp_replace.h"
#include "ob_expr_regexp_substr.h"
#include "ob_expr_repeat.h"
#include "ob_expr_replace.h"
#include "ob_expr_func_dump.h"
#include "ob_expr_func_part_hash.h"
#include "ob_expr_func_addr_to_part_id.h"
#include "ob_expr_autoinc_nextval.h"
#include "ob_expr_is_serving_tenant.h"
#include "ob_expr_sys_privilege_check.h"
#include "ob_expr_field.h"
#include "ob_expr_elt.h"
#include "ob_expr_des_hex_str.h"
#include "ob_expr_lnnvl.h"
#include "ob_expr_row_count.h"
#include "ob_expr_rownum.h"
#include "ob_expr_rpc_port.h"
#include "ob_expr_space.h"
#include "ob_expr_subquery_ref.h"
#include "ob_expr_substr.h"
#include "ob_expr_substring_index.h"
#include "ob_expr_time.h"
#include "ob_expr_timestamp.h"
#include "ob_expr_timezone.h"
#include "ob_expr_trim.h"
#include "ob_expr_uid.h"
#include "ob_expr_unhex.h"
#include "ob_expr_user.h"
#include "ob_expr_uuid.h"
#include "ob_expr_version.h"
#include "ob_expr_xor.h"
#include "ob_expr_estimate_ndv.h"
#include "ob_expr_find_in_set.h"
#include "ob_expr_get_sys_var.h"
#include "ob_expr_to_number.h"
#include "ob_expr_hextoraw.h"
#include "ob_expr_rawtohex.h"
#include "ob_expr_chr.h"
#include "ob_expr_prior.h"
#include "ob_expr_seq_nextval.h"
#include "ob_expr_ifnull.h"
#include "ob_expr_lengthb.h"
#include "ob_expr_ascii.h"
#include "ob_expr_instr.h"
#include "ob_expr_calc_partition_id.h"
#include "ob_expr_instrb.h"
#include "ob_expr_reverse.h"
#include "ob_expr_concat_ws.h"
#include "ob_expr_make_set.h"
#include "ob_expr_interval.h"
#include "ob_expr_sys_op_opnsize.h"
#include "ob_expr_quote.h"
#include "ob_expr_date_add.h"
#include "ob_expr_date_format.h"
#include "ob_expr_from_days.h"
#include "ob_expr_period_diff.h"
#include "ob_expr_time_diff.h"
#include "ob_expr_timestamp_nvl.h"
#include "ob_expr_to_interval.h"
#include "ob_expr_week_of_func.h"
#include "ob_expr_in.h"
#include "ob_expr_fun_default.h"
#include "ob_expr_substrb.h"
#include "ob_expr_remainder.h"
#include "ob_expr_random.h"
#include "ob_expr_width_bucket.h"
#include "ob_expr_sys_extract_utc.h"
#include "ob_expr_to_clob.h"
#include "ob_expr_userenv.h"
#include "ob_expr_vsize.h"
#include "ob_expr_lrpad.h"
#include "ob_expr_pad.h"
#include "ob_expr_fun_values.h"
#include "ob_expr_connect_by_root.h"
#include "ob_expr_oracle_to_char.h"
#include "ob_expr_part_id.h"
#include "ob_expr_hex.h"
#include "ob_expr_shadow_uk_project.h"
#include "ob_expr_char_length.h"
#include "ob_expr_unix_timestamp.h"
#include "ob_expr_case.h"
#include "ob_expr_oracle_decode.h"
#include "ob_expr_remove_const.h"
#include "ob_expr_func_sleep.h"
#include "ob_expr_sys_context.h"
#include "ob_expr_timestamp_diff.h"
#include "ob_expr_from_tz.h"
#include "ob_expr_tz_offset.h"
#include "ob_expr_orahash.h"
#include "ob_expr_get_user_var.h"
#include "ob_expr_util.h"
#include "ob_expr_convert.h"
#include "ob_expr_type_to_str.h"
#include "ob_expr_date_format.h"
#include "ob_expr_calc_urowid.h"
#include "ob_expr_sys_connect_by_path.h"
#include "ob_expr_last_insert_id.h"
#include "ob_expr_part_id_pseudo_column.h"
#include "ob_expr_nullif.h"
#include "ob_expr_oracle_nullif.h"
#include "ob_expr_user_can_access_obj.h"
#include "ob_expr_empty_lob.h"
#include "ob_expr_radians.h"
#include "ob_expr_maketime.h"
#include "ob_expr_to_blob.h"
#include "ob_expr_to_outfile_row.h"
#include "ob_expr_format.h"
#include "ob_expr_quarter.h"
#include "ob_expr_bit_length.h"
namespace oceanbase {
using namespace common;
namespace sql {
extern int cast_eval_arg(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int anytype_to_varchar_char_explicit(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int anytype_anytype_explicit(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_acos_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_and_exprN(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_asin_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_assign_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_atan2_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_atan_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_between_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_bool_expr_for_integer_type(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_bool_expr_for_float_type(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_bool_expr_for_double_type(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_bool_expr_for_other_type(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_char_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_coalesce_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_cos_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_cosh_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_exp_expr_double(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_exp_expr_number(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_ceil_floor(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_round_expr_datetime1(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_round_expr_datetime2(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_round_expr_numeric2(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_round_expr_numeric1(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_initcap_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_left_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_ln_expr_mysql(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_ln_expr_oracle_double(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_ln_expr_oracle_number(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_log10_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_log2_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_log_expr_double(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_log_expr_number(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_not_between_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_or_exprN(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_power_expr_oracle(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_right_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_sign_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_sin_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_sinh_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_sqrt_expr_mysql(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_sqrt_expr_oracle_double(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_sqrt_expr_oracle_number(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_str_to_date_expr_date(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_str_to_date_expr_time(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_str_to_date_expr_datetime(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_tan_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_tanh_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_timestampadd_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_time_to_usec_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_todays_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_to_temporal_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_translate_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_usec_to_time_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_charset_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_collation_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_coercibility_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_set_collation_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_cmp_meta_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_trunc_expr_datetime(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_trunc_expr_numeric(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_truncate_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
extern int calc_reverse_expr(const ObExpr& expr, ObEvalCtx& ctx, ObDatum& res_datum);
extern int calc_instrb_expr(const ObExpr& expr, ObEvalCtx& ctx, ObDatum& res_datum);
extern int calc_convert_expr(const ObExpr& expr, ObEvalCtx& ctx, ObDatum& res_datum);
extern int calc_translate_using_expr(const ObExpr&, ObEvalCtx&, ObDatum&);
// append only, can not delete, set to NULL for mark delete
static ObExpr::EvalFunc g_expr_eval_functions[] = {
cast_eval_arg, /* 0 */
anytype_to_varchar_char_explicit, /* 1 */
anytype_anytype_explicit, /* 2 */
calc_acos_expr, /* 3 */
ObExprAdd::add_datetime_datetime, /* 4 */
ObExprAdd::add_datetime_intervalds, /* 5 */
ObExprAdd::add_datetime_intervalym, /* 6 */
ObExprAdd::add_datetime_number, /* 7 */
ObExprAdd::add_double_double, /* 8 */
ObExprAdd::add_float_float, /* 9 */
ObExprAdd::add_intervalds_datetime, /* 10 */
ObExprAdd::add_intervalds_intervalds, /* 11 */
ObExprAdd::add_intervalds_timestamp_tiny, /* 12 */
ObExprAdd::add_intervalds_timestamptz, /* 13 */
ObExprAdd::add_intervalym_datetime, /* 14 */
ObExprAdd::add_intervalym_intervalym, /* 15 */
ObExprAdd::add_intervalym_timestampltz, /* 16 */
ObExprAdd::add_intervalym_timestampnano, /* 17 */
ObExprAdd::add_intervalym_timestamptz, /* 18 */
ObExprAdd::add_int_int, /* 19 */
ObExprAdd::add_int_uint, /* 20 */
ObExprAdd::add_number_datetime, /* 21 */
ObExprAdd::add_number_number, /* 22 */
ObExprAdd::add_timestampltz_intervalym, /* 23 */
ObExprAdd::add_timestampnano_intervalym, /* 24 */
ObExprAdd::add_timestamp_tiny_intervalds, /* 25 */
ObExprAdd::add_timestamptz_intervalds, /* 26 */
ObExprAdd::add_timestamptz_intervalym, /* 27 */
ObExprAdd::add_uint_int, /* 28 */
ObExprAdd::add_uint_uint, /* 29 */
calc_and_exprN, /* 30 */
calc_asin_expr, /* 31 */
calc_assign_expr, /* 32 */
calc_atan2_expr, /* 33 */
calc_atan_expr, /* 34 */
calc_between_expr, /* 35 */
ObExprBitCount::calc_bitcount_expr, /* 36 */
ObExprBitNeg::calc_bitneg_expr, /* 37 */
calc_bool_expr_for_integer_type, /* 38 */
calc_bool_expr_for_float_type, /* 39 */
calc_bool_expr_for_double_type, /* 40 */
calc_bool_expr_for_other_type, /* 41 */
calc_char_expr, /* 42 */
calc_coalesce_expr, /* 43 */
ObExprColumnConv::column_convert, /* 44 */
ObExprConcat::eval_concat, /* 45 */
ObExprConnectionId::eval_connection_id, /* 46 */
ObExprConv::eval_conv, /* 47 */
calc_cos_expr, /* 48 */
calc_cosh_expr, /* 49 */
ObExprCurrentUser::eval_current_user, /* 50 */
ObExprUtcTimestamp::eval_utc_timestamp, /* 51 */
ObExprCurTimestamp::eval_cur_timestamp, /* 52 */
ObExprSysdate::eval_sysdate, /* 53 */
ObExprCurDate::eval_cur_date, /* 54 */
ObExprCurTime::eval_cur_time, /* 55 */
ObExprDatabase::eval_database, /* 56 */
ObExprDate::eval_date, /* 57 */
ObExprDateDiff::eval_date_diff, /* 58 */
ObExprMonthsBetween::eval_months_between, /* 59 */
ObExprToSeconds::calc_toseconds, /* 60 */
ObExprSecToTime::calc_sectotime, /* 61 */
ObExprTimeToSec::calc_timetosec, /* 62 */
ObExprSubtime::subtime_datetime, /* 63 */
ObExprSubtime::subtime_varchar, /* 64 */
ObExprDiv::div_float, /* 65 */
ObExprDiv::div_double, /* 66 */
ObExprDiv::div_number, /* 67 */
ObExprDiv::div_intervalym_number, /* 68 */
ObExprDiv::div_intervalds_number, /* 69 */
ObExprEffectiveTenant::eval_effective_tenant, /* 70 */
ObExprEffectiveTenantId::eval_effective_tenant_id, /* 71 */
ObExprExists::exists_eval, /* 72 */
calc_exp_expr_double, /* 73 */
calc_exp_expr_number, /* 74 */
ObExprExtract::calc_extract_oracle, /* 75 */
ObExprExtract::calc_extract_mysql, /* 76 */
ObExprFoundRows::eval_found_rows, /* 77 */
ObExprFromUnixTime::eval_one_temporal_fromtime, /* 78 */
ObExprFromUnixTime::eval_one_param_fromtime, /* 79 */
ObExprFromUnixTime::eval_fromtime_normal, /* 80 */
ObExprFromUnixTime::eval_fromtime_special, /* 81 */
calc_ceil_floor, /* 82 */
ObExprFuncPartKey::calc_partition_key, /* 83 */
calc_round_expr_datetime1, /* 84 */
calc_round_expr_datetime2, /* 85 */
calc_round_expr_numeric2, /* 86 */
calc_round_expr_numeric1, /* 87 */
ObExprBaseGreatest::calc_greatest, /* 88 */
ObExprHostIP::eval_host_ip, /* 89 */
calc_initcap_expr, /* 90 */
ObExprTrim::eval_trim, /* 91 */
ObExprInsert::calc_expr_insert, /* 92 */
ObExprInt2ip::int2ip_varchar, /* 93 */
ObExprIntDiv::div_int_int, /* 94 */
ObExprIntDiv::div_int_uint, /* 95 */
ObExprIntDiv::div_uint_int, /* 96 */
ObExprIntDiv::div_uint_uint, /* 97 */
ObExprIntDiv::div_number, /* 98 */
ObExprIp2int::ip2int_varchar, /* 99 */
ObExprIs::calc_is_date_int_null, /* 100 */
ObExprIs::calc_is_null, /* 101 */
ObExprIs::int_is_true, /* 102 */
ObExprIs::int_is_false, /* 103 */
ObExprIs::float_is_true, /* 104 */
ObExprIs::float_is_false, /* 105 */
ObExprIs::double_is_true, /* 106 */
ObExprIs::double_is_false, /* 107 */
ObExprIs::number_is_true, /* 108 */
ObExprIs::number_is_false, /* 109 */
ObExprIsNot::calc_is_not_null, /* 110 */
ObExprIsNot::int_is_not_true, /* 111 */
ObExprIsNot::int_is_not_false, /* 112 */
ObExprIsNot::float_is_not_true, /* 113 */
ObExprIsNot::float_is_not_false, /* 114 */
ObExprIsNot::double_is_not_true, /* 115 */
ObExprIsNot::double_is_not_false, /* 116 */
ObExprIsNot::number_is_not_true, /* 117 */
ObExprIsNot::number_is_not_false, /* 118 */
ObExprLastExecId::eval_last_exec_id, /* 119 */
ObExprLastTraceId::eval_last_trace_id, /* 120 */
ObExprBaseLeast::calc_least, /* 121 */
calc_left_expr, /* 122 */
ObExprLength::calc_null, /* 123 */
ObExprLength::calc_oracle_mode, /* 124 */
ObExprLength::calc_mysql_mode, /* 125 */
ObExprLike::like_varchar, /* 126 */
calc_ln_expr_mysql, /* 127 */
calc_ln_expr_oracle_double, /* 128 */
calc_ln_expr_oracle_number, /* 129 */
calc_log10_expr, /* 130 */
calc_log2_expr, /* 131 */
calc_log_expr_double, /* 132 */
calc_log_expr_number, /* 133 */
ObExprLower::calc_lower, /* 134 */
ObExprUpper::calc_upper, /* 135 */
ObExprMd5::calc_md5, /* 136 */
ObExprMinus::minus_datetime_datetime, /* 137 */
ObExprMinus::minus_datetime_datetime_oracle, /* 138 */
ObExprMinus::minus_datetime_intervalds, /* 139 */
ObExprMinus::minus_datetime_intervalym, /* 140 */
ObExprMinus::minus_datetime_number, /* 141 */
ObExprMinus::minus_double_double, /* 142 */
ObExprMinus::minus_float_float, /* 143 */
ObExprMinus::minus_intervalds_intervalds, /* 144 */
ObExprMinus::minus_intervalym_intervalym, /* 145 */
ObExprMinus::minus_int_int, /* 146 */
ObExprMinus::minus_int_uint, /* 147 */
ObExprMinus::minus_number_number, /* 148 */
ObExprMinus::minus_timestampltz_intervalym, /* 149 */
ObExprMinus::minus_timestampnano_intervalym, /* 150 */
ObExprMinus::minus_timestamp_timestamp, /* 151 */
ObExprMinus::minus_timestamp_tiny_intervalds, /* 152 */
ObExprMinus::minus_timestamptz_intervalds, /* 153 */
ObExprMinus::minus_timestamptz_intervalym, /* 154 */
ObExprMinus::minus_uint_int, /* 155 */
ObExprMinus::minus_uint_uint, /* 156 */
ObExprMod::mod_double, /* 157 */
ObExprMod::mod_float, /* 158 */
ObExprMod::mod_int_int, /* 159 */
ObExprMod::mod_int_uint, /* 160 */
ObExprMod::mod_number, /* 161 */
ObExprMod::mod_uint_int, /* 162 */
ObExprMod::mod_uint_uint, /* 163 */
ObExprMul::mul_double, /* 164 */
ObExprMul::mul_float, /* 165 */
ObExprMul::mul_intervalds_number, /* 166 */
ObExprMul::mul_intervalym_number, /* 167 */
ObExprMul::mul_int_int, /* 168 */
ObExprMul::mul_int_uint, /* 169 */
ObExprMul::mul_number, /* 170 */
ObExprMul::mul_number_intervalds, /* 171 */
ObExprMul::mul_number_intervalym, /* 172 */
ObExprMul::mul_uint_int, /* 173 */
ObExprMul::mul_uint_uint, /* 174 */
ObExprMySQLPort::eval_mysql_port, /* 175 */
NULL, // ObExprNeg::eval_tinyint is deleted /* 176 */
calc_not_between_expr, /* 177 */
ObExprNot::eval_not, /* 178 */
ObExprNotExists::not_exists_eval, /* 179 */
ObExprNullSafeEqual::ns_equal_eval, /* 180 */
ObExprNullSafeEqual::row_ns_equal_eval, /* 181 */
ObExprNvlUtil::calc_nvl_expr, /* 182 */
ObExprNvlUtil::calc_nvl_expr2, /* 183 */
ObSubQueryRelationalExpr::subquery_cmp_eval, /* 184 */
ObBitwiseExprOperator::calc_result2_oracle, /* 185 */
ObBitwiseExprOperator::calc_result2_mysql, /* 186 */
ObRelationalExprOperator::row_eval, /* 187 */
calc_or_exprN, /* 188 */
ObExprPow::calc_pow_expr, /* 189 */
calc_power_expr_oracle, /* 190 */
ObExprRegexp::eval_regexp, /* 191 */
ObExprRegexpCount::eval_regexp_count, /* 192 */
ObExprRegexpInstr::eval_regexp_instr, /* 193 */
ObExprRegexpLike::eval_regexp_like, /* 194 */
ObExprRegexpReplace::eval_regexp_replace, /* 195 */
ObExprRegexpSubstr::eval_regexp_substr, /* 196 */
ObExprRepeat::eval_repeat, /* 197 */
ObExprReplace::eval_replace, /* 198 */
ObExprFuncDump::eval_dump, /* 199 */
ObExprFuncPartOldKey::eval_part_old_key, /* 200 */
ObExprFuncPartHash::eval_part_hash, /* 201 */
ObExprFuncAddrToPartId::eval_addr_to_part_id, /* 202 */
ObExprAutoincNextval::eval_nextval, /* 203 */
ObExprFuncLnnvl::eval_lnnvl, /* 204 */
ObExprIsServingTenant::eval_is_serving_tenant, /* 205 */
ObExprSysPrivilegeCheck::eval_sys_privilege_check, /* 206 */
ObExprField::eval_field, /* 207 */
ObExprElt::eval_elt, /* 208 */
ObExprDesHexStr::eval_des_hex_str, /* 209 */
calc_right_expr, /* 210 */
ObExprRowCount::eval_row_count, /* 211 */
ObExprRowNum::rownum_eval, /* 212 */
ObExprRpcPort::eval_rpc_port, /* 213 */
NULL, // ObExprCot::calc_cot_expr, /* 214 */
calc_sign_expr, /* 215 */
calc_sin_expr, /* 216 */
calc_sinh_expr, /* 217 */
ObExprSpace::eval_space, /* 218 */
calc_sqrt_expr_mysql, /* 219 */
calc_sqrt_expr_oracle_double, /* 220 */
calc_sqrt_expr_oracle_number, /* 221 */
calc_str_to_date_expr_time, /* 222 */
calc_str_to_date_expr_date, /* 223 */
calc_str_to_date_expr_datetime, /* 224 */
ObExprSubQueryRef::expr_eval, /* 225 */
ObExprSubstr::eval_substr, /* 226 */
ObExprSubstringIndex::eval_substring_index, /* 227 */
calc_tan_expr, /* 228 */
calc_tanh_expr, /* 229 */
ObExprDayOfMonth::calc_dayofmonth, /* 230 */
ObExprDayOfWeek::calc_dayofweek, /* 231 */
ObExprDayOfYear::calc_dayofyear, /* 232 */
ObExprHour::calc_hour, /* 233 */
ObExprMicrosecond::calc_microsecond, /* 234 */
ObExprMinute::calc_minute, /* 235 */
ObExprMonth::calc_month, /* 236 */
ObExprSecond::calc_second, /* 237 */
ObExprTime::calc_time, /* 238 */
ObExprYear::calc_year, /* 239 */
calc_timestampadd_expr, /* 240 */
ObExprLocalTimestamp::eval_localtimestamp, /* 241 */
ObExprSysTimestamp::eval_systimestamp, /* 242 */
calc_time_to_usec_expr, /* 243 */
ObExprDbtimezone::eval_db_timezone, /* 244 */
ObExprSessiontimezone::eval_session_timezone, /* 245 */
calc_todays_expr, /* 246 */
calc_to_temporal_expr, /* 247 */
calc_translate_expr, /* 248 */
ObExprTrim::eval_trim, /* 249 */
ObExprUid::eval_uid, /* 250 */
ObExprUnhex::eval_unhex, /* 251 */
calc_usec_to_time_expr, /* 252 */
ObExprUser::eval_user, /* 253 */
ObExprUuid::eval_uuid, /* 254 */
ObExprSysGuid::eval_sys_guid, /* 255 */
ObExprVersion::eval_version, /* 256 */
ObExprXor::eval_xor, /* 257 */
calc_charset_expr, /* 258 */
calc_collation_expr, /* 259 */
calc_coercibility_expr, /* 260 */
calc_set_collation_expr, /* 261 */
calc_cmp_meta_expr, /* 262 */
calc_trunc_expr_datetime, /* 263 */
calc_trunc_expr_numeric, /* 264 */
calc_truncate_expr, /* 265 */
ObExprEstimateNdv::calc_estimate_ndv_expr, /* 266 */
ObExprFindInSet::calc_find_in_set_expr, /* 267 */
ObExprGetSysVar::calc_get_sys_val_expr, /* 268 */
ObExprToNumber::calc_tonumber_expr, /* 269 */
ObExprToBinaryFloat::calc_to_binaryfloat_expr, /* 270 */
ObExprToBinaryDouble::calc_to_binarydouble_expr, /* 271 */
ObExprHextoraw::calc_hextoraw_expr, /* 272 */
ObExprRawtohex::calc_rawtohex_expr, /* 273 */
ObExprChr::calc_chr_expr, /* 274 */
ObExprIfNull::calc_ifnull_expr, /* 275 */
ObExprLengthb::calc_lengthb_expr, /* 276 */
ObExprAscii::calc_ascii_expr, /* 277 */
ObExprOrd::calc_ord_expr, /* 278 */
ObExprInstr::calc_mysql_instr_expr, /* 279 */
ObExprOracleInstr::calc_oracle_instr_expr, /* 280 */
ObLocationExprOperator::calc_location_expr, /* 281 */
ObExprCalcPartitionId::calc_no_partition_location, /* 282 */
ObExprCalcPartitionId::calc_partition_level_one, /* 283 */
ObExprCalcPartitionId::calc_partition_level_two, /* 284 */
ObExprPrior::calc_prior_expr, /* 285 */
ObExprSeqNextval::calc_sequence_nextval, /* 286 */
calc_reverse_expr, /* 287 */
calc_instrb_expr, /* 288 */
ObExprConcatWs::calc_concat_ws_expr, /* 289 */
ObExprMakeSet::calc_make_set_expr, /* 290 */
ObExprInterval::calc_interval_expr, /* 291 */
ObExprSysOpOpnsize::calc_sys_op_opnsize_expr, /* 292 */
ObExprQuote::calc_quote_expr, /* 293 */
ObExprDateAdd::calc_date_add, /* 294 */
ObExprDateSub::calc_date_sub, /* 295 */
ObExprAddMonths::calc_add_months, /* 296 */
ObExprLastDay::calc_last_day, /* 297 */
ObExprNextDay::calc_next_day, /* 298 */
ObExprFromDays::calc_fromdays, /* 299 */
ObExprPeriodDiff::calc_perioddiff, /* 300 */
ObExprTimeDiff::calc_timediff, /* 301 */
ObExprTimestampNvl::calc_timestampnvl, /* 302 */
ObExprToYMInterval::calc_to_yminterval, /* 303 */
ObExprToDSInterval::calc_to_dsinterval, /* 304 */
ObExprNumToYMInterval::calc_num_to_yminterval, /* 305 */
ObExprNumToDSInterval::calc_num_to_dsinterval, /* 306 */
ObExprWeekOfYear::calc_weekofyear, /* 307 */
ObExprWeekDay::calc_weekday, /* 308 */
ObExprYearWeek::calc_yearweek, /* 309 */
ObExprWeek::calc_week, /* 310 */
ObExprInOrNotIn::eval_in_with_row, /* 311 */
ObExprInOrNotIn::eval_in_without_row, /* 312 */
ObExprInOrNotIn::eval_in_with_row_fallback, /* 313 */
ObExprInOrNotIn::eval_in_without_row_fallback, /* 314 */
ObExprInOrNotIn::eval_in_with_subquery, /* 315 */
ObExprFunDefault::calc_default_expr, /* 316 */
ObExprSubstrb::calc_substrb_expr, /* 317 */
ObExprRemainder::calc_remainder_expr, /* 318 */
ObExprRandom::calc_random_expr_const_seed, /* 319 */
ObExprRandom::calc_random_expr_nonconst_seed, /* 320 */
ObExprWidthBucket::calc_width_bucket_expr, /* 321 */
ObExprSysExtractUtc::calc_sys_extract_utc, /* 322 */
ObExprToClob::calc_to_clob_expr, /* 323 */
ObExprUserEnv::calc_user_env_expr, /* 324 */
ObExprVsize::calc_vsize_expr, /* 325 */
ObExprOracleLpad::calc_oracle_lpad_expr, /* 326 */
ObExprOracleRpad::calc_oracle_rpad_expr, /* 327 */
ObExprLpad::calc_mysql_lpad_expr, /* 328 */
ObExprRpad::calc_mysql_rpad_expr, /* 329 */
ObExprPad::calc_pad_expr, /* 330 */
ObExprFunValues::eval_values, /* 331 */
ObExprConnectByRoot::eval_connect_by_root, /* 332 */
ObExprOracleToChar::eval_oracle_to_char, /* 333 */
ObExprPartId::eval_part_id, /* 334 */
ObExprHex::eval_hex, /* 335 */
ObExprShadowUKProject::shadow_uk_project, /* 336 */
ObExprCharLength::eval_char_length, /* 337 */
ObExprUnixTimestamp::eval_unix_timestamp, /* 338 */
NULL, // ObExprAesDecrypt::eval_aes_decrypt, /* 339 */
NULL, // ObExprAesEncrypt::eval_aes_encrypt, /* 340 */
ObExprCase::calc_case_expr, /* 341 */
ObExprOracleDecode::eval_decode, /* 342 */
ObExprRemoveConst::eval_remove_const, /* 343 */
ObExprSleep::eval_sleep, /* 344 */
ObExprSysContext::eval_sys_context, /* 345 */
ObExprTimeStampDiff::eval_timestamp_diff, /* 347 */
ObExprFromTz::eval_from_tz, /* 348 */
ObExprTzOffset::eval_tz_offset, /* 349 */
ObExprOrahash::eval_orahash, /* 350 */
ObExprGetUserVar::eval_get_user_var, /* 351 */
ObExprUtil::eval_generated_column, /* 352 */
ObExprCalcPartitionId::calc_opt_route_hash_one, /* 353 */
calc_convert_expr, /* 354 */
ObExprSetToStr::calc_to_str_expr, /* 355 */
ObExprEnumToStr::calc_to_str_expr, /* 356 */
ObExprSetToInnerType::calc_to_inner_expr, /* 357 */
ObExprEnumToInnerType::calc_to_inner_expr, /* 358 */
ObExprDateFormat::calc_date_format_invalid, /* 359 */
ObExprDateFormat::calc_date_format, /* 360 */
ObExprCalcURowID::calc_urowid, /* 361 */
ObExprFuncPartOldHash::eval_old_part_hash, /* 362 */
ObExprFuncPartNewKey::calc_new_partition_key, /* 363 */
ObExprUtil::eval_stack_overflow_check, /* 364 */
ObExprSysConnectByPath::calc_sys_path, /* 365 */
ObExprLastInsertID::eval_last_insert_id, /* 366 */
ObExprPartIdPseudoColumn::eval_part_id, /* 367 */
ObExprNullif::eval_nullif, /* 368 */
ObExprOracleNullif::eval_nullif, /* 369 */
ObExprUserCanAccessObj::eval_user_can_access_obj, /* 370 */
ObExprEmptyClob::eval_empty_clob, /* 371 */
ObExprEmptyBlob::eval_empty_blob, /* 372 */
ObExprRadians::calc_radians_expr, /* 373 */
ObExprMakeTime::eval_maketime, /* 374 */
ObExprMonthName::calc_month_name, /* 375 */
ObExprToBlob::eval_to_blob, /* 376 */
ObExprNlsLower::calc_lower, /* 378 */
ObExprNlsUpper::calc_upper, /* 379 */
ObExprToOutfileRow::to_outfile_str, /* 380 */
NULL, // ObExprIs::calc_is_infinite, /* 381 */
NULL, // ObExprIs::calc_is_nan, /* 382 */
NULL, // ObExprIsNot::calc_is_not_infinite, /* 383 */
NULL, // ObExprIsNot::calc_is_not_nan, /* 384 */
ObExprOracleNullif::eval_nullif_not_null, /* 385 */
NULL, // ObExprNaNvl::eval_nanvl, /* 386 */
ObExprFormat::calc_format_expr, /* 387 */
calc_translate_using_expr, /* 388 */
ObExprQuarter::calc_quater, /* 389 */
ObExprBitLength::calc_bit_length /* 390 */
};
REG_SER_FUNC_ARRAY(OB_SFA_SQL_EXPR_EVAL, g_expr_eval_functions, ARRAYSIZEOF(g_expr_eval_functions));
} // end namespace sql
} // end namespace oceanbase