summaryrefslogtreecommitdiff
path: root/sql/item_timefunc.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/item_timefunc.cc')
-rw-r--r--sql/item_timefunc.cc43
1 files changed, 21 insertions, 22 deletions
diff --git a/sql/item_timefunc.cc b/sql/item_timefunc.cc
index bcb7ddb1054..a5372a4ae60 100644
--- a/sql/item_timefunc.cc
+++ b/sql/item_timefunc.cc
@@ -137,14 +137,12 @@ static bool make_datetime(date_time_format_types format, TIME *ltime,
static bool extract_date_time(DATE_TIME_FORMAT *format,
const char *val, uint length, TIME *l_time)
{
- int weekday= 0, yearday= 0, daypart= 0, len;
+ int weekday= 0, yearday= 0, daypart= 0;
int week_number= -1;
CHARSET_INFO *cs= &my_charset_bin;
int error= 0;
bool usa_time= 0;
bool sunday_first= 0;
- uint part_len= 0;
- const char *val_ptr= val;
const char *val_end= val + length;
const char *ptr= format->format.str;
const char *end= ptr+ format->format.length;
@@ -237,7 +235,7 @@ static bool extract_date_time(DATE_TIME_FORMAT *format,
/* Second part */
case 'f':
tmp= (char*) val_end;
- l_time->second_part= my_strtoll10(val, &tmp, &error);
+ l_time->second_part= (int) my_strtoll10(val, &tmp, &error);
val= tmp;
break;
@@ -673,7 +671,7 @@ longlong Item_func_month::val_int()
String* Item_func_monthname::val_str(String* str)
{
- const char *name;
+ const char *month_name;
uint month=(uint) Item_func_month::val_int();
if (!month) // This is also true for NULL
@@ -682,8 +680,8 @@ String* Item_func_monthname::val_str(String* str)
return (String*) 0;
}
null_value=0;
- name= month_names[month-1];
- str->set(name, strlen(name), system_charset_info);
+ month_name= month_names[month-1];
+ str->set(month_name, strlen(month_name), system_charset_info);
return str;
}
@@ -1221,7 +1219,7 @@ String *Item_func_sec_to_time::val_str(String *str)
sec= (uint) ((ulonglong) seconds % 3600);
ltime.day= 0;
- ltime.hour= seconds/3600;
+ ltime.hour= (uint) (seconds/3600);
ltime.minute= sec/60;
ltime.second= sec % 60;
@@ -1385,7 +1383,6 @@ String *Item_func_from_unixtime::val_str(String *str)
{
struct tm tm_tmp,*start;
time_t tmp=(time_t) args[0]->val_int();
- CHARSET_INFO *cs= &my_charset_bin;
TIME ltime;
if ((null_value=args[0]->null_value))
@@ -1759,6 +1756,7 @@ bool Item_extract::eq(const Item *item, bool binary_cmp) const
return 1;
}
+
void Item_typecast::print(String *str)
{
str->append("cast(", 5);
@@ -1768,6 +1766,7 @@ void Item_typecast::print(String *str)
str->append(')');
}
+
void Item_char_typecast::print(String *str)
{
str->append("cast(", 5);
@@ -1851,9 +1850,8 @@ String *Item_datetime_typecast::val_str(String *str)
if (!get_arg0_date(&ltime,1) &&
!make_datetime(ltime.second_part ? DATE_TIME_MICROSECOND : DATE_TIME,
&ltime, str))
- return str;
+ return str;
-null_date:
null_value=1;
return 0;
}
@@ -1912,8 +1910,8 @@ String *Item_date_typecast::val_str(String *str)
String *Item_func_makedate::val_str(String *str)
{
TIME l_time;
- long daynr= args[1]->val_int();
- long yearnr= args[0]->val_int();
+ long daynr= (long) args[1]->val_int();
+ long yearnr= (long) args[0]->val_int();
long days;
if (args[0]->null_value || args[1]->null_value ||
@@ -1921,7 +1919,7 @@ String *Item_func_makedate::val_str(String *str)
goto err;
days= calc_daynr(yearnr,1,1) + daynr - 1;
- // Day number from year 0 to 9999-12-31
+ /* Day number from year 0 to 9999-12-31 */
if (days >= 0 && days < MAX_DAY_NUMBER)
{
null_value=0;
@@ -2125,7 +2123,8 @@ String *Item_func_timediff::val_str(String *str)
microseconds= l_time1.second_part - l_sign*l_time2.second_part;
seconds= ((longlong) days*86400L + l_time1.hour*3600L +
l_time1.minute*60L + l_time1.second + microseconds/1000000L -
- (longlong)l_sign*(l_time2.hour*3600L+l_time2.minute*60L+l_time2.second));
+ (longlong)l_sign*(l_time2.hour*3600L+l_time2.minute*60L+
+ l_time2.second));
l_time3.neg= 0;
if (seconds < 0)
@@ -2146,7 +2145,7 @@ String *Item_func_timediff::val_str(String *str)
if ((l_time2.neg == l_time1.neg) && l_time1.neg)
l_time3.neg= l_time3.neg ? 0 : 1;
- calc_time_from_sec(&l_time3, seconds, microseconds);
+ calc_time_from_sec(&l_time3, (long) seconds, microseconds);
if (!make_datetime(l_time1.second_part || l_time2.second_part ?
TIME_MICROSECOND : TIME_ONLY,
@@ -2168,9 +2167,9 @@ String *Item_func_maketime::val_str(String *str)
{
TIME ltime;
- long hour= args[0]->val_int();
- long minute= args[1]->val_int();
- long second= args[2]->val_int();
+ long hour= (long) args[0]->val_int();
+ long minute= (long) args[1]->val_int();
+ long second= (long) args[2]->val_int();
if ((null_value=(args[0]->null_value ||
args[1]->null_value ||
@@ -2186,9 +2185,9 @@ String *Item_func_maketime::val_str(String *str)
ltime.neg= 1;
hour= -hour;
}
- ltime.hour= (ulong)hour;
- ltime.minute= (ulong)minute;
- ltime.second= (ulong)second;
+ ltime.hour= (ulong) hour;
+ ltime.minute= (ulong) minute;
+ ltime.second= (ulong) second;
make_time((DATE_TIME_FORMAT *) 0, &ltime, str);
return str;
}