1#ifndef ITEM_FUNC_INCLUDED
2#define ITEM_FUNC_INCLUDED
51#include "mysqld_error.h"
112 if (
args ==
nullptr) {
471 bool eq(
const Item *item,
bool binary_cmp)
const override;
520 uint nitems,
int item_sep = 1) {
530 uint nitems,
int item_sep = 1) {
707 const MY_BITMAP *fields_to_ignore)
const;
724 pointer_cast<Check_function_as_value_generator_parameters *>(
996 const char *
func_name()
const override {
return "connection_id"; }
1002 pointer_cast<Check_function_as_value_generator_parameters *>(
1015 const char *
func_name()
const override {
return "cast_as_signed"; }
1028 const char *
func_name()
const override {
return "cast_as_unsigned"; }
1058 const char *
func_name()
const override {
return "cast_as_decimal"; }
1087 const char *
func_name()
const override {
return "cast_as_real"; }
1371 const char *
func_name()
const override {
return "ceiling"; }
1405 return truncate ?
"truncate" :
"round";
1445 pointer_cast<Check_function_as_value_generator_parameters *>(
1482 const char *
func_name()
const override {
return "degrees"; }
1490 const char *
func_name()
const override {
return "radians"; }
1576 const char *
func_name()
const override {
return "greatest"; }
1625 const char *
func_name()
const override {
return "rollup_group_item"; }
1656 bool eq(
const Item *item,
bool binary_cmp)
const override;
1690 const char *
func_name()
const override {
return "bit_length"; }
1700 const char *
func_name()
const override {
return "char_length"; }
1713 const char *
func_name()
const override {
return "coercibility"; }
1752 return "validate_password_strength";
1809 const char *
func_name()
const override {
return "find_in_set"; }
1885 template <
class Char_func,
class Int_func>
1887 template <
class Int_func>
1904 return eval_str_op(
str, std::bit_or<char>(), std::bit_or<ulonglong>());
1917 return eval_str_op(
str, std::bit_and<char>(), std::bit_and<ulonglong>());
1930 return eval_str_op(
str, std::bit_xor<char>(), std::bit_xor<ulonglong>());
1938 const char *
func_name()
const override {
return "bit_count"; }
1955 template <
bool to_left>
1957 template <
bool to_left>
2016 const char *
func_name()
const override {
return "last_insert_id"; }
2029 pointer_cast<Check_function_as_value_generator_parameters *>(
2050 const char *
func_name()
const override {
return "benchmark"; }
2062 pointer_cast<Check_function_as_value_generator_parameters *>(
2091 pointer_cast<Check_function_as_value_generator_parameters *>(
2132 pointer_cast<Check_function_as_value_generator_parameters *>(
2225 const char *end_not_used;
2229 &end_not_used, &err_not_used)
2237 nullptr, &err_not_used)
2242 if (!res)
return nullptr;
2271 const char *
func_name()
const override {
return "get_lock"; }
2282 pointer_cast<Check_function_as_value_generator_parameters *>(
2299 const char *
func_name()
const override {
return "release_lock"; }
2309 pointer_cast<Check_function_as_value_generator_parameters *>(
2324 const char *
func_name()
const override {
return "release_all_locks"; }
2332 pointer_cast<Check_function_as_value_generator_parameters *>(
2355 const char *
func_name()
const override {
return "source_pos_wait"; }
2366 pointer_cast<Check_function_as_value_generator_parameters *>(
2394 const char *
func_name()
const override {
return "can_access_database"; }
2406 const char *
func_name()
const override {
return "can_access_table"; }
2418 const char *
func_name()
const override {
return "can_access_user"; }
2430 const char *
func_name()
const override {
return "can_access_trigger"; }
2443 const char *
func_name()
const override {
return "can_access_routine"; }
2455 const char *
func_name()
const override {
return "can_access_event"; }
2467 const char *
func_name()
const override {
return "can_access_resource_group"; }
2480 const char *
func_name()
const override {
return "can_access_view"; }
2492 const char *
func_name()
const override {
return "can_access_column"; }
2508 const char *
func_name()
const override {
return "is_visible_dd_object"; }
2522 const char *
func_name()
const override {
return "internal_table_rows"; }
2537 const char *
func_name()
const override {
return "internal_avg_row_length"; }
2552 const char *
func_name()
const override {
return "internal_data_length"; }
2567 const char *
func_name()
const override {
return "internal_max_data_length"; }
2582 const char *
func_name()
const override {
return "internal_index_length"; }
2597 const char *
func_name()
const override {
return "internal_data_free"; }
2612 const char *
func_name()
const override {
return "internal_auto_increment"; }
2627 const char *
func_name()
const override {
return "internal_checksum"; }
2640 const char *
func_name()
const override {
return "internal_keys_disabled"; }
2656 return "internal_index_column_cardinality";
2671 const char *
func_name()
const override {
return "internal_dd_char_length"; }
2687 return "internal_get_view_warning_or_error";
2708 return "get_dd_index_sub_part_length";
2719 const char *
func_name()
const override {
return "internal_tablespace_id"; }
2738 return "internal_tablespace_logfile_group_number";
2758 return "internal_tablespace_free_extents";
2778 return "internal_tablespace_total_extents";
2798 return "internal_tablespace_extent_size";
2818 return "internal_tablespace_initial_size";
2838 return "internal_tablespace_maximum_size";
2858 return "internal_tablespace_autoextend_size";
2878 return "internal_tablespace_version";
2898 return "internal_tablespace_data_free";
2932 pointer_cast<Check_function_as_value_generator_parameters *>(
2935 ? ER_CHECK_CONSTRAINT_VARIABLES
2936 : ER_DEFAULT_VAL_GENERATED_VARIABLES;
3135 double val_real(
bool *null_value)
const;
3184 bool check(
bool use_result_field);
3194 const char *
func_name()
const override {
return "set_user_var"; }
3197 bool can_use_result_field);
3208 bool no_conversions)
override {
3243 const char *
func_name()
const override {
return "get_user_var"; }
3245 bool eq(
const Item *item,
bool binary_cmp)
const override;
3299#define GET_SYS_VAR_CACHE_LONG 1
3300#define GET_SYS_VAR_CACHE_DOUBLE 2
3301#define GET_SYS_VAR_CACHE_STRING 4
3346 template <
typename T>
3373 const char *
func_name()
const override {
return "get_system_var"; }
3374 bool eq(
const Item *item,
bool binary_cmp)
const override;
3451 bool eq(
const Item *,
bool binary_cmp)
const override;
3465 pointer_cast<Check_function_as_value_generator_parameters *>(
3523 double rows_in_table)
override;
3646 assert(tr && tr->
file);
3684 const char *
func_name()
const override {
return "is_free_lock"; }
3694 pointer_cast<Check_function_as_value_generator_parameters *>(
3711 const char *
func_name()
const override {
return "is_used_lock"; }
3721 pointer_cast<Check_function_as_value_generator_parameters *>(
3737 const char *
func_name()
const override {
return "row_count"; }
3744 pointer_cast<Check_function_as_value_generator_parameters *>(
3783 const LEX_STRING &fn_name,
bool use_explicit_name,
3829 pointer_cast<Check_function_as_value_generator_parameters *>(