1#ifndef ITEM_FUNC_INCLUDED
2#define ITEM_FUNC_INCLUDED
51#include "mysqld_error.h"
120 if (
args ==
nullptr) {
486 bool eq(
const Item *item,
bool binary_cmp)
const override;
535 uint nitems,
int item_sep = 1) {
545 uint nitems,
int item_sep = 1) {
722 const MY_BITMAP *fields_to_ignore)
const;
739 pointer_cast<Check_function_as_value_generator_parameters *>(
1011 const char *
func_name()
const override {
return "connection_id"; }
1017 pointer_cast<Check_function_as_value_generator_parameters *>(
1030 const char *
func_name()
const override {
return "cast_as_signed"; }
1043 const char *
func_name()
const override {
return "cast_as_unsigned"; }
1076 const char *
func_name()
const override {
return "cast_as_decimal"; }
1088 obj->
add_alias(
"is_double", create_dom_ptr<Json_boolean>(
1111 const char *
func_name()
const override {
return "cast_as_real"; }
1395 const char *
func_name()
const override {
return "ceiling"; }
1429 return truncate ?
"truncate" :
"round";
1469 pointer_cast<Check_function_as_value_generator_parameters *>(
1506 const char *
func_name()
const override {
return "degrees"; }
1514 const char *
func_name()
const override {
return "radians"; }
1606 const char *
func_name()
const override {
return "greatest"; }
1655 const char *
func_name()
const override {
return "rollup_group_item"; }
1686 bool eq(
const Item *item,
bool binary_cmp)
const override;
1720 const char *
func_name()
const override {
return "bit_length"; }
1730 const char *
func_name()
const override {
return "char_length"; }
1743 const char *
func_name()
const override {
return "coercibility"; }
1782 return "validate_password_strength";
1839 const char *
func_name()
const override {
return "find_in_set"; }
1915 template <
class Char_func,
class Int_func>
1917 template <
class Int_func>
1934 return eval_str_op(
str, std::bit_or<char>(), std::bit_or<ulonglong>());
1947 return eval_str_op(
str, std::bit_and<char>(), std::bit_and<ulonglong>());
1960 return eval_str_op(
str, std::bit_xor<char>(), std::bit_xor<ulonglong>());
1968 const char *
func_name()
const override {
return "bit_count"; }
1985 template <
bool to_left>
1987 template <
bool to_left>
2046 const char *
func_name()
const override {
return "last_insert_id"; }
2059 pointer_cast<Check_function_as_value_generator_parameters *>(
2080 const char *
func_name()
const override {
return "benchmark"; }
2092 pointer_cast<Check_function_as_value_generator_parameters *>(
2121 pointer_cast<Check_function_as_value_generator_parameters *>(
2162 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;
3484 bool eq(
const Item *,
bool binary_cmp)
const override;
3498 pointer_cast<Check_function_as_value_generator_parameters *>(
3556 double rows_in_table)
override;
3679 assert(tr && tr->
file);
3717 const char *
func_name()
const override {
return "is_free_lock"; }
3727 pointer_cast<Check_function_as_value_generator_parameters *>(
3744 const char *
func_name()
const override {
return "is_used_lock"; }
3754 pointer_cast<Check_function_as_value_generator_parameters *>(
3770 const char *
func_name()
const override {
return "row_count"; }
3777 pointer_cast<Check_function_as_value_generator_parameters *>(
3816 const LEX_STRING &fn_name,
bool use_explicit_name,