@@ -549,7 +549,7 @@ class Item_func_seconds_hybrid: public Item_func_numhybrid
549549public:
550550 Item_func_seconds_hybrid (THD *thd): Item_func_numhybrid(thd) {}
551551 Item_func_seconds_hybrid (THD *thd, Item *a): Item_func_numhybrid(thd, a) {}
552- void fix_length_and_dec_generic (uint dec)
552+ void fix_length_and_dec_generic (decimal_digits_t dec)
553553 {
554554 DBUG_ASSERT (dec <= TIME_SECOND_PART_DIGITS);
555555 decimals= dec;
@@ -724,7 +724,8 @@ class Item_func_curtime :public Item_timefunc
724724 MYSQL_TIME ltime;
725725 query_id_t last_query_id;
726726public:
727- Item_func_curtime (THD *thd, uint dec): Item_timefunc(thd), last_query_id(0 )
727+ Item_func_curtime (THD *thd, decimal_digits_t dec):
728+ Item_timefunc (thd), last_query_id(0 )
728729 { decimals= dec; }
729730 bool fix_fields (THD *, Item **) override ;
730731 bool fix_length_and_dec (THD *thd) override
@@ -747,7 +748,8 @@ class Item_func_curtime :public Item_timefunc
747748class Item_func_curtime_local :public Item_func_curtime
748749{
749750public:
750- Item_func_curtime_local (THD *thd, uint dec): Item_func_curtime(thd, dec) {}
751+ Item_func_curtime_local (THD *thd, decimal_digits_t dec):
752+ Item_func_curtime (thd, dec) {}
751753 LEX_CSTRING func_name_cstring () const override
752754 {
753755 static LEX_CSTRING name= {STRING_WITH_LEN (" curtime" ) };
@@ -762,7 +764,8 @@ class Item_func_curtime_local :public Item_func_curtime
762764class Item_func_curtime_utc :public Item_func_curtime
763765{
764766public:
765- Item_func_curtime_utc (THD *thd, uint dec): Item_func_curtime(thd, dec) {}
767+ Item_func_curtime_utc (THD *thd, decimal_digits_t dec):
768+ Item_func_curtime (thd, dec) {}
766769 LEX_CSTRING func_name_cstring () const override
767770 {
768771 static LEX_CSTRING name= {STRING_WITH_LEN (" utc_time" ) };
@@ -828,7 +831,8 @@ class Item_func_now :public Item_datetimefunc
828831 MYSQL_TIME ltime;
829832 query_id_t last_query_id;
830833public:
831- Item_func_now (THD *thd, uint dec): Item_datetimefunc(thd), last_query_id(0 )
834+ Item_func_now (THD *thd, decimal_digits_t dec):
835+ Item_datetimefunc (thd), last_query_id(0 )
832836 { decimals= dec; }
833837 bool fix_fields (THD *, Item **) override ;
834838 bool fix_length_and_dec (THD *thd) override
@@ -850,7 +854,8 @@ class Item_func_now :public Item_datetimefunc
850854class Item_func_now_local :public Item_func_now
851855{
852856public:
853- Item_func_now_local (THD *thd, uint dec): Item_func_now(thd, dec) {}
857+ Item_func_now_local (THD *thd, decimal_digits_t dec):
858+ Item_func_now (thd, dec) {}
854859 LEX_CSTRING func_name_cstring () const override
855860 {
856861 static LEX_CSTRING name= {STRING_WITH_LEN (" current_timestamp" ) };
@@ -867,7 +872,7 @@ class Item_func_now_local :public Item_func_now
867872class Item_func_now_utc :public Item_func_now
868873{
869874public:
870- Item_func_now_utc (THD *thd, uint dec): Item_func_now(thd, dec) {}
875+ Item_func_now_utc (THD *thd, decimal_digits_t dec): Item_func_now(thd, dec) {}
871876 LEX_CSTRING func_name_cstring () const override
872877 {
873878 static LEX_CSTRING name= {STRING_WITH_LEN (" utc_timestamp" ) };
@@ -892,7 +897,8 @@ class Item_func_now_utc :public Item_func_now
892897class Item_func_sysdate_local :public Item_func_now
893898{
894899public:
895- Item_func_sysdate_local (THD *thd, uint dec): Item_func_now(thd, dec) {}
900+ Item_func_sysdate_local (THD *thd, decimal_digits_t dec):
901+ Item_func_now (thd, dec) {}
896902 bool const_item () const override { return 0 ; }
897903 LEX_CSTRING func_name_cstring () const override
898904 {
@@ -1365,7 +1371,7 @@ class Item_date_typecast :public Item_datefunc
13651371class Item_time_typecast :public Item_timefunc
13661372{
13671373public:
1368- Item_time_typecast (THD *thd, Item *a, uint dec_arg):
1374+ Item_time_typecast (THD *thd, Item *a, decimal_digits_t dec_arg):
13691375 Item_timefunc (thd, a) { decimals= dec_arg; }
13701376 LEX_CSTRING func_name_cstring () const override
13711377 {
@@ -1391,7 +1397,7 @@ class Item_time_typecast :public Item_timefunc
13911397class Item_datetime_typecast :public Item_datetimefunc
13921398{
13931399public:
1394- Item_datetime_typecast (THD *thd, Item *a, uint dec_arg):
1400+ Item_datetime_typecast (THD *thd, Item *a, decimal_digits_t dec_arg):
13951401 Item_datetimefunc (thd, a) { decimals= dec_arg; }
13961402 LEX_CSTRING func_name_cstring () const override
13971403 {
@@ -1450,8 +1456,8 @@ class Item_func_timestamp :public Item_datetimefunc
14501456 }
14511457 bool fix_length_and_dec (THD *thd) override
14521458 {
1453- uint dec0= args[0 ]->datetime_precision (thd);
1454- uint dec1= Interval_DDhhmmssff::fsp (thd, args[1 ]);
1459+ decimal_digits_t dec0= args[0 ]->datetime_precision (thd);
1460+ decimal_digits_t dec1= Interval_DDhhmmssff::fsp (thd, args[1 ]);
14551461 fix_attributes_datetime (MY_MAX (dec0, dec1));
14561462 set_maybe_null ();
14571463 return false ;
@@ -1518,8 +1524,8 @@ class Item_func_timediff :public Item_timefunc
15181524 }
15191525 bool fix_length_and_dec (THD *thd) override
15201526 {
1521- uint dec= MY_MAX (args[0 ]->time_precision (thd),
1522- args[1 ]->time_precision (thd));
1527+ decimal_digits_t dec= MY_MAX (args[0 ]->time_precision (thd),
1528+ args[1 ]->time_precision (thd));
15231529 fix_attributes_time (dec);
15241530 set_maybe_null ();
15251531 return FALSE ;
@@ -1691,7 +1697,8 @@ class Item_func_last_day :public Item_datefunc
16911697class Func_handler_date_add_interval
16921698{
16931699protected:
1694- static uint interval_dec (const Item *item, interval_type int_type)
1700+ static decimal_digits_t interval_dec (const Item *item,
1701+ interval_type int_type)
16951702 {
16961703 if (int_type == INTERVAL_MICROSECOND ||
16971704 (int_type >= INTERVAL_DAY_MICROSECOND &&
@@ -1728,8 +1735,9 @@ class Func_handler_date_add_interval_datetime:
17281735public:
17291736 bool fix_length_and_dec (Item_handled_func *item) const override
17301737 {
1731- uint dec= MY_MAX (item->arguments ()[0 ]->datetime_precision (current_thd),
1732- interval_dec (item->arguments ()[1 ], int_type (item)));
1738+ decimal_digits_t dec=
1739+ MY_MAX (item->arguments ()[0 ]->datetime_precision (current_thd),
1740+ interval_dec (item->arguments ()[1 ], int_type (item)));
17331741 item->fix_attributes_datetime (dec);
17341742 return false ;
17351743 }
@@ -1787,8 +1795,9 @@ class Func_handler_date_add_interval_time:
17871795public:
17881796 bool fix_length_and_dec (Item_handled_func *item) const override
17891797 {
1790- uint dec= MY_MAX (item->arguments ()[0 ]->time_precision (current_thd),
1791- interval_dec (item->arguments ()[1 ], int_type (item)));
1798+ decimal_digits_t dec=
1799+ MY_MAX (item->arguments ()[0 ]->time_precision (current_thd),
1800+ interval_dec (item->arguments ()[1 ], int_type (item)));
17921801 item->fix_attributes_time (dec);
17931802 return false ;
17941803 }
@@ -1812,8 +1821,9 @@ class Func_handler_date_add_interval_string:
18121821public:
18131822 bool fix_length_and_dec (Item_handled_func *item) const override
18141823 {
1815- uint dec= MY_MAX (item->arguments ()[0 ]->datetime_precision (current_thd),
1816- interval_dec (item->arguments ()[1 ], int_type (item)));
1824+ decimal_digits_t dec=
1825+ MY_MAX (item->arguments ()[0 ]->datetime_precision (current_thd),
1826+ interval_dec (item->arguments ()[1 ], int_type (item)));
18171827 item->Type_std_attributes ::set (
18181828 Type_temporal_attributes_not_fixed_dec (MAX_DATETIME_WIDTH, dec, false ),
18191829 DTCollation (item->default_charset (),
@@ -1854,8 +1864,8 @@ class Func_handler_add_time_datetime:
18541864 bool fix_length_and_dec (Item_handled_func *item) const override
18551865 {
18561866 THD *thd= current_thd;
1857- uint dec0= item->arguments ()[0 ]->datetime_precision (thd);
1858- uint dec1= Interval_DDhhmmssff::fsp (thd, item->arguments ()[1 ]);
1867+ decimal_digits_t dec0= item->arguments ()[0 ]->datetime_precision (thd);
1868+ decimal_digits_t dec1= Interval_DDhhmmssff::fsp (thd, item->arguments ()[1 ]);
18591869 item->fix_attributes_datetime (MY_MAX (dec0, dec1));
18601870 return false ;
18611871 }
@@ -1888,8 +1898,8 @@ class Func_handler_add_time_time:
18881898 bool fix_length_and_dec (Item_handled_func *item) const override
18891899 {
18901900 THD *thd= current_thd;
1891- uint dec0= item->arguments ()[0 ]->time_precision (thd);
1892- uint dec1= Interval_DDhhmmssff::fsp (thd, item->arguments ()[1 ]);
1901+ decimal_digits_t dec0= item->arguments ()[0 ]->time_precision (thd);
1902+ decimal_digits_t dec1= Interval_DDhhmmssff::fsp (thd, item->arguments ()[1 ]);
18931903 item->fix_attributes_time (MY_MAX (dec0, dec1));
18941904 return false ;
18951905 }
@@ -1920,9 +1930,10 @@ class Func_handler_add_time_string:
19201930 { }
19211931 bool fix_length_and_dec (Item_handled_func *item) const override
19221932 {
1923- uint dec0= item->arguments ()[0 ]->decimals ;
1924- uint dec1= Interval_DDhhmmssff::fsp (current_thd, item->arguments ()[1 ]);
1925- uint dec= MY_MAX (dec0, dec1);
1933+ decimal_digits_t dec0= item->arguments ()[0 ]->decimals ;
1934+ decimal_digits_t dec1=
1935+ Interval_DDhhmmssff::fsp (current_thd, item->arguments ()[1 ]);
1936+ decimal_digits_t dec= MY_MAX (dec0, dec1);
19261937 item->Type_std_attributes ::set (
19271938 Type_temporal_attributes_not_fixed_dec (MAX_DATETIME_WIDTH, dec, false ),
19281939 DTCollation (item->default_charset (),
0 commit comments