statements and negative time/date values".
The bug was in wrong sprintf format used in the client library.
The fix moves TIME -> string conversion functions to sql-common and
utilized them in the client library.
include/my_time.h:
Declarations for new functions shared between the client and server.
libmysql/libmysql.c:
Fix for Bug#6049 "Loss of sign when using prepared statements and negative
time/date values": use the same function as the server to convert
date/time/datetime values to strings.
sql-common/my_time.c:
Implementation of my_{time,datetime,date,TIME}_to_str: it's
needed by the client library, so it should be shared.
sql/field.cc:
Don't create String object if it's not needed.
sql/item.cc:
Don't create String object if it's not needed: TIME_to_string was
moved to my_TIME_to_str, with different arguments.
sql/item_timefunc.cc:
Don't create String object if it's not needed.
sql/mysql_priv.h:
TIME_to_string and MAX_DATE_REP_LENGTH moved to the client library.
MAX_DATE_REP_LENGTH was renamed to MAX_DATE_STRING_REP_LENGTH to not
conflict with the same name in libmysql.c
sql/protocol.cc:
Don't create String object if it's not needed.
sql/time.cc:
Implementation of my_{time,date,datetime,TIME}_to_str moved to my_time.c
shared between the client and the server.
tests/client_test.c:
A test case for Bug#6049.
parameters": when unpacking binary time recieved from client, handle
the case when length is 0: it means all MYSQL_TIME members are zero.
include/my_time.h:
Declaration for set_zero_time: a tiny piece of code, which I
see no reason to not reuse.
libmysql/libmysql.c:
set_zero_time implementation is now shared between client and
server.
sql-common/my_time.c:
set_zero_time implementation added.
sql/sql_prepare.cc:
A fix for Bug#4231 "Wrong result with MYSQL_TIME parameters":
when unpacking binary time recieved from client, handle the
case when length is 0: it means all MYSQL_TIME members are zero.
tests/client_test.c:
Test case for bug#4231 "Wrong result with MYSQL_TIME parameters"
We have to include my_pthread.h since it is the place where localtime_r() is declared
on platforms where this function is missing.
sql-common/my_time.c:
We have to include my_pthread.h since it is the place where localtime_r() is declared
on platforms where this function is missing.
options for mysqlbinlog, with a test file.
This enables user to say "recover my database to how it was this morning at 10:30"
(mysqlbinlog "--stop-datetime=2003-07-29 10:30:00").
Using time functions into client/ made me move them out of sql/ into sql-common/.
+ (small) fix for BUG#4507 "mysqlbinlog --read-from-remote-server sometimes
cannot accept 2 binlogs" (that is, on command line).
client/client_priv.h:
new options for mysqlbinlog
client/mysqlbinlog.cc:
WL#1580: --start-datetime, --stop-datetime, --start-position (alias for --position) and --stop-position.
(small) fix for BUG#4507 "mysqlbinlog --read-from-remote-server sometimes
cannot accept 2 binlogs".
include/my_time.h:
importing time functions so that client/ files can use them.
include/mysql_time.h:
importing time types so that client/ files can use them.
sql-common/my_time.c:
importing time functions so that client/ files can use them.
sql/mysql_priv.h:
moving time functions out of sql/ into sql-common/
sql/time.cc:
moving time functions out of sql/ into sql-common/
sql/tztime.h:
moving time functions out of sql/ into sql-common/