1#ifndef ITEM_FUNC_INCLUDED
2#define ITEM_FUNC_INCLUDED
51#include "mysqld_error.h"
112 if (
args ==
nullptr) {
473 bool eq(
const Item *item,
bool binary_cmp)
const override;
522 uint nitems,
int item_sep = 1) {
532 uint nitems,
int item_sep = 1) {
709 const MY_BITMAP *fields_to_ignore)
const;
726 pointer_cast<Check_function_as_value_generator_parameters *>(
998 const char *
func_name()
const override {
return "connection_id"; }
1004 pointer_cast<Check_function_as_value_generator_parameters *>(
1017 const char *
func_name()
const override {
return "cast_as_signed"; }
1030 const char *
func_name()
const override {
return "cast_as_unsigned"; }
1060 const char *
func_name()
const override {
return "cast_as_decimal"; }
1089 const char *
func_name()
const override {
return "cast_as_real"; }
1373 const char *
func_name()
const override {
return "ceiling"; }
1407 return truncate ?
"truncate" :
"round";
1447 pointer_cast<Check_function_as_value_generator_parameters *>(
1484 const char *
func_name()
const override {
return "degrees"; }
1492 const char *
func_name()
const override {
return "radians"; }
1578 const char *
func_name()
const override {
return "greatest"; }
1627 const char *
func_name()
const override {
return "rollup_group_item"; }
1654 bool eq(
const Item *item,
bool binary_cmp)
const override;
1688 const char *
func_name()
const override {
return "bit_length"; }
1698 const char *
func_name()
const override {
return "char_length"; }
1711 const char *
func_name()
const override {
return "coercibility"; }
1750 return "validate_password_strength";
1807 const char *
func_name()
const override {
return "find_in_set"; }
1883 template <
class Char_func,
class Int_func>
1885 template <
class Int_func>
1902 return eval_str_op(
str, std::bit_or<char>(), std::bit_or<ulonglong>());
1915 return eval_str_op(
str, std::bit_and<char>(), std::bit_and<ulonglong>());
1928 return eval_str_op(
str, std::bit_xor<char>(), std::bit_xor<ulonglong>());
1936 const char *
func_name()
const override {
return "bit_count"; }
1953 template <
bool to_left>
1955 template <
bool to_left>
2014 const char *
func_name()
const override {
return "last_insert_id"; }
2022 pointer_cast<Check_function_as_value_generator_parameters *>(
2043 const char *
func_name()
const override {
return "benchmark"; }
2055 pointer_cast<Check_function_as_value_generator_parameters *>(
2084 pointer_cast<Check_function_as_value_generator_parameters *>(
2169 pointer_cast<Check_function_as_value_generator_parameters *>(
2255 const char *end_not_used;
2259 &end_not_used, &err_not_used)
2267 nullptr, &err_not_used)
2272 if (!res)
return nullptr;
2301 const char *
func_name()
const override {
return "get_lock"; }
2312 pointer_cast<Check_function_as_value_generator_parameters *>(
2329 const char *
func_name()
const override {
return "release_lock"; }
2339 pointer_cast<Check_function_as_value_generator_parameters *>(
2354 const char *
func_name()
const override {
return "release_all_locks"; }
2362 pointer_cast<Check_function_as_value_generator_parameters *>(
2385 const char *
func_name()
const override {
return "source_pos_wait"; }
2396 pointer_cast<Check_function_as_value_generator_parameters *>(
2424 const char *
func_name()
const override {
return "can_access_database"; }
2436 const char *
func_name()
const override {
return "can_access_table"; }
2448 const char *
func_name()
const override {
return "can_access_user"; }
2460 const char *
func_name()
const override {
return "can_access_trigger"; }
2473 const char *
func_name()
const override {
return "can_access_routine"; }
2485 const char *
func_name()
const override {
return "can_access_event"; }
2497 const char *
func_name()
const override {
return "can_access_resource_group"; }
2510 const char *
func_name()
const override {
return "can_access_view"; }
2522 const char *
func_name()
const override {
return "can_access_column"; }
2538 const char *
func_name()
const override {
return "is_visible_dd_object"; }
2552 const char *
func_name()
const override {
return "internal_table_rows"; }
2567 const char *
func_name()
const override {
return "internal_avg_row_length"; }
2582 const char *
func_name()
const override {
return "internal_data_length"; }
2597 const char *
func_name()
const override {
return "internal_max_data_length"; }
2612 const char *
func_name()
const override {
return "internal_index_length"; }
2627 const char *
func_name()
const override {
return "internal_data_free"; }
2642 const char *
func_name()
const override {
return "internal_auto_increment"; }
2657 const char *
func_name()
const override {
return "internal_checksum"; }
2670 const char *
func_name()
const override {
return "internal_keys_disabled"; }
2686 return "internal_index_column_cardinality";
2701 const char *
func_name()
const override {
return "internal_dd_char_length"; }
2717 return "internal_get_view_warning_or_error";
2738 return "get_dd_index_sub_part_length";
2749 const char *
func_name()
const override {
return "internal_tablespace_id"; }
2768 return "internal_tablespace_logfile_group_number";
2788 return "internal_tablespace_free_extents";
2808 return "internal_tablespace_total_extents";
2828 return "internal_tablespace_extent_size";
2848 return "internal_tablespace_initial_size";
2868 return "internal_tablespace_maximum_size";
2888 return "internal_tablespace_autoextend_size";
2908 return "internal_tablespace_version";
2928 return "internal_tablespace_data_free";
2962 pointer_cast<Check_function_as_value_generator_parameters *>(
2965 ? ER_CHECK_CONSTRAINT_VARIABLES
2966 : ER_DEFAULT_VAL_GENERATED_VARIABLES;
3165 double val_real(
bool *null_value)
const;
3214 bool check(
bool use_result_field);
3224 const char *
func_name()
const override {
return "set_user_var"; }
3227 bool can_use_result_field);
3238 bool no_conversions)
override {
3273 const char *
func_name()
const override {
return "get_user_var"; }
3275 bool eq(
const Item *item,
bool binary_cmp)
const override;
3329#define GET_SYS_VAR_CACHE_LONG 1
3330#define GET_SYS_VAR_CACHE_DOUBLE 2
3331#define GET_SYS_VAR_CACHE_STRING 4
3376 template <
typename T>
3403 const char *
func_name()
const override {
return "get_system_var"; }
3404 bool eq(
const Item *item,
bool binary_cmp)
const override;
3481 bool eq(
const Item *,
bool binary_cmp)
const override;
3495 pointer_cast<Check_function_as_value_generator_parameters *>(
3553 double rows_in_table)
override;
3676 assert(tr && tr->
file);
3714 const char *
func_name()
const override {
return "is_free_lock"; }
3724 pointer_cast<Check_function_as_value_generator_parameters *>(
3741 const char *
func_name()
const override {
return "is_used_lock"; }
3751 pointer_cast<Check_function_as_value_generator_parameters *>(
3767 const char *
func_name()
const override {
return "row_count"; }
3774 pointer_cast<Check_function_as_value_generator_parameters *>(
3813 const LEX_STRING &fn_name,
bool use_explicit_name,