1#ifndef ITEM_FUNC_INCLUDED
2#define ITEM_FUNC_INCLUDED
52#include "mysqld_error.h"
121 if (
args ==
nullptr) {
480 bool eq(
const Item *item,
bool binary_cmp)
const override;
529 uint nitems,
int item_sep = 1) {
539 uint nitems,
int item_sep = 1) {
716 const MY_BITMAP *fields_to_ignore)
const;
733 pointer_cast<Check_function_as_value_generator_parameters *>(
1005 const char *
func_name()
const override {
return "connection_id"; }
1011 pointer_cast<Check_function_as_value_generator_parameters *>(
1024 const char *
func_name()
const override {
return "cast_as_signed"; }
1037 const char *
func_name()
const override {
return "cast_as_unsigned"; }
1067 const char *
func_name()
const override {
return "cast_as_decimal"; }
1096 const char *
func_name()
const override {
return "cast_as_real"; }
1380 const char *
func_name()
const override {
return "ceiling"; }
1414 return truncate ?
"truncate" :
"round";
1454 pointer_cast<Check_function_as_value_generator_parameters *>(
1491 const char *
func_name()
const override {
return "degrees"; }
1499 const char *
func_name()
const override {
return "radians"; }
1585 const char *
func_name()
const override {
return "greatest"; }
1634 const char *
func_name()
const override {
return "rollup_group_item"; }
1665 bool eq(
const Item *item,
bool binary_cmp)
const override;
1699 const char *
func_name()
const override {
return "bit_length"; }
1709 const char *
func_name()
const override {
return "char_length"; }
1722 const char *
func_name()
const override {
return "coercibility"; }
1761 return "validate_password_strength";
1818 const char *
func_name()
const override {
return "find_in_set"; }
1894 template <
class Char_func,
class Int_func>
1896 template <
class Int_func>
1913 return eval_str_op(
str, std::bit_or<char>(), std::bit_or<ulonglong>());
1926 return eval_str_op(
str, std::bit_and<char>(), std::bit_and<ulonglong>());
1939 return eval_str_op(
str, std::bit_xor<char>(), std::bit_xor<ulonglong>());
1947 const char *
func_name()
const override {
return "bit_count"; }
1964 template <
bool to_left>
1966 template <
bool to_left>
2025 const char *
func_name()
const override {
return "last_insert_id"; }
2038 pointer_cast<Check_function_as_value_generator_parameters *>(
2059 const char *
func_name()
const override {
return "benchmark"; }
2071 pointer_cast<Check_function_as_value_generator_parameters *>(
2100 pointer_cast<Check_function_as_value_generator_parameters *>(
2141 pointer_cast<Check_function_as_value_generator_parameters *>(
2234 const char *end_not_used;
2238 &end_not_used, &err_not_used)
2246 nullptr, &err_not_used)
2251 if (!res)
return nullptr;
2280 const char *
func_name()
const override {
return "get_lock"; }
2291 pointer_cast<Check_function_as_value_generator_parameters *>(
2308 const char *
func_name()
const override {
return "release_lock"; }
2318 pointer_cast<Check_function_as_value_generator_parameters *>(
2333 const char *
func_name()
const override {
return "release_all_locks"; }
2341 pointer_cast<Check_function_as_value_generator_parameters *>(
2364 const char *
func_name()
const override {
return "source_pos_wait"; }
2375 pointer_cast<Check_function_as_value_generator_parameters *>(
2403 const char *
func_name()
const override {
return "can_access_database"; }
2415 const char *
func_name()
const override {
return "can_access_table"; }
2427 const char *
func_name()
const override {
return "can_access_user"; }
2439 const char *
func_name()
const override {
return "can_access_trigger"; }
2452 const char *
func_name()
const override {
return "can_access_routine"; }
2464 const char *
func_name()
const override {
return "can_access_event"; }
2476 const char *
func_name()
const override {
return "can_access_resource_group"; }
2489 const char *
func_name()
const override {
return "can_access_view"; }
2501 const char *
func_name()
const override {
return "can_access_column"; }
2517 const char *
func_name()
const override {
return "is_visible_dd_object"; }
2531 const char *
func_name()
const override {
return "internal_table_rows"; }
2546 const char *
func_name()
const override {
return "internal_avg_row_length"; }
2561 const char *
func_name()
const override {
return "internal_data_length"; }
2576 const char *
func_name()
const override {
return "internal_max_data_length"; }
2591 const char *
func_name()
const override {
return "internal_index_length"; }
2606 const char *
func_name()
const override {
return "internal_data_free"; }
2621 const char *
func_name()
const override {
return "internal_auto_increment"; }
2636 const char *
func_name()
const override {
return "internal_checksum"; }
2649 const char *
func_name()
const override {
return "internal_keys_disabled"; }
2665 return "internal_index_column_cardinality";
2680 const char *
func_name()
const override {
return "internal_dd_char_length"; }
2696 return "internal_get_view_warning_or_error";
2717 return "get_dd_index_sub_part_length";
2728 const char *
func_name()
const override {
return "internal_tablespace_id"; }
2747 return "internal_tablespace_logfile_group_number";
2767 return "internal_tablespace_free_extents";
2787 return "internal_tablespace_total_extents";
2807 return "internal_tablespace_extent_size";
2827 return "internal_tablespace_initial_size";
2847 return "internal_tablespace_maximum_size";
2867 return "internal_tablespace_autoextend_size";
2887 return "internal_tablespace_version";
2907 return "internal_tablespace_data_free";
2941 pointer_cast<Check_function_as_value_generator_parameters *>(
2944 ? ER_CHECK_CONSTRAINT_VARIABLES
2945 : ER_DEFAULT_VAL_GENERATED_VARIABLES;
3144 double val_real(
bool *null_value)
const;
3193 bool check(
bool use_result_field);
3203 const char *
func_name()
const override {
return "set_user_var"; }
3206 bool can_use_result_field);
3217 bool no_conversions)
override {
3252 const char *
func_name()
const override {
return "get_user_var"; }
3254 bool eq(
const Item *item,
bool binary_cmp)
const override;
3308#define GET_SYS_VAR_CACHE_LONG 1
3309#define GET_SYS_VAR_CACHE_DOUBLE 2
3310#define GET_SYS_VAR_CACHE_STRING 4
3355 template <
typename T>
3382 const char *
func_name()
const override {
return "get_system_var"; }
3383 bool eq(
const Item *item,
bool binary_cmp)
const override;
3460 bool eq(
const Item *,
bool binary_cmp)
const override;
3474 pointer_cast<Check_function_as_value_generator_parameters *>(
3532 double rows_in_table)
override;
3655 assert(tr && tr->
file);
3693 const char *
func_name()
const override {
return "is_free_lock"; }
3703 pointer_cast<Check_function_as_value_generator_parameters *>(
3720 const char *
func_name()
const override {
return "is_used_lock"; }
3730 pointer_cast<Check_function_as_value_generator_parameters *>(
3746 const char *
func_name()
const override {
return "row_count"; }
3753 pointer_cast<Check_function_as_value_generator_parameters *>(
3792 const LEX_STRING &fn_name,
bool use_explicit_name,
3838 pointer_cast<Check_function_as_value_generator_parameters *>(
3853 const char *
func_name()
const override {
return "found_rows"; }
3860 pointer_cast<Check_function_as_value_generator_parameters *>(
3876 const char *
func_name()
const override {
return "uuid_short"; }
3885 pointer_cast<Check_function_as_value_generator_parameters *>(
3917 return "internal_is_mandatory_role";
3936 const char *
func_name()
const override {
return "internal_is_enabled_role"; }
3968 bool unsafe_for_replication);
3972 bool unsafe_for_replication) {
3974 unsafe_for_replication);
3983 Field **found =
nullptr);
int64 query_id_t
Definition: binlog.h:72
Class to log audit event MYSQL_AUDIT_GLOBAL_VARIABLE_GET.
Definition: item_func.h:3315
Audit_global_variable_get_event(THD *thd, Item_func_get_system_var *item, uchar cache_type)
Definition: item_func.cc:7040
THD * m_thd
Definition: item_func.h:3323
~Audit_global_variable_get_event()
Definition: item_func.cc:7053
bool m_audit_event
Definition: item_func.h:3342
Item_func_get_system_var * m_item
Definition: item_func.h:3326
uchar m_val_type
Definition: item_func.h:3335
void set_numeric()
Definition: item.h:211
const CHARSET_INFO * collation
Definition: item.h:177
Wrapper for struct ft_hints.
Definition: handler.h:3966
uint get_flags() const
Get Ft_hints flags.
Definition: handler.h:4029
enum ft_operation get_op_type() const
Get Ft_hints operation type.
Definition: handler.h:4022
void set_hint_op(enum ft_operation type, double value)
Set comparison operation type and and value for master MATCH function.
Definition: handler.h:3984
Definition: item_func.h:1247
Item_dec_func(const POS &pos, Item *a)
Definition: item_func.h:1250
Item_dec_func(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1252
Item_dec_func(Item *a)
Definition: item_func.h:1249
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:2761
Definition: item_func.h:1232
enum Functype functype() const override
Definition: item_func.h:1242
double real_op() override
Performs the operation that this functions implements when the result type is REAL.
Definition: item_func.cc:2730
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:1241
my_decimal * decimal_op(my_decimal *) override
Performs the operation that this functions implements when the result type is DECIMAL.
Definition: item_func.cc:2745
const char * func_name() const override
Definition: item_func.h:1238
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_func.h:1240
longlong int_op() override
Performs the operation that this functions implements when the result type is INT.
Definition: item_func.cc:2736
Item_func_abs(const POS &pos, Item *a)
Definition: item_func.h:1234
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:2755
Definition: item_func.h:1312
const char * func_name() const override
Definition: item_func.h:1316
double val_real() override
Definition: item_func.cc:2857
enum Functype functype() const override
Definition: item_func.h:1317
Item_func_acos(const POS &pos, Item *a)
Definition: item_func.h:1314
Definition: item_func.h:1102
Item_func_additive_op(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1105
Item_func_additive_op(Item *a, Item *b)
Definition: item_func.h:1104
void result_precision() override
Set precision of results for additive operations (+ and -)
Definition: item_func.cc:2146
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_func.h:1109
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:1110
Definition: item_func.h:1782
const char * func_name() const override
Definition: item_func.h:1788
longlong val_int() override
Definition: item_func.cc:4253
String value
Definition: item_func.h:1783
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:1789
Item_func_ascii(const POS &pos, Item *a)
Definition: item_func.h:1786
Definition: item_func.h:1320
double val_real() override
Definition: item_func.cc:2867
enum Functype functype() const override
Definition: item_func.h:1325
const char * func_name() const override
Definition: item_func.h:1324
Item_func_asin(const POS &pos, Item *a)
Definition: item_func.h:1322
Definition: item_func.h:1328
enum Functype functype() const override
Definition: item_func.h:1334
double val_real() override
Definition: item_func.cc:2875
Item_func_atan(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1331
Item_func_atan(const POS &pos, Item *a)
Definition: item_func.h:1330
const char * func_name() const override
Definition: item_func.h:1333
Definition: item_func.h:2045
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_func.cc:5660
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:5719
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2060
table_map get_initial_pseudo_tables() const override
Ensure that "benchmark()" is never optimized away.
Definition: item_func.h:2053
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:2069
Item_int_func super
Definition: item_func.h:2046
Item_func_benchmark(const POS &pos, Item *count_expr, Item *expr)
Definition: item_func.h:2049
longlong val_int() override
Definition: item_func.cc:5669
const char * func_name() const override
Definition: item_func.h:2059
Definition: item_func.h:1917
longlong int_op() override
Performs the operation on integers to produce a result of type INT_RESULT.
Definition: item_func.h:1924
const char * func_name() const override
Definition: item_func.h:1921
Item_func_bit_and(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1919
String * str_op(String *str) override
Performs the operation on binary strings to produce a result of type STRING_RESULT.
Definition: item_func.h:1925
Definition: item_func.h:1943
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:1948
longlong val_int() override
Definition: item_func.cc:4393
const char * func_name() const override
Definition: item_func.h:1947
Item_func_bit_count(const POS &pos, Item *a)
Definition: item_func.h:1945
Definition: item_func.h:1692
const char * func_name() const override
Definition: item_func.h:1699
longlong val_int() override
Definition: item_func.h:1695
Item_func_bit_length(const POS &pos, Item *a)
Definition: item_func.h:1694
Definition: item_func.h:1996
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.h:2005
Item_func_bit_neg(const POS &pos, Item *a)
Definition: item_func.h:2003
longlong int_op() override
Performs the operation on integers to produce a result of type INT_RESULT.
Definition: item_func.cc:3105
bool binary_result_requires_binary_second_arg() const override
Definition: item_func.h:1998
String * str_op(String *str) override
Performs the operation on binary strings to produce a result of type STRING_RESULT.
Definition: item_func.cc:3113
const char * func_name() const override
Definition: item_func.h:2004
Definition: item_func.h:1904
const char * func_name() const override
Definition: item_func.h:1908
String * str_op(String *str) override
Performs the operation on binary strings to produce a result of type STRING_RESULT.
Definition: item_func.h:1912
longlong int_op() override
Performs the operation on integers to produce a result of type INT_RESULT.
Definition: item_func.h:1911
Item_func_bit_or(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1906
Base class for all the bit functions that work with two binary arguments: '&', '|',...
Definition: item_func.h:1889
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:3171
bool binary_result_requires_binary_second_arg() const override
Definition: item_func.h:1891
longlong eval_int_op(Int_func int_func)
Template function used to evaluate the bitwise operation over int arguments.
Definition: item_func.cc:3145
Item_func_bit_two_param(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1900
Definition: item_func.h:1930
const char * func_name() const override
Definition: item_func.h:1934
Item_func_bit_xor(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1932
longlong int_op() override
Performs the operation on integers to produce a result of type INT_RESULT.
Definition: item_func.h:1937
String * str_op(String *str) override
Performs the operation on binary strings to produce a result of type STRING_RESULT.
Definition: item_func.h:1938
Definition: item_func.h:1827
virtual longlong int_op()=0
Performs the operation on integers to produce a result of type INT_RESULT.
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.h:1851
String tmp_value
Buffer storing the determined value.
Definition: item_func.h:1832
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:2921
virtual bool binary_result_requires_binary_second_arg() const =0
my_decimal * val_decimal(my_decimal *decimal_value) override
Definition: item_func.cc:2981
double val_real() override
Definition: item_func.cc:2965
String * val_str(String *str) override
Definition: item_func.cc:2989
Item_result hybrid_type
Stores the Item's result type. Can only be INT_RESULT or STRING_RESULT.
Definition: item_func.h:1830
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override
Definition: item_func.h:1855
longlong val_int() override
Definition: item_func.cc:2949
Item_func_bit(const POS &pos, Item *a)
Definition: item_func.h:1841
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:1844
Item_func_bit(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1840
bool get_time(MYSQL_TIME *ltime) override
Definition: item_func.h:1861
Definition: item_func.h:2496
const char * func_name() const override
Definition: item_func.h:2501
longlong val_int() override
INFORMATION_SCHEMA picks metadata from DD using system views.
Definition: item_func.cc:8950
Item_func_can_access_column(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_func.h:2498
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2502
Internal functions used by INFORMATION_SCHEMA implementation to check if user have access to given da...
Definition: item_func.h:2398
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2404
Item_func_can_access_database(const POS &pos, Item *a)
Definition: item_func.h:2400
longlong val_int() override
INFORMATION_SCHEMA picks metadata from DD using system views.
Definition: item_func.cc:8542
const char * func_name() const override
Definition: item_func.h:2403
Definition: item_func.h:2460
Item_func_can_access_event(const POS &pos, Item *a)
Definition: item_func.h:2462
const char * func_name() const override
Definition: item_func.h:2464
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2465
longlong val_int() override
INFORMATION_SCHEMA picks metadata from DD using system views.
Definition: item_func.cc:8835
Definition: item_func.h:2471
const char * func_name() const override
Definition: item_func.h:2476
Item_func_can_access_resource_group(const POS &pos, Item *a)
Definition: item_func.h:2473
longlong val_int() override
INFORMATION_SCHEMA picks metadata from DD using system views.
Definition: item_func.cc:8887
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2477
Definition: item_func.h:2447
Item_func_can_access_routine(const POS &pos, PT_item_list *list)
Definition: item_func.h:2449
const char * func_name() const override
Definition: item_func.h:2452
longlong val_int() override
INFORMATION_SCHEMA picks metadata from DD using system views.
Definition: item_func.cc:8752
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2453
Definition: item_func.h:2410
const char * func_name() const override
Definition: item_func.h:2415
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2416
Item_func_can_access_table(const POS &pos, Item *a, Item *b)
Definition: item_func.h:2412
longlong val_int() override
INFORMATION_SCHEMA picks metadata from new DD using system views.
Definition: item_func.cc:8666
Definition: item_func.h:2434
Item_func_can_access_trigger(const POS &pos, Item *a, Item *b)
Definition: item_func.h:2436
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2440
longlong val_int() override
INFORMATION_SCHEMA picks metadata from new DD using system views.
Definition: item_func.cc:8730
const char * func_name() const override
Definition: item_func.h:2439
Definition: item_func.h:2422
const char * func_name() const override
Definition: item_func.h:2427
Item_func_can_access_user(const POS &pos, Item *a, Item *b)
Definition: item_func.h:2424
longlong val_int() override
INFORMATION_SCHEMA picks metadata from new DD using system views.
Definition: item_func.cc:8689
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2428
Definition: item_func.h:2484
longlong val_int() override
INFORMATION_SCHEMA picks metadata from DD using system views.
Definition: item_func.cc:9025
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2490
Item_func_can_access_view(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:2486
const char * func_name() const override
Definition: item_func.h:2489
Definition: item_func.h:1376
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:1385
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_func.h:1384
const char * func_name() const override
Definition: item_func.h:1380
enum Functype functype() const override
Definition: item_func.h:1386
double real_op() override
Performs the operation that this functions implements when the result type is REAL.
Definition: item_func.cc:3332
my_decimal * decimal_op(my_decimal *) override
Performs the operation that this functions implements when the result type is DECIMAL.
Definition: item_func.cc:3338
Item_func_ceiling(const POS &pos, Item *a)
Definition: item_func.h:1379
longlong int_op() override
Performs the operation that this functions implements when the result type is INT.
Definition: item_func.cc:3311
Item_func_ceiling(Item *a)
Definition: item_func.h:1378
Definition: item_func.h:1702
Item_func_char_length(Item *a)
Definition: item_func.h:1706
Item_func_char_length(const POS &pos, Item *a)
Definition: item_func.h:1707
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:1710
longlong val_int() override
Definition: item_func.cc:4108
const char * func_name() const override
Definition: item_func.h:1709
String value
Definition: item_func.h:1703
Definition: item_func.h:1716
const char * func_name() const override
Definition: item_func.h:1722
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:1723
longlong val_int() override
Definition: item_func.cc:4119
Item_func_coercibility(const POS &pos, Item *a)
Definition: item_func.h:1718
Definition: item_func.h:995
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:1455
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:1001
Item_int_func super
Definition: item_func.h:996
const char * func_name() const override
Definition: item_func.h:1005
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:1009
Item_func_connection_id(const POS &pos)
Definition: item_func.h:999
longlong val_int() override
Definition: item_func.cc:1467
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_func.cc:1448
bool fix_fields(THD *thd, Item **ref) override
Definition: item_func.cc:1461
Definition: item_func.h:1337
enum Functype functype() const override
Definition: item_func.h:1342
const char * func_name() const override
Definition: item_func.h:1341
double val_real() override
Definition: item_func.cc:2887
Item_func_cos(const POS &pos, Item *a)
Definition: item_func.h:1339
Definition: item_func.h:1361
const char * func_name() const override
Definition: item_func.h:1365
enum Functype functype() const override
Definition: item_func.h:1366
double val_real() override
Definition: item_func.cc:2908
Item_func_cot(const POS &pos, Item *a)
Definition: item_func.h:1363
Definition: item_func.h:1487
Item_func_degrees(const POS &pos, Item *a)
Definition: item_func.h:1489
const char * func_name() const override
Definition: item_func.h:1491
enum Functype functype() const override
Definition: item_func.h:1492
Definition: item_func.h:1161
Item_func_div_base(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1163
Item_func_div_base(Item *a, Item *b)
Definition: item_func.h:1165
uint m_prec_increment
Definition: item_func.h:1172
my_decimal * decimal_op(my_decimal *) override
Performs the operation that this functions implements when the result type is DECIMAL.
Definition: item_func.cc:2401
double real_op() override
Performs the operation that this functions implements when the result type is REAL.
Definition: item_func.cc:2386
longlong int_op() override
Performs the operation that this functions implements when the result type is INT.
Definition: item_func.cc:2491
enum Functype functype() const override
Definition: item_func.h:1169
Definition: item_func.h:1184
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:2551
void set_numeric_type() override
Check arguments to determine the data type for a numeric function of two arguments.
Definition: item_func.cc:2562
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_func.h:1196
Item_func_div_int(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1187
enum_field_types default_data_type() const override
Get the default data (output) type for the specific item.
Definition: item_func.h:1190
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:1197
void result_precision() override
Definition: item_func.cc:2437
const char * func_name() const override
Definition: item_func.h:1189
Item_func_div_int(Item *a, Item *b)
Definition: item_func.h:1186
Definition: item_func.h:1175
void result_precision() override
Definition: item_func.cc:2420
Item_func_div(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1177
const char * func_name() const override
Definition: item_func.h:1179
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:2457
Definition: item_func.h:1256
double val_real() override
Definition: item_func.cc:2830
enum Functype functype() const override
Definition: item_func.h:1261
const char * func_name() const override
Definition: item_func.h:1260
Item_func_exp(const POS &pos, Item *a)
Definition: item_func.h:1258
Definition: item_func.h:1770
String value
Definition: item_func.h:1771
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:4238
const char * func_name() const override
Definition: item_func.h:1778
String tmp
Definition: item_func.h:1771
Item_func_field(const POS &pos, PT_item_list *opt_list)
Definition: item_func.h:1775
longlong val_int() override
Definition: item_func.cc:4195
Item_result cmp_type
Definition: item_func.h:1772
Definition: item_func.h:1804
const CHARSET_INFO * compare_collation() const override
Definition: item_func.h:1820
const char * func_name() const override
Definition: item_func.h:1818
Item_func_find_in_set(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1815
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:4287
longlong val_int() override
Definition: item_func.cc:4315
String value2
Definition: item_func.h:1805
DTCollation cmp_collation
Definition: item_func.h:1812
uint m_enum_value
Definition: item_func.h:1811
String value
Definition: item_func.h:1805
Definition: item_func.h:1389
my_decimal * decimal_op(my_decimal *) override
Performs the operation that this functions implements when the result type is DECIMAL.
Definition: item_func.cc:3374
const char * func_name() const override
Definition: item_func.h:1393
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:1398
double real_op() override
Performs the operation that this functions implements when the result type is REAL.
Definition: item_func.cc:3368
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_func.h:1397
Item_func_floor(const POS &pos, Item *a)
Definition: item_func.h:1392
Item_func_floor(Item *a)
Definition: item_func.h:1391
longlong int_op() override
Performs the operation that this functions implements when the result type is INT.
Definition: item_func.cc:3347
enum Functype functype() const override
Definition: item_func.h:1399
Definition: item_func.h:3845
Item_func_found_rows(const POS &pos)
Definition: item_func.h:3849
longlong val_int() override
Definition: item_func.cc:8303
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:3858
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:3854
Item_int_func super
Definition: item_func.h:3846
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_func.cc:8292
const char * func_name() const override
Definition: item_func.h:3853
Definition: item_func.h:2706
const char * func_name() const override
Definition: item_func.h:2716
longlong val_int() override
INFORMATION_SCHEMA picks metadata from DD using system views.
Definition: item_func.cc:9861
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2711
Item_func_get_dd_index_sub_part_length(const POS &pos, PT_item_list *list)
Definition: item_func.h:2708
Definition: item_func.h:2269
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:2289
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2281
Item_int_func super
Definition: item_func.h:2270
Item_func_get_lock(const POS &pos, Item *a, Item *b)
Definition: item_func.h:2275
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_func.cc:5336
const char * func_name() const override
Definition: item_func.h:2280
String value
Definition: item_func.h:2272
bool is_non_const_over_literals(uchar *) override
Definition: item_func.h:2288
longlong val_int() override
Get a user level lock.
Definition: item_func.cc:5361
Definition: item_func.h:3345
const enum_var_type var_scope
Definition: item_func.h:3346
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:3364
longlong get_sys_var_safe(THD *thd, sys_var *var)
Definition: item_func.cc:7088
longlong cached_llval
Definition: item_func.h:3347
enum Functype functype() const override
Definition: item_func.h:3363
Item_func_get_system_var(const System_variable_tracker &, enum_var_type scope)
Definition: item_func.cc:6988
double val_real() override
Definition: item_func.cc:7279
String cached_strval
Definition: item_func.h:3349
const char * func_name() const override
Definition: item_func.h:3382
longlong val_int() override
Definition: item_func.cc:7103
bool eq(const Item *item, bool binary_cmp) const override
Definition: item_func.cc:7366
const System_variable_tracker var_tracker
Definition: item_func.h:3353
query_id_t used_query_id
Definition: item_func.h:3351
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:3384
bool cached_null_value
Definition: item_func.h:3350
uchar cache_present
Definition: item_func.h:3352
double cached_dval
Definition: item_func.h:3348
enum Item_result result_type() const override
Definition: item_func.h:3371
bool is_non_const_over_literals(uchar *) override
Definition: item_func.h:3370
String * val_str(String *) override
Definition: item_func.cc:7186
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:6994
my_decimal * val_decimal(my_decimal *dec_buf) override
Definition: item_func.h:3378
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_func.cc:7378
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:7035
Definition: item_func.h:3223
Name_string name
Definition: item_func.h:3228
enum Item_result result_type() const override
Definition: item_func.cc:6889
double val_real() override
Definition: item_func.cc:6544
const CHARSET_INFO * charset_for_protocol() override
Definition: item_func.cc:6578
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:6741
Item_func_get_user_var(Name_string a)
Definition: item_func.h:3230
String * val_str(String *str) override
Definition: item_func.cc:6516
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:6800
enum Functype functype() const override
Definition: item_func.h:3235
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:6893
Settable_routine_parameter * get_settable_routine_parameter() override
Definition: item_func.h:3260
user_var_entry * var_entry
Definition: item_func.h:3224
bool eq(const Item *item, bool binary_cmp) const override
Definition: item_func.cc:6900
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_func.cc:6880
const char * func_name() const override
Definition: item_func.h:3252
bool set_value(THD *thd, sp_rcontext *ctx, Item **it) override
Definition: item_func.cc:6912
longlong val_int() override
Definition: item_func.cc:6564
Item_result m_cached_result_type
Definition: item_func.h:3225
my_decimal * val_decimal(my_decimal *) override
Definition: item_func.cc:6554
void update_used_tables() override
Updates used tables, not null tables information and accumulates properties up the item tree,...
Definition: item_func.h:3244
Item_func_get_user_var(const POS &pos, Name_string a)
Definition: item_func.h:3232
bool is_non_const_over_literals(uchar *) override
Definition: item_func.h:3253
Definition: item_func.h:1747
Item_func_instr(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1749
const char * func_name() const override
Definition: item_func.h:1752
Definition: item_func.h:1369
bool resolve_type_inner(THD *thd) override
Resolve type of function after all arguments have had their data types resolved.
Definition: item_func.cc:3249
Item_func_int_val(const POS &pos, Item *a)
Definition: item_func.h:1372
Item_func_int_val(Item *a)
Definition: item_func.h:1371
Definition: item_func.h:2615
longlong val_int() override
Definition: item_func.cc:9375
Item_func_internal_auto_increment(const POS &pos, PT_item_list *list)
Definition: item_func.h:2617
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2622
const char * func_name() const override
Definition: item_func.h:2621
enum Functype functype() const override
Definition: item_func.h:2619
Definition: item_func.h:2540
const char * func_name() const override
Definition: item_func.h:2546
Item_func_internal_avg_row_length(const POS &pos, PT_item_list *list)
Definition: item_func.h:2542
longlong val_int() override
Definition: item_func.cc:9326
enum Functype functype() const override
Definition: item_func.h:2544
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2547
Definition: item_func.h:2630
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2637
const char * func_name() const override
Definition: item_func.h:2636
Item_func_internal_checksum(const POS &pos, PT_item_list *list)
Definition: item_func.h:2632
longlong val_int() override
Definition: item_func.cc:9387
enum Functype functype() const override
Definition: item_func.h:2634
Definition: item_func.h:2600
enum Functype functype() const override
Definition: item_func.h:2604
const char * func_name() const override
Definition: item_func.h:2606
Item_func_internal_data_free(const POS &pos, PT_item_list *list)
Definition: item_func.h:2602
longlong val_int() override
Definition: item_func.cc:9363
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2607
Definition: item_func.h:2555
longlong val_int() override
Definition: item_func.cc:9336
const char * func_name() const override
Definition: item_func.h:2561
Item_func_internal_data_length(const POS &pos, PT_item_list *list)
Definition: item_func.h:2557
enum Functype functype() const override
Definition: item_func.h:2559
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2562
Definition: item_func.h:2674
longlong val_int() override
Definition: item_func.cc:9729
Item_func_internal_dd_char_length(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:2676
const char * func_name() const override
Definition: item_func.h:2680
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2681
Definition: item_func.h:2689
Item_func_internal_get_view_warning_or_error(const POS &pos, PT_item_list *list)
Definition: item_func.h:2691
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2698
longlong val_int() override
Definition: item_func.cc:9801
const char * func_name() const override
Definition: item_func.h:2695
Definition: item_func.h:2657
longlong val_int() override
INFORMATION_SCHEMA picks metadata from DD using system views.
Definition: item_func.cc:9462
Item_func_internal_index_column_cardinality(const POS &pos, PT_item_list *list)
Definition: item_func.h:2659
enum Functype functype() const override
Definition: item_func.h:2662
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2667
const char * func_name() const override
Definition: item_func.h:2664
Definition: item_func.h:2585
Item_func_internal_index_length(const POS &pos, PT_item_list *list)
Definition: item_func.h:2587
longlong val_int() override
Definition: item_func.cc:9354
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2592
enum Functype functype() const override
Definition: item_func.h:2589
const char * func_name() const override
Definition: item_func.h:2591
Internal function used by INFORMATION_SCHEMA implementation to check if a role is enabled.
Definition: item_func.h:3931
longlong val_int() override
Internal function used by INFORMATION_SCHEMA implementation to check if a role enabled.
Definition: item_func.cc:9965
enum Functype functype() const override
Definition: item_func.h:3937
Item_func_internal_is_enabled_role(const POS &pos, Item *a, Item *b)
Definition: item_func.h:3933
const char * func_name() const override
Definition: item_func.h:3936
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:3938
Internal function used by INFORMATION_SCHEMA implementation to check if a role is a mandatory role.
Definition: item_func.h:3911
longlong val_int() override
Internal function used by INFORMATION_SCHEMA implementation to check if a role is a mandatory role.
Definition: item_func.cc:9918
Item_func_internal_is_mandatory_role(const POS &pos, Item *a, Item *b)
Definition: item_func.h:3913
const char * func_name() const override
Definition: item_func.h:3916
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:3920
enum Functype functype() const override
Definition: item_func.h:3919
Definition: item_func.h:2644
Item_func_internal_keys_disabled(const POS &pos, Item *a)
Definition: item_func.h:2646
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2650
longlong val_int() override
INFORMATION_SCHEMA picks metadata from DD using system views.
Definition: item_func.cc:9414
const char * func_name() const override
Definition: item_func.h:2649
Definition: item_func.h:2570
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2577
const char * func_name() const override
Definition: item_func.h:2576
Item_func_internal_max_data_length(const POS &pos, PT_item_list *list)
Definition: item_func.h:2572
enum Functype functype() const override
Definition: item_func.h:2574
longlong val_int() override
Definition: item_func.cc:9345
Definition: item_func.h:2525
enum Functype functype() const override
Definition: item_func.h:2529
longlong val_int() override
Definition: item_func.cc:9314
Item_func_internal_table_rows(const POS &pos, PT_item_list *list)
Definition: item_func.h:2527
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2532
const char * func_name() const override
Definition: item_func.h:2531
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:2870
Item_func_internal_tablespace_autoextend_size(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:2859
longlong val_int() override
Definition: item_func.cc:9672
enum Functype functype() const override
Definition: item_func.h:2863
const char * func_name() const override
Definition: item_func.h:2866
Definition: item_func.h:2897
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2910
Item_func_internal_tablespace_data_free(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:2899
longlong val_int() override
Definition: item_func.cc:9705
const char * func_name() const override
Definition: item_func.h:2906
enum Functype functype() const override
Definition: item_func.h:2903
Definition: item_func.h:2797
Item_func_internal_tablespace_extent_size(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:2799
enum Functype functype() const override
Definition: item_func.h:2803
longlong val_int() override
Definition: item_func.cc:9625
const char * func_name() const override
Definition: item_func.h:2806
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2810
Definition: item_func.h:2757
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2770
enum Functype functype() const override
Definition: item_func.h:2763
const char * func_name() const override
Definition: item_func.h:2766
Item_func_internal_tablespace_free_extents(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:2759
longlong val_int() override
Definition: item_func.cc:9595
Definition: item_func.h:2721
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2729
enum Functype functype() const override
Definition: item_func.h:2726
Item_func_internal_tablespace_id(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:2723
longlong val_int() override
Definition: item_func.cc:9562
const char * func_name() const override
Definition: item_func.h:2728
Definition: item_func.h:2817
longlong val_int() override
Definition: item_func.cc:9640
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2830
const char * func_name() const override
Definition: item_func.h:2826
Item_func_internal_tablespace_initial_size(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:2819
enum Functype functype() const override
Definition: item_func.h:2823
Definition: item_func.h:2737
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2750
enum Functype functype() const override
Definition: item_func.h:2743
longlong val_int() override
Definition: item_func.cc:9577
Item_func_internal_tablespace_logfile_group_number(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:2739
const char * func_name() const override
Definition: item_func.h:2746
Definition: item_func.h:2837
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2850
Item_func_internal_tablespace_maximum_size(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:2839
const char * func_name() const override
Definition: item_func.h:2846
longlong val_int() override
Definition: item_func.cc:9655
enum Functype functype() const override
Definition: item_func.h:2843
Definition: item_func.h:2777
longlong val_int() override
Definition: item_func.cc:9610
enum Functype functype() const override
Definition: item_func.h:2783
Item_func_internal_tablespace_total_extents(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:2779
const char * func_name() const override
Definition: item_func.h:2786
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2790
Definition: item_func.h:2877
Item_func_internal_tablespace_version(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:2879
longlong val_int() override
Definition: item_func.cc:9688
const char * func_name() const override
Definition: item_func.h:2886
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2890
enum Functype functype() const override
Definition: item_func.h:2883
Definition: item_func.h:3683
longlong val_int() override
Check if user level lock is free.
Definition: item_func.cc:5564
Item_func_is_free_lock(const POS &pos, Item *a)
Definition: item_func.h:3689
const char * func_name() const override
Definition: item_func.h:3693
Item_int_func super
Definition: item_func.h:3684
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:3694
bool is_non_const_over_literals(uchar *) override
Definition: item_func.h:3700
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:3701
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_func.cc:5540
String value
Definition: item_func.h:3686
Definition: item_func.h:3710
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:3721
Item_func_is_used_lock(const POS &pos, Item *a)
Definition: item_func.h:3716
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:3728
Item_int_func super
Definition: item_func.h:3711
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_func.cc:5586
String value
Definition: item_func.h:3713
const char * func_name() const override
Definition: item_func.h:3720
longlong val_int() override
Check if user level lock is used and return connection id of owner.
Definition: item_func.cc:5607
bool is_non_const_over_literals(uchar *) override
Definition: item_func.h:3727
Definition: item_func.h:2508
Item_func_is_visible_dd_object(const POS &pos, Item *a, Item *b)
Definition: item_func.h:2512
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2518
Item_func_is_visible_dd_object(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_func.h:2514
const char * func_name() const override
Definition: item_func.h:2517
longlong val_int() override
Skip hidden tables, columns, indexes and index elements.
Definition: item_func.cc:9158
Item_func_is_visible_dd_object(const POS &pos, Item *a)
Definition: item_func.h:2510
Definition: item_func.h:2015
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2031
const char * func_name() const override
Definition: item_func.h:2025
Item_func_last_insert_id(const POS &pos, Item *a)
Definition: item_func.h:2021
Item_func_last_insert_id()
Definition: item_func.h:2019
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_func.cc:5631
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:2027
longlong val_int() override
Definition: item_func.cc:5639
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:2036
Item_int_func super
Definition: item_func.h:2016
Item_func_last_insert_id(const POS &pos)
Definition: item_func.h:2020
Definition: item_func.h:1678
Item_func_length(const POS &pos, Item *a)
Definition: item_func.h:1682
String value
Definition: item_func.h:1679
const char * func_name() const override
Definition: item_func.h:1684
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:1685
longlong val_int() override
Definition: item_func.cc:4097
Definition: item_func.h:1264
double val_real() override
Gateway to natural LOG function.
Definition: item_func.cc:2770
enum Functype functype() const override
Definition: item_func.h:1269
const char * func_name() const override
Definition: item_func.h:1268
Item_func_ln(const POS &pos, Item *a)
Definition: item_func.h:1266
Definition: item_func.h:1730
String value1
Definition: item_func.h:1731
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:4174
longlong val_int() override
Definition: item_func.cc:4134
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:4125
Item_func_locate(Item *a, Item *b)
Definition: item_func.h:1734
Item_func_locate(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_func.h:1737
const char * func_name() const override
Definition: item_func.h:1740
Item_func_locate(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1735
String value2
Definition: item_func.h:1731
Definition: item_func.h:1288
double val_real() override
Definition: item_func.cc:2819
enum Functype functype() const override
Definition: item_func.h:1293
const char * func_name() const override
Definition: item_func.h:1292
Item_func_log10(const POS &pos, Item *a)
Definition: item_func.h:1290
Definition: item_func.h:1281
double val_real() override
Definition: item_func.cc:2807
const char * func_name() const override
Definition: item_func.h:1285
Item_func_log2(const POS &pos, Item *a)
Definition: item_func.h:1283
Definition: item_func.h:1272
Item_func_log(const POS &pos, Item *a)
Definition: item_func.h:1274
double val_real() override
Extended but so slower LOG function.
Definition: item_func.cc:2787
Item_func_log(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1275
const char * func_name() const override
Definition: item_func.h:1277
enum Functype functype() const override
Definition: item_func.h:1278
Definition: item_func.h:3396
uint flags
Definition: item_func.h:3401
FT_INFO * ft_handler
Definition: item_func.h:3407
DTCollation cmp_collation
Definition: item_func.h:3406
bool fix_index(const THD *thd)
Definition: item_func.cc:7639
Item * key_item() const override
Definition: item_func.h:3456
uint key
Definition: item_func.h:3401
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:7771
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:3472
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:3651
void set_master(Item_func_match *item)
Set master MATCH function and adjust used_in_where_only value.
Definition: item_func.h:3549
longlong val_int() override
Definition: item_func.h:3462
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:3415
Ft_hints * hints
Fulltext index hints, initialized for master MATCH function only.
Definition: item_func.h:3619
const char * func_name() const override
Definition: item_func.h:3458
bool docid_in_result()
Check whether FT result contains the document ID.
Definition: item_func.h:3519
Item * concat_ws
Definition: item_func.h:3416
bool can_skip_ranking()
Check if ranking is not needed.
Definition: item_func.h:3586
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_func.h:3445
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:3570
Table_ref * table_ref
Definition: item_func.h:3408
bool ordered_result()
Check whether FT result is ordered on rank.
Definition: item_func.h:3501
bool init_search(THD *thd)
Initialize searching within full-text index.
Definition: item_func.cc:7412
String value
Definition: item_func.h:3417
enum Functype functype() const override
Definition: item_func.h:3457
bool eq(const Item *, bool binary_cmp) const override
Definition: item_func.cc:7722
void set_hints(JOIN *join, uint ft_flag, ha_rows ft_limit, bool no_cond)
Set FT hints.
Definition: item_func.cc:7794
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:3428
Item * against
Definition: item_func.h:3400
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:7488
bool fix_fields(THD *thd, Item **ref) override
Definition: item_func.cc:7516
bool used_in_where_only
true if MATCH function is used in WHERE condition only.
Definition: item_func.h:3632
String search_value
Definition: item_func.h:3418
bool is_simple_expression()
Check if this MATCH function is a simple expression in WHERE condition.
Definition: item_func.h:3610
Ft_hints * get_hints()
Returns pointer to Ft_hints object belonging to master MATCH function.
Definition: item_func.h:3559
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:3405
void set_simple_expression(bool val)
Set flag that the function is a simple expression.
Definition: item_func.h:3599
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_func.cc:7384
double val_real() override
Definition: item_func.cc:7739
bool simple_expression
Flag is true when MATCH function is used as a simple expression in WHERE condition,...
Definition: item_func.h:3625
Item_func_match * get_master()
Returns master MATCH function.
Definition: item_func.h:3539
Item_real_func super
Definition: item_func.h:3397
ulonglong get_count()
Get number of matching rows from FT handler.
Definition: item_func.h:3487
Definition: item_func.h:1581
Item_func_max(const POS &pos, PT_item_list *opt_list)
Definition: item_func.h:1583
const char * func_name() const override
Definition: item_func.h:1585
enum Functype functype() const override
Definition: item_func.h:1586
Definition: item_func.h:1502
bool compare_as_dates() const
Returns true if arguments to this function should be compared as dates.
Definition: item_func.cc:3794
longlong int_op() override
Performs the operation that this functions implements when the result type is INT.
Definition: item_func.cc:3928
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:3709
my_decimal * val_decimal(my_decimal *) override
Definition: item_func.cc:3992
bool date_op(MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override
Performs the operation that this functions implements when the result type is MYSQL_TYPE_DATE or MYSQ...
Definition: item_func.cc:3885
String * str_op(String *) override
Performs the operation that this functions implements when the result type is a string type.
Definition: item_func.cc:3828
double val_real() override
Definition: item_func.cc:3978
longlong val_int() override
Definition: item_func.cc:3985
bool resolve_type_inner(THD *thd) override
Resolve type of function after all arguments have had their data types resolved.
Definition: item_func.cc:3742
Item_func_min_max(const POS &pos, PT_item_list *opt_list, bool is_least_func)
Definition: item_func.h:1504
bool has_temporal_arg() const
Returns true if at least one of the arguments was of temporal type.
Definition: item_func.h:1538
String m_string_buf
Definition: item_func.h:1543
double real_op() override
Performs the operation that this functions implements when the result type is REAL.
Definition: item_func.cc:3909
bool cmp_datetimes(longlong *value)
Compare arguments as datetime values.
Definition: item_func.cc:3799
Item * temporal_item
Definition: item_func.h:1551
enum Item_result result_type() const override
Definition: item_func.h:1524
bool cmp_times(longlong *value)
Compare arguments as time values.
Definition: item_func.cc:3817
const bool m_is_least_func
True if LEAST function, false if GREATEST.
Definition: item_func.h:1542
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:1530
bool time_op(MYSQL_TIME *ltime) override
Definition: item_func.cc:3894
my_decimal * decimal_op(my_decimal *) override
Performs the operation that this functions implements when the result type is DECIMAL.
Definition: item_func.cc:3953
enum_field_types default_data_type() const override
Get the default data (output) type for the specific item.
Definition: item_func.h:1518
void set_numeric_type() override
Definition: item_func.h:1523
Definition: item_func.h:1573
enum Functype functype() const override
Definition: item_func.h:1578
const char * func_name() const override
Definition: item_func.h:1577
Item_func_min(const POS &pos, PT_item_list *opt_list)
Definition: item_func.h:1575
Definition: item_func.h:1129
enum Functype functype() const override
Definition: item_func.h:1143
my_decimal * decimal_op(my_decimal *) override
See Item_func_plus::decimal_op for comments.
Definition: item_func.cc:2235
longlong int_op() override SUPPRESS_UBSAN
Performs the operation that this functions implements when the result type is INT.
Definition: item_func.cc:2184
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:2166
Item_func_minus(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1132
Item_func_minus(Item *a, Item *b)
Definition: item_func.h:1131
double real_op() override
Performs the operation that this functions implements when the result type is REAL.
Definition: item_func.cc:2173
const char * func_name() const override
Definition: item_func.h:1135
Definition: item_func.h:1200
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_func.h:1211
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:1212
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:2656
void result_precision() override
Definition: item_func.cc:2640
Item_func_mod(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1203
const char * func_name() const override
Definition: item_func.h:1208
enum Functype functype() const override
Definition: item_func.h:1213
double real_op() override
Performs the operation that this functions implements when the result type is REAL.
Definition: item_func.cc:2603
Item_func_mod(Item *a, Item *b)
Definition: item_func.h:1202
my_decimal * decimal_op(my_decimal *) override
Performs the operation that this functions implements when the result type is DECIMAL.
Definition: item_func.cc:2618
longlong int_op() override
Performs the operation that this functions implements when the result type is INT.
Definition: item_func.cc:2568
Definition: item_func.h:1146
const char * func_name() const override
Definition: item_func.h:1151
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:1157
void result_precision() override
Definition: item_func.cc:2373
double real_op() override
Performs the operation that this functions implements when the result type is REAL.
Definition: item_func.cc:2260
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_func.h:1156
my_decimal * decimal_op(my_decimal *) override
See Item_func_plus::decimal_op for comments.
Definition: item_func.cc:2358
longlong int_op() override
Performs the operation that this functions implements when the result type is INT.
Definition: item_func.cc:2272
Item_func_mul(Item *a, Item *b)
Definition: item_func.h:1148
enum Functype functype() const override
Definition: item_func.h:1158
Item_func_mul(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1149
Definition: item_func.h:1216
Item_func_neg(const POS &pos, Item *a)
Definition: item_func.h:1219
const char * func_name() const override
Definition: item_func.h:1224
enum Functype functype() const override
Definition: item_func.h:1225
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:2701
double real_op() override
Performs the operation that this functions implements when the result type is REAL.
Definition: item_func.cc:2663
longlong int_op() override
Performs the operation that this functions implements when the result type is INT.
Definition: item_func.cc:2669
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:1229
my_decimal * decimal_op(my_decimal *) override
Performs the operation that this functions implements when the result type is DECIMAL.
Definition: item_func.cc:2684
void fix_num_length_and_dec() override
Definition: item_func.cc:2694
Item_func_neg(Item *a)
Definition: item_func.h:1218
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_func.h:1228
Definition: item_func.h:881
Item_func_num1(Item *a, Item *b)
Definition: item_func.h:886
Item_func_num1(const POS &pos, Item *a)
Definition: item_func.h:884
void fix_num_length_and_dec() override
Definition: item_func.cc:1552
String * str_op(String *) override
Performs the operation that this functions implements when the result type is a string type.
Definition: item_func.h:892
Item_func_num1(Item *a)
Definition: item_func.h:883
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:1522
Item_func_num1(const POS &pos, Item *a, Item *b)
Definition: item_func.h:887
bool date_op(MYSQL_TIME *, my_time_flags_t) override
Performs the operation that this functions implements when the result type is MYSQL_TYPE_DATE or MYSQ...
Definition: item_func.h:896
bool time_op(MYSQL_TIME *) override
Definition: item_func.h:900
Definition: item_func.h:788
virtual void set_numeric_type()=0
longlong val_int() override
Definition: item_func.cc:1724
virtual longlong int_op()=0
Performs the operation that this functions implements when the result type is INT.
String * val_str(String *str) override
Definition: item_func.cc:1643
Item_func_numhybrid(const POS &pos, Item *a)
Definition: item_func.h:796
Item_func_numhybrid(mem_root_deque< Item * > *list)
Definition: item_func.h:810
enum_field_types default_data_type() const override
Get the default data (output) type for the specific item.
Definition: item_func.h:820
bool resolve_type_inner(THD *thd) override
Resolve type of function after all arguments have had their data types resolved.
Definition: item_func.cc:1635
bool is_null() override
The method allows to determine nullness of a complex expression without fully evaluating it,...
Definition: item_func.h:877
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override
Definition: item_func.cc:1807
virtual bool date_op(MYSQL_TIME *ltime, my_time_flags_t fuzzydate)=0
Performs the operation that this functions implements when the result type is MYSQL_TYPE_DATE or MYSQ...
Item_func_numhybrid(Item *a)
Definition: item_func.h:793
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:1610
my_decimal * val_decimal(my_decimal *) override
Definition: item_func.cc:1765
enum Item_result result_type() const override
Definition: item_func.h:819
virtual bool time_op(MYSQL_TIME *ltime)=0
double val_real() override
Definition: item_func.cc:1685
Item_func_numhybrid(const POS &pos, PT_item_list *list)
Definition: item_func.h:814
void fix_num_length_and_dec() override
Definition: item_func.cc:851
Item_func_numhybrid(const POS &pos, Item *a, Item *b)
Definition: item_func.h:805
Item_result hybrid_type
Definition: item_func.h:790
virtual my_decimal * decimal_op(my_decimal *decimal_value)=0
Performs the operation that this functions implements when the result type is DECIMAL.
virtual double real_op()=0
Performs the operation that this functions implements when the result type is REAL.
bool get_time(MYSQL_TIME *ltime) override
Definition: item_func.cc:1824
virtual String * str_op(String *)=0
Performs the operation that this functions implements when the result type is a string type.
Item_func_numhybrid(Item *a, Item *b)
Definition: item_func.h:801
Definition: item_func.h:1795
const char * func_name() const override
Definition: item_func.h:1801
longlong val_int() override
Definition: item_func.cc:4264
String value
Definition: item_func.h:1796
Item_func_ord(const POS &pos, Item *a)
Definition: item_func.h:1799
Definition: item_func.h:1113
const char * func_name() const override
Definition: item_func.h:1119
Item_func_plus(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1116
Item_func_plus(Item *a, Item *b)
Definition: item_func.h:1115
double real_op() override
Performs the operation that this functions implements when the result type is REAL.
Definition: item_func.cc:2061
longlong int_op() override SUPPRESS_UBSAN
Performs the operation that this functions implements when the result type is INT.
Definition: item_func.cc:2072
my_decimal * decimal_op(my_decimal *) override
Calculate plus of two decimals.
Definition: item_func.cc:2128
enum Functype functype() const override
Definition: item_func.h:1126
Definition: item_func.h:1304
double val_real() override
Definition: item_func.cc:2845
Item_func_pow(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1306
const char * func_name() const override
Definition: item_func.h:1308
enum Functype functype() const override
Definition: item_func.h:1309
Definition: item_func.h:1495
Item_func_radians(const POS &pos, Item *a)
Definition: item_func.h:1497
const char * func_name() const override
Definition: item_func.h:1499
enum Functype functype() const override
Definition: item_func.h:1500
Definition: item_func.h:1425
double val_real() override
Definition: item_func.cc:3649
void seed_random(Item *val)
Definition: item_func.cc:3603
bool fix_fields(THD *thd, Item **ref) override
Definition: item_func.cc:3619
const char * func_name() const override
Definition: item_func.h:1436
bool first_eval
Definition: item_func.h:1429
Item_real_func super
Definition: item_func.h:1426
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_func.cc:3586
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:1452
rand_struct * m_rand
Definition: item_func.h:1428
Item_func_rand(const POS &pos)
Definition: item_func.h:1432
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:1443
Item_func_rand(const POS &pos, Item *a)
Definition: item_func.h:1431
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:3613
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_func.h:1448
Definition: item_func.h:2325
longlong val_int() override
Release all user level lock held by connection.
Definition: item_func.cc:5523
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_func.cc:5509
Item_int_func super
Definition: item_func.h:2326
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2334
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:2339
Item_func_release_all_locks(const POS &pos)
Definition: item_func.h:2329
const char * func_name() const override
Definition: item_func.h:2333
bool is_non_const_over_literals(uchar *) override
Definition: item_func.h:2338
Definition: item_func.h:2298
Item_int_func super
Definition: item_func.h:2299
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:2316
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2309
String value
Definition: item_func.h:2301
const char * func_name() const override
Definition: item_func.h:2308
longlong val_int() override
Release a user level lock.
Definition: item_func.cc:5465
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_func.cc:5441
bool is_non_const_over_literals(uchar *) override
Definition: item_func.h:2315
Item_func_release_lock(const POS &pos, Item *a)
Definition: item_func.h:2304
Definition: item_func.h:1404
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:3383
my_decimal * decimal_op(my_decimal *) override
Performs the operation that this functions implements when the result type is DECIMAL.
Definition: item_func.cc:3571
bool truncate
Definition: item_func.h:1405
Item_func_round(Item *a, Item *b, bool trunc_arg)
Definition: item_func.h:1408
longlong int_op() override
Performs the operation that this functions implements when the result type is INT.
Definition: item_func.cc:3505
enum Functype functype() const override
Definition: item_func.h:1420
const char * func_name() const override
Definition: item_func.h:1413
Item_func_round(const POS &pos, Item *a, Item *b, bool trunc_arg)
Definition: item_func.h:1410
double real_op() override
Performs the operation that this functions implements when the result type is REAL.
Definition: item_func.cc:3477
Definition: item_func.h:3737
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:3747
Item_func_row_count(const POS &pos)
Definition: item_func.h:3741
const char * func_name() const override
Definition: item_func.h:3746
Item_int_func super
Definition: item_func.h:3738
longlong val_int() override
Definition: item_func.cc:7947
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_func.cc:7937
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:3751
This class is used to implement operations like SET @variable or @variable:= expression.
Definition: item_func.h:3155
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_func.cc:5867
void print_assignment(const THD *thd, String *str, enum_query_type query_type) const
Definition: item_func.cc:6391
type_conversion_status save_in_field(Field *field, bool no_conversions, bool can_use_result_field)
Definition: item_func.cc:6467
enum Item_result result_type() const override
Definition: item_func.h:3196
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:5923
Item_func_set_user_var(const POS &pos, Name_string a, Item *b)
Definition: item_func.h:3172
enum Item_result cached_result_type
Definition: item_func.h:3156
enum Functype functype() const override
Definition: item_func.h:3184
Item_func_set_user_var(Name_string a, Item *b)
Definition: item_func.h:3171
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:3216
void make_field(Send_field *tmp_field) override
Definition: item_func.cc:6419
String * val_str(String *str) override
Definition: item_func.cc:6376
void save_org_in_field(Field *field) override
Definition: item_func.h:3208
bool set_entry(THD *thd, bool create_if_not_exists)
Definition: item_func.cc:5881
bool fix_fields(THD *thd, Item **ref) override
Definition: item_func.cc:5909
bool null_item
Definition: item_func.h:3160
union Item_func_set_user_var::@52 save_result
bool update()
Update user variable from value in save_result.
Definition: item_func.cc:6314
void save_item_result(Item *item)
Evaluate and store item's result.
Definition: item_func.cc:6283
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:6067
longlong val_int() override
Definition: item_func.cc:6369
my_decimal * val_decimal(my_decimal *) override
Definition: item_func.cc:6383
double vreal
Definition: item_func.h:3163
my_decimal decimal_buff
Definition: item_func.h:3159
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:6407
my_decimal * vdec
Definition: item_func.h:3165
String value
Definition: item_func.h:3158
double val_real() override
Definition: item_func.cc:6362
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:6400
bool check(bool use_result_field)
This functions is invoked on SET @variable or @variable:= expression.
Definition: item_func.cc:6239
const char * func_name() const override
Definition: item_func.h:3203
Name_string name
Definition: item_func.h:3169
Item_func_set_user_var(THD *thd, Item_func_set_user_var *item)
Definition: item_func.h:3175
String * vstr
Definition: item_func.h:3164
longlong vint
Definition: item_func.h:3162
Definition: item_func.h:1974
Item_func_shift_left(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1976
const char * func_name() const override
Definition: item_func.h:1978
longlong int_op() override
Performs the operation on integers to produce a result of type INT_RESULT.
Definition: item_func.h:1981
String * str_op(String *str) override
Performs the operation on binary strings to produce a result of type STRING_RESULT.
Definition: item_func.h:1982
Definition: item_func.h:1985
String * str_op(String *str) override
Performs the operation on binary strings to produce a result of type STRING_RESULT.
Definition: item_func.h:1993
Item_func_shift_right(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1987
longlong int_op() override
Performs the operation on integers to produce a result of type INT_RESULT.
Definition: item_func.h:1992
const char * func_name() const override
Definition: item_func.h:1989
Definition: item_func.h:1959
String * eval_str_op(String *str)
Template function that evaluates the bitwise shift operation over binary string arguments.
Definition: item_func.cc:3034
bool binary_result_requires_binary_second_arg() const override
Definition: item_func.h:1961
Item_func_shift(const POS &pos, Item *a, Item *b)
Definition: item_func.h:1970
longlong eval_int_op()
Template function that evaluates the bitwise shift operation over integer arguments.
Definition: item_func.cc:3008
Definition: item_func.h:1465
longlong val_int() override
Definition: item_func.cc:3688
Item_func_sign(const POS &pos, Item *a)
Definition: item_func.h:1467
enum Functype functype() const override
Definition: item_func.h:1469
const char * func_name() const override
Definition: item_func.h:1468
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:3682
Definition: item_func.h:1345
Item_func_sin(const POS &pos, Item *a)
Definition: item_func.h:1347
double val_real() override
Definition: item_func.cc:2894
const char * func_name() const override
Definition: item_func.h:1349
enum Functype functype() const override
Definition: item_func.h:1350
Definition: item_func.h:2081
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2105
Item_func_sleep(const POS &pos, Item *a)
Definition: item_func.h:2085
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:2098
const char * func_name() const override
Definition: item_func.h:2088
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:2095
Item_int_func super
Definition: item_func.h:2082
longlong val_int() override
This function is just used to create tests with time gaps.
Definition: item_func.cc:5778
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_func.cc:5768
Definition: item_func.h:3769
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:8434
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_func.cc:7970
double val_real() override
Definition: item_func.cc:8129
bool change_context_processor(uchar *arg) override
Definition: item_func.h:3822
longlong val_int() override
Definition: item_func.cc:8123
String * val_str(String *str) override
Definition: item_func.cc:8151
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_func.cc:7994
Name_resolution_context * context
Definition: item_func.h:3773
my_decimal * val_decimal(my_decimal *dec_buf) override
Definition: item_func.cc:8145
bool is_expensive_processor(uchar *) override
Definition: item_func.h:3788
bool m_deterministic
true when function execution is deterministic
Definition: item_func.h:3781
const char * func_name() const override
Definition: item_func.cc:8003
Field * sp_result_field
The result field of the concrete stored function.
Definition: item_func.h:3779
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:3836
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:8061
bool val_json(Json_wrapper *result) override
Get a JSON value from an Item.
Definition: item_func.cc:8166
Field * tmp_table_field(TABLE *t_arg) override
Definition: item_func.cc:8308
bool is_expensive() override
Definition: item_func.h:3833
void update_used_tables() override
Updates used tables, not null tables information and accumulates properties up the item tree,...
Definition: item_func.cc:8427
bool get_time(MYSQL_TIME *ltime) override
Definition: item_func.cc:8140
Item_result result_type() const override
Definition: item_func.cc:8285
Field * get_sp_result_field()
Definition: item_func.h:3835
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:7954
bool execute_impl(THD *thd)
Execute function and store the return value in the field.
Definition: item_func.cc:8233
bool resolve_type(THD *thd) override
Initialize local members with values from the Field interface.
Definition: item_func.cc:8109
Item_func super
Definition: item_func.h:3770
void make_field(Send_field *tmp_field) override
Definition: item_func.cc:8278
bool execute()
Execute function & store value in field.
Definition: item_func.cc:8191
bool sp_check_access(THD *thd)
Checks if requested access to function can be granted to user.
Definition: item_func.cc:8329
enum Functype functype() const override
Definition: item_func.h:3828
sp_name * m_name
The name of the stored function.
Definition: item_func.h:3775
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override
Definition: item_func.cc:8135
table_map get_initial_pseudo_tables() const override
Must not be called before the procedure is resolved, i.e.
Definition: item_func.cc:8025
bool fix_fields(THD *thd, Item **ref) override
Definition: item_func.cc:8339
sp_head * m_sp
Pointer to actual function instance (null when not resolved or executing)
Definition: item_func.h:3777
Definition: item_func.h:1296
Item_func_sqrt(const POS &pos, Item *a)
Definition: item_func.h:1298
const char * func_name() const override
Definition: item_func.h:1300
double val_real() override
Definition: item_func.cc:2837
enum Functype functype() const override
Definition: item_func.h:1301
Definition: item_func.h:1353
enum Functype functype() const override
Definition: item_func.h:1358
double val_real() override
Definition: item_func.cc:2901
Item_func_tan(const POS &pos, Item *a)
Definition: item_func.h:1355
const char * func_name() const override
Definition: item_func.h:1357
Definition: item_func.h:2207
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override
Definition: item_func.h:2216
double val_real() override
Definition: item_func.cc:4987
Item_func_udf_decimal(const POS &pos, udf_func *udf_arg, PT_item_list *opt_list)
Definition: item_func.h:2209
longlong val_int() override
Definition: item_func.cc:4979
enum Item_result result_type() const override
Definition: item_func.h:2222
bool get_time(MYSQL_TIME *ltime) override
Definition: item_func.h:2219
String * val_str(String *str) override
Definition: item_func.cc:4999
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:5009
my_decimal * val_decimal(my_decimal *) override
Definition: item_func.cc:4995
Definition: item_func.h:2158
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override
Definition: item_func.h:2174
Item_func_udf_float(const POS &pos, udf_func *udf_arg, PT_item_list *opt_list)
Definition: item_func.h:2160
my_decimal * val_decimal(my_decimal *dec_buf) override
Definition: item_func.h:2166
longlong val_int() override
Definition: item_func.h:2162
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2180
bool get_time(MYSQL_TIME *ltime) override
Definition: item_func.h:2177
double val_real() override
Definition: item_func.cc:4951
String * val_str(String *str) override
Definition: item_func.cc:4958
Definition: item_func.h:2187
bool get_time(MYSQL_TIME *ltime) override
Definition: item_func.h:2199
enum Item_result result_type() const override
Definition: item_func.h:2200
String * val_str(String *str) override
Definition: item_func.cc:4971
Item_func_udf_int(const POS &pos, udf_func *udf_arg, PT_item_list *opt_list)
Definition: item_func.h:2189
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2201
double val_real() override
Definition: item_func.h:2192
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override
Definition: item_func.h:2196
longlong val_int() override
Definition: item_func.cc:4966
Definition: item_func.h:2226
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:5017
Item_func_udf_str(const POS &pos, udf_func *udf_arg, PT_item_list *opt_list)
Definition: item_func.h:2228
String * val_str(String *) override
Definition: item_func.cc:5026
bool get_time(MYSQL_TIME *ltime) override
Definition: item_func.h:2259
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override
Definition: item_func.h:2256
my_decimal * val_decimal(my_decimal *dec_buf) override
Definition: item_func.h:2249
enum Item_result result_type() const override
Definition: item_func.h:2262
longlong val_int() override
Definition: item_func.h:2241
double val_real() override
Definition: item_func.h:2232
Definition: item_func.h:1475
Item_func_units(const POS &pos, Item *a, double mul_arg, double add_arg)
Definition: item_func.h:1479
double add
Definition: item_func.h:1476
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:3695
double val_real() override
Definition: item_func.cc:3702
double mul
Definition: item_func.h:1476
Definition: item_func.h:3869
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:3892
Item_int_func super
Definition: item_func.h:3870
longlong val_int() override
Definition: item_func.cc:8472
Item_func_uuid_short(const POS &pos)
Definition: item_func.h:3873
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:3883
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:3878
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_func.cc:8464
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_func.h:3882
const char * func_name() const override
Definition: item_func.h:3876
Definition: item_func.h:1755
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:1763
const char * func_name() const override
Definition: item_func.h:1760
Item_func_validate_password_strength(const POS &pos, Item *a)
Definition: item_func.h:1757
longlong val_int() override
Definition: item_func.cc:4187
Definition: item_func.h:3897
Item_static_string_func super
Definition: item_func.h:3898
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_func.cc:8480
Item_func_version(const POS &pos)
Definition: item_func.cc:9720
Definition: item_func.h:102
bool agg_arg_charsets_for_string_result(DTCollation &c, Item **items, uint nitems, int item_sep=1)
Definition: item_func.h:528
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:535
bool param_type_uses_non_param(THD *thd, enum_field_types def=MYSQL_TYPE_VARCHAR)
Definition: item_func.cc:607
Item_func(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_func.h:356
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:573
Item_func()
Definition: item_func.h:318
my_decimal * val_decimal(my_decimal *) override
Definition: item_func.cc:813
void 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:704
virtual bool have_rev_func() const
Definition: item_func.h:482
Item ** args
Array of pointers to arguments.
Definition: item_func.h:109
virtual enum Functype functype() const
Definition: item_func.h:317
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:994
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:730
Item_func(const POS &pos)
Definition: item_func.h:320
void update_used_tables() override
Updates used tables, not null tables information and accumulates properties up the item tree,...
Definition: item_func.cc:711
bool check_valid_arguments_processor(uchar *) override
Definition: item_func.h:627
Item_func(Item *a, Item *b)
Definition: item_func.h:332
bool fix_func_arg(THD *, Item **arg)
Definition: item_func.cc:429
bool alloc_args(MEM_ROOT *mem_root, unsigned num_args)
Allocates space for the given number of arguments, if needed.
Definition: item_func.h:116
virtual Item * get_arg(uint i)
Get the i'th argument of the function that this object represents.
Definition: item_func.h:445
longlong val_int_from_real()
Definition: item_func.cc:2019
void traverse_cond(Cond_traverser traverser, void *arg, traverse_order order) override
Definition: item_func.cc:623
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:475
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:681
bool is_null() override
The method allows to determine nullness of a complex expression without fully evaluating it,...
Definition: item_func.h:509
Item_func(const POS &pos, Item *a)
Definition: item_func.h:327
Functype
Definition: item_func.h:185
@ DATEADD_FUNC
Definition: item_func.h:290
@ TRIG_COND_FUNC
Definition: item_func.h:228
@ SP_CROSSES_FUNC
Definition: item_func.h:212
@ ROLLUP_GROUP_ITEM_FUNC
Definition: item_func.h:239
@ NOT_ALL_FUNC
Definition: item_func.h:225
@ LIKE_FUNC
Definition: item_func.h:196
@ FALSE_FUNC
Definition: item_func.h:307
@ SP_EXTERIORRING
Definition: item_func.h:220
@ PLUS_FUNC
Definition: item_func.h:242
@ SIGN_FUNC
Definition: item_func.h:252
@ NULLIF_FUNC
Definition: item_func.h:269
@ YEAR_FUNC
Definition: item_func.h:271
@ NOT_FUNC
Definition: item_func.h:224
@ MINUS_FUNC
Definition: item_func.h:243
@ HOUR_FUNC
Definition: item_func.h:281
@ TIME_TO_SEC_FUNC
Definition: item_func.h:295
@ LOG_FUNC
Definition: item_func.h:254
@ XOR_FUNC
Definition: item_func.h:202
@ COND_OR_FUNC
Definition: item_func.h:201
@ JSON_CONTAINS
Definition: item_func.h:301
@ JSON_UNQUOTE_FUNC
Definition: item_func.h:303
@ GREATEST_FUNC
Definition: item_func.h:298
@ SP_EQUALS_FUNC
Definition: item_func.h:208
@ LN_FUNC
Definition: item_func.h:255
@ FROM_UNIXTIME_FUNC
Definition: item_func.h:291
@ COND_AND_FUNC
Definition: item_func.h:200
@ EQ_FUNC
Definition: item_func.h:187
@ FUNC_SP
Definition: item_func.h:234
@ ROUND_FUNC
Definition: item_func.h:247
@ NOW_FUNC
Definition: item_func.h:226
@ FROM_DAYS_FUNC
Definition: item_func.h:227
@ TRUE_FUNC
Definition: item_func.h:306
@ LEAST_FUNC
Definition: item_func.h:300
@ IN_FUNC
Definition: item_func.h:204
@ CONVERT_TZ_FUNC
Definition: item_func.h:292
@ LE_FUNC
Definition: item_func.h:191
@ COLLATE_FUNC
Definition: item_func.h:231
@ GSYSVAR_FUNC
Definition: item_func.h:237
@ MATCH_FUNC
Definition: item_func.h:195
@ FT_FUNC
Definition: item_func.h:194
@ GUSERVAR_FUNC
Definition: item_func.h:230
@ LT_FUNC
Definition: item_func.h:190
@ MOD_FUNC
Definition: item_func.h:267
@ SP_COVEREDBY_FUNC
Definition: item_func.h:215
@ NEG_FUNC
Definition: item_func.h:236
@ DD_INTERNAL_FUNC
Definition: item_func.h:241
@ ISNULL_FUNC
Definition: item_func.h:197
@ SP_TOUCHES_FUNC
Definition: item_func.h:211
@ SP_DISJOINT_FUNC
Definition: item_func.h:209
@ ISNOTNULLTEST_FUNC
Definition: item_func.h:207
@ DAY_FUNC
Definition: item_func.h:276
@ LOG10_FUNC
Definition: item_func.h:256
@ UDF_FUNC
Definition: item_func.h:235
@ MULT_EQUAL_FUNC
Definition: item_func.h:205
@ MAKEDATE_FUNC
Definition: item_func.h:273
@ COT_FUNC
Definition: item_func.h:260
@ ISTRUTH_FUNC
Definition: item_func.h:199
@ DATE_FUNC
Definition: item_func.h:280
@ TIMESTAMPDIFF_FUNC
Definition: item_func.h:296
@ SECOND_FUNC
Definition: item_func.h:283
@ EXP_FUNC
Definition: item_func.h:263
@ SP_STARTPOINT
Definition: item_func.h:218
@ SP_POINTN
Definition: item_func.h:221
@ EXTRACT_FUNC
Definition: item_func.h:232
@ MONTH_FUNC
Definition: item_func.h:274
@ TO_SECONDS_FUNC
Definition: item_func.h:279
@ ABS_FUNC
Definition: item_func.h:250
@ BETWEEN
Definition: item_func.h:203
@ IF_FUNC
Definition: item_func.h:268
@ MICROSECOND_FUNC
Definition: item_func.h:284
@ STRCMP_FUNC
Definition: item_func.h:305
@ QUARTER_FUNC
Definition: item_func.h:287
@ NE_FUNC
Definition: item_func.h:189
@ TABLE_FUNC
Definition: item_func.h:240
@ MEMBER_OF_FUNC
Definition: item_func.h:304
@ POW_FUNC
Definition: item_func.h:251
@ GE_FUNC
Definition: item_func.h:192
@ SP_GEOMETRYN
Definition: item_func.h:222
@ MONTHNAME_FUNC
Definition: item_func.h:275
@ TYPECAST_FUNC
Definition: item_func.h:233
@ SUSERVAR_FUNC
Definition: item_func.h:229
@ EQUAL_FUNC
Definition: item_func.h:188
@ GT_FUNC
Definition: item_func.h:193
@ RADIANS_FUNC
Definition: item_func.h:262
@ UNKNOWN_FUNC
Definition: item_func.h:186
@ SP_WITHIN_FUNC
Definition: item_func.h:213
@ SP_INTERIORRINGN
Definition: item_func.h:223
@ SIN_FUNC
Definition: item_func.h:257
@ SP_INTERSECTS_FUNC
Definition: item_func.h:210
@ LAST_DAY_FUNC
Definition: item_func.h:293
@ WEEKDAY_FUNC
Definition: item_func.h:289
@ ADDTIME_FUNC
Definition: item_func.h:286
@ DEGREES_FUNC
Definition: item_func.h:261
@ JSON_OVERLAPS
Definition: item_func.h:302
@ DAYOFYEAR_FUNC
Definition: item_func.h:285
@ SQRT_FUNC
Definition: item_func.h:249
@ GROUPING_FUNC
Definition: item_func.h:238
@ ISNOTNULL_FUNC
Definition: item_func.h:198
@ ASIN_FUNC
Definition: item_func.h:264
@ TRUNCATE_FUNC
Definition: item_func.h:248
@ TAN_FUNC
Definition: item_func.h:258
@ ATAN_FUNC
Definition: item_func.h:265
@ DAYNAME_FUNC
Definition: item_func.h:277
@ DATETIME_LITERAL
Definition: item_func.h:297
@ MINUTE_FUNC
Definition: item_func.h:282
@ ACOS_FUNC
Definition: item_func.h:266
@ COS_FUNC
Definition: item_func.h:259
@ INTERVAL_FUNC
Definition: item_func.h:206
@ MUL_FUNC
Definition: item_func.h:244
@ SP_COVERS_FUNC
Definition: item_func.h:216
@ CEILING_FUNC
Definition: item_func.h:246
@ TO_DAYS_FUNC
Definition: item_func.h:278
@ WEEK_FUNC
Definition: item_func.h:288
@ YEARWEEK_FUNC
Definition: item_func.h:272
@ SP_CONTAINS_FUNC
Definition: item_func.h:214
@ FLOOR_FUNC
Definition: item_func.h:253
@ CASE_FUNC
Definition: item_func.h:270
@ COALESCE_FUNC
Definition: item_func.h:299
@ SP_ENDPOINT
Definition: item_func.h:219
@ DIV_FUNC
Definition: item_func.h:245
@ SP_OVERLAPS_FUNC
Definition: item_func.h:217
@ UNIX_TIMESTAMP_FUNC
Definition: item_func.h:294
Item * m_embedded_arguments[2]
Definition: item_func.h:112
virtual uint argument_count() const
Definition: item_func.h:133
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:563
void print_op(const THD *thd, String *str, enum_query_type query_type) const
Definition: item_func.cc:740
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:1012
Item_func(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_func.h:399
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:650
Item * gc_subst_transformer(uchar *arg) override
Transformer function for GC substitution.
Definition: item_func.cc:1300
table_map used_tables_cache
Value used in calculation of result of used_tables()
Definition: item_func.h:171
bool param_type_is_default(THD *thd, uint start, uint end, enum_field_types def=MYSQL_TYPE_VARCHAR)
Definition: item_func.h:147
optimize_type
Definition: item_func.h:309
@ OPTIMIZE_NONE
Definition: item_func.h:310
@ OPTIMIZE_EQUAL
Definition: item_func.h:314
@ OPTIMIZE_NULL
Definition: item_func.h:313
@ OPTIMIZE_KEY
Definition: item_func.h:311
@ OPTIMIZE_OP
Definition: item_func.h:312
void set_used_tables(table_map map)
Definition: item_func.h:479
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:633
bool has_timestamp_args()
Definition: item_func.h:577
bool agg_arg_charsets(DTCollation &c, Item **items, uint nitems, uint flags, int item_sep)
Definition: item_func.h:518
virtual bool is_deprecated() const
Definition: item_func.h:502
Item_func(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e, Item *f)
Definition: item_func.h:424
enum Type type() const override
Definition: item_func.h:316
virtual Item * key_item() const
Definition: item_func.h:483
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:519
Item_func(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:377
virtual bool may_have_named_parameters() const
Named parameters are allowed in a parameter list.
Definition: item_func.h:727
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:986
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:495
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:724
bool get_arg0_date(MYSQL_TIME *ltime, my_time_flags_t fuzzy_date)
Definition: item_func.h:503
Item_func(Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:364
bool fix_fields(THD *, Item **ref) override
Definition: item_func.cc:397
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:451
bool set_arguments(mem_root_deque< Item * > *list, bool context_free)
Copy arguments from list to args array.
Definition: item_func.cc:320
Item_func(const POS &pos, Item *a, Item *b)
Definition: item_func.h:339
virtual optimize_type select_optimize(const THD *)
Definition: item_func.h:481
bool has_date_args()
Definition: item_func.h:587
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_func.cc:352
virtual const Item * get_arg(uint i) const
Get the i'th argument of the function that this object represents.
Definition: item_func.h:448
uint arg_count
How many arguments in 'args'.
Definition: item_func.h:132
Item_func(Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_func.h:385
Item ** arguments() const
Definition: item_func.h:134
Field * tmp_table_field(TABLE *t_arg) override
Definition: item_func.cc:771
const Item_field * contributes_to_filter(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:891
bool has_time_args()
Definition: item_func.h:598
bool is_non_const_over_literals(uchar *) override
Definition: item_func.h:728
bool agg_arg_charsets_for_comparison(DTCollation &c, Item **items, uint nitems, int item_sep=1)
Definition: item_func.h:538
virtual void fix_num_length_and_dec()
Definition: item_func.cc:837
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:869
void signal_invalid_argument_for_log()
Definition: item_func.cc:861
bool has_datetime_args()
Definition: item_func.h:609
void signal_divide_by_null()
Definition: item_func.cc:853
double check_float_overflow(double value)
Throw an error if the input double number is not finite, i.e.
Definition: item_func.h:555
bool get_arg0_time(MYSQL_TIME *ltime)
Definition: item_func.h:506
Item_func(Item *a)
Definition: item_func.h:323
bool eq(const Item *item, bool binary_cmp) const override
Definition: item_func.cc:754
Item_func(mem_root_deque< Item * > *list)
Definition: item_func.h:435
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:477
table_map not_null_tables_cache
Value used in calculation of result of not_null_tables()
Definition: item_func.h:173
virtual Item * set_arg(THD *, uint, Item *)
Definition: item_func.h:449
bool null_on_null
Affects how to determine that NULL argument implies a NULL function return.
Definition: item_func.h:164
void print_args(const THD *thd, String *str, uint from, enum_query_type query_type) const
Definition: item_func.cc:732
Item_func(Item *a, Item *b, Item *c, Item *d, Item *e, Item *f)
Definition: item_func.h:408
table_map used_tables() const override
Definition: item_func.h:476
virtual bool contains_only_equi_join_condition() const
Whether this Item is an equi-join condition.
Definition: item_func.h:660
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:612
Item * transform(Item_transformer transformer, uchar *arg) override
Transform an Item_func object with a transformer callback function.
Definition: item_func.cc:656
virtual bool resolve_type_inner(THD *)
Resolve type of function after all arguments have had their data types resolved.
Definition: item_func.h:465
Item_func(Item *a, Item *b, Item *c)
Definition: item_func.h:345
uint allowed_arg_cols
Definition: item_func.h:169
Definition: item_func.h:935
String * val_str(String *str) override
Definition: item_func.cc:1440
Item_int_func(const POS &pos, Item *a)
Definition: item_func.h:943
Item_int_func(Item *a, Item *b, Item *c)
Definition: item_func.h:954
Item_int_func(const POS &pos)
Definition: item_func.h:938
Item_int_func(Item *a, Item *b)
Definition: item_func.h:947
Item_int_func(const POS &pos, PT_item_list *opt_list)
Definition: item_func.h:973
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override
Definition: item_func.h:983
double val_real() override
Definition: item_func.cc:1434
Item_int_func(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_func.h:957
Item_int_func()
Definition: item_func.h:937
Item_int_func(const POS &pos, Item *a, Item *b)
Definition: item_func.h:950
Item_int_func(Item *a)
Definition: item_func.h:942
Item_int_func(mem_root_deque< Item * > *list)
Definition: item_func.h:970
Item_int_func(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:965
enum Item_result result_type() const override
Definition: item_func.h:987
Item_int_func(Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:962
Item_int_func(THD *thd, Item_int_func *item)
Definition: item_func.h:978
bool get_time(MYSQL_TIME *ltime) override
Definition: item_func.h:986
Definition: item_func.h:2382
Item_master_pos_wait(const POS &pos, Item *a, Item *b)
Definition: item_func.h:2384
Item_master_pos_wait(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_func.h:2386
Item_master_pos_wait(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:2388
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:5104
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:1249
Definition: item_func.h:907
String * str_op(String *) override
Performs the operation that this functions implements when the result type is a string type.
Definition: item_func.h:921
Item_num_op(const POS &pos, Item *a, Item *b)
Definition: item_func.h:910
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:915
bool date_op(MYSQL_TIME *, my_time_flags_t) override
Performs the operation that this functions implements when the result type is MYSQL_TYPE_DATE or MYSQ...
Definition: item_func.h:925
Item_num_op(Item *a, Item *b)
Definition: item_func.h:909
void set_numeric_type() override
Check arguments to determine the data type for a numeric function of two arguments.
Definition: item_func.cc:1477
bool time_op(MYSQL_TIME *) override
Definition: item_func.h:929
Definition: item_func.h:747
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override
Definition: item_func.h:779
longlong val_int() override
Definition: item_func.h:775
my_decimal * val_decimal(my_decimal *decimal_value) override
Definition: item_func.cc:829
bool get_time(MYSQL_TIME *ltime) override
Definition: item_func.h:782
Item_real_func(Item *a, Item *b)
Definition: item_func.h:759
String * val_str(String *str) override
Definition: item_func.cc:821
Item_real_func(mem_root_deque< Item * > *list)
Definition: item_func.h:765
Item_real_func(const POS &pos)
Definition: item_func.h:750
Item_real_func(const POS &pos, Item *a)
Definition: item_func.h:755
enum Item_result result_type() const override
Definition: item_func.h:785
Item_real_func()
Definition: item_func.h:749
Item_real_func(const POS &pos, PT_item_list *list)
Definition: item_func.h:769
Item_real_func(Item *a)
Definition: item_func.h:754
Item_real_func(const POS &pos, Item *a, Item *b)
Definition: item_func.h:761
Item with result field.
Definition: item.h:5626
int raise_decimal_overflow()
Definition: item.h:5697
longlong raise_integer_overflow()
Definition: item.h:5692
longlong llrint_with_overflow_check(double realval)
Definition: item.h:5677
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item.cc:10681
double raise_float_overflow()
Definition: item.h:5687
virtual const char * func_name() const =0
A wrapper Item that normally returns its parameter, but becomes NULL when processing rows for rollup.
Definition: item_func.h:1614
const char * func_name() const override
Definition: item_func.h:1634
bool rollup_null() const
Definition: item_func.h:1659
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:4074
table_map used_tables() const override
Definition: item_func.h:1635
String * val_str(String *str) override
Definition: item_func.cc:4041
bool val_json(Json_wrapper *result) override
Get a JSON value from an Item.
Definition: item_func.cc:4063
const int m_min_rollup_level
Definition: item_func.h:1674
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:1649
my_decimal * val_decimal(my_decimal *dec) override
Definition: item_func.cc:4052
Item_result result_type() const override
Definition: item_func.h:1648
Item_rollup_group_item(int min_rollup_level, Item *inner_item)
Definition: item_func.h:1616
void set_current_rollup_level(int level)
Definition: item_func.h:1668
int min_rollup_level() const
Definition: item_func.h:1671
int m_current_rollup_level
Definition: item_func.h:1675
longlong val_int() override
Definition: item_func.cc:4030
Item * inner_item()
Definition: item_func.h:1657
const Item * inner_item() const
Definition: item_func.h:1658
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override
Definition: item_func.cc:4000
bool get_time(MYSQL_TIME *ltime) override
Definition: item_func.cc:4010
enum Functype functype() const override
Definition: item_func.h:1662
void update_used_tables() override
Updates used tables, not null tables information and accumulates properties up the item tree,...
Definition: item_func.h:1644
double val_real() override
Definition: item_func.cc:4019
bool eq(const Item *item, bool binary_cmp) const override
Definition: item_func.cc:4091
Definition: item_func.h:2350
const char * func_name() const override
Definition: item_func.h:2364
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:2373
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_func.cc:5033
Item_source_pos_wait(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_func.h:2359
Item_source_pos_wait(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_func.h:2357
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:2365
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:5046
String value
Definition: item_func.h:2352
Item_int_func super
Definition: item_func.h:2351
Item_source_pos_wait(const POS &pos, Item *a, Item *b)
Definition: item_func.h:2355
Utility mixin class to be able to walk() only parts of item trees.
Definition: item.h:740
Definition: item_func.h:1045
Item_typecast_decimal(const POS &pos, Item *a, int len, int dec)
Definition: item_func.h:1047
longlong val_int() override
Definition: item_func.cc:1949
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:1987
const char * func_name() const override
Definition: item_func.h:1067
enum Item_result result_type() const override
Definition: item_func.h:1061
String * val_str(String *str) override
Definition: item_func.cc:1934
my_decimal * val_decimal(my_decimal *) override
Definition: item_func.cc:1957
bool get_time(MYSQL_TIME *ltime) override
Definition: item_func.h:1057
double val_real() override
Definition: item_func.cc:1941
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override
Definition: item_func.h:1054
enum Functype functype() const override
Definition: item_func.h:1068
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:1062
Class used to implement CAST to floating-point data types.
Definition: item_func.h:1076
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:2053
enum Item_result result_type() const override
Definition: item_func.h:1092
Item_typecast_real(const POS &pos, Item *a, bool as_double)
Definition: item_func.h:1078
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:1093
Item_typecast_real(Item *a)
Definition: item_func.h:1085
String * val_str(String *str) override
Definition: item_func.cc:2001
double val_real() override
Definition: item_func.cc:2005
longlong val_int() override
Definition: item_func.h:1088
const char * func_name() const override
Definition: item_func.h:1096
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override
Definition: item_func.cc:2036
bool get_time(MYSQL_TIME *ltime) override
Definition: item_func.cc:2041
enum Functype functype() const override
Definition: item_func.h:1097
my_decimal * val_decimal(my_decimal *decimal_value) override
Definition: item_func.cc:2045
Definition: item_func.h:1019
const char * func_name() const override
Definition: item_func.h:1024
Item_typecast_signed(const POS &pos, Item *a)
Definition: item_func.h:1021
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:1841
longlong val_int() override
Definition: item_func.cc:1871
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:1848
enum Functype functype() const override
Definition: item_func.h:1029
Definition: item_func.h:1032
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:1899
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.cc:1906
Item_typecast_unsigned(const POS &pos, Item *a)
Definition: item_func.h:1034
longlong val_int() override
Definition: item_func.cc:1911
const char * func_name() const override
Definition: item_func.h:1037
enum Functype functype() const override
Definition: item_func.h:1042
Definition: item_func.h:2112
bool is_expensive() override
Definition: item_func.h:2135
Item_func super
Definition: item_func.h:2113
Item_udf_func(const POS &pos, udf_func *udf_arg, PT_item_list *opt_list)
Definition: item_func.h:2120
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_func.cc:4925
const char * func_name() const override
Definition: item_func.h:2127
bool may_have_named_parameters() const override
Named parameters are allowed in a parameter list.
Definition: item_func.h:2148
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:2139
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:4940
bool fix_fields(THD *thd, Item **ref) override
Definition: item_func.cc:4469
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_func.cc:4934
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:2129
~Item_udf_func() override=default
Item_result result_type() const override
Definition: item_func.h:2134
udf_handler udf
Definition: item_func.h:2116
enum Functype functype() const override
Definition: item_func.h:2128
bool is_expensive_processor(uchar *) override
Definition: item_func.h:2117
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:2155
Definition: item_func.h:3274
bool get_date(MYSQL_TIME *, my_time_flags_t) override
Definition: item_func.h:3289
double val_real() override
Definition: item_func.cc:6962
void set_value(const char *str, size_t length, const CHARSET_INFO *cs)
Definition: item_func.cc:6954
longlong val_int() override
Definition: item_func.cc:6967
bool fix_fields(THD *thd, Item **ref) override
Definition: item_func.cc:6923
String * val_str(String *str) override
Definition: item_func.cc:6972
Name_string name
Definition: item_func.h:3275
Item_user_var_as_out_param(const POS &pos, Name_string a)
Definition: item_func.h:3279
enum Type type() const override
Definition: item_func.h:3284
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:6982
bool get_time(MYSQL_TIME *) override
Definition: item_func.h:3293
void set_null_value(const CHARSET_INFO *cs)
Definition: item_func.cc:6948
my_decimal * val_decimal(my_decimal *decimal_buffer) override
Definition: item_func.cc:6977
user_var_entry * entry
Definition: item_func.h:3276
Common class for: Item_func_get_system_var Item_func_get_user_var Item_func_set_user_var.
Definition: item_func.h:2923
Item_var_func(const POS &pos, Item *a)
Definition: item_func.h:2931
bool get_time(MYSQL_TIME *ltime) override
Definition: item_func.h:2936
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override
Definition: item_func.h:2933
Item_var_func()
Definition: item_func.h:2925
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:2939
Item_var_func(THD *thd, Item_var_func *item)
Definition: item_func.h:2928
Item_var_func(Item *a)
Definition: item_func.h:2930
Item_var_func(const POS &pos)
Definition: item_func.h:2926
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:853
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:3367
void set_nullable(bool nullable)
Definition: item.h:3470
DTCollation collation
Character set and collation properties assigned for this Item.
Definition: item.h:3374
bool get_time_from_decimal(MYSQL_TIME *ltime)
Convert val_decimal() to time in MYSQL_TIME.
Definition: item.cc:1559
bool get_time_from_string(MYSQL_TIME *ltime)
Convert val_str() to time in MYSQL_TIME.
Definition: item.cc:1540
virtual bool propagate_type(THD *thd, const Type_properties &type)
Propagate data type specifications into parameters and user variables.
Definition: item.h:1209
virtual bool get_time(MYSQL_TIME *ltime)=0
void set_data_type_float()
Set the data type of the Item to be single precision floating point.
Definition: item.h:1446
static Item_result type_to_result(enum_field_types type)
Definition: item.h:970
virtual table_map used_tables() const
Definition: item.h:2199
bool get_time_from_real(MYSQL_TIME *ltime)
Convert val_real() to time in MYSQL_TIME.
Definition: item.cc:1550
bool get_date_from_decimal(MYSQL_TIME *ltime, my_time_flags_t flags)
Convert val_decimal() to date in MYSQL_TIME.
Definition: item.cc:1472
void add_accum_properties(const Item *item)
Add more accumulated properties to an Item.
Definition: item.h:3241
void set_data_type_double()
Set the data type of the Item to be double precision floating point.
Definition: item.h:1438
enum_field_types data_type() const
Retrieve the derived data type of the Item.
Definition: item.h:1362
Item_name_string item_name
Name from query.
Definition: item.h:3375
bool fixed
True if item has been resolved.
Definition: item.h:3458
enum_const_item_cache
How to cache constant JSON data.
Definition: item.h:927
@ CACHE_NONE
Don't cache.
Definition: item.h:929
virtual Item_result result_type() const
Definition: item.h:1332
bool null_value
True if item is null.
Definition: item.h:3495
Type
Definition: item.h:889
@ FIELD_ITEM
Definition: item.h:891
@ FUNC_ITEM
Definition: item.h:892
@ STRING_ITEM
Definition: item.h:894
bool get_time_from_non_temporal(MYSQL_TIME *ltime)
Convert a non-temporal type to time.
Definition: item.cc:1615
void set_rollup_expr()
Set the property: this item (tree) contains a reference to a ROLLUP expr.
Definition: item.h:3282
uint8 m_accum_properties
Definition: item.h:3535
void set_accum_properties(const Item *item)
Set accumulated properties for an Item.
Definition: item.h:3236
my_decimal * val_decimal_from_real(my_decimal *decimal_value)
Definition: item.cc:328
bool unsigned_flag
Definition: item.h:3496
virtual bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzydate)=0
virtual bool is_null()
The method allows to determine nullness of a complex expression without fully evaluating it,...
Definition: item.h:2375
bool const_for_execution() const
Returns true if item is constant during one query execution.
Definition: item.h:2272
bool get_date_from_string(MYSQL_TIME *ltime, my_time_flags_t flags)
Convert val_str() to date in MYSQL_TIME.
Definition: item.cc:1453
traverse_order
Definition: item.h:924
bool get_date_from_non_temporal(MYSQL_TIME *ltime, my_time_flags_t fuzzydate)
Convert a non-temporal type to date.
Definition: item.cc:1521
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:3506
bool get_date_from_int(MYSQL_TIME *ltime, my_time_flags_t flags)
Convert val_int() to date in MYSQL_TIME.
Definition: item.cc:1481
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:1634
uint32 max_length
Maximum length of result of evaluating this item, in number of bytes.
Definition: item.h:3392
bool get_date_from_real(MYSQL_TIME *ltime, my_time_flags_t flags)
Convert val_real() to date in MYSQL_TIME.
Definition: item.cc:1463
void set_data_type_longlong()
Set the data type of the Item to be longlong.
Definition: item.h:1416
bool update_null_value()
Make sure the null_value member has a correct value.
Definition: item.cc:7419
void set_data_type_decimal(uint8 precision, uint8 scale)
Set the data type of the Item to be decimal.
Definition: item.h:1429
bool get_time_from_int(MYSQL_TIME *ltime)
Convert val_int() to time in MYSQL_TIME.
Definition: item.cc:1568
Definition: sql_optimizer.h:133
Abstraction for accessing JSON values irrespective of whether they are (started out as) binary JSON v...
Definition: json_dom.h:1161
Definition: sql_list.h:434
Storage for name strings.
Definition: item.h:288
A visitor that calls the specified function on every non-aggregated full-text search function (Item_f...
Definition: item_func.h:3673
std::function< bool(Item_func_match *)> m_func
Definition: item_func.h:3680
bool operator()(Item *item)
Definition: item_func.cc:7828
NonAggregatedFullTextSearchVisitor(std::function< bool(Item_func_match *)> func)
Definition: item_func.cc:7824
Wrapper class for an Item list head, used to allocate Item lists in the parser in a context-independe...
Definition: parse_tree_helpers.h:105
void error(Context *pc, const POS &pos) const
syntax_error() function replacement for deferred reporting of syntax errors
Definition: parse_tree_node_base.h:206
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:1156
A wrapper class for null-terminated constant strings.
Definition: sql_string.h:75
Using this class is fraught with peril, and you need to be very careful when doing so.
Definition: sql_string.h:168
const CHARSET_INFO * charset() const
Definition: sql_string.h:241
const char * ptr() const
Definition: sql_string.h:250
size_t length() const
Definition: sql_string.h:242
Wrapper interface for all kinds of system variables.
Definition: set_var.h:574
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:34
TABLE * table
Definition: table.h:3568
Type properties, used to collect type information for later assignment to an Item object.
Definition: item.h:627
Table_flags ha_table_flags() const
The cached_table_flags is set at ha_open and ha_external_lock.
Definition: handler.h:4760
A (partial) implementation of std::deque allocating its blocks on a MEM_ROOT.
Definition: mem_root_deque.h:110
my_decimal class limits 'decimal_t' type to what we need in MySQL.
Definition: my_decimal.h:94
sp_head represents one instance of a stored program.
Definition: sp_head.h:380
Definition: sp_head.h:120
Definition: sp_rcontext.h:77
A class representing one system variable - that is something that can be accessed as @global....
Definition: set_var.h:105
Item_result result_type() const
Definition: sql_udf.h:118
const char * name() const
Definition: sql_udf.h:117
Definition: item_func.h:2953
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:2970
static const size_t extra_size
Definition: item_func.h:3042
Simple_cstring entry_name
Definition: item_func.h:3067
Item_result m_type
Value type.
Definition: item_func.h:3045
size_t m_length
Value length.
Definition: item_func.h:3044
longlong val_int(bool *null_value) const
Get the value of a variable as an integer.
Definition: item_func.cc:6127
bool unsigned_flag
Definition: item_func.h:3069
THD * m_owner
Definition: item_func.h:3046
size_t length() const
Definition: item_func.h:3141
query_id_t used_query_id() const
Definition: item_func.h:3111
THD * owner_session() const
Definition: item_func.h:3065
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:5970
void set_value(char *value, size_t length)
Definition: item_func.h:2958
String * val_str(bool *null_value, String *str, uint decimals) const
Get the value of a variable as a string.
Definition: item_func.cc:6166
const char * ptr() const
Definition: item_func.h:3140
void free_value()
Free the external value buffer, if it's allocated.
Definition: item_func.h:2998
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:6017
void init(THD *thd, const Simple_cstring &name, const CHARSET_INFO *cs)
Initialize all members.
Definition: item_func.cc:6005
Item_result type() const
Definition: item_func.h:3142
void destroy()
Free all memory used by a user_var_entry instance previously created by create().
Definition: item_func.h:3130
bool alloced()
Check if m_ptr points to an external buffer previously allocated by realloc().
Definition: item_func.h:2993
void lock()
Definition: item_func.cc:6057
void unlock()
Definition: item_func.cc:6062
void set_null_value(Item_result type)
Set value to NULL.
Definition: item_func.h:3103
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:3006
DTCollation collation
Definition: item_func.h:3068
void set_type(Item_result type)
Set type of to the given value.
Definition: item_func.h:3094
char * m_ptr
Value.
Definition: item_func.h:3043
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:3060
void assert_locked() const
Assert the user variable is locked.
Definition: item_func.cc:6042
void reset_value()
Definition: item_func.h:2954
char * name_ptr()
Position inside a user_var_entry where a null-terminates array of characters representing the variabl...
Definition: item_func.h:2978
double val_real(bool *null_value) const
Get the value of a variable as a double.
Definition: item_func.cc:6098
my_decimal * val_decimal(bool *null_value, my_decimal *result) const
Get the value of a variable as a decimal.
Definition: item_func.cc:6198
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:5987
void set_used_query_id(query_id_t query_id)
Definition: item_func.h:3110
static MEM_ROOT mem_root
Definition: client_plugin.cc:110
#define E_DEC_FATAL_ERROR
Definition: decimal.h:149
#define E_DEC_OVERFLOW
Definition: decimal.h:144
enum_query_type
Query type constants (usable as bitmap flags).
Definition: enum_query_type.h:31
Fido Client Authentication nullptr
Definition: fido_client_plugin.cc:222
This file contains the field type.
enum_field_types
Column types for MySQL.
Definition: field_types.h:53
@ MYSQL_TYPE_VARCHAR
Definition: field_types.h:69
@ MYSQL_TYPE_LONGLONG
Definition: field_types.h:62
@ MYSQL_TYPE_TIME
Definition: field_types.h:65
@ MYSQL_TYPE_INVALID
Definition: field_types.h:75
@ MYSQL_TYPE_NEWDECIMAL
Definition: field_types.h:78
@ MYSQL_TYPE_DOUBLE
Definition: field_types.h:59
@ MYSQL_TYPE_DATE
Definition: field_types.h:64
@ MYSQL_TYPE_TIMESTAMP
Definition: field_types.h:61
@ MYSQL_TYPE_DATETIME
Definition: field_types.h:66
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:282
static int flags[50]
Definition: hp_test1.cc:40
static void start(mysql_harness::PluginFuncEnv *env)
Definition: http_auth_backend_plugin.cc:177
bool agg_item_charsets(DTCollation &coll, const char *fname, Item **args, uint nargs, uint flags, int item_sep, bool only_consts)
Definition: item.cc:2660
bool agg_item_charsets_for_string_result(DTCollation &c, const char *name, Item **items, uint nitems, int item_sep=1)
Definition: item.h:3872
bool(Item::* Item_analyzer)(uchar **argp)
Definition: item.h:714
void(* Cond_traverser)(const Item *item, void *arg)
Definition: item.h:724
Item *(Item::* Item_transformer)(uchar *arg)
Type for transformers used by Item::transform and Item::compile.
Definition: item.h:723
bool agg_item_charsets_for_comparison(DTCollation &c, const char *name, Item **items, uint nitems, int item_sep=1)
Definition: item.h:3879
bool check_reserved_words(const char *name)
Definition: item_func.cc:157
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:165
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:1042
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:1016
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:189
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:1597
bool eval_const_cond(THD *thd, Item *cond, bool *value)
Evaluate a constant condition, represented by an Item tree.
Definition: item_func.cc:306
enum_field_types agg_field_type(Item **items, uint nitems)
Aggregates field types from the array of items.
Definition: item_cmpfunc.cc:180
void item_func_sleep_free()
Definition: item_func.cc:5761
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:5229
bool reject_geometry_args(uint arg_count, Item **args, Item_result_field *me)
Definition: item_func.cc:1561
double my_double_round(double value, longlong dec, bool dec_unsigned, bool truncate)
Definition: item_func.cc:3452
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:256
String * eval_string_arg(const CHARSET_INFO *to_cs, Item *arg, String *buffer)
Definition: item_func.h:95
void item_func_sleep_init()
Definition: item_func.cc:5751
void mysql_ull_cleanup(THD *thd)
Release all user level locks for this THD.
Definition: item_func.cc:5211
void retrieve_tablespace_statistics(THD *thd, Item **args, bool *null_value)
Retrieve tablespace statistics from SE.
Definition: item_func.cc:9529
bool volatile mqh_used
Definition: mysqld.cc:1293
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:7894
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:1021
void uuid_short_init()
Definition: item_func.cc:8459
A better implementation of the UNIX ctype(3) library.
MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_bin
Definition: ctype-bin.cc:511
#define my_strntoll(s, a, b, c, d, e)
Definition: m_ctype.h:775
bool my_charset_same(const CHARSET_INFO *cs1, const CHARSET_INFO *cs2)
Definition: m_ctype.h:647
#define my_strntod(s, a, b, c, d)
Definition: m_ctype.h:779
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:1140
Header for compiler-dependent features.
#define SUPPRESS_UBSAN
Definition: my_compiler.h:134
#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:251
It is interface module to fixed precision decimals library.
int double2my_decimal(uint mask, double val, my_decimal *d)
Definition: my_decimal.h:353
Some integer typedefs for easier portability.
unsigned long long int ulonglong
Definition: my_inttypes.h:56
unsigned char uchar
Definition: my_inttypes.h:52
long long int longlong
Definition: my_inttypes.h:55
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 number_to_datetime.
Definition: my_time.h:94
Common definition between mysql server & client.
#define MAX_BIGINT_WIDTH
Max width for a LONGLONG.
Definition: mysql_com.h:901
Time declarations shared between the server and client API: you should not add anything to this heade...
thread_local MEM_ROOT ** THR_MALLOC
Definition: mysqld.cc:1560
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1052
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
std::string join(Container cont, const std::string &delim)
join elements of an container into a string separated by a delimiter.
Definition: string.h:151
mutable_buffer buffer(void *p, size_t n) noexcept
Definition: buffer.h:420
Cursor end()
A past-the-end Cursor.
Definition: rules_table_service.cc:192
const char * db_name
Definition: rules_table_service.cc:55
std::map< Key, Value, Compare, ut::allocator< std::pair< const Key, Value > > > map
Specialization of map which uses ut_allocator.
Definition: ut0new.h:2892
std::list< T, ut::allocator< T > > list
Specialization of list which uses ut_allocator.
Definition: ut0new.h:2878
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:90
type_conversion_status
Status when storing a value in a field or converting from one datatype to another.
Definition: field.h:202
@ VGS_CHECK_CONSTRAINT
Definition: field.h:476
@ VGS_GENERATED_COLUMN
Definition: field.h:474
Derivation
For use.
Definition: field.h:179
#define HA_CAN_FULLTEXT_EXT
Definition: handler.h:416
File containing constants that can be used throughout the server.
constexpr const table_map RAND_TABLE_BIT
Definition: sql_const.h:112
enum_walk
Enumeration for {Item,Query_block[_UNIT],Table_function}walk.
Definition: sql_const.h:287
bool(Item::*)(unsigned char *) Item_processor
Processor type for {Item,Query_block[_UNIT],Table_function}walk.
Definition: sql_const.h:305
constexpr const table_map INNER_TABLE_BIT
Definition: sql_const.h:110
Our own string classes, used pervasively throughout the executor.
case opt name
Definition: sslopt-case.h:33
Definition: m_ctype.h:385
Struct used to pass around arguments to/from check_function_as_value_generator.
Definition: item.h:488
int err_code
the error code found during check(if any)
Definition: item.h:495
const char * banned_function_name
the name of the function which is not allowed
Definition: item.h:502
Value_generator_source source
Definition: item.h:500
Definition: ft_global.h:77
Definition: ft_global.h:72
struct _ft_vft * please
Definition: ft_global.h:73
< Argument object to change_context_processor
Definition: item.h:4095
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: mysql_time.h:82
Definition: my_bitmap.h:43
Environment data for the contextualization phase.
Definition: parse_tree_node_base.h:121
handler * file
Definition: table.h:1401
Bison "location" class.
Definition: parse_location.h:43
Definition: completion_hash.h:35
void(* close_search)(FT_INFO *)
Definition: ft_global.h:51
Definition: mysql_com.h:1108
unsigned int uint
Definition: uca9-dump.cc:75
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:48