#include <item_func.h>
Inheritance diagram for Item_func:


Definition at line 31 of file item_func.h.
| enum Item_func::Functype |
Definition at line 44 of file item_func.h.
00044 { UNKNOWN_FUNC,EQ_FUNC,EQUAL_FUNC,NE_FUNC,LT_FUNC,LE_FUNC, 00045 GE_FUNC,GT_FUNC,FT_FUNC, 00046 LIKE_FUNC,ISNULL_FUNC,ISNOTNULL_FUNC, 00047 COND_AND_FUNC, COND_OR_FUNC, COND_XOR_FUNC, 00048 BETWEEN, IN_FUNC, MULT_EQUAL_FUNC, 00049 INTERVAL_FUNC, ISNOTNULLTEST_FUNC, 00050 SP_EQUALS_FUNC, SP_DISJOINT_FUNC,SP_INTERSECTS_FUNC, 00051 SP_TOUCHES_FUNC,SP_CROSSES_FUNC,SP_WITHIN_FUNC, 00052 SP_CONTAINS_FUNC,SP_OVERLAPS_FUNC, 00053 SP_STARTPOINT,SP_ENDPOINT,SP_EXTERIORRING, 00054 SP_POINTN,SP_GEOMETRYN,SP_INTERIORRINGN, 00055 NOT_FUNC, NOT_ALL_FUNC, 00056 NOW_FUNC, TRIG_COND_FUNC, 00057 GUSERVAR_FUNC, COLLATE_FUNC, 00058 EXTRACT_FUNC, CHAR_TYPECAST_FUNC, FUNC_SP, UDF_FUNC };
Definition at line 59 of file item_func.h.
00059 { OPTIMIZE_NONE,OPTIMIZE_KEY,OPTIMIZE_OP, OPTIMIZE_NULL, 00060 OPTIMIZE_EQUAL };
| Item_func::Item_func | ( | void | ) | [inline] |
Definition at line 63 of file item_func.h.
References Item::with_sum_func.
00063 : 00064 allowed_arg_cols(1), arg_count(0) 00065 { 00066 with_sum_func= 0; 00067 } Item_func(Item *a):
| Item_func::Item_func | ( | Item * | a | ) | [inline] |
Definition at line 68 of file item_func.h.
References args, tmp_arg, and Item::with_sum_func.
00068 : 00069 allowed_arg_cols(1), arg_count(1) 00070 { 00071 args= tmp_arg; 00072 args[0]= a; 00073 with_sum_func= a->with_sum_func; 00074 } Item_func(Item *a,Item *b):
Definition at line 75 of file item_func.h.
References args, tmp_arg, and Item::with_sum_func.
00075 : 00076 allowed_arg_cols(1), arg_count(2) 00077 { 00078 args= tmp_arg; 00079 args[0]= a; args[1]= b; 00080 with_sum_func= a->with_sum_func || b->with_sum_func; 00081 } Item_func(Item *a,Item *b,Item *c):
Definition at line 82 of file item_func.h.
References arg_count, args, sql_alloc(), and Item::with_sum_func.
00082 : 00083 allowed_arg_cols(1) 00084 { 00085 arg_count= 0; 00086 if ((args= (Item**) sql_alloc(sizeof(Item*)*3))) 00087 { 00088 arg_count= 3; 00089 args[0]= a; args[1]= b; args[2]= c; 00090 with_sum_func= a->with_sum_func || b->with_sum_func || c->with_sum_func; 00091 } 00092 } Item_func(Item *a,Item *b,Item *c,Item *d):
Here is the call graph for this function:

Definition at line 93 of file item_func.h.
References arg_count, args, sql_alloc(), and Item::with_sum_func.
00093 : 00094 allowed_arg_cols(1) 00095 { 00096 arg_count= 0; 00097 if ((args= (Item**) sql_alloc(sizeof(Item*)*4))) 00098 { 00099 arg_count= 4; 00100 args[0]= a; args[1]= b; args[2]= c; args[3]= d; 00101 with_sum_func= a->with_sum_func || b->with_sum_func || 00102 c->with_sum_func || d->with_sum_func; 00103 } 00104 } Item_func(Item *a,Item *b,Item *c,Item *d,Item* e):
Here is the call graph for this function:

Definition at line 105 of file item_func.h.
References arg_count, args, e, sql_alloc(), and Item::with_sum_func.
00105 : 00106 allowed_arg_cols(1) 00107 { 00108 arg_count= 5; 00109 if ((args= (Item**) sql_alloc(sizeof(Item*)*5))) 00110 { 00111 args[0]= a; args[1]= b; args[2]= c; args[3]= d; args[4]= e; 00112 with_sum_func= a->with_sum_func || b->with_sum_func || 00113 c->with_sum_func || d->with_sum_func || e->with_sum_func ; 00114 } 00115 } Item_func(List<Item> &list);
Here is the call graph for this function:

Definition at line 79 of file item_func.cc.
References list(), and set_arguments().
00080 :allowed_arg_cols(1) 00081 { 00082 set_arguments(list); 00083 }
Here is the call graph for this function:

| Item_func::Item_func | ( | THD * | thd, | |
| Item_func * | item | |||
| ) |
Definition at line 85 of file item_func.cc.
References arg_count, args, memcpy, and tmp_arg.
00086 :Item_result_field(thd, item), 00087 allowed_arg_cols(item->allowed_arg_cols), 00088 arg_count(item->arg_count), 00089 used_tables_cache(item->used_tables_cache), 00090 not_null_tables_cache(item->not_null_tables_cache), 00091 const_item_cache(item->const_item_cache) 00092 { 00093 if (arg_count) 00094 { 00095 if (arg_count <=2) 00096 args= tmp_arg; 00097 else 00098 { 00099 if (!(args=(Item**) thd->alloc(sizeof(Item*)*arg_count))) 00100 return; 00101 } 00102 memcpy((char*) args, (char*) item->args, sizeof(Item*)*arg_count); 00103 } 00104 }
| bool Item_func::agg_arg_charsets | ( | DTCollation & | c, | |
| Item ** | items, | |||
| uint | nitems, | |||
| uint | flags, | |||
| int | item_sep | |||
| ) | [inline] |
Definition at line 183 of file item_func.h.
References agg_item_charsets(), and func_name().
Referenced by Item_xml_str_func::fix_length_and_dec(), Item_func_export_set::fix_length_and_dec(), Item_func_lpad::fix_length_and_dec(), Item_func_rpad::fix_length_and_dec(), Item_func_make_set::fix_length_and_dec(), Item_func_elt::fix_length_and_dec(), Item_func_trim::fix_length_and_dec(), Item_func_substr_index::fix_length_and_dec(), Item_func_insert::fix_length_and_dec(), Item_func_replace::fix_length_and_dec(), Item_func_concat_ws::fix_length_and_dec(), Item_func_concat::fix_length_and_dec(), Item_func_find_in_set::fix_length_and_dec(), Item_func_field::fix_length_and_dec(), Item_func_locate::fix_length_and_dec(), Item_func_min_max::fix_length_and_dec(), Item_func_in::fix_length_and_dec(), Item_func_coalesce::fix_length_and_dec(), Item_func_case::fix_length_and_dec(), Item_func_nullif::fix_length_and_dec(), Item_func_if::fix_length_and_dec(), Item_func_ifnull::fix_length_and_dec(), Item_func_between::fix_length_and_dec(), and Item_bool_func2::fix_length_and_dec().
00185 { 00186 return agg_item_charsets(c, func_name(), items, nitems, flags, item_sep); 00187 }
Here is the call graph for this function:

Here is the caller graph for this function:

| bool Item_func::agg_arg_collations | ( | DTCollation & | c, | |
| Item ** | items, | |||
| uint | nitems, | |||
| uint | flags | |||
| ) | [inline] |
Definition at line 171 of file item_func.h.
References agg_item_collations(), and func_name().
00173 { 00174 return agg_item_collations(c, func_name(), items, nitems, flags, 1); 00175 }
Here is the call graph for this function:

| bool Item_func::agg_arg_collations_for_comparison | ( | DTCollation & | c, | |
| Item ** | items, | |||
| uint | nitems, | |||
| uint | flags | |||
| ) | [inline] |
Definition at line 176 of file item_func.h.
References agg_item_collations_for_comparison(), and func_name().
Referenced by Item_func_match::fix_fields().
00179 { 00180 return agg_item_collations_for_comparison(c, func_name(), 00181 items, nitems, flags); 00182 }
Here is the call graph for this function:

Here is the caller graph for this function:

| uint Item_func::argument_count | ( | ) | const [inline] |
Definition at line 141 of file item_func.h.
References arg_count.
Referenced by add_key_fields(), check_group_min_max_predicates(), and simple_pred().
00141 { return arg_count; }
Here is the caller graph for this function:

| Item** Item_func::arguments | ( | ) | const [inline] |
Definition at line 139 of file item_func.h.
References args.
Referenced by add_key_fields(), change_group_ref(), check_group_min_max_predicates(), get_func_mm_tree(), get_mm_tree(), propagate_cond_constants(), Item_in_subselect::select_in_like_transformer(), simple_pred(), and Item_nodeset_to_const_comparator::val_int().
00139 { return args; }
Here is the caller graph for this function:

| virtual bool Item_func::const_item | ( | ) | const [inline, virtual] |
Reimplemented from Item.
Reimplemented in Item_func_trig_cond, Item_func_rand, Item_func_sleep, Item_func_get_user_var, and Item_func_sysdate_local.
Definition at line 138 of file item_func.h.
References const_item_cache.
Referenced by Item_equal::add(), add_ft_keys(), Item_func_like::fix_fields(), Item_xml_str_func::fix_length_and_dec(), Item_func_str_to_date::fix_length_and_dec(), Item_func_lpad::fix_length_and_dec(), Item_func_rpad::fix_length_and_dec(), Item_func_repeat::fix_length_and_dec(), Item_func_substr::fix_length_and_dec(), Item_func_find_in_set::fix_length_and_dec(), Item_func_round::fix_length_and_dec(), Item_equal::fix_length_and_dec(), Item_func_in::fix_length_and_dec(), Item_equal::get_const(), get_tmp_table_item(), Item_equal::Item_equal(), Item_func_conv_charset::Item_func_conv_charset(), Item_str_func::left_right_max_length(), Item_equal::print(), Item_func_like::select_optimize(), Item_equal::val_int(), and Item_func_str_to_date::val_str().
00138 { return const_item_cache; }
Here is the caller graph for this function:

| void Item_func::count_decimal_length | ( | ) |
Definition at line 471 of file item_func.cc.
References arg_count, args, Item::decimal_int_part(), DECIMAL_MAX_PRECISION, Item::decimals, Item::max_length, min, my_decimal_precision_to_length(), set_if_bigger, set_if_smaller, and Item::unsigned_flag.
Referenced by Item_func_coalesce::fix_length_and_dec().
00472 { 00473 int max_int_part= 0; 00474 decimals= 0; 00475 unsigned_flag= 1; 00476 for (uint i=0 ; i < arg_count ; i++) 00477 { 00478 set_if_bigger(decimals, args[i]->decimals); 00479 set_if_bigger(max_int_part, args[i]->decimal_int_part()); 00480 set_if_smaller(unsigned_flag, args[i]->unsigned_flag); 00481 } 00482 int precision= min(max_int_part + decimals, DECIMAL_MAX_PRECISION); 00483 max_length= my_decimal_precision_to_length(precision, decimals, 00484 unsigned_flag); 00485 }
Here is the call graph for this function:

Here is the caller graph for this function:

| void Item_func::count_only_length | ( | ) |
Definition at line 495 of file item_func.cc.
References arg_count, args, Item::max_length, set_if_bigger, and Item::unsigned_flag.
Referenced by Item_func_coalesce::fix_length_and_dec().
00496 { 00497 max_length= 0; 00498 unsigned_flag= 0; 00499 for (uint i=0 ; i < arg_count ; i++) 00500 { 00501 set_if_bigger(max_length, args[i]->max_length); 00502 set_if_bigger(unsigned_flag, args[i]->unsigned_flag); 00503 } 00504 }
Here is the caller graph for this function:

| void Item_func::count_real_length | ( | ) |
Definition at line 515 of file item_func.cc.
References arg_count, args, Item::decimals, Item::max_length, NOT_FIXED_DEC, set_if_bigger, and UINT_MAX32.
Referenced by Item_num_op::find_num_type(), and Item_func_coalesce::fix_length_and_dec().
00516 { 00517 uint32 length= 0; 00518 decimals= 0; 00519 max_length= 0; 00520 for (uint i=0 ; i < arg_count ; i++) 00521 { 00522 if (decimals != NOT_FIXED_DEC) 00523 { 00524 set_if_bigger(decimals, args[i]->decimals); 00525 set_if_bigger(length, (args[i]->max_length - args[i]->decimals)); 00526 } 00527 set_if_bigger(max_length, args[i]->max_length); 00528 } 00529 if (decimals != NOT_FIXED_DEC) 00530 { 00531 max_length= length; 00532 length+= decimals; 00533 if (length < max_length) // If previous operation gave overflow 00534 max_length= UINT_MAX32; 00535 else 00536 max_length= length; 00537 } 00538 }
Here is the caller graph for this function:

Reimplemented from Item.
Reimplemented in Item_func_get_user_var, Item_func_match, Item_func_set_collation, Item_func_date_format, Item_date_add_interval, Item_extract, and Item_char_typecast.
Definition at line 350 of file item_func.cc.
References arg_count, args, Item::FUNC_ITEM, func_name(), and Item::type().
Referenced by Item_date_add_interval::eq().
00351 { 00352 /* Assume we don't have rtti */ 00353 if (this == item) 00354 return 1; 00355 if (item->type() != FUNC_ITEM) 00356 return 0; 00357 Item_func *item_func=(Item_func*) item; 00358 if (arg_count != item_func->arg_count || 00359 func_name() != item_func->func_name()) 00360 return 0; 00361 for (uint i=0; i < arg_count ; i++) 00362 if (!args[i]->eq(item_func->args[i], binary_cmp)) 00363 return 0; 00364 return 1; 00365 }
Here is the call graph for this function:

Here is the caller graph for this function:

Reimplemented from Item.
Reimplemented in Item_in_optimizer, Item_func_between, Item_func_if, Item_func_case, Item_func_in, Item_func_like, Item_cond, Item_equal, Item_func_connection_id, Item_func_rand, Item_func_set_user_var, Item_func_get_system_var, Item_func_match, Item_func_sp, Item_func_user, Item_func_current_user, Item_func_make_set, and Item_func_convert_tz.
Definition at line 141 of file item_func.cc.
References allowed_arg_cols, arg_count, args, check_stack_overrun(), const_item_cache, DBUG_ASSERT, FALSE, Item_result_field::fix_length_and_dec(), Item::fixed, Item::maybe_null, not_null_tables_cache, STACK_BUFF_ALLOC, STACK_MIN_SIZE, TRUE, used_tables_cache, Item::with_subselect, and Item::with_sum_func.
Referenced by Item_func_convert_tz::fix_fields(), Item_func_make_set::fix_fields(), Item_func_sp::fix_fields(), Item_func_match::fix_fields(), Item_func_set_user_var::fix_fields(), Item_func_rand::fix_fields(), Item_func_connection_id::fix_fields(), Item_func_like::fix_fields(), Item_func_in::fix_fields(), Item_func_case::fix_fields(), Item_func_if::fix_fields(), and Item_func_between::fix_fields().
00142 { 00143 DBUG_ASSERT(fixed == 0); 00144 Item **arg,**arg_end; 00145 #ifndef EMBEDDED_LIBRARY // Avoid compiler warning 00146 char buff[STACK_BUFF_ALLOC]; // Max argument in function 00147 #endif 00148 00149 used_tables_cache= not_null_tables_cache= 0; 00150 const_item_cache=1; 00151 00152 if (check_stack_overrun(thd, STACK_MIN_SIZE, buff)) 00153 return TRUE; // Fatal error if flag is set! 00154 if (arg_count) 00155 { // Print purify happy 00156 for (arg=args, arg_end=args+arg_count; arg != arg_end ; arg++) 00157 { 00158 Item *item; 00159 /* 00160 We can't yet set item to *arg as fix_fields may change *arg 00161 We shouldn't call fix_fields() twice, so check 'fixed' field first 00162 */ 00163 if ((!(*arg)->fixed && (*arg)->fix_fields(thd, arg))) 00164 return TRUE; /* purecov: inspected */ 00165 item= *arg; 00166 00167 if (allowed_arg_cols) 00168 { 00169 if (item->check_cols(allowed_arg_cols)) 00170 return 1; 00171 } 00172 else 00173 { 00174 /* we have to fetch allowed_arg_cols from first argument */ 00175 DBUG_ASSERT(arg == args); // it is first argument 00176 allowed_arg_cols= item->cols(); 00177 DBUG_ASSERT(allowed_arg_cols); // Can't be 0 any more 00178 } 00179 00180 if (item->maybe_null) 00181 maybe_null=1; 00182 00183 with_sum_func= with_sum_func || item->with_sum_func; 00184 used_tables_cache|= item->used_tables(); 00185 not_null_tables_cache|= item->not_null_tables(); 00186 const_item_cache&= item->const_item(); 00187 with_subselect|= item->with_subselect; 00188 } 00189 } 00190 fix_length_and_dec(); 00191 if (thd->net.report_error) // An error inside fix_length_and_dec occured 00192 return TRUE; 00193 fixed= 1; 00194 return FALSE; 00195 }
Here is the call graph for this function:

Here is the caller graph for this function:

| void Item_func::fix_num_length_and_dec | ( | ) | [virtual] |
Reimplemented in Item_func_numhybrid, Item_func_num1, Item_func_neg, and Item_func_int_val.
Definition at line 441 of file item_func.cc.
References arg_count, args, Item::decimals, Item::float_length(), Item::max_length, NOT_FIXED_DEC, and set_if_bigger.
00442 { 00443 uint fl_length= 0; 00444 decimals=0; 00445 for (uint i=0 ; i < arg_count ; i++) 00446 { 00447 set_if_bigger(decimals,args[i]->decimals); 00448 set_if_bigger(fl_length, args[i]->max_length); 00449 } 00450 max_length=float_length(decimals); 00451 if (fl_length > max_length) 00452 { 00453 decimals= NOT_FIXED_DEC; 00454 max_length= float_length(NOT_FIXED_DEC); 00455 } 00456 }
Here is the call graph for this function:

| virtual const char* Item_func::func_name | ( | ) | const [pure virtual] |
Implemented in Item_in_optimizer, Item_func_not, Item_func_trig_cond, Item_func_not_all, Item_func_nop_all, Item_func_eq, Item_func_equal, Item_func_ge, Item_func_gt, Item_func_le, Item_func_lt, Item_func_ne, Item_func_between, Item_func_strcmp, Item_func_interval, Item_func_coalesce, Item_func_ifnull, Item_func_if, Item_func_nullif, Item_func_case, Item_func_in, Item_func_isnull, Item_is_not_null_test, Item_func_isnotnull, Item_func_like, Item_func_regex, Item_equal, Item_cond_and, Item_cond_or, Item_cond_xor, Item_func_connection_id, Item_func_signed, Item_func_unsigned, Item_decimal_typecast, Item_func_plus, Item_func_minus, Item_func_mul, Item_func_div, Item_func_int_div, Item_func_mod, Item_func_neg, Item_func_abs, Item_func_exp, Item_func_ln, Item_func_log, Item_func_log2, Item_func_log10, Item_func_sqrt, Item_func_pow, Item_func_acos, Item_func_asin, Item_func_atan, Item_func_cos, Item_func_sin, Item_func_tan, Item_func_ceiling, Item_func_floor, Item_func_round, Item_func_rand, Item_func_sign, Item_func_units, Item_func_min, Item_func_max, Item_func_length, Item_func_bit_length, Item_func_char_length, Item_func_coercibility, Item_func_locate, Item_func_field, Item_func_ascii, Item_func_ord, Item_func_find_in_set, Item_func_bit_or, Item_func_bit_and, Item_func_bit_count, Item_func_shift_left, Item_func_shift_right, Item_func_bit_neg, Item_func_last_insert_id, Item_func_benchmark, Item_func_sleep, Item_func_get_lock, Item_func_release_lock, Item_master_pos_wait, Item_func_set_user_var, Item_func_get_user_var, Item_func_get_system_var, Item_func_inet_aton, Item_func_match, Item_func_bit_xor, Item_func_is_free_lock, Item_func_is_used_lock, Item_func_row_count, Item_func_sp, Item_func_found_rows, Item_func_md5, Item_func_sha, Item_func_aes_encrypt, Item_func_aes_decrypt, Item_func_concat, Item_func_concat_ws, Item_func_reverse, Item_func_replace, Item_func_insert, Item_func_lcase, Item_func_ucase, Item_func_left, Item_func_right, Item_func_substr, Item_func_substr_index, Item_func_trim, Item_func_ltrim, Item_func_rtrim, Item_func_password, Item_func_old_password, Item_func_des_encrypt, Item_func_des_decrypt, Item_func_encrypt, Item_func_encode, Item_func_decode, Item_func_database, Item_func_user, Item_func_current_user, Item_func_soundex, Item_func_elt, Item_func_make_set, Item_func_format, Item_func_char, Item_func_repeat, Item_func_rpad, Item_func_lpad, Item_func_conv, Item_func_hex, Item_func_unhex, Item_func_binary, Item_load_file, Item_func_export_set, Item_func_inet_ntoa, Item_func_quote, Item_func_conv_charset, Item_func_set_collation, Item_func_charset, Item_func_collation, Item_func_crc32, Item_func_uncompressed_length, Item_func_compress, Item_func_uncompress, Item_func_uuid, Item_func_period_add, Item_func_period_diff, Item_func_to_days, Item_func_dayofmonth, Item_func_month, Item_func_monthname, Item_func_dayofyear, Item_func_hour, Item_func_minute, Item_func_quarter, Item_func_second, Item_func_week, Item_func_yearweek, Item_func_year, Item_func_weekday, Item_func_dayname, Item_func_unix_timestamp, Item_func_time_to_sec, Item_date, Item_func_curtime_local, Item_func_curtime_utc, Item_func_curdate_local, Item_func_curdate_utc, Item_func_now_local, Item_func_now_utc, Item_func_sysdate_local, Item_func_from_days, Item_func_date_format, Item_func_from_unixtime, Item_func_convert_tz, Item_func_sec_to_time, Item_date_add_interval, Item_extract, Item_char_typecast, Item_date_typecast, Item_time_typecast, Item_datetime_typecast, Item_func_makedate, Item_func_add_time, Item_func_timediff, Item_func_maketime, Item_func_microsecond, Item_func_timestamp_diff, Item_func_get_format, Item_func_str_to_date, Item_func_last_day, Item_func_unique_users, Item_nodeset_func, Item_nodeset_func_rootelement, Item_nodeset_func_union, Item_nodeset_func_axisbyname, Item_nodeset_func_selfbyname, Item_nodeset_func_childbyname, Item_nodeset_func_descendantbyname, Item_nodeset_func_ancestorbyname, Item_nodeset_func_parentbyname, Item_nodeset_func_attributebyname, Item_nodeset_func_predicate, Item_nodeset_func_elementbyindex, Item_xpath_cast_bool, Item_xpath_cast_number, Item_func_xpath_position, Item_func_xpath_count, Item_func_xpath_sum, Item_nodeset_to_const_comparator, Item_func_xml_extractvalue, and Item_func_xml_update.
Referenced by agg_arg_charsets(), agg_arg_collations(), agg_arg_collations_for_comparison(), check_group_min_max_predicates(), eq(), Item_func_int_val::find_num_type(), Item_func_num1::find_num_type(), Item_num_op::find_num_type(), print(), Item_cond::print(), print_op(), and Arg_comparator::set_compare_func().
Here is the caller graph for this function:

| virtual enum Functype Item_func::functype | ( | ) | const [inline, virtual] |
Reimplemented in Item_func_not, Item_func_trig_cond, Item_func_not_all, Item_func_eq, Item_func_equal, Item_func_ge, Item_func_gt, Item_func_le, Item_func_lt, Item_func_ne, Item_func_between, Item_func_in, Item_func_isnull, Item_is_not_null_test, Item_func_isnotnull, Item_func_like, Item_equal, Item_cond_and, Item_cond_or, Item_cond_xor, Item_func_get_user_var, Item_func_match, Item_func_sp, Item_func_set_collation, Item_func_now_local, Item_extract, and Item_char_typecast.
Definition at line 62 of file item_func.h.
References UNKNOWN_FUNC.
Referenced by add_ft_keys(), add_key_fields(), check_group_min_max_predicates(), Item_func_set_collation::eq(), Item_cond::fix_fields(), Item_bool_func2::fix_length_and_dec(), get_func_mm_tree(), get_mm_tree(), and Arg_comparator::set_compare_func().
00062 { return UNKNOWN_FUNC; }
Here is the caller graph for this function:

Definition at line 151 of file item_func.h.
References args, Item::get_date(), and Item::null_value.
Referenced by Item_func_last_day::get_date(), Item_date_typecast::get_date(), Item_datetime_typecast::val_int(), Item_extract::val_int(), Item_func_unix_timestamp::val_int(), Item_func_year::val_int(), Item_func_weekday::val_int(), Item_func_yearweek::val_int(), Item_func_week::val_int(), Item_func_quarter::val_int(), Item_func_month::val_int(), Item_func_dayofmonth::val_int(), Item_func_dayofyear::val_int(), Item_func_to_days::val_int(), Item_func_add_time::val_str(), Item_date_typecast::val_str(), Item_datetime_typecast::val_str(), and Item_func_date_format::val_str().
00152 { 00153 return (null_value=args[0]->get_date(ltime, fuzzy_date)); 00154 }
Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 155 of file item_func.h.
References args, Item::get_time(), and Item::null_value.
Referenced by Item_time_typecast::get_time(), Item_func_microsecond::val_int(), Item_func_time_to_sec::val_int(), Item_func_second::val_int(), Item_func_minute::val_int(), Item_func_hour::val_int(), and Item_time_typecast::val_str().
00156 { 00157 return (null_value=args[0]->get_time(ltime)); 00158 }
Here is the call graph for this function:

Here is the caller graph for this function:

| Item * Item_func::get_tmp_table_item | ( | THD * | thd | ) | [virtual] |
Reimplemented from Item.
Definition at line 552 of file item_func.cc.
References const_item(), Item::copy_or_same(), Item_result_field::result_field, and Item::with_sum_func.
00553 { 00554 if (!with_sum_func && !const_item()) 00555 return new Item_field(result_field); 00556 return copy_or_same(thd); 00557 }
Here is the call graph for this function:

| virtual bool Item_func::have_rev_func | ( | ) | const [inline, virtual] |
Reimplemented in Item_bool_func2.
Definition at line 125 of file item_func.h.
Referenced by get_mm_tree().
Here is the caller graph for this function:

| virtual bool Item_func::is_expensive | ( | ) | [inline, virtual] |
Reimplemented in Item_func_sp.
Definition at line 193 of file item_func.h.
Referenced by is_expensive_processor().
Here is the caller graph for this function:

Reimplemented from Item.
Definition at line 405 of file item_func.cc.
References is_expensive().
00406 { 00407 return is_expensive(); 00408 }
Here is the call graph for this function:

| bool Item_func::is_null | ( | ) | [inline, virtual] |
Reimplemented from Item.
Reimplemented in Item_in_optimizer, Item_bool_func2, Item_func_nullif, and Item_func_numhybrid.
Definition at line 159 of file item_func.h.
References Item::null_value, and Item::val_int().
Referenced by Item_func_isnull::update_used_tables(), Item_is_not_null_test::update_used_tables(), and Item_is_not_null_test::val_int().
00159 { 00160 (void) val_int(); /* Discard result. It sets null_value as side-effect. */ 00161 return null_value; 00162 }
Here is the call graph for this function:

Here is the caller graph for this function:

| virtual Item* Item_func::key_item | ( | ) | const [inline, virtual] |
Definition at line 126 of file item_func.h.
References args.
Referenced by add_ft_keys(), add_key_fields(), Item_func_match::eq(), and Item_func_match::init_search().
00126 { return args[0]; }
Here is the caller graph for this function:

| table_map Item_func::not_null_tables | ( | ) | const [virtual] |
Reimplemented from Item.
Reimplemented in Item_func_equal, Item_func_coalesce, Item_func_nullif, Item_func_case, Item_func_isnull, Item_func_isnotnull, Item_cond_and, Item_cond_or, Item_func_coercibility, Item_func_match, Item_func_concat_ws, Item_func_charset, and Item_func_collation.
Definition at line 309 of file item_func.cc.
References not_null_tables_cache.
00310 { 00311 return not_null_tables_cache; 00312 }
| void Item_func::print | ( | String * | str | ) | [virtual] |
Reimplemented from Item.
Reimplemented in Item_bool_func2, Item_func_not_all, Item_func_between, Item_func_strcmp, Item_func_nullif, Item_func_case, Item_func_in, Item_func_isnotnull, Item_func_regex, Item_cond, Item_equal, Item_num_op, Item_func_signed, Item_func_unsigned, Item_decimal_typecast, Item_func_int_div, Item_func_locate, Item_func_bit, Item_func_bit_neg, Item_func_benchmark, Item_func_set_user_var, Item_func_get_user_var, Item_func_match, Item_func_trim, Item_func_make_set, Item_func_format, Item_func_binary, Item_func_conv_charset, Item_func_set_collation, Item_date_add_interval, Item_extract, Item_typecast, Item_char_typecast, Item_func_add_time, Item_func_timestamp_diff, Item_func_get_format, and Item_func_unique_users.
Definition at line 315 of file item_func.cc.
References String::append(), func_name(), and print_args().
Referenced by Item_func_trim::print(), Item_func_bit_neg::print(), Item_func_nullif::print(), Item_func_strcmp::print(), Item_func_not_all::print(), and print_op().
00316 { 00317 str->append(func_name()); 00318 str->append('('); 00319 print_args(str, 0); 00320 str->append(')'); 00321 }
Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 324 of file item_func.cc.
References String::append(), arg_count, args, and Item::print().
Referenced by Item_func_make_set::print(), Item_func_match::print(), print(), and Item_func_in::print().
00325 { 00326 for (uint i=from ; i < arg_count ; i++) 00327 { 00328 if (i != from) 00329 str->append(','); 00330 args[i]->print(str); 00331 } 00332 }
Here is the call graph for this function:

Here is the caller graph for this function:

| void Item_func::print_op | ( | String * | str | ) |
Definition at line 335 of file item_func.cc.
References String::append(), arg_count, args, func_name(), Item::print(), and print().
Referenced by Item_func_bit::print(), Item_func_int_div::print(), Item_num_op::print(), Item_func_regex::print(), and Item_bool_func2::print().
00336 { 00337 str->append('('); 00338 for (uint i=0 ; i < arg_count-1 ; i++) 00339 { 00340 args[i]->print(str); 00341 str->append(' '); 00342 str->append(func_name()); 00343 str->append(' '); 00344 } 00345 args[arg_count-1]->print(str); 00346 str->append(')'); 00347 }
Here is the call graph for this function:

Here is the caller graph for this function:

| void Item_func::remove_arguments | ( | ) | [inline] |
| virtual optimize_type Item_func::select_optimize | ( | ) | const [inline, virtual] |
Reimplemented in Item_bool_func2, Item_func_ne, Item_func_between, Item_func_strcmp, Item_func_in, Item_func_isnull, Item_func_isnotnull, Item_func_like, and Item_equal.
Definition at line 124 of file item_func.h.
References OPTIMIZE_NONE.
Referenced by add_key_fields(), and get_mm_tree().
00124 { return OPTIMIZE_NONE; }
Here is the caller graph for this function:

Definition at line 59 of file item_func.cc.
References allowed_arg_cols, arg_count, args, list(), sql_alloc(), tmp_arg, and Item::with_sum_func.
Referenced by Item_func(), and Item_func_case::Item_func_case().
00060 { 00061 allowed_arg_cols= 1; 00062 arg_count=list.elements; 00063 args= tmp_arg; // If 2 arguments 00064 if (arg_count <= 2 || (args=(Item**) sql_alloc(sizeof(Item*)*arg_count))) 00065 { 00066 List_iterator_fast<Item> li(list); 00067 Item *item; 00068 Item **save_args= args; 00069 00070 while ((item=li++)) 00071 { 00072 *(save_args++)= item; 00073 with_sum_func|=item->with_sum_func; 00074 } 00075 } 00076 list.empty(); // Fields are used 00077 }
Here is the call graph for this function:

Here is the caller graph for this function:

| void Item_func::signal_divide_by_null | ( | ) |
Definition at line 542 of file item_func.cc.
References current_thd, ER, ER_DIVISION_BY_ZERO, MODE_ERROR_FOR_DIVISION_BY_ZERO, Item::null_value, push_warning(), and MYSQL_ERROR::WARN_LEVEL_ERROR.
Referenced by Item_func_mod::decimal_op(), Item_func_div::decimal_op(), Item_func_mod::int_op(), Item_func_mod::real_op(), Item_func_div::real_op(), Item_func_int_div::val_int(), Item_func_log10::val_real(), Item_func_log2::val_real(), Item_func_log::val_real(), and Item_func_ln::val_real().
00543 { 00544 THD *thd= current_thd; 00545 if (thd->variables.sql_mode & MODE_ERROR_FOR_DIVISION_BY_ZERO) 00546 push_warning(thd, MYSQL_ERROR::WARN_LEVEL_ERROR, ER_DIVISION_BY_ZERO, 00547 ER(ER_DIVISION_BY_ZERO)); 00548 null_value= 1; 00549 }
Here is the call graph for this function:

Here is the caller graph for this function:

| void Item_func::split_sum_func | ( | THD * | thd, | |
| Item ** | ref_pointer_array, | |||
| List< Item > & | fields | |||
| ) | [virtual] |
Reimplemented from Item.
Reimplemented in Item_cond, and Item_func_make_set.
Definition at line 281 of file item_func.cc.
References arg_count, args, and TRUE.
Referenced by Item_func_make_set::split_sum_func().
00283 { 00284 Item **arg, **arg_end; 00285 for (arg= args, arg_end= args+arg_count; arg != arg_end ; arg++) 00286 (*arg)->split_sum_func2(thd, ref_pointer_array, fields, arg, TRUE); 00287 }
Here is the caller graph for this function:

Reimplemented from Item_result_field.
Reimplemented in Item_func_ifnull, Item_func_sp, Item_date, Item_date_func, Item_func_curtime, Item_func_sec_to_time, Item_date_typecast, Item_time_typecast, Item_datetime_typecast, Item_func_makedate, Item_func_add_time, Item_func_timediff, Item_func_maketime, and Item_func_str_to_date.
Definition at line 368 of file item_func.cc.
References DBUG_ASSERT, Item::decimal_precision(), DECIMAL_RESULT, Item::decimals, Field::init(), INT_RESULT, LINT_INIT, Item::make_string_field(), Item::max_length, Item::maybe_null, my_decimal_precision_to_length(), Item::name, REAL_RESULT, Item::result_type(), ROW_RESULT, STRING_RESULT, and Item::unsigned_flag.
00369 { 00370 Field *field; 00371 LINT_INIT(field); 00372 00373 switch (result_type()) { 00374 case INT_RESULT: 00375 if (max_length > 11) 00376 field= new Field_longlong(max_length, maybe_null, name, unsigned_flag); 00377 else 00378 field= new Field_long(max_length, maybe_null, name, unsigned_flag); 00379 break; 00380 case REAL_RESULT: 00381 field= new Field_double(max_length, maybe_null, name, decimals); 00382 break; 00383 case STRING_RESULT: 00384 return make_string_field(table); 00385 break; 00386 case DECIMAL_RESULT: 00387 field= new Field_new_decimal(my_decimal_precision_to_length(decimal_precision(), 00388 decimals, 00389 unsigned_flag), 00390 maybe_null, name, decimals, unsigned_flag); 00391 break; 00392 case ROW_RESULT: 00393 default: 00394 // This case should never be chosen 00395 DBUG_ASSERT(0); 00396 field= 0; 00397 break; 00398 } 00399 if (field) 00400 field->init(table); 00401 return field; 00402 }
Here is the call graph for this function:

| Field* Item_func::tmp_table_field | ( | ) | [inline] |
Definition at line 165 of file item_func.h.
References Item_result_field::result_field.
Referenced by Item_func_sp::tmp_table_field().
00165 { return result_field; }
Here is the caller graph for this function:

| Item * Item_func::transform | ( | Item_transformer | transformer, | |
| byte * | arg | |||
| ) | [virtual] |
Reimplemented from Item.
Reimplemented in Item_cond, Item_equal, and Item_func_make_set.
Definition at line 261 of file item_func.cc.
References arg_count, args, current_thd, Item::new_item(), and Item::transform().
Referenced by Item_func_make_set::transform(), Item_equal::transform(), and Item_cond::transform().
00262 { 00263 if (arg_count) 00264 { 00265 Item **arg,**arg_end; 00266 for (arg= args, arg_end= args+arg_count; arg != arg_end; arg++) 00267 { 00268 Item *new_item= (*arg)->transform(transformer, argument); 00269 if (!new_item) 00270 return 0; 00271 if (*arg != new_item) 00272 current_thd->change_item_tree(arg, new_item); 00273 } 00274 } 00275 return (this->*transformer)(argument); 00276 }
Here is the call graph for this function:

Here is the caller graph for this function:

| void Item_func::traverse_cond | ( | Cond_traverser | traverser, | |
| void * | arg, | |||
| traverse_order | order | |||
| ) |
Reimplemented in Item_cond.
Definition at line 213 of file item_func.cc.
References arg_count, args, Item::POSTFIX, and Item::PREFIX.
00215 { 00216 if (arg_count) 00217 { 00218 Item **arg,**arg_end; 00219 00220 switch (order) { 00221 case(PREFIX): 00222 (*traverser)(this, argument); 00223 for (arg= args, arg_end= args+arg_count; arg != arg_end; arg++) 00224 { 00225 (*arg)->traverse_cond(traverser, argument, order); 00226 } 00227 break; 00228 case (POSTFIX): 00229 for (arg= args, arg_end= args+arg_count; arg != arg_end; arg++) 00230 { 00231 (*arg)->traverse_cond(traverser, argument, order); 00232 } 00233 (*traverser)(this, argument); 00234 } 00235 } 00236 }
| enum Type Item_func::type | ( | ) | const [inline, virtual] |
Implements Item.
Reimplemented in Item_cond, Item_cond_xor, Item_nodeset_func, and Item_nodeset_to_const_comparator.
Definition at line 61 of file item_func.h.
References Item::FUNC_ITEM.
Referenced by add_ft_keys(), Item_func_rand::fix_fields(), Item_func_find_in_set::fix_length_and_dec(), Item_func_neg::fix_length_and_dec(), Item_func_year::get_monotonicity_info(), Item_func_to_days::get_monotonicity_info(), Item_func_get_format::print(), Item_func_set_collation::print(), Item_xpath_cast_bool::val_int(), Item_func_unix_timestamp::val_int(), and Item_func_get_format::val_str().
00061 { return FUNC_ITEM; }
Here is the caller graph for this function:

| void Item_func::update_used_tables | ( | ) | [virtual] |
Reimplemented from Item.
Reimplemented in Item_func_isnull, Item_is_not_null_test, Item_cond, Item_equal, Item_func_rand, Item_func_sleep, Item_func_match, Item_func_make_set, and Item_func_sysdate_local.
Definition at line 290 of file item_func.cc.
References arg_count, args, Item::const_item(), const_item_cache, Item::used_tables(), and used_tables_cache.
Referenced by Item_func_sysdate_local::update_used_tables(), Item_func_make_set::update_used_tables(), Item_func_sleep::update_used_tables(), and Item_func_rand::update_used_tables().
00291 { 00292 used_tables_cache=0; 00293 const_item_cache=1; 00294 for (uint i=0 ; i < arg_count ; i++) 00295 { 00296 args[i]->update_used_tables(); 00297 used_tables_cache|=args[i]->used_tables(); 00298 const_item_cache&=args[i]->const_item(); 00299 } 00300 }
Here is the call graph for this function:

Here is the caller graph for this function:

| table_map Item_func::used_tables | ( | ) | const [virtual] |
Reimplemented from Item_result_field.
Reimplemented in Item_is_not_null_test, Item_cond, and Item_func_get_user_var.
Definition at line 303 of file item_func.cc.
References used_tables_cache.
Referenced by add_key_fields(), Item_in_optimizer::fix_left(), and Item_func_isnull::update_used_tables().
00304 { 00305 return used_tables_cache; 00306 }
Here is the caller graph for this function:

| my_decimal * Item_func::val_decimal | ( | my_decimal * | ) | [virtual] |
Implements Item.
Reimplemented in Item_func_if, Item_func_nullif, Item_func_case, Item_real_func, Item_func_numhybrid, Item_decimal_typecast, Item_func_min_max, Item_func_udf_decimal, Item_func_set_user_var, Item_func_get_user_var, Item_func_sp, and Item_str_func.
Definition at line 411 of file item_func.cc.
References DBUG_ASSERT, E_DEC_FATAL_ERROR, Item::fixed, int2my_decimal(), Item::unsigned_flag, and Item::val_int().
Referenced by Item_func_field::val_int().
00412 { 00413 DBUG_ASSERT(fixed); 00414 int2my_decimal(E_DEC_FATAL_ERROR, val_int(), unsigned_flag, decimal_value); 00415 return decimal_value; 00416 }
Here is the call graph for this function:

Here is the caller graph for this function:

| bool Item_func::walk | ( | Item_processor | processor, | |
| bool | walk_subquery, | |||
| byte * | arg | |||
| ) | [virtual] |
Reimplemented from Item.
Reimplemented in Item_cond, Item_equal, and Item_func_make_set.
Definition at line 198 of file item_func.cc.
References arg_count, and args.
Referenced by Item_func_make_set::walk(), Item_equal::walk(), and Item_cond::walk().
00200 { 00201 if (arg_count) 00202 { 00203 Item **arg,**arg_end; 00204 for (arg= args, arg_end= args+arg_count; arg != arg_end; arg++) 00205 { 00206 if ((*arg)->walk(processor, walk_subquery, argument)) 00207 return 1; 00208 } 00209 } 00210 return (this->*processor)(argument); 00211 }
Here is the caller graph for this function:

friend class udf_handler [friend] |
Definition at line 164 of file item_func.h.
uint Item_func::allowed_arg_cols [protected] |
Definition at line 39 of file item_func.h.
Referenced by fix_fields(), Item_bool_rowready_func2::Item_bool_rowready_func2(), Item_func_in::Item_func_in(), Item_func_interval::Item_func_interval(), and set_arguments().
Definition at line 41 of file item_func.h.
Referenced by argument_count(), change_group_ref(), count_decimal_length(), count_only_length(), count_real_length(), Item_func_coalesce::decimal_op(), Item_func_set_collation::eq(), eq(), Item_num_op::find_num_type(), Item_func_rand::fix_fields(), fix_fields(), Item_func_in::fix_fields(), Item_xml_str_func::fix_length_and_dec(), Item_func_char::fix_length_and_dec(), Item_func_export_set::fix_length_and_dec(), Item_func_make_set::fix_length_and_dec(), Item_func_elt::fix_length_and_dec(), Item_func_trim::fix_length_and_dec(), Item_func_substr::fix_length_and_dec(), Item_func_concat_ws::fix_length_and_dec(), Item_func_concat::fix_length_and_dec(), Item_func_last_insert_id::fix_length_and_dec(), Item_func_field::fix_length_and_dec(), Item_func_min_max::fix_length_and_dec(), Item_func_in::fix_length_and_dec(), Item_func_coalesce::fix_length_and_dec(), Item_func_nullif::fix_length_and_dec(), Item_func_ifnull::fix_length_and_dec(), fix_num_length_and_dec(), get_mm_tree(), Item_func_coalesce::int_op(), Item_func(), Item_func_in::nulls_in_row(), Item_func_make_set::print(), Item_func_trim::print(), Item_func_locate::print(), print_args(), print_op(), Item_func_coalesce::real_op(), remove_arguments(), set_arguments(), split_sum_func(), Item_func_coalesce::str_op(), transform(), traverse_cond(), update_used_tables(), Item_func_min_max::val_decimal(), Item_func_unix_timestamp::val_int(), Item_func_elt::val_int(), Item_func_field::val_int(), Item_func_locate::val_int(), Item_func_min_max::val_int(), Item_func_in::val_int(), Item_func_elt::val_real(), Item_func_min_max::val_real(), Item_func_atan::val_real(), Item_func_log::val_real(), Item_func_export_set::val_str(), Item_func_char::val_str(), Item_func_make_set::val_str(), Item_func_elt::val_str(), Item_func_encrypt::val_str(), Item_func_trim::val_str(), Item_func_rtrim::val_str(), Item_func_ltrim::val_str(), Item_func_substr::val_str(), Item_func_concat_ws::val_str(), Item_func_des_decrypt::val_str(), Item_func_des_encrypt::val_str(), Item_func_concat::val_str(), Item_func_min_max::val_str(), and walk().
Item** Item_func::args [protected] |
Definition at line 34 of file item_func.h.
Referenced by arguments(), Item_func_set_user_var::check(), Item_func_isnotnull::compare_collation(), Item_func_isnull::compare_collation(), count_decimal_length(), count_only_length(), count_real_length(), Item_func_round::decimal_op(), Item_func_floor::decimal_op(), Item_func_ceiling::decimal_op(), Item_func_abs::decimal_op(), Item_func_neg::decimal_op(), Item_func_mod::decimal_op(), Item_func_div::decimal_op(), Item_func_mul::decimal_op(), Item_func_minus::decimal_op(), Item_func_plus::decimal_op(), Item_func_coalesce::decimal_op(), Item_func_ifnull::decimal_op(), Item_func_neg::decimal_precision(), Item_func_signed::decimal_precision(), Item_func_nullif::decimal_precision(), Item_func_case::decimal_precision(), Item_func_if::decimal_precision(), Item_func_ifnull::decimal_precision(), Item_char_typecast::eq(), Item_extract::eq(), Item_func_date_format::eq(), Item_func_set_collation::eq(), eq(), Item_func_sp::execute_impl(), Item_func_set_collation::filed_for_view_update(), Item_func_case::find_item(), Item_func_int_val::find_num_type(), Item_func_num1::find_num_type(), Item_num_op::find_num_type(), Item_func_match::fix_fields(), Item_func_set_user_var::fix_fields(), Item_func_rand::fix_fields(), fix_fields(), Item_func_like::fix_fields(), Item_func_in::fix_fields(), Item_func_if::fix_fields(), Item_func_between::fix_fields(), Item_in_optimizer::fix_fields(), Item_func_match::fix_index(), Item_in_optimizer::fix_left(), Item_xml_str_func::fix_length_and_dec(), Item_typecast_maybe_null::fix_length_and_dec(), Item_typecast::fix_length_and_dec(), Item_func_str_to_date::fix_length_and_dec(), Item_func_add_time::fix_length_and_dec(), Item_char_typecast::fix_length_and_dec(), Item_date_add_interval::fix_length_and_dec(), Item_func_date_format::fix_length_and_dec(), Item_func_compress::fix_length_and_dec(), Item_func_quote::fix_length_and_dec(), Item_func_binary::fix_length_and_dec(), Item_func_unhex::fix_length_and_dec(), Item_func_hex::fix_length_and_dec(), Item_func_format::fix_length_and_dec(), Item_func_des_decrypt::fix_length_and_dec(), Item_func_des_encrypt::fix_length_and_dec(), Item_func_ucase::fix_length_and_dec(), Item_func_lcase::fix_length_and_dec(), Item_func_export_set::fix_length_and_dec(), Item_func_set_collation::fix_length_and_dec(), Item_func_conv_charset::fix_length_and_dec(), Item_func_lpad::fix_length_and_dec(), Item_func_rpad::fix_length_and_dec(), Item_func_repeat::fix_length_and_dec(), Item_func_make_set::fix_length_and_dec(), Item_func_elt::fix_length_and_dec(), Item_func_soundex::fix_length_and_dec(), Item_func_encode::fix_length_and_dec(), Item_func_trim::fix_length_and_dec(), Item_func_substr_index::fix_length_and_dec(), Item_func_substr::fix_length_and_dec(), Item_func_right::fix_length_and_dec(), Item_func_left::fix_length_and_dec(), Item_func_insert::fix_length_and_dec(), Item_func_replace::fix_length_and_dec(), Item_func_reverse::fix_length_and_dec(), Item_func_concat_ws::fix_length_and_dec(), Item_func_concat::fix_length_and_dec(), Item_func_aes_decrypt::fix_length_and_dec(), Item_func_aes_encrypt::fix_length_and_dec(), Item_func_sha::fix_length_and_dec(), Item_func_md5::fix_length_and_dec(), Item_func_last_insert_id::fix_length_and_dec(), Item_func_unsigned::fix_length_and_dec(), Item_func_signed::fix_length_and_dec(), Item_func_set_user_var::fix_length_and_dec(), Item_func_find_in_set::fix_length_and_dec(), Item_func_field::fix_length_and_dec(), Item_func_locate::fix_length_and_dec(), Item_func_min_max::fix_length_and_dec(), Item_func_round::fix_length_and_dec(), Item_func_integer::fix_length_and_dec(), Item_func_neg::fix_length_and_dec(), Item_func_int_div::fix_length_and_dec(), Item_func_div::fix_length_and_dec(), Item_func_in::fix_length_and_dec(), Item_func_coalesce::fix_length_and_dec(), Item_func_case::fix_length_and_dec(), Item_func_nullif::fix_length_and_dec(), Item_func_if::fix_length_and_dec(), Item_func_ifnull::fix_length_and_dec(), Item_func_between::fix_length_and_dec(), Item_bool_func2::fix_length_and_dec(), Item_func_int_val::fix_num_length_and_dec(), Item_func_neg::fix_num_length_and_dec(), Item_func_num1::fix_num_length_and_dec(), fix_num_length_and_dec(), get_arg0_date(), get_arg0_time(), Item_func_str_to_date::get_date(), Item_date_add_interval::get_date(), Item_func_from_days::get_date(), Item_func_year::get_monotonicity_info(), Item_func_to_days::get_monotonicity_info(), Item_func_match::init_search(), Item_func_round::int_op(), Item_func_floor::int_op(), Item_func_ceiling::int_op(), Item_func_abs::int_op(), Item_func_neg::int_op(), Item_func_mod::int_op(), Item_func_mul::int_op(), Item_func_minus::int_op(), Item_func_plus::int_op(), Item_func_coalesce::int_op(), Item_func_ifnull::int_op(), Item_bool_func2::is_null(), Item_func_nullif::is_null(), Item_in_optimizer::is_null(), Item_func(), Item_func_conv_charset::Item_func_conv_charset(), key_item(), Item_str_func::left_right_max_length(), Item_func_not_all::neg_transformer(), Item_func_nop_all::neg_transformer(), Item_func_isnotnull::neg_transformer(), Item_func_isnull::neg_transformer(), Item_func_not::neg_transformer(), Item_func_le::negated_item(), Item_func_gt::negated_item(), Item_func_ge::negated_item(), Item_func_lt::negated_item(), Item_func_ne::negated_item(), Item_func_eq::negated_item(), Item_func_in::nulls_in_row(), Item_nodeset_func::prepare(), Item_func_get_format::print(), Item_func_timestamp_diff::print(), Item_func_add_time::print(), Item_char_typecast::print(), Item_typecast::print(), Item_extract::print(), Item_date_add_interval::print(), Item_func_binary::print(), Item_func_set_collation::print(), Item_func_conv_charset::print(), Item_func_format::print(), Item_func_trim::print(), Item_func_match::print(), Item_func_set_user_var::print(), Item_func_benchmark::print(), Item_func_locate::print(), Item_decimal_typecast::print(), Item_func_unsigned::print(), Item_func_signed::print(), Item_func_isnotnull::print(), Item_func_in::print(), Item_func_case::print(), Item_func_between::print(), Item_func_not_all::print(), print_args(), Item_func_set_user_var::print_as_stmt(), print_op(), Item_func_round::real_op(), Item_func_floor::real_op(), Item_func_ceiling::real_op(), Item_func_abs::real_op(), Item_func_neg::real_op(), Item_func_mod::real_op(), Item_func_div::real_op(), Item_func_mul::real_op(), Item_func_minus::real_op(), Item_func_plus::real_op(), Item_func_coalesce::real_op(), Item_func_ifnull::real_op(), Item_func_mod::result_precision(), Item_func_div::result_precision(), Item_func_mul::result_precision(), Item_func_additive_op::result_precision(), Item_func_like::select_optimize(), set_arguments(), split_sum_func(), Item_func_coalesce::str_op(), Item_func_ifnull::str_op(), transform(), traverse_cond(), Item_func_set_user_var::update_hash(), update_used_tables(), Item_func_isnull::update_used_tables(), Item_is_not_null_test::update_used_tables(), Item_func_min_max::val_decimal(), Item_decimal_typecast::val_decimal(), Item_func_nullif::val_decimal(), Item_func_if::val_decimal(), Item_nodeset_to_const_comparator::val_int(), Item_func_xpath_count::val_int(), Item_func_xpath_position::val_int(), Item_xpath_cast_bool::val_int(), Item_func_timestamp_diff::val_int(), Item_func_makedate::val_int(), Item_date_typecast::val_int(), Item_extract::val_int(), Item_func_sec_to_time::val_int(), Item_func_unix_timestamp::val_int(), Item_func_yearweek::val_int(), Item_func_week::val_int(), Item_func_period_diff::val_int(), Item_func_period_add::val_int(), Item_func_crc32::val_int(), Item_func_uncompressed_length::val_int(), Item_func_elt::val_int(), Item_func_is_used_lock::val_int(), Item_func_is_free_lock::val_int(), Item_func_bit_xor::val_int(), Item_func_inet_aton::val_int(), Item_func_sleep::val_int(), Item_func_benchmark::val_int(), Item_func_last_insert_id::val_int(), Item_func_release_lock::val_int(), Item_func_get_lock::val_int(), Item_master_pos_wait::val_int(), Item_func_bit_count::val_int(), Item_func_find_in_set::val_int(), Item_func_ord::val_int(), Item_func_ascii::val_int(), Item_func_field::val_int(), Item_func_locate::val_int(), Item_func_coercibility::val_int(), Item_func_char_length::val_int(), Item_func_length::val_int(), Item_func_min_max::val_int(), Item_func_sign::val_int(), Item_func_bit_neg::val_int(), Item_func_shift_right::val_int(), Item_func_shift_left::val_int(), Item_func_int_div::val_int(), Item_func_unsigned::val_int(), Item_func_signed::val_int(), Item_func_trig_cond::val_int(), Item_func_like::val_int(), Item_func_isnotnull::val_int(), Item_is_not_null_test::val_int(), Item_func_isnull::val_int(), Item_func_bit_and::val_int(), Item_func_bit_or::val_int(), Item_func_in::val_int(), Item_func_nullif::val_int(), Item_func_if::val_int(), Item_func_between::val_int(), Item_func_strcmp::val_int(), Item_in_optimizer::val_int(), Item_func_nop_all::val_int(), Item_func_not_all::val_int(), Item_func_not::val_int(), Item_func_signed::val_int_from_str(), Item_nodeset_func_elementbyindex::val_nodeset(), Item_nodeset_func_predicate::val_nodeset(), Item_nodeset_func_union::val_nodeset(), Item_func_xpath_sum::val_real(), Item_xpath_cast_number::val_real(), Item_func_elt::val_real(), Item_func_signed::val_real(), Item_func_min_max::val_real(), Item_func_units::val_real(), Item_func_tan::val_real(), Item_func_sin::val_real(), Item_func_cos::val_real(), Item_func_atan::val_real(), Item_func_asin::val_real(), Item_func_acos::val_real(), Item_func_pow::val_real(), Item_func_sqrt::val_real(), Item_func_exp::val_real(), Item_func_log10::val_real(), Item_func_log2::val_real(), Item_func_log::val_real(), Item_func_ln::val_real(), Item_func_nullif::val_real(), Item_func_if::val_real(), Item_func_xml_update::val_str(), Item_func_xml_extractvalue::val_str(), Item_typecast::val_str(), Item_func_get_format::val_str(), Item_func_maketime::val_str(), Item_func_timediff::val_str(), Item_func_add_time::val_str(), Item_func_makedate::val_str(), Item_char_typecast::val_str(), Item_func_date_format::val_str(), Item_func_sec_to_time::val_str(), Item_func_binary::val_str(), Item_func_quote::val_str(), Item_func_inet_ntoa::val_str(), Item_func_export_set::val_str(), Item_load_file::val_str(), Item_func_unhex::val_str(), Item_func_hex::val_str(), Item_func_collation::val_str(), Item_func_charset::val_str(), Item_func_set_collation::val_str(), Item_func_conv_charset::val_str(), Item_func_conv::val_str(), Item_func_lpad::val_str(), Item_func_rpad::val_str(), Item_func_repeat::val_str(), Item_func_char::val_str(), Item_func_make_set::val_str(), Item_func_elt::val_str(), Item_func_format::val_str(), Item_func_soundex::val_str(), Item_func_decode::val_str(), Item_func_encode::val_str(), Item_func_encrypt::val_str(), Item_func_old_password::val_str(), Item_func_password::val_str(), Item_func_trim::val_str(), Item_func_rtrim::val_str(), Item_func_ltrim::val_str(), Item_func_substr_index::val_str(), Item_func_substr::val_str(), Item_func_right::val_str(), Item_func_left::val_str(), Item_str_conv::val_str(), Item_func_insert::val_str(), Item_func_replace::val_str(), Item_func_reverse::val_str(), Item_func_concat_ws::val_str(), Item_func_des_decrypt::val_str(), Item_func_des_encrypt::val_str(), Item_func_concat::val_str(), Item_func_aes_decrypt::val_str(), Item_func_aes_encrypt::val_str(), Item_func_sha::val_str(), Item_func_md5::val_str(), Item_func_min_max::val_str(), Item_func_nullif::val_str(), Item_func_if::val_str(), and walk().
Definition at line 43 of file item_func.h.
Referenced by Item_equal::add(), const_item(), Item_func_match::fix_fields(), fix_fields(), Item_equal::fix_fields(), Item_cond::fix_fields(), Item_in_optimizer::fix_fields(), Item_in_optimizer::fix_left(), Item_func_make_set::fix_length_and_dec(), Item_func_interval::fix_length_and_dec(), Item_cond::Item_cond(), Item_equal::Item_equal(), Item_func_make_set::update_used_tables(), update_used_tables(), Item_func_isnull::update_used_tables(), Item_equal::update_used_tables(), and Item_cond::update_used_tables().
Definition at line 42 of file item_func.h.
Referenced by and_expressions(), fix_fields(), Item_equal::fix_fields(), Item_cond::fix_fields(), Item_func_in::fix_fields(), Item_func_if::fix_fields(), Item_func_between::fix_fields(), Item_in_optimizer::fix_fields(), Item_in_optimizer::fix_left(), Item_func_make_set::fix_length_and_dec(), Item_func_interval::fix_length_and_dec(), not_null_tables(), Item_cond_and::not_null_tables(), Item_func_isnotnull::not_null_tables(), and Item_equal::update_used_tables().
Item * Item_func::tmp_arg[2] [protected] |
Definition at line 34 of file item_func.h.
Referenced by Item_bool_func2::fix_length_and_dec(), Item_func(), set_arguments(), and Item_bool_func2::set_cmp_func().
Definition at line 42 of file item_func.h.
Referenced by and_expressions(), Item_func_match::fix_fields(), Item_func_rand::fix_fields(), fix_fields(), Item_equal::fix_fields(), Item_cond::fix_fields(), Item_in_optimizer::fix_fields(), Item_in_optimizer::fix_left(), Item_func_make_set::fix_length_and_dec(), Item_func_interval::fix_length_and_dec(), make_cond_for_table(), Item_func_sysdate_local::update_used_tables(), Item_func_make_set::update_used_tables(), Item_func_sleep::update_used_tables(), Item_func_rand::update_used_tables(), update_used_tables(), Item_func_isnull::update_used_tables(), Item_equal::update_used_tables(), Item_is_not_null_test::update_used_tables(), Item_cond::update_used_tables(), used_tables(), Item_is_not_null_test::used_tables(), Item_cond::used_tables(), Item_is_not_null_test::val_int(), and Item_func_isnull::val_int().
1.4.7

