1#ifndef ITEM_FUNC_INCLUDED
2#define ITEM_FUNC_INCLUDED
51#include "mysqld_error.h"
120 if (
args ==
nullptr) {
198 uint64_t
hash(
bool commutative_args);
200 uint64_t
hash_args(
bool commutative)
const;
539 bool eq(
const Item *item)
const override;
563 uint64_t
hash()
override;
619 replace->stack.push_front(
this);
624 pointer_cast<Replace_equal *>(arg)->stack.pop();
812 const MY_BITMAP *fields_to_ignore)
const;
829 pointer_cast<Check_function_as_value_generator_parameters *>(
1121 const char *
func_name()
const override {
return "connection_id"; }
1127 pointer_cast<Check_function_as_value_generator_parameters *>(
1140 const char *
func_name()
const override {
return "cast_as_signed"; }
1153 const char *
func_name()
const override {
return "cast_as_unsigned"; }
1188 const char *
func_name()
const override {
return "cast_as_decimal"; }
1192 uint64_t
hash()
override;
1201 obj->
add_alias(
"is_double", create_dom_ptr<Json_boolean>(
1226 const char *
func_name()
const override {
return "cast_as_real"; }
1511 const char *
func_name()
const override {
return "ceiling"; }
1545 return truncate ?
"truncate" :
"round";
1586 pointer_cast<Check_function_as_value_generator_parameters *>(
1623 const char *
func_name()
const override {
return "degrees"; }
1631 const char *
func_name()
const override {
return "radians"; }
1741 const char *
func_name()
const override {
return "greatest"; }
1791 const char *
func_name()
const override {
return "rollup_group_item"; }
1822 uint64_t
hash()
override;
1857 const char *
func_name()
const override {
return "vector_dim"; }
1881 const char *
func_name()
const override {
return "bit_length"; }
1891 const char *
func_name()
const override {
return "char_length"; }
1904 const char *
func_name()
const override {
return "coercibility"; }
1943 return "validate_password_strength";
2000 const char *
func_name()
const override {
return "find_in_set"; }
2082 template <
class Char_func,
class Int_func>
2084 template <
class Int_func>
2102 return eval_str_op(
str, std::bit_or<char>(), std::bit_or<ulonglong>());
2116 return eval_str_op(
str, std::bit_and<char>(), std::bit_and<ulonglong>());
2130 return eval_str_op(
str, std::bit_xor<char>(), std::bit_xor<ulonglong>());
2138 const char *
func_name()
const override {
return "bit_count"; }
2155 template <
bool to_left>
2157 template <
bool to_left>
2217 const char *
func_name()
const override {
return "last_insert_id"; }
2230 pointer_cast<Check_function_as_value_generator_parameters *>(
2251 const char *
func_name()
const override {
return "benchmark"; }
2263 pointer_cast<Check_function_as_value_generator_parameters *>(
2292 pointer_cast<Check_function_as_value_generator_parameters *>(
2330 pointer_cast<Check_function_as_value_generator_parameters *>(
2432 const char *end_not_used;
2436 &end_not_used, &err_not_used)
2444 nullptr, &err_not_used)
2449 if (!res)
return nullptr;
2479 const char *
func_name()
const override {
return "get_lock"; }
2493 pointer_cast<Check_function_as_value_generator_parameters *>(
2510 const char *
func_name()
const override {
return "release_lock"; }
2523 pointer_cast<Check_function_as_value_generator_parameters *>(
2538 const char *
func_name()
const override {
return "release_all_locks"; }
2549 pointer_cast<Check_function_as_value_generator_parameters *>(
2572 const char *
func_name()
const override {
return "source_pos_wait"; }
2586 pointer_cast<Check_function_as_value_generator_parameters *>(
2614 const char *
func_name()
const override {
return "can_access_database"; }
2626 const char *
func_name()
const override {
return "can_access_table"; }
2638 const char *
func_name()
const override {
return "can_access_user"; }
2650 const char *
func_name()
const override {
return "can_access_trigger"; }
2663 const char *
func_name()
const override {
return "can_access_routine"; }
2675 const char *
func_name()
const override {
return "can_access_event"; }
2687 const char *
func_name()
const override {
return "can_access_resource_group"; }
2700 const char *
func_name()
const override {
return "can_access_view"; }
2712 const char *
func_name()
const override {
return "can_access_column"; }
2728 const char *
func_name()
const override {
return "is_visible_dd_object"; }
2742 const char *
func_name()
const override {
return "internal_table_rows"; }
2757 const char *
func_name()
const override {
return "internal_avg_row_length"; }
2772 const char *
func_name()
const override {
return "internal_data_length"; }
2787 const char *
func_name()
const override {
return "internal_max_data_length"; }
2802 const char *
func_name()
const override {
return "internal_index_length"; }
2817 const char *
func_name()
const override {
return "internal_data_free"; }
2832 const char *
func_name()
const override {
return "internal_auto_increment"; }
2847 const char *
func_name()
const override {
return "internal_checksum"; }
2860 const char *
func_name()
const override {
return "internal_keys_disabled"; }
2876 return "internal_index_column_cardinality";
2891 const char *
func_name()
const override {
return "internal_dd_char_length"; }
2907 return "internal_get_view_warning_or_error";
2928 return "get_dd_index_sub_part_length";
2939 const char *
func_name()
const override {
return "internal_tablespace_id"; }
2958 return "internal_tablespace_logfile_group_number";
2978 return "internal_tablespace_free_extents";
2998 return "internal_tablespace_total_extents";
3018 return "internal_tablespace_extent_size";
3038 return "internal_tablespace_initial_size";
3058 return "internal_tablespace_maximum_size";
3078 return "internal_tablespace_autoextend_size";
3098 return "internal_tablespace_version";
3118 return "internal_tablespace_data_free";
3155 pointer_cast<Check_function_as_value_generator_parameters *>(
3158 ? ER_CHECK_CONSTRAINT_VARIABLES
3159 : ER_DEFAULT_VAL_GENERATED_VARIABLES;
3359 double val_real(
bool *null_value)
const;
3408 bool check(
bool use_result_field);
3416 uint64_t
hash()
override;
3419 const char *
func_name()
const override {
return "set_user_var"; }
3422 bool can_use_result_field);
3433 bool no_conversions)
override {
3463 uint64_t
hash()
override;
3469 const char *
func_name()
const override {
return "get_user_var"; }
3522 uint64_t
hash()
override;
3529#define GET_SYS_VAR_CACHE_LONG 1
3530#define GET_SYS_VAR_CACHE_DOUBLE 2
3531#define GET_SYS_VAR_CACHE_STRING 4
3576 template <
typename T>
3591 uint64_t
hash()
override;
3604 const char *
func_name()
const override {
return "get_system_var"; }
3695 uint64_t
hash()
override;
3700 pointer_cast<Check_function_as_value_generator_parameters *>(
3758 double rows_in_table)
override;
3881 assert(tr && tr->
file);
3919 const char *
func_name()
const override {
return "is_free_lock"; }
3932 pointer_cast<Check_function_as_value_generator_parameters *>(
3949 const char *
func_name()
const override {
return "is_used_lock"; }
3962 pointer_cast<Check_function_as_value_generator_parameters *>(
3978 const char *
func_name()
const override {
return "row_count"; }
3985 pointer_cast<Check_function_as_value_generator_parameters *>(
4024 const LEX_STRING &fn_name,
bool use_explicit_name,
4057 pointer_cast<Item_ident::Change_context *>(arg)->m_context;
4072 pointer_cast<Check_function_as_value_generator_parameters *>(
4091 const char *
func_name()
const override {
return "found_rows"; }
4098 pointer_cast<Check_function_as_value_generator_parameters *>(
4114 const char *
func_name()
const override {
return "uuid_short"; }
4123 pointer_cast<Check_function_as_value_generator_parameters *>(
4155 return "internal_is_mandatory_role";
4170 return "internal_use_terminology_previous";
4189 const char *
func_name()
const override {
return "internal_is_enabled_role"; }
4221 bool unsafe_for_replication);
4225 bool unsafe_for_replication) {
4227 unsafe_for_replication);
4236 Field **found =
nullptr);
Kerberos Client Authentication nullptr
Definition: auth_kerberos_client_plugin.cc:247
int64 query_id_t
Definition: binlog.h:72
Class to log audit event EVENT_TRACKING_GLOBAL_VARIABLE_GET.
Definition: item_func.h:3536
Audit_global_variable_get_event(THD *thd, Item_func_get_system_var *item, uchar cache_type)
Definition: item_func.cc:7505
THD * m_thd
Definition: item_func.h:3544
~Audit_global_variable_get_event()
Definition: item_func.cc:7518
bool m_audit_event
Definition: item_func.h:3563
Item_func_get_system_var * m_item
Definition: item_func.h:3547
uchar m_val_type
Definition: item_func.h:3556
This class represents the cost of evaluating an Item.
Definition: item.h:790
void MarkExpensive()
Definition: item.h:799
void set_numeric()
Definition: item.h:220
const CHARSET_INFO * collation
Definition: item.h:186
Date_val is a temporal type that represents dates within the range 0000-01-01 and 9999-12-31.
Definition: my_temporal.h:421
Definition: my_temporal.h:341
Wrapper for struct ft_hints.
Definition: handler.h:4306
uint get_flags() const
Get Ft_hints flags.
Definition: handler.h:4369
enum ft_operation get_op_type() const
Get Ft_hints operation type.
Definition: handler.h:4362
void set_hint_op(enum ft_operation type, double value)
Set comparison operation type and and value for master MATCH function.
Definition: handler.h:4324
Definition: item_func.h:1378
Item_dec_func(const POS &pos, Item *a)
Definition: item_func.h:1381
Item_dec_func(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1383
Item_dec_func(Item *a)
Definition: item_func.h:1380
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:2970
Definition: item_func.h:1363
enum Functype functype() const override
Definition: item_func.h:1373
double real_op() override
Evaluates item when resulting data type is floating point type.
Definition: item_func.cc:2934
bool check_function_as_value_generator(uchar *) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_func.h:1372
my_decimal * decimal_op(my_decimal *) override
Evaluates item when resulting data type is DECIMAL.
Definition: item_func.cc:2949
const char * func_name() const override
Definition: item_func.h:1369
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_func.h:1371
longlong int_op() override
Evaluates item when resulting data type is integer type.
Definition: item_func.cc:2940
Item_func_abs(const POS &pos, Item *a)
Definition: item_func.h:1365
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:2964
Definition: item_func.h:1443
const char * func_name() const override
Definition: item_func.h:1447
double val_real() override
Definition: item_func.cc:3072
enum Functype functype() const override
Definition: item_func.h:1448
Item_func_acos(const POS &pos, Item *a)
Definition: item_func.h:1445
Definition: item_func.h:1232
Item_func_additive_op(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1235
Item_func_additive_op(Item *a, Item *b)
Definition: item_func.h:1234
void result_precision() override
Set precision of results for additive operations (+ and -)
Definition: item_func.cc:2315
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_func.h:1239
bool check_function_as_value_generator(uchar *) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_func.h:1240
Definition: item_func.h:1964
const char * func_name() const override
Definition: item_func.h:1970
longlong val_int() override
Definition: item_func.cc:4650
String value
Definition: item_func.h:1965
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:1971
Item_func_ascii(const POS &pos, Item *a)
Definition: item_func.h:1968
Definition: item_func.h:1451
double val_real() override
Definition: item_func.cc:3082
enum Functype functype() const override
Definition: item_func.h:1456
const char * func_name() const override
Definition: item_func.h:1455
Item_func_asin(const POS &pos, Item *a)
Definition: item_func.h:1453
Definition: item_func.h:1459
enum Functype functype() const override
Definition: item_func.h:1465
double val_real() override
Definition: item_func.cc:3090
Item_func_atan(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1462
Item_func_atan(const POS &pos, Item *a)
Definition: item_func.h:1461
const char * func_name() const override
Definition: item_func.h:1464
Definition: item_func.h:2237
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:6166
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2252
table_map get_initial_pseudo_tables() const override
Ensure that "benchmark()" is never optimized away.
Definition: item_func.h:2245
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_func.cc:6096
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_func.h:2261
Item_int_func super
Definition: item_func.h:2238
Item_func_benchmark(const POS &pos, Item *count_expr, Item *expr)
Definition: item_func.h:2241
longlong val_int() override
Definition: item_func.cc:6105
const char * func_name() const override
Definition: item_func.h:2251
Definition: item_func.h:2106
longlong int_op() override
Performs the operation on integers to produce a result of type INT_RESULT.
Definition: item_func.h:2114
const char * func_name() const override
Definition: item_func.h:2110
uint64_t hash() override
Generate hash unique to an item depending on its attributes.
Definition: item_func.h:2111
Item_func_bit_and(const POS &pos, Item *a, Item *b)
Definition: item_func.h:2108
String * str_op(String *str) override
Performs the operation on binary strings to produce a result of type STRING_RESULT.
Definition: item_func.h:2115
Definition: item_func.h:2134
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2139
longlong val_int() override
Definition: item_func.cc:4789
const char * func_name() const override
Definition: item_func.h:2138
Item_func_bit_count(const POS &pos, Item *a)
Definition: item_func.h:2136
Definition: item_func.h:1874
const char * func_name() const override
Definition: item_func.h:1881
longlong val_int() override
Definition: item_func.h:1877
Item_func_bit_length(const POS &pos, Item *a)
Definition: item_func.h:1876
Definition: item_func.h:2187
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.h:2196
uint64_t hash() override
Generate hash unique to an item depending on its attributes.
Definition: item_func.h:2200
Item_func_bit_neg(const POS &pos, Item *a)
Definition: item_func.h:2194
longlong int_op() override
Performs the operation on integers to produce a result of type INT_RESULT.
Definition: item_func.cc:3324
bool binary_result_requires_binary_second_arg() const override
Definition: item_func.h:2189
String * str_op(String *str) override
Performs the operation on binary strings to produce a result of type STRING_RESULT.
Definition: item_func.cc:3332
const char * func_name() const override
Definition: item_func.h:2195
Definition: item_func.h:2092
const char * func_name() const override
Definition: item_func.h:2096
String * str_op(String *str) override
Performs the operation on binary strings to produce a result of type STRING_RESULT.
Definition: item_func.h:2101
longlong int_op() override
Performs the operation on integers to produce a result of type INT_RESULT.
Definition: item_func.h:2100
Item_func_bit_or(const POS &pos, Item *a, Item *b)
Definition: item_func.h:2094
uint64_t hash() override
Generate hash unique to an item depending on its attributes.
Definition: item_func.h:2097
Base class for all the bit functions that work with two binary arguments: '&', '|',...
Definition: item_func.h:2077
String * eval_str_op(String *, Char_func char_func, Int_func int_func)
Template function that evaluates the bitwise operation over binary arguments.
Definition: item_func.cc:3390
bool binary_result_requires_binary_second_arg() const override
Definition: item_func.h:2079
longlong eval_int_op(Int_func int_func)
Template function used to evaluate the bitwise operation over int arguments.
Definition: item_func.cc:3364
Item_func_bit_two_param(const POS &pos, Item *a, Item *b)
Definition: item_func.h:2088
Definition: item_func.h:2120
uint64_t hash() override
Generate hash unique to an item depending on its attributes.
Definition: item_func.h:2125
const char * func_name() const override
Definition: item_func.h:2124
Item_func_bit_xor(const POS &pos, Item *a, Item *b)
Definition: item_func.h:2122
longlong int_op() override
Performs the operation on integers to produce a result of type INT_RESULT.
Definition: item_func.h:2128
String * str_op(String *str) override
Performs the operation on binary strings to produce a result of type STRING_RESULT.
Definition: item_func.h:2129
Definition: item_func.h:2009
virtual longlong int_op()=0
Performs the operation on integers to produce a result of type INT_RESULT.
bool val_date(Date_val *date, my_time_flags_t flags) override
Evaluate the item and return result as a date value.
Definition: item_func.h:2037
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.h:2033
String tmp_value
Buffer storing the determined value.
Definition: item_func.h:2014
bool val_datetime(Datetime_val *dt, my_time_flags_t flags) override
Evaluate the item and return result as a datetime value.
Definition: item_func.h:2049
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:3136
bool val_time(Time_val *time) override
Evaluate the item and return result as a time value.
Definition: item_func.h:2043
virtual bool binary_result_requires_binary_second_arg() const =0
my_decimal * val_decimal(my_decimal *decimal_value) override
Definition: item_func.cc:3197
double val_real() override
Definition: item_func.cc:3181
String * val_str(String *str) override
Definition: item_func.cc:3205
Item_result hybrid_type
Stores the Item's result type. Can only be INT_RESULT or STRING_RESULT.
Definition: item_func.h:2012
longlong val_int() override
Definition: item_func.cc:3165
Item_func_bit(const POS &pos, Item *a)
Definition: item_func.h:2023
virtual String * str_op(String *)=0
Performs the operation on binary strings to produce a result of type STRING_RESULT.
enum Item_result result_type() const override
Definition: item_func.h:2026
Item_func_bit(const POS &pos, Item *a, Item *b)
Definition: item_func.h:2022
Definition: item_func.h:2707
const char * func_name() const override
Definition: item_func.h:2712
longlong val_int() override
INFORMATION_SCHEMA picks metadata from DD using system views.
Definition: item_func.cc:9504
Item_func_can_access_column(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_func.h:2709
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2713
Internal functions used by INFORMATION_SCHEMA implementation to check if user have access to given da...
Definition: item_func.h:2609
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2615
Item_func_can_access_database(const POS &pos, Item *a)
Definition: item_func.h:2611
longlong val_int() override
INFORMATION_SCHEMA picks metadata from DD using system views.
Definition: item_func.cc:9085
const char * func_name() const override
Definition: item_func.h:2614
Definition: item_func.h:2671
Item_func_can_access_event(const POS &pos, Item *a)
Definition: item_func.h:2673
const char * func_name() const override
Definition: item_func.h:2675
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2676
longlong val_int() override
INFORMATION_SCHEMA picks metadata from DD using system views.
Definition: item_func.cc:9389
Definition: item_func.h:2682
const char * func_name() const override
Definition: item_func.h:2687
Item_func_can_access_resource_group(const POS &pos, Item *a)
Definition: item_func.h:2684
longlong val_int() override
INFORMATION_SCHEMA picks metadata from DD using system views.
Definition: item_func.cc:9441
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2688
Definition: item_func.h:2658
Item_func_can_access_routine(const POS &pos, PT_item_list *list)
Definition: item_func.h:2660
const char * func_name() const override
Definition: item_func.h:2663
longlong val_int() override
INFORMATION_SCHEMA picks metadata from DD using system views.
Definition: item_func.cc:9295
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2664
Definition: item_func.h:2621
const char * func_name() const override
Definition: item_func.h:2626
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2627
Item_func_can_access_table(const POS &pos, Item *a, Item *b)
Definition: item_func.h:2623
longlong val_int() override
INFORMATION_SCHEMA picks metadata from new DD using system views.
Definition: item_func.cc:9209
Definition: item_func.h:2645
Item_func_can_access_trigger(const POS &pos, Item *a, Item *b)
Definition: item_func.h:2647
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2651
longlong val_int() override
INFORMATION_SCHEMA picks metadata from new DD using system views.
Definition: item_func.cc:9273
const char * func_name() const override
Definition: item_func.h:2650
Definition: item_func.h:2633
const char * func_name() const override
Definition: item_func.h:2638
Item_func_can_access_user(const POS &pos, Item *a, Item *b)
Definition: item_func.h:2635
longlong val_int() override
INFORMATION_SCHEMA picks metadata from new DD using system views.
Definition: item_func.cc:9232
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2639
Definition: item_func.h:2695
longlong val_int() override
INFORMATION_SCHEMA picks metadata from DD using system views.
Definition: item_func.cc:9579
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2701
Item_func_can_access_view(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:2697
const char * func_name() const override
Definition: item_func.h:2700
Definition: item_func.h:1507
bool check_function_as_value_generator(uchar *) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_func.h:1516
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_func.h:1515
const char * func_name() const override
Definition: item_func.h:1511
enum Functype functype() const override
Definition: item_func.h:1517
double real_op() override
Evaluates item when resulting data type is floating point type.
Definition: item_func.cc:3553
my_decimal * decimal_op(my_decimal *) override
Evaluates item when resulting data type is DECIMAL.
Definition: item_func.cc:3559
Item_func_ceiling(const POS &pos, Item *a)
Definition: item_func.h:1510
longlong int_op() override
Evaluates item when resulting data type is integer type.
Definition: item_func.cc:3530
Item_func_ceiling(Item *a)
Definition: item_func.h:1509
Definition: item_func.h:1884
Item_func_char_length(Item *a)
Definition: item_func.h:1888
Item_func_char_length(const POS &pos, Item *a)
Definition: item_func.h:1889
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:1892
longlong val_int() override
Definition: item_func.cc:4501
const char * func_name() const override
Definition: item_func.h:1891
String value
Definition: item_func.h:1885
Definition: item_func.h:1898
const char * func_name() const override
Definition: item_func.h:1904
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:1905
longlong val_int() override
Definition: item_func.cc:4512
Item_func_coercibility(const POS &pos, Item *a)
Definition: item_func.h:1900
Definition: item_func.h:1111
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:1526
table_map get_initial_pseudo_tables() const override
Returns the pseudo tables depended upon in order to evaluate this function expression.
Definition: item_func.h:1117
Item_int_func super
Definition: item_func.h:1112
const char * func_name() const override
Definition: item_func.h:1121
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_func.h:1125
Item_func_connection_id(const POS &pos)
Definition: item_func.h:1115
longlong val_int() override
Definition: item_func.cc:1538
bool fix_fields(THD *thd, Item **ref) override
Definition: item_func.cc:1532
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_func.cc:1519
Definition: item_func.h:1468
enum Functype functype() const override
Definition: item_func.h:1473
const char * func_name() const override
Definition: item_func.h:1472
double val_real() override
Definition: item_func.cc:3102
Item_func_cos(const POS &pos, Item *a)
Definition: item_func.h:1470
Definition: item_func.h:1492
const char * func_name() const override
Definition: item_func.h:1496
enum Functype functype() const override
Definition: item_func.h:1497
double val_real() override
Definition: item_func.cc:3123
Item_func_cot(const POS &pos, Item *a)
Definition: item_func.h:1494
Definition: item_func.h:1619
Item_func_degrees(const POS &pos, Item *a)
Definition: item_func.h:1621
const char * func_name() const override
Definition: item_func.h:1623
enum Functype functype() const override
Definition: item_func.h:1624
Definition: item_func.h:1292
Item_func_div_base(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1294
Item_func_div_base(Item *a, Item *b)
Definition: item_func.h:1296
uint m_prec_increment
Definition: item_func.h:1303
my_decimal * decimal_op(my_decimal *) override
Evaluates item when resulting data type is DECIMAL.
Definition: item_func.cc:2581
double real_op() override
Evaluates item when resulting data type is floating point type.
Definition: item_func.cc:2566
longlong int_op() override
Evaluates item when resulting data type is integer type.
Definition: item_func.cc:2676
enum Functype functype() const override
Definition: item_func.h:1300
Definition: item_func.h:1315
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:2742
void set_numeric_type() override
Check arguments to determine the data type for a numeric function of two arguments.
Definition: item_func.cc:2753
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_func.h:1327
Item_func_div_int(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1318
enum_field_types default_data_type() const override
Get the default data (output) type for the specific item.
Definition: item_func.h:1321
bool check_function_as_value_generator(uchar *) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_func.h:1328
void result_precision() override
Definition: item_func.cc:2622
const char * func_name() const override
Definition: item_func.h:1320
Item_func_div_int(Item *a, Item *b)
Definition: item_func.h:1317
Definition: item_func.h:1306
void result_precision() override
Definition: item_func.cc:2605
Item_func_div(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1308
const char * func_name() const override
Definition: item_func.h:1310
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:2642
Definition: item_func.h:1387
double val_real() override
Definition: item_func.cc:3041
enum Functype functype() const override
Definition: item_func.h:1392
const char * func_name() const override
Definition: item_func.h:1391
Item_func_exp(const POS &pos, Item *a)
Definition: item_func.h:1389
Definition: item_func.h:1952
String value
Definition: item_func.h:1953
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:4635
const char * func_name() const override
Definition: item_func.h:1960
String tmp
Definition: item_func.h:1953
Item_func_field(const POS &pos, PT_item_list *opt_list)
Definition: item_func.h:1957
longlong val_int() override
Definition: item_func.cc:4591
Item_result cmp_type
Definition: item_func.h:1954
Definition: item_func.h:1986
const CHARSET_INFO * compare_collation() const override
Definition: item_func.h:2002
const char * func_name() const override
Definition: item_func.h:2000
Item_func_find_in_set(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1997
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:4684
longlong val_int() override
Definition: item_func.cc:4712
String value2
Definition: item_func.h:1987
DTCollation cmp_collation
Definition: item_func.h:1994
uint m_enum_value
Definition: item_func.h:1993
String value
Definition: item_func.h:1987
Definition: item_func.h:1520
my_decimal * decimal_op(my_decimal *) override
Evaluates item when resulting data type is DECIMAL.
Definition: item_func.cc:3605
const char * func_name() const override
Definition: item_func.h:1524
bool check_function_as_value_generator(uchar *) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_func.h:1529
double real_op() override
Evaluates item when resulting data type is floating point type.
Definition: item_func.cc:3599
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_func.h:1528
Item_func_floor(const POS &pos, Item *a)
Definition: item_func.h:1523
Item_func_floor(Item *a)
Definition: item_func.h:1522
longlong int_op() override
Evaluates item when resulting data type is integer type.
Definition: item_func.cc:3576
enum Functype functype() const override
Definition: item_func.h:1530
Definition: item_func.h:4083
Item_func_found_rows(const POS &pos)
Definition: item_func.h:4087
longlong val_int() override
Definition: item_func.cc:8800
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_func.h:4096
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_func.cc:8789
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:4092
Item_int_func super
Definition: item_func.h:4084
const char * func_name() const override
Definition: item_func.h:4091
Definition: item_func.h:2917
const char * func_name() const override
Definition: item_func.h:2927
longlong val_int() override
INFORMATION_SCHEMA picks metadata from DD using system views.
Definition: item_func.cc:10422
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2922
Item_func_get_dd_index_sub_part_length(const POS &pos, PT_item_list *list)
Definition: item_func.h:2919
Definition: item_func.h:2468
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_func.h:2491
table_map get_initial_pseudo_tables() const override
Returns the pseudo tables depended upon in order to evaluate this function expression.
Definition: item_func.h:2480
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2483
Item_int_func super
Definition: item_func.h:2469
Item_func_get_lock(const POS &pos, Item *a, Item *b)
Definition: item_func.h:2474
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_func.cc:5772
const char * func_name() const override
Definition: item_func.h:2479
String value
Definition: item_func.h:2471
bool is_non_const_over_literals(uchar *) override
Definition: item_func.h:2490
longlong val_int() override
Get a user level lock.
Definition: item_func.cc:5797
Definition: item_func.h:3566
const enum_var_type var_scope
Definition: item_func.h:3567
table_map get_initial_pseudo_tables() const override
Returns the pseudo tables depended upon in order to evaluate this function expression.
Definition: item_func.h:3585
uint64_t hash() override
Generate hash unique to an item depending on its attributes.
Definition: item_func.cc:7501
longlong get_sys_var_safe(THD *thd, sys_var *var)
Definition: item_func.cc:7553
bool eq_specific(const Item *item) const override
Provide a more specific equality check for a function.
Definition: item_func.cc:7833
longlong cached_llval
Definition: item_func.h:3568
enum Functype functype() const override
Definition: item_func.h:3584
Item_func_get_system_var(const System_variable_tracker &, enum_var_type scope)
Definition: item_func.cc:7450
double val_real() override
Definition: item_func.cc:7746
String cached_strval
Definition: item_func.h:3570
const char * func_name() const override
Definition: item_func.h:3604
longlong val_int() override
Definition: item_func.cc:7568
const System_variable_tracker var_tracker
Definition: item_func.h:3574
query_id_t used_query_id
Definition: item_func.h:3572
bool is_valid_for_pushdown(uchar *arg) override
Check if all the columns present in this expression are from the derived table.
Definition: item_func.h:3606
bool cached_null_value
Definition: item_func.h:3571
uchar cache_present
Definition: item_func.h:3573
double cached_dval
Definition: item_func.h:3569
enum Item_result result_type() const override
Definition: item_func.h:3593
bool is_non_const_over_literals(uchar *) override
Definition: item_func.h:3592
String * val_str(String *) override
Definition: item_func.cc:7653
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:7456
my_decimal * val_decimal(my_decimal *dec_buf) override
Definition: item_func.h:3600
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_func.cc:7839
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:7497
Definition: item_func.h:3439
Name_string name
Definition: item_func.h:3444
enum Item_result result_type() const override
Definition: item_func.cc:7348
double val_real() override
Definition: item_func.cc:6998
const CHARSET_INFO * charset_for_protocol() override
Definition: item_func.cc:7032
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:7196
Item_func_get_user_var(Name_string a)
Definition: item_func.h:3446
uint64_t hash() override
Generate hash unique to an item depending on its attributes.
Definition: item_func.cc:7359
String * val_str(String *str) override
Definition: item_func.cc:6970
bool propagate_type(THD *thd, const Type_properties &type) override
Default implementation for all functions: Propagate base_item's type into all arguments.
Definition: item_func.cc:7255
enum Functype functype() const override
Definition: item_func.h:3451
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:7352
Settable_routine_parameter * get_settable_routine_parameter() override
Definition: item_func.h:3477
user_var_entry * var_entry
Definition: item_func.h:3440
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_func.cc:7339
const char * func_name() const override
Definition: item_func.h:3469
bool set_value(THD *thd, sp_rcontext *ctx, Item **it) override
Definition: item_func.cc:7370
longlong val_int() override
Definition: item_func.cc:7018
Item_result m_cached_result_type
Definition: item_func.h:3441
my_decimal * val_decimal(my_decimal *) override
Definition: item_func.cc:7008
bool eq_specific(const Item *item) const override
Provide a more specific equality check for a function.
Definition: item_func.cc:7364
void update_used_tables() override
Updates used tables, not null tables information and accumulates properties up the item tree,...
Definition: item_func.h:3460
Item_func_get_user_var(const POS &pos, Name_string a)
Definition: item_func.h:3448
bool is_non_const_over_literals(uchar *) override
Definition: item_func.h:3470
Definition: item_func.h:1929
Item_func_instr(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1931
const char * func_name() const override
Definition: item_func.h:1934
Definition: item_func.h:1500
bool resolve_type_inner(THD *thd) override
Resolve type of function after all arguments have had their data types resolved.
Definition: item_func.cc:3468
Item_func_int_val(const POS &pos, Item *a)
Definition: item_func.h:1503
Item_func_int_val(Item *a)
Definition: item_func.h:1502
Definition: item_func.h:2826
longlong val_int() override
Definition: item_func.cc:9929
Item_func_internal_auto_increment(const POS &pos, PT_item_list *list)
Definition: item_func.h:2828
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2833
const char * func_name() const override
Definition: item_func.h:2832
enum Functype functype() const override
Definition: item_func.h:2830
Definition: item_func.h:2751
const char * func_name() const override
Definition: item_func.h:2757
Item_func_internal_avg_row_length(const POS &pos, PT_item_list *list)
Definition: item_func.h:2753
longlong val_int() override
Definition: item_func.cc:9880
enum Functype functype() const override
Definition: item_func.h:2755
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2758
Definition: item_func.h:2841
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2848
const char * func_name() const override
Definition: item_func.h:2847
Item_func_internal_checksum(const POS &pos, PT_item_list *list)
Definition: item_func.h:2843
longlong val_int() override
Definition: item_func.cc:9941
enum Functype functype() const override
Definition: item_func.h:2845
Definition: item_func.h:2811
enum Functype functype() const override
Definition: item_func.h:2815
const char * func_name() const override
Definition: item_func.h:2817
Item_func_internal_data_free(const POS &pos, PT_item_list *list)
Definition: item_func.h:2813
longlong val_int() override
Definition: item_func.cc:9917
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2818
Definition: item_func.h:2766
longlong val_int() override
Definition: item_func.cc:9890
const char * func_name() const override
Definition: item_func.h:2772
Item_func_internal_data_length(const POS &pos, PT_item_list *list)
Definition: item_func.h:2768
enum Functype functype() const override
Definition: item_func.h:2770
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2773
Definition: item_func.h:2885
longlong val_int() override
Definition: item_func.cc:10283
Item_func_internal_dd_char_length(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:2887
const char * func_name() const override
Definition: item_func.h:2891
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2892
Definition: item_func.h:2900
Item_func_internal_get_view_warning_or_error(const POS &pos, PT_item_list *list)
Definition: item_func.h:2902
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2909
longlong val_int() override
Definition: item_func.cc:10362
const char * func_name() const override
Definition: item_func.h:2906
Definition: item_func.h:2868
longlong val_int() override
INFORMATION_SCHEMA picks metadata from DD using system views.
Definition: item_func.cc:10016
Item_func_internal_index_column_cardinality(const POS &pos, PT_item_list *list)
Definition: item_func.h:2870
enum Functype functype() const override
Definition: item_func.h:2873
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2878
const char * func_name() const override
Definition: item_func.h:2875
Definition: item_func.h:2796
Item_func_internal_index_length(const POS &pos, PT_item_list *list)
Definition: item_func.h:2798
longlong val_int() override
Definition: item_func.cc:9908
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2803
enum Functype functype() const override
Definition: item_func.h:2800
const char * func_name() const override
Definition: item_func.h:2802
Internal function used by INFORMATION_SCHEMA implementation to check if a role is enabled.
Definition: item_func.h:4184
longlong val_int() override
Internal function used by INFORMATION_SCHEMA implementation to check if a role enabled.
Definition: item_func.cc:10542
enum Functype functype() const override
Definition: item_func.h:4190
Item_func_internal_is_enabled_role(const POS &pos, Item *a, Item *b)
Definition: item_func.h:4186
const char * func_name() const override
Definition: item_func.h:4189
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:4191
Internal function used by INFORMATION_SCHEMA implementation to check if a role is a mandatory role.
Definition: item_func.h:4149
longlong val_int() override
Internal function used by INFORMATION_SCHEMA implementation to check if a role is a mandatory role.
Definition: item_func.cc:10479
Item_func_internal_is_mandatory_role(const POS &pos, Item *a, Item *b)
Definition: item_func.h:4151
const char * func_name() const override
Definition: item_func.h:4154
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:4158
enum Functype functype() const override
Definition: item_func.h:4157
Definition: item_func.h:2855
Item_func_internal_keys_disabled(const POS &pos, Item *a)
Definition: item_func.h:2857
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2861
longlong val_int() override
INFORMATION_SCHEMA picks metadata from DD using system views.
Definition: item_func.cc:9968
const char * func_name() const override
Definition: item_func.h:2860
Definition: item_func.h:2781
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2788
const char * func_name() const override
Definition: item_func.h:2787
Item_func_internal_max_data_length(const POS &pos, PT_item_list *list)
Definition: item_func.h:2783
enum Functype functype() const override
Definition: item_func.h:2785
longlong val_int() override
Definition: item_func.cc:9899
Definition: item_func.h:2736
enum Functype functype() const override
Definition: item_func.h:2740
longlong val_int() override
Definition: item_func.cc:9868
Item_func_internal_table_rows(const POS &pos, PT_item_list *list)
Definition: item_func.h:2738
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2743
const char * func_name() const override
Definition: item_func.h:2742
Definition: item_func.h:3068
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:3081
Item_func_internal_tablespace_autoextend_size(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:3070
longlong val_int() override
Definition: item_func.cc:10226
enum Functype functype() const override
Definition: item_func.h:3074
const char * func_name() const override
Definition: item_func.h:3077
Definition: item_func.h:3108
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:3121
Item_func_internal_tablespace_data_free(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:3110
longlong val_int() override
Definition: item_func.cc:10259
const char * func_name() const override
Definition: item_func.h:3117
enum Functype functype() const override
Definition: item_func.h:3114
Definition: item_func.h:3008
Item_func_internal_tablespace_extent_size(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:3010
enum Functype functype() const override
Definition: item_func.h:3014
longlong val_int() override
Definition: item_func.cc:10179
const char * func_name() const override
Definition: item_func.h:3017
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:3021
Definition: item_func.h:2968
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2981
enum Functype functype() const override
Definition: item_func.h:2974
const char * func_name() const override
Definition: item_func.h:2977
Item_func_internal_tablespace_free_extents(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:2970
longlong val_int() override
Definition: item_func.cc:10149
Definition: item_func.h:2932
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2940
enum Functype functype() const override
Definition: item_func.h:2937
Item_func_internal_tablespace_id(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:2934
longlong val_int() override
Definition: item_func.cc:10116
const char * func_name() const override
Definition: item_func.h:2939
Definition: item_func.h:3028
longlong val_int() override
Definition: item_func.cc:10194
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:3041
const char * func_name() const override
Definition: item_func.h:3037
Item_func_internal_tablespace_initial_size(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:3030
enum Functype functype() const override
Definition: item_func.h:3034
Definition: item_func.h:2948
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2961
enum Functype functype() const override
Definition: item_func.h:2954
longlong val_int() override
Definition: item_func.cc:10131
Item_func_internal_tablespace_logfile_group_number(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:2950
const char * func_name() const override
Definition: item_func.h:2957
Definition: item_func.h:3048
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:3061
Item_func_internal_tablespace_maximum_size(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:3050
const char * func_name() const override
Definition: item_func.h:3057
longlong val_int() override
Definition: item_func.cc:10209
enum Functype functype() const override
Definition: item_func.h:3054
Definition: item_func.h:2988
longlong val_int() override
Definition: item_func.cc:10164
enum Functype functype() const override
Definition: item_func.h:2994
Item_func_internal_tablespace_total_extents(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:2990
const char * func_name() const override
Definition: item_func.h:2997
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:3001
Definition: item_func.h:3088
Item_func_internal_tablespace_version(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:3090
longlong val_int() override
Definition: item_func.cc:10242
const char * func_name() const override
Definition: item_func.h:3097
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:3101
enum Functype functype() const override
Definition: item_func.h:3094
Definition: item_func.h:4164
const char * func_name() const override
Definition: item_func.h:4169
longlong val_int() override
Definition: item_func.cc:10513
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:4173
Item_func_internal_use_terminology_previous(const POS &pos)
Definition: item_func.h:4166
enum Functype functype() const override
Definition: item_func.h:4172
Definition: item_func.h:3909
longlong val_int() override
Check if user level lock is free.
Definition: item_func.cc:6000
Item_func_is_free_lock(const POS &pos, Item *a)
Definition: item_func.h:3915
const char * func_name() const override
Definition: item_func.h:3919
Item_int_func super
Definition: item_func.h:3910
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:3923
bool is_non_const_over_literals(uchar *) override
Definition: item_func.h:3929
table_map get_initial_pseudo_tables() const override
Returns the pseudo tables depended upon in order to evaluate this function expression.
Definition: item_func.h:3920
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_func.cc:5976
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_func.h:3930
String value
Definition: item_func.h:3912
Definition: item_func.h:3939
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:3953
Item_func_is_used_lock(const POS &pos, Item *a)
Definition: item_func.h:3945
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_func.h:3960
Item_int_func super
Definition: item_func.h:3940
String value
Definition: item_func.h:3942
const char * func_name() const override
Definition: item_func.h:3949
longlong val_int() override
Check if user level lock is used and return connection id of owner.
Definition: item_func.cc:6043
table_map get_initial_pseudo_tables() const override
Returns the pseudo tables depended upon in order to evaluate this function expression.
Definition: item_func.h:3950
bool is_non_const_over_literals(uchar *) override
Definition: item_func.h:3959
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_func.cc:6022
Definition: item_func.h:2719
Item_func_is_visible_dd_object(const POS &pos, Item *a, Item *b)
Definition: item_func.h:2723
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2729
Item_func_is_visible_dd_object(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_func.h:2725
const char * func_name() const override
Definition: item_func.h:2728
longlong val_int() override
Skip hidden tables, columns, indexes and index elements.
Definition: item_func.cc:9712
Item_func_is_visible_dd_object(const POS &pos, Item *a)
Definition: item_func.h:2721
Definition: item_func.h:2207
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2223
const char * func_name() const override
Definition: item_func.h:2217
Item_func_last_insert_id(const POS &pos, Item *a)
Definition: item_func.h:2213
Item_func_last_insert_id()
Definition: item_func.h:2211
table_map get_initial_pseudo_tables() const override
Returns the pseudo tables depended upon in order to evaluate this function expression.
Definition: item_func.h:2219
longlong val_int() override
Definition: item_func.cc:6075
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_func.h:2228
Item_int_func super
Definition: item_func.h:2208
Item_func_last_insert_id(const POS &pos)
Definition: item_func.h:2212
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_func.cc:6067
Definition: item_func.h:1837
Item_func_length(const POS &pos, Item *a)
Definition: item_func.h:1841
String value
Definition: item_func.h:1838
const char * func_name() const override
Definition: item_func.h:1843
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:1844
longlong val_int() override
Definition: item_func.cc:4475
Definition: item_func.h:1395
double val_real() override
Gateway to natural LOG function.
Definition: item_func.cc:2981
enum Functype functype() const override
Definition: item_func.h:1400
const char * func_name() const override
Definition: item_func.h:1399
Item_func_ln(const POS &pos, Item *a)
Definition: item_func.h:1397
Definition: item_func.h:1912
String value1
Definition: item_func.h:1913
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:4570
longlong val_int() override
Definition: item_func.cc:4532
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:4518
Item_func_locate(Item *a, Item *b)
Definition: item_func.h:1916
Item_func_locate(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_func.h:1919
const char * func_name() const override
Definition: item_func.h:1922
Item_func_locate(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1917
String value2
Definition: item_func.h:1913
Definition: item_func.h:1419
double val_real() override
Definition: item_func.cc:3030
enum Functype functype() const override
Definition: item_func.h:1424
const char * func_name() const override
Definition: item_func.h:1423
Item_func_log10(const POS &pos, Item *a)
Definition: item_func.h:1421
Definition: item_func.h:1412
double val_real() override
Definition: item_func.cc:3018
const char * func_name() const override
Definition: item_func.h:1416
Item_func_log2(const POS &pos, Item *a)
Definition: item_func.h:1414
Definition: item_func.h:1403
Item_func_log(const POS &pos, Item *a)
Definition: item_func.h:1405
double val_real() override
Extended but so slower LOG function.
Definition: item_func.cc:2998
Item_func_log(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1406
const char * func_name() const override
Definition: item_func.h:1408
enum Functype functype() const override
Definition: item_func.h:1409
Definition: item_func.h:3618
uint flags
Definition: item_func.h:3626
FT_INFO * ft_handler
Definition: item_func.h:3632
DTCollation cmp_collation
Definition: item_func.h:3631
void update_used_tables() override
Updates used tables, not null tables information and accumulates properties up the item tree,...
Definition: item_func.cc:8102
bool fix_index(const THD *thd)
Definition: item_func.cc:8109
Item * key_item() const override
Definition: item_func.h:3681
uint key
Definition: item_func.h:3626
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:8241
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_func.h:3698
bool allows_search_on_non_indexed_columns(const TABLE *tr)
Check whether storage engine for given table, allows FTS Boolean search on non-indexed columns.
Definition: item_func.h:3877
void set_master(Item_func_match *item)
Set master MATCH function and adjust used_in_where_only value.
Definition: item_func.h:3775
longlong val_int() override
Definition: item_func.h:3688
Item_func_match * master
Master item means that if identical items are present in the statement, they use the same FT handler.
Definition: item_func.h:3640
Ft_hints * hints
Fulltext index hints, initialized for master MATCH function only.
Definition: item_func.h:3845
const char * func_name() const override
Definition: item_func.h:3683
bool docid_in_result()
Check whether FT result contains the document ID.
Definition: item_func.h:3745
Item * concat_ws
Definition: item_func.h:3641
bool can_skip_ranking()
Check if ranking is not needed.
Definition: item_func.h:3812
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_func.h:3670
void set_hints_op(enum ft_operation type, double value_arg)
Set comparison operation type and and value for master MATCH function.
Definition: item_func.h:3796
Table_ref * table_ref
Definition: item_func.h:3633
bool ordered_result()
Check whether FT result is ordered on rank.
Definition: item_func.h:3727
bool init_search(THD *thd)
Initialize searching within full-text index.
Definition: item_func.cc:7873
String value
Definition: item_func.h:3642
enum Functype functype() const override
Definition: item_func.h:3682
void set_hints(JOIN *join, uint ft_flag, ha_rows ft_limit, bool no_cond)
Set FT hints.
Definition: item_func.cc:8281
Item_func_match(const POS &pos, PT_item_list *a, Item *against_arg, uint b)
Constructor for Item_func_match class.
Definition: item_func.h:3653
Item * against
Definition: item_func.h:3625
float get_filtering_effect(THD *thd, table_map filter_for_table, table_map read_tables, const MY_BITMAP *fields_to_ignore, double rows_in_table) override
Calculate the filter contribution that is relevant for table 'filter_for_table' for this item.
Definition: item_func.cc:7949
bool fix_fields(THD *thd, Item **ref) override
Definition: item_func.cc:7978
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_func.cc:7845
bool used_in_where_only
true if MATCH function is used in WHERE condition only.
Definition: item_func.h:3858
String search_value
Definition: item_func.h:3643
bool is_simple_expression()
Check if this MATCH function is a simple expression in WHERE condition.
Definition: item_func.h:3836
Ft_hints * get_hints()
Returns pointer to Ft_hints object belonging to master MATCH function.
Definition: item_func.h:3785
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_func.cc:8262
bool score_from_index_scan
True if we are doing a full-text index scan with this MATCH function as a predicate,...
Definition: item_func.h:3630
void set_simple_expression(bool val)
Set flag that the function is a simple expression.
Definition: item_func.h:3825
double val_real() override
Definition: item_func.cc:8209
bool simple_expression
Flag is true when MATCH function is used as a simple expression in WHERE condition,...
Definition: item_func.h:3851
uint64_t hash() override
Generate hash unique to an item depending on its attributes.
Definition: item_func.cc:8254
Item_func_match * get_master()
Returns master MATCH function.
Definition: item_func.h:3765
bool eq_specific(const Item *item) const override
Provide a more specific equality check for a function.
Definition: item_func.cc:8192
Item_real_func super
Definition: item_func.h:3619
ulonglong get_count()
Get number of matching rows from FT handler.
Definition: item_func.h:3713
Definition: item_func.h:1737
Item_func_max(const POS &pos, PT_item_list *opt_list)
Definition: item_func.h:1739
const char * func_name() const override
Definition: item_func.h:1741
enum Functype functype() const override
Definition: item_func.h:1742
Definition: item_func.h:1634
longlong int_op() override
Evaluates item when resulting data type is integer type.
Definition: item_func.cc:4271
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:3974
bool cmp_datetimes(longlong *value, my_time_flags_t flags)
Compare arguments as datetime values.
Definition: item_func.cc:4095
TYPELIB * get_typelib() const override
Get the typelib information for an item of type set or enum.
Definition: item_func.cc:3988
bool date_op(Date_val *date, my_time_flags_t flags) override
Evaluates item when resulting data type is DATE.
Definition: item_func.cc:4241
my_decimal * val_decimal(my_decimal *) override
Definition: item_func.cc:4351
bool time_op(Time_val *time) override
Evaluates item when resulting data type is TIME.
Definition: item_func.cc:4234
String * str_op(String *) override
Evaluates item when resulting data type is a string type.
Definition: item_func.cc:4148
uint8 fsp_for_string
Fractional seconds precision to use when converting a time or timestamp expression into a string.
Definition: item_func.h:1697
double val_real() override
Definition: item_func.cc:4337
enum_field_types m_eval_type
Evaluation type, ie.
Definition: item_func.h:1683
longlong val_int() override
Definition: item_func.cc:4344
bool resolve_type_inner(THD *thd) override
Resolve type of function after all arguments have had their data types resolved.
Definition: item_func.cc:4022
Item_func_min_max(const POS &pos, PT_item_list *opt_list, bool is_least_func)
Definition: item_func.h:1636
bool has_temporal_arg() const
Returns true if at least one of the arguments was of temporal type.
Definition: item_func.h:1671
String m_string_buf
Definition: item_func.h:1676
double real_op() override
Evaluates item when resulting data type is floating point type.
Definition: item_func.cc:4248
bool cmp_times(Time_val *value)
Compare arguments as time values.
Definition: item_func.cc:4116
bool datetime_op(Datetime_val *dt, my_time_flags_t flags) override
Evaluates item when resulting data type is DATETIME or TIMESTAMP.
Definition: item_func.cc:4223
Item * temporal_item
Used for determining whether one of the arguments is of temporal type and for converting arguments to...
Definition: item_func.h:1691
enum Item_result result_type() const override
Definition: item_func.h:1657
bool cmp_dates(Date_val *value, my_time_flags_t flags)
Compare arguments as date values.
Definition: item_func.cc:4132
const bool m_is_least_func
True if LEAST function, false if GREATEST.
Definition: item_func.h:1675
enum Item_result cast_to_int_type() const override
Make CAST(LEAST_OR_GREATEST(datetime_expr, varchar_expr)) return a number in format YYMMDDhhmmss.
Definition: item_func.h:1664
my_decimal * decimal_op(my_decimal *) override
Evaluates item when resulting data type is DECIMAL.
Definition: item_func.cc:4300
enum_field_types default_data_type() const override
Get the default data (output) type for the specific item.
Definition: item_func.h:1651
void set_numeric_type() override
Definition: item_func.h:1656
Definition: item_func.h:1728
uint64_t hash() override
Generate hash unique to an item depending on its attributes.
Definition: item_func.h:1733
enum Functype functype() const override
Definition: item_func.h:1734
const char * func_name() const override
Definition: item_func.h:1732
Item_func_min(const POS &pos, PT_item_list *opt_list)
Definition: item_func.h:1730
Definition: item_func.h:1259
enum Functype functype() const override
Definition: item_func.h:1273
my_decimal * decimal_op(my_decimal *) override
See Item_func_plus::decimal_op for comments.
Definition: item_func.cc:2404
longlong int_op() override SUPPRESS_UBSAN
Evaluates item when resulting data type is integer type.
Definition: item_func.cc:2353
bool resolve_type(THD *thd) override
The following function is here to allow the user to force subtraction of UNSIGNED BIGINT/DECIMAL to r...
Definition: item_func.cc:2335
Item_func_minus(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1262
Item_func_minus(Item *a, Item *b)
Definition: item_func.h:1261
double real_op() override
Evaluates item when resulting data type is floating point type.
Definition: item_func.cc:2342
const char * func_name() const override
Definition: item_func.h:1265
Definition: item_func.h:1331
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_func.h:1342
bool check_function_as_value_generator(uchar *) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_func.h:1343
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:2855
void result_precision() override
Definition: item_func.cc:2839
Item_func_mod(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1334
const char * func_name() const override
Definition: item_func.h:1339
enum Functype functype() const override
Definition: item_func.h:1344
double real_op() override
Evaluates item when resulting data type is floating point type.
Definition: item_func.cc:2794
Item_func_mod(Item *a, Item *b)
Definition: item_func.h:1333
my_decimal * decimal_op(my_decimal *) override
Evaluates item when resulting data type is DECIMAL.
Definition: item_func.cc:2809
longlong int_op() override
Evaluates item when resulting data type is integer type.
Definition: item_func.cc:2759
Definition: item_func.h:1276
const char * func_name() const override
Definition: item_func.h:1281
bool check_function_as_value_generator(uchar *) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_func.h:1288
void result_precision() override
Definition: item_func.cc:2552
double real_op() override
Evaluates item when resulting data type is floating point type.
Definition: item_func.cc:2433
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_func.h:1287
my_decimal * decimal_op(my_decimal *) override
See Item_func_plus::decimal_op for comments.
Definition: item_func.cc:2531
longlong int_op() override
Evaluates item when resulting data type is integer type.
Definition: item_func.cc:2445
Item_func_mul(Item *a, Item *b)
Definition: item_func.h:1278
enum Functype functype() const override
Definition: item_func.h:1289
uint64_t hash() override
Generate hash unique to an item depending on its attributes.
Definition: item_func.h:1284
Item_func_mul(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1279
Definition: item_func.h:1347
Item_func_neg(const POS &pos, Item *a)
Definition: item_func.h:1350
const char * func_name() const override
Definition: item_func.h:1355
enum Functype functype() const override
Definition: item_func.h:1356
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:2904
double real_op() override
Evaluates item when resulting data type is floating point type.
Definition: item_func.cc:2862
longlong int_op() override
Evaluates item when resulting data type is integer type.
Definition: item_func.cc:2868
bool check_function_as_value_generator(uchar *) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_func.h:1360
my_decimal * decimal_op(my_decimal *) override
Evaluates item when resulting data type is DECIMAL.
Definition: item_func.cc:2883
void fix_num_length_and_dec() override
Definition: item_func.cc:2897
Item_func_neg(Item *a)
Definition: item_func.h:1349
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_func.h:1359
Definition: item_func.h:986
Item_func_num1(Item *a, Item *b)
Definition: item_func.h:991
Item_func_num1(const POS &pos, Item *a)
Definition: item_func.h:989
bool date_op(Date_val *, my_time_flags_t) override
Evaluates item when resulting data type is DATE.
Definition: item_func.h:1001
void fix_num_length_and_dec() override
Definition: item_func.cc:1617
String * str_op(String *) override
Evaluates item when resulting data type is a string type.
Definition: item_func.h:997
Item_func_num1(Item *a)
Definition: item_func.h:988
void set_numeric_type() override
Set data type for a numeric function with one argument (can be also used by a numeric function with m...
Definition: item_func.cc:1589
bool datetime_op(Datetime_val *, my_time_flags_t) override
Evaluates item when resulting data type is DATETIME or TIMESTAMP.
Definition: item_func.h:1009
Item_func_num1(const POS &pos, Item *a, Item *b)
Definition: item_func.h:992
bool time_op(Time_val *) override
Evaluates item when resulting data type is TIME.
Definition: item_func.h:1005
Definition: item_func.h:885
virtual void set_numeric_type()=0
longlong val_int() override
Definition: item_func.cc:1816
bool val_datetime(Datetime_val *dt, my_time_flags_t flags) override
Evaluate the item and return result as a datetime value.
Definition: item_func.cc:1932
virtual longlong int_op()=0
Evaluates item when resulting data type is integer type.
virtual bool date_op(Date_val *date, my_time_flags_t flags)=0
Evaluates item when resulting data type is DATE.
String * val_str(String *str) override
Definition: item_func.cc:1733
Item_func_numhybrid(const POS &pos, Item *a)
Definition: item_func.h:893
Item_func_numhybrid(mem_root_deque< Item * > *list)
Definition: item_func.h:907
bool val_time(Time_val *time) override
Evaluate the item and return result as a time value.
Definition: item_func.cc:1950
enum_field_types default_data_type() const override
Get the default data (output) type for the specific item.
Definition: item_func.h:917
bool val_date(Date_val *date, my_time_flags_t flags) override
Evaluate the item and return result as a date value.
Definition: item_func.cc:1911
bool resolve_type_inner(THD *thd) override
Resolve type of function after all arguments have had their data types resolved.
Definition: item_func.cc:1725
bool is_null() override
The method allows to determine nullness of a complex expression without fully evaluating it,...
Definition: item_func.h:982
Item_func_numhybrid(Item *a)
Definition: item_func.h:890
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:1697
my_decimal * val_decimal(my_decimal *) override
Definition: item_func.cc:1857
enum Item_result result_type() const override
Definition: item_func.h:916
double val_real() override
Definition: item_func.cc:1775
Item_func_numhybrid(const POS &pos, PT_item_list *list)
Definition: item_func.h:911
void fix_num_length_and_dec() override
Definition: item_func.cc:915
Item_func_numhybrid(const POS &pos, Item *a, Item *b)
Definition: item_func.h:902
Item_result hybrid_type
Definition: item_func.h:887
virtual my_decimal * decimal_op(my_decimal *decimal_value)=0
Evaluates item when resulting data type is DECIMAL.
virtual double real_op()=0
Evaluates item when resulting data type is floating point type.
virtual String * str_op(String *string)=0
Evaluates item when resulting data type is a string type.
virtual bool datetime_op(Datetime_val *dt, my_time_flags_t flags)=0
Evaluates item when resulting data type is DATETIME or TIMESTAMP.
virtual bool time_op(Time_val *time)=0
Evaluates item when resulting data type is TIME.
Item_func_numhybrid(Item *a, Item *b)
Definition: item_func.h:898
Definition: item_func.h:1977
const char * func_name() const override
Definition: item_func.h:1983
longlong val_int() override
Definition: item_func.cc:4661
String value
Definition: item_func.h:1978
Item_func_ord(const POS &pos, Item *a)
Definition: item_func.h:1981
Definition: item_func.h:1243
const char * func_name() const override
Definition: item_func.h:1249
uint64_t hash() override
Generate hash unique to an item depending on its attributes.
Definition: item_func.h:1253
Item_func_plus(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1246
Item_func_plus(Item *a, Item *b)
Definition: item_func.h:1245
double real_op() override
Evaluates item when resulting data type is floating point type.
Definition: item_func.cc:2224
longlong int_op() override SUPPRESS_UBSAN
Evaluates item when resulting data type is integer type.
Definition: item_func.cc:2235
my_decimal * decimal_op(my_decimal *) override
Calculate plus of two decimals.
Definition: item_func.cc:2291
enum Functype functype() const override
Definition: item_func.h:1256
Definition: item_func.h:1435
double val_real() override
Definition: item_func.cc:3056
Item_func_pow(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1437
const char * func_name() const override
Definition: item_func.h:1439
enum Functype functype() const override
Definition: item_func.h:1440
Definition: item_func.h:1627
Item_func_radians(const POS &pos, Item *a)
Definition: item_func.h:1629
const char * func_name() const override
Definition: item_func.h:1631
enum Functype functype() const override
Definition: item_func.h:1632
Definition: item_func.h:1556
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_func.cc:3845
double val_real() override
Definition: item_func.cc:3910
void seed_random(Item *val)
Definition: item_func.cc:3862
bool fix_fields(THD *thd, Item **ref) override
Definition: item_func.cc:3880
const char * func_name() const override
Definition: item_func.h:1568
bool first_eval
Definition: item_func.h:1560
Item_real_func super
Definition: item_func.h:1557
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_func.h:1584
rand_struct * m_rand
Definition: item_func.h:1559
Item_func_rand()
Definition: item_func.h:1562
Item_func_rand(const POS &pos)
Definition: item_func.h:1564
table_map get_initial_pseudo_tables() const override
This function is non-deterministic and hence depends on the 'RAND' pseudo-table.
Definition: item_func.h:1575
Item_func_rand(const POS &pos, Item *a)
Definition: item_func.h:1563
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:3872
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_func.h:1580
Definition: item_func.h:2530
longlong val_int() override
Release all user level lock held by connection.
Definition: item_func.cc:5959
Item_int_func super
Definition: item_func.h:2531
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2542
table_map get_initial_pseudo_tables() const override
Returns the pseudo tables depended upon in order to evaluate this function expression.
Definition: item_func.h:2539
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_func.cc:5945
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_func.h:2547
Item_func_release_all_locks(const POS &pos)
Definition: item_func.h:2534
const char * func_name() const override
Definition: item_func.h:2538
bool is_non_const_over_literals(uchar *) override
Definition: item_func.h:2546
Definition: item_func.h:2500
Item_int_func super
Definition: item_func.h:2501
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_func.cc:5877
table_map get_initial_pseudo_tables() const override
Returns the pseudo tables depended upon in order to evaluate this function expression.
Definition: item_func.h:2511
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_func.h:2521
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2514
String value
Definition: item_func.h:2503
const char * func_name() const override
Definition: item_func.h:2510
longlong val_int() override
Release a user level lock.
Definition: item_func.cc:5901
bool is_non_const_over_literals(uchar *) override
Definition: item_func.h:2520
Item_func_release_lock(const POS &pos, Item *a)
Definition: item_func.h:2506
Definition: item_func.h:1535
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:3622
my_decimal * decimal_op(my_decimal *) override
Evaluates item when resulting data type is DECIMAL.
Definition: item_func.cc:3819
bool truncate
Definition: item_func.h:1536
Item_func_round(Item *a, Item *b, bool trunc_arg)
Definition: item_func.h:1539
longlong int_op() override
Evaluates item when resulting data type is integer type.
Definition: item_func.cc:3748
enum Functype functype() const override
Definition: item_func.h:1551
const char * func_name() const override
Definition: item_func.h:1544
Item_func_round(const POS &pos, Item *a, Item *b, bool trunc_arg)
Definition: item_func.h:1541
double real_op() override
Evaluates item when resulting data type is floating point type.
Definition: item_func.cc:3718
Definition: item_func.h:3969
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:3979
Item_func_row_count(const POS &pos)
Definition: item_func.h:3973
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_func.cc:8426
const char * func_name() const override
Definition: item_func.h:3978
Item_int_func super
Definition: item_func.h:3970
longlong val_int() override
Definition: item_func.cc:8436
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_func.h:3983
This class is used to implement operations like SET @variable or @variable:= expression.
Definition: item_func.h:3370
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_func.cc:6314
void print_assignment(const THD *thd, String *str, enum_query_type query_type) const
Definition: item_func.cc:6840
type_conversion_status save_in_field(Field *field, bool no_conversions, bool can_use_result_field)
Definition: item_func.cc:6921
enum Item_result result_type() const override
Definition: item_func.h:3411
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:6370
Item_func_set_user_var(const POS &pos, Name_string a, Item *b)
Definition: item_func.h:3387
enum Item_result cached_result_type
Definition: item_func.h:3371
enum Functype functype() const override
Definition: item_func.h:3399
Item_func_set_user_var(Name_string a, Item *b)
Definition: item_func.h:3386
type_conversion_status save_in_field_inner(Field *field, bool no_conversions) override
Helper function which does all of the work for save_in_field(Field*, bool), except some error checkin...
Definition: item_func.h:3432
void make_field(Send_field *tmp_field) override
Definition: item_func.cc:6873
String * val_str(String *str) override
Definition: item_func.cc:6825
void save_org_in_field(Field *field) override
Definition: item_func.h:3424
bool set_entry(THD *thd, bool create_if_not_exists)
Definition: item_func.cc:6328
bool fix_fields(THD *thd, Item **ref) override
Definition: item_func.cc:6356
bool null_item
Definition: item_func.h:3375
bool update()
Update user variable from value in save_result.
Definition: item_func.cc:6763
void save_item_result(Item *item)
Evaluate and store item's result.
Definition: item_func.cc:6732
bool update_hash(const void *ptr, uint length, enum Item_result type, const CHARSET_INFO *cs, Derivation dv, bool unsigned_arg)
Definition: item_func.cc:6516
union Item_func_set_user_var::@62 save_result
longlong val_int() override
Definition: item_func.cc:6818
my_decimal * val_decimal(my_decimal *) override
Definition: item_func.cc:6832
double vreal
Definition: item_func.h:3378
my_decimal decimal_buff
Definition: item_func.h:3374
bool send(Protocol *protocol, String *str_arg) override
This is only called from items that is not of type item_field.
Definition: item_func.cc:6861
my_decimal * vdec
Definition: item_func.h:3380
uint64_t hash() override
Generate hash unique to an item depending on its attributes.
Definition: item_func.cc:6855
String value
Definition: item_func.h:3373
double val_real() override
Definition: item_func.cc:6811
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:6849
bool check(bool use_result_field)
This functions is invoked on SET @variable or @variable:= expression.
Definition: item_func.cc:6688
const char * func_name() const override
Definition: item_func.h:3419
Name_string name
Definition: item_func.h:3384
Item_func_set_user_var(THD *thd, Item_func_set_user_var *item)
Definition: item_func.h:3390
String * vstr
Definition: item_func.h:3379
longlong vint
Definition: item_func.h:3377
Definition: item_func.h:2165
Item_func_shift_left(const POS &pos, Item *a, Item *b)
Definition: item_func.h:2167
const char * func_name() const override
Definition: item_func.h:2169
longlong int_op() override
Performs the operation on integers to produce a result of type INT_RESULT.
Definition: item_func.cc:3240
String * str_op(String *str) override
Performs the operation on binary strings to produce a result of type STRING_RESULT.
Definition: item_func.cc:3314
Definition: item_func.h:2176
String * str_op(String *str) override
Performs the operation on binary strings to produce a result of type STRING_RESULT.
Definition: item_func.cc:3318
Item_func_shift_right(const POS &pos, Item *a, Item *b)
Definition: item_func.h:2178
longlong int_op() override
Performs the operation on integers to produce a result of type INT_RESULT.
Definition: item_func.cc:3241
const char * func_name() const override
Definition: item_func.h:2180
Definition: item_func.h:2150
String * eval_str_op(String *str)
Template function that evaluates the bitwise shift operation over binary string arguments.
Definition: item_func.cc:3249
longlong eval_int_op()
Template function that evaluates the bitwise shift operation over integer arguments.
Definition: item_func.cc:3224
bool binary_result_requires_binary_second_arg() const override
Definition: item_func.h:2152
Item_func_shift(const POS &pos, Item *a, Item *b)
Definition: item_func.h:2161
Definition: item_func.h:1597
longlong val_int() override
Definition: item_func.cc:3951
Item_func_sign(const POS &pos, Item *a)
Definition: item_func.h:1599
enum Functype functype() const override
Definition: item_func.h:1601
const char * func_name() const override
Definition: item_func.h:1600
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:3943
Definition: item_func.h:1476
Item_func_sin(const POS &pos, Item *a)
Definition: item_func.h:1478
double val_real() override
Definition: item_func.cc:3109
const char * func_name() const override
Definition: item_func.h:1480
enum Functype functype() const override
Definition: item_func.h:1481
Definition: item_func.h:2273
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2297
Item_func_sleep(const POS &pos, Item *a)
Definition: item_func.h:2277
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_func.cc:6215
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_func.h:2290
const char * func_name() const override
Definition: item_func.h:2280
table_map get_initial_pseudo_tables() const override
This function is non-deterministic and hence depends on the 'RAND' pseudo-table.
Definition: item_func.h:2287
Item_int_func super
Definition: item_func.h:2274
longlong val_int() override
This function is just used to create tests with time gaps.
Definition: item_func.cc:6225
Definition: item_func.h:4001
sp_head * get_sp()
Definition: item_func.h:4062
void fix_after_pullout(Query_block *parent_query_block, Query_block *removed_query_block) override
Fix after tables have been moved from one query_block level to the parent level, e....
Definition: item_func.cc:8977
void compute_cost(CostOfItem *root_cost) const override
Compute the cost of evaluating this Item.
Definition: item_func.h:4078
double val_real() override
Definition: item_func.cc:8619
bool change_context_processor(uchar *arg) override
Definition: item_func.h:4055
longlong val_int() override
Definition: item_func.cc:8613
String * val_str(String *str) override
Definition: item_func.cc:8645
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_func.cc:8483
my_decimal * val_decimal(my_decimal *dec_buf) override
Definition: item_func.cc:8640
bool m_deterministic
true when function execution is deterministic
Definition: item_func.h:4015
const char * func_name() const override
Definition: item_func.cc:8492
Field * sp_result_field
The result field of the concrete stored function.
Definition: item_func.h:4013
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_func.h:4070
bool init_result_field(THD *thd)
Initialize the result field by creating a temporary dummy table and assign it to a newly created fiel...
Definition: item_func.cc:8550
bool val_json(Json_wrapper *result) override
Get a JSON value from an Item.
Definition: item_func.cc:8660
Field * tmp_table_field(TABLE *t_arg) override
Definition: item_func.cc:8805
bool val_datetime(Datetime_val *dt, my_time_flags_t flags) override
Evaluate the item and return result as a datetime value.
Definition: item_func.cc:8630
bool val_date(Date_val *date, my_time_flags_t flags) override
Evaluate the item and return result as a date value.
Definition: item_func.cc:8625
bool val_time(Time_val *time) override
Evaluate the item and return result as a time value.
Definition: item_func.cc:8635
void update_used_tables() override
Updates used tables, not null tables information and accumulates properties up the item tree,...
Definition: item_func.cc:8970
const sp_name * get_name()
Definition: item_func.h:4063
Name_resolution_context * m_name_resolution_ctx
Holds the security definer context(if defined with SQL SECURITY DEFINER) and the error the handler.
Definition: item_func.h:4007
Item_result result_type() const override
Definition: item_func.cc:8782
Field * get_sp_result_field()
Definition: item_func.h:4069
Item_func_sp(const POS &pos, const LEX_STRING &db_name, const LEX_STRING &fn_name, bool use_explicit_name, PT_item_list *opt_list)
Definition: item_func.cc:8443
bool execute_impl(THD *thd)
Execute function and store the return value in the field.
Definition: item_func.cc:8730
bool resolve_type(THD *thd) override
Initialize local members with values from the Field interface.
Definition: item_func.cc:8599
Item_func super
Definition: item_func.h:4002
void make_field(Send_field *tmp_field) override
Definition: item_func.cc:8775
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_func.cc:8459
bool execute()
Execute function & store value in field.
Definition: item_func.cc:8685
bool sp_check_access(THD *thd)
Checks if requested access to function can be granted to user.
Definition: item_func.cc:8826
enum Functype functype() const override
Definition: item_func.h:4064
sp_name * m_name
The name of the stored function.
Definition: item_func.h:4009
table_map get_initial_pseudo_tables() const override
Must not be called before the procedure is resolved, i.e.
Definition: item_func.cc:8514
bool fix_fields(THD *thd, Item **ref) override
Definition: item_func.cc:8836
sp_head * m_sp
Pointer to actual function instance (null when not resolved or executing)
Definition: item_func.h:4011
Definition: item_func.h:1427
Item_func_sqrt(const POS &pos, Item *a)
Definition: item_func.h:1429
const char * func_name() const override
Definition: item_func.h:1431
double val_real() override
Definition: item_func.cc:3048
enum Functype functype() const override
Definition: item_func.h:1432
Definition: item_func.h:1484
enum Functype functype() const override
Definition: item_func.h:1489
double val_real() override
Definition: item_func.cc:3116
Item_func_tan(const POS &pos, Item *a)
Definition: item_func.h:1486
const char * func_name() const override
Definition: item_func.h:1488
Definition: item_func.h:2404
double val_real() override
Definition: item_func.cc:5415
bool val_time(Time_val *time) override
Evaluate the item and return result as a time value.
Definition: item_func.h:2416
Item_func_udf_decimal(const POS &pos, udf_func *udf_arg, PT_item_list *opt_list)
Definition: item_func.h:2406
longlong val_int() override
Definition: item_func.cc:5405
bool val_datetime(Datetime_val *dt, my_time_flags_t flags) override
Evaluate the item and return result as a datetime value.
Definition: item_func.h:2417
enum Item_result result_type() const override
Definition: item_func.h:2420
bool val_date(Date_val *date, my_time_flags_t flags) override
Evaluate the item and return result as a date value.
Definition: item_func.h:2413
String * val_str(String *str) override
Definition: item_func.cc:5431
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:5444
my_decimal * val_decimal(my_decimal *) override
Definition: item_func.cc:5425
Definition: item_func.h:2351
Item_func_udf_float(const POS &pos, udf_func *udf_arg, PT_item_list *opt_list)
Definition: item_func.h:2353
my_decimal * val_decimal(my_decimal *dec_buf) override
Definition: item_func.h:2359
longlong val_int() override
Definition: item_func.h:2355
bool val_time(Time_val *time) override
Evaluate the item and return result as a time value.
Definition: item_func.h:2370
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2374
bool val_date(Date_val *date, my_time_flags_t flags) override
Evaluate the item and return result as a date value.
Definition: item_func.h:2367
bool val_datetime(Datetime_val *dt, my_time_flags_t flags) override
Evaluate the item and return result as a datetime value.
Definition: item_func.h:2371
double val_real() override
Definition: item_func.cc:5375
String * val_str(String *str) override
Definition: item_func.cc:5383
Definition: item_func.h:2381
enum Item_result result_type() const override
Definition: item_func.h:2397
bool val_datetime(Datetime_val *dt, my_time_flags_t flags) override
Evaluate the item and return result as a datetime value.
Definition: item_func.h:2394
String * val_str(String *str) override
Definition: item_func.cc:5397
Item_func_udf_int(const POS &pos, udf_func *udf_arg, PT_item_list *opt_list)
Definition: item_func.h:2383
bool val_date(Date_val *date, my_time_flags_t flags) override
Evaluate the item and return result as a date value.
Definition: item_func.h:2390
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2398
double val_real() override
Definition: item_func.h:2386
longlong val_int() override
Definition: item_func.cc:5391
bool val_time(Time_val *time) override
Evaluate the item and return result as a time value.
Definition: item_func.h:2393
Definition: item_func.h:2424
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:5452
Item_func_udf_str(const POS &pos, udf_func *udf_arg, PT_item_list *opt_list)
Definition: item_func.h:2426
String * val_str(String *) override
Definition: item_func.cc:5461
my_decimal * val_decimal(my_decimal *dec_buf) override
Definition: item_func.h:2447
bool val_datetime(Datetime_val *dt, my_time_flags_t flags) override
Evaluate the item and return result as a datetime value.
Definition: item_func.h:2458
enum Item_result result_type() const override
Definition: item_func.h:2461
bool val_time(Time_val *time) override
Evaluate the item and return result as a time value.
Definition: item_func.h:2457
longlong val_int() override
Definition: item_func.h:2439
double val_real() override
Definition: item_func.h:2430
bool val_date(Date_val *date, my_time_flags_t flags) override
Evaluate the item and return result as a date value.
Definition: item_func.h:2454
Definition: item_func.h:1607
Item_func_units(const POS &pos, Item *a, double mul_arg, double add_arg)
Definition: item_func.h:1611
double add
Definition: item_func.h:1608
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:3958
double val_real() override
Definition: item_func.cc:3967
double mul
Definition: item_func.h:1608
Definition: item_func.h:4107
table_map get_initial_pseudo_tables() const override
Returns the pseudo tables depended upon in order to evaluate this function expression.
Definition: item_func.h:4130
Item_int_func super
Definition: item_func.h:4108
longlong val_int() override
Definition: item_func.cc:9015
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_func.cc:9007
Item_func_uuid_short(const POS &pos)
Definition: item_func.h:4111
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_func.h:4121
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:4116
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_func.h:4120
const char * func_name() const override
Definition: item_func.h:4114
Definition: item_func.h:1937
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:1945
const char * func_name() const override
Definition: item_func.h:1942
Item_func_validate_password_strength(const POS &pos, Item *a)
Definition: item_func.h:1939
longlong val_int() override
Definition: item_func.cc:4583
Definition: item_func.h:1851
const char * func_name() const override
Definition: item_func.h:1857
String value
Definition: item_func.h:1852
Item_func_vector_dim(const POS &pos, Item *a)
Definition: item_func.h:1855
longlong val_int() override
Definition: item_func.cc:4486
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:1858
Definition: item_func.h:4135
Item_static_string_func super
Definition: item_func.h:4136
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_func.cc:9023
Item_func_version(const POS &pos)
Definition: item_func.cc:10274
Definition: item_func.h:101
bool param_type_is_rejected(uint start, uint end)
For arguments of this Item_func ("args" array), in range [start,end[ : sends error if they're a dynam...
Definition: item_func.cc:546
bool param_type_uses_non_param(THD *thd, enum_field_types def=MYSQL_TYPE_VARCHAR)
Definition: item_func.cc:619
Item_func(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_func.h:415
int check_decimal_overflow(int error)
Throw an error if the error code of a DECIMAL operation is E_DEC_OVERFLOW.
Definition: item_func.h:668
Item_func()
Definition: item_func.h:377
my_decimal * val_decimal(my_decimal *) override
Definition: item_func.cc:871
bool val_arg0_date(Date_val *date, my_time_flags_t flags)
Definition: item_func.h:569
bool replace_equal_field_checker(uchar **arg) override
Definition: item_func.h:617
virtual bool have_rev_func() const
Definition: item_func.h:546
Item ** args
Array of pointers to arguments.
Definition: item_func.h:108
virtual enum Functype functype() const
Definition: item_func.h:376
bool check_column_in_window_functions(uchar *arg) override
Check if all the columns present in this expression are present in PARTITION clause of window functio...
Definition: item_func.cc:1065
bool val_arg0_datetime(Datetime_val *dt, my_time_flags_t flags)
Definition: item_func.h:572
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_func.h:826
Item_func(const POS &pos)
Definition: item_func.h:379
bool reject_vector_args()
Definition: item_func.cc:1636
void update_used_tables() override
Updates used tables, not null tables information and accumulates properties up the item tree,...
Definition: item_func.cc:736
bool check_valid_arguments_processor(uchar *) override
Definition: item_func.h:722
Item_func(Item *a, Item *b)
Definition: item_func.h:391
bool fix_func_arg(THD *, Item **arg)
Definition: item_func.cc:440
bool alloc_args(MEM_ROOT *mem_root, unsigned num_args)
Allocates space for the given number of arguments, if needed.
Definition: item_func.h:115
virtual Item * get_arg(uint i)
Get the i'th argument of the function that this object represents.
Definition: item_func.h:504
bool split_sum_func(THD *thd, Ref_item_array ref_item_array, mem_root_deque< Item * > *fields) override
See comments in Item_cmp_func::split_sum_func()
Definition: item_func.cc:725
longlong val_int_from_real()
Definition: item_func.cc:2177
void traverse_cond(Cond_traverser traverser, void *arg, traverse_order order) override
Definition: item_func.cc:644
virtual table_map get_initial_pseudo_tables() const
Returns the pseudo tables depended upon in order to evaluate this function expression.
Definition: item_func.h:534
Item * compile(Item_analyzer analyzer, uchar **arg_p, Item_transformer transformer, uchar *arg_t) override
Compile Item_func object with a processor and a transformer callback functions.
Definition: item_func.cc:702
bool is_null() override
The method allows to determine nullness of a complex expression without fully evaluating it,...
Definition: item_func.h:578
Item_func(const POS &pos, Item *a)
Definition: item_func.h:386
Item * replace_equal_field(uchar *arg) override
Definition: item_func.h:623
Functype
Definition: item_func.h:214
@ DATEADD_FUNC
Definition: item_func.h:322
@ TRIG_COND_FUNC
Definition: item_func.h:258
@ JSON_VALUE_FUNC
Definition: item_func.h:360
@ JSON_SCHEMA_VALIDATION_REPORT_FUNC
Definition: item_func.h:362
@ SP_CROSSES_FUNC
Definition: item_func.h:242
@ ROLLUP_GROUP_ITEM_FUNC
Definition: item_func.h:269
@ JSON_STORAGE_SIZE_FUNC
Definition: item_func.h:358
@ NOT_ALL_FUNC
Definition: item_func.h:255
@ LIKE_FUNC
Definition: item_func.h:225
@ FALSE_FUNC
Definition: item_func.h:339
@ SP_EXTERIORRING
Definition: item_func.h:250
@ PLUS_FUNC
Definition: item_func.h:272
@ JSON_SEARCH_FUNC
Definition: item_func.h:361
@ SIGN_FUNC
Definition: item_func.h:282
@ JSON_STORAGE_FREE_FUNC
Definition: item_func.h:359
@ NULLIF_FUNC
Definition: item_func.h:300
@ YEAR_FUNC
Definition: item_func.h:302
@ NOT_FUNC
Definition: item_func.h:254
@ MINUS_FUNC
Definition: item_func.h:273
@ HOUR_FUNC
Definition: item_func.h:313
@ TIME_TO_SEC_FUNC
Definition: item_func.h:327
@ LOG_FUNC
Definition: item_func.h:284
@ PERIODDIFF_FUNC
Definition: item_func.h:343
@ XOR_FUNC
Definition: item_func.h:231
@ COND_OR_FUNC
Definition: item_func.h:230
@ JSON_CONTAINS
Definition: item_func.h:333
@ JSON_VALID_FUNC
Definition: item_func.h:353
@ JSON_UNQUOTE_FUNC
Definition: item_func.h:335
@ GREATEST_FUNC
Definition: item_func.h:330
@ SP_EQUALS_FUNC
Definition: item_func.h:237
@ LN_FUNC
Definition: item_func.h:285
@ FROM_UNIXTIME_FUNC
Definition: item_func.h:323
@ COND_AND_FUNC
Definition: item_func.h:229
@ EQ_FUNC
Definition: item_func.h:216
@ MAKETIME_FUNC
Definition: item_func.h:305
@ FUNC_SP
Definition: item_func.h:264
@ ROUND_FUNC
Definition: item_func.h:277
@ JSON_CONTAINS_PATH_FUNC
Definition: item_func.h:357
@ NOW_FUNC
Definition: item_func.h:256
@ FROM_DAYS_FUNC
Definition: item_func.h:257
@ TRUE_FUNC
Definition: item_func.h:338
@ LEAST_FUNC
Definition: item_func.h:332
@ IN_FUNC
Definition: item_func.h:233
@ CONVERT_TZ_FUNC
Definition: item_func.h:324
@ LE_FUNC
Definition: item_func.h:220
@ COLLATE_FUNC
Definition: item_func.h:261
@ GSYSVAR_FUNC
Definition: item_func.h:267
@ MATCH_FUNC
Definition: item_func.h:224
@ MULTI_EQ_FUNC
Definition: item_func.h:234
@ FT_FUNC
Definition: item_func.h:223
@ GUSERVAR_FUNC
Definition: item_func.h:260
@ LT_FUNC
Definition: item_func.h:219
@ MOD_FUNC
Definition: item_func.h:297
@ SP_COVEREDBY_FUNC
Definition: item_func.h:245
@ NEG_FUNC
Definition: item_func.h:266
@ DD_INTERNAL_FUNC
Definition: item_func.h:271
@ ISNULL_FUNC
Definition: item_func.h:226
@ JSON_ARRAY_FUNC
Definition: item_func.h:352
@ SP_TOUCHES_FUNC
Definition: item_func.h:241
@ JSON_SCHEMA_VALID_FUNC
Definition: item_func.h:363
@ SP_DISJOINT_FUNC
Definition: item_func.h:238
@ ISNOTNULLTEST_FUNC
Definition: item_func.h:236
@ DAY_FUNC
Definition: item_func.h:308
@ LOG10_FUNC
Definition: item_func.h:286
@ UDF_FUNC
Definition: item_func.h:265
@ MAKEDATE_FUNC
Definition: item_func.h:304
@ COT_FUNC
Definition: item_func.h:290
@ ISTRUTH_FUNC
Definition: item_func.h:228
@ SEC_TO_TIME_FUNC
Definition: item_func.h:344
@ DATE_FUNC
Definition: item_func.h:312
@ TIMESTAMPDIFF_FUNC
Definition: item_func.h:328
@ SECOND_FUNC
Definition: item_func.h:315
@ EXP_FUNC
Definition: item_func.h:293
@ SP_STARTPOINT
Definition: item_func.h:248
@ JSON_DEPTH_FUNC
Definition: item_func.h:348
@ JSON_QUOTE_FUNC
Definition: item_func.h:356
@ ETAG_FUNC
Definition: item_func.h:364
@ PERIODADD_FUNC
Definition: item_func.h:342
@ SP_POINTN
Definition: item_func.h:251
@ CURRENT_USER_IN_FUNC
Definition: item_func.h:365
@ EXTRACT_FUNC
Definition: item_func.h:262
@ MONTH_FUNC
Definition: item_func.h:306
@ TO_SECONDS_FUNC
Definition: item_func.h:311
@ ABS_FUNC
Definition: item_func.h:280
@ BETWEEN
Definition: item_func.h:232
@ IF_FUNC
Definition: item_func.h:298
@ JSON_OBJECT_FUNC
Definition: item_func.h:350
@ JSON_TYPE_FUNC
Definition: item_func.h:354
@ MICROSECOND_FUNC
Definition: item_func.h:316
@ ANY_VALUE_FUNC
Definition: item_func.h:346
@ STRCMP_FUNC
Definition: item_func.h:337
@ JSON_PRETTY_FUNC
Definition: item_func.h:355
@ QUARTER_FUNC
Definition: item_func.h:319
@ NE_FUNC
Definition: item_func.h:218
@ TIMEDIFF_FUNC
Definition: item_func.h:341
@ CURRENT_ROLE_IN_FUNC
Definition: item_func.h:366
@ BOOL_IF_FUNC
Definition: item_func.h:299
@ JSON_EXTRACT_FUNC
Definition: item_func.h:349
@ TABLE_FUNC
Definition: item_func.h:270
@ MEMBER_OF_FUNC
Definition: item_func.h:336
@ POW_FUNC
Definition: item_func.h:281
@ GE_FUNC
Definition: item_func.h:221
@ SP_GEOMETRYN
Definition: item_func.h:252
@ SYSDATE_FUNC
Definition: item_func.h:340
@ MONTHNAME_FUNC
Definition: item_func.h:307
@ TYPECAST_FUNC
Definition: item_func.h:263
@ SUSERVAR_FUNC
Definition: item_func.h:259
@ EQUAL_FUNC
Definition: item_func.h:217
@ GT_FUNC
Definition: item_func.h:222
@ RADIANS_FUNC
Definition: item_func.h:292
@ UNKNOWN_FUNC
Definition: item_func.h:215
@ SP_DISTANCE_FUNC
Definition: item_func.h:239
@ SP_WITHIN_FUNC
Definition: item_func.h:243
@ SP_INTERIORRINGN
Definition: item_func.h:253
@ SIN_FUNC
Definition: item_func.h:287
@ SP_INTERSECTS_FUNC
Definition: item_func.h:240
@ LAST_DAY_FUNC
Definition: item_func.h:325
@ WEEKDAY_FUNC
Definition: item_func.h:321
@ ADDTIME_FUNC
Definition: item_func.h:318
@ DEGREES_FUNC
Definition: item_func.h:291
@ JSON_OVERLAPS
Definition: item_func.h:334
@ DAYOFYEAR_FUNC
Definition: item_func.h:317
@ JSON_DUALITY_OBJECT_FUNC
Definition: item_func.h:351
@ SQRT_FUNC
Definition: item_func.h:279
@ GROUPING_FUNC
Definition: item_func.h:268
@ ISNOTNULL_FUNC
Definition: item_func.h:227
@ ASIN_FUNC
Definition: item_func.h:294
@ TRUNCATE_FUNC
Definition: item_func.h:278
@ TAN_FUNC
Definition: item_func.h:288
@ GET_FORMAT_FUNC
Definition: item_func.h:345
@ ATAN_FUNC
Definition: item_func.h:295
@ JSON_LENGTH_FUNC
Definition: item_func.h:347
@ DAYNAME_FUNC
Definition: item_func.h:309
@ DATETIME_LITERAL
Definition: item_func.h:329
@ MINUTE_FUNC
Definition: item_func.h:314
@ ACOS_FUNC
Definition: item_func.h:296
@ COS_FUNC
Definition: item_func.h:289
@ INTERVAL_FUNC
Definition: item_func.h:235
@ MUL_FUNC
Definition: item_func.h:274
@ SP_COVERS_FUNC
Definition: item_func.h:246
@ CEILING_FUNC
Definition: item_func.h:276
@ TO_DAYS_FUNC
Definition: item_func.h:310
@ WEEK_FUNC
Definition: item_func.h:320
@ YEARWEEK_FUNC
Definition: item_func.h:303
@ SP_CONTAINS_FUNC
Definition: item_func.h:244
@ FLOOR_FUNC
Definition: item_func.h:283
@ CASE_FUNC
Definition: item_func.h:301
@ COALESCE_FUNC
Definition: item_func.h:331
@ SP_ENDPOINT
Definition: item_func.h:249
@ DIV_FUNC
Definition: item_func.h:275
@ SP_OVERLAPS_FUNC
Definition: item_func.h:247
@ UNIX_TIMESTAMP_FUNC
Definition: item_func.h:326
Item * m_embedded_arguments[2]
Definition: item_func.h:111
virtual uint argument_count() const
Definition: item_func.h:132
longlong check_integer_overflow(longlong value, bool val_unsigned)
Throw an error if the input BIGINT value represented by the (longlong value, bool unsigned flag) pair...
Definition: item_func.h:658
bool val_arg0_time(Time_val *time)
Definition: item_func.h:575
Item * replace_func_call(uchar *) override
Definition: item_func.cc:624
void print_op(const THD *thd, String *str, enum_query_type query_type) const
Definition: item_func.cc:800
bool agg_arg_charsets_for_comparison(DTCollation &c, Item **items, uint nitems)
Definition: item_func.h:603
virtual bool eq_specific(const Item *) const
Provide a more specific equality check for a function.
Definition: item_func.h:544
bool check_column_in_group_by(uchar *arg) override
Check if all the columns present in this expression are present in GROUP BY clause of the derived tab...
Definition: item_func.cc:1083
uint64_t hash() override
Generate hash unique to an item depending on its attributes.
Definition: item_func.cc:798
Item_func(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_func.h:458
virtual enum_const_item_cache can_cache_json_arg(Item *arg)
Whether an arg of a JSON function can be cached to avoid repetitive string->JSON conversion.
Definition: item_func.h:745
Item * gc_subst_transformer(uchar *arg) override
Transformer function for GC substitution.
Definition: item_func.cc:1371
table_map used_tables_cache
Value used in calculation of result of used_tables()
Definition: item_func.h:194
bool param_type_is_default(THD *thd, uint start, uint end, enum_field_types def=MYSQL_TYPE_VARCHAR)
Definition: item_func.h:170
optimize_type
Definition: item_func.h:368
@ OPTIMIZE_NONE
Definition: item_func.h:369
@ OPTIMIZE_EQUAL
Definition: item_func.h:373
@ OPTIMIZE_NULL
Definition: item_func.h:372
@ OPTIMIZE_KEY
Definition: item_func.h:370
@ OPTIMIZE_OP
Definition: item_func.h:371
void set_used_tables(table_map map)
Definition: item_func.h:538
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_func.cc:363
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:728
virtual const char * func_name() const =0
const Item_field * contributes_to_filter(THD *thd, table_map read_tables, table_map filter_for_table, const MY_BITMAP *fields_to_ignore) const
Whether or not an item should contribute to the filtering effect (.
Definition: item_func.cc:955
bool has_timestamp_args()
Definition: item_func.h:672
virtual bool is_deprecated() const
Definition: item_func.h:568
Item_func(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e, Item *f)
Definition: item_func.h:483
enum Type type() const override
Definition: item_func.h:375
virtual Item * key_item() const
Definition: item_func.h:547
bool param_type_is_default(THD *thd, uint start, uint end, uint step, enum_field_types def)
For arguments of this Item_func ("args" array), in range [start, start+step, start+2*step,...
Definition: item_func.cc:530
Item_func(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:436
virtual bool may_have_named_parameters() const
Named parameters are allowed in a parameter list.
Definition: item_func.h:823
bool is_valid_for_pushdown(uchar *arg) override
Check if all the columns present in this expression are from the derived table.
Definition: item_func.cc:1057
uint num_vector_args()
Definition: item_func.cc:1622
bool propagate_type(THD *thd, const Type_properties &type) override
Default implementation for all functions: Propagate base_item's type into all arguments.
Definition: item_func.cc:506
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:765
Item_func(Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:423
bool reject_geometry_args()
Definition: item_func.cc:1648
bool fix_fields(THD *, Item **ref) override
Definition: item_func.cc:408
uint64_t hash_args(bool commutative) const
Definition: item_func.cc:781
void fix_after_pullout(Query_block *parent_query_block, Query_block *removed_query_block) override
Fix after tables have been moved from one query_block level to the parent level, e....
Definition: item_func.cc:462
bool set_arguments(mem_root_deque< Item * > *list, bool context_free)
Copy arguments from list to args array.
Definition: item_func.cc:331
virtual bool allow_replacement(Item_field *const original, Item *const subst)
Check whether a function allows replacement of a field with another item: In particular,...
Definition: item_func.h:641
Item_func(const POS &pos, Item *a, Item *b)
Definition: item_func.h:398
virtual optimize_type select_optimize(const THD *)
Definition: item_func.h:545
bool has_date_args()
Definition: item_func.h:682
void raise_temporal_overflow(const char *type_name)
Definition: item_func.cc:750
virtual const Item * get_arg(uint i) const
Get the i'th argument of the function that this object represents.
Definition: item_func.h:507
uint arg_count
How many arguments in 'args'.
Definition: item_func.h:131
Item_func(Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_func.h:444
Item ** arguments() const
Definition: item_func.h:133
Field * tmp_table_field(TABLE *t_arg) override
Definition: item_func.cc:829
bool agg_arg_charsets_for_string_result(DTCollation &c, Item **items, uint nitems)
Definition: item_func.h:594
bool is_null_on_null() const
Definition: item_func.h:203
bool has_time_args()
Definition: item_func.h:693
bool eq(const Item *item) const override
Compare this item with another item for equality.
Definition: item_func.cc:813
bool is_non_const_over_literals(uchar *) override
Definition: item_func.h:824
virtual void fix_num_length_and_dec()
Definition: item_func.cc:901
Item * get_tmp_table_item(THD *thd) override
If an Item is materialized in a temporary table, a different Item may have to be used in the part of ...
Definition: item_func.cc:933
void signal_invalid_argument_for_log()
Definition: item_func.cc:925
bool has_datetime_args()
Definition: item_func.h:704
void signal_divide_by_null()
Definition: item_func.cc:917
double check_float_overflow(double value)
Throw an error if the input double number is not finite, i.e.
Definition: item_func.h:650
Item_func(Item *a)
Definition: item_func.h:382
Item_func(mem_root_deque< Item * > *list)
Definition: item_func.h:494
table_map not_null_tables() const override
Return table map of tables that can't be NULL tables (tables that are used in a context where if they...
Definition: item_func.h:536
table_map not_null_tables_cache
Value used in calculation of result of not_null_tables()
Definition: item_func.h:196
virtual Item * set_arg(THD *, uint, Item *)
Definition: item_func.h:508
bool null_on_null
Affects how to determine that NULL argument implies a NULL function return.
Definition: item_func.h:187
void print_args(const THD *thd, String *str, uint from, enum_query_type query_type) const
Definition: item_func.cc:773
Item_func(Item *a, Item *b, Item *c, Item *d, Item *e, Item *f)
Definition: item_func.h:467
table_map used_tables() const override
Definition: item_func.h:535
virtual bool contains_only_equi_join_condition() const
Whether this Item is an equi-join condition.
Definition: item_func.h:755
bool walk(Item_processor processor, enum_walk walk, uchar *arg) override
Traverses a tree of Items in prefix and/or postfix order.
Definition: item_func.cc:633
Item * transform(Item_transformer transformer, uchar *arg) override
Transform an Item_func object with a transformer callback function.
Definition: item_func.cc:677
virtual bool resolve_type_inner(THD *)
Resolve type of function after all arguments have had their data types resolved.
Definition: item_func.h:524
Item_func(Item *a, Item *b, Item *c)
Definition: item_func.h:404
uint allowed_arg_cols
Definition: item_func.h:192
Definition: item_func.h:1048
String * val_str(String *str) override
Definition: item_func.cc:1511
Item_int_func(const POS &pos, Item *a)
Definition: item_func.h:1056
bool val_datetime(Datetime_val *dt, my_time_flags_t flags) override
Evaluate the item and return result as a datetime value.
Definition: item_func.h:1100
Item_int_func(Item *a, Item *b, Item *c)
Definition: item_func.h:1067
Item_int_func(const POS &pos)
Definition: item_func.h:1051
Item_int_func(Item *a, Item *b)
Definition: item_func.h:1060
Item_int_func(const POS &pos, PT_item_list *opt_list)
Definition: item_func.h:1086
double val_real() override
Definition: item_func.cc:1505
Item_int_func(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_func.h:1070
Item_int_func()
Definition: item_func.h:1050
Item_int_func(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1063
Item_int_func(Item *a)
Definition: item_func.h:1055
Item_int_func(mem_root_deque< Item * > *list)
Definition: item_func.h:1083
Item_int_func(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:1078
enum Item_result result_type() const override
Definition: item_func.h:1103
Item_int_func(Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:1075
Item_int_func(THD *thd, Item_int_func *item)
Definition: item_func.h:1091
bool val_date(Date_val *date, my_time_flags_t flags) override
Evaluate the item and return result as a date value.
Definition: item_func.h:1096
bool val_time(Time_val *time) override
Evaluate the item and return result as a time value.
Definition: item_func.h:1099
Definition: item_func.h:2593
Item_master_pos_wait(const POS &pos, Item *a, Item *b)
Definition: item_func.h:2595
Item_master_pos_wait(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_func.h:2597
Item_master_pos_wait(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:2599
longlong val_int() override
Wait until we are at or past the given position in the master binlog on the slave.
Definition: item_func.cc:5540
void copy(const char *str_arg, size_t length_arg, const CHARSET_INFO *cs_arg, bool is_autogenerated_arg)
Copy name together with autogenerated flag.
Definition: item.cc:1500
Definition: item_func.h:1016
String * str_op(String *) override
Evaluates item when resulting data type is a string type.
Definition: item_func.h:1030
Item_num_op(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1019
virtual void result_precision()=0
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.h:1024
bool datetime_op(Datetime_val *, my_time_flags_t) override
Evaluates item when resulting data type is DATETIME or TIMESTAMP.
Definition: item_func.h:1042
bool time_op(Time_val *) override
Evaluates item when resulting data type is TIME.
Definition: item_func.h:1038
Item_num_op(Item *a, Item *b)
Definition: item_func.h:1018
bool date_op(Date_val *, my_time_flags_t) override
Evaluates item when resulting data type is DATE.
Definition: item_func.h:1034
void set_numeric_type() override
Check arguments to determine the data type for a numeric function of two arguments.
Definition: item_func.cc:1548
Definition: item_func.h:843
longlong val_int() override
Definition: item_func.h:871
my_decimal * val_decimal(my_decimal *decimal_value) override
Definition: item_func.cc:891
Item_real_func(Item *a, Item *b)
Definition: item_func.h:855
bool val_date(Date_val *date, my_time_flags_t flags) override
Evaluate the item and return result as a date value.
Definition: item_func.h:875
bool val_time(Time_val *time) override
Evaluate the item and return result as a time value.
Definition: item_func.h:878
String * val_str(String *str) override
Definition: item_func.cc:881
Item_real_func(mem_root_deque< Item * > *list)
Definition: item_func.h:861
Item_real_func(const POS &pos)
Definition: item_func.h:846
Item_real_func(const POS &pos, Item *a)
Definition: item_func.h:851
enum Item_result result_type() const override
Definition: item_func.h:882
Item_real_func()
Definition: item_func.h:845
Item_real_func(const POS &pos, PT_item_list *list)
Definition: item_func.h:865
bool val_datetime(Datetime_val *dt, my_time_flags_t flags) override
Evaluate the item and return result as a datetime value.
Definition: item_func.h:879
Item_real_func(Item *a)
Definition: item_func.h:850
Item_real_func(const POS &pos, Item *a, Item *b)
Definition: item_func.h:857
Item with result field.
Definition: item.h:6020
int raise_decimal_overflow()
Definition: item.h:6079
longlong raise_integer_overflow()
Definition: item.h:6074
longlong llrint_with_overflow_check(double realval)
Definition: item.h:6059
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item.cc:11580
double raise_float_overflow()
Definition: item.h:6069
A wrapper Item that normally returns its parameter, but becomes NULL when processing rows for rollup.
Definition: item_func.h:1770
const char * func_name() const override
Definition: item_func.h:1791
bool rollup_null() const
Definition: item_func.h:1816
bool val_time(Time_val *time) override
Evaluate the item and return result as a time value.
Definition: item_func.cc:4378
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:4442
table_map used_tables() const override
Definition: item_func.h:1792
TYPELIB * get_typelib() const override
Get the typelib information for an item of type set or enum.
Definition: item_func.cc:4471
uint64_t hash() override
Generate hash unique to an item depending on its attributes.
Definition: item_func.cc:4459
String * val_str(String *str) override
Definition: item_func.cc:4409
bool val_json(Json_wrapper *result) override
Get a JSON value from an Item.
Definition: item_func.cc:4431
const int m_min_rollup_level
Definition: item_func.h:1833
bool eq_specific(const Item *item) const override
Provide a more specific equality check for a function.
Definition: item_func.cc:4466
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:1806
my_decimal * val_decimal(my_decimal *dec) override
Definition: item_func.cc:4420
Item_result result_type() const override
Definition: item_func.h:1805
Item_rollup_group_item(int min_rollup_level, Item *inner_item)
Definition: item_func.h:1772
void set_current_rollup_level(int level)
Definition: item_func.h:1827
int min_rollup_level() const
Definition: item_func.h:1830
int m_current_rollup_level
Definition: item_func.h:1834
longlong val_int() override
Definition: item_func.cc:4398
bool val_datetime(Datetime_val *dt, my_time_flags_t flags) override
Evaluate the item and return result as a datetime value.
Definition: item_func.cc:4368
Item * inner_item()
Definition: item_func.h:1814
const Item * inner_item() const
Definition: item_func.h:1815
bool val_date(Date_val *date, my_time_flags_t flags) override
Evaluate the item and return result as a date value.
Definition: item_func.cc:4359
enum Functype functype() const override
Definition: item_func.h:1819
void update_used_tables() override
Updates used tables, not null tables information and accumulates properties up the item tree,...
Definition: item_func.h:1801
double val_real() override
Definition: item_func.cc:4387
Definition: item_func.h:2558
const char * func_name() const override
Definition: item_func.h:2572
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_func.h:2584
Item_source_pos_wait(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:2567
Item_source_pos_wait(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_func.h:2565
table_map get_initial_pseudo_tables() const override
Returns the pseudo tables depended upon in order to evaluate this function expression.
Definition: item_func.h:2573
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2576
longlong val_int() override
Wait until we are at or past the given position in the master binlog on the slave.
Definition: item_func.cc:5482
String value
Definition: item_func.h:2560
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_func.cc:5469
Item_int_func super
Definition: item_func.h:2559
Item_source_pos_wait(const POS &pos, Item *a, Item *b)
Definition: item_func.h:2563
Utility mixin class to be able to walk() only parts of item trees.
Definition: item.h:737
Definition: item_func.h:1161
Item_typecast_decimal(const POS &pos, Item *a, int len, int dec)
Definition: item_func.h:1166
bool val_time(Time_val *time) override
Evaluate the item and return result as a time value.
Definition: item_func.h:1176
longlong val_int() override
Definition: item_func.cc:2083
uint64_t hash() override
Generate hash unique to an item depending on its attributes.
Definition: item_func.cc:2142
bool val_date(Date_val *date, my_time_flags_t flags) override
Evaluate the item and return result as a date value.
Definition: item_func.h:1173
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:2128
const char * func_name() const override
Definition: item_func.h:1188
enum Item_result result_type() const override
Definition: item_func.h:1181
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_func.cc:2152
String * val_str(String *str) override
Definition: item_func.cc:2064
my_decimal * val_decimal(my_decimal *) override
Definition: item_func.cc:2094
double val_real() override
Definition: item_func.cc:2072
bool val_datetime(Datetime_val *dt, my_time_flags_t flags) override
Evaluate the item and return result as a datetime value.
Definition: item_func.h:1177
enum Functype functype() const override
Definition: item_func.h:1189
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:1182
Class used to implement CAST to floating-point data types.
Definition: item_func.h:1198
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:2216
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_func.h:1200
enum Item_result result_type() const override
Definition: item_func.h:1221
Item_typecast_real(const POS &pos, Item *a, bool as_double)
Definition: item_func.h:1206
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:1222
Item_typecast_real(Item *a)
Definition: item_func.h:1213
bool val_date(Date_val *date, my_time_flags_t flags) override
Evaluate the item and return result as a date value.
Definition: item_func.cc:2194
String * val_str(String *str) override
Definition: item_func.cc:2159
double val_real() override
Definition: item_func.cc:2163
longlong val_int() override
Definition: item_func.h:1216
const char * func_name() const override
Definition: item_func.h:1226
bool val_datetime(Datetime_val *dt, my_time_flags_t flags) override
Evaluate the item and return result as a datetime value.
Definition: item_func.cc:2198
enum Functype functype() const override
Definition: item_func.h:1227
bool val_time(Time_val *time) override
Evaluate the item and return result as a time value.
Definition: item_func.cc:2202
my_decimal * val_decimal(my_decimal *decimal_value) override
Definition: item_func.cc:2206
Definition: item_func.h:1135
const char * func_name() const override
Definition: item_func.h:1140
Item_typecast_signed(const POS &pos, Item *a)
Definition: item_func.h:1137
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:1967
longlong val_int() override
Definition: item_func.cc:1995
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:1974
enum Functype functype() const override
Definition: item_func.h:1145
Definition: item_func.h:1148
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:2024
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:2031
Item_typecast_unsigned(const POS &pos, Item *a)
Definition: item_func.h:1150
longlong val_int() override
Definition: item_func.cc:2037
const char * func_name() const override
Definition: item_func.h:1153
enum Functype functype() const override
Definition: item_func.h:1158
Definition: item_func.h:2304
Item_func super
Definition: item_func.h:2305
Item_udf_func(const POS &pos, udf_func *udf_arg, PT_item_list *opt_list)
Definition: item_func.h:2311
const char * func_name() const override
Definition: item_func.h:2318
bool may_have_named_parameters() const override
Named parameters are allowed in a parameter list.
Definition: item_func.h:2341
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_func.h:2328
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:5346
bool fix_fields(THD *thd, Item **ref) override
Definition: item_func.cc:4868
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_func.cc:5340
table_map get_initial_pseudo_tables() const override
Returns the pseudo tables depended upon in order to evaluate this function expression.
Definition: item_func.h:2320
~Item_udf_func() override=default
Item_result result_type() const override
Definition: item_func.h:2325
udf_handler udf
Definition: item_func.h:2308
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_func.cc:5331
enum Functype functype() const override
Definition: item_func.h:2319
void compute_cost(CostOfItem *root_cost) const override
Compute the cost of evaluating this Item.
Definition: item_func.h:2336
bool m_non_deterministic
This member is set during resolving and is used by update_used_tables() and fix_after_pullout() to pr...
Definition: item_func.h:2348
Definition: item_func.h:3491
double val_real() override
Definition: item_func.cc:7420
uint64_t hash() override
Generate hash unique to an item depending on its attributes.
Definition: item_func.cc:7446
void set_value(const char *str, size_t length, const CHARSET_INFO *cs)
Definition: item_func.cc:7412
longlong val_int() override
Definition: item_func.cc:7425
bool val_time(Time_val *) override
Evaluate the item and return result as a time value.
Definition: item_func.h:3510
bool fix_fields(THD *thd, Item **ref) override
Definition: item_func.cc:7381
String * val_str(String *str) override
Definition: item_func.cc:7430
Name_string name
Definition: item_func.h:3492
Item_user_var_as_out_param(const POS &pos, Name_string a)
Definition: item_func.h:3496
enum Type type() const override
Definition: item_func.h:3501
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:7440
bool val_datetime(Datetime_val *, my_time_flags_t) override
Evaluate the item and return result as a datetime value.
Definition: item_func.h:3514
bool val_date(Date_val *, my_time_flags_t) override
Evaluate the item and return result as a date value.
Definition: item_func.h:3506
void set_null_value(const CHARSET_INFO *cs)
Definition: item_func.cc:7406
my_decimal * val_decimal(my_decimal *decimal_buffer) override
Definition: item_func.cc:7435
user_var_entry * entry
Definition: item_func.h:3493
Common class for: Item_func_get_system_var Item_func_get_user_var Item_func_set_user_var.
Definition: item_func.h:3134
Item_var_func(const POS &pos, Item *a)
Definition: item_func.h:3142
Item_var_func()
Definition: item_func.h:3136
bool val_datetime(Datetime_val *dt, my_time_flags_t flags) override
Evaluate the item and return result as a datetime value.
Definition: item_func.h:3150
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_func.h:3153
Item_var_func(THD *thd, Item_var_func *item)
Definition: item_func.h:3139
Item_var_func(Item *a)
Definition: item_func.h:3141
bool val_date(Date_val *date, my_time_flags_t flags) override
Evaluate the item and return result as a date value.
Definition: item_func.h:3144
Item_var_func(const POS &pos)
Definition: item_func.h:3137
bool val_time(Time_val *time) override
Evaluate the item and return result as a time value.
Definition: item_func.h:3147
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:929
virtual double val_real()=0
String str_value
str_values's main purpose is to cache the value in save_in_field
Definition: item.h:3669
void set_nullable(bool nullable)
Definition: item.h:3781
DTCollation collation
Character set and collation properties assigned for this Item.
Definition: item.h:3676
bool get_date_from_int(Date_val *date, my_time_flags_t flags)
Convert val_int() to date.
Definition: item.cc:1653
bool is_nullable() const
Definition: item.h:3780
virtual bool propagate_type(THD *thd, const Type_properties &type)
Propagate data type specifications into parameters and user variables.
Definition: item.h:1314
bool get_time_from_decimal(Time_val *time)
Convert val_decimal() to time.
Definition: item.cc:1777
void set_data_type_float()
Set the data type of the Item to be single precision floating point.
Definition: item.h:1587
static Item_result type_to_result(enum_field_types type)
Definition: item.h:1042
virtual table_map used_tables() const
Definition: item.h:2414
bool get_datetime_from_non_temporal(Datetime_val *dt, my_time_flags_t flags)
Convert a non-temporal type to datetime.
Definition: item.cc:1726
virtual bool val_date(Date_val *date, my_time_flags_t flags)=0
Evaluate the item and return result as a date value.
void add_accum_properties(const Item *item)
Add more accumulated properties to an Item.
Definition: item.h:3528
void set_data_type_double()
Set the data type of the Item to be double precision floating point.
Definition: item.h:1579
enum_field_types data_type() const
Retrieve the derived data type of the Item.
Definition: item.h:1481
Item_name_string item_name
Name from query.
Definition: item.h:3677
bool fixed
True if item has been resolved.
Definition: item.h:3769
enum_const_item_cache
How to cache constant JSON data.
Definition: item.h:998
@ CACHE_NONE
Don't cache.
Definition: item.h:1000
virtual Item_result result_type() const
Definition: item.h:1451
bool null_value
True if item is null.
Definition: item.h:3806
Type
Definition: item.h:964
@ FIELD_ITEM
A reference to a field (column) in a table.
Definition: item.h:966
@ FUNC_ITEM
A function call reference.
Definition: item.h:967
@ STRING_ITEM
A string literal value.
Definition: item.h:970
bool get_datetime_from_string(Datetime_val *dt, my_time_flags_t flags)
Convert val_str() to datetime.
Definition: item.cc:1605
bool get_datetime_from_int(Datetime_val *dt, my_time_flags_t flags)
Convert val_int() to datetime.
Definition: item.cc:1647
uint8 m_accum_properties
Definition: item.h:3847
void set_accum_properties(const Item *item)
Set accumulated properties for an Item.
Definition: item.h:3523
bool get_datetime_from_real(Datetime_val *dt, my_time_flags_t flags)
Convert val_real() to datetime.
Definition: item.cc:1627
my_decimal * val_decimal_from_real(my_decimal *decimal_value)
Definition: item.cc:371
void set_group_by_modifier()
Set the property: this item (tree) contains a reference to a GROUP BY modifier (such as ROLLUP)
Definition: item.h:3574
bool get_date_from_real(Date_val *date, my_time_flags_t flags)
Convert val_real() to date.
Definition: item.cc:1621
bool get_time_from_int(Time_val *time)
Convert val_int() to time.
Definition: item.cc:1784
bool unsigned_flag
Definition: item.h:3807
bool get_date_from_string(Date_val *date, my_time_flags_t flags)
Convert val_str() to date.
Definition: item.cc:1613
virtual bool is_null()
The method allows to determine nullness of a complex expression without fully evaluating it,...
Definition: item.h:2631
bool const_for_execution() const
Returns true if item is constant during one query execution.
Definition: item.h:2487
bool get_time_from_non_temporal(Time_val *time)
Convert a non-temporal type to time.
Definition: item.cc:1830
traverse_order
Definition: item.h:995
virtual bool val_datetime(Datetime_val *dt, my_time_flags_t flags)=0
Evaluate the item and return result as a datetime value.
bool get_time_from_real(Time_val *time)
Convert val_real() to time.
Definition: item.cc:1771
virtual bool val_time(Time_val *time)=0
Evaluate the item and return result as a time value.
virtual String * val_str(String *str)=0
bool hidden
If the item is in a SELECT list (Query_block::fields) and hidden is true, the item wasn't actually in...
Definition: item.h:3817
void set_data_type_from_item(const Item *item)
Set data type properties of the item from the properties of another item.
Definition: item.h:1799
bool get_datetime_from_decimal(Datetime_val *dt, my_time_flags_t flags)
Convert val_decimal() to datetime.
Definition: item.cc:1640
uint32 max_length
Maximum length of result of evaluating this item, in number of bytes.
Definition: item.h:3694
bool get_date_from_decimal(Date_val *date, my_time_flags_t flags)
Convert val_decimal() to date.
Definition: item.cc:1633
void set_data_type_longlong()
Set the data type of the Item to be longlong.
Definition: item.h:1555
bool update_null_value()
Make sure the null_value member has a correct value.
Definition: item.cc:8021
void set_data_type_decimal(uint8 precision, uint8 scale)
Set the data type of the Item to be decimal.
Definition: item.h:1569
bool get_time_from_string(Time_val *time)
Convert val_str() to time.
Definition: item.cc:1763
bool get_date_from_non_temporal(Date_val *date, my_time_flags_t flags)
Convert a non-temporal type to date.
Definition: item.cc:1745
Definition: sql_optimizer.h:133
Represents a JSON container value of type "object" (ECMA), type J_OBJECT here.
Definition: json_dom.h:374
bool add_alias(std::string_view key, Json_dom *value)
Insert the value into the object.
Definition: json_dom.h:416
Abstraction for accessing JSON values irrespective of whether they are (started out as) binary JSON v...
Definition: json_dom.h:1268
Definition: sql_list.h:494
Storage for name strings.
Definition: item.h:297
A visitor that calls the specified function on every non-aggregated full-text search function (Item_f...
Definition: item_func.h:3899
std::function< bool(Item_func_match *)> m_func
Definition: item_func.h:3906
bool operator()(Item *item)
Definition: item_func.cc:8315
NonAggregatedFullTextSearchVisitor(std::function< bool(Item_func_match *)> func)
Definition: item_func.cc:8311
Wrapper class for an Item list head, used to allocate Item lists in the parser in a context-independe...
Definition: parse_tree_helpers.h:109
void error(Context *pc, const POS &pos) const
syntax_error() function replacement for deferred reporting of syntax errors
Definition: parse_tree_node_base.h:346
Definition: protocol.h:33
This class represents a query block, aka a query specification, which is a query consisting of a SELE...
Definition: sql_lex.h:1179
A wrapper class for null-terminated constant strings.
Definition: sql_string.h:74
Using this class is fraught with peril, and you need to be very careful when doing so.
Definition: sql_string.h:169
const CHARSET_INFO * charset() const
Definition: sql_string.h:242
const char * ptr() const
Definition: sql_string.h:251
size_t length() const
Definition: sql_string.h:243
Wrapper interface for all kinds of system variables.
Definition: set_var.h:580
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
TABLE * table
Definition: table.h:3747
Time_val is a temporal type that represents only time.
Definition: my_temporal.h:57
Type properties, used to collect type information for later assignment to an Item object.
Definition: item.h:626
Table_flags ha_table_flags() const
The cached_table_flags is set at ha_open and ha_external_lock.
Definition: handler.h:5099
A (partial) implementation of std::deque allocating its blocks on a MEM_ROOT.
Definition: mem_root_deque.h:172
my_decimal class limits 'decimal_t' type to what we need in MySQL.
Definition: my_decimal.h:97
sp_head represents one instance of a stored program.
Definition: sp_head.h:389
Base class for every SP-instruction.
Definition: sp_instr.h:105
Definition: sp_head.h:124
Definition: sp_rcontext.h:77
A class representing one system variable - that is something that can be accessed as @global....
Definition: set_var.h:107
Item_result result_type() const
Definition: sql_udf.h:119
const char * name() const
Definition: sql_udf.h:118
Definition: item_func.h:3167
char * internal_buffer_ptr()
Position inside a user_var_entry where small values are stored: double values, longlong values and st...
Definition: item_func.h:3184
static const size_t extra_size
Definition: item_func.h:3256
Simple_cstring entry_name
Definition: item_func.h:3281
Item_result m_type
Value type.
Definition: item_func.h:3259
size_t m_length
Value length.
Definition: item_func.h:3258
longlong val_int(bool *null_value) const
Get the value of a variable as an integer.
Definition: item_func.cc:6576
bool unsigned_flag
Definition: item_func.h:3283
THD * m_owner
Definition: item_func.h:3260
size_t length() const
Definition: item_func.h:3355
query_id_t used_query_id() const
Definition: item_func.h:3325
THD * owner_session() const
Definition: item_func.h:3279
static user_var_entry * create(THD *thd, const Name_string &name, const CHARSET_INFO *cs)
Allocates and initializes a user variable instance.
Definition: item_func.cc:6419
void set_value(char *value, size_t length)
Definition: item_func.h:3172
String * val_str(bool *null_value, String *str, uint decimals) const
Get the value of a variable as a string.
Definition: item_func.cc:6615
const char * ptr() const
Definition: item_func.h:3354
void free_value()
Free the external value buffer, if it's allocated.
Definition: item_func.h:3212
bool store(const void *from, size_t length, Item_result type)
Store a value of the given type into a user_var_entry instance.
Definition: item_func.cc:6466
void init(THD *thd, const Simple_cstring &name, const CHARSET_INFO *cs)
Initialize all members.
Definition: item_func.cc:6454
Item_result type() const
The data type of this variable.
Definition: item_func.h:3357
void destroy()
Free all memory used by a user_var_entry instance previously created by create().
Definition: item_func.h:3344
bool alloced()
Check if m_ptr points to an external buffer previously allocated by realloc().
Definition: item_func.h:3207
void lock()
Definition: item_func.cc:6506
void unlock()
Definition: item_func.cc:6511
void set_null_value(Item_result type)
Set value to NULL.
Definition: item_func.h:3317
void copy_name(const Simple_cstring &name)
Copy the array of characters from the given name into the internal name buffer and initialize entry_n...
Definition: item_func.h:3220
DTCollation collation
Definition: item_func.h:3282
void set_type(Item_result type)
Set type of to the given value.
Definition: item_func.h:3308
char * m_ptr
Value.
Definition: item_func.h:3257
query_id_t m_used_query_id
Set to the id of the most recent query that has used the variable.
Definition: item_func.h:3274
void assert_locked() const
Assert the user variable is locked.
Definition: item_func.cc:6491
void reset_value()
Definition: item_func.h:3168
char * name_ptr()
Position inside a user_var_entry where a null-terminates array of characters representing the variabl...
Definition: item_func.h:3192
double val_real(bool *null_value) const
Get the value of a variable as a double.
Definition: item_func.cc:6547
my_decimal * val_decimal(bool *null_value, my_decimal *result) const
Get the value of a variable as a decimal.
Definition: item_func.cc:6647
bool mem_realloc(size_t length)
Initialize m_ptr to the internal buffer (if the value is small enough), or allocate a separate buffer...
Definition: item_func.cc:6436
void set_used_query_id(query_id_t query_id)
Definition: item_func.h:3324
static MEM_ROOT mem_root
Definition: client_plugin.cc:114
#define E_DEC_FATAL_ERROR
Definition: decimal.h:154
#define E_DEC_OVERFLOW
Definition: decimal.h:149
enum_query_type
Query type constants (usable as bitmap flags).
Definition: enum_query_type.h:31
This file contains the field type.
enum_field_types
Column types for MySQL Note: Keep include/mysql/components/services/bits/stored_program_bits....
Definition: field_types.h:55
@ MYSQL_TYPE_VARCHAR
Definition: field_types.h:71
@ MYSQL_TYPE_LONGLONG
Definition: field_types.h:64
@ MYSQL_TYPE_TIME
Definition: field_types.h:67
@ MYSQL_TYPE_VECTOR
Definition: field_types.h:77
@ MYSQL_TYPE_INVALID
Definition: field_types.h:78
@ MYSQL_TYPE_NEWDECIMAL
Definition: field_types.h:81
@ MYSQL_TYPE_DOUBLE
Definition: field_types.h:61
@ MYSQL_TYPE_DATE
Definition: field_types.h:66
@ MYSQL_TYPE_TIMESTAMP
Definition: field_types.h:63
@ MYSQL_TYPE_DATETIME
Definition: field_types.h:68
static const std::string dec("DECRYPTION")
Some definitions for full-text indices.
ft_operation
Operation types, used in FT_HINTS.
Definition: ft_global.h:99
@ FT_OP_NO
Operation undefined, use of hints is impossible.
Definition: ft_global.h:101
#define FTS_DOCID_IN_RESULT
Definition: ft_global.h:66
#define FT_SORTED
Definition: ft_global.h:108
#define FTS_ORDERED_RESULT
Definition: ft_global.h:65
#define FT_BOOL
Definition: ft_global.h:107
cache_type
Definition: my_sys.h:287
void my_error(int nr, myf MyFlags,...)
Fill in and print a previously registered error message.
Definition: my_error.cc:217
static int flags[50]
Definition: hp_test1.cc:40
static void start(mysql_harness::PluginFuncEnv *env)
Definition: http_auth_backend_plugin.cc:180
bool agg_item_charsets_for_comparison(DTCollation &c, const char *name, Item **items, uint nitems)
Definition: item.h:4239
bool agg_item_charsets_for_string_result(DTCollation &c, const char *name, Item **items, uint nitems)
Definition: item.h:4232
bool(Item::* Item_analyzer)(uchar **argp)
Definition: item.h:711
void(* Cond_traverser)(const Item *item, void *arg)
Definition: item.h:721
Item *(Item::* Item_transformer)(uchar *arg)
Type for transformers used by Item::transform and Item::compile.
Definition: item.h:720
bool check_reserved_words(const char *name)
Definition: item_func.cc:168
void report_conversion_error(const CHARSET_INFO *to_cs, const char *from, size_t from_length, const CHARSET_INFO *from_cs)
Definition: item_func.cc:176
Item_field * get_gc_for_expr(const Item *func, Field *fld, Item_result type, Field **found=nullptr)
Return new Item_field if given expression matches GC.
Definition: item_func.cc:1113
bool is_function_of_type(const Item *item, Item_func::Functype type)
Checks if "item" is a function of the specified type.
Definition: item_func.cc:1087
bool simplify_string_args(THD *thd, const DTCollation &c, Item **items, uint nitems)
Simplify the string arguments to a function, if possible.
Definition: item_func.cc:200
void unsupported_json_comparison(size_t arg_count, Item **args, const char *msg)
Go through the arguments of a function and check if any of them are JSON.
Definition: item_func.cc:1684
bool eval_const_cond(THD *thd, Item *cond, bool *value)
Evaluate a constant condition, represented by an Item tree.
Definition: item_func.cc:317
enum_field_types agg_field_type(Item **items, uint nitems)
Aggregates field types from the array of items.
Definition: item_cmpfunc.cc:186
void item_func_sleep_free()
Definition: item_func.cc:6208
void mysql_ull_set_explicit_lock_duration(THD *thd)
Set explicit duration for metadata locks corresponding to user level locks to protect them from being...
Definition: item_func.cc:5665
double my_double_round(double value, longlong dec, bool dec_unsigned, bool truncate)
Definition: item_func.cc:3693
String * eval_string_arg_noinline(const CHARSET_INFO *to_cs, Item *arg, String *buffer)
Evaluate an argument string and return it in the desired character set.
Definition: item_func.cc:267
String * eval_string_arg(const CHARSET_INFO *to_cs, Item *arg, String *buffer)
Definition: item_func.h:94
void item_func_sleep_init()
Definition: item_func.cc:6198
void mysql_ull_cleanup(THD *thd)
Release all user level locks for this THD.
Definition: item_func.cc:5647
void retrieve_tablespace_statistics(THD *thd, Item **args, bool *null_value)
Retrieve tablespace statistics from SE.
Definition: item_func.cc:10083
bool volatile mqh_used
Definition: mysqld.cc:1333
Item * get_system_variable(Parse_context *pc, enum_var_type scope, const LEX_CSTRING &prefix, const LEX_CSTRING &suffix, bool unsafe_for_replication)
Create new Item_func_get_system_var object.
Definition: item_func.cc:8382
bool contains_function_of_type(Item *item, Item_func::Functype type)
Checks if "item" contains a function of the specified type.
Definition: item_func.cc:1092
void uuid_short_init()
Definition: item_func.cc:9002
A better implementation of the UNIX ctype(3) library.
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_bin
Definition: ctype-bin.cc:499
int64_t my_strntoll(const CHARSET_INFO *cs, const char *str, size_t length, int base, const char **end, int *err)
Definition: m_ctype.h:747
double my_strntod(const CHARSET_INFO *cs, const char *str, size_t length, const char **end, int *err)
Definition: m_ctype.h:759
bool my_charset_same(const CHARSET_INFO *cs1, const CHARSET_INFO *cs2)
Definition: m_ctype.h:514
This file follows Google coding style, except for the name MEM_ROOT (which is kept for historical rea...
This file includes constants used by all storage engines.
my_off_t ha_rows
Definition: my_base.h:1228
Header for compiler-dependent features.
#define SUPPRESS_UBSAN
Definition: my_compiler.h:120
#define DBUG_TRACE
Definition: my_dbug.h:146
int str2my_decimal(uint mask, const char *from, size_t length, const CHARSET_INFO *charset, my_decimal *decimal_value)
Definition: my_decimal.cc:257
It is interface module to fixed precision decimals library.
int double2my_decimal(uint mask, double val, my_decimal *d)
Definition: my_decimal.h:327
Some integer typedefs for easier portability.
unsigned long long int ulonglong
Definition: my_inttypes.h:56
uint8_t uint8
Definition: my_inttypes.h:63
unsigned char uchar
Definition: my_inttypes.h:52
long long int longlong
Definition: my_inttypes.h:55
#define MYF(v)
Definition: my_inttypes.h:97
void my_free(void *ptr)
Frees the memory pointed by the ptr.
Definition: my_memory.cc:81
Some macros for dealing with pointer arithmetic, e.g., aligning of buffers to a given size.
#define ALIGN_SIZE(A)
Definition: my_pointer_arithmetic.h:36
uint64_t table_map
Definition: my_table_map.h:30
Interface for low level time utilities.
unsigned int my_time_flags_t
Flags to str_to_datetime and int_to_datetime.
Definition: my_time.h:87
#define MAX_BIGINT_WIDTH
Max width for a LONGLONG.
Definition: mysql_com.h:903
thread_local MEM_ROOT ** THR_MALLOC
Definition: mysqld.cc:1593
static bool replace
Definition: mysqlimport.cc:70
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1077
Definition: commit_order_queue.h:34
PT & ref(PT *tp)
Definition: tablespace_impl.cc:359
bool length(const dd::Spatial_reference_system *srs, const Geometry *g1, double *length, bool *null) noexcept
Computes the length of linestrings and multilinestrings.
Definition: length.cc:76
ValueType value(const std::optional< ValueType > &v)
Definition: gtid.h:83
std::string_view type_name()
Return the name of the given type (not demangled).
Definition: object_lifetime_tracker.h:57
std::string join(const detail::range auto &rng, std::string_view delim)
join elements of a range into a string separated by a delimiter.
Definition: string.h:74
mutable_buffer buffer(void *p, size_t n) noexcept
Definition: buffer.h:418
Cursor end()
A past-the-end Cursor.
Definition: rules_table_service.cc:192
const char * db_name
Definition: rules_table_service.cc:55
std::string truncate(const std::string &str, const size_t max_length)
Truncates the given string to max_length code points.
Definition: utils_string.cc:418
std::map< Key, Value, Compare, ut::allocator< std::pair< const Key, Value > > > map
Specialization of map which uses ut_allocator.
Definition: ut0new.h:2898
std::list< T, ut::allocator< T > > list
Specialization of list which uses ut_allocator.
Definition: ut0new.h:2884
required string type
Definition: replication_group_member_actions.proto:34
"public" interface to sys_var - server configuration variables.
enum_var_type
Definition: set_var.h:92
type_conversion_status
Status when storing a value in a field or converting from one datatype to another.
Definition: field.h:200
@ VGS_CHECK_CONSTRAINT
Definition: field.h:474
@ VGS_GENERATED_COLUMN
Definition: field.h:472
Derivation
For use.
Definition: field.h:176
#define HA_CAN_FULLTEXT_EXT
Definition: handler.h:430
File containing constants that can be used throughout the server.
constexpr const table_map RAND_TABLE_BIT
Definition: sql_const.h:113
enum_walk
Enumeration for {Item,Query_block[_UNIT],Table_function}walk.
Definition: sql_const.h:289
bool(Item::*)(unsigned char *) Item_processor
Processor type for {Item,Query_block[_UNIT],Table_function}walk.
Definition: sql_const.h:307
constexpr const table_map INNER_TABLE_BIT
Definition: sql_const.h:111
Our own string classes, used pervasively throughout the executor.
case opt name
Definition: sslopt-case.h:29
Definition: m_ctype.h:421
Struct used to pass around arguments to/from check_function_as_value_generator.
Definition: item.h:487
int err_code
the error code found during check(if any)
Definition: item.h:494
const char * banned_function_name
the name of the function which is not allowed
Definition: item.h:501
Value_generator_source source
Definition: item.h:499
Definition: ft_global.h:77
Definition: ft_global.h:72
struct _ft_vft * please
Definition: ft_global.h:73
The MEM_ROOT is a simple arena, where allocations are carved out of larger blocks.
Definition: my_alloc.h:83
T * ArrayAlloc(size_t num, Args... args)
Allocate 'num' objects of type T, and initialize them to a default value that is created by passing t...
Definition: my_alloc.h:180
Definition: mysql_lex_string.h:40
Definition: mysql_lex_string.h:35
Definition: my_bitmap.h:43
Bison "location" class.
Definition: parse_location.h:43
Instances of Name_resolution_context store the information necessary for name resolution of Items and...
Definition: item.h:414
Environment data for the contextualization phase.
Definition: parse_tree_node_base.h:422
handler * file
Definition: table.h:1458
Definition: completion_hash.h:35
void(* close_search)(FT_INFO *)
Definition: ft_global.h:51
Definition: mysql_com.h:1110
Item_result
Type of the user defined function return slot and arguments.
Definition: udf_registration_types.h:39
@ STRING_RESULT
not valid for UDFs
Definition: udf_registration_types.h:41
@ DECIMAL_RESULT
not valid for UDFs
Definition: udf_registration_types.h:45
@ REAL_RESULT
char *
Definition: udf_registration_types.h:42
@ INT_RESULT
double
Definition: udf_registration_types.h:43
#define array_elements(A)
Definition: validate_password_imp.cc:50