The 0000 year is valid.
The ISO standard for "Representation of dates and times" says:
"Calendar years are numbered in ascending order according to the
Gregorian calendar by values in the range [0000] to [9999]."
Reverted fix for 21789: DATETIME with 0000-00-00 11:22:33 should be invalid, but is accepted
as it's not a bug.
Fix for 19370: DateTime datatype in MySQL has two bugs in it
will be reverted during 4.1 -> 5.0 merging as it was pushed to the
5.0 tree.
mysql-test/r/date_formats.result:
Fix for bug #25301: Non-zero dates with year 0000 are invalid
- reverted fix for bug #21789: DATETIME with 0000-00-00 11:22:33 should be invalid, but is accepted
sql-common/my_time.c:
Fix for bug #25301: Non-zero dates with year 0000 are invalid
- reverted fix for bug #21789: DATETIME with 0000-00-00 11:22:33 should be invalid, but is accepted
- Set the timeout values only where needed
sql/mysql_priv.h:
Add new functions for setting read and write timeout on "net"
sql/mysqld.cc:
- Move the setting of "read_timeout" to the value of "connect_timeout" to
just before 'check_connection' which is the function where we want
to use the different timeout
- With the new functions to set timeout on "net", there is no need to
specifically set the default wait_timeout on windows.
sql/net_serv.cc:
Add new functions for setting read and write timeout of "net, when
server is compiled not to use alarms it will set the write/read timeout
directly on connection using 'vio_timeout'(using setsockopt if socket)
sql/repl_failsafe.cc:
Put unused code within "#if NOT_USED"
sql/set_var.cc:
Use 'net_set_*_timeout' when adjusting timeout value
on the current connection
sql/slave.cc:
The read timeout used when connecting to master server is set
using 'mysql_options' in 'connect_to_master' function
sql/sql_parse.cc:
- Set read and write timeout values to "connect_timeout" during
connect phase
- Use "read_timeout" value during sslaccept phase, since this is during
connect phase it implies "connect-timeout"
- Set read and write timeout value back to default after connect phase
- Set "read_timeout" to "wait_timeout" while waiting for client.
sql/sql_repl.cc:
Set "read_timeout" to "wait_timeout" while ask other mysqld to send file
sql-common/client.c:
Call 'vio_timeout' to set up the read and write timeout's for the
newly created connection. It only need to be done once at connect time.
vio/vio.c:
Use 'vio_timeout' for setting timeout also on an SSL connection
since they both use sockets
vio/viossl.c:
Remove 'vio_ssl_timeout' function
Consider double values as legal date{time} function's arguments
(i.e. allow dates in internal format YYYYMMDDHHMMSS.XXXXXX).
mysql-test/r/func_sapdb.result:
Fix for bug #23616: Week() changed behaviour between 5.0.22 and 5.0.24
- result adjusted.
mysql-test/r/func_time.result:
Fix for bug #23616: Week() changed behaviour between 5.0.22 and 5.0.24
- test result.
mysql-test/t/func_time.test:
Fix for bug #23616: Week() changed behaviour between 5.0.22 and 5.0.24
- test case.
sql-common/my_time.c:
Fix for bug #23616: Week() changed behaviour between 5.0.22 and 5.0.24
- consider '.' as an acceptable separator for dates like YYYYYMMDDHHMMSS.XXXXXX
into neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint
mysql-test/Makefile.am:
Auto merged
mysql-test/r/func_time.result:
Auto merged
mysql-test/t/func_time.test:
Auto merged
sql-common/my_time.c:
Auto merged
sql/item_timefunc.cc:
Auto merged
mysql-test/mysql-test-run-shell.sh:
Auto merged
mysql-test/mysql-test-run.pl:
Manual merge of changes for RPM
into mysql.com:/home/hf/work/mysql-4.1-mrg
include/mysql.h:
Auto merged
mysql-test/r/subselect.result:
Auto merged
mysql-test/t/rename.test:
Auto merged
mysql-test/t/subselect.test:
Auto merged
sql-common/client.c:
Auto merged
sql/sql_class.h:
Auto merged
Makefile.am:
merging
client/mysqltest.c:
merging
mysql-test/t/mysql_client.test:
merging
The server sends a number of columns to the client.
It uses a limited "fast" function for that instead of the
general one. This fast function cannot send numbers larger
than 2 bytes.
This causes the client to expect smaller number of columns.
The client writes outside of the allocated memory buffer
as a result.
Fixed the server to use the general function to send column
count.
Fixed the client to check the column count before writing
column data.
mysql-test/t/mysql_client.test:
Bug #19216: Client crashes on long SELECT
- test case
sql/protocol.cc:
Bug #19216: Client crashes on long SELECT
- renamed the function for bether comprehention
and made it local
- used the right (non-local) function to transfer
the column count in Protocol::send_fields
sql/protocol.h:
Bug #19216: Client crashes on long SELECT
- made optimized net_store_length local
sql-common/client.c:
Bug #19216: Client crashes on long SELECT
- fixed the client to check for older servers (without the fix).
into outpost.site:/home/cps/mysql/trees/4.1-runtime-bug9191
configure.in:
Auto merged
include/my_time.h:
Auto merged
mysql-test/r/func_time.result:
Auto merged
mysql-test/r/rename.result:
Auto merged
mysql-test/t/func_time.test:
Auto merged
sql-common/my_time.c:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/time.cc:
Auto merged
mysql-test/t/rename.test:
choose one of the race problem solutions. It was solved
differently in -runtime and mainstream
(4.1 version, with post-review fixes)
The fix for another Bug (6439) limited FROM_UNIXTIME() to
TIMESTAMP_MAX_VALUE which is 2145916799 or 2037-12-01 23:59:59 GMT,
however unix timestamp in general is not considered to be limited
by this value. All dates up to power(2,31)-1 are valid.
This patch extends allowed TIMESTAMP range so, that max
TIMESTAMP value is power(2,31)-1. It also corrects
FROM_UNIXTIME() and UNIX_TIMESTAMP() functions, so that
max allowed UNIX_TIMESTAMP() is power(2,31)-1. FROM_UNIXTIME()
is fixed accordingly to allow conversion of dates up to
2038-01-19 03:14:07 UTC. The patch also fixes CONVERT_TZ()
function to allow extended range of dates.
The main problem solved in the patch is possible overflows
of variables, used in broken-time representation to time_t
conversion (required for UNIX_TIMESTAMP).
acinclude.m4:
Add new macro to check time_t range
configure.in:
Call the macro to check time_t range
include/my_time.h:
Move time-related defines to proper place.
Add a function to perform a rough check if
a TIMESTAMP value fits into the boundaries.
Note: it is defined as "static inline", as
otherwise libmysql won't compile (due to the
way how gcc handles "inline" directive).
mysql-test/r/func_time.result:
Update test result
mysql-test/r/timezone.result:
Update test result
mysql-test/r/timezone2.result:
Update test result
mysql-test/t/func_time.test:
Add test for Bug#9191 and update test to be consistent
with new TIMESTAMP boundaries
mysql-test/t/timezone.test:
Update old tests to be consistent
with new TIMESTAMP boundaries
mysql-test/t/timezone2.test:
Update tests for convert_tz to be consistent with new
TIMESTAMP boundaries
sql/item_timefunc.cc:
Fix convert_tz to allow dates from the new (extended)
TIMESTAMP range
sql/mysql_priv.h:
Move time handling defaults to my_time.h
sql-common/my_time.c:
Because of increased TIMESTAMP_MAX_VALUE overflows in my_system_gmt_sec()
became possible. Here we make it safe against the overflows by stepping
back from the boundary dates which are likely to trigger them.
sql/time.cc:
Update TIME_to_timestamp to allow conversion of
extended date range
sql/tztime.cc:
Fix new (4.1) implementation of broken-down time representation
to time_t conversion routine to avoid overflows during conversion
of boundary dates
mysql-test/r/timezone4.result:
New BitKeeper file ``mysql-test/r/timezone4.result''
mysql-test/t/timezone4-master.opt:
New BitKeeper file ``mysql-test/t/timezone4-master.opt''
mysql-test/t/timezone4.test:
New BitKeeper file ``mysql-test/t/timezone4.test''
into polly.local:/home/kaa/src/maint/m41-maint--07OGk
sql/field.cc:
Auto merged
sql/item_timefunc.cc:
Auto merged
mysql-test/r/func_time.result:
Manually merged
mysql-test/t/func_time.test:
Manually merged
- bug #11655 "Wrong time is returning from nested selects - maximum time exists
- input and output TIME values were not validated properly in several conversion functions
- bug #20927 "sec_to_time treats big unsigned as signed"
- integer overflows were not checked in several functions. As a result, input values like 2^32 or 3600*2^32 were treated as 0
- BIGINT UNSIGNED values were treated as SIGNED in several functions
- in cases where both input string truncation and out-of-range TIME value occur, only 'truncated incorrect time value' warning was produced
include/my_time.h:
Added defines for the TIME limits
Added defines for the warning flags set by str_to_time() and check_time_range()
Added check_time_range() declaration
mysql-test/r/func_sapdb.result:
Fixed testcases which relied on incorrect TIMEDIFF() behaviour
mysql-test/r/func_time.result:
Fixed testcase which relied on incorrect behaviour
Added testcases for out-of-range values in SEC_TO_TIME(), TIME_TO_SEC(), ADDTIME(), SUBTIME() and EXTRACT()
mysql-test/t/func_time.test:
Added testcases for out-of-range values in SEC_TO_TIME(), TIME_TO_SEC(), ADDTIME(), SUBTIME() and EXTRACT()
sql-common/my_time.c:
Added check_time_range() to be used from str_to_time() and item_timefunc.cc
Added new out-of-range flag to str_to_time() warnings
Use '%u' instead of '%d' in my_*_to_str() because the arguments are unsigned
sql/field.cc:
Replaced out-of-range checks with checks for flags returned by str_to_time()
sql/item_timefunc.cc:
Added wrappers over make_datetime() and make_time() which perform out-of-range checks on input values
Moved common code in Item_func_sec_to_time::val_str() and Item_func_sec_to_time::val_int() into a separate function sec_to_time()
Replaced calls to make_datetime() with make_datetime_with_warn() in Item_func_add_time and Item_func_timediff
Checks for 'unsigned int' overflows in Item_func_maketime
Use make_time_with_warn() instead of make_time() in Item_func_maketime
Fixed incorrect sizeof() in Item_func_str_to_date::get_time()
sql/time.cc:
Check for return value of str_to_time() along with warning flags
Reject '0000-00-00 01:01:01' dates.
mysql-test/r/date_formats.result:
Fix for bug #21789: DATETIME with 0000-00-00 11:22:33 should be invalid, but is accepted
- test results adjusted.
sql-common/my_time.c:
Fix for bug #21789: DATETIME with 0000-00-00 11:22:33 should be invalid, but is accepted
- don't allow dates with NULL date part and not NULL time part.
Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte
include/mysql_com.h:
Bug#20393 User name truncation in mysql client
Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte
added new constants NAME_BYTE_LEN, USERNAME_BYTE_LENGTH, SYSTEM_CHARSET_MBMAXLEN
mysql-test/r/ctype_utf8.result:
Bug#20393 User name truncation in mysql client
Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte
test case
mysql-test/t/ctype_utf8.test:
Bug#20393 User name truncation in mysql client
Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte
test case
sql-common/client.c:
Bug#20393 User name truncation in mysql client
Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte
increased buffers for user name & db
sql/sql_acl.cc:
Bug#20393 User name truncation in mysql client
Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte
check that user name is not longer than USERNAME_LENGTH symbols
sql/sql_parse.cc:
Bug#20393 User name truncation in mysql client
Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte
increased buffers for user name & db
sql/table.cc:
Bug#20393 User name truncation in mysql client
Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte
check that db name is not longer than NAME_LEN symbols
--with-collation worked only on the server side.
Client side ignored this argument, so collation_connection
was not properly set (remained latin1_swedish_ci).
sql-common/client.c:
- Take into account MYSQL_DEFAULT_COLLATION_NAME if
character set is not set using mysql_option(), to
honor --with-collation argument to configure.
- Use default collation for the character set when it's
not set using mysql_option().
into mysql.com:/home/hf/work/mysql-4.1.16017
include/sql_common.h:
Auto merged
libmysql/libmysql.c:
Auto merged
libmysqld/lib_sql.cc:
Auto merged
sql-common/client.c:
Auto merged
sql/sql_parse.cc:
Auto merged
libmysqld/libmysqld.c:
merging
there was two problems about charsets in embedded server
1. mysys/charset.c - defined there default_charset_info variable is
modified by both server and client code (particularly when
--default-charset option is handled)
In embedded server we get two codelines modifying one variable.
I created separate default_client_charset_info for client code
2. mysql->charset and mysql->options.charset initialization isn't
properly done for embedded server - necessary calls added
include/sql_common.h:
client charset info default declared
libmysqld/lib_sql.cc:
thd_init_client_charset calls added
libmysqld/libmysqld.c:
check_embedded_connection moved to client.c to avoid code duplication
sql-common/client.c:
charset initialization moved to mysql_init_character_set to
be used in embedded server
sql/sql_parse.cc:
thread client charset initialization moved to thd_init_client_charset
to avoid code duplication
There actually was 3 different problems -
hash_user_connections wasn't cleaned
one strdupped database name wasn't freed
and stmt->mem_root wasn't cleaned as it was
replased with mysql->field_alloc for result
For the last one - i made the library using stmt's
fields to store result if it's the case.
include/mysql.h:
statement pointer added to the advanced_command to be checked in
embedded server
include/sql_common.h:
stmt added to the cli_advanced_command interface
libmysql/libmysql.c:
stmt pointer now sent to advanced_command
libmysqld/embedded_priv.h:
it's enough to send database name to check_embedded_connection
libmysqld/lib_sql.cc:
Now we store result directly in the MYSQL_STMT structure to
avoid extra copying
libmysqld/libmysqld.c:
it's enough to only send database pointer to check_embedded_connection
sql-common/client.c:
stmt fake attribute added to cli_advanced_command
sql/sql_parse.cc:
hash_user_connections isn't used if no access checks compiled
long fraction and/or large exponent part".
mysql-test/r/type_time.result:
Fixed testcases results (bug #12440)
mysql-test/t/type_time.test:
Added testcases for bug #12440
sql-common/my_time.c:
Fixed bug #12440: "Incorrect processing of time values containing
long fraction and/or large exponent part".
Modified str_to_time(). Process properly fraction part containing
more than 6 digits. Check for existence of exponent part which
may result from %g formatting applied to time value specified as
large real number.
sql-common/client.c:
Fixes bug #5588. checks if operation was timed out.
vio/vio.c:
Added vio_was_interrupted() function references to detect timed out
operation properly on win32.
vio/vio_priv.h:
Added vio_ssl_was_interrupted() function that detects timed out
operation properly on win32.
vio/viosocket.c:
Minor changes to follow up the coding standard.
vio/viossl.c:
Added vio_ssl_was_interrupted() function that detects timed out
operation properly on win32.
query that mixed statements that do and do not return info. (Bug #11688)
mysql-test/r/metadata.result:
Add new results
mysql-test/t/metadata.test:
Add new regression test
sql-common/client.c:
Clear mysql->info in free_old_query()
- Fixed some error condtion when handling dates with 'T'
- Added extra test for bug #11867 (Wrong result with "... WHERE ROW( a, b ) IN ( SELECT DISTINCT a, b WHERE ...)" to show it's not yet fixed
- Safety fixes and cleanups
mysql-test/r/subselect.result:
Added extra test case to test case for bug #11867
(Result shows that current code is not yet right and needs to be fixed)
mysql-test/r/type_datetime.result:
More tests for dates of type CCYYMMDDTHHMMSS
mysql-test/t/subselect.test:
Added extra test case to test case for bug #11867
mysql-test/t/type_datetime.test:
More tests for dates of type CCYYMMDDTHHMMSS
sql-common/my_time.c:
Fixed handling of dates of type CCYYMMDDTHHMMSS
(Old code couldn't handle 2003-0304 or 2003-0003-02)
sql/slave.cc:
Indentation cleanup
sql/sql_parse.cc:
Added test of return value of get_system_var()
sql/sql_select.cc:
Removed unnecessary call to field->table->maybe_null
sql/sql_union.cc:
Indentation fixes
date format. (Bug #7308)
mysql-test/r/type_datetime.result:
Add new results
mysql-test/t/type_datetime.test:
Add new test
sql-common/my_time.c:
Fix handling of field_length for each field in date, especially
for dates not in the internal_format.
--disable_reconnect and --enable_reconnect to mysqltest
so that it can be tested properly. (Bug #8866)
client/mysqltest.c:
Add support for --disable_reconnect and --enable_reconnect
mysql-test/r/kill.result:
Update results
mysql-test/t/kill.test:
Fix test to actually verify that killing a connection is working,
and that automatic reconnect is working as desired.
sql-common/client.c:
Clean up MYSQL->stmts on reconnect by invalidating statements
not in the MYSQL_STMT_INIT_DONE state, and reconnecting others
to the new MYSQL object.
provide created shared memory objects with proper
access rights to make them usable when client and server
are running under different accounts.
Post review fixes.
VC++Files/mysys/mysys.dsp:
Add my_windac.c to mysys.lib
include/my_sys.h:
Declarations for SECURITY_ATTRIBUTES create/destroy functions.
mysys/Makefile.am:
Add my_windac.c to the list of compiled files.
sql-common/client.c:
Lower requested access rights for events as the server won't
provide clients with ALL access in order to prevent denial
of service attack.
sql/mysqld.cc:
Set proper security attributes for the kernel objects to make them
usable when mysqld is running as a Windows service.
format strings (in all languages) already included field limits on the
specifiers, so this is just protection against future mistakes. (Bug #7556)
sql-common/client.c:
Replace all sprintf() calls with my_snprintf()
Make multi-statements the preferred option name (to coincide
with the renaming of the CLIENT_MULTI_RESULTS symbol to
CLIENT_MULTI_STATEMENTS). Continue to allow multi-queries
for backward compatibility.
sql-common/client.c:
Make multi-statements the preferred option name (to coincide
with the renaming of the CLIENT_MULTI_RESULTS symbol to
CLIENT_MULTI_STATEMENTS). Continue to allow multi-queries
for backward compatibility.
correctly even with zero month and day" and bug #7515 "from_unixtime(0)
now returns NULL instead of the Epoch" into 4.1 tree.
mysql-test/r/ps_2myisam.result:
Updated test result after merging fix for bug #7297 "Two digit year should
be interpreted correctly even with zero month and day" into 4.1
mysql-test/r/ps_3innodb.result:
Updated test result after merging fix for bug #7297 "Two digit year should
be interpreted correctly even with zero month and day" into 4.1
mysql-test/r/ps_4heap.result:
Updated test result after merging fix for bug #7297 "Two digit year should
be interpreted correctly even with zero month and day" into 4.1
mysql-test/r/ps_5merge.result:
Updated test result after merging fix for bug #7297 "Two digit year should
be interpreted correctly even with zero month and day" into 4.1
mysql-test/r/ps_6bdb.result:
Updated test result after merging fix for bug #7297 "Two digit year should
be interpreted correctly even with zero month and day" into 4.1
mysql-test/r/ps_7ndb.result:
Updated test result after merging fix for bug #7297 "Two digit year should
be interpreted correctly even with zero month and day" into 4.1
sql-common/my_time.c:
Merged fix for bug #7297 "Two digit year should be interpreted correctly
even with zero month and day" into 4.1
sql/item_timefunc.cc:
Small fix after merging patch solving bug #7515 "from_unixtime(0) now
returns NULL instead of the Epoch" into 4.1.
add space after comma
add space after equal
add comments in vio_close_shared_memory()
include/violite.h:
fix indentation
sql-common/client.c:
fix identation
sql/mysqld.cc:
add space after comma
vio/vio.c:
add space after equal
fix identation
vio/viosocket.c:
add space after comma
add comments in vio_close_shared_memory()
properly" with main tree.
libmysql/libmysql.c:
Auto merged
sql-common/my_time.c:
Auto merged
sql/field.cc:
Auto merged
sql/item.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
tests/client_test.c:
Manual merge.
In server we assume that datetime values stored in MYSQL_TIME struct
are normalized (and year is not greater than 9999), so we should
perform range checks in all places then we convert something to
MYSQL_TIME.
include/my_time.h:
Added one more argument to set_zero_time() function to make it more
convinient.
Added comment clarifying why MAX_DATE_STRING_REP_LENGTH value is 30.
include/mysql_time.h:
Documented MySQL's internal assumptions for members of MYSQL_TIME
structure.
libmysql/libmysql.c:
It does not make sense to set MYSQL_TIME::time_type twice in case of
errors.
mysql-test/r/type_datetime.result:
Added test for bug #6266 "Invalid DATETIME value not handled properly".
mysql-test/t/type_datetime.test:
Added test for bug #6266 "Invalid DATETIME value not handled properly".
sql-common/my_time.c:
str_to_datetime(): Added missing check for too big year values.
set_zero_time(): added time_type argument, since MYSQL_TIMESTAMP_NONE
is not the value that we want in most cases.
sql/field.cc:
Field_datetime::store_time():
clarified why we don't perform any range checks here.
sql/item.cc:
Item_param::set_time():
Added comment describing this method and range checking for TIME
values.
sql/sql_prepare.cc:
Removed comments about range checking for TIME values in prepared
statements, which are no longer true.
set_zero_time() has one more argument now.
tests/client_test.c:
Added test for bug #6266 "Invalid DATETIME value not handled properly"
client/mysqldump.c:
Merge with 4.0 (and reordering of options)
client/mysqltest.c:
Added DB as a user variable
myisam/mi_check.c:
Trivial cleanup
mysql-test/r/grant.result:
Move test to be in same order as in 4.0
mysql-test/r/mix_innodb_myisam_binlog.result:
Updated results
mysql-test/r/ps_1general.result:
Updated tests to work after privilege fixes
mysql-test/r/timezone3.result:
Updated results to 4.1
mysql-test/t/ps_1general.test:
Updated tests to work after privilege fixes
sql-common/my_time.c:
Applied sub-second patch from 4.0
sql/sql_acl.cc:
More debugging
numeric columns (stmt_resultset_metadata)"
libmysql/libmysql.c:
A fix for Bug#6096 "field.max_length is always zero for numeric columns
(stmt_resultset_metadata)": set field->max_lenght for numeric
columns when we set up skip_result functions. A minor drawback for this
approach is that field->max_length can be not zero even if
STMT_ATTR_UPDATE_MAX_LENGTH is not set.
sql-common/my_time.c:
Fix valgrind warning.
tests/client_test.c:
A test case for Bug#6096 "field.max_length is always zero for numeric
columns (stmt_resultset_metadata)
New mysqltest that can run mysqltest with PS
Added support for ZEROFILL in PS
Fixed crash when one called mysql_stmt_store_result() without a preceding mysql_stmt_bind_result()
Updated test cases to support --ps-protocol
(Some tests are still run using old protocol)
Fixed crash in PS when using SELECT * FROM t1 NATURAL JOIN t2...
Fixed crash in PS when using sub queries
Create table didn't signal when table was created. This could cause a "DROP TABLE created_table" in another thread to wait "forever"
Fixed wrong permissions check in PS and multi-table updates (one could get permission denied for legal quries)
Fix for PS and SELECT ... PROCEDURE
Reset all warnings when executing a new PS query
group_concat(...ORDER BY) didn't work with PS
Fixed problem with test suite when not using innodb
BitKeeper/deleted/.del-innodb-lock-master.opt~f76a4a1999728f87:
Delete: mysql-test/t/innodb-lock-master.opt
client/Makefile.am:
mysqltest now uses regex
client/mysqltest.c:
Added support for testing of prepared statements (with --ps-protocol)
Main code was done by Kent, I did mainly some cleanups and minor bug fixes
New test commands:
--disable_ps_protocol
--enable_ps_protocol
NOTE: new code still has some things that needs to be cleaned up.
For example run_query_stmt_handle_error() should be made more general so that same code can be used also by 'normal' queries
configure.in:
mysqltest now uses regex
libmysql/libmysql.c:
Reset warning_count after prepare (safety). In the future we should also provide warnings on prepare
integer -> string conversion now handles ZEROFILL
double -> string conversion is now closer to the one in the server
Fixed crash when one called mysql_stmt_store_result() without preceding mysql_stmt_bind_result()
libmysqld/examples/Makefile.am:
mysqltest now uses regex
mysql-test/include/have_query_cache.inc:
Fixes for --ps-protocol
mysql-test/include/ps_conv.inc:
Fixes for --ps-protocol
mysql-test/mysql-test-run.sh:
Added options --ps-protocol
mysql-test/r/ctype_utf8.result:
Fixed test case
mysql-test/r/fulltext_cache.result:
Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/r/fulltext_left_join.result:
Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/r/fulltext_multi.result:
Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/r/innodb-lock.result:
Fixed test to work even if Innodb is not compiled in.
mysql-test/t/create.test:
Fixes for --ps-protocol
mysql-test/t/ctype_utf8.test:
Remove warnings
mysql-test/t/date_formats.test:
Fixes for --ps-protocol
mysql-test/t/fulltext_cache.test:
Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/t/fulltext_left_join.test:
Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/t/fulltext_multi.test:
Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/t/func_group.test:
Fixes for --ps-protocol
mysql-test/t/func_sapdb.test:
Fixes for --ps-protocol
mysql-test/t/innodb-lock.test:
Fixed test to work even if Innodb is not compiled in.
mysql-test/t/insert.test:
Fixes for --ps-protocol
mysql-test/t/insert_select.test:
Fixes for --ps-protocol
mysql-test/t/insert_update.test:
Fixes for --ps-protocol
mysql-test/t/metadata.test:
Fixes for --ps-protocol
mysql-test/t/multi_statement.test:
Fixes for --ps-protocol
mysql-test/t/ps_1general.test:
Fixes for --ps-protocol
mysql-test/t/rollback.test:
Fixes for --ps-protocol
mysql-test/t/rpl_redirect.test:
Fixes for --ps-protocol
mysql-test/t/rpl_user_variables.test:
Fixes for --ps-protocol
mysql-test/t/select.test:
Fixes for --ps-protocol
mysql-test/t/status.test:
Fixes for --ps-protocol
mysql-test/t/type_blob.test:
Fixes for --ps-protocol
mysql-test/t/type_float.test:
Fixes for --ps-protocol
mysql-test/t/union.test:
Fixes for --ps-protocol
mysql-test/t/warnings.test:
Fixes for --ps-protocol
mysys/my_alloc.c:
More debugging information
sql-common/client.c:
More debugging information
sql-common/my_time.c:
TIME didn't support full range with PS
sql/field.cc:
TIME didn't support full range with PS
sql/item_cmpfunc.cc:
IN(constants,...) didn't work with PS
sql/item_subselect.cc:
Some subqueries didn't work with PS
sql/item_sum.cc:
group_concat(...ORDER BY) didn't work with PS
Removed variable warning_available as 'warning' can be used for this.
sql/item_sum.h:
Removed not needed variable
sql/protocol.cc:
TIME didn't support full range with PS
sql/set_var.cc:
Style fix
sql/sql_base.cc:
setup_wild() didn't properly restore old arena, which caused core dump in PS when using
SELECT * FROM t1 NATURAL JOIN t2...
sql/sql_class.cc:
Style fix
sql/sql_error.cc:
Style fix
sql/sql_insert.cc:
Create table didn't signal when table was created. This could cause a "DROP TABLE created_table" in another thread to wait "forever"
sql/sql_lex.h:
Fix for PS and procedures
sql/sql_parse.cc:
More debugging information
Make a copy of 'db' in PS as this may change
Fixed wrong permissions check in PS and multi-table updates
sql/sql_prepare.cc:
Fix for PS and SELECT ... PROCEDURE
Reset all warnings when executing a new query
sql/sql_union.cc:
Fixes for PS and SELECT ... PROCEDURE
Reset 'with_wild' as 'wild' is resolved on prepare
into mysql.com:/home/kostja/work/mysql-4.1-6049
libmysql/libmysql.c:
Auto merged
sql/field.cc:
Auto merged
sql/item.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
tests/client_test.c:
Auto merged
Simple optimzations and cleanups
Removed compiler warnings and fixed portability issues
Added client functions 'mysql_embedded()' to allow client to check if we are using embedded server
Fixes for purify
client/mysqlimport.c:
Remove not used variable
client/mysqltest.c:
Remove usage of MAXPATHLEN (all MySQL code uses FN_REFLEN)
Simplified code
Remove usage of sprintf("%llu") as this is not portable
include/mysql.h:
Added mysql_embedded() to be able to easily check if we are using the embedded server
innobase/srv/srv0start.c:
Don't use memcmp() when using purify (to avoid false warnings)
libmysql/libmysql.c:
Added mysql_embedded() to be able to easily check if we are using the embedded server
libmysql/libmysql.def:
Added mysql_embedded() to be able to easily check if we are using the embedded server
myisam/myisam_ftdump.c:
Remove compiler warning
myisam/myisamchk.c:
Remove compiler warning
myisam/rt_test.c:
#ifdef not used code
mysys/hash.c:
Remove compiler warning (from last push)
mysys/my_gethwaddr.c:
Remove compiler warning
ndb/src/ndbapi/ndberror.c:
#ifdef not used code
regex/regcomp.c:
Remove not used code
regex/regcomp.ih:
Remove not used code (to remove compiler warnings)
sql-common/client.c:
Remove compiler warnings
sql/field.cc:
Simple optimization
sql/ha_innodb.cc:
Rename mysql_embedded -> mysqld_embedded
sql/item.cc:
Fix comments
Move variables first on block
Remove else after return
Simple optimizations
(no logic changes)
sql/item_cmpfunc.cc:
Added comment
sql/mysql_priv.h:
Rename mysql_embedded -> mysqld_embedded
sql/mysqld.cc:
Rename mysql_embedded -> mysqld_embedded
sql/sql_acl.cc:
Added comments
simple optimization
Fixed 'very unlikely' bug when doing REVOKE ALL PRIVILEGES
sql/sql_select.cc:
More comments
Simple optimization
sql/sql_show.cc:
Simple changes to make similar code similar
More comments
sql/sql_string.cc:
Trivial optimization and better code layout
strings/Makefile.am:
Change xml.c to use bcmp to avoid warnings from purify
strings/xml.c:
Change xml.c to use bcmp to avoid warnings from purify
tests/client_test.c:
Remove usage of MAXPATHLEN (all MySQL code uses FN_REFLEN)
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.
prepared statements."
include/hash.h:
New declaration for hash_reset() function. The old version was not used.
libmysql/client_settings.h:
Declaration for mysql_detach_stmt_list().
libmysql/libmysql.c:
Fix for bug#5315 "mysql_change_user() doesn't free prepared statements":
add call to mysql_detach_stmt_list(prepared statements) to
mysql_change_user(): all statements are freed by server, so client
counterparts need to be marked as not usable.
mysys/hash.c:
Fix for bug#5315 "mysql_change_user() doesn't free prepared statements":
implementation of hash_reset(), which frees all hash elements
and prepares the hash for reuse.
sql-common/client.c:
Fix for bug#5315 "mysql_change_user() doesn't free prepared statements":
implementation of mysql_detach_stmt_list(): zero connection pointer
in given statement list, thus marking given statements as not usable.
sql/sql_class.cc:
Fix for bug#5315 "mysql_change_user() doesn't free prepared statements":
reset prepared statements map in THD::change_user().
sql/sql_class.h:
Fix for bug#5315 "mysql_change_user() doesn't free prepared statements":
implementation of Statement_map::reset().
A little cleanup of ~Statement_map(): first empty names_hash, as st_hash
has a free function, which will delete statements.
tests/client_test.c:
A test case for bug #5315 "mysql_change_user() doesn't free prepared
statements".