1#ifndef ITEM_TIMEFUNC_INCLUDED
2#define ITEM_TIMEFUNC_INCLUDED
71 const char *
func_name()
const override {
return "period_add"; }
80 const char *
func_name()
const override {
return "period_diff"; }
88 const char *
func_name()
const override {
return "to_days"; }
103 const char *
func_name()
const override {
return "to_seconds"; }
111 int *input_version = (
int *)
int_arg;
113 int output_version = std::max(*input_version, 50500);
114 *input_version = output_version;
129 const char *
func_name()
const override {
return "dayofmonth"; }
162 const char *
func_name()
const override {
return "month"; }
177 const char *
func_name()
const override {
return "monthname"; }
191 const char *
func_name()
const override {
return "dayofyear"; }
204 const char *
func_name()
const override {
return "hour"; }
217 const char *
func_name()
const override {
return "minute"; }
230 const char *
func_name()
const override {
return "quarter"; }
243 const char *
func_name()
const override {
return "second"; }
262 const char *
func_name()
const override {
return "week"; }
272 const char *
func_name()
const override {
return "yearweek"; }
285 const char *
func_name()
const override {
return "year"; }
302 const char *
func_name()
const override {
return "cast_as_year"; }
322 return static_cast<double>(
val_int());
334 return (
odbc_type ?
"dayofweek" :
"weekday");
356 const char *
func_name()
const override {
return "dayname"; }
412 const char *
func_name()
const override {
return "unix_timestamp"; }
446 pointer_cast<Check_function_as_value_generator_parameters *>(p_arg);
458 const char *
func_name()
const override {
return "time_to_sec"; }
528 bool no_conversions)
override;
601 const char *
func_name()
const override {
return "date"; }
842 const char *
func_name()
const override {
return "date_literal"; }
863 bool eq(
const Item *item,
bool binary_cmp)
const override;
883 const char *
func_name()
const override {
return "time_literal"; }
904 bool eq(
const Item *item,
bool binary_cmp)
const override;
926 const char *
func_name()
const override {
return "datetime_literal"; }
948 bool eq(
const Item *item,
bool binary_cmp)
const override;
978 const char *
func_name()
const override {
return "time_zone"; }
1034 pointer_cast<Check_function_as_value_generator_parameters *>(
1049 const char *
func_name()
const override {
return "curtime"; }
1059 const char *
func_name()
const override {
return "utc_time"; }
1089 pointer_cast<Check_function_as_value_generator_parameters *>(
1103 const char *
func_name()
const override {
return "curdate"; }
1112 const char *
func_name()
const override {
return "utc_date"; }
1124 bool no_conversions)
override;
1147 pointer_cast<Check_function_as_value_generator_parameters *>(
1188 const char *
func_name()
const override {
return "utc_timestamp"; }
1200 const char *
func_name()
const override {
return "sysdate"; }
1217 const char *
func_name()
const override {
return "from_days"; }
1237 bool is_time_format_arg =
false)
1245 bool eq(
const Item *item,
bool binary_cmp)
const override;
1252 const char *
func_name()
const override {
return "from_unixtime"; }
1281 const char *
func_name()
const override {
return "convert_tz"; }
1299 const char *
func_name()
const override {
return "sec_to_time"; }
1324 const char *
func_name()
const override {
return "date_add_interval"; }
1327 bool eq(
const Item *item,
bool binary_cmp)
const override;
1354 const char *
func_name()
const override {
return "extract"; }
1356 bool eq(
const Item *item,
bool binary_cmp)
const override;
1415 const char *
func_name()
const override {
return "cast_as_date"; }
1444 const char *
func_name()
const override {
return "cast_as_time"; }
1482 const char *
func_name()
const override {
return "cast_as_datetime"; }
1503 const char *
func_name()
const override {
return "makedate"; }
1528 m_sign(negate ? -1 : 1) {}
1533 m_sign(negate ? -1 : 1) {}
1541 const char *
func_name()
const override {
return "add_time"; }
1550 const char *
func_name()
const override {
return "timediff"; }
1581 const char *
func_name()
const override {
return "maketime"; }
1589 const char *
func_name()
const override {
return "microsecond"; }
1605 const char *
func_name()
const override {
return "timestampdiff"; }
1633 const char *
func_name()
const override {
return "get_format"; }
1653 const char *
func_name()
const override {
return "str_to_date"; }
1662 const char *
func_name()
const override {
return "last_day"; }
1676 const char *
func_name()
const override {
return "internal_update_time"; }
1686 const char *
func_name()
const override {
return "internal_check_time"; }
void set_numeric()
Definition: item.h:211
const CHARSET_INFO * collation
Definition: item.h:177
Implementation class for the DATE_ADD and DATE_SUB functions.
Definition: item_timefunc.h:1309
bool eq(const Item *item, bool binary_cmp) const override
Definition: item_timefunc.cc:2640
enum Functype functype() const override
Definition: item_timefunc.h:1325
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_timefunc.cc:2674
const bool m_subtract
False if function is DATE_ADD, true if function is DATE_SUB.
Definition: item_timefunc.h:1341
bool val_datetime(MYSQL_TIME *ltime, my_time_flags_t fuzzy_date) override
Get "native" temporal value as MYSQL_TIME.
Definition: item_timefunc.cc:2633
const char * func_name() const override
Definition: item_timefunc.h:1324
bool is_subtract() const
Definition: item_timefunc.h:1331
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:2455
bool get_date_internal(MYSQL_TIME *res, my_time_flags_t fuzzy_date)
Definition: item_timefunc.cc:2545
const interval_type m_interval_type
The type of the interval argument.
Definition: item_timefunc.h:1339
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:1320
interval_type get_interval_type() const
Definition: item_timefunc.h:1330
String value
Definition: item_timefunc.h:1342
bool get_time_internal(MYSQL_TIME *res)
Definition: item_timefunc.cc:2580
Item_date_add_interval(const POS &pos, Item *a, Item *b, interval_type type, bool subtract)
Definition: item_timefunc.h:1311
Abstract class for functions returning DATE values.
Definition: item_timefunc.h:575
double val_real() override
Definition: item_timefunc.h:600
bool get_date(MYSQL_TIME *res, my_time_flags_t fuzzy_date) override=0
const char * func_name() const override
Definition: item_timefunc.h:601
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:603
enum Functype functype() const override
Definition: item_timefunc.h:602
Item_date_func(const POS &pos)
Definition: item_timefunc.h:583
Item_date_func()
Definition: item_timefunc.h:582
Item_date_func(Item *a)
Definition: item_timefunc.h:586
Item_date_func(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:590
longlong val_date_temporal() override
Return date value of item in packed longlong format.
Definition: item_timefunc.cc:925
bool get_time(MYSQL_TIME *ltime) override
Definition: item_timefunc.h:594
longlong val_int() override
Definition: item_timefunc.h:598
Item_date_func(const POS &pos, Item *a)
Definition: item_timefunc.h:587
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:577
String * val_str(String *str) override
Definition: item_timefunc.h:597
my_decimal * val_decimal(my_decimal *decimal_value) override
Definition: item_timefunc.h:604
DATE'2010-01-01'.
Definition: item_timefunc.h:829
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:859
Item_date_literal(MYSQL_TIME *ltime)
Constructor for Item_date_literal.
Definition: item_timefunc.h:837
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.h:849
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:857
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:949
bool eq(const Item *item, bool binary_cmp) const override
Definition: item_timefunc.cc:941
const char * func_name() const override
Definition: item_timefunc.h:842
longlong val_date_temporal() override
Return date value of item in packed longlong format.
Definition: item_timefunc.h:845
MYSQL_TIME_cache cached_time
Definition: item_timefunc.h:830
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_timefunc.h:862
table_map used_tables() const override
Definition: item_timefunc.h:860
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:858
String * val_str(String *str) override
Definition: item_timefunc.h:853
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:861
Abstract class for functions returning DATETIME values.
Definition: item_timefunc.h:617
longlong val_int() override
Definition: item_timefunc.h:660
Item_datetime_func(Item *a)
Definition: item_timefunc.h:630
Item_datetime_func(const POS &pos)
Definition: item_timefunc.h:627
Item_datetime_func()
Definition: item_timefunc.h:624
String * val_str(String *str) override
Definition: item_timefunc.h:657
double val_real() override
Definition: item_timefunc.h:656
longlong val_date_temporal() override
Return date value of item in packed longlong format.
Definition: item_timefunc.cc:933
bool get_time(MYSQL_TIME *ltime) override
Definition: item_timefunc.h:666
Item_datetime_func(const POS &pos, PT_item_list *list)
Definition: item_timefunc.h:651
Item_datetime_func(Item *a, Item *b, Item *c)
Definition: item_timefunc.h:640
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:619
Item_datetime_func(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_timefunc.h:643
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:647
my_decimal * val_decimal(my_decimal *decimal_value) override
Definition: item_timefunc.h:662
Item_datetime_func(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:636
Item_datetime_func(const POS &pos, Item *a)
Definition: item_timefunc.h:633
TIMESTAMP'2001-01-01 10:20:30'.
Definition: item_timefunc.h:910
MYSQL_TIME_cache cached_time
Definition: item_timefunc.h:911
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:944
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:942
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:946
enum Functype functype() const override
Definition: item_timefunc.h:927
const char * func_name() const override
Definition: item_timefunc.h:926
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_timefunc.h:947
Item_datetime_literal(MYSQL_TIME *ltime, uint dec_arg, const Time_zone *tz)
Constructor for Item_datetime_literal.
Definition: item_timefunc.h:921
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:943
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 eq(const Item *item, bool binary_cmp) const override
Definition: item_timefunc.cc:955
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.h:934
String * val_str(String *str) override
Definition: item_timefunc.h:938
longlong val_date_temporal() override
Return date value of item in packed longlong format.
Definition: item_timefunc.h:930
table_map used_tables() const override
Definition: item_timefunc.h:945
Add a time expression to a temporal expression, or subtract a time expression from a temporal express...
Definition: item_timefunc.h:1518
int m_sign
+1 for ADD, -1 for SUBTRACT
Definition: item_timefunc.h:1520
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:3011
const char * func_name() const override
Definition: item_timefunc.h:1541
Item_func_add_time(Item *a, Item *b, bool datetime, bool negate)
Definition: item_timefunc.h:1525
const bool m_datetime
True if first argument expected to be datetime.
Definition: item_timefunc.h:1519
int sign() const
Definition: item_timefunc.h:1543
enum Functype functype() const override
Definition: item_timefunc.h:1542
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:3054
Item_func_add_time(const POS &pos, Item *a, Item *b, bool datetime, bool negate)
Definition: item_timefunc.h:1529
Item_func_add_time(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:1535
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_timefunc.cc:3123
This function implements the AT TIME ZONE operator, which casts a temporal value to a temporal with t...
Definition: item_timefunc.h:968
bool check_type() const
Definition: item_timefunc.cc:1032
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:984
bool set_time_zone(THD *thd)
Definition: item_timefunc.cc:996
const char * func_name() const override
Definition: item_timefunc.h:978
bool m_is_interval
Whether the syntax used the INTERVAL construction.
Definition: item_timefunc.h:1000
bool get_date(MYSQL_TIME *res, my_time_flags_t) override
Definition: item_timefunc.cc:1007
const char * m_specifier_string
The specifier string argument, not used after resolution.
Definition: item_timefunc.h:994
const Time_zone * m_tz
The time zone that the specifier string argument resolves to.
Definition: item_timefunc.h:991
const char * specifier_string() const
Definition: item_timefunc.h:984
Item_func_at_time_zone(const POS &pos, Item *datetime, const char *specifier_string, bool is_interval)
Definition: item_timefunc.h:970
Definition: item_timefunc.h:1266
const char * func_name() const override
Definition: item_timefunc.h:1281
bool get_date(MYSQL_TIME *res, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.cc:2411
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:2403
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_timefunc.cc:2449
Time_zone * from_tz
Definition: item_timefunc.h:1274
Item_func_convert_tz(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_timefunc.h:1277
bool from_tz_cached
Definition: item_timefunc.h:1273
bool to_tz_cached
Definition: item_timefunc.h:1273
enum Functype functype() const override
Definition: item_timefunc.h:1282
Time_zone * to_tz
Definition: item_timefunc.h:1274
Definition: item_timefunc.h:1097
Time_zone * time_zone() override
Definition: item_timefunc.cc:1985
const char * func_name() const override
Definition: item_timefunc.h:1103
Item_func_curdate_local(const POS &pos)
Definition: item_timefunc.h:1102
Definition: item_timefunc.h:1106
Time_zone * time_zone() override
Definition: item_timefunc.cc:1989
Item_func_curdate_utc(const POS &pos)
Definition: item_timefunc.h:1111
const char * func_name() const override
Definition: item_timefunc.h:1112
Abstract CURDATE function.
Definition: item_timefunc.h:1067
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1980
Item_date_func super
Definition: item_timefunc.h:1068
longlong val_date_temporal() override
Return date value of item in packed longlong format.
Definition: item_timefunc.cc:1991
String * val_str(String *) override
Definition: item_timefunc.cc:2005
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:1087
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_timefunc.cc:1973
bool get_date(MYSQL_TIME *res, my_time_flags_t) override
Definition: item_timefunc.cc:1998
Item_func_curdate(const POS &pos)
Definition: item_timefunc.h:1074
table_map get_initial_pseudo_tables() const override
This function must assign a new value for each execution.
Definition: item_timefunc.h:1079
Definition: item_timefunc.h:1042
Item_func_curtime_local(const POS &pos, uint8 dec_arg)
Definition: item_timefunc.h:1047
const char * func_name() const override
Definition: item_timefunc.h:1049
Time_zone * time_zone() override
Definition: item_timefunc.cc:2070
Definition: item_timefunc.h:1052
Time_zone * time_zone() override
Definition: item_timefunc.cc:2074
const char * func_name() const override
Definition: item_timefunc.h:1059
Item_func_curtime_utc(const POS &pos, uint8 dec_arg)
Definition: item_timefunc.h:1057
Abstract CURTIME function. Children should define what time zone is used.
Definition: item_timefunc.h:1004
virtual Time_zone * time_zone()=0
String * val_str(String *) override
Definition: item_timefunc.cc:2057
table_map get_initial_pseudo_tables() const override
This function must assign a new value for each execution.
Definition: item_timefunc.h:1024
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:2026
bool get_time(MYSQL_TIME *ltime) override
Definition: item_timefunc.cc:2049
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:1032
Item_func_curtime(const POS &pos, uint8 dec_arg)
Constructor for Item_func_curtime.
Definition: item_timefunc.h:1017
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_timefunc.cc:2019
longlong val_time_temporal() override
Return time value of item in packed longlong format.
Definition: item_timefunc.cc:2041
Item_time_func super
Definition: item_timefunc.h:1005
TS-TODO: Item_func_dayname should be derived from Item_str_func.
Definition: item_timefunc.h:350
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override
Definition: item_timefunc.h:359
enum Item_result result_type() const override
Definition: item_timefunc.h:365
bool get_time(MYSQL_TIME *ltime) override
Definition: item_timefunc.h:362
const char * func_name() const override
Definition: item_timefunc.h:356
Item_func_dayname(const POS &pos, Item *a)
Definition: item_timefunc.h:354
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1477
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:367
String * val_str(String *str) override
Definition: item_timefunc.cc:1488
MY_LOCALE * locale
Definition: item_timefunc.h:351
enum Functype functype() const override
Definition: item_timefunc.h:357
Definition: item_timefunc.h:124
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:133
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1244
Item_func_dayofmonth(const POS &pos, Item *a)
Definition: item_timefunc.h:126
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:132
const char * func_name() const override
Definition: item_timefunc.h:129
longlong val_int() override
Definition: item_timefunc.cc:1254
enum Functype functype() const override
Definition: item_timefunc.h:130
Definition: item_timefunc.h:187
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1226
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:195
longlong val_int() override
Definition: item_timefunc.cc:1236
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:194
Item_func_dayofyear(const POS &pos, Item *a)
Definition: item_timefunc.h:189
const char * func_name() const override
Definition: item_timefunc.h:191
enum Functype functype() const override
Definition: item_timefunc.h:192
Definition: item_timefunc.h:1214
const char * func_name() const override
Definition: item_timefunc.h:1217
Item_func_from_days(const POS &pos, Item *a)
Definition: item_timefunc.h:1216
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:1221
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1224
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:1219
bool get_date(MYSQL_TIME *res, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.cc:1879
enum Functype functype() const override
Definition: item_timefunc.h:1220
Definition: item_timefunc.h:1248
bool get_date(MYSQL_TIME *res, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.cc:2350
const char * func_name() const override
Definition: item_timefunc.h:1252
Item_func_from_unixtime(const POS &pos, Item *a)
Definition: item_timefunc.h:1250
enum Functype functype() const override
Definition: item_timefunc.h:1253
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:2342
Definition: item_timefunc.h:200
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1322
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:208
longlong val_int() override
Definition: item_timefunc.cc:1331
const char * func_name() const override
Definition: item_timefunc.h:204
enum Functype functype() const override
Definition: item_timefunc.h:205
Item_func_hour(const POS &pos, Item *a)
Definition: item_timefunc.h:202
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:207
Definition: item_timefunc.h:1681
enum Functype functype() const override
Definition: item_timefunc.h:1685
bool get_date(MYSQL_TIME *res, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.cc:3740
const char * func_name() const override
Definition: item_timefunc.h:1686
Item_func_internal_check_time(const POS &pos, PT_item_list *list)
Definition: item_timefunc.h:1683
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:3732
Definition: item_timefunc.h:1671
const char * func_name() const override
Definition: item_timefunc.h:1676
enum Functype functype() const override
Definition: item_timefunc.h:1675
Item_func_internal_update_time(const POS &pos, PT_item_list *list)
Definition: item_timefunc.h:1673
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:3653
bool get_date(MYSQL_TIME *res, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.cc:3661
Definition: item_timefunc.h:1657
Item_func_last_day(const POS &pos, Item *a)
Definition: item_timefunc.h:1659
const char * func_name() const override
Definition: item_timefunc.h:1662
enum Functype functype() const override
Definition: item_timefunc.h:1663
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1665
bool get_date(MYSQL_TIME *res, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.cc:3629
Definition: item_timefunc.h:1497
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1506
enum Functype functype() const override
Definition: item_timefunc.h:1505
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:2982
Item_func_makedate(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:1499
const char * func_name() const override
Definition: item_timefunc.h:1503
Definition: item_timefunc.h:1568
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1574
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:3207
Item_func_maketime(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_timefunc.h:1570
const char * func_name() const override
Definition: item_timefunc.h:1581
Definition: item_timefunc.h:1585
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:1593
longlong val_int() override
MICROSECOND(a) is a function ( extraction) that extracts the microseconds from a.
Definition: item_timefunc.cc:3280
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:3286
enum Functype functype() const override
Definition: item_timefunc.h:1590
Item_func_microsecond(const POS &pos, Item *a)
Definition: item_timefunc.h:1587
const char * func_name() const override
Definition: item_timefunc.h:1589
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:1592
Definition: item_timefunc.h:213
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1337
const char * func_name() const override
Definition: item_timefunc.h:217
longlong val_int() override
Definition: item_timefunc.cc:1346
Item_func_minute(const POS &pos, Item *a)
Definition: item_timefunc.h:215
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:220
enum Functype functype() const override
Definition: item_timefunc.h:218
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:221
TS-TODO: This should probably have Item_int_func as parent class.
Definition: item_timefunc.h:141
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1260
double val_real() override
Definition: item_timefunc.h:148
enum Item_result result_type() const override
Definition: item_timefunc.h:164
longlong val_int() override
Definition: item_timefunc.cc:1270
const char * func_name() const override
Definition: item_timefunc.h:162
String * val_str(String *str) override
Definition: item_timefunc.h:152
bool get_time(MYSQL_TIME *ltime) override
Definition: item_timefunc.h:161
Item_func_month(const POS &pos, Item *a)
Definition: item_timefunc.h:143
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:167
enum Functype functype() const override
Definition: item_timefunc.h:163
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:166
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override
Definition: item_timefunc.h:158
Definition: item_timefunc.h:172
Item_func_monthname(const POS &pos, Item *a)
Definition: item_timefunc.h:176
MY_LOCALE * locale
Definition: item_timefunc.h:173
const char * func_name() const override
Definition: item_timefunc.h:177
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:182
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:181
String * val_str(String *str) override
Definition: item_timefunc.cc:1287
enum Functype functype() const override
Definition: item_timefunc.h:178
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1276
Definition: item_timefunc.h:1155
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:2086
Time_zone * time_zone() override
Definition: item_timefunc.cc:2093
const char * func_name() const override
Definition: item_timefunc.h:1172
Item_func_now_local(const POS &pos, uint8 dec_arg)
Definition: item_timefunc.h:1169
enum Functype functype() const override
Definition: item_timefunc.h:1173
Item_func_now_local(uint8 dec_arg)
Definition: item_timefunc.h:1168
Definition: item_timefunc.h:1176
const char * func_name() const override
Definition: item_timefunc.h:1188
Item_func_now_utc(const POS &pos, uint8 dec_arg)
Definition: item_timefunc.h:1183
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_timefunc.cc:2095
Item_func_now super
Definition: item_timefunc.h:1177
Time_zone * time_zone() override
Definition: item_timefunc.cc:2102
Abstract CURRENT_TIMESTAMP function.
Definition: item_timefunc.h:1120
Item_func_now(uint8 dec_arg)
Constructor for Item_func_now.
Definition: item_timefunc.h:1131
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:2133
longlong val_date_temporal() override
Return date value of item in packed longlong format.
Definition: item_timefunc.cc:2104
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:2078
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:1145
String * val_str(String *) override
Definition: item_timefunc.cc:2120
table_map get_initial_pseudo_tables() const override
This function must assign a new value for each execution.
Definition: item_timefunc.h:1137
bool get_date(MYSQL_TIME *res, my_time_flags_t) override
Definition: item_timefunc.cc:2112
Item_func_now(const POS &pos, uint8 dec_arg)
Definition: item_timefunc.h:1132
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:1046
longlong val_int() override
Definition: item_timefunc.cc:1050
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:75
const char * func_name() const override
Definition: item_timefunc.h:80
Item_func_period_diff(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:77
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1064
longlong val_int() override
Definition: item_timefunc.cc:1068
Definition: item_timefunc.h:226
const char * func_name() const override
Definition: item_timefunc.h:230
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:233
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:234
enum Functype functype() const override
Definition: item_timefunc.h:231
Item_func_quarter(const POS &pos, Item *a)
Definition: item_timefunc.h:228
longlong val_int() override
Returns the quarter of the year.
Definition: item_timefunc.cc:1315
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1302
Definition: item_timefunc.h:1288
const char * func_name() const override
Definition: item_timefunc.h:1299
Item_func_sec_to_time(const POS &pos, Item *item)
Definition: item_timefunc.h:1290
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1292
bool get_time(MYSQL_TIME *ltime) override
Definition: item_timefunc.cc:2165
Definition: item_timefunc.h:239
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:247
const char * func_name() const override
Definition: item_timefunc.h:243
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:246
enum Functype functype() const override
Definition: item_timefunc.h:244
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1352
Item_func_second(const POS &pos, Item *a)
Definition: item_timefunc.h:241
longlong val_int() override
Returns the second in time_exp in the range of 0 - 59.
Definition: item_timefunc.cc:1364
Definition: item_timefunc.h:1643
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:3546
Item_func_str_to_date(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:1651
bool val_datetime(MYSQL_TIME *ltime, my_time_flags_t fuzzy_date) override
Get "native" temporal value as MYSQL_TIME.
Definition: item_timefunc.cc:3579
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:3496
const char * func_name() const override
Definition: item_timefunc.h:1653
enum_mysql_timestamp_type cached_timestamp_type
Definition: item_timefunc.h:1644
SYSDATE() is like NOW(), but always uses the real current time, not the query_start().
Definition: item_timefunc.h:1195
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:1209
const char * func_name() const override
Definition: item_timefunc.h:1200
Item_func_sysdate_local(uint8 dec_arg)
Definition: item_timefunc.h:1197
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:2159
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:2146
Definition: item_timefunc.h:453
enum Functype functype() const override
Definition: item_timefunc.h:459
longlong val_int() override
Definition: item_timefunc.cc:1713
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:461
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1706
Item_func_time_to_sec(const POS &pos, Item *item)
Definition: item_timefunc.h:455
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:462
const char * func_name() const override
Definition: item_timefunc.h:458
Definition: item_timefunc.h:1546
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:3151
Item_func_timediff(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:1548
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1551
const char * func_name() const override
Definition: item_timefunc.h:1550
Definition: item_timefunc.h:1598
interval_type intervaltype() const
Definition: item_timefunc.h:1607
const char * func_name() const override
Definition: item_timefunc.h:1605
enum Functype functype() const override
Definition: item_timefunc.h:1606
longlong val_int() override
Definition: item_timefunc.cc:3292
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_timefunc.cc:3388
Item_func_timestamp_diff(const POS &pos, Item *a, Item *b, interval_type type_arg)
Definition: item_timefunc.h:1602
const interval_type int_type
Definition: item_timefunc.h:1599
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1609
Definition: item_timefunc.h:84
Item_func_to_days(const POS &pos, Item *a)
Definition: item_timefunc.h:86
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1083
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:93
longlong val_int() override
Definition: item_timefunc.cc:1096
enum Functype functype() const override
Definition: item_timefunc.h:89
const char * func_name() const override
Definition: item_timefunc.h:88
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:94
longlong val_int_endpoint(bool left_endp, bool *incl_endp) override
Definition: item_timefunc.cc:1177
enum_monotonicity_info get_monotonicity_info() const override
Definition: item_timefunc.cc:1158
Definition: item_timefunc.h:99
bool intro_version(uchar *int_arg) override
Definition: item_timefunc.h:110
enum_monotonicity_info get_monotonicity_info() const override
Definition: item_timefunc.cc:1168
Item_func_to_seconds(const POS &pos, Item *a)
Definition: item_timefunc.h:101
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1126
longlong val_int() override
Definition: item_timefunc.cc:1132
enum Functype functype() const override
Definition: item_timefunc.h:104
const char * func_name() const override
Definition: item_timefunc.h:103
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:108
longlong val_int_endpoint(bool left_endp, bool *incl_endp) override
Definition: item_timefunc.cc:1103
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:119
Definition: item_timefunc.h:401
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:418
longlong val_int_endpoint(bool left_endp, bool *incl_endp) override
Definition: item_timefunc.cc:1697
const char * func_name() const override
Definition: item_timefunc.h:412
Item_func_unix_timestamp(const POS &pos)
Definition: item_timefunc.h:405
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:440
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:427
Item_timeval_func super
Definition: item_timefunc.h:402
enum_monotonicity_info get_monotonicity_info() const override
Definition: item_timefunc.cc:1690
Item_func_unix_timestamp(Item *a)
Definition: item_timefunc.h:407
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:424
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_timefunc.cc:1668
enum Functype functype() const override
Definition: item_timefunc.h:413
Item_func_unix_timestamp(const POS &pos, Item *a)
Definition: item_timefunc.h:409
bool val_timeval(my_timeval *tm) override
Definition: item_timefunc.cc:1679
Definition: item_timefunc.h:252
const char * func_name() const override
Definition: item_timefunc.h:262
longlong val_int() override
Definition: item_timefunc.cc:1429
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_timefunc.cc:1376
Item_func_week(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:257
Item_func_week(Item *a, Item *b)
Definition: item_timefunc.h:256
Item_int_func super
Definition: item_timefunc.h:253
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1387
enum Functype functype() const override
Definition: item_timefunc.h:263
TS-TODO: This should probably have Item_int_func as parent class.
Definition: item_timefunc.h:310
Item_func_weekday(const POS &pos, Item *a, bool type_arg)
Definition: item_timefunc.h:314
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:339
const char * func_name() const override
Definition: item_timefunc.h:333
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:340
double val_real() override
Definition: item_timefunc.h:320
String * val_str(String *str) override
Definition: item_timefunc.h:324
bool odbc_type
Definition: item_timefunc.h:311
enum Item_result result_type() const override
Definition: item_timefunc.h:337
enum Functype functype() const override
Definition: item_timefunc.h:336
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1457
bool get_time(MYSQL_TIME *ltime) override
Definition: item_timefunc.h:332
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override
Definition: item_timefunc.h:329
longlong val_int() override
Definition: item_timefunc.cc:1466
Definition: item_timefunc.h:281
enum Functype functype() const override
Definition: item_timefunc.h:286
longlong val_int_endpoint(bool left_endp, bool *incl_endp) override
Definition: item_timefunc.cc:1612
enum_monotonicity_info get_monotonicity_info() const override
Definition: item_timefunc.cc:1604
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:290
const char * func_name() const override
Definition: item_timefunc.h:285
longlong val_int() override
Definition: item_timefunc.cc:1509
Item_func_year(const POS &pos, Item *a)
Definition: item_timefunc.h:283
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1502
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:291
Definition: item_timefunc.h:267
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:275
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1437
enum Functype functype() const override
Definition: item_timefunc.h:273
longlong val_int() override
Definition: item_timefunc.cc:1447
Item_func_yearweek(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:269
bool check_valid_arguments_processor(uchar *) override
Definition: item_timefunc.h:276
const char * func_name() const override
Definition: item_timefunc.h:272
Definition: item_func.h:102
bool param_type_uses_non_param(THD *thd, enum_field_types def=MYSQL_TYPE_VARCHAR)
Definition: item_func.cc:607
Item ** args
Array of pointers to arguments.
Definition: item_func.h:109
Functype
Definition: item_func.h:185
@ DATEADD_FUNC
Definition: item_func.h:290
@ YEAR_FUNC
Definition: item_func.h:271
@ HOUR_FUNC
Definition: item_func.h:281
@ TIME_TO_SEC_FUNC
Definition: item_func.h:295
@ FROM_UNIXTIME_FUNC
Definition: item_func.h:291
@ NOW_FUNC
Definition: item_func.h:226
@ FROM_DAYS_FUNC
Definition: item_func.h:227
@ CONVERT_TZ_FUNC
Definition: item_func.h:292
@ DD_INTERNAL_FUNC
Definition: item_func.h:241
@ DAY_FUNC
Definition: item_func.h:276
@ MAKEDATE_FUNC
Definition: item_func.h:273
@ DATE_FUNC
Definition: item_func.h:280
@ TIMESTAMPDIFF_FUNC
Definition: item_func.h:296
@ SECOND_FUNC
Definition: item_func.h:283
@ EXTRACT_FUNC
Definition: item_func.h:232
@ MONTH_FUNC
Definition: item_func.h:274
@ TO_SECONDS_FUNC
Definition: item_func.h:279
@ MICROSECOND_FUNC
Definition: item_func.h:284
@ QUARTER_FUNC
Definition: item_func.h:287
@ MONTHNAME_FUNC
Definition: item_func.h:275
@ TYPECAST_FUNC
Definition: item_func.h:233
@ LAST_DAY_FUNC
Definition: item_func.h:293
@ WEEKDAY_FUNC
Definition: item_func.h:289
@ ADDTIME_FUNC
Definition: item_func.h:286
@ DAYOFYEAR_FUNC
Definition: item_func.h:285
@ DAYNAME_FUNC
Definition: item_func.h:277
@ DATETIME_LITERAL
Definition: item_func.h:297
@ MINUTE_FUNC
Definition: item_func.h:282
@ TO_DAYS_FUNC
Definition: item_func.h:278
@ WEEK_FUNC
Definition: item_func.h:288
@ YEARWEEK_FUNC
Definition: item_func.h:272
@ UNIX_TIMESTAMP_FUNC
Definition: item_func.h:294
bool has_timestamp_args()
Definition: item_func.h:577
enum Type type() const override
Definition: item_func.h:316
bool param_type_is_default(THD *thd, uint start, uint end, uint step, enum_field_types def)
For arguments of this Item_func ("args" array), in range [start, start+step, start+2*step,...
Definition: item_func.cc:519
bool propagate_type(THD *thd, const Type_properties &type) override
Default implementation for all functions: Propagate base_item's type into all arguments.
Definition: item_func.cc:495
bool has_date_args()
Definition: item_func.h:587
uint arg_count
How many arguments in 'args'.
Definition: item_func.h:132
bool has_time_args()
Definition: item_func.h:598
bool has_datetime_args()
Definition: item_func.h:609
Definition: item_func.h:935
virtual const char * func_name() const =0
Definition: item_strfunc.h:144
Definition: item_strfunc.h:76
String * val_str_from_val_str_ascii(String *str, String *str2)
Definition: item_strfunc.cc:142
Abstract class for functions returning TIME, DATE, DATETIME types whose data type is known at constru...
Definition: item_timefunc.h:471
Item_temporal_func()
Definition: item_timefunc.h:476
Item_temporal_func(const POS &pos, Item *a)
Definition: item_timefunc.h:480
Item_temporal_func(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:482
Item_temporal_func(const POS &pos)
Definition: item_timefunc.h:477
Item_temporal_func(Item *a)
Definition: item_timefunc.h:479
Item_temporal_func(Item *a, Item *b, Item *c)
Definition: item_timefunc.h:484
Field * tmp_table_field(TABLE *table) override
Definition: item_timefunc.h:496
Item_temporal_func(const POS &pos, PT_item_list *list)
Definition: item_timefunc.h:489
bool check_precision()
Definition: item_timefunc.cc:800
Item_temporal_func(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_timefunc.h:485
Item_temporal_func(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_timefunc.h:487
uint datetime_precision() override
DATETIME precision of the item: 0..6.
Definition: item_timefunc.h:503
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:820
uint time_precision() override
TIME precision of the item: 0..6.
Definition: item_timefunc.h:499
const CHARSET_INFO * charset_for_protocol() override
Definition: item_timefunc.h:493
Item_result result_type() const override
Definition: item_timefunc.h:492
Abstract class for functions returning TIME, DATE, DATETIME or string values, whose data type depends...
Definition: item_timefunc.h:515
const CHARSET_INFO * charset_for_protocol() override
Definition: item_timefunc.h:537
Field * tmp_table_field(TABLE *table) override
Definition: item_timefunc.h:548
my_decimal * val_decimal(my_decimal *decimal_value) override
Definition: item_timefunc.cc:849
sql_mode_t sql_mode
Definition: item_timefunc.h:517
double val_real() override
Definition: item_timefunc.h:552
Item_result result_type() const override
Definition: item_timefunc.h:536
bool get_time(MYSQL_TIME *ltime) override
Definition: item_timefunc.cc:884
Item_temporal_hybrid_func(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:533
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:531
String * val_str(String *str) override
Return string value in @character_set_connection.
Definition: item_timefunc.h:561
String * val_str_ascii(String *str) override
Return string value in ASCII character set.
Definition: item_timefunc.cc:895
longlong val_int() override
Definition: item_timefunc.h:551
String ascii_buf
Definition: item_timefunc.h:518
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:842
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override
Definition: item_timefunc.cc:870
Abstract class for functions returning TIME values.
Definition: item_timefunc.h:678
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:680
longlong val_int() override
Definition: item_timefunc.h:708
String * val_str(String *str) override
Definition: item_timefunc.h:713
Item_time_func(const POS &pos, Item *a)
Definition: item_timefunc.h:692
Item_time_func(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_timefunc.h:699
Item_time_func(Item *a)
Definition: item_timefunc.h:689
longlong val_time_temporal() override
Return time value of item in packed longlong format.
Definition: item_timefunc.cc:919
my_decimal * val_decimal(my_decimal *decimal_value) override
Definition: item_timefunc.h:704
Item_time_func(const POS &pos)
Definition: item_timefunc.h:686
bool get_time(MYSQL_TIME *res) override=0
double val_real() override
Definition: item_timefunc.h:703
Item_time_func(const POS &pos, Item *a, Item *b)
Definition: item_timefunc.h:695
bool get_date(MYSQL_TIME *res, my_time_flags_t) override
Definition: item_timefunc.h:710
Item_time_func()
Definition: item_timefunc.h:685
TIME'10:10:10'.
Definition: item_timefunc.h:869
bool get_time(MYSQL_TIME *ltime) override
Definition: item_timefunc.h:890
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:898
bool check_partition_func_processor(uchar *) override
Check if a partition function is allowed.
Definition: item_timefunc.h:899
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_timefunc.h:903
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:900
Item_time_literal(MYSQL_TIME *ltime, uint dec_arg)
Constructor for Item_time_literal.
Definition: item_timefunc.h:878
const char * func_name() const override
Definition: item_timefunc.h:883
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:978
longlong val_time_temporal() override
Return time value of item in packed longlong format.
Definition: item_timefunc.h:886
bool eq(const Item *item, bool binary_cmp) const override
Definition: item_timefunc.cc:970
table_map used_tables() const override
Definition: item_timefunc.h:901
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:902
String * val_str(String *str) override
Definition: item_timefunc.h:894
MYSQL_TIME_cache cached_time
Definition: item_timefunc.h:870
Definition: item_timefunc.h:373
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override
Definition: item_timefunc.h:390
virtual bool val_timeval(my_timeval *tm)=0
Return timestamp in "struct timeval" format.
longlong val_int() override
Definition: item_timefunc.cc:1639
String * val_str(String *str) override
Definition: item_timefunc.cc:1659
Item_timeval_func(const POS &pos, Item *a)
Definition: item_timefunc.h:378
my_decimal * val_decimal(my_decimal *decimal_value) override
Definition: item_timefunc.cc:1644
Item_timeval_func(Item *a)
Definition: item_timefunc.h:377
enum Item_result result_type() const override
Definition: item_timefunc.h:396
Item_timeval_func(const POS &pos)
Definition: item_timefunc.h:375
double val_real() override
Definition: item_timefunc.cc:1652
bool get_time(MYSQL_TIME *ltime) override
Definition: item_timefunc.h:393
Definition: item_timefunc.h:1397
bool m_explicit_cast
Definition: item_timefunc.h:1398
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1409
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:2936
const char * cast_type() const
Definition: item_timefunc.h:1419
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.cc:2945
const char * func_name() const override
Definition: item_timefunc.h:1415
bool is_explicit_cast() const
Definition: item_timefunc.h:1417
enum Functype functype() const override
Definition: item_timefunc.h:1416
Item_typecast_date(Item *a, bool explicit_cast)
Definition: item_timefunc.h:1401
Item_typecast_date(const POS &pos, Item *a)
Definition: item_timefunc.h:1405
Definition: item_timefunc.h:1459
Item_typecast_datetime(Item *a, uint8 dec_arg)
Definition: item_timefunc.h:1476
Item_typecast_datetime(const POS &pos, Item *a)
Definition: item_timefunc.h:1468
Item_typecast_datetime(Item *a, bool explicit_cast)
Definition: item_timefunc.h:1464
enum Functype functype() const override
Definition: item_timefunc.h:1483
bool is_explicit_cast() const
Definition: item_timefunc.h:1485
const char * func_name() const override
Definition: item_timefunc.h:1482
bool m_explicit_cast
Definition: item_timefunc.h:1461
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1486
Item_typecast_datetime(const POS &pos, Item *a, uint8 dec_arg)
Definition: item_timefunc.h:1471
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:2876
bool detect_precision_from_arg
Definition: item_timefunc.h:1460
bool get_date(MYSQL_TIME *res, my_time_flags_t fuzzy_date) override
Definition: item_timefunc.cc:2886
const char * cast_type() const
Definition: item_timefunc.h:1484
Definition: item_timefunc.h:1422
Item_typecast_time(Item *a, uint8 dec_arg)
Definition: item_timefunc.h:1438
Item_typecast_time(const POS &pos, Item *a)
Definition: item_timefunc.h:1430
bool is_explicit_cast() const
Definition: item_timefunc.h:1446
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.h:1449
Item_typecast_time(const POS &pos, Item *a, uint8 dec_arg)
Definition: item_timefunc.h:1433
bool get_time(MYSQL_TIME *ltime) override
Definition: item_timefunc.cc:2924
const char * cast_type() const
Definition: item_timefunc.h:1448
enum Functype functype() const override
Definition: item_timefunc.h:1445
bool detect_precision_from_arg
Definition: item_timefunc.h:1423
Item_typecast_time(Item *a)
Definition: item_timefunc.h:1427
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:2914
const char * func_name() const override
Definition: item_timefunc.h:1444
bool m_explicit_cast
Definition: item_timefunc.h:1424
Definition: item_timefunc.h:296
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_timefunc.cc:1515
Item_typecast_year(const POS &pos, Item *a)
Definition: item_timefunc.h:298
longlong val_int() override
Definition: item_timefunc.cc:1523
enum Functype functype() const override
Definition: item_timefunc.h:303
const char * func_name() const override
Definition: item_timefunc.h:302
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:853
void set_nullable(bool nullable)
Definition: item.h:3472
void set_data_type_date()
Set all type properties for Item of DATE type.
Definition: item.h:1548
DTCollation collation
Character set and collation properties assigned for this Item.
Definition: item.h:3374
longlong val_int_from_decimal()
Definition: item.cc:455
void set_data_type(enum_field_types data_type)
Set the data type of the current Item.
Definition: item.h:1394
longlong val_int_from_datetime()
Definition: item.cc:486
bool get_time_from_string(MYSQL_TIME *ltime)
Convert val_str() to time in MYSQL_TIME.
Definition: item.cc:1540
static const CHARSET_INFO * default_charset()
Definition: item.cc:1652
String * val_string_from_date(String *str)
Definition: item.cc:309
double val_real_from_decimal()
Definition: item.cc:437
String * val_string_from_datetime(String *str)
Definition: item.cc:299
bool get_date_from_time(MYSQL_TIME *ltime)
Convert get_time() from time to date in MYSQL_TIME.
Definition: item.cc:1490
bool get_time_from_datetime(MYSQL_TIME *ltime)
Convert datetime to time.
Definition: item.cc:1585
longlong val_int_from_date()
Definition: item.cc:478
void set_data_type_year()
Set the data type of the Item to be YEAR.
Definition: item.h:1613
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:6419
bool get_time_from_date(MYSQL_TIME *ltime)
Convert date to time.
Definition: item.cc:1577
enum_field_types data_type() const
Retrieve the derived data type of the Item.
Definition: item.h:1362
bool fixed
True if item has been resolved.
Definition: item.h:3460
longlong val_int_from_time()
Definition: item.cc:464
bool null_value
True if item is null.
Definition: item.h:3497
void set_data_type_datetime(uint8 fsp)
Set all properties for Item of DATETIME type.
Definition: item.h:1572
virtual uint datetime_precision()
DATETIME precision of the item: 0..6.
Definition: item.cc:691
bool get_date_from_numeric(MYSQL_TIME *ltime, my_time_flags_t fuzzydate)
Convert a numeric type to date.
Definition: item.cc:1500
my_decimal * val_decimal_from_date(my_decimal *decimal_value)
Definition: item.cc:362
@ MARKER_NONE
Definition: item.h:3395
bool get_date_from_string(MYSQL_TIME *ltime, my_time_flags_t flags)
Convert val_str() to date in MYSQL_TIME.
Definition: item.cc:1453
type_conversion_status save_time_in_field(Field *field)
Definition: item.cc:509
item_marker marker
This member has several successive meanings, depending on the phase we're in (.
Definition: item.h:3435
bool get_time_from_numeric(MYSQL_TIME *ltime)
Convert a numeric type to time.
Definition: item.cc:1592
uint8 decimals
Number of decimals in result when evaluating this item.
Definition: item.h:3469
void set_data_type_string(uint32 max_l)
Set the Item to be variable length string.
Definition: item.h:1459
bool get_date_from_int(MYSQL_TIME *ltime, my_time_flags_t flags)
Convert val_int() to date in MYSQL_TIME.
Definition: item.cc:1481
String * val_string_from_time(String *str)
Definition: item.cc:319
void set_data_type_longlong()
Set the data type of the Item to be longlong.
Definition: item.h:1416
void set_data_type_time(uint8 fsp)
Set all type properties for Item of TIME type.
Definition: item.h:1560
void set_data_type_decimal(uint8 precision, uint8 scale)
Set the data type of the Item to be decimal.
Definition: item.h:1429
my_decimal * val_decimal_from_time(my_decimal *decimal_value)
Definition: item.cc:371
type_conversion_status save_date_in_field(Field *field)
Definition: item.cc:516
bool get_time_from_int(MYSQL_TIME *ltime)
Convert val_int() to time in MYSQL_TIME.
Definition: item.cc:1568
Cache for MYSQL_TIME value with various representations.
Definition: item_timefunc.h:727
uint string_length
length of string
Definition: item_timefunc.h:731
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:1959
void set_time(MYSQL_TIME *ltime, uint8 dec_arg)
Set time and time_packed from a TIME value.
Definition: item_timefunc.cc:1903
MYSQL_TIME * get_TIME_ptr()
Return pointer to MYSQL_TIME representation.
Definition: item_timefunc.h:812
bool get_time(MYSQL_TIME *ltime) const
Store MYSQL_TIME representation into the given time variable.
Definition: item_timefunc.h:805
longlong val_packed() const
Return packed representation.
Definition: item_timefunc.h:793
MYSQL_TIME_cache()
Definition: item_timefunc.h:743
uint8 decimals() const
Return number of decimal digits.
Definition: item_timefunc.h:785
uint8 dec
Number of decimals.
Definition: item_timefunc.h:732
const char * cptr() const
Return C string representation.
Definition: item_timefunc.h:823
longlong time_packed
packed representation
Definition: item_timefunc.h:729
void set_date(MYSQL_TIME *ltime)
Set time and time_packed from a DATE value.
Definition: item_timefunc.cc:1911
MYSQL_TIME time
MYSQL_TIME representation.
Definition: item_timefunc.h:728
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:1919
bool eq(const MYSQL_TIME_cache &tm) const
Test if cached value is equal to another MYSQL_TIME_cache value.
Definition: item_timefunc.h:778
String * val_str(String *str)
Store string representation into String.
Definition: item_timefunc.cc:1966
char string_buff[MAX_DATE_STRING_REP_LENGTH]
string representation
Definition: item_timefunc.h:730
void get_TIME(MYSQL_TIME *ltime) const
Store MYSQL_TIME representation into the given MYSQL_TIME variable.
Definition: item_timefunc.h:737
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:139
Using this class is fraught with peril, and you need to be very careful when doing so.
Definition: sql_string.h:168
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:34
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:94
ulonglong sql_mode_t
Definition: dd_event.h:37
enum_query_type
Query type constants (usable as bitmap flags).
Definition: enum_query_type.h:31
Fido Client Authentication nullptr
Definition: fido_client_plugin.cc:222
This file contains the field type.
@ MYSQL_TYPE_LONGLONG
Definition: field_types.h:62
@ MYSQL_TYPE_TIME
Definition: field_types.h:65
@ MYSQL_TYPE_STRING
Definition: field_types.h:86
@ MYSQL_TYPE_NEWDECIMAL
Definition: field_types.h:78
@ MYSQL_TYPE_DATE
Definition: field_types.h:64
@ MYSQL_TYPE_DATETIME
Definition: field_types.h:66
static const std::string dec("DECRYPTION")
enum monotonicity_info enum_monotonicity_info
const char * interval_names[]
Definition: item_timefunc.cc:2653
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:516
date_time_format
Definition: item_timefunc.h:1618
@ USA_FORMAT
Definition: item_timefunc.h:1619
@ JIS_FORMAT
Definition: item_timefunc.h:1620
@ INTERNAL_FORMAT
Definition: item_timefunc.h:1623
@ EUR_FORMAT
Definition: item_timefunc.h:1622
@ ISO_FORMAT
Definition: item_timefunc.h:1621
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:1728
A better implementation of the UNIX ctype(3) library.
MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_bin
Definition: ctype-bin.cc:511
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:65
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1052
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.
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
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:385
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
Environment data for the contextualization phase.
Definition: parse_tree_node_base.h:121
Bison "location" class.
Definition: parse_location.h:43
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
unsigned int uint
Definition: uca9-dump.cc:75
Item_result
Type of the user defined function return slot and arguments.
Definition: udf_registration_types.h:39
@ STRING_RESULT
not valid for UDFs
Definition: udf_registration_types.h:41
@ DECIMAL_RESULT
not valid for UDFs
Definition: udf_registration_types.h:45
@ INT_RESULT
double
Definition: udf_registration_types.h:43