Added bug fix from 3.23 for AIX 4.3.3 and gcc 3.x
Small change in EXCHANGE output
Propagate open-files-limit from mysqld_safe -> mysqld
Fixed speed bug in GROUP BY
Added quotes around database name in CREATE DATABASE db_name (for binary log)
Fixed reference to freed memory in acl_init()/grant_init()
Fixed possible memory leak. (Could only happen in very strange circumstances)
Fixed bug in ALTER TABLE with BDB tables
Updated mysql-test for valgrind
Warning handling and initial prepared statement handling (last not complete yet)
Changed a lot of functions that returned 0/1 to my_bool type.
GRANT handling now uses read/write locks instead of mutex
Change basic net functions to use THD instead of NET
(needed for 4.1 protocol)
Use my_sprintf instead of sprintf() + strlen()
Added alloc_query() to be able to chare query initialization code with
prepared statements.
Cleanup handling of SHOW COUNT(*) WARNINGS and SELECT LAST_INSERT_ID()
Note that the following test fails (will be fixed ASAP):
sub_select, union, rpl_rotate_logs and rpl_mystery22
Improve mysql-test to be more robust.
Fix that GRANT doesn't delete SSL options
Change innobase_flush_log_at_trx_commit to uint.
Don't rotate logs if we read a rotate log entry from the master.
Fixed that GRANT ... REQUIRE options are not forgot when doing new GRANT
Changed fn_ext to point at first '.' after directory.
FLUSH LOGS removed numerical extension for all future update logs.
Fixed the mysqld --help reports right values for --datadir and --bind-address
--log-binary=a.b.c now properly strips of .b.c
Fix that one can DROP UDF functions that was not loaded at startup
Made AND optional in REQUIRE
Added REQUIRE NONE
Some simple optimzations, more comments and indentation changes.
Add ` around database in 'use database' in binary log.
Moved max_error_count and max_warning_count to variables struct.
Removed SHOW_WARNS_COUNT and SHOW_ERRORS_COUNT calls.
Changed string functions to use character set of first string argument as default return characterset
(Each string function can change the above assumption if needed)
Changed option variables to my_bool (to avoid bugs in my_getopt())
Added new thread specific mutex LOCK_delete to be able to free LOCK_thread_count early.
Changed usage of LOCK_thread_count -> LOCK_status for statistics variables
More DBUG info for replication
Better error messages from replication
Fixed bug in replication code when connecting to 'localhost' (time was not released properly)
Block ALARM signal on Linux for signal handler thread (Fixes problem with running mysqld with --debug)
Removed warning when setting an AUTO_INCREMENT field to NULL
Fixed configure problems with HPUX and openbsd
SHOW SLAVE STATUS returns empty set if slave is not initialized
SHOW MASTER STATUS returns empty set if binary logging is not enabled.
Fixed shutdown problem on Solaris.
Fixed bugs in my last changeset that made MySQL hard to compile.
Added mutex around some data that could cause table cache corruptions when using OPTIMIZE TABLE / REPAIR TABLE or automatic repair of MyISAM tables.
Added mutex around some data in the slave start/stop code that could cause THD linked list corruptions
Extended my_chsize() to allow one to specify a filler character.
Extend vio_blocking to return the old state (This made some usage of this function much simpler)
Added testing for some functions that they caller have got the required mutexes before calling the function.
Use setrlimit() to ensure that we can write core file if one specifies --core-file.
Added --slave-compressed-protocol
Made 2 the minimum length for ft_min_word_len
Added variables foreign_key_checks & unique_checks.
Less logging from replication code (if not started with --log-warnings)
Changed that SHOW INNODB STATUS requre the SUPER privilege
More DBUG statements and a lot of new code comments
Made a some new buffers thread specific and changeable.
Resize of key_buffer.
AUTO_COMMIT -> AUTOCOMMIT
Fixed mutex bug in DROP DATABASE
Fixed bug when using auto_increment as second part of a key where first part could include NULL.
Split handler->extra() to extra() and extra_opt() to be able to support thread specific buffers.
Don't write message to error log when slave reconnects becasue of timeout.
Fixed possible update problem when using DELETE/UPDATE on small tables
(In some cases we used index even if table scanning would be better)
A lot of minior code cleanups
Suppress prints by slave.cc when there is a normal reconnect after the master has been quiet for the time of the net read timeout; this removes the Error 1159 messages many users have complained about in the replication of 3.23.51
SHOW DATABASES
CREATE TEMPORARY TABLE
LOCK TABLES
REPLICATION SLAVE & REPLICATION CLIENT
SUPER
EXECUTE
All scripts & documentation is updated for this change.
Added better error messages for global privileges
(All commit emails since 4.0.1 checked)
This had to be done now, before the 4.1 tree changes to much, to make it easy to propagate bug fixes to the 4.1 tree.
DBUG_ macro cleanup
buffer boundary cleanup
This changeset, although not fully tested, works for me better than
anything I've had so far, including what is in the repository. I will
push it unless something crashes while I am writing this :-)
of one of our users which replicates from a live server. So I now have a
lot of confidence in it and will push. It passes all tests, so I if I broke
somebody's code in 3.23 merge this is your fault - you should have had a good test
case :-)
got LOAD DATA INFILE replication from 3.23 master to 4.0 slave to work
for some reason query_cache now fails - will push anyway and document the
failure if I can repeat it.
fixed bug in LOAD DATA FROM MASTER
fixed rpl000001.result
Slave now replicates 3.23 master, with the exception of LOAD DATA INFILE,
which is still buggy. Will push this one after the pull/merge
Test of unsigned BIGINT values
Fixes for queries-per-hour
Cleanup of replication code (comments and portability fixes)
Make most of the binary log code 4G clean
Changed syntax for GRANT ... QUERIES PER HOUR
fixed a couple of bugs with SEQ_READ_APPEND cache
rpl000016 still has non-deterministic result, but I am going to commit and
push since what I have is now better than what is in the main repository
fixed too quick timeout in mysql-test-run which caused a race with the
new server getting started before the old one completely finished
shutdown. This should fix the pid warning we've been getting as well as
inconsistent results when running tests with the manager
first pull, merge,test, and get it to work.
The main change is the new replication code - now we have two slave threads
SQL thread and I/O thread. I have also re-written a lot of the code to
prepare for multi-master implementation.
I also documented IO_CACHE quite extensively and to some extend, THD class.
added extra/mysql_install.c - will work on it in 4.0, but it does not hurt
to have it sit in 3.23 tree for now since it will eventually be backported
to 3.23 anyway
Stop event and bugs the test suite could not catch
Did some big restructuring of binlog event classes - most important
change is that now each event class has exec_event method and one does
not need to modify slave core code to add a new event. Slave code is
now much smaller and easier to read
fixed test case to produce same results on txn-enabled binary.
temporary fix - permanent fix is it make mysqld behave the same with
MyISAM on auto_increment insert after delete from tbl_name regardless
of how the binary was compiled
sql/slave.cc
fixed concurrency bug with log_seq
sql/slave.h
last_log_seq needs to be updated atomically with pos
sql/sql_repl.cc
cleared up comment and fixed concurrency bug
mark killed partially completed updates with an error code in binlog
stop replication if the master reports a possible partial/killed update
test partially killed update
updated manual about table lock counter
fixed coredump in DROP DATABASE with long bogus name by non-root user
fixed bug in handling STOP immediately after ROTATE
added test case for buffer overrun on DROP DATABASE by non-root user
added test case for the STOP bug in replication
fixed sync bugs in three test cases
added offset argument to sync_with_master to mysqltest to be able to fix sync bugs
added a test case for slave startup with existing master.info
expanded mysql-test-run.sh to be able to run pre-start shell script initializations
slave will skip the first SQL_SLAVE_SKIP_COUNTER events on start -
this is needed to recover from broken replication when the next log
event(s) should just be skipped.
Rotate binlogs when max_binlog_size is reached
fixed bug that created empty result files in no-record mode
mysql-test/t/rpl000007.test
testing non-replication of load data infile when the table is excluded from replication
mysql-test/t/rpl000016.test
test purge master logs
sql/slave.cc
fix memory leaks found by purge master logs test
sql/sql_repl.cc
fixed race condition and delete before close bug in reset_slave()
Overall comments - coverage testing is a very good thing!
fixed slave to preserve temp tables on slave stop; slave start
added abort-slave-event-count option to mysqld to test the above
added a test case for temp tables with a contantly aborting slave
removed warning in sql_parse.cc
fixed thimble.cc to compile
while slave thread has temp tables - not hard to fix though, but it is time to go to bed
added a new test case for temp table replication and Slave_open_temp_tables
status variable.
Misc fixes
send_file() is more stack-friendly - changed large static buffer to alloc_root()
fixed my_b_seek() to work with WRITE_CACHE
test case to make sure the slave starts correctly after being stopped
truncated words file so the replication tests will take less time
cleanup - remove unneeded daeamon restarts
sql/log_event.cc
fixed bug - do not confuse confused slaves even further if they try to
read less than LOG_EVENT_HEADER_LEN before the end of file
sql/mysqlbinlog.cc
give error if constructor fails
sql/mysqld.cc
--disconnect-slave-event-count for replication debugging
sql/slave.cc
--disconnect-slave-event-count
cleanup to remove unneeded sleeps when things go wrong - sleep only
when we have to
sql/slave.h
--disconnect-slave-event-count
test cases for ALTER TABLE ORDER BY and replication offset off by 22
confusion mystery bug (both pass)
this file needs to be deleted
sql/log_event.cc
fixed warnings
sql/log_event.h
fixed () #define bug
sql/mysqlbinlog.cc
fixed length argument - was supposed to be one less
sql/mysqld.cc
replicate-do/ignore-table now works, wild does not yet
sql/mysql_priv.h
updating argument to add_table_to_list() -- needed for replicate-do/ignore table
sql/slave.cc
changes fore replicate-do/ignore-table
close the socket before going to sleep sleeping after error
bad event was being freed too early
sql/slave.h
changes for replicate-do/ignore-table
sql/sql_class.cc
slave_thread variable to THD
sql/sql_class.h
added slave_thread to THD, fixed bug in end_time()
sql/sql_parse.cc
updating argument to add_tables_to_list()
sql/sql_table.cc
fixed bug in mysql_rm_table()
sql/sql_yacc.yy
fixed up add_table_to_list() calls to accept updating argument
sql/table.h
added updating to TABLE_LIST
fixed coredump in concat_ws
sql/item_strfunc.h
fixed coredump in concat_ws
sql/mini_client.cc
added mc_mysql_error()
sql/mini_client.h
added mc_mysql_errno()
sql/mysqlbinlog.cc
fixed bug in --postion for local files
sql/slave.cc
more verbose message on bad net reads
sql/sql_repl.cc
send errno on error in mysql_binlog_send
mutex now initialized in the constructor
sql/sql_class.h
intialize MASTER_INFO mutex in the constructor
sql/sql_repl.cc
fixed typo in error message
if the user does not specify offset in CHANGE MASTER TO, set it to skip magic number
repl-tests/test-repl-ts/repl-timestamp.master.reject
New BitKeeper file ``repl-tests/test-repl-ts/repl-timestamp.master.reject''
keep vio from being freed twice when we are low on memory
mysys/safemalloc.c
changes for --safemalloc-mem-limit
sql/mini_client.cc
keep vio from being freed twice
sql/mysqld.cc
changes for --safemalloc-mem-limit
sql/slave.cc
prevent closing connection twice
sql/sql_string.h
shrink() did not work right when my_realloc() failed
replication updates
sql/opt_range.h
fixed compiler warning
sql/slave.cc
fixed handling of long usernames
fixed insert_id + query log event processing atomicity in the case
of slave death
fix edcharset coversion to not be global to all threads
sql/sql_class.h
fix to make insert_id event and the subsequent query event be still processed
atomically if slave dies in the middle
sql/sql_select.cc
temp fix to make it compile
repl-tests/test-auto-inc/run.test@1.1
New BitKeeper file ``repl-tests/test-auto-inc/run.test''
repl-tests/test-auto-inc/x.master@1.1
New BitKeeper file ``repl-tests/test-auto-inc/x.master''
Added magic number to binlog
sql/log_event.cc
distinquish bogus data from truncated logs
sql/log_event.h
added magic number
added LOG_READ_TRUNC error
sql/mysqlbinlog.cc
fixed to handle magic number
added O_BINARY to my_fopen
sql/mysqld.cc
added code for replicate-rewrite-db
sql/slave.cc
replicate-rewrite-db
O_BINARY
handle magic
sql/sql_class.h
added i_string_pair class
sql/sql_repl.cc
added magic
better error messages
support-files/magic
added magic for binlog
Added test case for replication of queries with error