it's crucial to disable Nagle algorithm on client for no-reply commands
(like mysql_stmt_free) to always work fast.
Nagle algorithm instructs the sender to buffer (store) data if any
unacknowledged data is outstanding and the size of to-send data is less than
the network segment. It was exactly the case with COM_STMT_CLOSE after
COM_STMT_PREPARE, so the client was waiting for Nagle timer to expire or
for ACK from the server, while the server was holding up ACK because of
delayed acknowledgement algorithm.
The tricky part is that we have been already disabling Nagle
algorithm (by setting TCP_NODELAY)
almost everywhere except Windows (and maybe Netware).
It is the reason why the bug was repeatable only with Windows client.
vio/viosocket.c:
A fix for Bug#5787 "mysql_stmt_prepare is upto 8 times slower":
if we disable Nagle algorithm, do it everywhere.
Let MYSQL_CLIENT_TEST be set with command line from mysql-test-run script
mysql-test-run.sh:
Renamed client_test to mysql_client_test
Support --embedded-server test on installed server
mysql_client_test.test:
Renamed client_test to mysql_client_test
Use env var CLIENT_TEST with full name, it differs when run with --embedded-server
Rename: mysql-test/t/client_test.test -> mysql-test/t/mysql_client_test.test
mysql-test/mysql-test-run.sh:
Let MYSQL_CLIENT_TEST be set with command line from mysql-test-run script
mysql-test/t/mysql_client_test.test:
Let MYSQL_CLIENT_TEST be set with command line from mysql-test-run script
into serg.mylan:/usr/home/serg/Abk/mysql-4.1
mysys/mf_keycache.c:
Auto merged
sql/item.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/slave.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/table.cc:
Auto merged
into rurik.mysql.com:/home/igor/dev/mysql-4.1-0
mysql-test/r/select_found.result:
Auto merged
mysql-test/t/select_found.test:
Auto merged
sql/sql_select.cc:
Auto merged
Added a test case for bug #7945.
sql_select.cc:
Fixed bug #7945. If DISTINCT is used only with constants
in a query with GROUP BY, we can apply an optimization
that set LIMIT to 1 only in the case when there is
no SQL_CALC_FOUND_ROWS.
sql/sql_select.cc:
Fixed bug #7945. If DISTINCT is used only with constants
in a query with GROUP BY, we can apply an optimization
that set LIMIT to 1 only in the case when there is
no SQL_CALC_FOUND_ROWS.
mysql-test/t/select_found.test:
Added a test case for bug #7945.
mysql-test/r/select_found.result:
Added a test case for bug #7945.
Fix a race condition that could cause the assertion space->n_pending_flushes == 0 to fail in fil0fil.c, in fil_space_free(), in DROP TABLE or in ALTER TABLE
innobase/fil/fil0fil.c:
Fix a race condition that could cause the assertion space->n_pending_flushes == 0 to fail in fil0fil.c, in fil_space_free()
Fix bug #8021 :Windows error number 87 with multiple tablespaces after mysqld restart; still has to be tested on Windows that this now works
innobase/fil/fil0fil.c:
Fix bug #8021 :Windows error number 87 with multiple tablespaces after mysqld restart; still has to be tested on Windows that this now works
- renamed the tests that use the embedded server (client_test ->
mysql_client_test_embedded, mysqltest -> mysql_test_embedded
and changed some Makefiles and scripts so they are installed in $bindir
(required to be able to run the test suite against the embedded server)
tests/mysql_client_test.c:
Rename: tests/client_test.c -> tests/mysql_client_test.c
libmysql/libmysql.c:
- renamed client_test.c to mysql_client_test.c in a comment
libmysqld/examples/Makefile.am:
- renamed client_test -> mysql_client_test_embedded
- renamed mysqltest -> mysqltest_embedded
- both will be installed in $bindir
scripts/make_binary_distribution.sh:
- install mysql_client_test, mysql_client_test_embedded and mysqltest_embedded
into bin directory
tests/Makefile.am:
- renamed client_test to mysql_client_test
BitKeeper/etc/ignore:
Added tests/mysql_client_test to the ignore list
Bug#7834 Illegal mix of collations in IN operator
IN was the first function supporting
character set convertion.
agg_arg_charsets() was written afterwards,
which is more flexible.
Now IN just reuses this function.
sql/item_cmpfunc.cc:
Bug#7834 Illegal mix of collations in IN operator
IN was the first function supporting
character set convertion.
agg_arg_charsets() was written afterwards,
which is more flexible.
Now IN just reuses this function.
environment (using "build" on SUSE Linux)
Build-tools/Do-rpm:
- added functionality to perform RPM builds inside of a chrooted build
environment (using "build" on SUSE Linux) - see "--help" for more details
Add SJIS version of Japanese error messages.
Windows version should include this new file,
instead of the EUC-JP version.
configure.in:
Add SJIS version of Japanese error messages.
Windows version should include this new file,
instead of the EUC-JP version.
(Simpler fix than last commit -- no need to mess with base_cxxflags.)
BUILD/compile-amd64-max:
use $max_cflags
BUILD/compile-pentium-debug-max:
use $max_cflags
BUILD/compile-pentium-debug-max-no-embedded:
use $max_cflags
BUILD/compile-pentium-max:
use $max_cflags
BUILD/compile-pentium-valgrind-max:
use $max_cflags
BUILD/compile-ppc-debug-max:
use $max_cflags
BUILD/compile-ppc-max:
use $max_cflags
BUILD/compile-amd64-debug-max:
use $max_cflags, remove unnecessary base_cxxflags stuff
This patch collects all previous patches into one.
The main problem was due to that there is are two variables -
dflt_key_cache and sql_key_cache with have more or less duplicate
function. The reson for the bug was that the default value in the key
cache hash was set to dflt_key_cache, then sql_key_cache was set to a
new key cache object, and then dflt_key_cache was set to sql_key_cache
which was different from the dflt_key_cache_var. After sending SIGHUP,
the server was using the original default value for the key cache hash,
which was different from the actual key cache object used for the
default key cache.
include/keycache.h:
Import patch 4285.diff
mysys/mf_keycache.c:
Import patch 4285.diff
sql/mysql_priv.h:
Import patch 4285.diff
sql/mysqld.cc:
Import patch 4285.diff
sql/set_var.cc:
Import patch 4285.diff
sql/sql_parse.cc:
Import patch 4285.diff
sql/sql_show.cc:
Import patch 4285.diff