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"; }
456 pointer_cast<Check_function_as_value_generator_parameters *>(p_arg);
468 const char *
func_name()
const override {
return "time_to_sec"; }
544 bool no_conversions)
override;
620 const char *
func_name()
const override {
return "date"; }
861 const char *
func_name()
const override {
return "date_literal"; }
882 bool eq(
const Item *item,
bool binary_cmp)
const override;
902 const char *
func_name()
const override {
return "time_literal"; }
923 bool eq(
const Item *item,
bool binary_cmp)
const override;
945 const char *
func_name()
const override {
return "datetime_literal"; }
967 bool eq(
const Item *item,
bool binary_cmp)
const override;
997 const char *
func_name()
const override {
return "time_zone"; }
1057 pointer_cast<Check_function_as_value_generator_parameters *>(
1072 const char *
func_name()
const override {
return "curtime"; }
1082 const char *
func_name()
const override {
return "utc_time"; }
1112 pointer_cast<Check_function_as_value_generator_parameters *>(
1126 const char *
func_name()
const override {
return "curdate"; }
1135 const char *
func_name()
const override {
return "utc_date"; }
1147 bool no_conversions)
override;
1175 pointer_cast<Check_function_as_value_generator_parameters *>(
1216 const char *
func_name()
const override {
return "utc_timestamp"; }
1228 const char *
func_name()
const override {
return "sysdate"; }
1246 const char *
func_name()
const override {
return "from_days"; }
1266 bool is_time_format_arg =
false)
1274 bool eq(
const Item *item,
bool binary_cmp)
const override;
1281 const char *
func_name()
const override {
return "from_unixtime"; }
1310 const char *
func_name()
const override {
return "convert_tz"; }
1328 const char *
func_name()
const override {
return "sec_to_time"; }
1356 const char *
func_name()
const override {
return "date_add_interval"; }
1359 bool eq(
const Item *item,
bool binary_cmp)
const override;
1389 const char *
func_name()
const override {
return "extract"; }
1391 bool eq(
const Item *item,
bool binary_cmp)
const override;
1450 const char *
func_name()
const override {
return "cast_as_date"; }
1479 const char *
func_name()
const override {
return "cast_as_time"; }
1517 const char *
func_name()
const override {
return "cast_as_datetime"; }
1538 const char *
func_name()
const override {
return "makedate"; }
1563 m_sign(negate ? -1 : 1) {}
1568 m_sign(negate ? -1 : 1) {}
1576 const char *
func_name()
const override {
return "add_time"; }
1585 const char *
func_name()
const override {
return "timediff"; }
1617 const char *
func_name()
const override {
return "maketime"; }
1626 const char *
func_name()
const override {
return "microsecond"; }
1642 const char *
func_name()
const override {
return "timestampdiff"; }
1670 const char *
func_name()
const override {
return "get_format"; }
1694 const char *
func_name()
const override {
return "str_to_date"; }
1703 const char *
func_name()
const override {
return "last_day"; }
1717 const char *
func_name()
const override {
return "internal_update_time"; }
1727 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:215
const CHARSET_INFO * collation
Definition: item.h:181
Implementation class for the DATE_ADD and DATE_SUB functions.
Definition: item_timefunc.h:1339
bool eq(const Item *item, bool binary_cmp) const override
Definition: item_timefunc.cc:2654
enum Functype functype() const override
Definition: item_timefunc.h:1357
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_timefunc.cc:2688
const bool m_subtract
False if function is DATE_ADD, true if function is DATE_SUB.
Definition: item_timefunc.h:1376
Item_temporal_hybrid_func super
Definition: item_timefunc.h:1340
bool val_datetime(MYSQL_TIME *ltime, my_time_flags_t fuzzy_date) override
Get "native" temporal value as MYSQL_TIME.
Definition: item_timefunc.cc:2647
const char * func_name() const override
Definition: item_timefunc.h:1356
bool is_subtract() const
Definition: item_timefunc.h:1363
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_timefunc.cc:2699
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:2469
bool get_date_internal(MYSQL_TIME *res, my_time_flags_t fuzzy_date)
Definition: item_timefunc.cc:2559
const interval_type m_interval_type
The type of the interval argument.
Definition: item_timefunc.h:1374
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:1352
interval_type get_interval_type() const
Definition: item_timefunc.h:1362
String value
Definition: item_timefunc.h:1377
bool get_time_internal(MYSQL_TIME *res)
Definition: item_timefunc.cc:2594
Item_date_add_interval(const POS &pos, Item *a, Item *b, interval_type type, bool subtract)
Definition: item_timefunc.h:1343
Abstract class for functions returning DATE values.
Definition: item_timefunc.h:594
double val_real() override
Definition: item_timefunc.h:619
bool get_date(MYSQL_TIME *res, my_time_flags_t fuzzy_date) override=0
const char * func_name() const override
Definition: item_timefunc.h:620
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:622
enum Functype functype() const override
Definition: item_timefunc.h:621
Item_date_func(const POS &pos)
Definition: item_timefunc.h:602
Item_date_func()
Definition: item_timefunc.h:601
Item_date_func(Item *a)
Definition: item_timefunc.h:605
Item_date_func(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:609
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:613
longlong val_int() override
Definition: item_timefunc.h:617
Item_date_func(const POS &pos, Item *a)
Definition: item_timefunc.h:606
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:596
String * val_str(String *str) override
Definition: item_timefunc.h:616
my_decimal * val_decimal(my_decimal *decimal_value) override
Definition: item_timefunc.h:623
DATE'2010-01-01'.
Definition: item_timefunc.h:848
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:878
Item_date_literal(MYSQL_TIME *ltime)
Constructor for Item_date_literal.
Definition: item_timefunc.h:856
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.h:868
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:876
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:955
bool eq(const Item *item, bool binary_cmp) const override
Definition: item_timefunc.cc:947
const char * func_name() const override
Definition: item_timefunc.h:861
longlong val_date_temporal() override
Return date value of item in packed longlong format.
Definition: item_timefunc.h:864
MYSQL_TIME_cache cached_time
Definition: item_timefunc.h:849
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_timefunc.h:881
table_map used_tables() const override
Definition: item_timefunc.h:879
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:877
String * val_str(String *str) override
Definition: item_timefunc.h:872
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:880
Abstract class for functions returning DATETIME values.
Definition: item_timefunc.h:636
longlong val_int() override
Definition: item_timefunc.h:679
Item_datetime_func(Item *a)
Definition: item_timefunc.h:649
Item_datetime_func(const POS &pos)
Definition: item_timefunc.h:646
Item_datetime_func()
Definition: item_timefunc.h:643
String * val_str(String *str) override
Definition: item_timefunc.h:676
double val_real() override
Definition: item_timefunc.h:675
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:685
Item_datetime_func(const POS &pos, PT_item_list *list)
Definition: item_timefunc.h:670
Item_datetime_func(Item *a, Item *b, Item *c)
Definition: item_timefunc.h:659
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:638
Item_datetime_func(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_timefunc.h:662
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:666
my_decimal * val_decimal(my_decimal *decimal_value) override
Definition: item_timefunc.h:681
Item_datetime_func(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:655
Item_datetime_func(const POS &pos, Item *a)
Definition: item_timefunc.h:652
TIMESTAMP'2001-01-01 10:20:30'.
Definition: item_timefunc.h:929
MYSQL_TIME_cache cached_time
Definition: item_timefunc.h:930
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:963
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:961
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:965
enum Functype functype() const override
Definition: item_timefunc.h:946
const char * func_name() const override
Definition: item_timefunc.h:945
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_timefunc.h:966
Item_datetime_literal(MYSQL_TIME *ltime, uint dec_arg, const Time_zone *tz)
Constructor for Item_datetime_literal.
Definition: item_timefunc.h:940
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:962
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:969
bool eq(const Item *item, bool binary_cmp) const override
Definition: item_timefunc.cc:961
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.h:953
String * val_str(String *str) override
Definition: item_timefunc.h:957
longlong val_date_temporal() override
Return date value of item in packed longlong format.
Definition: item_timefunc.h:949
table_map used_tables() const override
Definition: item_timefunc.h:964
Add a time expression to a temporal expression, or subtract a time expression from a temporal express...
Definition: item_timefunc.h:1553
int m_sign
+1 for ADD, -1 for SUBTRACT
Definition: item_timefunc.h:1555
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:3032
const char * func_name() const override
Definition: item_timefunc.h:1576
Item_func_add_time(Item *a, Item *b, bool datetime, bool negate)
Definition: item_timefunc.h:1560
const bool m_datetime
True if first argument expected to be datetime.
Definition: item_timefunc.h:1554
int sign() const
Definition: item_timefunc.h:1578
enum Functype functype() const override
Definition: item_timefunc.h:1577
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:3076
Item_func_add_time(const POS &pos, Item *a, Item *b, bool datetime, bool negate)
Definition: item_timefunc.h:1564
Item_func_add_time(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:1570
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_timefunc.cc:3145
This function implements the AT TIME ZONE operator, which casts a temporal value to a temporal with t...
Definition: item_timefunc.h:987
bool check_type() const
Definition: item_timefunc.cc:1038
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:990
bool set_time_zone(THD *thd)
Definition: item_timefunc.cc:1002
const char * func_name() const override
Definition: item_timefunc.h:997
bool m_is_interval
Whether the syntax used the INTERVAL construction.
Definition: item_timefunc.h:1019
bool get_date(MYSQL_TIME *res, my_time_flags_t) override
Definition: item_timefunc.cc:1013
const char * m_specifier_string
The specifier string argument, not used after resolution.
Definition: item_timefunc.h:1013
const Time_zone * m_tz
The time zone that the specifier string argument resolves to.
Definition: item_timefunc.h:1010
const char * specifier_string() const
Definition: item_timefunc.h:1003
Item_func_at_time_zone(const POS &pos, Item *datetime, const char *specifier_string, bool is_interval)
Definition: item_timefunc.h:989
Definition: item_timefunc.h:1295
const char * func_name() const override
Definition: item_timefunc.h:1310
bool get_date(MYSQL_TIME *res, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.cc:2425
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:2417
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_timefunc.cc:2463
Time_zone * from_tz
Definition: item_timefunc.h:1303
Item_func_convert_tz(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_timefunc.h:1306
bool from_tz_cached
Definition: item_timefunc.h:1302
bool to_tz_cached
Definition: item_timefunc.h:1302
enum Functype functype() const override
Definition: item_timefunc.h:1311
Time_zone * to_tz
Definition: item_timefunc.h:1303
Definition: item_timefunc.h:1120
Time_zone * time_zone() override
Definition: item_timefunc.cc:1999
const char * func_name() const override
Definition: item_timefunc.h:1126
Item_func_curdate_local(const POS &pos)
Definition: item_timefunc.h:1125
Definition: item_timefunc.h:1129
Time_zone * time_zone() override
Definition: item_timefunc.cc:2003
Item_func_curdate_utc(const POS &pos)
Definition: item_timefunc.h:1134
const char * func_name() const override
Definition: item_timefunc.h:1135
Abstract CURDATE function.
Definition: item_timefunc.h:1090
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1994
Item_date_func super
Definition: item_timefunc.h:1091
longlong val_date_temporal() override
Return date value of item in packed longlong format.
Definition: item_timefunc.cc:2005
String * val_str(String *) override
Definition: item_timefunc.cc:2019
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:1110
bool get_date(MYSQL_TIME *res, my_time_flags_t) override
Definition: item_timefunc.cc:2012
Item_func_curdate(const POS &pos)
Definition: item_timefunc.h:1097
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_timefunc.cc:1987
table_map get_initial_pseudo_tables() const override
This function must assign a new value for each execution.
Definition: item_timefunc.h:1102
Definition: item_timefunc.h:1065
Item_func_curtime_local(const POS &pos, uint8 dec_arg)
Definition: item_timefunc.h:1070
const char * func_name() const override
Definition: item_timefunc.h:1072
Time_zone * time_zone() override
Definition: item_timefunc.cc:2084
Definition: item_timefunc.h:1075
Time_zone * time_zone() override
Definition: item_timefunc.cc:2088
const char * func_name() const override
Definition: item_timefunc.h:1082
Item_func_curtime_utc(const POS &pos, uint8 dec_arg)
Definition: item_timefunc.h:1080
Abstract CURTIME function. Children should define what time zone is used.
Definition: item_timefunc.h:1023
virtual Time_zone * time_zone()=0
String * val_str(String *) override
Definition: item_timefunc.cc:2071
table_map get_initial_pseudo_tables() const override
This function must assign a new value for each execution.
Definition: item_timefunc.h:1047
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:2040
bool get_time(MYSQL_TIME *ltime) override
Definition: item_timefunc.cc:2063
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:1055
Item_func_curtime(const POS &pos, uint8 dec_arg)
Constructor for Item_func_curtime.
Definition: item_timefunc.h:1040
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_timefunc.cc:2033
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_timefunc.h:1030
longlong val_time_temporal() override
Return time value of item in packed longlong format.
Definition: item_timefunc.cc:2055
Item_time_func super
Definition: item_timefunc.h:1024
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:1483
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:1494
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:1250
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:1260
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:1232
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:197
longlong val_int() override
Definition: item_timefunc.cc:1242
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:1243
const char * func_name() const override
Definition: item_timefunc.h:1246
Item_func_from_days(const POS &pos, Item *a)
Definition: item_timefunc.h:1245
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:1250
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1253
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:1248
bool get_date(MYSQL_TIME *res, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.cc:1893
enum Functype functype() const override
Definition: item_timefunc.h:1249
Definition: item_timefunc.h:1277
bool get_date(MYSQL_TIME *res, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.cc:2364
const char * func_name() const override
Definition: item_timefunc.h:1281
Item_func_from_unixtime(const POS &pos, Item *a)
Definition: item_timefunc.h:1279
enum Functype functype() const override
Definition: item_timefunc.h:1282
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:2356
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:1328
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:210
longlong val_int() override
Definition: item_timefunc.cc:1337
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:1722
enum Functype functype() const override
Definition: item_timefunc.h:1726
bool get_date(MYSQL_TIME *res, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.cc:3762
const char * func_name() const override
Definition: item_timefunc.h:1727
Item_func_internal_check_time(const POS &pos, PT_item_list *list)
Definition: item_timefunc.h:1724
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:3754
Definition: item_timefunc.h:1712
const char * func_name() const override
Definition: item_timefunc.h:1717
enum Functype functype() const override
Definition: item_timefunc.h:1716
Item_func_internal_update_time(const POS &pos, PT_item_list *list)
Definition: item_timefunc.h:1714
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:3675
bool get_date(MYSQL_TIME *res, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.cc:3683
Definition: item_timefunc.h:1698
Item_func_last_day(const POS &pos, Item *a)
Definition: item_timefunc.h:1700
const char * func_name() const override
Definition: item_timefunc.h:1703
enum Functype functype() const override
Definition: item_timefunc.h:1704
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1706
bool get_date(MYSQL_TIME *res, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.cc:3651
Definition: item_timefunc.h:1532
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1541
enum Functype functype() const override
Definition: item_timefunc.h:1540
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:3003
Item_func_makedate(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:1534
const char * func_name() const override
Definition: item_timefunc.h:1538
Definition: item_timefunc.h:1604
enum Functype functype() const override
Definition: item_timefunc.h:1618
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1610
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:3229
Item_func_maketime(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_timefunc.h:1606
const char * func_name() const override
Definition: item_timefunc.h:1617
Definition: item_timefunc.h:1622
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:1630
longlong val_int() override
MICROSECOND(a) is a function ( extraction) that extracts the microseconds from a.
Definition: item_timefunc.cc:3302
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:3308
enum Functype functype() const override
Definition: item_timefunc.h:1627
Item_func_microsecond(const POS &pos, Item *a)
Definition: item_timefunc.h:1624
const char * func_name() const override
Definition: item_timefunc.h:1626
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:1629
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:1343
const char * func_name() const override
Definition: item_timefunc.h:219
longlong val_int() override
Definition: item_timefunc.cc:1352
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:1266
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:1276
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:1293
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:1282
Definition: item_timefunc.h:1183
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:2100
Time_zone * time_zone() override
Definition: item_timefunc.cc:2107
const char * func_name() const override
Definition: item_timefunc.h:1200
Item_func_now_local(const POS &pos, uint8 dec_arg)
Definition: item_timefunc.h:1197
enum Functype functype() const override
Definition: item_timefunc.h:1201
Item_func_now_local(uint8 dec_arg)
Definition: item_timefunc.h:1196
Definition: item_timefunc.h:1204
const char * func_name() const override
Definition: item_timefunc.h:1216
Item_func_now_utc(const POS &pos, uint8 dec_arg)
Definition: item_timefunc.h:1211
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_timefunc.cc:2109
Item_func_now super
Definition: item_timefunc.h:1205
Time_zone * time_zone() override
Definition: item_timefunc.cc:2116
Abstract CURRENT_TIMESTAMP function.
Definition: item_timefunc.h:1143
Item_func_now(uint8 dec_arg)
Constructor for Item_func_now.
Definition: item_timefunc.h:1159
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:2147
longlong val_date_temporal() override
Return date value of item in packed longlong format.
Definition: item_timefunc.cc:2118
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:2092
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:1173
String * val_str(String *) override
Definition: item_timefunc.cc:2134
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_timefunc.h:1149
table_map get_initial_pseudo_tables() const override
This function must assign a new value for each execution.
Definition: item_timefunc.h:1165
bool get_date(MYSQL_TIME *res, my_time_flags_t) override
Definition: item_timefunc.cc:2126
Item_func_now(const POS &pos, uint8 dec_arg)
Definition: item_timefunc.h:1160
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:1052
longlong val_int() override
Definition: item_timefunc.cc:1056
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:1070
longlong val_int() override
Definition: item_timefunc.cc:1074
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:1321
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1308
Definition: item_timefunc.h:1317
const char * func_name() const override
Definition: item_timefunc.h:1328
Item_func_sec_to_time(const POS &pos, Item *item)
Definition: item_timefunc.h:1319
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1321
enum Functype functype() const override
Definition: item_timefunc.h:1329
bool get_time(MYSQL_TIME *ltime) override
Definition: item_timefunc.cc:2179
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:1358
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:1370
Definition: item_timefunc.h:1684
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:3568
Item_func_str_to_date(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:1692
bool val_datetime(MYSQL_TIME *ltime, my_time_flags_t fuzzy_date) override
Get "native" temporal value as MYSQL_TIME.
Definition: item_timefunc.cc:3601
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:3518
const char * func_name() const override
Definition: item_timefunc.h:1694
enum_mysql_timestamp_type cached_timestamp_type
Definition: item_timefunc.h:1685
SYSDATE() is like NOW(), but always uses the real current time, not the query_start().
Definition: item_timefunc.h:1223
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:1238
const char * func_name() const override
Definition: item_timefunc.h:1228
Item_func_sysdate_local(uint8 dec_arg)
Definition: item_timefunc.h:1225
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:2173
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:2160
enum Functype functype() const override
Definition: item_timefunc.h:1230
Definition: item_timefunc.h:463
enum Functype functype() const override
Definition: item_timefunc.h:469
longlong val_int() override
Definition: item_timefunc.cc:1727
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:471
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1720
Item_func_time_to_sec(const POS &pos, Item *item)
Definition: item_timefunc.h:465
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:472
const char * func_name() const override
Definition: item_timefunc.h:468
Definition: item_timefunc.h:1581
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:3173
enum Functype functype() const override
Definition: item_timefunc.h:1586
Item_func_timediff(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:1583
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1587
const char * func_name() const override
Definition: item_timefunc.h:1585
Definition: item_timefunc.h:1635
interval_type intervaltype() const
Definition: item_timefunc.h:1644
const char * func_name() const override
Definition: item_timefunc.h:1642
enum Functype functype() const override
Definition: item_timefunc.h:1643
longlong val_int() override
Definition: item_timefunc.cc:3314
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_timefunc.cc:3410
Item_func_timestamp_diff(const POS &pos, Item *a, Item *b, interval_type type_arg)
Definition: item_timefunc.h:1639
const interval_type int_type
Definition: item_timefunc.h:1636
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1646
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:1089
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:1183
enum_monotonicity_info get_monotonicity_info() const override
Definition: item_timefunc.cc:1164
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:1174
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:1138
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:1711
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:450
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:1704
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_timefunc.cc:1681
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:1692
Definition: item_timefunc.h:254
const char * func_name() const override
Definition: item_timefunc.h:264
longlong val_int() override
Definition: item_timefunc.cc:1435
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_timefunc.cc:1382
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:1393
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:1463
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:1472
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:1625
enum_monotonicity_info get_monotonicity_info() const override
Definition: item_timefunc.cc:1617
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:1515
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:1508
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:1443
enum Functype functype() const override
Definition: item_timefunc.h:275
longlong val_int() override
Definition: item_timefunc.cc:1453
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:102
bool param_type_uses_non_param(THD *thd, enum_field_types def=MYSQL_TYPE_VARCHAR)
Definition: item_func.cc:616
Item ** args
Array of pointers to arguments.
Definition: item_func.h:109
Functype
Definition: item_func.h:187
@ DATEADD_FUNC
Definition: item_func.h:294
@ YEAR_FUNC
Definition: item_func.h:274
@ HOUR_FUNC
Definition: item_func.h:285
@ TIME_TO_SEC_FUNC
Definition: item_func.h:299
@ PERIODDIFF_FUNC
Definition: item_func.h:315
@ FROM_UNIXTIME_FUNC
Definition: item_func.h:295
@ MAKETIME_FUNC
Definition: item_func.h:277
@ NOW_FUNC
Definition: item_func.h:229
@ FROM_DAYS_FUNC
Definition: item_func.h:230
@ CONVERT_TZ_FUNC
Definition: item_func.h:296
@ DD_INTERNAL_FUNC
Definition: item_func.h:244
@ DAY_FUNC
Definition: item_func.h:280
@ MAKEDATE_FUNC
Definition: item_func.h:276
@ SEC_TO_TIME_FUNC
Definition: item_func.h:316
@ DATE_FUNC
Definition: item_func.h:284
@ TIMESTAMPDIFF_FUNC
Definition: item_func.h:300
@ SECOND_FUNC
Definition: item_func.h:287
@ PERIODADD_FUNC
Definition: item_func.h:314
@ EXTRACT_FUNC
Definition: item_func.h:235
@ MONTH_FUNC
Definition: item_func.h:278
@ TO_SECONDS_FUNC
Definition: item_func.h:283
@ MICROSECOND_FUNC
Definition: item_func.h:288
@ QUARTER_FUNC
Definition: item_func.h:291
@ TIMEDIFF_FUNC
Definition: item_func.h:313
@ SYSDATE_FUNC
Definition: item_func.h:312
@ MONTHNAME_FUNC
Definition: item_func.h:279
@ TYPECAST_FUNC
Definition: item_func.h:236
@ LAST_DAY_FUNC
Definition: item_func.h:297
@ WEEKDAY_FUNC
Definition: item_func.h:293
@ ADDTIME_FUNC
Definition: item_func.h:290
@ DAYOFYEAR_FUNC
Definition: item_func.h:289
@ GET_FORMAT_FUNC
Definition: item_func.h:317
@ DAYNAME_FUNC
Definition: item_func.h:281
@ DATETIME_LITERAL
Definition: item_func.h:301
@ MINUTE_FUNC
Definition: item_func.h:286
@ TO_DAYS_FUNC
Definition: item_func.h:282
@ WEEK_FUNC
Definition: item_func.h:292
@ YEARWEEK_FUNC
Definition: item_func.h:275
@ UNIX_TIMESTAMP_FUNC
Definition: item_func.h:298
bool has_timestamp_args()
Definition: item_func.h:624
enum Type type() const override
Definition: item_func.h:332
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:527
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:503
bool has_date_args()
Definition: item_func.h:634
uint arg_count
How many arguments in 'args'.
Definition: item_func.h:132
bool has_time_args()
Definition: item_func.h:645
bool has_datetime_args()
Definition: item_func.h:656
Definition: item_func.h:983
virtual const char * func_name() const =0
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:149
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:481
Item_temporal_func()
Definition: item_timefunc.h:492
Item_temporal_func(const POS &pos, Item *a)
Definition: item_timefunc.h:496
Item_temporal_func(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:498
Item_temporal_func(const POS &pos)
Definition: item_timefunc.h:493
Item_temporal_func(Item *a)
Definition: item_timefunc.h:495
Item_temporal_func(Item *a, Item *b, Item *c)
Definition: item_timefunc.h:500
Field * tmp_table_field(TABLE *table) override
Definition: item_timefunc.h:512
Item_temporal_func(const POS &pos, PT_item_list *list)
Definition: item_timefunc.h:505
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:486
Item_temporal_func(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_timefunc.h:501
Item_temporal_func(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_timefunc.h:503
uint datetime_precision() override
DATETIME precision of the item: 0..6.
Definition: item_timefunc.h:519
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:515
const CHARSET_INFO * charset_for_protocol() override
Definition: item_timefunc.h:509
Item_result result_type() const override
Definition: item_timefunc.h:508
Abstract class for functions returning TIME, DATE, DATETIME or string values, whose data type depends...
Definition: item_timefunc.h:531
const CHARSET_INFO * charset_for_protocol() override
Definition: item_timefunc.h:556
Field * tmp_table_field(TABLE *table) override
Definition: item_timefunc.h:567
my_decimal * val_decimal(my_decimal *decimal_value) override
Definition: item_timefunc.cc:855
sql_mode_t sql_mode
Definition: item_timefunc.h:533
double val_real() override
Definition: item_timefunc.h:571
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_timefunc.h:545
Item_result result_type() const override
Definition: item_timefunc.h:555
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:552
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:550
String * val_str(String *str) override
Return string value in @character_set_connection.
Definition: item_timefunc.h:580
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:570
String ascii_buf
Definition: item_timefunc.h:534
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:697
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:699
longlong val_int() override
Definition: item_timefunc.h:727
String * val_str(String *str) override
Definition: item_timefunc.h:732
Item_time_func(const POS &pos, Item *a)
Definition: item_timefunc.h:711
Item_time_func(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_timefunc.h:718
Item_time_func(Item *a)
Definition: item_timefunc.h:708
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:723
Item_time_func(const POS &pos)
Definition: item_timefunc.h:705
bool get_time(MYSQL_TIME *res) override=0
double val_real() override
Definition: item_timefunc.h:722
Item_time_func(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:714
bool get_date(MYSQL_TIME *res, my_time_flags_t) override
Definition: item_timefunc.h:729
Item_time_func()
Definition: item_timefunc.h:704
TIME'10:10:10'.
Definition: item_timefunc.h:888
bool get_time(MYSQL_TIME *ltime) override
Definition: item_timefunc.h:909
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:917
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:918
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_timefunc.h:922
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:919
Item_time_literal(MYSQL_TIME *ltime, uint dec_arg)
Constructor for Item_time_literal.
Definition: item_timefunc.h:897
const char * func_name() const override
Definition: item_timefunc.h:902
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:984
longlong val_time_temporal() override
Return time value of item in packed longlong format.
Definition: item_timefunc.h:905
bool eq(const Item *item, bool binary_cmp) const override
Definition: item_timefunc.cc:976
table_map used_tables() const override
Definition: item_timefunc.h:920
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:921
String * val_str(String *str) override
Definition: item_timefunc.h:913
MYSQL_TIME_cache cached_time
Definition: item_timefunc.h:889
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:1652
String * val_str(String *str) override
Definition: item_timefunc.cc:1672
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:1657
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:1665
bool get_time(MYSQL_TIME *ltime) override
Definition: item_timefunc.h:397
Definition: item_timefunc.h:1432
bool m_explicit_cast
Definition: item_timefunc.h:1433
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1444
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:2957
const char * cast_type() const
Definition: item_timefunc.h:1454
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.cc:2966
const char * func_name() const override
Definition: item_timefunc.h:1450
bool is_explicit_cast() const
Definition: item_timefunc.h:1452
enum Functype functype() const override
Definition: item_timefunc.h:1451
Item_typecast_date(Item *a, bool explicit_cast)
Definition: item_timefunc.h:1436
Item_typecast_date(const POS &pos, Item *a)
Definition: item_timefunc.h:1440
Definition: item_timefunc.h:1494
Item_typecast_datetime(Item *a, uint8 dec_arg)
Definition: item_timefunc.h:1511
Item_typecast_datetime(const POS &pos, Item *a)
Definition: item_timefunc.h:1503
Item_typecast_datetime(Item *a, bool explicit_cast)
Definition: item_timefunc.h:1499
enum Functype functype() const override
Definition: item_timefunc.h:1518
bool is_explicit_cast() const
Definition: item_timefunc.h:1520
const char * func_name() const override
Definition: item_timefunc.h:1517
bool m_explicit_cast
Definition: item_timefunc.h:1496
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1521
Item_typecast_datetime(const POS &pos, Item *a, uint8 dec_arg)
Definition: item_timefunc.h:1506
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:2897
bool detect_precision_from_arg
Definition: item_timefunc.h:1495
bool get_date(MYSQL_TIME *res, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.cc:2907
const char * cast_type() const
Definition: item_timefunc.h:1519
Definition: item_timefunc.h:1457
Item_typecast_time(Item *a, uint8 dec_arg)
Definition: item_timefunc.h:1473
Item_typecast_time(const POS &pos, Item *a)
Definition: item_timefunc.h:1465
bool is_explicit_cast() const
Definition: item_timefunc.h:1481
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1484
Item_typecast_time(const POS &pos, Item *a, uint8 dec_arg)
Definition: item_timefunc.h:1468
bool get_time(MYSQL_TIME *ltime) override
Definition: item_timefunc.cc:2945
const char * cast_type() const
Definition: item_timefunc.h:1483
enum Functype functype() const override
Definition: item_timefunc.h:1480
bool detect_precision_from_arg
Definition: item_timefunc.h:1458
Item_typecast_time(Item *a)
Definition: item_timefunc.h:1462
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:2935
const char * func_name() const override
Definition: item_timefunc.h:1479
bool m_explicit_cast
Definition: item_timefunc.h:1459
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:1521
Item_typecast_year(const POS &pos, Item *a)
Definition: item_timefunc.h:300
longlong val_int() override
Definition: item_timefunc.cc:1536
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_timefunc.cc:1529
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:936
void set_nullable(bool nullable)
Definition: item.h:3642
void set_data_type_date()
Set all type properties for Item of DATE type.
Definition: item.h:1683
DTCollation collation
Character set and collation properties assigned for this Item.
Definition: item.h:3538
longlong val_int_from_decimal()
Definition: item.cc:477
void set_data_type(enum_field_types data_type)
Set the data type of the current Item.
Definition: item.h:1501
longlong val_int_from_datetime()
Definition: item.cc:508
bool get_time_from_string(MYSQL_TIME *ltime)
Convert val_str() to time in MYSQL_TIME.
Definition: item.cc:1688
static const CHARSET_INFO * default_charset()
Definition: item.cc:1800
String * val_string_from_date(String *str)
Definition: item.cc:331
double val_real_from_decimal()
Definition: item.cc:459
String * val_string_from_datetime(String *str)
Definition: item.cc:321
bool get_date_from_time(MYSQL_TIME *ltime)
Convert get_time() from time to date in MYSQL_TIME.
Definition: item.cc:1638
bool get_time_from_datetime(MYSQL_TIME *ltime)
Convert datetime to time.
Definition: item.cc:1733
longlong val_int_from_date()
Definition: item.cc:500
void set_data_type_year()
Set the data type of the Item to be YEAR.
Definition: item.h:1748
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:6614
bool get_time_from_date(MYSQL_TIME *ltime)
Convert date to time.
Definition: item.cc:1725
enum_field_types data_type() const
Retrieve the derived data type of the Item.
Definition: item.h:1469
bool fixed
True if item has been resolved.
Definition: item.h:3630
longlong val_int_from_time()
Definition: item.cc:486
bool null_value
True if item is null.
Definition: item.h:3667
void set_data_type_datetime(uint8 fsp)
Set all properties for Item of DATETIME type.
Definition: item.h:1707
virtual uint datetime_precision()
DATETIME precision of the item: 0..6.
Definition: item.cc:814
bool get_date_from_numeric(MYSQL_TIME *ltime, my_time_flags_t fuzzydate)
Convert a numeric type to date.
Definition: item.cc:1648
my_decimal * val_decimal_from_date(my_decimal *decimal_value)
Definition: item.cc:384
@ MARKER_NONE
Definition: item.h:3559
bool get_date_from_string(MYSQL_TIME *ltime, my_time_flags_t flags)
Convert val_str() to date in MYSQL_TIME.
Definition: item.cc:1601
type_conversion_status save_time_in_field(Field *field)
Definition: item.cc:531
item_marker marker
This member has several successive meanings, depending on the phase we're in (.
Definition: item.h:3599
bool get_time_from_numeric(MYSQL_TIME *ltime)
Convert a numeric type to time.
Definition: item.cc:1740
uint8 decimals
Number of decimals in result when evaluating this item.
Definition: item.h:3639
void set_data_type_string(uint32 max_l)
Set the Item to be variable length string.
Definition: item.h:1587
bool get_date_from_int(MYSQL_TIME *ltime, my_time_flags_t flags)
Convert val_int() to date in MYSQL_TIME.
Definition: item.cc:1629
String * val_string_from_time(String *str)
Definition: item.cc:341
void set_data_type_longlong()
Set the data type of the Item to be longlong.
Definition: item.h:1543
void set_data_type_time(uint8 fsp)
Set all type properties for Item of TIME type.
Definition: item.h:1695
void set_data_type_decimal(uint8 precision, uint8 scale)
Set the data type of the Item to be decimal.
Definition: item.h:1557
my_decimal * val_decimal_from_time(my_decimal *decimal_value)
Definition: item.cc:393
type_conversion_status save_date_in_field(Field *field)
Definition: item.cc:538
bool get_time_from_int(MYSQL_TIME *ltime)
Convert val_int() to time in MYSQL_TIME.
Definition: item.cc:1716
Represents a JSON container value of type "object" (ECMA), type J_OBJECT here.
Definition: json_dom.h:369
bool add_alias(const std::string &key, Json_dom *value)
Insert the value into the object.
Definition: json_dom.h:411
Cache for MYSQL_TIME value with various representations.
Definition: item_timefunc.h:746
uint string_length
length of string
Definition: item_timefunc.h:750
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:1973
void set_time(MYSQL_TIME *ltime, uint8 dec_arg)
Set time and time_packed from a TIME value.
Definition: item_timefunc.cc:1917
MYSQL_TIME * get_TIME_ptr()
Return pointer to MYSQL_TIME representation.
Definition: item_timefunc.h:831
bool get_time(MYSQL_TIME *ltime) const
Store MYSQL_TIME representation into the given time variable.
Definition: item_timefunc.h:824
longlong val_packed() const
Return packed representation.
Definition: item_timefunc.h:812
MYSQL_TIME_cache()
Definition: item_timefunc.h:762
uint8 decimals() const
Return number of decimal digits.
Definition: item_timefunc.h:804
uint8 dec
Number of decimals.
Definition: item_timefunc.h:751
const char * cptr() const
Return C string representation.
Definition: item_timefunc.h:842
longlong time_packed
packed representation
Definition: item_timefunc.h:748
void set_date(MYSQL_TIME *ltime)
Set time and time_packed from a DATE value.
Definition: item_timefunc.cc:1925
MYSQL_TIME time
MYSQL_TIME representation.
Definition: item_timefunc.h:747
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:1933
bool eq(const MYSQL_TIME_cache &tm) const
Test if cached value is equal to another MYSQL_TIME_cache value.
Definition: item_timefunc.h:797
String * val_str(String *str)
Store string representation into String.
Definition: item_timefunc.cc:1980
char string_buff[MAX_DATE_STRING_REP_LENGTH]
string representation
Definition: item_timefunc.h:749
void get_TIME(MYSQL_TIME *ltime) const
Store MYSQL_TIME representation into the given MYSQL_TIME variable.
Definition: item_timefunc.h:756
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:95
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
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
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:88
@ MYSQL_TYPE_NEWDECIMAL
Definition: field_types.h:80
@ 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:2667
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:1655
@ USA_FORMAT
Definition: item_timefunc.h:1656
@ JIS_FORMAT
Definition: item_timefunc.h:1657
@ INTERNAL_FORMAT
Definition: item_timefunc.h:1660
@ EUR_FORMAT
Definition: item_timefunc.h:1659
@ ISO_FORMAT
Definition: item_timefunc.h:1658
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:1742
A better implementation of the UNIX ctype(3) library.
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_bin
Definition: ctype-bin.cc:509
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:1081
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:2879
required string type
Definition: replication_group_member_actions.proto:34
"public" interface to sys_var - server configuration variables.
File containing constants that can be used throughout the server.
constexpr const table_map RAND_TABLE_BIT
Definition: sql_const.h:111
constexpr const table_map INNER_TABLE_BIT
Definition: sql_const.h:109
Our own string classes, used pervasively throughout the executor.
Definition: m_ctype.h:423
Struct used to pass around arguments to/from check_function_as_value_generator.
Definition: item.h:492
const char * banned_function_name
the name of the function which is not allowed
Definition: item.h:506
Value_generator_source source
Definition: item.h:504
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