31 #include <sys/timeb.h> 86 DB_VALUE *peek_left, *peek_right, *peek_third, *peek_fourth;
92 arithptr = regu_var->
value.arithptr;
95 *peek_dbval = arithptr->
value;
448 #if defined(ENABLE_UNUSED_FUNCTION) 668 original_domain = regu_var->domain;
669 regu_var->domain =
NULL;
675 bool check_empty_string;
680 if (check_empty_string && regu_var->domain !=
NULL 772 #if defined(ENABLE_UNUSED_FUNCTION) 800 arithptr->
value, vd))
1072 *peek_dbval = peek_left;
1074 goto fetch_peek_arith_end;
1136 DB_VALUE tmp_len, tmp_arg2, tmp_arg3;
1830 struct tm *c_time_struct, tm_val;
1834 c_time_struct = localtime_r (&sec, &tm_val);
1836 if (c_time_struct !=
NULL)
1838 db_datetime_encode (&sys_datetime, c_time_struct->tm_mon + 1, c_time_struct->tm_mday,
1839 c_time_struct->tm_year + 1900, c_time_struct->tm_hour, c_time_struct->tm_min,
1840 c_time_struct->tm_sec, millisec);
1843 db_time = sys_datetime.
time / 1000;
2027 TZ_REGION system_tz_region, session_tz_region;
2047 const char *t_source, *t_dest;
2048 int err_status = 0, len_source, len_dest;
2052 len_source = (int)
strlen (t_source);
2053 len_dest = (int)
strlen (t_dest);
2080 TZ_REGION system_tz_region, session_tz_region;
2107 int year, month, day, hour, minute, second;
2335 regu_var->domain->collation_id);
2382 regu_var->domain->collation_id);
2450 peek_left = &tmp_value;
2482 target_domain = regu_var->domain;
2497 if (target_domain ==
NULL)
2499 TP_DOMAIN *arg1, *arg2, tmp_arg1, tmp_arg2;
2507 src =
DB_IS_NULL (peek_left) ? peek_right : peek_left;
2521 target_domain = regu_var->domain;
2528 if (target_domain ==
NULL)
2530 TP_DOMAIN *arg1, *arg2, *arg3, tmp_arg1, tmp_arg2, tmp_arg3;
2555 target_domain = tmp_domain;
2561 if (peek_third ==
NULL)
2572 if (peek_right ==
NULL)
2696 bool can_compare =
false;
2700 if (cmp_res ==
DB_EQ)
2705 else if (cmp_res ==
DB_UNK && can_compare ==
false)
2712 if (cmp_res ==
DB_EQ)
2717 else if (cmp_res ==
DB_UNK && can_compare ==
false)
2742 bool can_compare =
false;
2746 if (cmp_res ==
DB_EQ)
2751 else if (cmp_res ==
DB_UNK && can_compare ==
false)
2878 DB_VALUE tmp_len, tmp_val, tmp_arg3;
2945 DB_VALUE tmp_len, tmp_arg2, tmp_arg3;
3054 bool can_compare =
false;
3057 target_domain = regu_var->domain;
3063 else if (target_domain ==
NULL)
3065 TP_DOMAIN *arg1, *arg2, tmp_arg1, tmp_arg2;
3074 if (cmp_res ==
DB_EQ)
3078 else if (cmp_res ==
DB_UNK && can_compare ==
false)
3112 target_domain = regu_var->domain;
3113 if (target_domain ==
NULL)
3115 TP_DOMAIN *arg1, *arg2, tmp_arg1, tmp_arg2;
3143 target_domain = regu_var->domain;
3144 if (target_domain ==
NULL)
3146 TP_DOMAIN *arg1, *arg2, tmp_arg1, tmp_arg2;
3166 peek_right, arithptr->
value, vd))
3253 struct drand48_data *rand_buf_p;
3256 lrand48_r (rand_buf_p, &r);
3271 struct drand48_data buf;
3274 srand48_r ((
long)
db_get_int (peek_right), &buf);
3275 lrand48_r (&buf, &r);
3284 arithptr->
rand_seed = (
struct drand48_data *) malloc (
sizeof (
struct drand48_data));
3314 struct drand48_data *rand_buf_p;
3317 drand48_r (rand_buf_p, &r);
3325 struct drand48_data buf;
3328 srand48_r ((
long)
db_get_int (peek_right), &buf);
3329 drand48_r (&buf, &r);
3338 arithptr->
rand_seed = (
struct drand48_data *) malloc (
sizeof (
struct drand48_data));
3502 timezone_milis =
db_get_int (&timezone) * 60000;
3588 int year, month, day, hour, minute, second;
3614 *peek_dbval = arithptr->
value;
3623 regu_var->domain = arithptr->
domain = resolved_dom;
3627 regu_var->domain = arithptr->
domain = original_domain;
3643 regu_var->domain = resolved_dom;
3694 fetch_peek_arith_end:
3699 #if !defined(NDEBUG) 3700 switch (arithptr->
opcode)
3752 if (original_domain)
3755 regu_var->domain = original_domain;
3787 switch (regu_var->type)
3795 *peek_dbval = regu_var->value.attr_descr.cache_dbvalp;
3796 if (*peek_dbval !=
NULL)
3803 *peek_dbval =
heap_attrinfo_access (regu_var->value.attr_descr.id, regu_var->value.attr_descr.cache_attrinfo);
3804 if (*peek_dbval ==
NULL)
3809 regu_var->value.attr_descr.cache_dbvalp = *peek_dbval;
3815 *peek_dbval = ®u_var->value.dbval;
3822 *peek_dbval = ®u_var->value.dbval;
3833 *peek_dbval = regu_var->vfetch_to;
3838 pr_type = regu_var->value.pos_descr.dom->type;
3839 if (pr_type ==
NULL)
3846 if (pr_type->
data_readval (&buf, *peek_dbval, regu_var->value.pos_descr.dom, -1,
false ,
3855 #if defined(QP_DEBUG) 3856 if (regu_var->value.val_pos < 0 || regu_var->value.val_pos > (vd->
dbval_cnt - 1))
3879 *peek_dbval = regu_var->value.dbvalptr;
3886 *peek_dbval = regu_var->value.dbvalptr;
3892 *peek_dbval = ®u_var->value.dbval;
3899 reguval_list = regu_var->value.reguval_list;
3912 error =
fetch_peek_dbval (thread_p, regu, vd, class_oid, obj_oid, tpl, peek_dbval);
3921 error =
fetch_peek_arith (thread_p, regu_var, vd, obj_oid, tpl, peek_dbval);
3934 funcp = regu_var->
value.funcp;
3937 *peek_dbval = funcp->
value;
3950 funcp = regu_var->
value.funcp;
3953 *peek_dbval = funcp->
value;
3961 switch (funcp->
ftype)
3996 while (operand !=
NULL)
4003 operand = operand->
next;
4018 regu_array[
i] =
NULL;
4022 if (num_regu != NUM_F_INSERT_SUBSTRING_ARGS)
4051 bool is_null_elt =
false;
4105 while (idx > 0 && operand !=
NULL)
4107 operand = operand->
next;
4111 if (operand ==
NULL)
4128 #if !defined(NDEBUG) 4154 #if !defined(NDEBUG) 4155 switch (funcp->
ftype)
4314 pos_descr = ®u_var->value.pos_descr;
4316 *peek_dbval = regu_var->vfetch_to;
4321 pr_type = pos_descr->
dom->
type;
4322 if (pr_type ==
NULL)
4336 *next_tpl = ptr + length;
4370 pred_expr = regu_var->value.arithptr->pred;
4470 DB_VALUE *readonly_val, copy_val, *tmp;
4474 result =
fetch_peek_dbval (thread_p, regu_var, vd, class_oid, obj_oid, tpl, &readonly_val);
4488 if (dbval == readonly_val)
4502 if (tmp == ©_val)
4531 int rc, pos, next_pos;
4539 for (regup = regu_list; regup !=
NULL; regup = regup->
next)
4543 pos = regup->
value.value.pos_descr.pos_no;
4544 if (pos >= next_pos)
4547 next_pos = regup->
value.value.pos_descr.pos_no + 1;
4573 pr_share_value (tmp, regup->
value.vfetch_to);
4582 for (regup = regu_list; regup !=
NULL; regup = regup->
next)
4610 for (regu_p = regu_list; regu_p; regu_p = regu_p->
next)
4612 regu_var = ®u_p->
value;
4613 regu_var->value.attr_descr.cache_dbvalp =
NULL;
4631 if (regu_var ==
NULL)
4638 return (regu_var->value.arithptr->opcode ==
T_CAST || regu_var->value.arithptr->opcode ==
T_CAST_WRAP);
4661 int hour, minute, second, millisecond;
4730 int month = 0, day = 0, year = 0;
4731 int second = 0, minute = 0, hour = 0;
4782 int month = 0, day = 0, year = 0;
4783 int second = 0, minute = 0, hour = 0;
4801 if (year == 0 && month == 0 && day == 0 && hour == 0 && minute == 0 && second == 0 && ms == 0)
4814 if (day_of_week == 0)
4850 return error_status;
4871 reguvar.map_regu (map_func);
void REGU_VARIABLE_SET_FLAG(regu_variable_node *regu, int flag)
int julian_encode(int m, int d, int y)
int db_inet_ntoa(DB_VALUE *result_ip_string, const DB_VALUE *number)
int qdata_list_dbs(THREAD_ENTRY *thread_p, DB_VALUE *result_p, tp_domain *domain_p)
TRANID logtb_find_current_tranid(THREAD_ENTRY *thread_p)
int db_sin_dbval(DB_VALUE *result, DB_VALUE *value)
int data_readval(struct or_buf *buf, DB_VALUE *value, const tp_domain *domain, int size, bool copy, char *copy_buf, int copy_buf_len) const
int db_date_format(const DB_VALUE *date_value, const DB_VALUE *format, const DB_VALUE *date_lang, DB_VALUE *result, const TP_DOMAIN *domain)
DB_VALUE * heap_attrinfo_access(ATTR_ID attrid, HEAP_CACHE_ATTRINFO *attr_info)
int db_time_format(const DB_VALUE *src_value, const DB_VALUE *format, const DB_VALUE *date_lang, DB_VALUE *result, const TP_DOMAIN *domain)
bool qdata_evaluate_qprior(THREAD_ENTRY *thread_p, void *xasl_p, regu_variable_node *regu_p, DB_VALUE *result_val_p, val_descr *vd)
REGU_VALUE_ITEM * regu_list
int db_make_datetime(DB_VALUE *value, const DB_DATETIME *datetime)
#define ER_TP_CANT_COERCE
int db_find_string_in_in_set(const DB_VALUE *needle, const DB_VALUE *stack, DB_VALUE *result)
static int get_hour_minute_or_second(const DB_VALUE *datetime, OPERATOR_TYPE op_type, DB_VALUE *db_value)
TP_DOMAIN_STATUS tp_value_change_coll_and_codeset(DB_VALUE *src, DB_VALUE *dest, int coll_id, int codeset)
int db_get_date_quarter(const DB_VALUE *src_date, DB_VALUE *result)
static int get_year_month_or_day(const DB_VALUE *src_date, OPERATOR_TYPE op, DB_VALUE *result)
int db_get_date_totaldays(const DB_VALUE *src_date, DB_VALUE *result)
int pr_data_writeval_disk_size(DB_VALUE *value)
int db_string_space(DB_VALUE const *count, DB_VALUE *result)
REGU_VARIABLE_LIST operand
int session_get_exec_stats_and_clear(THREAD_ENTRY *thread_p, const DB_VALUE *name, DB_VALUE *result)
int qdata_divmod_dbval(DB_VALUE *dbval1_p, DB_VALUE *dbval2_p, OPERATOR_TYPE op, DB_VALUE *result_p, tp_domain *domain_p)
int session_get_last_insert_id(THREAD_ENTRY *thread_p, DB_VALUE *value, bool update_last_insert_id)
int qdata_bit_xor_dbval(DB_VALUE *dbval1_p, DB_VALUE *dbval2_p, DB_VALUE *result_p, tp_domain *domain_p)
static int fetch_peek_dbval_pos(REGU_VARIABLE *regu_var, QFILE_TUPLE tpl, int pos, DB_VALUE **peek_dbval, QFILE_TUPLE *next_tpl)
int session_get_variable(THREAD_ENTRY *thread_p, const DB_VALUE *name, DB_VALUE *result)
DB_CONST_C_BIT db_get_bit(const DB_VALUE *value, int *length)
int db_bigint_to_binary_string(const DB_VALUE *src_bigint, DB_VALUE *result)
int db_add_int_to_datetime(DB_DATETIME *datetime, DB_BIGINT bi2, DB_DATETIME *result_datetime)
int db_string_chr(DB_VALUE *res, DB_VALUE *dbval1, DB_VALUE *dbval2)
int qdata_strcat_dbval(DB_VALUE *dbval1_p, DB_VALUE *dbval2_p, DB_VALUE *result_p, tp_domain *domain_p)
int db_string_index_prefix(const DB_VALUE *string1, const DB_VALUE *string2, const DB_VALUE *index_type, DB_VALUE *prefix_index)
int db_get_int(const DB_VALUE *value)
int thread_get_recursion_depth(cubthread::entry *thread_p)
QFILE_TUPLE_VALUE_FLAG qfile_locate_tuple_value_r(QFILE_TUPLE tuple, int index, char **tuple_value_p, int *value_size_p)
void tz_timestamp_decode_no_leap_sec(int timestamp, int *yearp, int *monthsp, int *dayp, int *hoursp, int *minutesp, int *secondsp)
int db_char_to_blob(const DB_VALUE *src_value, DB_VALUE *result_value)
int db_new_time(DB_VALUE *time_val, DB_VALUE *tz_source, DB_VALUE *tz_dest, DB_VALUE *result_time)
#define CHECK_REGU_VARIABLE_XASL_STATUS(r)
int db_convert_sec_to_time(const DB_VALUE *src, DB_VALUE *result)
int db_get_string_collation(const DB_VALUE *value)
int db_timestamp_encode_ses(const DB_DATE *date, const DB_TIME *timeval, DB_TIMESTAMP *utime, TZ_ID *dest_tz_id)
const int REGU_VARIABLE_FIELD_NESTED
#define OR_BUF_INIT(buf, data, size)
int xserial_get_current_value(THREAD_ENTRY *thread_p, DB_VALUE *result_num, const OID *oid_p, int cached_num)
TP_DOMAIN_STATUS tp_value_auto_cast(const DB_VALUE *src, DB_VALUE *dest, const TP_DOMAIN *desired_domain)
#define ER_QPROC_INVALID_XASLNODE
#define ER_QPROC_INCOMPATIBLE_TYPES
DB_VALUE_COMPARE_RESULT tp_value_compare_with_error(const DB_VALUE *value1, const DB_VALUE *value2, int do_coercion, int total_order, bool *can_compare)
#define SECONDS_OF_ONE_DAY
int db_guid(THREAD_ENTRY *thread_p, DB_VALUE *result)
int db_get_enum_codeset(const DB_VALUE *value)
int pr_is_variable_type(DB_TYPE id)
int db_power_dbval(DB_VALUE *result, DB_VALUE *value1, DB_VALUE *value2)
int db_asin_dbval(DB_VALUE *result, DB_VALUE *value)
void tz_get_session_tz_region(TZ_REGION *tz_region)
int fetch_copy_dbval(THREAD_ENTRY *thread_p, REGU_VARIABLE *regu_var, val_descr *vd, OID *class_oid, OID *obj_oid, QFILE_TUPLE tpl, DB_VALUE *dbval)
int db_get_time_from_dbvalue(const DB_VALUE *src_date, int *hour, int *minute, int *second, int *millisecond)
int db_string_reverse(const DB_VALUE *src_str, DB_VALUE *result_str)
int db_exp_dbval(DB_VALUE *result, DB_VALUE *value)
int db_round_dbval(DB_VALUE *result, DB_VALUE *value1, DB_VALUE *value2)
TP_DOMAIN * tp_domain_resolve_value(const DB_VALUE *val, TP_DOMAIN *dbuf)
int db_string_from_base64(DB_VALUE const *src, DB_VALUE *result)
int qdata_unary_minus_dbval(DB_VALUE *result_p, DB_VALUE *dbval_p)
int qdata_bit_not_dbval(DB_VALUE *dbval_p, DB_VALUE *result_p, tp_domain *domain_p)
bool REGU_VARIABLE_IS_FLAGED(const regu_variable_node *regu, int flag)
int tz_conv_tz_time_w_zone_name(const DB_TIME *time_source, const char *source_zone, int len_source, const char *dest_zone, int len_dest, DB_TIME *time_dest)
TP_DOMAIN tp_Integer_domain
int db_time_dbval(DB_VALUE *result, const DB_VALUE *datetime_value, const TP_DOMAIN *domain)
int db_from_unixtime(const DB_VALUE *src_value, const DB_VALUE *format, const DB_VALUE *date_lang, DB_VALUE *result, const TP_DOMAIN *domain)
void fetch_force_not_const_recursive(REGU_VARIABLE ®uvar)
int db_string_sha_one(DB_VALUE const *src, DB_VALUE *result)
int db_to_timestamp(const DB_VALUE *src_str, const DB_VALUE *format_str, const DB_VALUE *date_lang, const DB_TYPE type, DB_VALUE *result_timestamp)
int tz_conv_tz_datetime_w_region(const DB_DATETIME *src_dt, const TZ_REGION *src_tz_region, const TZ_REGION *dest_tz_region, DB_DATETIME *dest_dt, TZ_ID *src_tz_id_out, TZ_ID *dest_tz_id_out)
#define ER_MAX_RECURSION_SQL_DEPTH
int db_add_time(const DB_VALUE *left, const DB_VALUE *right, DB_VALUE *result, const TP_DOMAIN *domain)
enum tp_domain_status TP_DOMAIN_STATUS
int db_timestamp_encode_sys(const DB_DATE *date, const DB_TIME *timeval, DB_TIMESTAMP *utime, TZ_ID *dest_tz_id)
int qdata_subtract_dbval(DB_VALUE *dbval1_p, DB_VALUE *dbval2_p, DB_VALUE *result_p, tp_domain *domain_p)
int db_sign_dbval(DB_VALUE *result, DB_VALUE *value)
bool qdata_evaluate_connect_by_root(THREAD_ENTRY *thread_p, void *xasl_p, regu_variable_node *regu_p, DB_VALUE *result_val_p, val_descr *vd)
int qdata_bit_and_dbval(DB_VALUE *dbval1_p, DB_VALUE *dbval2_p, DB_VALUE *result_p, tp_domain *domain_p)
int db_blob_length(const DB_VALUE *src_value, DB_VALUE *result_value)
const int REGU_VARIABLE_FETCH_NOT_CONST
int db_atan2_dbval(DB_VALUE *result, DB_VALUE *value, DB_VALUE *value2)
QFILE_TUPLE_VALUE_FLAG qfile_locate_tuple_value(QFILE_TUPLE tuple, int index, char **tuple_value_p, int *value_size_p)
int db_log_generic_dbval(DB_VALUE *result, DB_VALUE *value, long b)
int db_string_substring(const MISC_OPERAND substr_operand, const DB_VALUE *src_string, const DB_VALUE *start_position, const DB_VALUE *extraction_length, DB_VALUE *sub_string)
int db_sleep(DB_VALUE *result, DB_VALUE *value)
int qdata_multiply_dbval(DB_VALUE *dbval1_p, DB_VALUE *dbval2_p, DB_VALUE *result_p, tp_domain *domain_p)
int qdata_divide_dbval(DB_VALUE *dbval1_p, DB_VALUE *dbval2_p, DB_VALUE *result_p, tp_domain *domain_p)
int db_string_aes_decrypt(DB_VALUE const *src, DB_VALUE const *key, DB_VALUE *result)
int db_make_string(DB_VALUE *value, DB_CONST_C_CHAR str)
DB_LOGICAL eval_pred(THREAD_ENTRY *thread_p, const PRED_EXPR *pr, val_descr *vd, OID *obj_oid)
bool pr_is_set_type(DB_TYPE type)
int db_string_position(const DB_VALUE *sub_string, const DB_VALUE *src_string, DB_VALUE *result)
unsigned int DB_TIMESTAMP
int db_unix_timestamp(const DB_VALUE *src_date, DB_VALUE *result_timestamp)
int db_add_days_to_year(const DB_VALUE *src_year, const DB_VALUE *src_days, DB_VALUE *result)
void er_set(int severity, const char *file_name, const int line_no, int err_id, int num_args,...)
int db_string_lower(const DB_VALUE *string, DB_VALUE *lower_string)
cubxasl::pred_expr * pred
int db_cot_dbval(DB_VALUE *result, DB_VALUE *value)
int db_value_put_encoded_time(DB_VALUE *value, const DB_TIME *time)
int db_log_dbval(DB_VALUE *result, DB_VALUE *value1, DB_VALUE *value2)
int db_bit_count_dbval(DB_VALUE *result, DB_VALUE *value)
MISC_OPERAND misc_operand
void fetch_init_val_list(regu_variable_list_node *regu_list)
struct db_domain_info::numeric_info numeric_info
int prm_get_integer_value(PARAM_ID prm_id)
#define ER_TIME_CONVERSION
TP_DOMAIN * tp_infer_common_domain(TP_DOMAIN *arg1, TP_DOMAIN *arg2)
const int REGU_VARIABLE_FIELD_COMPARE
int tp_domain_status_er_set(TP_DOMAIN_STATUS status, const char *file_name, const int line_no, const DB_VALUE *src, const TP_DOMAIN *domain)
int db_string_replace(const DB_VALUE *src_string, const DB_VALUE *srch_string, const DB_VALUE *repl_string, DB_VALUE *replaced_string)
int db_format(const DB_VALUE *value, const DB_VALUE *decimals, const DB_VALUE *number_lang, DB_VALUE *result, const TP_DOMAIN *domain)
static bool is_argument_wrapped_with_cast_op(const REGU_VARIABLE *regu_var)
int db_time_encode(DB_TIME *timeval, int hour, int minute, int second)
int db_string_compare(const DB_VALUE *string1, const DB_VALUE *string2, DB_VALUE *result)
int qdata_evaluate_function(THREAD_ENTRY *thread_p, regu_variable_node *function_p, val_descr *val_desc_p, OID *obj_oid_p, QFILE_TUPLE tuple)
#define ER_ATTEMPT_TO_USE_ZERODATE
union cubxasl::pred_expr::@185 pe
int db_tan_dbval(DB_VALUE *result, DB_VALUE *value)
int fetch_peek_dbval(THREAD_ENTRY *thread_p, REGU_VARIABLE *regu_var, val_descr *vd, OID *class_oid, OID *obj_oid, QFILE_TUPLE tpl, DB_VALUE **peek_dbval)
int qdata_extract_dbval(const MISC_OPERAND extr_operand, DB_VALUE *dbval_p, DB_VALUE *result_p, tp_domain *domain_p)
int db_string_pad(const MISC_OPERAND pad_operand, const DB_VALUE *src_string, const DB_VALUE *pad_length, const DB_VALUE *pad_charset, DB_VALUE *padded_string)
#define DB_VALUE_DOMAIN_TYPE(value)
int db_to_datetime(const DB_VALUE *src_str, const DB_VALUE *format_str, const DB_VALUE *date_lang, const DB_TYPE type, DB_VALUE *result_datetime)
int db_ascii(const DB_VALUE *param, DB_VALUE *result)
int db_string_substring_index(DB_VALUE *src_string, DB_VALUE *delim_string, const DB_VALUE *count, DB_VALUE *result)
#define TP_DOMAIN_COLLATION(dom)
int db_string_upper(const DB_VALUE *string, DB_VALUE *upper_string)
struct drand48_data * rand_seed
int db_acos_dbval(DB_VALUE *result, DB_VALUE *value)
#define NUM_F_INSERT_SUBSTRING_ARGS
int db_date_dbval(DB_VALUE *result, const DB_VALUE *date_value, const TP_DOMAIN *domain)
bool qdata_evaluate_sys_connect_by_path(THREAD_ENTRY *thread_p, void *xasl_p, regu_variable_node *regu_p, DB_VALUE *value_char, DB_VALUE *result_p, val_descr *vd)
int db_string_put_cs_and_collation(DB_VALUE *value, const int codeset, const int collation_id)
TP_DOMAIN_STATUS tp_value_cast(const DB_VALUE *src, DB_VALUE *dest, const TP_DOMAIN *desired_domain, bool implicit_coercion)
#define TP_DOMAIN_TYPE(dom)
static int get_date_weekday(const DB_VALUE *src_date, OPERATOR_TYPE op, DB_VALUE *result)
int session_get_trace_stats(THREAD_ENTRY *thread_p, DB_VALUE *result)
int db_timestamp(const DB_VALUE *src_datetime1, const DB_VALUE *src_time2, DB_VALUE *result_datetime)
int db_str_to_date(const DB_VALUE *str, const DB_VALUE *format, const DB_VALUE *date_lang, DB_VALUE *result, TP_DOMAIN *domain)
int db_string_translate(const DB_VALUE *src_string, const DB_VALUE *from_string, const DB_VALUE *to_string, DB_VALUE *transed_string)
#define QFILE_TUPLE_LENGTH_SIZE
int db_blob_to_bit(const DB_VALUE *src_value, const DB_VALUE *length_value, DB_VALUE *result_value)
int db_get_day_of_week(int year, int month, int day)
int db_string_instr(const DB_VALUE *src_string, const DB_VALUE *sub_string, const DB_VALUE *start_pos, DB_VALUE *result)
int db_date_add_interval_days(DB_VALUE *result, const DB_VALUE *date, const DB_VALUE *db_days)
void tz_get_system_tz_region(TZ_REGION *tz_region)
const char * pr_type_name(DB_TYPE id)
int qdata_add_dbval(DB_VALUE *dbval1_p, DB_VALUE *dbval2_p, DB_VALUE *result_p, tp_domain *domain_p)
int db_value_to_enumeration_value(const DB_VALUE *src, DB_VALUE *result, const TP_DOMAIN *enum_domain)
int xserial_get_next_value(THREAD_ENTRY *thread_p, DB_VALUE *result_num, const OID *oid_p, int cached_num, int num_alloc, int is_auto_increment, bool force_set_last_insert_id)
int db_value_put_encoded_date(DB_VALUE *value, const DB_DATE *date)
void PRIM_SET_NULL(DB_VALUE *value)
int qdata_regu_list_to_regu_array(function_node *function_p, const int array_size, regu_variable_node *regu_array[], int *num_regu)
int db_add_months(const DB_VALUE *src_date, const DB_VALUE *nmonth, DB_VALUE *result_date)
int db_from_tz(DB_VALUE *time_val, DB_VALUE *tz, DB_VALUE *time_val_with_tz)
int db_to_number(const DB_VALUE *src_str, const DB_VALUE *format_str, const DB_VALUE *number_lang, DB_VALUE *result_num)
int qdata_bit_shift_dbval(DB_VALUE *dbval1_p, DB_VALUE *dbval2_p, OPERATOR_TYPE op, DB_VALUE *result_p, tp_domain *domain_p)
int db_string_aes_encrypt(DB_VALUE const *src, DB_VALUE const *key, DB_VALUE *result)
need_clear_type need_clear
REGU_VALUE_ITEM * current_value
int db_get_cs_coll_info(DB_VALUE *result, const DB_VALUE *val, const int mode)
int db_date_diff(const DB_VALUE *date_value1, const DB_VALUE *date_value2, DB_VALUE *result)
int db_trunc_dbval(DB_VALUE *result, DB_VALUE *value1, DB_VALUE *value2)
int pr_clear_value(DB_VALUE *value)
DB_BIGINT db_get_bigint(const DB_VALUE *value)
int qdata_bit_or_dbval(DB_VALUE *dbval1_p, DB_VALUE *dbval2_p, DB_VALUE *result_p, tp_domain *domain_p)
int db_get_date_from_days(const DB_VALUE *src, DB_VALUE *result)
int db_string_char_length(const DB_VALUE *string, DB_VALUE *char_count)
int session_define_variable(THREAD_ENTRY *thread_p, DB_VALUE *name, DB_VALUE *value, DB_VALUE *result)
const int REGU_VARIABLE_APPLY_COLLATION
#define ER_DATE_CONVERSION
static int fetch_peek_arith(THREAD_ENTRY *thread_p, REGU_VARIABLE *regu_var, val_descr *vd, OID *obj_oid, QFILE_TUPLE tpl, DB_VALUE **peek_dbval)
int db_clob_to_char(const DB_VALUE *src_value, const DB_VALUE *codeset_value, DB_VALUE *result_value)
void util_get_second_and_ms_since_epoch(time_t *secs, int *msec)
int db_last_day(const DB_VALUE *src_date, DB_VALUE *result_day)
int db_inet_aton(DB_VALUE *result_numbered_ip, const DB_VALUE *string)
#define TP_IS_CHAR_TYPE(typeid)
TP_DOMAIN_COLL_ACTION collation_flag
int fetch_val_list(THREAD_ENTRY *thread_p, regu_variable_list_node *regu_list, val_descr *vd, OID *class_oid, OID *obj_oid, QFILE_TUPLE tpl, int peek)
static void error(const char *msg)
int db_date_add_interval_expr(DB_VALUE *result, const DB_VALUE *date, const DB_VALUE *expr, const int unit)
int db_string_to_base64(DB_VALUE const *src, DB_VALUE *result)
#define TP_TYPE_HAS_COLLATION(typeid)
int db_cos_dbval(DB_VALUE *result, DB_VALUE *value)
int pr_clone_value(const DB_VALUE *src, DB_VALUE *dest)
const int REGU_VARIABLE_STRICT_TYPE_CAST
OID * db_get_oid(const DB_VALUE *value)
const int REGU_VARIABLE_INFER_COLLATION
int db_sqrt_dbval(DB_VALUE *result, DB_VALUE *value)
int db_convert_time_to_sec(const DB_VALUE *src_date, DB_VALUE *result)
int pr_is_string_type(DB_TYPE type)
int qdata_get_cardinality(THREAD_ENTRY *thread_p, DB_VALUE *db_class_name, DB_VALUE *db_index_name, DB_VALUE *db_key_position, DB_VALUE *result_p)
int db_get_date_dayofyear(const DB_VALUE *src_date, DB_VALUE *result)
#define ER_QPROC_INVALID_VALLIST_INDEX
int db_hex(const DB_VALUE *param, DB_VALUE *result)
void thread_dec_recursion_depth(cubthread::entry *thread_p)
int db_datetime_encode(DB_DATETIME *datetime, int month, int day, int year, int hour, int minute, int second, int millisecond)
int db_string_trim(const MISC_OPERAND tr_operand, const DB_VALUE *trim_charset, const DB_VALUE *src_string, DB_VALUE *trimmed_string)
int db_convert_to_time(const DB_VALUE *src_hour, const DB_VALUE *src_minute, const DB_VALUE *src_second, DB_VALUE *result)
DB_TIMESTAMP sys_epochtime
const char * tz_get_system_timezone(void)
int db_enum_put_cs_and_collation(DB_VALUE *value, const int codeset, const int collation_id)
int db_to_time(const DB_VALUE *src_str, const DB_VALUE *format_str, const DB_VALUE *date_lang, const DB_TYPE type, DB_VALUE *result_time)
int db_radians_dbval(DB_VALUE *result, DB_VALUE *value)
bool prm_get_bool_value(PARAM_ID prm_id)
int db_months_between(const DB_VALUE *start_mon, const DB_VALUE *end_mon, DB_VALUE *result_mon)
#define QSTR_IS_ANY_CHAR_OR_BIT(s)
class regu_variable_node REGU_VARIABLE
int db_get_string_size(const DB_VALUE *value)
DB_C_SHORT db_get_short(const DB_VALUE *value)
struct drand48_data * qmgr_get_rand_buf(THREAD_ENTRY *thread_p)
int db_to_date(const DB_VALUE *src_str, const DB_VALUE *format_str, const DB_VALUE *date_lang, DB_VALUE *result_date)
const char * tz_get_session_local_timezone(void)
int db_time_diff(const DB_VALUE *val1, const DB_VALUE *val2, DB_VALUE *result)
int db_crc32_dbval(DB_VALUE *result, DB_VALUE *value)
#define ER_QSTR_INCOMPATIBLE_COLLATIONS
int db_least_or_greatest(DB_VALUE *arg1, DB_VALUE *arg2, DB_VALUE *result, bool least)
#define DB_VALUE_TYPE(value)
int db_get_datetime_from_dbvalue(const DB_VALUE *src_date, int *year, int *month, int *day, int *hour, int *minute, int *second, int *millisecond, const char **endp)
int db_to_char(const DB_VALUE *src_value, const DB_VALUE *format_or_length, const DB_VALUE *lang_str, DB_VALUE *result_str, const TP_DOMAIN *domain)
int db_make_null(DB_VALUE *value)
#define DB_IS_NULL(value)
int db_date_sub_interval_days(DB_VALUE *result, const DB_VALUE *date, const DB_VALUE *db_days)
int db_string_sha_two(DB_VALUE const *src, DB_VALUE const *hash_len, DB_VALUE *result)
int db_make_double(DB_VALUE *value, const DB_C_DOUBLE num)
int session_get_row_count(THREAD_ENTRY *thread_p, int *row_count)
int db_mod_dbval(DB_VALUE *result, DB_VALUE *value1, DB_VALUE *value2)
int db_date_sub_interval_expr(DB_VALUE *result, const DB_VALUE *date, const DB_VALUE *expr, const int unit)
int db_string_bit_length(const DB_VALUE *string, DB_VALUE *bit_count)
bool qdata_copy_db_value(DB_VALUE *dest_p, const DB_VALUE *src_p)
int db_floor_dbval(DB_VALUE *result, DB_VALUE *value)
#define EXECUTE_REGU_VARIABLE_XASL(thread_p, r, v)
const int REGU_VARIABLE_FETCH_ALL_CONST
int db_char_to_clob(const DB_VALUE *src_value, DB_VALUE *result_value)
int db_string_repeat(const DB_VALUE *src_string, const DB_VALUE *count, DB_VALUE *result)
int db_make_timestamp(DB_VALUE *value, const DB_C_TIMESTAMP timeval)
int db_make_int(DB_VALUE *value, const int num)
int db_get_string_length(const DB_VALUE *value)
int db_conv(const DB_VALUE *num, const DB_VALUE *from_base, const DB_VALUE *to_base, DB_VALUE *result)
int db_tz_offset(const DB_VALUE *src_str, DB_VALUE *result_str, DB_DATETIME *datetime)
int db_make_oid(DB_VALUE *value, const OID *oid)
int db_atan_dbval(DB_VALUE *result, DB_VALUE *value)
union cubxasl::eval_term::@184 et
int db_sys_timezone(DB_VALUE *result_timezone)
void thread_inc_recursion_depth(cubthread::entry *thread_p)
int db_typeof_dbval(DB_VALUE *result, DB_VALUE *value)
int db_clob_length(const DB_VALUE *src_value, DB_VALUE *result_value)
int db_string_md5(DB_VALUE const *val, DB_VALUE *result)
#define ER_QPROC_INVALID_DATATYPE
int db_abs_dbval(DB_VALUE *result, DB_VALUE *value)
int db_conv_tz(DB_VALUE *time_val, DB_VALUE *result_time)
static int fetch_peek_min_max_value_of_width_bucket_func(THREAD_ENTRY *thread_p, REGU_VARIABLE *regu_var, val_descr *vd, OID *obj_oid, QFILE_TUPLE tpl, DB_VALUE **min, DB_VALUE **max)
int day_of_week(int jul_day)
TP_DOMAIN_STATUS tp_value_cast_force(const DB_VALUE *src, DB_VALUE *dest, const TP_DOMAIN *desired_domain, bool implicit_coercion)
int db_ceil_dbval(DB_VALUE *result, DB_VALUE *value)
int db_get_string_codeset(const DB_VALUE *value)
int db_degrees_dbval(DB_VALUE *result, DB_VALUE *value)
int db_bit_to_blob(const DB_VALUE *src_value, DB_VALUE *result_value)
int db_get_date_week(const DB_VALUE *src_date, const DB_VALUE *mode, DB_VALUE *result)
#define ER_QPROC_GENERIC_FUNCTION_FAILURE
int db_like_bound(const DB_VALUE *const src_pattern, const DB_VALUE *const src_escape, DB_VALUE *const result_bound, const bool compute_lower_bound)
#define TP_DOMAIN_COLLATION_FLAG(dom)
int db_width_bucket(DB_VALUE *result, const DB_VALUE *value1, const DB_VALUE *value2, const DB_VALUE *value3, const DB_VALUE *value4)