summaryrefslogtreecommitdiff
path: root/mysql-test/t
diff options
context:
space:
mode:
authorunknown <guilhem@mysql.com>2003-10-31 23:20:23 +0100
committerunknown <guilhem@mysql.com>2003-10-31 23:20:23 +0100
commitb920ab261e7aea61a7b8a5b950faafa1ce719d4c (patch)
tree498d4bfea3f5514d76aac06dd4120c7aa8b1a02c /mysql-test/t
parent40ed42e14a7911a879c11e0b23b0730d763f6651 (diff)
downloadmariadb-git-b920ab261e7aea61a7b8a5b950faafa1ce719d4c.tar.gz
4 small items in this:
- when we don't have in_addr_t, use uint32. - a forgotten initialization of slave_proxy_id in sql/log_event.cc (was not really "forgot", was "we needn't init it there", but there was one case where we needed...). - made slave_proxy_id always meaningful in THD and Log_event, so we can rely more on it (no need to test if it's meaningful). THD::slave_proxy_id is equal to THD::thread_id except for the slave SQL thread. - clean up the slave's temporary table (i.e. free their memory) when slave server shuts down. extra/resolveip.c: removed #define as it is simpler to put it in my_net.h (because we need the #define elsewhere) include/my_net.h: When in_addr_t is not defined, use uint32. libmysql/libmysql.c: using in_addr_t is more generic. libmysql/manager.c: using in_addr_t is more generic. mysql-test/t/rpl_chain_temp_table.test: comments sql/log_event.cc: * Had forgot to initialize slave_proxy_id in the event constructor (char* buf...). Initializing is in fact only needed for Create_file_log_event, because it uses slave_proxy_id even if it does not write an event to the binlog (it uses slave_proxy_id to write it to SQL-LOAD.info). * When we write events we now always write slave_proxy_id, which is now always meaningful (as thd->slave_proxy_id is now always meaningful, see change in sql_class.cc). sql/mini_client.cc: in_addr_t is more generic. sql/slave.cc: A RELAY_LOG_INFO method to free the slave's temporary tables from memory at slave's server shutdown. It is called by end_slave(), which is called by close_connections(), which is called when the server terminates (close_connections() is just before clean_up(); putting the call in clean_up() was buggy, as active_mi is already deleted by close_connections(). sql/slave.h: new method sql/sql_class.cc: By default we set THD::slave_proxy_id to THD::thread_id, so THD::slave_proxy_id is always meaningful (not 0). It's always the same as the thread id except for the slave SQL thread.
Diffstat (limited to 'mysql-test/t')
-rw-r--r--mysql-test/t/rpl_chain_temp_table.test10
1 files changed, 10 insertions, 0 deletions
diff --git a/mysql-test/t/rpl_chain_temp_table.test b/mysql-test/t/rpl_chain_temp_table.test
index 65701d8a078..007b018e9d8 100644
--- a/mysql-test/t/rpl_chain_temp_table.test
+++ b/mysql-test/t/rpl_chain_temp_table.test
@@ -3,6 +3,7 @@
# stop/restart servers. Note that if assumptions are wrong, the test will not
# fail; it will just fail to test the error-prone scenario.
# Using the manager is the only way to have more than one slave server.
+# So you must run this test with --manager.
require_manager;
server_stop master;
@@ -87,3 +88,12 @@ drop table t2;
save_master_pos;
connection slave_sec;
sync_with_master;
+
+# On purpose, we don't delete the temporary tables explicitely.
+# So temp tables remain on slave (remember they are not deleted when the slave
+# SQL thread terminates). If you run this test with
+# --valgrind --valgrind-options=--show-reachable=yes
+# you will see if they get cleaned up at slave's shutdown (that is, if the
+# memory they use is freed (it should) by mysqld before it terminates).
+# If they wouldn't be cleaned up, you would see some "still reachable" blocks in
+# Valgrind.