1#ifndef ITEM_FUNC_INCLUDED
2#define ITEM_FUNC_INCLUDED
51#include "mysqld_error.h"
119 if (
args ==
nullptr) {
527 bool eq(
const Item *item)
const override;
581 uint nitems,
int item_sep = 1) {
591 uint nitems,
int item_sep = 1) {
607 replace->stack.push_front(
this);
612 pointer_cast<Replace_equal *>(arg)->stack.pop();
800 const MY_BITMAP *fields_to_ignore)
const;
817 pointer_cast<Check_function_as_value_generator_parameters *>(
1089 const char *
func_name()
const override {
return "connection_id"; }
1095 pointer_cast<Check_function_as_value_generator_parameters *>(
1108 const char *
func_name()
const override {
return "cast_as_signed"; }
1121 const char *
func_name()
const override {
return "cast_as_unsigned"; }
1155 const char *
func_name()
const override {
return "cast_as_decimal"; }
1167 obj->
add_alias(
"is_double", create_dom_ptr<Json_boolean>(
1191 const char *
func_name()
const override {
return "cast_as_real"; }
1475 const char *
func_name()
const override {
return "ceiling"; }
1509 return truncate ?
"truncate" :
"round";
1550 pointer_cast<Check_function_as_value_generator_parameters *>(
1587 const char *
func_name()
const override {
return "degrees"; }
1595 const char *
func_name()
const override {
return "radians"; }
1688 const char *
func_name()
const override {
return "greatest"; }
1737 const char *
func_name()
const override {
return "rollup_group_item"; }
1802 const char *
func_name()
const override {
return "vector_dim"; }
1826 const char *
func_name()
const override {
return "bit_length"; }
1836 const char *
func_name()
const override {
return "char_length"; }
1849 const char *
func_name()
const override {
return "coercibility"; }
1888 return "validate_password_strength";
1945 const char *
func_name()
const override {
return "find_in_set"; }
2021 template <
class Char_func,
class Int_func>
2023 template <
class Int_func>
2040 return eval_str_op(
str, std::bit_or<char>(), std::bit_or<ulonglong>());
2053 return eval_str_op(
str, std::bit_and<char>(), std::bit_and<ulonglong>());
2066 return eval_str_op(
str, std::bit_xor<char>(), std::bit_xor<ulonglong>());
2074 const char *
func_name()
const override {
return "bit_count"; }
2091 template <
bool to_left>
2093 template <
bool to_left>
2152 const char *
func_name()
const override {
return "last_insert_id"; }
2165 pointer_cast<Check_function_as_value_generator_parameters *>(
2186 const char *
func_name()
const override {
return "benchmark"; }
2198 pointer_cast<Check_function_as_value_generator_parameters *>(
2227 pointer_cast<Check_function_as_value_generator_parameters *>(
2266 pointer_cast<Check_function_as_value_generator_parameters *>(
2363 const char *end_not_used;
2367 &end_not_used, &err_not_used)
2375 nullptr, &err_not_used)
2380 if (!res)
return nullptr;
2409 const char *
func_name()
const override {
return "get_lock"; }
2420 pointer_cast<Check_function_as_value_generator_parameters *>(
2437 const char *
func_name()
const override {
return "release_lock"; }
2447 pointer_cast<Check_function_as_value_generator_parameters *>(
2462 const char *
func_name()
const override {
return "release_all_locks"; }
2470 pointer_cast<Check_function_as_value_generator_parameters *>(
2493 const char *
func_name()
const override {
return "source_pos_wait"; }
2504 pointer_cast<Check_function_as_value_generator_parameters *>(
2532 const char *
func_name()
const override {
return "can_access_database"; }
2544 const char *
func_name()
const override {
return "can_access_table"; }
2556 const char *
func_name()
const override {
return "can_access_user"; }
2568 const char *
func_name()
const override {
return "can_access_trigger"; }
2581 const char *
func_name()
const override {
return "can_access_routine"; }
2593 const char *
func_name()
const override {
return "can_access_event"; }
2605 const char *
func_name()
const override {
return "can_access_resource_group"; }
2618 const char *
func_name()
const override {
return "can_access_view"; }
2630 const char *
func_name()
const override {
return "can_access_column"; }
2646 const char *
func_name()
const override {
return "is_visible_dd_object"; }
2660 const char *
func_name()
const override {
return "internal_table_rows"; }
2675 const char *
func_name()
const override {
return "internal_avg_row_length"; }
2690 const char *
func_name()
const override {
return "internal_data_length"; }
2705 const char *
func_name()
const override {
return "internal_max_data_length"; }
2720 const char *
func_name()
const override {
return "internal_index_length"; }
2735 const char *
func_name()
const override {
return "internal_data_free"; }
2750 const char *
func_name()
const override {
return "internal_auto_increment"; }
2765 const char *
func_name()
const override {
return "internal_checksum"; }
2778 const char *
func_name()
const override {
return "internal_keys_disabled"; }
2794 return "internal_index_column_cardinality";
2809 const char *
func_name()
const override {
return "internal_dd_char_length"; }
2825 return "internal_get_view_warning_or_error";
2846 return "get_dd_index_sub_part_length";
2857 const char *
func_name()
const override {
return "internal_tablespace_id"; }
2876 return "internal_tablespace_logfile_group_number";
2896 return "internal_tablespace_free_extents";
2916 return "internal_tablespace_total_extents";
2936 return "internal_tablespace_extent_size";
2956 return "internal_tablespace_initial_size";
2976 return "internal_tablespace_maximum_size";
2996 return "internal_tablespace_autoextend_size";
3016 return "internal_tablespace_version";
3036 return "internal_tablespace_data_free";
3070 pointer_cast<Check_function_as_value_generator_parameters *>(
3073 ? ER_CHECK_CONSTRAINT_VARIABLES
3074 : ER_DEFAULT_VAL_GENERATED_VARIABLES;
3274 double val_real(
bool *null_value)
const;
3323 bool check(
bool use_result_field);
3333 const char *
func_name()
const override {
return "set_user_var"; }
3336 bool can_use_result_field);
3347 bool no_conversions)
override {
3382 const char *
func_name()
const override {
return "get_user_var"; }
3438#define GET_SYS_VAR_CACHE_LONG 1
3439#define GET_SYS_VAR_CACHE_DOUBLE 2
3440#define GET_SYS_VAR_CACHE_STRING 4
3485 template <
typename T>
3512 const char *
func_name()
const override {
return "get_system_var"; }
3608 pointer_cast<Check_function_as_value_generator_parameters *>(
3666 double rows_in_table)
override;
3789 assert(tr && tr->
file);
3827 const char *
func_name()
const override {
return "is_free_lock"; }
3837 pointer_cast<Check_function_as_value_generator_parameters *>(