summaryrefslogtreecommitdiff
path: root/sql/protocol.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/protocol.cc')
-rw-r--r--sql/protocol.cc38
1 files changed, 21 insertions, 17 deletions
diff --git a/sql/protocol.cc b/sql/protocol.cc
index 0fe759cff67..d7a745d371d 100644
--- a/sql/protocol.cc
+++ b/sql/protocol.cc
@@ -833,12 +833,17 @@ bool Protocol_simple::store(TIME *tm)
field_pos++;
#endif
char buff[40];
- String tmp((char*) buff,sizeof(buff),&my_charset_bin);
- DATETIME_FORMAT *tmp_format= (&t_datetime_frm
- (current_thd, DATETIME_FORMAT_TYPE).datetime_format);
- make_datetime(&tmp, tm, 1, tm->second_part,
- tmp_format->format, tmp_format->format_length, 1);
- return net_store_data((char*) tmp.ptr(), tmp.length());
+ uint length;
+ length= my_sprintf(buff,(buff, "%04d-%02d-%02d %02d:%02d:%02d",
+ (int) tm->year,
+ (int) tm->month,
+ (int) tm->day,
+ (int) tm->hour,
+ (int) tm->minute,
+ (int) tm->second));
+ if (tm->second_part)
+ length+= my_sprintf(buff+length,(buff+length, ".%06d", (int)tm->second_part));
+ return net_store_data((char*) buff, length);
}
@@ -851,10 +856,7 @@ bool Protocol_simple::store_date(TIME *tm)
#endif
char buff[40];
String tmp((char*) buff,sizeof(buff),&my_charset_bin);
- DATETIME_FORMAT *tmp_format= (&t_datetime_frm
- (current_thd, DATE_FORMAT_TYPE).datetime_format);
- make_datetime(&tmp, tm, 1, 0,
- tmp_format->format, tmp_format->format_length, 1);
+ make_date((DATE_TIME_FORMAT *) 0, tm, &tmp);
return net_store_data((char*) tmp.ptr(), tmp.length());
}
@@ -873,14 +875,16 @@ bool Protocol_simple::store_time(TIME *tm)
field_pos++;
#endif
char buff[40];
- String tmp((char*) buff,sizeof(buff),&my_charset_bin);
- DATETIME_FORMAT *tmp_format= (&t_datetime_frm
- (current_thd, TIME_FORMAT_TYPE).datetime_format);
+ uint length;
uint day= (tm->year || tm->month) ? 0 : tm->day;
- tm->hour= (long) day*24L+(long) tm->hour;
- make_datetime(&tmp, tm, 0, tm->second_part,
- tmp_format->format, tmp_format->format_length, 1);
- return net_store_data((char*) tmp.ptr(), tmp.length());
+ length= my_sprintf(buff,(buff, "%s%02ld:%02d:%02d",
+ tm->neg ? "-" : "",
+ (long) day*24L+(long) tm->hour,
+ (int) tm->minute,
+ (int) tm->second));
+ if (tm->second_part)
+ length+= my_sprintf(buff+length,(buff+length, ".%06d", (int)tm->second_part));
+ return net_store_data((char*) buff, length);
}