1#ifndef ITEM_TIMEFUNC_INCLUDED
2#define ITEM_TIMEFUNC_INCLUDED
71 const char *
func_name()
const override {
return "period_add"; }
81 const char *
func_name()
const override {
return "period_diff"; }
90 const char *
func_name()
const override {
return "to_days"; }
105 const char *
func_name()
const override {
return "to_seconds"; }
113 int *input_version = (
int *)
int_arg;
115 int output_version = std::max(*input_version, 50500);
116 *input_version = output_version;
131 const char *
func_name()
const override {
return "dayofmonth"; }
164 const char *
func_name()
const override {
return "month"; }
179 const char *
func_name()
const override {
return "monthname"; }
193 const char *
func_name()
const override {
return "dayofyear"; }
206 const char *
func_name()
const override {
return "hour"; }
219 const char *
func_name()
const override {
return "minute"; }
232 const char *
func_name()
const override {
return "quarter"; }
245 const char *
func_name()
const override {
return "second"; }
264 const char *
func_name()
const override {
return "week"; }
274 const char *
func_name()
const override {
return "yearweek"; }
287 const char *
func_name()
const override {
return "year"; }
304 const char *
func_name()
const override {
return "cast_as_year"; }
326 return static_cast<double>(
val_int());
338 return (
odbc_type ?
"dayofweek" :
"weekday");
360 const char *
func_name()
const override {
return "dayname"; }
416 const char *
func_name()
const override {
return "unix_timestamp"; }
457 pointer_cast<Check_function_as_value_generator_parameters *>(p_arg);
469 const char *
func_name()
const override {
return "time_to_sec"; }
545 bool no_conversions)
override;
621 const char *
func_name()
const override {
return "date"; }
862 const char *
func_name()
const override {
return "date_literal"; }
903 const char *
func_name()
const override {
return "time_literal"; }
946 const char *
func_name()
const override {
return "datetime_literal"; }
998 const char *
func_name()
const override {
return "time_zone"; }
1061 pointer_cast<Check_function_as_value_generator_parameters *>(
1076 const char *
func_name()
const override {
return "curtime"; }
1086 const char *
func_name()
const override {
return "utc_time"; }
1116 pointer_cast<Check_function_as_value_generator_parameters *>(
1130 const char *
func_name()
const override {
return "curdate"; }
1139 const char *
func_name()
const override {
return "utc_date"; }
1151 bool no_conversions)
override;
1179 pointer_cast<Check_function_as_value_generator_parameters *>(
1220 const char *
func_name()
const override {
return "utc_timestamp"; }
1232 const char *
func_name()
const override {
return "sysdate"; }
1250 const char *
func_name()
const override {
return "from_days"; }
1271 bool is_time_format_arg =
false)
1286 const char *
func_name()
const override {
return "from_unixtime"; }
1315 const char *
func_name()
const override {
return "convert_tz"; }
1334 const char *
func_name()
const override {
return "sec_to_time"; }
1362 const char *
func_name()
const override {
return "date_add_interval"; }
1395 const char *
func_name()
const override {
return "extract"; }
1457 const char *
func_name()
const override {
return "cast_as_date"; }
1486 const char *
func_name()
const override {
return "cast_as_time"; }
1525 const char *
func_name()
const override {
return "cast_as_datetime"; }
1547 const char *
func_name()
const override {
return "makedate"; }
1573 m_sign(negate ? -1 : 1) {}
1578 m_sign(negate ? -1 : 1) {}
1586 const char *
func_name()
const override {
return "add_time"; }
1595 const char *
func_name()
const override {
return "timediff"; }
1629 const char *
func_name()
const override {
return "maketime"; }
1638 const char *
func_name()
const override {
return "microsecond"; }
1654 const char *
func_name()
const override {
return "timestampdiff"; }
1683 const char *
func_name()
const override {
return "get_format"; }
1708 const char *
func_name()
const override {
return "str_to_date"; }
1717 const char *
func_name()
const override {
return "last_day"; }
1732 const char *
func_name()
const override {
return "internal_update_time"; }
1742 const char *
func_name()
const override {
return "internal_check_time"; }
Kerberos Client Authentication nullptr
Definition: auth_kerberos_client_plugin.cc:251
void set_numeric()
Definition: item.h:221
const CHARSET_INFO * collation
Definition: item.h:187
Implementation class for the DATE_ADD and DATE_SUB functions.
Definition: item_timefunc.h:1345
enum Functype functype() const override
Definition: item_timefunc.h:1363
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_timefunc.cc:2709
const bool m_subtract
False if function is DATE_ADD, true if function is DATE_SUB.
Definition: item_timefunc.h:1382
bool eq_specific(const Item *item) const override
Provide a more specific equality check for a function.
Definition: item_timefunc.cc:2676
Item_temporal_hybrid_func super
Definition: item_timefunc.h:1346
bool val_datetime(MYSQL_TIME *ltime, my_time_flags_t fuzzy_date) override
Get "native" temporal value as MYSQL_TIME.
Definition: item_timefunc.cc:2669
const char * func_name() const override
Definition: item_timefunc.h:1362
bool is_subtract() const
Definition: item_timefunc.h:1369
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_timefunc.cc:2720
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:2489
bool get_date_internal(MYSQL_TIME *res, my_time_flags_t fuzzy_date)
Definition: item_timefunc.cc:2581
const interval_type m_interval_type
The type of the interval argument.
Definition: item_timefunc.h:1380
Item_date_add_interval(Item *a, Item *b, interval_type type, bool subtract)
POS-less ctor for post-parse construction with implicit addition to THD's free_list (see Item::Item()...
Definition: item_timefunc.h:1358
interval_type get_interval_type() const
Definition: item_timefunc.h:1368
String value
Definition: item_timefunc.h:1383
bool get_time_internal(MYSQL_TIME *res)
Definition: item_timefunc.cc:2616
Item_date_add_interval(const POS &pos, Item *a, Item *b, interval_type type, bool subtract)
Definition: item_timefunc.h:1349
Abstract class for functions returning DATE values.
Definition: item_timefunc.h:595
double val_real() override
Definition: item_timefunc.h:620
bool get_date(MYSQL_TIME *res, my_time_flags_t fuzzy_date) override=0
const char * func_name() const override
Definition: item_timefunc.h:621
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:623
enum Functype functype() const override
Definition: item_timefunc.h:622
Item_date_func(const POS &pos)
Definition: item_timefunc.h:603
Item_date_func()
Definition: item_timefunc.h:602
Item_date_func(Item *a)
Definition: item_timefunc.h:606
Item_date_func(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:610
longlong val_date_temporal() override
Return date value of item in packed longlong format.
Definition: item_timefunc.cc:931
bool get_time(MYSQL_TIME *ltime) override
Definition: item_timefunc.h:614
longlong val_int() override
Definition: item_timefunc.h:618
Item_date_func(const POS &pos, Item *a)
Definition: item_timefunc.h:607
type_conversion_status save_in_field_inner(Field *field, bool) override
Helper function which does all of the work for save_in_field(Field*, bool), except some error checkin...
Definition: item_timefunc.h:597
String * val_str(String *str) override
Definition: item_timefunc.h:617
my_decimal * val_decimal(my_decimal *decimal_value) override
Definition: item_timefunc.h:624
DATE'2010-01-01'.
Definition: item_timefunc.h:849
bool basic_const_item() const override
Returns true if this is a simple constant item like an integer, not a constant expression.
Definition: item_timefunc.h:879
Item_date_literal(MYSQL_TIME *ltime)
Constructor for Item_date_literal.
Definition: item_timefunc.h:857
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.h:869
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:877
void print(const THD *thd, String *str, enum_query_type query_type) const override
Appends function name with argument list or fractional seconds part to the String str.
Definition: item_timefunc.cc:952
const char * func_name() const override
Definition: item_timefunc.h:862
bool eq_specific(const Item *item) const override
Provide a more specific equality check for a function.
Definition: item_timefunc.cc:947
longlong val_date_temporal() override
Return date value of item in packed longlong format.
Definition: item_timefunc.h:865
MYSQL_TIME_cache cached_time
Definition: item_timefunc.h:850
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_timefunc.h:882
table_map used_tables() const override
Definition: item_timefunc.h:880
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:878
String * val_str(String *str) override
Definition: item_timefunc.h:873
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_timefunc.h:881
Abstract class for functions returning DATETIME values.
Definition: item_timefunc.h:637
longlong val_int() override
Definition: item_timefunc.h:680
Item_datetime_func(Item *a)
Definition: item_timefunc.h:650
Item_datetime_func(const POS &pos)
Definition: item_timefunc.h:647
Item_datetime_func()
Definition: item_timefunc.h:644
String * val_str(String *str) override
Definition: item_timefunc.h:677
double val_real() override
Definition: item_timefunc.h:676
longlong val_date_temporal() override
Return date value of item in packed longlong format.
Definition: item_timefunc.cc:939
bool get_time(MYSQL_TIME *ltime) override
Definition: item_timefunc.h:686
Item_datetime_func(const POS &pos, PT_item_list *list)
Definition: item_timefunc.h:671
Item_datetime_func(Item *a, Item *b, Item *c)
Definition: item_timefunc.h:660
type_conversion_status save_in_field_inner(Field *field, bool) override
Helper function which does all of the work for save_in_field(Field*, bool), except some error checkin...
Definition: item_timefunc.h:639
Item_datetime_func(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_timefunc.h:663
bool get_date(MYSQL_TIME *res, my_time_flags_t fuzzy_date) override=0
Item_datetime_func(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_timefunc.h:667
my_decimal * val_decimal(my_decimal *decimal_value) override
Definition: item_timefunc.h:682
Item_datetime_func(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:656
Item_datetime_func(const POS &pos, Item *a)
Definition: item_timefunc.h:653
TIMESTAMP'2001-01-01 10:20:30'.
Definition: item_timefunc.h:930
MYSQL_TIME_cache cached_time
Definition: item_timefunc.h:931
bool basic_const_item() const override
Returns true if this is a simple constant item like an integer, not a constant expression.
Definition: item_timefunc.h:964
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:962
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_timefunc.h:966
enum Functype functype() const override
Definition: item_timefunc.h:947
const char * func_name() const override
Definition: item_timefunc.h:946
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_timefunc.h:967
Item_datetime_literal(MYSQL_TIME *ltime, uint dec_arg, const Time_zone *tz)
Constructor for Item_datetime_literal.
Definition: item_timefunc.h:941
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:963
void print(const THD *thd, String *str, enum_query_type query_type) const override
Appends function name with argument list or fractional seconds part to the String str.
Definition: item_timefunc.cc:963
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.h:954
bool eq_specific(const Item *item) const override
Provide a more specific equality check for a function.
Definition: item_timefunc.cc:958
String * val_str(String *str) override
Definition: item_timefunc.h:958
longlong val_date_temporal() override
Return date value of item in packed longlong format.
Definition: item_timefunc.h:950
table_map used_tables() const override
Definition: item_timefunc.h:965
Add a time expression to a temporal expression, or subtract a time expression from a temporal express...
Definition: item_timefunc.h:1563
int m_sign
+1 for ADD, -1 for SUBTRACT
Definition: item_timefunc.h:1565
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:3047
const char * func_name() const override
Definition: item_timefunc.h:1586
Item_func_add_time(Item *a, Item *b, bool datetime, bool negate)
Definition: item_timefunc.h:1570
const bool m_datetime
True if first argument expected to be datetime.
Definition: item_timefunc.h:1564
int sign() const
Definition: item_timefunc.h:1588
enum Functype functype() const override
Definition: item_timefunc.h:1587
bool val_datetime(MYSQL_TIME *time, my_time_flags_t fuzzy_date) override
ADDTIME(t,a) and SUBTIME(t,a) are time functions that calculate a time/datetime value.
Definition: item_timefunc.cc:3092
Item_func_add_time(const POS &pos, Item *a, Item *b, bool datetime, bool negate)
Definition: item_timefunc.h:1574
Item_func_add_time(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:1580
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_timefunc.cc:3161
This function implements the AT TIME ZONE operator, which casts a temporal value to a temporal with t...
Definition: item_timefunc.h:988
bool check_type() const
Definition: item_timefunc.cc:1035
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:981
bool set_time_zone(THD *thd)
Definition: item_timefunc.cc:999
const char * func_name() const override
Definition: item_timefunc.h:998
void print(const THD *thd, String *str, enum_query_type query_type) const override
Appends function name with argument list or fractional seconds part to the String str.
Definition: item_timefunc.cc:993
bool m_is_interval
Whether the syntax used the INTERVAL construction.
Definition: item_timefunc.h:1023
bool get_date(MYSQL_TIME *res, my_time_flags_t) override
Definition: item_timefunc.cc:1010
const char * m_specifier_string
The specifier string argument, not used after resolution.
Definition: item_timefunc.h:1017
const Time_zone * m_tz
The time zone that the specifier string argument resolves to.
Definition: item_timefunc.h:1014
const char * specifier_string() const
Definition: item_timefunc.h:1007
Item_func_at_time_zone(const POS &pos, Item *datetime, const char *specifier_string, bool is_interval)
Definition: item_timefunc.h:990
Definition: item_timefunc.h:1300
const char * func_name() const override
Definition: item_timefunc.h:1315
bool get_date(MYSQL_TIME *res, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.cc:2445
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:2436
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_timefunc.cc:2483
Time_zone * from_tz
Definition: item_timefunc.h:1308
Item_func_convert_tz(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_timefunc.h:1311
bool from_tz_cached
Definition: item_timefunc.h:1307
bool to_tz_cached
Definition: item_timefunc.h:1307
enum Functype functype() const override
Definition: item_timefunc.h:1316
Time_zone * to_tz
Definition: item_timefunc.h:1308
Definition: item_timefunc.h:1124
Time_zone * time_zone() override
Definition: item_timefunc.cc:2015
const char * func_name() const override
Definition: item_timefunc.h:1130
Item_func_curdate_local(const POS &pos)
Definition: item_timefunc.h:1129
Definition: item_timefunc.h:1133
Time_zone * time_zone() override
Definition: item_timefunc.cc:2019
Item_func_curdate_utc(const POS &pos)
Definition: item_timefunc.h:1138
const char * func_name() const override
Definition: item_timefunc.h:1139
Abstract CURDATE function.
Definition: item_timefunc.h:1094
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:2010
Item_date_func super
Definition: item_timefunc.h:1095
longlong val_date_temporal() override
Return date value of item in packed longlong format.
Definition: item_timefunc.cc:2021
String * val_str(String *) override
Definition: item_timefunc.cc:2035
virtual Time_zone * time_zone()=0
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_timefunc.h:1114
bool get_date(MYSQL_TIME *res, my_time_flags_t) override
Definition: item_timefunc.cc:2028
Item_func_curdate(const POS &pos)
Definition: item_timefunc.h:1101
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_timefunc.cc:2003
table_map get_initial_pseudo_tables() const override
This function must assign a new value for each execution.
Definition: item_timefunc.h:1106
Definition: item_timefunc.h:1069
Item_func_curtime_local(const POS &pos, uint8 dec_arg)
Definition: item_timefunc.h:1074
const char * func_name() const override
Definition: item_timefunc.h:1076
Time_zone * time_zone() override
Definition: item_timefunc.cc:2100
Definition: item_timefunc.h:1079
Time_zone * time_zone() override
Definition: item_timefunc.cc:2104
const char * func_name() const override
Definition: item_timefunc.h:1086
Item_func_curtime_utc(const POS &pos, uint8 dec_arg)
Definition: item_timefunc.h:1084
Abstract CURTIME function. Children should define what time zone is used.
Definition: item_timefunc.h:1027
virtual Time_zone * time_zone()=0
String * val_str(String *) override
Definition: item_timefunc.cc:2087
table_map get_initial_pseudo_tables() const override
This function must assign a new value for each execution.
Definition: item_timefunc.h:1051
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:2056
bool get_time(MYSQL_TIME *ltime) override
Definition: item_timefunc.cc:2079
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_timefunc.h:1059
Item_func_curtime(const POS &pos, uint8 dec_arg)
Constructor for Item_func_curtime.
Definition: item_timefunc.h:1044
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_timefunc.cc:2049
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_timefunc.h:1034
longlong val_time_temporal() override
Return time value of item in packed longlong format.
Definition: item_timefunc.cc:2071
Item_time_func super
Definition: item_timefunc.h:1028
TS-TODO: Item_func_dayname should be derived from Item_str_func.
Definition: item_timefunc.h:354
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override
Definition: item_timefunc.h:363
enum Item_result result_type() const override
Definition: item_timefunc.h:369
bool get_time(MYSQL_TIME *ltime) override
Definition: item_timefunc.h:366
const char * func_name() const override
Definition: item_timefunc.h:360
Item_func_dayname(const POS &pos, Item *a)
Definition: item_timefunc.h:358
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1495
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:371
String * val_str(String *str) override
Definition: item_timefunc.cc:1507
MY_LOCALE * locale
Definition: item_timefunc.h:355
enum Functype functype() const override
Definition: item_timefunc.h:361
Definition: item_timefunc.h:126
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:135
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1252
Item_func_dayofmonth(const POS &pos, Item *a)
Definition: item_timefunc.h:128
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:134
const char * func_name() const override
Definition: item_timefunc.h:131
longlong val_int() override
Definition: item_timefunc.cc:1263
enum Functype functype() const override
Definition: item_timefunc.h:132
Definition: item_timefunc.h:189
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1233
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:197
longlong val_int() override
Definition: item_timefunc.cc:1244
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:196
Item_func_dayofyear(const POS &pos, Item *a)
Definition: item_timefunc.h:191
const char * func_name() const override
Definition: item_timefunc.h:193
enum Functype functype() const override
Definition: item_timefunc.h:194
Definition: item_timefunc.h:1247
const char * func_name() const override
Definition: item_timefunc.h:1250
Item_func_from_days(const POS &pos, Item *a)
Definition: item_timefunc.h:1249
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:1254
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1257
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:1252
bool get_date(MYSQL_TIME *res, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.cc:1909
enum Functype functype() const override
Definition: item_timefunc.h:1253
Definition: item_timefunc.h:1282
bool get_date(MYSQL_TIME *res, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.cc:2383
const char * func_name() const override
Definition: item_timefunc.h:1286
Item_func_from_unixtime(const POS &pos, Item *a)
Definition: item_timefunc.h:1284
enum Functype functype() const override
Definition: item_timefunc.h:1287
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:2374
Definition: item_timefunc.h:202
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1334
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:210
longlong val_int() override
Definition: item_timefunc.cc:1344
const char * func_name() const override
Definition: item_timefunc.h:206
enum Functype functype() const override
Definition: item_timefunc.h:207
Item_func_hour(const POS &pos, Item *a)
Definition: item_timefunc.h:204
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:209
Definition: item_timefunc.h:1737
enum Functype functype() const override
Definition: item_timefunc.h:1741
bool get_date(MYSQL_TIME *res, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.cc:3780
const char * func_name() const override
Definition: item_timefunc.h:1742
Item_func_internal_check_time(const POS &pos, PT_item_list *list)
Definition: item_timefunc.h:1739
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:3772
Definition: item_timefunc.h:1727
const char * func_name() const override
Definition: item_timefunc.h:1732
enum Functype functype() const override
Definition: item_timefunc.h:1731
Item_func_internal_update_time(const POS &pos, PT_item_list *list)
Definition: item_timefunc.h:1729
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:3693
bool get_date(MYSQL_TIME *res, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.cc:3701
Definition: item_timefunc.h:1712
Item_func_last_day(const POS &pos, Item *a)
Definition: item_timefunc.h:1714
const char * func_name() const override
Definition: item_timefunc.h:1717
enum Functype functype() const override
Definition: item_timefunc.h:1718
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1720
bool get_date(MYSQL_TIME *res, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.cc:3669
Definition: item_timefunc.h:1541
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1550
enum Functype functype() const override
Definition: item_timefunc.h:1549
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzy_date) override
MAKEDATE(a,b) is a date function that creates a date value from a year and day value.
Definition: item_timefunc.cc:3018
Item_func_makedate(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:1543
const char * func_name() const override
Definition: item_timefunc.h:1547
Definition: item_timefunc.h:1615
enum Functype functype() const override
Definition: item_timefunc.h:1630
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1621
bool get_time(MYSQL_TIME *ltime) override
MAKETIME(h,m,s) is a time function that calculates a time value from the total number of hours,...
Definition: item_timefunc.cc:3245
Item_func_maketime(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_timefunc.h:1617
const char * func_name() const override
Definition: item_timefunc.h:1629
Definition: item_timefunc.h:1634
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:1642
longlong val_int() override
MICROSECOND(a) is a function ( extraction) that extracts the microseconds from a.
Definition: item_timefunc.cc:3318
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:3324
enum Functype functype() const override
Definition: item_timefunc.h:1639
Item_func_microsecond(const POS &pos, Item *a)
Definition: item_timefunc.h:1636
const char * func_name() const override
Definition: item_timefunc.h:1638
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:1641
Definition: item_timefunc.h:215
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1350
const char * func_name() const override
Definition: item_timefunc.h:219
longlong val_int() override
Definition: item_timefunc.cc:1360
Item_func_minute(const POS &pos, Item *a)
Definition: item_timefunc.h:217
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:222
enum Functype functype() const override
Definition: item_timefunc.h:220
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:223
TS-TODO: This should probably have Item_int_func as parent class.
Definition: item_timefunc.h:143
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1269
double val_real() override
Definition: item_timefunc.h:150
enum Item_result result_type() const override
Definition: item_timefunc.h:166
longlong val_int() override
Definition: item_timefunc.cc:1280
const char * func_name() const override
Definition: item_timefunc.h:164
String * val_str(String *str) override
Definition: item_timefunc.h:154
bool get_time(MYSQL_TIME *ltime) override
Definition: item_timefunc.h:163
Item_func_month(const POS &pos, Item *a)
Definition: item_timefunc.h:145
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:169
enum Functype functype() const override
Definition: item_timefunc.h:165
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:168
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override
Definition: item_timefunc.h:160
Definition: item_timefunc.h:174
Item_func_monthname(const POS &pos, Item *a)
Definition: item_timefunc.h:178
MY_LOCALE * locale
Definition: item_timefunc.h:175
const char * func_name() const override
Definition: item_timefunc.h:179
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:184
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:183
String * val_str(String *str) override
Definition: item_timefunc.cc:1298
enum Functype functype() const override
Definition: item_timefunc.h:180
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1286
Definition: item_timefunc.h:1187
static void store_in(Field *field)
Stores the query start time in a field, truncating to the field's number of fractional second digits.
Definition: item_timefunc.cc:2116
Time_zone * time_zone() override
Definition: item_timefunc.cc:2123
const char * func_name() const override
Definition: item_timefunc.h:1204
Item_func_now_local(const POS &pos, uint8 dec_arg)
Definition: item_timefunc.h:1201
enum Functype functype() const override
Definition: item_timefunc.h:1205
Item_func_now_local(uint8 dec_arg)
Definition: item_timefunc.h:1200
Definition: item_timefunc.h:1208
const char * func_name() const override
Definition: item_timefunc.h:1220
Item_func_now_utc(const POS &pos, uint8 dec_arg)
Definition: item_timefunc.h:1215
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_timefunc.cc:2125
Item_func_now super
Definition: item_timefunc.h:1209
Time_zone * time_zone() override
Definition: item_timefunc.cc:2132
Abstract CURRENT_TIMESTAMP function.
Definition: item_timefunc.h:1147
Item_func_now(uint8 dec_arg)
Constructor for Item_func_now.
Definition: item_timefunc.h:1163
type_conversion_status save_in_field_inner(Field *to, bool no_conversions) override
Helper function which does all of the work for save_in_field(Field*, bool), except some error checkin...
Definition: item_timefunc.cc:2163
longlong val_date_temporal() override
Return date value of item in packed longlong format.
Definition: item_timefunc.cc:2134
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:2108
virtual Time_zone * time_zone()=0
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_timefunc.h:1177
String * val_str(String *) override
Definition: item_timefunc.cc:2150
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_timefunc.h:1153
table_map get_initial_pseudo_tables() const override
This function must assign a new value for each execution.
Definition: item_timefunc.h:1169
bool get_date(MYSQL_TIME *res, my_time_flags_t) override
Definition: item_timefunc.cc:2142
Item_func_now(const POS &pos, uint8 dec_arg)
Definition: item_timefunc.h:1164
Definition: item_timefunc.h:66
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1049
longlong val_int() override
Definition: item_timefunc.cc:1054
enum Functype functype() const override
Definition: item_timefunc.h:72
const char * func_name() const override
Definition: item_timefunc.h:71
Item_func_period_add(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:68
Definition: item_timefunc.h:76
const char * func_name() const override
Definition: item_timefunc.h:81
enum Functype functype() const override
Definition: item_timefunc.h:82
Item_func_period_diff(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:78
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1068
longlong val_int() override
Definition: item_timefunc.cc:1073
Definition: item_timefunc.h:228
const char * func_name() const override
Definition: item_timefunc.h:232
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:235
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:236
enum Functype functype() const override
Definition: item_timefunc.h:233
Item_func_quarter(const POS &pos, Item *a)
Definition: item_timefunc.h:230
longlong val_int() override
Returns the quarter of the year.
Definition: item_timefunc.cc:1327
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1313
Definition: item_timefunc.h:1322
const char * func_name() const override
Definition: item_timefunc.h:1334
Item_func_sec_to_time(const POS &pos, Item *item)
Definition: item_timefunc.h:1324
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1326
enum Functype functype() const override
Definition: item_timefunc.h:1335
bool get_time(MYSQL_TIME *ltime) override
Definition: item_timefunc.cc:2195
Definition: item_timefunc.h:241
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:249
const char * func_name() const override
Definition: item_timefunc.h:245
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:248
enum Functype functype() const override
Definition: item_timefunc.h:246
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1366
Item_func_second(const POS &pos, Item *a)
Definition: item_timefunc.h:243
longlong val_int() override
Returns the second in time_exp in the range of 0 - 59.
Definition: item_timefunc.cc:1379
Definition: item_timefunc.h:1698
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:3585
Item_func_str_to_date(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:1706
bool val_datetime(MYSQL_TIME *ltime, my_time_flags_t fuzzy_date) override
Get "native" temporal value as MYSQL_TIME.
Definition: item_timefunc.cc:3619
void fix_from_format(const char *format, size_t length)
Set type of datetime value (DATE/TIME/...) which will be produced according to format string.
Definition: item_timefunc.cc:3535
const char * func_name() const override
Definition: item_timefunc.h:1708
enum_mysql_timestamp_type cached_timestamp_type
Definition: item_timefunc.h:1699
SYSDATE() is like NOW(), but always uses the real current time, not the query_start().
Definition: item_timefunc.h:1227
table_map get_initial_pseudo_tables() const override
This function is non-deterministic and hence depends on the 'RAND' pseudo-table.
Definition: item_timefunc.h:1242
const char * func_name() const override
Definition: item_timefunc.h:1232
Item_func_sysdate_local(uint8 dec_arg)
Definition: item_timefunc.h:1229
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:2189
bool get_date(MYSQL_TIME *res, my_time_flags_t fuzzy_date) override
Converts current time in my_time_t to MYSQL_TIME representation for local time zone.
Definition: item_timefunc.cc:2176
enum Functype functype() const override
Definition: item_timefunc.h:1234
Definition: item_timefunc.h:464
enum Functype functype() const override
Definition: item_timefunc.h:470
longlong val_int() override
Definition: item_timefunc.cc:1743
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:472
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1735
Item_func_time_to_sec(const POS &pos, Item *item)
Definition: item_timefunc.h:466
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:473
const char * func_name() const override
Definition: item_timefunc.h:469
Definition: item_timefunc.h:1591
bool get_time(MYSQL_TIME *ltime) override
TIMEDIFF(t,s) is a time function that calculates the time value between a start and end time.
Definition: item_timefunc.cc:3189
enum Functype functype() const override
Definition: item_timefunc.h:1596
Item_func_timediff(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:1593
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1597
const char * func_name() const override
Definition: item_timefunc.h:1595
Definition: item_timefunc.h:1647
interval_type intervaltype() const
Definition: item_timefunc.h:1656
const char * func_name() const override
Definition: item_timefunc.h:1654
enum Functype functype() const override
Definition: item_timefunc.h:1655
longlong val_int() override
Definition: item_timefunc.cc:3331
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_timefunc.cc:3427
Item_func_timestamp_diff(const POS &pos, Item *a, Item *b, interval_type type_arg)
Definition: item_timefunc.h:1651
const interval_type int_type
Definition: item_timefunc.h:1648
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1658
Definition: item_timefunc.h:86
Item_func_to_days(const POS &pos, Item *a)
Definition: item_timefunc.h:88
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1088
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:95
longlong val_int() override
Definition: item_timefunc.cc:1102
enum Functype functype() const override
Definition: item_timefunc.h:91
const char * func_name() const override
Definition: item_timefunc.h:90
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:96
longlong val_int_endpoint(bool left_endp, bool *incl_endp) override
Definition: item_timefunc.cc:1184
enum_monotonicity_info get_monotonicity_info() const override
Definition: item_timefunc.cc:1165
Definition: item_timefunc.h:101
bool intro_version(uchar *int_arg) override
Definition: item_timefunc.h:112
enum_monotonicity_info get_monotonicity_info() const override
Definition: item_timefunc.cc:1175
Item_func_to_seconds(const POS &pos, Item *a)
Definition: item_timefunc.h:103
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1132
longlong val_int() override
Definition: item_timefunc.cc:1139
enum Functype functype() const override
Definition: item_timefunc.h:106
const char * func_name() const override
Definition: item_timefunc.h:105
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:110
longlong val_int_endpoint(bool left_endp, bool *incl_endp) override
Definition: item_timefunc.cc:1109
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:121
Definition: item_timefunc.h:405
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:422
table_map get_initial_pseudo_tables() const override
Returns the pseudo tables depended upon in order to evaluate this function expression.
Definition: item_timefunc.h:432
longlong val_int_endpoint(bool left_endp, bool *incl_endp) override
Definition: item_timefunc.cc:1726
const char * func_name() const override
Definition: item_timefunc.h:416
Item_func_unix_timestamp(const POS &pos)
Definition: item_timefunc.h:409
bool check_function_as_value_generator(uchar *p_arg) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_timefunc.h:451
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:437
Item_timeval_func super
Definition: item_timefunc.h:406
enum_monotonicity_info get_monotonicity_info() const override
Definition: item_timefunc.cc:1719
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_timefunc.cc:1696
Item_func_unix_timestamp(Item *a)
Definition: item_timefunc.h:411
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:428
enum Functype functype() const override
Definition: item_timefunc.h:417
Item_func_unix_timestamp(const POS &pos, Item *a)
Definition: item_timefunc.h:413
bool val_timeval(my_timeval *tm) override
Definition: item_timefunc.cc:1707
Definition: item_timefunc.h:254
const char * func_name() const override
Definition: item_timefunc.h:264
longlong val_int() override
Definition: item_timefunc.cc:1445
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_timefunc.cc:1391
Item_func_week(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:259
Item_func_week(Item *a, Item *b)
Definition: item_timefunc.h:258
Item_int_func super
Definition: item_timefunc.h:255
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1402
enum Functype functype() const override
Definition: item_timefunc.h:265
TS-TODO: This should probably have Item_int_func as parent class.
Definition: item_timefunc.h:314
Item_func_weekday(const POS &pos, Item *a, bool type_arg)
Definition: item_timefunc.h:318
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:343
const char * func_name() const override
Definition: item_timefunc.h:337
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:344
double val_real() override
Definition: item_timefunc.h:324
String * val_str(String *str) override
Definition: item_timefunc.h:328
bool odbc_type
Definition: item_timefunc.h:315
enum Item_result result_type() const override
Definition: item_timefunc.h:341
enum Functype functype() const override
Definition: item_timefunc.h:340
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1474
bool get_time(MYSQL_TIME *ltime) override
Definition: item_timefunc.h:336
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override
Definition: item_timefunc.h:333
longlong val_int() override
Definition: item_timefunc.cc:1484
Definition: item_timefunc.h:283
enum Functype functype() const override
Definition: item_timefunc.h:288
longlong val_int_endpoint(bool left_endp, bool *incl_endp) override
Definition: item_timefunc.cc:1640
enum_monotonicity_info get_monotonicity_info() const override
Definition: item_timefunc.cc:1632
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:292
const char * func_name() const override
Definition: item_timefunc.h:287
longlong val_int() override
Definition: item_timefunc.cc:1529
Item_func_year(const POS &pos, Item *a)
Definition: item_timefunc.h:285
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1521
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:293
Definition: item_timefunc.h:269
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:277
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1453
enum Functype functype() const override
Definition: item_timefunc.h:275
longlong val_int() override
Definition: item_timefunc.cc:1464
Item_func_yearweek(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:271
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:278
const char * func_name() const override
Definition: item_timefunc.h:274
Definition: item_func.h:100
bool param_type_uses_non_param(THD *thd, enum_field_types def=MYSQL_TYPE_VARCHAR)
Definition: item_func.cc:617
Item ** args
Array of pointers to arguments.
Definition: item_func.h:107
bool reject_vector_args()
Definition: item_func.cc:1596
Functype
Definition: item_func.h:209
@ DATEADD_FUNC
Definition: item_func.h:316
@ YEAR_FUNC
Definition: item_func.h:296
@ HOUR_FUNC
Definition: item_func.h:307
@ TIME_TO_SEC_FUNC
Definition: item_func.h:321
@ PERIODDIFF_FUNC
Definition: item_func.h:337
@ FROM_UNIXTIME_FUNC
Definition: item_func.h:317
@ MAKETIME_FUNC
Definition: item_func.h:299
@ NOW_FUNC
Definition: item_func.h:251
@ FROM_DAYS_FUNC
Definition: item_func.h:252
@ CONVERT_TZ_FUNC
Definition: item_func.h:318
@ DD_INTERNAL_FUNC
Definition: item_func.h:266
@ DAY_FUNC
Definition: item_func.h:302
@ MAKEDATE_FUNC
Definition: item_func.h:298
@ SEC_TO_TIME_FUNC
Definition: item_func.h:338
@ DATE_FUNC
Definition: item_func.h:306
@ TIMESTAMPDIFF_FUNC
Definition: item_func.h:322
@ SECOND_FUNC
Definition: item_func.h:309
@ PERIODADD_FUNC
Definition: item_func.h:336
@ EXTRACT_FUNC
Definition: item_func.h:257
@ MONTH_FUNC
Definition: item_func.h:300
@ TO_SECONDS_FUNC
Definition: item_func.h:305
@ MICROSECOND_FUNC
Definition: item_func.h:310
@ QUARTER_FUNC
Definition: item_func.h:313
@ TIMEDIFF_FUNC
Definition: item_func.h:335
@ SYSDATE_FUNC
Definition: item_func.h:334
@ MONTHNAME_FUNC
Definition: item_func.h:301
@ TYPECAST_FUNC
Definition: item_func.h:258
@ LAST_DAY_FUNC
Definition: item_func.h:319
@ WEEKDAY_FUNC
Definition: item_func.h:315
@ ADDTIME_FUNC
Definition: item_func.h:312
@ DAYOFYEAR_FUNC
Definition: item_func.h:311
@ GET_FORMAT_FUNC
Definition: item_func.h:339
@ DAYNAME_FUNC
Definition: item_func.h:303
@ DATETIME_LITERAL
Definition: item_func.h:323
@ MINUTE_FUNC
Definition: item_func.h:308
@ TO_DAYS_FUNC
Definition: item_func.h:304
@ WEEK_FUNC
Definition: item_func.h:314
@ YEARWEEK_FUNC
Definition: item_func.h:297
@ UNIX_TIMESTAMP_FUNC
Definition: item_func.h:320
virtual const char * func_name() const =0
bool has_timestamp_args()
Definition: item_func.h:661
enum Type type() const override
Definition: item_func.h:365
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:528
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:504
bool has_date_args()
Definition: item_func.h:671
uint arg_count
How many arguments in 'args'.
Definition: item_func.h:130
bool has_time_args()
Definition: item_func.h:682
bool has_datetime_args()
Definition: item_func.h:693
Definition: item_func.h:1020
Definition: item_strfunc.h:148
Definition: item_strfunc.h:76
String * val_str_from_val_str_ascii(String *str, String *str2)
Definition: item_strfunc.cc:150
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.h:140
Abstract class for functions returning TIME, DATE, DATETIME types whose data type is known at constru...
Definition: item_timefunc.h:482
Item_temporal_func()
Definition: item_timefunc.h:493
Item_temporal_func(const POS &pos, Item *a)
Definition: item_timefunc.h:497
Item_temporal_func(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:499
Item_temporal_func(const POS &pos)
Definition: item_timefunc.h:494
Item_temporal_func(Item *a)
Definition: item_timefunc.h:496
Item_temporal_func(Item *a, Item *b, Item *c)
Definition: item_timefunc.h:501
Field * tmp_table_field(TABLE *table) override
Definition: item_timefunc.h:513
Item_temporal_func(const POS &pos, PT_item_list *list)
Definition: item_timefunc.h:506
bool check_precision()
Definition: item_timefunc.cc:806
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_timefunc.h:487
Item_temporal_func(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_timefunc.h:502
Item_temporal_func(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_timefunc.h:504
uint datetime_precision() override
DATETIME precision of the item: 0..6.
Definition: item_timefunc.h:520
void print(const THD *thd, String *str, enum_query_type query_type) const override
Appends function name with argument list or fractional seconds part to the String str.
Definition: item_timefunc.cc:826
uint time_precision() override
TIME precision of the item: 0..6.
Definition: item_timefunc.h:516
const CHARSET_INFO * charset_for_protocol() override
Definition: item_timefunc.h:510
Item_result result_type() const override
Definition: item_timefunc.h:509
Abstract class for functions returning TIME, DATE, DATETIME or string values, whose data type depends...
Definition: item_timefunc.h:532
const CHARSET_INFO * charset_for_protocol() override
Definition: item_timefunc.h:557
Field * tmp_table_field(TABLE *table) override
Definition: item_timefunc.h:568
my_decimal * val_decimal(my_decimal *decimal_value) override
Definition: item_timefunc.cc:855
sql_mode_t sql_mode
Definition: item_timefunc.h:534
double val_real() override
Definition: item_timefunc.h:572
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_timefunc.h:546
Item_result result_type() const override
Definition: item_timefunc.h:556
bool get_time(MYSQL_TIME *ltime) override
Definition: item_timefunc.cc:890
Item_temporal_hybrid_func(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:553
virtual bool val_datetime(MYSQL_TIME *ltime, my_time_flags_t fuzzy_date)=0
Get "native" temporal value as MYSQL_TIME.
Item_temporal_hybrid_func(Item *a, Item *b)
Definition: item_timefunc.h:551
String * val_str(String *str) override
Return string value in @character_set_connection.
Definition: item_timefunc.h:581
String * val_str_ascii(String *str) override
Return string value in ASCII character set.
Definition: item_timefunc.cc:901
longlong val_int() override
Definition: item_timefunc.h:571
String ascii_buf
Definition: item_timefunc.h:535
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_timefunc.cc:848
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override
Definition: item_timefunc.cc:876
Abstract class for functions returning TIME values.
Definition: item_timefunc.h:698
type_conversion_status save_in_field_inner(Field *field, bool) override
Helper function which does all of the work for save_in_field(Field*, bool), except some error checkin...
Definition: item_timefunc.h:700
longlong val_int() override
Definition: item_timefunc.h:728
String * val_str(String *str) override
Definition: item_timefunc.h:733
Item_time_func(const POS &pos, Item *a)
Definition: item_timefunc.h:712
Item_time_func(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_timefunc.h:719
Item_time_func(Item *a)
Definition: item_timefunc.h:709
longlong val_time_temporal() override
Return time value of item in packed longlong format.
Definition: item_timefunc.cc:925
my_decimal * val_decimal(my_decimal *decimal_value) override
Definition: item_timefunc.h:724
Item_time_func(const POS &pos)
Definition: item_timefunc.h:706
bool get_time(MYSQL_TIME *res) override=0
double val_real() override
Definition: item_timefunc.h:723
Item_time_func(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:715
bool get_date(MYSQL_TIME *res, my_time_flags_t) override
Definition: item_timefunc.h:730
Item_time_func()
Definition: item_timefunc.h:705
TIME'10:10:10'.
Definition: item_timefunc.h:889
bool get_time(MYSQL_TIME *ltime) override
Definition: item_timefunc.h:910
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:918
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:919
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_timefunc.h:923
bool eq_specific(const Item *item) const override
Provide a more specific equality check for a function.
Definition: item_timefunc.cc:970
bool basic_const_item() const override
Returns true if this is a simple constant item like an integer, not a constant expression.
Definition: item_timefunc.h:920
Item_time_literal(MYSQL_TIME *ltime, uint dec_arg)
Constructor for Item_time_literal.
Definition: item_timefunc.h:898
const char * func_name() const override
Definition: item_timefunc.h:903
void print(const THD *thd, String *str, enum_query_type query_type) const override
Appends function name with argument list or fractional seconds part to the String str.
Definition: item_timefunc.cc:975
longlong val_time_temporal() override
Return time value of item in packed longlong format.
Definition: item_timefunc.h:906
table_map used_tables() const override
Definition: item_timefunc.h:921
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_timefunc.h:922
String * val_str(String *str) override
Definition: item_timefunc.h:914
MYSQL_TIME_cache cached_time
Definition: item_timefunc.h:890
Definition: item_timefunc.h:377
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override
Definition: item_timefunc.h:394
virtual bool val_timeval(my_timeval *tm)=0
Return timestamp in "struct timeval" format.
longlong val_int() override
Definition: item_timefunc.cc:1667
String * val_str(String *str) override
Definition: item_timefunc.cc:1687
Item_timeval_func(const POS &pos, Item *a)
Definition: item_timefunc.h:382
my_decimal * val_decimal(my_decimal *decimal_value) override
Definition: item_timefunc.cc:1672
Item_timeval_func(Item *a)
Definition: item_timefunc.h:381
enum Item_result result_type() const override
Definition: item_timefunc.h:400
Item_timeval_func(const POS &pos)
Definition: item_timefunc.h:379
double val_real() override
Definition: item_timefunc.cc:1680
bool get_time(MYSQL_TIME *ltime) override
Definition: item_timefunc.h:397
Definition: item_timefunc.h:1438
bool m_explicit_cast
Definition: item_timefunc.h:1439
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1450
void print(const THD *thd, String *str, enum_query_type query_type) const override
Appends function name with argument list or fractional seconds part to the String str.
Definition: item_timefunc.cc:2972
const char * cast_type() const
Definition: item_timefunc.h:1461
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.cc:2981
const char * func_name() const override
Definition: item_timefunc.h:1457
bool is_explicit_cast() const
Definition: item_timefunc.h:1459
enum Functype functype() const override
Definition: item_timefunc.h:1458
Item_typecast_date(Item *a, bool explicit_cast)
Definition: item_timefunc.h:1442
Item_typecast_date(const POS &pos, Item *a)
Definition: item_timefunc.h:1446
Definition: item_timefunc.h:1502
Item_typecast_datetime(Item *a, uint8 dec_arg)
Definition: item_timefunc.h:1519
Item_typecast_datetime(const POS &pos, Item *a)
Definition: item_timefunc.h:1511
Item_typecast_datetime(Item *a, bool explicit_cast)
Definition: item_timefunc.h:1507
enum Functype functype() const override
Definition: item_timefunc.h:1526
bool is_explicit_cast() const
Definition: item_timefunc.h:1528
const char * func_name() const override
Definition: item_timefunc.h:1525
bool m_explicit_cast
Definition: item_timefunc.h:1504
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1529
Item_typecast_datetime(const POS &pos, Item *a, uint8 dec_arg)
Definition: item_timefunc.h:1514
void print(const THD *thd, String *str, enum_query_type query_type) const override
Appends function name with argument list or fractional seconds part to the String str.
Definition: item_timefunc.cc:2912
bool detect_precision_from_arg
Definition: item_timefunc.h:1503
bool get_date(MYSQL_TIME *res, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.cc:2922
const char * cast_type() const
Definition: item_timefunc.h:1527
Definition: item_timefunc.h:1464
Item_typecast_time(Item *a, uint8 dec_arg)
Definition: item_timefunc.h:1480
Item_typecast_time(const POS &pos, Item *a)
Definition: item_timefunc.h:1472
bool is_explicit_cast() const
Definition: item_timefunc.h:1488
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1491
Item_typecast_time(const POS &pos, Item *a, uint8 dec_arg)
Definition: item_timefunc.h:1475
bool get_time(MYSQL_TIME *ltime) override
Definition: item_timefunc.cc:2960
const char * cast_type() const
Definition: item_timefunc.h:1490
enum Functype functype() const override
Definition: item_timefunc.h:1487
bool detect_precision_from_arg
Definition: item_timefunc.h:1465
Item_typecast_time(Item *a)
Definition: item_timefunc.h:1469
void print(const THD *thd, String *str, enum_query_type query_type) const override
Appends function name with argument list or fractional seconds part to the String str.
Definition: item_timefunc.cc:2950
const char * func_name() const override
Definition: item_timefunc.h:1486
bool m_explicit_cast
Definition: item_timefunc.h:1466
Definition: item_timefunc.h:298
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1535
Item_typecast_year(const POS &pos, Item *a)
Definition: item_timefunc.h:300
longlong val_int() override
Definition: item_timefunc.cc:1551
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_timefunc.cc:1544
enum Functype functype() const override
Definition: item_timefunc.h:305
const char * func_name() const override
Definition: item_timefunc.h:304
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:930
void set_nullable(bool nullable)
Definition: item.h:3687
void set_data_type_date()
Set all type properties for Item of DATE type.
Definition: item.h:1696
DTCollation collation
Character set and collation properties assigned for this Item.
Definition: item.h:3583
longlong val_int_from_decimal()
Definition: item.cc:481
void set_data_type(enum_field_types data_type)
Set the data type of the current Item.
Definition: item.h:1513
longlong val_int_from_datetime()
Definition: item.cc:512
bool get_time_from_string(MYSQL_TIME *ltime)
Convert val_str() to time in MYSQL_TIME.
Definition: item.cc:1648
static const CHARSET_INFO * default_charset()
Definition: item.cc:1760
String * val_string_from_date(String *str)
Definition: item.cc:335
double val_real_from_decimal()
Definition: item.cc:463
String * val_string_from_datetime(String *str)
Definition: item.cc:325
bool get_date_from_time(MYSQL_TIME *ltime)
Convert get_time() from time to date in MYSQL_TIME.
Definition: item.cc:1598
bool get_time_from_datetime(MYSQL_TIME *ltime)
Convert datetime to time.
Definition: item.cc:1693
longlong val_int_from_date()
Definition: item.cc:504
void set_data_type_year()
Set the data type of the Item to be YEAR.
Definition: item.h:1774
Field * tmp_table_field_from_field_type(TABLE *table, bool fixed_length) const
Create a field based on field_type of argument.
Definition: item.cc:6516
bool get_time_from_date(MYSQL_TIME *ltime)
Convert date to time.
Definition: item.cc:1685
enum_field_types data_type() const
Retrieve the derived data type of the Item.
Definition: item.h:1481
bool fixed
True if item has been resolved.
Definition: item.h:3675
longlong val_int_from_time()
Definition: item.cc:490
bool null_value
True if item is null.
Definition: item.h:3712
void set_data_type_datetime(uint8 fsp)
Set all properties for Item of DATETIME type.
Definition: item.h:1721
virtual uint datetime_precision()
DATETIME precision of the item: 0..6.
Definition: item.cc:843
bool get_date_from_numeric(MYSQL_TIME *ltime, my_time_flags_t fuzzydate)
Convert a numeric type to date.
Definition: item.cc:1608
my_decimal * val_decimal_from_date(my_decimal *decimal_value)
Definition: item.cc:388
@ MARKER_NONE
Definition: item.h:3604
bool get_date_from_string(MYSQL_TIME *ltime, my_time_flags_t flags)
Convert val_str() to date in MYSQL_TIME.
Definition: item.cc:1561
type_conversion_status save_time_in_field(Field *field)
Definition: item.cc:535
item_marker marker
This member has several successive meanings, depending on the phase we're in (.
Definition: item.h:3644
bool get_time_from_numeric(MYSQL_TIME *ltime)
Convert a numeric type to time.
Definition: item.cc:1700
uint8 decimals
Number of decimals in result when evaluating this item.
Definition: item.h:3684
void set_data_type_string(uint32 max_l)
Set the Item to be variable length string.
Definition: item.h:1600
bool get_date_from_int(MYSQL_TIME *ltime, my_time_flags_t flags)
Convert val_int() to date in MYSQL_TIME.
Definition: item.cc:1589
String * val_string_from_time(String *str)
Definition: item.cc:345
void set_data_type_longlong()
Set the data type of the Item to be longlong.
Definition: item.h:1555
void set_data_type_time(uint8 fsp)
Set all type properties for Item of TIME type.
Definition: item.h:1708
void set_data_type_decimal(uint8 precision, uint8 scale)
Set the data type of the Item to be decimal.
Definition: item.h:1569
my_decimal * val_decimal_from_time(my_decimal *decimal_value)
Definition: item.cc:397
type_conversion_status save_date_in_field(Field *field)
Definition: item.cc:542
bool get_time_from_int(MYSQL_TIME *ltime)
Convert val_int() to time in MYSQL_TIME.
Definition: item.cc:1676
Represents a JSON container value of type "object" (ECMA), type J_OBJECT here.
Definition: json_dom.h:367
bool add_alias(std::string_view key, Json_dom *value)
Insert the value into the object.
Definition: json_dom.h:409
Cache for MYSQL_TIME value with various representations.
Definition: item_timefunc.h:747
uint string_length
length of string
Definition: item_timefunc.h:751
bool get_date(MYSQL_TIME *ltime, uint fuzzyflags) const
Store MYSQL_TIME representation into the given date/datetime variable checking date flags.
Definition: item_timefunc.cc:1989
void set_time(MYSQL_TIME *ltime, uint8 dec_arg)
Set time and time_packed from a TIME value.
Definition: item_timefunc.cc:1933
MYSQL_TIME * get_TIME_ptr()
Return pointer to MYSQL_TIME representation.
Definition: item_timefunc.h:832
bool get_time(MYSQL_TIME *ltime) const
Store MYSQL_TIME representation into the given time variable.
Definition: item_timefunc.h:825
longlong val_packed() const
Return packed representation.
Definition: item_timefunc.h:813
MYSQL_TIME_cache()
Definition: item_timefunc.h:763
uint8 decimals() const
Return number of decimal digits.
Definition: item_timefunc.h:805
uint8 dec
Number of decimals.
Definition: item_timefunc.h:752
const char * cptr() const
Return C string representation.
Definition: item_timefunc.h:843
longlong time_packed
packed representation
Definition: item_timefunc.h:749
void set_date(MYSQL_TIME *ltime)
Set time and time_packed from a DATE value.
Definition: item_timefunc.cc:1941
MYSQL_TIME time
MYSQL_TIME representation.
Definition: item_timefunc.h:748
void set_datetime(MYSQL_TIME *ltime, uint8 dec_arg, const Time_zone *tz=nullptr)
Set time and time_packed from a DATETIME value.
Definition: item_timefunc.cc:1949
bool eq(const MYSQL_TIME_cache &tm) const
Test if cached value is equal to another MYSQL_TIME_cache value.
Definition: item_timefunc.h:798
String * val_str(String *str)
Store string representation into String.
Definition: item_timefunc.cc:1996
char string_buff[MAX_DATE_STRING_REP_LENGTH]
string representation
Definition: item_timefunc.h:750
void get_TIME(MYSQL_TIME *ltime) const
Store MYSQL_TIME representation into the given MYSQL_TIME variable.
Definition: item_timefunc.h:757
Definition: sql_locale.h:37
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
Base class for parse tree nodes (excluding the Parse_tree_root hierarchy)
Definition: parse_tree_node_base.h:231
Using this class is fraught with peril, and you need to be very careful when doing so.
Definition: sql_string.h:167
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
This class represents abstract time zone and provides basic interface for MYSQL_TIME <-> my_time_t co...
Definition: tztime.h:49
my_decimal class limits 'decimal_t' type to what we need in MySQL.
Definition: my_decimal.h:96
uint64_t sql_mode_t
Definition: dd_event.h:39
enum_query_type
Query type constants (usable as bitmap flags).
Definition: enum_query_type.h:31
This file contains the field type.
@ MYSQL_TYPE_LONGLONG
Definition: field_types.h:64
@ MYSQL_TYPE_TIME
Definition: field_types.h:67
@ MYSQL_TYPE_STRING
Definition: field_types.h:89
@ MYSQL_TYPE_NEWDECIMAL
Definition: field_types.h:81
@ MYSQL_TYPE_DATE
Definition: field_types.h:66
@ MYSQL_TYPE_DATETIME
Definition: field_types.h:68
static const std::string dec("DECRYPTION")
enum monotonicity_info enum_monotonicity_info
const char * interval_names[]
Definition: item_timefunc.cc:2688
bool make_date_time(Date_time_format *format, MYSQL_TIME *l_time, enum_mysql_timestamp_type type, String *str)
Create a formatted date/time value in a string.
Definition: item_timefunc.cc:521
date_time_format
Definition: item_timefunc.h:1668
@ USA_FORMAT
Definition: item_timefunc.h:1669
@ JIS_FORMAT
Definition: item_timefunc.h:1670
@ INTERNAL_FORMAT
Definition: item_timefunc.h:1673
@ EUR_FORMAT
Definition: item_timefunc.h:1672
@ ISO_FORMAT
Definition: item_timefunc.h:1671
bool get_interval_value(Item *args, interval_type int_type, String *str_value, Interval *interval)
Convert a string to a interval value.
Definition: item_timefunc.cc:1758
A better implementation of the UNIX ctype(3) library.
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_bin
Definition: ctype-bin.cc:500
Some integer typedefs for easier portability.
uint8_t uint8
Definition: my_inttypes.h:63
unsigned char uchar
Definition: my_inttypes.h:52
long long int longlong
Definition: my_inttypes.h:55
uint64_t table_map
Definition: my_table_map.h:30
Interface for low level time utilities.
constexpr const int DATETIME_MAX_DECIMALS
Definition: my_time.h:143
unsigned int my_time_flags_t
Flags to str_to_datetime and number_to_datetime.
Definition: my_time.h:94
constexpr const std::size_t MAX_DATE_STRING_REP_LENGTH
Required buffer length for my_time_to_str, my_date_to_str, my_datetime_to_str and TIME_to_string func...
Definition: my_time.h:430
interval_type
Available interval types used in any statement.
Definition: my_time.h:455
@ INTERVAL_HOUR_SECOND
Definition: my_time.h:470
@ INTERVAL_MONTH
Definition: my_time.h:458
@ INTERVAL_HOUR_MICROSECOND
Definition: my_time.h:473
@ INTERVAL_MINUTE
Definition: my_time.h:462
@ INTERVAL_HOUR_MINUTE
Definition: my_time.h:469
@ INTERVAL_DAY
Definition: my_time.h:460
@ INTERVAL_MINUTE_MICROSECOND
Definition: my_time.h:474
@ INTERVAL_MINUTE_SECOND
Definition: my_time.h:471
@ INTERVAL_QUARTER
Definition: my_time.h:457
@ INTERVAL_YEAR
Definition: my_time.h:456
@ INTERVAL_DAY_MICROSECOND
Definition: my_time.h:472
@ INTERVAL_SECOND_MICROSECOND
Definition: my_time.h:475
@ INTERVAL_SECOND
Definition: my_time.h:463
@ INTERVAL_DAY_HOUR
Definition: my_time.h:466
@ INTERVAL_HOUR
Definition: my_time.h:461
@ INTERVAL_YEAR_MONTH
Definition: my_time.h:465
@ INTERVAL_DAY_SECOND
Definition: my_time.h:468
@ INTERVAL_MICROSECOND
Definition: my_time.h:464
@ INTERVAL_DAY_MINUTE
Definition: my_time.h:467
Time declarations shared between the server and client API: you should not add anything to this heade...
enum_mysql_timestamp_type
Definition: mysql_time.h:45
@ MYSQL_TIMESTAMP_NONE
Definition: mysql_time.h:46
static int interval
Definition: mysqladmin.cc:71
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1105
static PFS_engine_table_share_proxy table
Definition: pfs.cc:61
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::list< T, ut::allocator< T > > list
Specialization of list which uses ut_allocator.
Definition: ut0new.h:2880
required string type
Definition: replication_group_member_actions.proto:34
"public" interface to sys_var - server configuration variables.
type_conversion_status
Status when storing a value in a field or converting from one datatype to another.
Definition: field.h:204
@ VGS_CHECK_CONSTRAINT
Definition: field.h:478
@ VGS_GENERATED_COLUMN
Definition: field.h:476
File containing constants that can be used throughout the server.
constexpr const table_map RAND_TABLE_BIT
Definition: sql_const.h:113
constexpr const table_map INNER_TABLE_BIT
Definition: sql_const.h:111
Our own string classes, used pervasively throughout the executor.
Definition: m_ctype.h:421
Struct used to pass around arguments to/from check_function_as_value_generator.
Definition: item.h:488
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
Struct representing a duration.
Definition: my_time.h:228
Definition: mysql_time.h:82
enum enum_mysql_timestamp_type time_type
Definition: mysql_time.h:86
Bison "location" class.
Definition: parse_location.h:43
Environment data for the contextualization phase.
Definition: parse_tree_node_base.h:420
Replacement of system's struct timeval to ensure we can carry 64 bit values even on a platform which ...
Definition: my_time_t.h:45
static task_arg int_arg(int i)
Definition: task.h:165
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
@ INT_RESULT
double
Definition: udf_registration_types.h:43