1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-06 05:42:06 +03:00
Commit Graph

2577 Commits

Author SHA1 Message Date
pem@mysql.com
24a2ae44a3 Merged 4.1 -> 5.0 2003-12-09 19:00:34 +01:00
unknown
c335939203 post-merge fixes
sql/protocol.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/set_var.h:
  Auto merged
sql/slave.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_show.cc:
  Auto merged
2003-12-08 09:44:04 +04:00
gluh@gluh.mysql.r18.ru
a09d6409ae post-merge fixes 2003-12-08 09:44:04 +04:00
unknown
a0e4a6de56 Task ID 499:Add a new settable string variable(init_connect, init_slave)
to mysqld that is executed for all new connections.
(Similar to the client command: mysql_options(... MYSQL_INIT_COMMAND ...).


sql/mysql_priv.h:
  Task ID	499:Add a new settable string variable(init_connect, init_slave)
  to mysqld that is executed for all new connections.
sql/mysqld.cc:
  Task ID	499:Add a new settable string variable(init_connect, init_slave)
  to mysqld that is executed for all new connections.
sql/protocol.cc:
  Task ID	499:Add a new settable string variable(init_connect, init_slave)
  to mysqld that is executed for all new connections.
sql/set_var.cc:
  Task ID	499:Add a new settable string variable(init_connect, init_slave)
  to mysqld that is executed for all new connections.
sql/slave.cc:
  Task ID	499:Add a new settable string variable(init_connect, init_slave)
  to mysqld that is executed for all new connections.
sql/sql_class.cc:
  Task ID	499:Add a new settable string variable(init_connect, init_slave)
  to mysqld that is executed for all new connections.
sql/sql_class.h:
  Task ID	499:Add a new settable string variable(init_connect, init_slave)
  to mysqld that is executed for all new connections.
sql/sql_parse.cc:
  Task ID	499:Add a new settable string variable(init_connect, init_slave)
  to mysqld that is executed for all new connections.
sql/sql_show.cc:
  Task ID	499:Add a new settable string variable(init_connect, init_slave)
  to mysqld that is executed for all new connections.
2003-12-08 09:13:14 +04:00
gluh@gluh.mysql.r18.ru
b46d75f08b Task ID 499:Add a new settable string variable(init_connect, init_slave)
to mysqld that is executed for all new connections.
(Similar to the client command: mysql_options(... MYSQL_INIT_COMMAND ...).
2003-12-08 09:13:14 +04:00
unknown
66927c51fa - Fix for BUG#1858 "SQL-Thread stops working when using optimize table":
we change THD::system_thread from a 'bool' to a bitmap to be able to
distinguish between delayed-insert threads and slave threads.
- Fix for BUG#1701 "Update from multiple tables" (one line in sql_parse.cc,
plus a new test rpl_multi_update.test). That's just adding an initialization.


sql/repl_failsafe.cc:
  comment to warn about this unused code
sql/slave.cc:
  Now thd->system_thread is a bitmap, not a bool.
sql/sql_class.h:
  'bool' for THD::system_thread is not accurate enough; sometimes we need
  to distinguish between delayed-insert threads and slave threads;
  so changing THD::system_thread to a bitmap (uint).
sql/sql_insert.cc:
  thd.system_thread is now a bitmap
sql/sql_parse.cc:
  We need to initialize thd->lex.select_lex.options in mysql_init_query();
  it's already initialized in dispatch_command() but replication calls
  mysql_parse() directly, thus bypassing dispatch_command().
  Not initing it here leads to a query influencing the next query,
  in the slave SQL thread.
  The initialization in dispatch_command() must be kept as this
  command uses the variable in tests, even when the command was not a
  query (i.e. when mysql_init_query() was not called).
2003-12-04 22:42:18 +01:00
guilhem@mysql.com
dd2303ce07 - Fix for BUG#1858 "SQL-Thread stops working when using optimize table":
we change THD::system_thread from a 'bool' to a bitmap to be able to
distinguish between delayed-insert threads and slave threads.
- Fix for BUG#1701 "Update from multiple tables" (one line in sql_parse.cc,
plus a new test rpl_multi_update.test). That's just adding an initialization.
2003-12-04 22:42:18 +01:00
unknown
567e9fa5c0 manual merge
sql/slave.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
2003-12-04 18:15:45 +03:00
konstantin@mysql.com
f2377c4dc9 manual merge 2003-12-04 18:15:45 +03:00
unknown
8479e5a379 Fix for BUG#2011 "rare race condition producing "binlog has bad magic number" error in slave".
The problem was that when the slave SQL thread reads a hot relay log (hot = the one being written to by the
slave I/O thread), it must have the LOCK_log. It already took it for read_log_event(), but needs
it also for check_binlog_magic().
This should fix all recently reported failures of the rpl_max_relay_size test in 4.1 and 5.0
(though the bug exists since 4.0, it showed up first in 5.0).


sql/slave.cc:
  Fix for BUG#2011 "rare race condition producing "binlog has bad magic number" error in slave".
  The problem was that when the slave SQL thread reads a hot relay log (hot = the one being written to by the
  slave I/O thread), it must have the LOCK_log. It already took it for read_log_event(), but needs
  it also for check_binlog_magic().
2003-12-04 15:30:14 +01:00
guilhem@mysql.com
1b4bd22bd7 Fix for BUG#2011 "rare race condition producing "binlog has bad magic number" error in slave".
The problem was that when the slave SQL thread reads a hot relay log (hot = the one being written to by the
slave I/O thread), it must have the LOCK_log. It already took it for read_log_event(), but needs
it also for check_binlog_magic().
This should fix all recently reported failures of the rpl_max_relay_size test in 4.1 and 5.0
(though the bug exists since 4.0, it showed up first in 5.0).
2003-12-04 15:30:14 +01:00
unknown
38f853d291 Merge 4.1 to 5.0
BitKeeper/etc/ignore:
  auto-union
BitKeeper/etc/logging_ok:
  auto-union
configure.in:
  Auto merged
client/mysql.cc:
  Auto merged
client/mysqltest.c:
  Auto merged
include/my_global.h:
  Auto merged
include/my_pthread.h:
  Auto merged
include/mysql_com.h:
  Auto merged
libmysql/libmysql.c:
  Auto merged
myisam/mi_check.c:
  Auto merged
myisam/myisamchk.c:
  Auto merged
myisam/myisamdef.h:
  Auto merged
myisam/sort.c:
  Auto merged
mysql-test/install_test_db.sh:
  Auto merged
mysql-test/r/subselect.result:
  Auto merged
mysql-test/r/symlink.result:
  Auto merged
mysql-test/t/subselect.test:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
sql/ha_myisam.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/handler.h:
  Auto merged
sql/item.cc:
  Auto merged
sql/item.h:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/log.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/protocol.cc:
  Auto merged
sql/protocol.h:
  Auto merged
sql/protocol_cursor.cc:
  Auto merged
sql/repl_failsafe.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_db.cc:
  Auto merged
sql/sql_derived.cc:
  Auto merged
sql/sql_error.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_list.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_repl.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_select.h:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_test.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2003-12-01 16:14:40 +01:00
pem@mysql.com
6e717133c5 Merge 4.1 to 5.0 2003-12-01 16:14:40 +01:00
unknown
7ec796f31a In the slave I/O thread (in master.info), it seems less worse to flush
the relay log before flushing master.info.
Doing 'before' leads to duplicate event, doing after leads to missing event.
Both can be as destructive, but 'duplicate' enables us to later add detection
code to catch it. Whereas 'missing' can't be caught (it can't, because
the I/O thread can produce legal position jumps, for example if it has
ignored an event coming from this slave (rememember that starting from 4.1.1,
the I/O thread filters the server id).
2003-11-28 16:15:21 +01:00
guilhem@mysql.com
c9fd311aac In the slave I/O thread (in master.info), it seems less worse to flush
the relay log before flushing master.info.
Doing 'before' leads to duplicate event, doing after leads to missing event.
Both can be as destructive, but 'duplicate' enables us to later add detection
code to catch it. Whereas 'missing' can't be caught (it can't, because
the I/O thread can produce legal position jumps, for example if it has
ignored an event coming from this slave (rememember that starting from 4.1.1,
the I/O thread filters the server id).
2003-11-28 16:15:21 +01:00
unknown
ee10833710 Second attempt: trying to add Statement context to sources.
Added classes Statement, Statement_map
Merge commit


sql/slave.cc:
  no THD::init_for_queries() as mem_root is statement-local
sql/sql_class.cc:
  added Statement
sql/sql_class.h:
  Statement added
sql/sql_parse.cc:
  no THD::init_for_queries()
sql/sql_prepare.cc:
  current_stmt_id -> statement_id_counter
2003-11-27 20:51:53 +03:00
konstantin@oak.local
c75bb0a654 Second attempt: trying to add Statement context to sources.
Added classes Statement, Statement_map
Merge commit
2003-11-27 20:51:53 +03:00
unknown
bd6a70019e Replication:
Now the I/O thread (in flush_master_info()) flushes the relay log to disk
after reading every event. Slower but provides additionnal safety in case
of brutal crash.
I had to make the flush optional (i.e. add a if(some_bool_argument) in the function)
because sometimes flush_master_info() is called when there is no usable
relay log (the relay log's IO_CACHE is not initialized so can't be flushed).


mysql-test/r/rpl_loaddata_rule_m.result:
  avoid a harmless error in the .err file; we don't need a slave in this test
  (even though it's called 'rpl' because it's testing binlog-ignore-db).
mysql-test/t/rpl_loaddata_rule_m.test:
  result update
sql/repl_failsafe.cc:
  update call to flush_master_info() according to new prototype.
sql/slave.cc:
  - Now the I/O thread (in flush_master_info()) flushes the relay log to disk
  after reading every event. Slower but provides additionnal safety in case
  of brutal crash.
  I had to make the flush optional (i.e. add a if(some_bool_argument) in the function)
  because sometimes flush_master_info() is called when there is no usable
  relay log (the relay log's IO_CACHE is not initialized so can't be flushed).
  - Update version in message.
  - Remove warning about bug as it's not true anymore (since this changeset).
sql/slave.h:
  new prototype
sql/sql_repl.cc:
  update call to flush_master_info() according to new prototype.
2003-11-23 17:02:59 +01:00
guilhem@gbichot2
05e5a35bf2 Replication:
Now the I/O thread (in flush_master_info()) flushes the relay log to disk
after reading every event. Slower but provides additionnal safety in case
of brutal crash.
I had to make the flush optional (i.e. add a if(some_bool_argument) in the function)
because sometimes flush_master_info() is called when there is no usable
relay log (the relay log's IO_CACHE is not initialized so can't be flushed).
2003-11-23 17:02:59 +01:00
unknown
d0d8ba7815 Merge paul@bk-internal.mysql.com:/home/bk/mysql-4.1
into teton.kitebird.com:/home/paul/mysql-4.1


sql/slave.cc:
  Auto merged
2003-11-21 23:02:06 -06:00
paul@teton.kitebird.com
9b4050c406 Merge paul@bk-internal.mysql.com:/home/bk/mysql-4.1
into teton.kitebird.com:/home/paul/mysql-4.1
2003-11-21 23:02:06 -06:00
unknown
bab6d9f74b Don't flush cur_log (relay log) on flush_relay_log_info becasue this crashes the server if cur_log is 'hot' and the io_thread has changed log file.
Updated project files for windows
Made rpl_change_master.test portable
Ensure that mutex are not freed if not initilized


VC++Files/client/mysql.dsp:
  Updated project files for windows according to suggestions from Intel
VC++Files/comp_err/comp_err.dsp:
  Updated project files for windows according to suggestions from Intel
VC++Files/innobase/innobase.dsp:
  Updated project files for windows according to suggestions from Intel
VC++Files/libmysqld/examples/test_libmysqld.dsp:
  Updated project files for windows according to suggestions from Intel
VC++Files/libmysqld/libmysqld.dsp:
  Updated project files for windows according to suggestions from Intel
VC++Files/myisamchk/myisamchk.dsp:
  Updated project files for windows according to suggestions from Intel
VC++Files/myisamlog/myisamlog.dsp:
  Updated project files for windows according to suggestions from Intel
VC++Files/myisampack/myisampack.dsp:
  Updated project files for windows according to suggestions from Intel
VC++Files/mysqlmanager/MySqlManager.dsp:
  Updated project files for windows according to suggestions from Intel
VC++Files/mysqlshutdown/mysqlshutdown.dsp:
  Updated project files for windows according to suggestions from Intel
VC++Files/mysys/mysys.dsp:
  Updated project files for windows according to suggestions from Intel
libmysql/libmysql.c:
  Removed not used include files (which caused problems on Win64)
mysql-test/r/rpl_change_master.result:
  Made test portable
mysql-test/t/rpl_change_master.test:
  Made test portable
sql-common/client.c:
  Removed not used include files (which caused problems on Win64)
sql/ha_innodb.cc:
  Ensure that mutex is not freed if not initilized
sql/hostname.cc:
  Ensure that mutex is not freed if not initilized
sql/slave.cc:
  Don't flush cur_log (relay log) on flush_relay_log_info becasue this crashes the server if cur_log is 'hot' and the io_thread has changed log file.
2003-11-22 03:21:40 +02:00
monty@mysql.com
d87494c5ac Don't flush cur_log (relay log) on flush_relay_log_info becasue this crashes the server if cur_log is 'hot' and the io_thread has changed log file.
Updated project files for windows
Made rpl_change_master.test portable
Ensure that mutex are not freed if not initilized
2003-11-22 03:21:40 +02:00
unknown
840af67a0a Change word order of a few PROCESSLIST messages to correspond
to order used in START SLAVE syntax.


sql/log.cc:
  Change word order.
sql/slave.cc:
  Change word order.
2003-11-21 12:35:33 -06:00
paul@teton.kitebird.com
7a1bb450a6 Change word order of a few PROCESSLIST messages to correspond
to order used in START SLAVE syntax.
2003-11-21 12:35:33 -06:00
unknown
8a8fef225d Write slave status field names using consistent style.
(Initial caps for each word.) For example, instead of writing
Until_condition, Until_Log_File, and Until_log_pos, write
Until_Condition, Until_Log_File, and Until_Log_pos.


mysql-test/r/rpl000015.result:
  Write slave status field names using consistent style.
mysql-test/r/rpl_empty_master_crash.result:
  Write slave status field names using consistent style.
mysql-test/r/rpl_error_ignored_table.result:
  Write slave status field names using consistent style.
mysql-test/r/rpl_flush_log_loop.result:
  Write slave status field names using consistent style.
mysql-test/r/rpl_loaddata.result:
  Write slave status field names using consistent style.
mysql-test/r/rpl_log.result:
  Write slave status field names using consistent style.
mysql-test/r/rpl_log_pos.result:
  Write slave status field names using consistent style.
mysql-test/r/rpl_max_relay_size.result:
  Write slave status field names using consistent style.
mysql-test/r/rpl_openssl.result:
  Write slave status field names using consistent style.
mysql-test/r/rpl_redirect.result:
  Write slave status field names using consistent style.
mysql-test/r/rpl_replicate_do.result:
  Write slave status field names using consistent style.
mysql-test/r/rpl_reset_slave.result:
  Write slave status field names using consistent style.
mysql-test/r/rpl_rotate_logs.result:
  Write slave status field names using consistent style.
mysql-test/r/rpl_trunc_binlog.result:
  Write slave status field names using consistent style.
mysql-test/r/rpl_until.result:
  Write slave status field names using consistent style.
mysql-test/t/mix_innodb_myisam_binlog.test:
  Write slave status field names using consistent style.
mysql-test/t/rpl_max_relay_size.test:
  Write slave status field names using consistent style.
sql/slave.cc:
  Write slave status field names using consistent style.
2003-11-20 13:07:25 -06:00
paul@ice.snake.net
53c93091f2 Write slave status field names using consistent style.
(Initial caps for each word.) For example, instead of writing
Until_condition, Until_Log_File, and Until_log_pos, write
Until_Condition, Until_Log_File, and Until_Log_pos.
2003-11-20 13:07:25 -06:00
unknown
214ad82803 Merging 4.1->5.0.
BitKeeper/etc/ignore:
  auto-union
BitKeeper/etc/logging_ok:
  auto-union
BitKeeper/triggers/post-commit:
  Auto merged
client/mysql.cc:
  Auto merged
configure.in:
  Auto merged
include/my_global.h:
  Auto merged
include/my_pthread.h:
  Auto merged
include/mysql_com.h:
  Auto merged
libmysql/libmysql.c:
  Auto merged
libmysqld/Makefile.am:
  Auto merged
libmysqld/lib_sql.cc:
  Auto merged
myisam/mi_check.c:
  Auto merged
myisam/myisamchk.c:
  Auto merged
myisam/myisamdef.h:
  Auto merged
mysql-test/r/rpl_temporary.result:
  Auto merged
mysql-test/r/show_check.result:
  Auto merged
mysql-test/r/subselect.result:
  Auto merged
mysql-test/r/variables.result:
  Auto merged
mysql-test/t/subselect.test:
  Auto merged
mysql-test/t/variables.test:
  Auto merged
scripts/mysql_install_db.sh:
  Auto merged
sql/Makefile.am:
  Auto merged
sql/ha_berkeley.cc:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
sql/ha_myisam.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/handler.h:
  Auto merged
sql/item_subselect.cc:
  Auto merged
sql/item_sum.cc:
  Auto merged
sql/item_sum.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/slave.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_cache.cc:
  Auto merged
sql/sql_db.cc:
  Auto merged
sql/sql_delete.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_repl.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_union.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
sql/table.h:
  Auto merged
2003-11-19 15:19:46 +01:00
pem@mysql.com
28a2c6a96b Merging 4.1->5.0. 2003-11-19 15:19:46 +01:00
unknown
f97f48acaf Merge with 4.0
BitKeeper/etc/logging_ok:
  auto-union
BitKeeper/deleted/.del-apply-patch:
  Delete: netware/BUILD/apply-patch
BitKeeper/deleted/.del-save-patch:
  Delete: netware/BUILD/save-patch
BitKeeper/deleted/.del-mini_client.cc~8677895ec8169183:
  Auto merged
BitKeeper/triggers/post-commit:
  Auto merged
VC++Files/mysys/mysys.dsp:
  Auto merged
client/mysqlbinlog.cc:
  Auto merged
extra/resolveip.c:
  Auto merged
include/config-win.h:
  Auto merged
include/my_global.h:
  Auto merged
include/my_sys.h:
  Auto merged
include/mysql_com.h:
  Auto merged
innobase/include/os0thread.h:
  Auto merged
innobase/os/os0file.c:
  Auto merged
innobase/srv/srv0start.c:
  Auto merged
innobase/thr/thr0loc.c:
  Auto merged
libmysql/manager.c:
  Auto merged
libmysqld/Makefile.am:
  Auto merged
libmysqld/lib_sql.cc:
  Auto merged
myisam/ft_boolean_search.c:
  Auto merged
myisam/mi_extra.c:
  Auto merged
myisam/mi_locking.c:
  Auto merged
mysql-test/mysql-test-run.sh:
  Auto merged
mysql-test/r/fulltext.result:
  Auto merged
mysql-test/r/myisam.result:
  Auto merged
mysql-test/r/select.result:
  Auto merged
mysql-test/t/fulltext.test:
  Auto merged
mysql-test/t/myisam.test:
  Auto merged
mysql-test/t/rpl_reset_slave.test:
  Auto merged
mysql-test/t/rpl_trunc_binlog.test:
  Auto merged
mysys/Makefile.am:
  Auto merged
mysys/errors.c:
  Auto merged
mysys/my_symlink.c:
  Auto merged
mysys/my_thr_init.c:
  Auto merged
scripts/mysql_install_db.sh:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/log_event.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/slave.cc:
  Auto merged
sql/sql_cache.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_repl.cc:
  Auto merged
sql/sql_test.cc:
  Auto merged
sql/unireg.h:
  Auto merged
client/mysqldump.c:
  merge with 4.0 (quoted names)
configure.in:
  use local file
include/my_pthread.h:
  Use local file
innobase/include/srv0srv.h:
  Use local file
innobase/row/row0sel.c:
  Use local file
innobase/srv/srv0srv.c:
  Use local file
libmysql/libmysql.c:
  Use local file
myisam/myisamchk.c:
  merge fixes
mysql-test/r/func_crypt.result:
  update results
mysql-test/r/order_by.result:
  update results
mysql-test/r/query_cache.result:
  update results
mysql-test/r/range.result:
  update results
mysql-test/r/rpl_reset_slave.result:
  update results
mysql-test/r/rpl_trunc_binlog.result:
  update results
mysql-test/t/func_crypt.test:
  Added disable_warnings/enable warnings
mysql-test/t/query_cache.test:
  merge tests
mysql-test/t/range.test:
  merge tests
mysys/charset.c:
  use local file (will merge patch separately)
sql/ha_innodb.cc:
  use local file
sql/log_event.cc:
  new slave_proxy_id handling
sql/slave.h:
  merge
sql/sql_base.cc:
  merge
sql/sql_parse.cc:
  Fixes for counting user connect resourses
  Added function comments for involved functions
sql/sql_select.cc:
  Fix for not doing sort with LIMIT when OPTION_FOUND_ROWS is used
sql/unireg.cc:
  merge fixes
support-files/mysql.server.sh:
  merge fixes
2003-11-04 09:40:36 +02:00
monty@narttu.mysql.fi
4e4725377d Merge with 4.0 2003-11-04 09:40:36 +02:00
unknown
5ec3a67132 When we delete the slave's temp tables from memory, we reset
rli->save_temporary_tables and slave_open_temp_tables
(in old 4.0 you could make "SHOW STATUS LIKE 'slave_open_temp_tables'" grow
indefinitely by doing RESET SLAVE and replicating always the same CREATE
TEMPORARY TABLE).
It's critical to reset save_temporary_tables to 0 (otherwise you may later
read memory which has been freed) so this changeset should go into 4.1.


mysql-test/r/rpl_reset_slave.result:
  result update
mysql-test/t/rpl_reset_slave.test:
  test for RESET SLAVE and creating twice the same temp table in the slave.
sql/slave.cc:
  when we delete the slave's temp tables (when slave server shuts down and when
  RESET SLAVE), we reset 2 variables: rli->save_temporary_tables & slave_open_temp_tables.
2003-11-03 18:24:01 +01:00
guilhem@mysql.com
fbc54c139d When we delete the slave's temp tables from memory, we reset
rli->save_temporary_tables and slave_open_temp_tables
(in old 4.0 you could make "SHOW STATUS LIKE 'slave_open_temp_tables'" grow
indefinitely by doing RESET SLAVE and replicating always the same CREATE
TEMPORARY TABLE).
It's critical to reset save_temporary_tables to 0 (otherwise you may later
read memory which has been freed) so this changeset should go into 4.1.
2003-11-03 18:24:01 +01:00
unknown
b920ab261e 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.
2003-10-31 23:20:23 +01:00
guilhem@mysql.com
c1f7f33960 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.
2003-10-31 23:20:23 +01:00
unknown
03dbf8ccbb Fix for BUG#1686
"If 2 master threads with same-name temp table, slave makes bad binlog"
and (two birds with one stone) for
BUG#1240 "slave of slave breaks when STOP SLAVE was issud on parent slave
and temp tables".

Here is the design change:
in a slave running with --log-slave-updates, events are now logged with the
thread id they had on the master. So no more id conflicts between master threads,
but introduces id conflicts between one master thread and one normal 
client thread connected to the slave. This is solved by storing the server id
in the temp table's name.

New test which requires mysql-test-run to be run with --manager,
otherwise it will be skipped.

Undoing a Monty's change (hum, a chill runs down my spine ;) which was
"Cleanup temporary tables when slave ends" in ChangeSet 1.1572.1.1.


mysql-test/mysql-test-run.sh:
  One new test which needs more than one slave so must be hardcoded in mysql-test-run.sh.
sql/log_event.cc:
  The event needs to carry a slave_proxy_id (which is set at event's creation
  and used at event's logging).
  This is used for events created by ::exec_event() in the slave SQL thread:
  now we want to log these events with the thread id they had on the master.
  This is so that several same-name temp tables simultaneously created on
  the master end up with not the same thread id in the slave's binlog.
sql/log_event.h:
  Query and Load need to carry a slave_proxy_id, like they carried a thread_id
  (to replicate temp tables well).
sql/slave.cc:
  Do not free temp tables in the slave SQL thread. Or they will be lost when
  one does STOP SLAVE / START SLAVE.
  We even save them in rli->save_temporary_tables and set thd->temporary_tables=0
  to prevent them to be freed.
sql/sql_base.cc:
  Put the server id in the table cache key name for temp tables
  (we already put the slave_proxy_id, but we also need the server id
  in case normal clients (not slave threads) are using temp tables
  on the slave).
sql/unireg.h:
  4 more bytes, to store the server id.
2003-10-29 14:23:35 +01:00
guilhem@mysql.com
59d0872aa0 Fix for BUG#1686
"If 2 master threads with same-name temp table, slave makes bad binlog"
and (two birds with one stone) for
BUG#1240 "slave of slave breaks when STOP SLAVE was issud on parent slave
and temp tables".

Here is the design change:
in a slave running with --log-slave-updates, events are now logged with the
thread id they had on the master. So no more id conflicts between master threads,
but introduces id conflicts between one master thread and one normal 
client thread connected to the slave. This is solved by storing the server id
in the temp table's name.

New test which requires mysql-test-run to be run with --manager,
otherwise it will be skipped.

Undoing a Monty's change (hum, a chill runs down my spine ;) which was
"Cleanup temporary tables when slave ends" in ChangeSet 1.1572.1.1.
2003-10-29 14:23:35 +01:00
unknown
ec3a39dc67 Post-merge fixes.
mysql-test/r/sp-error.result:
  Post-merge fixes. Error codes renumbered.
mysql-test/r/sp.result:
  Post-merge fixes. Error codes renumbered.
mysql-test/r/variables.result:
  Post-merge fixes. Error codes renumbered.
mysql-test/t/sp-error.test:
  Post-merge fixes. Error codes renumbered.
mysql-test/t/sp.test:
  Post-merge fixes. Error codes renumbered.
sql/item_subselect.cc:
  Post-merge fixes. thd->lex is a pointer.
sql/slave.cc:
  Post-merge fixes. Undid imported patch that's not 5.0 compatible.
sql/sql_parse.cc:
  Post-merge fixes. Changed access API calls, and fixed merge error.
sql/sql_table.cc:
  Post-merge fixes. No update log in 5.0.
2003-10-23 16:06:51 +02:00
pem@mysql.comhem.se
692609537d Post-merge fixes. 2003-10-23 16:06:51 +02:00
unknown
24f8b1cfa8 Merging 4.1->5.0
BitKeeper/etc/ignore:
  auto-union
BitKeeper/etc/logging_ok:
  auto-union
BitKeeper/deleted/.del-compile-netware-src~1:
  Delete: netware/BUILD/compile-netware-src
BitKeeper/deleted/.del-knetware.imp~1:
  Delete: netware/BUILD/knetware.imp
client/mysql.cc:
  Auto merged
configure.in:
  Auto merged
include/my_global.h:
  Auto merged
include/mysql_com.h:
  Auto merged
libmysql/libmysql.c:
  Auto merged
libmysqld/Makefile.am:
  Auto merged
libmysqld/lib_sql.cc:
  Auto merged
myisam/mi_check.c:
  Auto merged
myisam/myisamchk.c:
  Auto merged
myisam/myisamdef.h:
  Auto merged
mysql-test/r/distinct.result:
  Auto merged
mysql-test/r/subselect.result:
  Auto merged
mysql-test/r/variables.result:
  Auto merged
mysql-test/t/subselect.test:
  Auto merged
mysql-test/t/variables.test:
  Auto merged
scripts/mysql_create_system_tables.sh:
  Auto merged
scripts/mysql_install_db.sh:
  Auto merged
sql/ha_berkeley.cc:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
sql/ha_myisam.cc:
  Auto merged
sql/item.cc:
  Auto merged
sql/item.h:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/item_create.cc:
  Auto merged
sql/item_subselect.cc:
  Auto merged
sql/item_sum.cc:
  Auto merged
sql/lock.cc:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/protocol.cc:
  Auto merged
sql/repl_failsafe.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/slave.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_cache.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_db.cc:
  Auto merged
sql/sql_delete.cc:
  Auto merged
sql/sql_derived.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_load.cc:
  Auto merged
sql/sql_repl.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_union.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2003-10-22 16:10:22 +02:00
pem@mysql.com
337238b78a Merging 4.1->5.0 2003-10-22 16:10:22 +02:00
unknown
954264b19e merged
BitKeeper/etc/ignore:
  auto-union
include/m_ctype.h:
  Auto merged
mysql-test/r/mysqldump.result:
  Auto merged
sql/field.cc:
  Auto merged
sql/ha_berkeley.cc:
  Auto merged
sql/handler.h:
  Auto merged
sql/item.cc:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/slave.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_delete.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_test.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/table.cc:
  Auto merged
strings/ctype-simple.c:
  Auto merged
2003-10-21 11:58:43 +02:00
serg@serg.mylan
f944fd4a65 merged 2003-10-21 11:58:43 +02:00
unknown
0b8743c1b2 A fix for a random test failure rpl_trunc_binlog: don't RESET MASTER
while the slave is connected.


mysql-test/t/rpl_trunc_binlog.test:
  don't RESET MASTER while the slave is connected; this could confuse the master or slave.
  (In replication you don't RESET MASTER while a slave is connected!)
sql/slave.cc:
  typo
2003-10-17 00:00:25 +02:00
guilhem@mysql.com
ce6d736714 A fix for a random test failure rpl_trunc_binlog: don't RESET MASTER
while the slave is connected.
2003-10-17 00:00:25 +02:00
unknown
aff45e1b07 merge with 4.0
BitKeeper/deleted/.del-MYSQL.ICO~d93519b5f0d6ee1:
  Auto merged
client/client_priv.h:
  Auto merged
extra/resolveip.c:
  Auto merged
include/mysql.h:
  Auto merged
include/thr_alarm.h:
  Auto merged
myisam/myisamchk.c:
  Auto merged
scripts/mysql_config.sh:
  Auto merged
scripts/mysqld_safe.sh:
  Auto merged
sql/slave.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_handler.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_test.cc:
  Auto merged
2003-10-16 03:08:40 +03:00
monty@mashka.mysql.fi
e87c9f5ff8 merge with 4.0 2003-10-16 03:08:40 +03:00
unknown
b06eb4d81a Better fix for CREATE TABLE IF NOT EXISTS ... SELECT
Fixed chsize() problem on windows
Extend default timeout on windows clients to 1 year (to avoid timeout problems)


include/mysql.h:
  Added client timeouts (for TCP/IP)
libmysql/libmysql.c:
  Added client timeouts (for TCP/IP)
mysql-test/r/create.result:
  More tests for CREATE TABLE IF NOT EXISTS ... SELECT
mysql-test/t/create.test:
  More tests for CREATE TABLE IF NOT EXISTS ... SELECT
mysys/my_chsize.c:
  Fix for windows
sql/handler.h:
  Remove not used field 'if_not_exists'
  Ordered fields to be more optimized for new CPU's
  Added field 'table_existed'
sql/slave.cc:
  Cleanup temporary tables when slave ends
sql/sql_class.h:
  Remove not used 'do_not_drop' field
sql/sql_insert.cc:
  Better fix for CREATE TABLE IF NOT EXISTS ... SELECT
sql/sql_table.cc:
  Better fix for CREATE TABLE IF NOT EXISTS ... SELECT
2003-10-15 21:41:13 +03:00
monty@mashka.mysql.fi
84d9d98078 Better fix for CREATE TABLE IF NOT EXISTS ... SELECT
Fixed chsize() problem on windows
Extend default timeout on windows clients to 1 year (to avoid timeout problems)
2003-10-15 21:41:13 +03:00
unknown
b192ab5edc merged
BitKeeper/etc/ignore:
  auto-union
myisam/myisamdef.h:
  Auto merged
sql/ha_berkeley.cc:
  Auto merged
sql/ha_innodb.h:
  Auto merged
sql/ha_myisam.cc:
  Auto merged
sql/handler.h:
  Auto merged
sql/item.cc:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/slave.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_test.cc:
  Auto merged
sql/table.cc:
  Auto merged
2003-10-15 12:25:44 +02:00