ChangeSet 1.1620.12.1 and ChangeSet 1.1625.2.1
from 4.1. This makes the slave I/O thread flush the relay log
after every event, which provides additional safety in case
of brutal crash (reduces chances to lose a part of the relay log).
sql/repl_failsafe.cc:
update for new prototype
sql/slave.cc:
The slave I/O thread now flushes the relay log after writing
every event to it, like we already do in 4.1.
sql/slave.h:
new prototype
sql/sql_repl.cc:
update for new prototype
- the one about BUG#2921
- the one about relay log flushing
Both will be rewritten in a next changeset
(this one will not be pushed before the next changeset).
sql/log.cc:
undo
sql/log_event.cc:
undo
sql/repl_failsafe.cc:
undo
sql/slave.cc:
undo
sql/slave.h:
undo
sql/sql_repl.cc:
undo
BUILD/compile-pentium-debug-max:
Added --with-raid
configure.in:
Removed -DFN_NO_CASE_SENCE for Mac OS X as this is not always true
mysql-test/install_test_db.sh:
Added --skip-warnings
mysql-test/mysql-test-run.sh:
Fixes to get --gdb and --ddd to work
mysql-test/r/lowercase_table2.result:
Test for lower_case_table_names=2 and temporary tables
mysql-test/r/lowercase_table3.result:
Fixed error message
mysql-test/r/multi_update.result:
Test of behaviour of multi-table-delete and alias
mysql-test/t/lowercase_table2.test:
Test for lower_case_table_names=2 and temporary tables
mysql-test/t/lowercase_table3.test:
Fixed error
mysql-test/t/multi_update.test:
Test of behaviour of multi-table-delete and alias (Bug #2940)
mysys/mf_iocache.c:
Renamed _flush_io_cache to my_b_flush_io_cache
sql/ha_myisam.cc:
Added comment
sql/lock.cc:
Extra debugging
sql/log.cc:
New parameter to flush_relay_log_info
sql/log_event.cc:
New parameter to flush_relay_log_info
sql/mf_iocache.cc:
Removed not used header files
sql/mysqld.cc:
More debugging info
Less warnings when run with --skip-warnings
sql/opt_range.cc:
More debug information
sql/repl_failsafe.cc:
New parameter to flush_relay_log_info
sql/slave.cc:
First start SQL thread, then start IO thread. This fixed a raze condition in SLAVE START (Bug #2921)
Ensure that we have a lock on the IO thread before flushing a relay log file that. The original code could core dump when a relay log rotated.
sql/slave.h:
New parameter to flush_relay_log_info
sql/sql_base.cc:
Added warning
sql/sql_handler.cc:
Indentation fix
sql/sql_repl.cc:
New parameter to flush_relay_log_info
sql/sql_select.cc:
Fixed problem with deleting temporary tables when using lower_case_table_names=2. (Bug #2858)
sql/sql_table.cc:
Fixed comment
sql/sql_yacc.yy:
Removed compiler warning
include/my_sys.h:
Fixed usage of unpack_filename
mysys/mf_pack.c:
Changed unpack_filename() to return length of result string.
mysys/test_fn.c:
Fixed usage of unpack_filename
sql/sql_db.cc:
Fixed memory leak with raid tables
sql/table.cc:
Fixed usage of unpack_filename
"CHANGE MASTER makes SQL thread restart from coordinates of I/O thread".
So, in CHANGE MASTER:
when it seems reasonable that the user did not want to discontinue
its replication (i.e. when he is not specifying host or port or master_log_file
or master_log_pos; this will be documented), set the coordinates of the
I/O thread to those of the SQL thread. This way, the SQL thread will see
no discontinuity in the relay log (i.e. will skip no events), because
the I/O thread will fill the brand new relay log with the events which
are just after the position where the SQL thread had stopped
(before CHANGE MASTER was issued).
And a new test for this bug.
mysql-test/r/rpl_loaddata.result:
Now, after CHANGE MASTER the coordinates of the I/O thread are the last ones of the SQL thread, so result update.
sql/sql_repl.cc:
Fix for BUG#1870
"CHANGE MASTER makes SQL thread restart from coordinates of I/O thread".
So, in CHANGE MASTER:
when it seems reasonable that the user did not want to discontinue
its replication (i.e. when he is not specifying host or port or master_log_file
or master_log_pos; this will be documented), set the coordinates of the
I/O thread to those of the SQL thread. This way, the SQL thread will see
no discontinuity in the relay log (i.e. will skip no events), because
the I/O thread will fill the brand new relay log with the events which
are just after the position where the SQL thread had stopped
(before CHANGE MASTER was issued).
For example the Binlog_dump thread (on the master) sometimes showed "Slave:".
And there were confusing messages where "binlog" was employed instead
of "relay log".
sql/log.cc:
MYSQL_LOG::wait_for_update() is used by the binlog_dump and I/Oslave threads,
and it updates thd->proc_info, so we need a bool to not show the same
proc_info for 2 different things (previously we showed "Slave: etc" and that's
bad for a binlog_dump thread).
sql/slave.cc:
Clearer thd-proc_info for slave threads.
sql/sql_class.h:
prototype change
sql/sql_repl.cc:
clearer thd->proc_info for binlog_dump thread
"LOAD DATA INFILE is badly filtered by binlog-*-db rules".
There will probably be a second final one to merge Dmitri's changes
to rpl_log.result and mine.
2 new tests:
rpl_loaddata_rule_m : test of logging of LOAD DATA INFILE when the master has binlog-*-db rules,
rpl_loaddata_rule_s : test of logging of LOAD DATA INFILE when the slave has binlog-*-db rules and --log-slave-updates.
mysql-test/r/rpl_loaddata.result:
Test that logging of LOAD DATA INFILE is done on the slave
mysql-test/t/rpl_loaddata.test:
Test that logging of LOAD DATA is done on the slave
sql/log.cc:
debug info
sql/log_event.cc:
* Append_block, Exec_load and Delete_file now have a member 'db' like Create_file.
This member is filled by mysql_load(). It is used for filtering by binlog-*-db rules,
that's all. It's not written to the binlog, and so can't be read from the binlog.
In other words, that's temporary info which is stored in the event and lost when
it is written and deleted.
* Better error messages in Append_block et al. events.
* The slave now logs (log-slave-updates) the Create_file et al. events in mysql_load()
(they are not directly copied from the events in the relay log, because this
prevented filtering by binlog-*-db rules). Before, mysql_load() in the slave
did no logging, now it does the logging, as in any regular thread.
sql/log_event.h:
New member 'db' for Append_block et al. events.
sql/slave.cc:
Removed useless code. Why was it useless:
- CREATE_FILE_EVENT is not defined in 3.23. It appeared in 4.0.
- in queue_old_event(), which is called only if the master is 3.23, we had a
case CREATE_FILE_EVENT:
so this case can be removed.
- this case was the only caller of process_io_create_file() so this function
can be removed.
sql/sql_load.cc:
Pass the db to events, so that they can be well filtered.
sql/sql_repl.cc:
Pass the db to events so that they can be well filtered.
- Bug #985: "Between RESET SLAVE and START SLAVE, SHOW SLAVE STATUS is wrong."
Now RESET SLAVE puts correct info in mi->host etc. A new test rpl_reset_slave
for that.
- Bug #986: "CHANGE MASTER & START SLAVE do not reset error columns in SHOW
SLAVE STATUS". Now these reset the errors.
mysql-test/r/rpl_loaddata.result:
result update.
mysql-test/t/rpl_loaddata.test:
Test that RESET SLAVE, START SLAVE and CHANGE MASTER all reset
Last_slave_error and Last_slave_errno (columns of SHOW SLAVE STATUS).
We do it in this test because that's one of tests which have
an intentional query error on the slave.
sql/slave.cc:
As we need TWICE the code to copy command-line options (--master-host etc)
to mi (we already had it in init_master_info, but we also need it in RESET
SLAVE to fix bug#985), I make a function of this code.
And a function to reset Last_slave_error and Last_slave_errno (we need
it in CHANGE MASTER, RESET SLAVE, and at the start of the SQL thread).
sql/slave.h:
declarations for new functions.
sql/sql_repl.cc:
copy --master-host etc to mi in RESET SLAVE, so that SHOW SLAVE STATUS
shows correct information.
just a flush_relay_log_info() at the end of CHANGE MASTER
(there was already flush_master_info()).
sql/sql_repl.cc:
Comments.
Flush relay-log.info after CHANGE MASTER, or the changes
to the relay log parameters (relay log name and position, and
the corresponding master's binlog name and position) will be
lost if the slave mysqld is shutdown immediately after the
CHANGE MASTER (without the slave threads being started).
Changed is_open() to work as before.
Added back inited argument to LOG
mysql-test/r/rpl_flush_log_loop.result:
Fixed results (probably bug in previous rpatch)
sql/handler.cc:
Changed is_open() to work as before
sql/item_func.cc:
Changed is_open() to work as before
sql/log.cc:
Part revert of previous patch.
The reason for adding back 'inited' is that is that we can't be 100 % sure that init_pthread_objects() is called before mysqld dies (for example on windows)
I removed mutex lock handling in is_open() as the new code didn't have ANY affect except beeing slower.
Added back checking of is_open() to some functions as we don't want to do a mutex lock when we are not using logging.
Indentation/comment fixes
sql/log_event.cc:
Changed is_open() to work as before
sql/repl_failsafe.cc:
Changed is_open() to work as before
sql/sql_base.cc:
Changed is_open() to work as before
sql/sql_class.h:
Changed is_open() to work as before. Added back 'inited' variable
sql/sql_db.cc:
Changed is_open() to work as before
sql/sql_delete.cc:
Changed is_open() to work as before
sql/sql_insert.cc:
Changed is_open() to work as before
sql/sql_load.cc:
Changed is_open() to work as before
sql/sql_parse.cc:
Changed is_open() to work as before
sql/sql_rename.cc:
Changed is_open() to work as before
sql/sql_repl.cc:
Changed is_open() to work as before
sql/sql_table.cc:
Changed is_open() to work as before
sql/sql_update.cc:
Changed is_open() to work as before
sql/sql_repl.cc:
In my previous change I removed 'no_rotate' from MYSQL_LOG, so this made
LOG_INFO_PURGE_NO_ROTATE useless (an error code which was never returned),
so I remove it of the 'switch'.
a safer way of initing the mutexes in MYSQL_LOG.
is_open() is now always thread-safe.
See each file for details.
sql/handler.cc:
is_open() with locks
sql/item_func.cc:
is_open() with locks
sql/log.cc:
No more 'inited'.
We now always use is_open() in a thread-safe manner.
This simplifies some functions (no more need to test is_open() twice).
sql/log_event.cc:
is_open() with locks
sql/mysqld.cc:
Init mutexes for the global MYSQL_LOG objects.
We care about no_rotate, because we can't do it in open() anymore (because
we don't have 'inited' anymore).
sql/repl_failsafe.cc:
is_open() with locks
sql/slave.cc:
init pthread objects (mutexes, conds) in the constructor of st_relay_log_info.
Some better locking in rotate_relay_log().
sql/sql_base.cc:
is_open() with locks
sql/sql_class.h:
Before, we inited LOCK_log in MYSQL_LOG::open(), so in other places of the code
when we were never 100% sure that it had been inited. For example, if the server
was running without --log-bin, ::open() was not called so the mutex was not
inited. We could detect it with !inited, but not safely as 'inited' was not
protected by any mutex.
So now:
we *always* init the LOCK_log mutex, even if the log is not used. We can't init
the mutex in MYSQL_LOG's constructor, because for global objects like
mysql_bin_log, mysql_log etc, the constructor is called before MY_INIT(), but
safe_mutex depends on MY_INIT(). So we have a new function MYSQL_LOG::init_pthread_objects
which we call in main(), after MY_INIT().
For the relay log, we call this function in the constructor of
st_relay_log_info, which is called before any function tries to
use the relay log (the relay log is always invoked as rli.relay_log).
So now we should be safe in all cases and we don't need 'inited'.
sql/sql_db.cc:
is_open() with locks
sql/sql_delete.cc:
is_open() with locks
sql/sql_insert.cc:
is_open() with locks
sql/sql_load.cc:
is_open() with locks
sql/sql_parse.cc:
is_open() with locks
sql/sql_rename.cc:
is_open() with locks
sql/sql_repl.cc:
is_open() with locks
sql/sql_table.cc:
is_open() with locks
sql/sql_update.cc:
is_open() with locks
Added MAX_PASSWORD_LENGTH. This increased master-slave passwords to 32 bytes (Bug #766)
Fixed server crash on purge master logs or show master logs when binlog is off. (Bug #733)
client/mysql.cc:
status query on killed mysql connection results in segmentation fault (Bug #738)
configure.in:
Portability fix for Unixware
include/my_global.h:
Removed wrong patch from previous changeset
sql/mysql_priv.h:
Added MAX_PASSWORD_LENGTH. This increased master-slave passwords to 32 bytes
sql/slave.h:
Optimized structure
sql/sql_repl.cc:
Memory overrun safety fixes (not critical)
Fixed server crash on purge master logs or show master logs when binlog is off. (Bug #733)
sql/sql_repl.h:
Fixed to use right define
strings/strmake.c:
Fixed comment
so I commit again in a fresh tree.
Fix for bug#763 (Relay_log_space too big by 4 bytes),
plus comments and DBUG_PRINT, and we don't start replication
if --bootstrap.
mysql-test/r/rpl_log.result:
Result update
mysql-test/r/rpl_log_pos.result:
Result update
sql/mysqld.cc:
Don't start replication if in bootstrap mode (bootstrap isn't supposed to have
several threads).
sql/slave.cc:
Fix for bug 763 (Relay_log_space too big by 4 bytes).
A DBUG_PRINT.
sql/sql_acl.cc:
Replaced a return by DBUG_RETURN (happened to find this reading a debug log).
sql/sql_repl.cc:
A comment.
mysql-test/r/innodb.result:
Fixed test case after innodb optimize->analyze fix
mysys/mf_pack.c:
Added comments
sql/log_event.cc:
Fixed usage of fn_format()
sql/slave.cc:
Indentation fixes and comments cleanup
sql/sql_repl.cc:
Comment cleanup
sql/log_event.cc:
- cleanup_load_tmpdir() did not work at all because it forgot to indicate
the directory part of the path when calling my_delete().
- A misplaced R_POS_OFFSET (fortunately this was no bug as this constant is 0).
sql/sql_repl.cc:
- fix fake_rotate_event() for pos>4G (correction of a change I pushed yesterday).
This way 3.23.58 slaves will always detect a 4.0.14 master (and stop)
immediately. BUG#198.
mysql-test/r/rpl_log.result:
result update (the relay log now contains a fake Rotate_log_event).
mysql-test/r/rpl_log_pos.result:
result update (the relay log now contains a fake Rotate_log_event).
mysql-test/r/rpl_rotate_logs.result:
result update
mysql-test/t/rpl_rotate_logs.test:
comments and test update with the error code
sql/slave.cc:
A DBUG_PRINT
sql/sql_repl.cc:
Use ER_MASTER_INFO instead of custom message and zero error code (which display
badly).
support issue with an unclear message which can have N reasons for appearing.
This should help us know at which point it failed, and get the errno when
my_open was involved (as the reason for the unclear message is often a
permission problem).
RESET SLAVE resets last_error and last_errno in SHOW SLAVE STATUS (without this,
rpl_loaddata.test, which is expected to generate an error in last_error, influenced
rpl_log_pos.test).
A small test update.
Added STOP SLAVE to mysql-test-run to get rid of several stupid error messages
which are printed while the master restarts and the slave attempts/manages to
connect to it and sends it nonsense binlog requests.
mysql-test/mysql-test-run.sh:
Before running a test, stop slave threads if they exist (if they don't
the script goes on fine). This also works fine with the manager.
Before this change, when the master was stopped/restarted (which happened before
the slave server was stopped/restarted), the slave threads
noticed the stop (so printed an error message in slave.err), then managed to
reconnect (to the new master, the one that is running for the _next_ test),
and this reconnection had time to produce error messages (because, for example,
the binlog the slave thread was asking had been deleted) before the slave server
was killed. This change reduces by 10% (40 lines) slave.err in replication tests.
mysql-test/r/rpl000018.result:
Result update.
mysql-test/t/rpl000018.test:
This test does "show master logs" so should do "reset master" instead of
relying on the previous tests.
sql/slave.cc:
More error messages.
sql/sql_repl.cc:
More error messages.
RESET SLAVE resets last_error and last_errno in SHOW SLAVE STATUS.
Plus a changeset which I had committed but forgot to push (and this changeset is lost on
another computer, so I recreate it here). This changeset is "user-friendly SHOW BINLOG EVENTS
and CHANGE MASTER TO when log positions < 4 are used.
sql/slave.cc:
fix for bug 576 (DBUG_ASSERT failure when using CHANGE MASTER TO RELAY_LOG_POS=4).
sql/sql_repl.cc:
User-friendly SHOW BINLOG EVENTS:
SHOW BINLOG EVENTS FROM 0: currently one gets
MASTER> show binlog events from 0;
ERROR 1220: Error when executing command SHOW BINLOG EVENTS: Invalid log position
so we silently convert <4 to 4.
sql/sql_yacc.yy:
User-friendly CHANGE MASTER TO:
presently when one does CHANGE MASTER TO MASTER_LOG_POS=0 he gets
030425 10:12:41 Slave I/O thread: connected to master 'root@localhost:3306', r
eplication started in log 'gbichot-bin.013' at position 151
030425 10:12:41 Error reading packet from server: Client requested master to st
art replication from impossible position (server_errno=1236)
030425 10:12:41 Got fatal error 1236: 'Client requested master to start replica
tion from impossible position' from master when reading data from binary log
030425 10:12:41 Slave I/O thread exiting, read up to log 'gbichot-bin.013', pos
ition 151
while she/he probably just wanted to start at the beginning of the
binlog, which is 4. So we silently convert <4 to 4 in sql_yacc.yy
(i.e. in the slave code; fortunately all versions have the same
BIN_LOG_HEADER_SIZE=4 and we should not change this). See comments
for an explaination of why we have to do this in sql_yacc.yy,
not in sql_repl.cc.
Same thing for CHANGE MASTER TO RELAY_LOG_POS.
sql/unireg.h:
warning comment
Use 0x.... as strings if 'new' mode. (bug 152)
Don't report -max on windows when InnoDB is enabled. (bug 332)
Reset current_linfo; This could cause a hang when doing PURGE LOGS.
Fix for row numbers in EXPLAIN (bug 322)
Fix that USE_FRM works for all table types (bug 97)
VC++Files/libmysql/libmysql.dsp:
Added new source files
myisam/mi_key.c:
Fixed problem when comparing a key for a multi-byte-character set.
myisam/mi_range.c:
Fixed problem when comparing a key for a multi-byte-character set.
myisam/mi_rkey.c:
Fixed problem when comparing a key for a multi-byte-character set.
myisam/mi_search.c:
Fixed problem when comparing a key for a multi-byte-character set.
myisam/mi_test2.c:
Fixed printf statements
myisam/myisamdef.h:
Fixed problem when comparing a key for a multi-byte-character set.
myisam/sort.c:
Fixed printf statements
mysql-test/r/ctype_latin1_de.result:
New test results
mysql-test/r/join.result:
New test results
mysql-test/r/repair.result:
New test results
mysql-test/r/rpl_alter.result:
New test results
mysql-test/t/ctype_latin1_de-master.opt:
--new is needed to get 0x... strings to work properly
mysql-test/t/ctype_latin1_de.test:
New test for latin1_de
mysql-test/t/repair.test:
Test of USE_FRM and HEAP tables
sql/field.cc:
Fixed problem when comparing a key for a multi-byte-character set.
sql/item.cc:
Use 0x.... as strings if 'new' mode
sql/item.h:
Use 0x.... as strings if 'new' mode
sql/mysqld.cc:
Don't report -max on windows when InnoDB is enabled.
sql/sql_analyse.cc:
Removed unused variable
sql/sql_insert.cc:
Removed debug message
sql/sql_repl.cc:
Reset current_linfo; This could cause a hang when doing PURGE LOGS.
sql/sql_select.cc:
Fix for row numbers in EXPLAIN
sql/sql_table.cc:
Fix that USE_FRM works for all table types (without strange errors)
sql/sql_yacc.yy:
Removed compiler warnings.
a deadlock between I/O and SQL threads in replication
when relay_log_space is too small. This fixes bug #79.
sql/log.cc:
New variable rli->ignore_log_space_limit to resolve
a deadlock between I/O and SQL threads in replication
when relay_log_space is too small.
sql/slave.cc:
New variable rli->ignore_log_space_limit to resolve
a deadlock between I/O and SQL threads in replication
when relay_log_space is too small.
sql/slave.h:
New variable rli->ignore_log_space_limit to resolve
a deadlock between I/O and SQL threads in replication
when relay_log_space is too small.
sql/sql_repl.cc:
New variable rli->ignore_log_space_limit to resolve
a deadlock between I/O and SQL threads in replication
when relay_log_space is too small.
+ fix for #70
+ test result fix for LOAD DATA LOCAL bug #82
client/mysqltest.c:
Removed wrong comment and useless sleep
mysql-test/mysql-test-run.sh:
Fix $slave_datadir variable because this
if [ -n "$1" ] ;
slave_datadir="var/$slave_ident-data/"
else
slave_datadir=$SLAVE_MYDDIR
was not coherent and led to problems of master.info not being deleted.
Delete relay-log.info too.
mysql-test/r/rpl000001.result:
SUM is 1022 (1021 was when we had the LOAD DATA LOCAL bug #82).
It's logical to have an even number as we load the same file twice.
sql/slave.cc:
When we RESET SLAVE, clear rli->master_log_* to give a good display in SHOW SLAVE STATUS ;
seeing the old values may confuse the user.
When we START SLAVE, clear rli->master_log_name, not only rli->master_log_pos.
sql/sql_repl.cc:
When we RESET SLAVE, clear mi->master_log_* to give a good display in SHOW SLAVE STATUS (bug #70)
Fixed comparision of log-binary name to handle comparison when file name extension wraps from .999 to .1000
Don't replicate CREATE/DROP DATABASE if wild_xxx_table=database.% is used.
mysql-test/r/rpl000009.result:
Fixed replication test after fixing replication of DROP/CREATE DATABASE
mysql-test/t/rpl000009.test:
Fixed replication test after fixing replication of DROP/CREATE DATABASE
sql/item_create.cc:
Added timeout for wait_for_master_pos
sql/item_create.h:
Added timeout for wait_for_master_pos
sql/item_func.cc:
Added timeout for wait_for_master_pos
sql/item_func.h:
Added timeout for wait_for_master_pos
sql/lex.h:
Added timeout for wait_for_master_pos
sql/slave.h:
Added timeout for wait_for_master_pos
Don't replicate CREATE/DROP DATABASE if wild_xxx_table=database.% is used.
sql/sql_parse.cc:
Don't replicate CREATE/DROP DATABASE if wild_xxx_table=database.% is used.
sql/sql_repl.cc:
Fixed comparision of log-binary name to handle comparison when file name extension wraps from .999 to .1000
This fixes a problem in replication where RESET SLAVE could crash a running slave.
mysql-test/r/rpl_failsafe.result:
Added missing drop
mysql-test/r/rpl_log_pos.result:
Added slave stop before change master
mysql-test/t/rpl_log_pos.test:
Added slave stop before change master
sql/sql_parse.cc:
reset_slave() sends it's own errors
sql/sql_repl.cc:
reset_slave() sends it own error.
RESET SLAVE and CHANGE MASTER will now give an error if slave is running.
This fixes a problem in replication where RESET SLAVE could crash a running slave.
Let MySQL 4.0 read 4.1 .frm files without 4.1 specific extensions
New variables @@rand_seed1 and @@rand_seed2 (used by replication)
DROP TEMPORARY TABLE
mysql-test/r/rpl_log.result:
Update of results after last replication change
mysql-test/r/variables.result:
Test of new variables @@rand_seed1 and @@rand_seed2
mysql-test/t/variables.test:
Test of new variables @@rand_seed1 and @@rand_seed2
sql/field.cc:
Let MySQL 4.0 read 4.1 .frm files without 4.1 specific extensions
sql/field.h:
Let MySQL 4.0 read 4.1 .frm files without 4.1 specific extensions
sql/item_func.cc:
Put temporary files in binlog cache when using BEGIN/COMMIT
sql/log.cc:
Put temporary files in binlog cache when using BEGIN/COMMIT
More debug information
sql/log_event.cc:
Put temporary files in binlog cache when using BEGIN/COMMIT
sql/log_event.h:
Put temporary files in binlog cache when using BEGIN/COMMIT
sql/set_var.cc:
Add system variables @@rand_seed1 and @@rand_seed2
sql/set_var.h:
Add system variables @@rand_seed1 and @@rand_seed2
sql/slave.cc:
Put temporary files in binlog cache when using BEGIN/COMMIT
sql/sql_acl.cc:
Put temporary files in binlog cache when using BEGIN/COMMIT
sql/sql_base.cc:
Store DROP of temporary tables in binlog cache
sql/sql_class.h:
Put temporary files in binlog cache when using BEGIN/COMMIT
sql/sql_db.cc:
Put temporary files in binlog cache when using BEGIN/COMMIT
sql/sql_delete.cc:
Put temporary files in binlog cache when using BEGIN/COMMIT
sql/sql_insert.cc:
Put temporary files in binlog cache when using BEGIN/COMMIT
sql/sql_lex.h:
DROP TEMPORARY TABLE
sql/sql_load.cc:
Put temporary files in binlog cache when using BEGIN/COMMIT
sql/sql_parse.cc:
Put temporary files in binlog cache when using BEGIN/COMMIT
sql/sql_rename.cc:
Put temporary files in binlog cache when using BEGIN/COMMIT
sql/sql_repl.cc:
Put temporary files in binlog cache when using BEGIN/COMMIT
sql/sql_repl.h:
Put temporary files in binlog cache when using BEGIN/COMMIT
sql/sql_table.cc:
Put temporary files in binlog cache when using BEGIN/COMMIT
sql/sql_update.cc:
Put temporary files in binlog cache when using BEGIN/COMMIT
sql/sql_yacc.yy:
DROP TEMPORARY
sql/table.cc:
Let MySQL 4.0 read 4.1 .frm files without 4.1 specific extensions
sql/unireg.cc:
Let MySQL 4.0 read 4.1 .frm files without 4.1 specific extensions
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.
Docs/manual.texi:
Changelog
client/mysqlbinlog.cc:
Handle empty binlogfiles gracefully
client/mysqltest.c:
Do a sleep after 'sync_with_master'
Cleaned up sleep() handling.
Free all memory on exit
configure.in:
Fix for Mac OS 10.2
include/my_sys.h:
Added my_strdup_with_length()
innobase/btr/btr0cur.c:
Fixed wrong printf()
libmysql/libmysql.c:
Added DBUG_PRINT statements.
Assume that mysql_...send() functions has correct query length.
mysql-test/mysql-test-run.sh:
Properly remove log files before starting new tests.
mysql-test/r/grant.result:
Update for new test results
mysql-test/r/innodb.result:
Update for new test results
mysql-test/r/myisam.result:
Update for new test results
mysql-test/r/rpl_log.result:
Update for new test results
mysql-test/r/rpl_rotate_logs.result:
Update for new test results
mysql-test/r/variables.result:
Update for new test results
mysql-test/t/grant.test:
Test that GRANT doesn't delete SSL options
mysql-test/t/myisam.test:
Test long key usage
mysql-test/t/rpl_log.test:
Disable 'show new master'
mysql-test/t/rpl_mystery22.test:
Longer sleep for more safety.
mysql-test/t/rpl_rotate_logs.test:
More comments
mysys/my_malloc.c:
Added my_strdup_with_length()
mysys/safemalloc.c:
Added my_strdup_with_length()
mysys/thr_alarm.c:
Fix of alarms for windows.
sql/ha_innodb.cc:
Change innobase_flush_log_at_trx_commit to uint
mysql-test/r/rpl_redirect.result:
Updated test results
mysql-test/t/rpl_redirect.test:
Added more tests to improve code coverage.
sql/ha_innodb.h:
Change innobase_flush_log_at_trx_commit to uint
sql/item_func.cc:
Return GLOBAL and SESSION as part of column names
sql/log.cc:
Only write STOP events when server goes down.
sql/log_event.cc:
Don't rotate logs if we read a rotate log entry from the master.
sql/log_event.h:
Change ident_len to uint (more efficient)
sql/mysqld.cc:
Change innobase_flush_log_at_trx_commit to uint
sql/net_serv.cc:
More debug output
sql/repl_failsafe.cc:
More DEBUG
Search until we find next position in binary log (and not only =)
sql/slave.cc:
More DBUG & comments
Don't rotate the binary log on master flush logs
sql/slave.h:
indentation change
sql/sql_acl.cc:
Test that GRANT doesn't delete SSL options
sql/sql_parse.cc:
Disable show_new_master.
sql/sql_repl.cc:
Chamger show_binlog_events() to use my_error()
sql/sql_table.cc:
Fixed check for too long keys in MyISAM
sql/sql_udf.cc:
Fix udf handling
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
libmysqld/lib_sql.cc:
Removed not needed LOCK
mysql-test/mysql-test-run.sh:
Log name of running test
mysql-test/r/rpl_sporadic_master.result:
Cleaned up test
mysql-test/t/rpl_sporadic_master.test:
cleaned up test
sql/log.cc:
Cleanup.
Fixed bug in wait_for_update() that I had introduced.
sql/mini_client.cc:
Indentation changes.
sql/mysql_priv.h:
Changed option variables to my_bool.
sql/mysqld.cc:
Changed option variables to my_bool.
Removed not used LOCK_server_id
Minor code cleanups.
sql/repl_failsafe.cc:
Minor code cleanups
sql/slave.cc:
Minor code cleanups.
Fixed usage of wait_for_update().
sql/slave.h:
Changed option variables to my_bool.
sql/sql_class.cc:
Added new thread specific mutex LOCK_delete to be able to free LOCK_thread_count early
sql/sql_class.h:
Added new thread specific mutex LOCK_delete to be able to free LOCK_thread_count early
sql/sql_insert.cc:
Do broadcast after unlock()
sql/sql_parse.cc:
Removed not needed LOCK
Changed usage of LOCK_thread_count -> LOCK_status for statistics variables
Changed killing of threads to not lock LOCK_thread_count for long.
sql/sql_repl.cc:
Changed options variables to my_bool
Fixed usage of wait_for_update()
Fixed loop to kill slaves to not lock LOCK_thread_count for long.
Code optimization.
sql/sql_repl.h:
bool -> my_bool
Fixed KICK_SLAVE to use LOCK_delete
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
Build-tools/Do-compile:
Always run test with --warnings during build
Docs/manual.texi:
Changelog
configure.in:
Use our version of RWLOCKS on UNIXWARE 7
include/my_pthread.h:
Use our version of RWLOCKS on UNIXWARE 7
include/mysql_version.h.in:
Fixed warning when compiling embedded server
include/mysqld_error.h:
New error messages
libmysql/libmysql.c:
Give connect error message on reconnect if it fails.
Fixed possible buffer overflow in expand_error()
Added error messages for some error conditions.
mysql-test/mysql-test-run.sh:
Portability fixes:
- Search after 'time' in path.
- Search after mysqld in libexec
- Remove end / when doing rm -r (fix for BSD)
Clean up skip_test handling.
mysql-test/r/rpl_empty_master_crash.result:
New results
mysql-test/t/rpl_empty_master_crash.test:
Extended test
mysys/mf_iocache.c:
Remember file position on failed read.
mysys/mf_iocache2.c:
Fixed bug in filelength() call.
mysys/thr_alarm.c:
Made alarm handling more threadsafe when use with DBUG.
mysys/thr_mutex.c:
More debug info
sql/log_event.cc:
More DBUG_PRINT statements.
sql/mini_client.cc:
Better error reporting on failures.
Return connect error on reconnect failure (instead of SERVER_GONE_ERROR)
Fixed critical bug in alarm handling on connect (could leave an alarm event on indefinitely)
sql/mysql_priv.h:
Fixed arguments to mysql_binlog_send()
sql/mysqld.cc:
Block ALARM signal on Linux for signal handler thread (Fixes problem with running mysqld with --debug)
sql/net_pkg.cc:
Removed dead code
sql/net_serv.cc:
Ensure that last_errno is set in net_real_write()
sql/repl_failsafe.cc:
Code cleanup.
Better error handling.
sql/share/czech/errmsg.txt:
New error messages.
sql/share/danish/errmsg.txt:
New error messages.
sql/share/dutch/errmsg.txt:
New error messages.
sql/share/english/errmsg.txt:
New error messages.
sql/share/estonian/errmsg.txt:
New error messages.
sql/share/french/errmsg.txt:
New error messages.
sql/share/german/errmsg.txt:
New error messages.
sql/share/greek/errmsg.txt:
New error messages.
sql/share/hungarian/errmsg.txt:
New error messages.
sql/share/italian/errmsg.txt:
New error messages.
sql/share/japanese/errmsg.txt:
New error messages.
sql/share/korean/errmsg.txt:
New error messages.
sql/share/norwegian-ny/errmsg.txt:
New error messages.
sql/share/norwegian/errmsg.txt:
New error messages.
sql/share/polish/errmsg.txt:
New error messages.
sql/share/portuguese/errmsg.txt:
New error messages.
mysql-test/r/rpl_log_pos.result:
Updated results
mysql-test/t/rpl_log_pos.test:
Added 'sleep' commands to make tests repeatable.
sql/share/romanian/errmsg.txt:
New error messages.
sql/share/russian/errmsg.txt:
New error messages.
sql/share/slovak/errmsg.txt:
New error messages.
sql/share/spanish/errmsg.txt:
New error messages.
sql/share/swedish/errmsg.txt:
New error messages.
sql/share/ukrainian/errmsg.txt:
New error messages.
sql/slave.cc:
Code optimization and cleanup.
More DBUG statements.
Better cleanup if start slave fails.
Better error messages from 'fetch_master_table'
Thread safer handling of 'wait_for_pos'
sql/slave.h:
Better handling of wait_for_pos
sql/sql_load.cc:
Removed warning when setting an AUTO_INCREMENT field to NULL
sql/sql_parse.cc:
Fixed calling of function that has changed.
sql/sql_repl.cc:
More DBUG statements
Give a proper error number from mysql_binlog_send() so that we know when we have to abort slaves.
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.
BitKeeper/deleted/.del-set_var.cc~5374527de1955359:
Delete: libmysqld/set_var.cc
BitKeeper/etc/ignore:
added libmysqld/set_var.cc
Build-tools/Do-compile:
Remove warnings from touch during compilation
Docs/manual.texi:
Changelog
client/mysqltest.c:
Added real_sleep command
configure.in:
Fixed type for HPUX10
innobase/configure.in:
Fixed type for openbsd
libmysql/libmysql.c:
Fix for new SHOW SLAVE STATUS
myisam/mi_update.c:
Update key file if using external locking
mysql-test/mysql-test-run.sh:
Safety fix
mysql-test/r/rpl000015.result:
Update for new SHOW SLAVE STATUS
mysql-test/r/rpl_empty_master_crash.result:
Update for new SHOW SLAVE STATUS
mysql-test/t/rpl000001.test:
sleep -> real_sleep to avoid timing problem
sql/mysqld.cc:
Fixed bug with SIGTERM on Solaris
sql/slave.cc:
SHOW SLAVE STATUS returns empty sets if slave is not initialized.
sql/sql_repl.cc:
SHOW MASTER STAT returns empty set if no binary logging.
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
BitKeeper/deleted/.del-rpl_compat.result~c950bc346b12c61a:
Delete: mysql-test/r/rpl_compat.result
BitKeeper/deleted/.del-rpl_compat.test~5f6ba955e02aa95f:
Delete: mysql-test/t/rpl_compat.test
Docs/manual.texi:
Updated manual with fixes in this changeset
client/mysqltest.c:
Indentation cleanup
Better error messages for some error conditions.
include/my_pthread.h:
Added 'safe_mutex_assert_owner()' to check that the thread really owns the mutex.
include/my_sys.h:
Extended my_chsize() to allow one to specify a filler character.
(For MySQL index logs)
include/raid.h:
New my_chsize()
include/violite.h:
Extend vio_blocking to return the old state
innobase/include/dyn0dyn.h:
Merge with 3.23 (AIX DYN_ARRAY_DATA_SIZE)
innobase/include/dyn0dyn.ic:
Merge with 3.23
isam/create.c:
Fix for new my_chsize()
isam/isamchk.c:
Fix for new my_chsize()
isam/pack_isam.c:
Fix for new my_chsize()
libmysql/manager.c:
Fix for new vio_blocking()
libmysqld/lib_sql.cc:
Fix for new open_log()
myisam/mi_cache.c:
Fix typo from previous checking
myisam/mi_check.c:
Fix for new my_chsize()
myisam/mi_create.c:
Fix for new my_chsize()
myisam/mi_delete_all.c:
Fix for new my_chsize()
myisam/myisampack.c:
Fix for new my_chsize()
mysql-test/include/master-slave.inc:
Better initialization for replication tests
mysql-test/mysql-test-run.sh:
Added option --log-warnings
mysql-test/r/insert.result:
More tests if INSERT ...(DEFAULT)
mysql-test/r/rpl000001.result:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/r/rpl000002.result:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/r/rpl000003.result:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/r/rpl000004.result:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/r/rpl000005.result:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/r/rpl000006.result:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/r/rpl000007.result:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/r/rpl000008.result:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/r/rpl000009.result:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/r/rpl000010.result:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/r/rpl000011.result:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/r/rpl000012.result:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/r/rpl000013.result:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/r/rpl000014.result:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/r/rpl_alter.result:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/r/rpl_empty_master_crash.result:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/r/rpl_get_lock.result:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/r/rpl_log.result:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/r/rpl_magic.result:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/r/rpl_mystery22.result:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/r/rpl_skip_error.result:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/r/rpl_sporadic_master.result:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/t/insert.test:
More tests if INSERT ...(DEFAULT)
mysql-test/t/rpl000001.test:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/t/rpl000002.test:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/t/rpl000003.test:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/t/rpl000004.test:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/t/rpl000005.test:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/t/rpl000006.test:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/t/rpl000007.test:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/t/rpl000009.test:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/t/rpl000011.test:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/t/rpl000013.test:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/t/rpl000014.test:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/t/rpl_alter.test:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/t/rpl_empty_master_crash.test:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/t/rpl_get_lock.test:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/t/rpl_magic.test:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/t/rpl_mystery22.test:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/t/rpl_skip_error.test:
Clean up tests for new master-slave.inc
Remove 'use database'
mysql-test/t/rpl_sporadic_master.test:
Clean up tests for new master-slave.inc
Remove 'use database'
mysys/mf_iocache.c:
More debug info
Force seek after reinit_io_cache()
mysys/mf_iocache2.c:
Added my_b_filelength()
mysys/my_chsize.c:
Extended my_chsize() to allow one to specify a filler character.
(For MySQL index logs)
mysys/raid.cc:
Extended my_chsize() to allow one to specify a filler character.
(For MySQL index logs)
sql/field.h:
Fix for INSERT ... (DEFAULT)
sql/ha_berkeley.h:
Fix for dynamic variables
sql/ha_innodb.cc:
Change sprintf() to my_sprintf() to make code portable.
Fix after sync with 3.23
(We still need to fix the storage of the replication position in innodb)
sql/ha_innodb.h:
Fix for dynamic variables
sql/handler.cc:
Remove writting of COMMIT to the binary log.
(Now done in MYSQL_LOG::write())
sql/item_func.cc:
Query_log_event() now always takes query length.
sql/item_func.h:
Indentation cleanup
sql/item_strfunc.h:
Indentation cleanup
sql/item_timefunc.h:
Indentation cleanup
sql/lock.cc:
Check that we own critical mutexes.
sql/log.cc:
Big code cleanup / rewrite / optimize.
- The index log file has its own IO_CACHE object.
- Many functions totally rewritten to make them smaller and faster.
- New handling of index log files
- Lots of new comments
sql/log_event.cc:
Code cleanup
New comments
sql/log_event.h:
Query_log_event() now always takes query length.
sql/mini_client.cc:
Better error messages on reconnect.
Fixed wrong variable usage from last commit.
sql/mysql_priv.h:
New arguments to open_log()
sql/mysqld.cc:
Use setrlimit() to ensure that we can write core file if one specifies --core-file
Added index file name as parameter to openlog().
Added --slave-compressed-protocol
Made 2 the minimum length for ft_min_word_len
sql/net_serv.cc:
Use new vio_blocking()
(The vio_blocking() change was done to make this code more readable)
sql/repl_failsafe.cc:
Minor code cleanup
sql/set_var.cc:
Added variables slave_compressed_protocol, foreign_key_checks & unique_checks.
sql/set_var.h:
Generalization
sql/slave.cc:
Code cleanup & rewrite.
Dont call SELECT VERSION() on check_master_version()
New init_slave() code.
Ensure that all threads create a THD early.
Add locks around manipulation of critical structures
Don't retry a command more than master_retry_count times.
Write less warnings to the log file (if not started with --log-warnings)
Faster flush_relay_log_info()
sql/slave.h:
More comments
Added new arguments to some functions.
sql/sql_acl.cc:
More DBUG info
New parameter to Query_log_event()
sql/sql_base.cc:
Added some mutex checking.
sql/sql_cache.cc:
Less not critical debug info
sql/sql_class.h:
Fix for new log handling.
sql/sql_db.cc:
Added mutex around remove_db_from_cache()
sql/sql_delete.cc:
Added missing parameters to changed functions
sql/sql_insert.cc:
Added missing parameters to changed functions
sql/sql_parse.cc:
Do an 'end_active_trans()' before 'load_master_data'
Changed that SHOW INNODB STATUS requre the SUPER privilege
Added new function parameters to new functions
sql/sql_rename.cc:
Added missing parameters to changed functions
sql/sql_repl.cc:
Code cleanups / new comments
Fix for new find_first_log() calling standard.
More DBUG statements.
Show binlogs updated to use new IO_CACHE:d index log file.
sql/sql_repl.h:
New function arguments
sql/sql_select.cc:
Indentation changes
sql/sql_table.cc:
Added missing parameters to changed functions
Added checking of mutex
Added mutex around critical regions.
sql/sql_test.cc:
Don't use THR_ALARM if the configuration doesn't support it.
sql/sql_update.cc:
Added missing parameters to changed functions
sql/table.cc:
Added missing parameters to changed functions
vio/vio.c:
Extend vio_blocking to return the old state
vio/viosocket.c:
Extend vio_blocking to return the old state
vio/viossl.c:
Extend vio_blocking to return the old state
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
BitKeeper/deleted/.del-net.c~ef21d6402bb882f9:
Delete: libmysql/net.c
BitKeeper/etc/ignore:
added libmysql/net.c
Docs/manual.texi:
New SET syntax & system variables.
client/client_priv.h:
moved order of include files
client/mysql.cc:
Removed compiler warning
client/mysqladmin.c:
Use new SHOW GLOBAL syntax (if server supports it)
configure.in:
version change
include/Makefile.am:
indentation cleanup
include/my_getopt.h:
Made some helper functions global
include/my_sys.h:
Removed not used code
include/myisam.h:
Added extra argument to ..._extra()
include/myisammrg.h:
Added extra argument to ..._extra()
include/mysql_com.h:
changed NET to be able to support changeable system variables
include/mysql_embed.h:
Added MYSQL_SERVER_SUFFIX
include/mysql_version.h.in:
Added check of multiple including (needed for embedded library)
include/mysqld_error.h:
New error messages
innobase/dict/dict0dict.c:
Remove compiler warnings
innobase/include/ut0mem.h:
Remove compiler warnings
innobase/include/ut0mem.ic:
Remove compiler warnings
isam/isamchk.c:
new init_key_cache() arguments
isam/isamlog.c:
new init_key_cache() arguments
isam/test2.c:
new init_key_cache() arguments
isam/test3.c:
new init_key_cache() arguments
libmysql/Makefile.am:
Removed net.c (Automaticly make it from net_serv.cc)
libmysql/Makefile.shared:
Removed net.c (Automaticly make it from net_serv.cc)
libmysql/libmysql.c:
Changeable system variables
libmysqld/Makefile.am:
Added set_var.cc file
libmysqld/embedded_priv.h:
Changed order of include fiels
libmysqld/lib_sql.cc:
merge with mysqld.cc (for changeable variables)
libmysqld/libmysqld.c:
New changeable system variables
myisam/mi_check.c:
Added extra argument to ..._extra()
myisam/mi_extra.c:
Added extra argument to ..._extra()
myisam/mi_open.c:
Removed not used variable
myisam/mi_test1.c:
Changed call to init_key_cache
myisam/mi_test2.c:
Added extra argument to ..._extra()
myisam/mi_test3.c:
Added extra argument to ..._extra()
myisam/mi_write.c:
Add cache size argument to bulk-insert-init
myisam/myisamchk.c:
Use new key cache
myisam/myisamdef.h:
new mi_init_bulk_insert() arguments
myisam/myisamlog.c:
Added extra argument to ..._extra()
myisam/myisampack.c:
Added extra argument to ..._extra()
myisammrg/myrg_extra.c:
Added extra argument to ..._extra()
myisammrg/myrg_rrnd.c:
Added extra argument to ..._extra()
mysql-test/r/insert_select.result:
New changeable system variables
mysql-test/r/key.result:
Test of bug in auto_increment
mysql-test/r/query_cache.result:
New changeable system variables
mysql-test/r/rpl000001.result:
New changeable system variables
mysql-test/r/rpl000016.result:
New changeable system variables
mysql-test/r/union.result:
New changeable system variables
mysql-test/r/user_var.result:
New changeable system variables
mysql-test/r/variables.result:
New changeable system variables
mysql-test/t/key.test:
Test of bug in auto_increment
mysql-test/t/query_cache.test:
New changeable system variables
mysql-test/t/rpl000001.test:
New changeable system variables
mysql-test/t/rpl000009.test:
New changeable system variables
mysql-test/t/rpl000016.test:
New changeable system variables
mysql-test/t/rpl_compat.test:
New changeable system variables
mysql-test/t/union.test:
New changeable system variables
mysql-test/t/user_var.test:
New changeable system variables
mysql-test/t/variables.test:
New changeable system variables
mysys/default.c:
Bigger default memory allocation
mysys/mf_iocache.c:
Removed compiler warning
mysys/mf_keycache.c:
Made key cache resizable on the fly
Removed not needed extra argument to init_key_cache()
mysys/my_getopt.c:
Made some helper functions global
sql/Makefile.am:
Aded set_var.cc
sql/convert.cc:
Comment cleanup
sql/field.cc:
new changeable system variables
sql/filesort.cc:
new changeable system variables
sql/ha_berkeley.cc:
AUTO_COMMIT -> AUTOCOMMIT
sql/ha_innodb.cc:
new changeable system variables
sql/ha_myisam.cc:
Added extra argument to ..._extra()
sql/ha_myisam.h:
Added extra argument to ..._extra()
sql/ha_myisammrg.cc:
Added extra argument to ..._extra()
sql/ha_myisammrg.h:
Added extra argument to ..._extra()
sql/handler.cc:
Added extra argument to ..._extra()
Added resize of key cache
Change ha_table_typelib for use with new system variables
sql/handler.h:
Added extra argument to ..._extra()
sql/item.cc:
new changeable system variables
sql/item.h:
Added better support of Item_uint
sql/item_func.cc:
Added support for SET @@[global | session] system_variable
sql/item_strfunc.cc:
new changeable system variables
sql/key.cc:
Fixed bug in auto_increment on second part keys
sql/lex.h:
Removed not needed keywords
sql/log.cc:
new changeable system variables
sql/log_event.cc:
new changeable system variables
sql/log_event.h:
Removed not needed var reference
sql/mini_client.cc:
new changeable system variables
code cleanup
sql/mini_client.h:
Indentation cleanup
sql/mysql_priv.h:
Changed order of include files & variables to make file more readable
sql/mysqld.cc:
Changed order of variables to make file more readable.
Support for changeable variables
Rename of system variables
Moved init_vars to set_var.cc
Changed output of --help
sql/net_pkg.cc:
Added my_net_local_init() to make it possible to set different defaults for network connection depending if you are a client, embedded library or server.
sql/net_serv.cc:
new changeable system variables
To support this, some global variables had to be move to the NET structure.
sql/records.cc:
new changeable system variables
use extra_opt()
sql/repl_failsafe.cc:
new changeable system variables
minior code cleanups
sql/repl_failsafe.h:
removed not needed external var reference
sql/share/czech/errmsg.txt:
new changeable system variables
sql/share/danish/errmsg.txt:
new changeable system variables
sql/share/dutch/errmsg.txt:
new changeable system variables
sql/share/english/errmsg.txt:
new changeable system variables
sql/share/estonian/errmsg.txt:
new changeable system variables
sql/share/french/errmsg.txt:
new changeable system variables
sql/share/german/errmsg.txt:
new changeable system variables
sql/share/greek/errmsg.txt:
new changeable system variables
sql/share/hungarian/errmsg.txt:
new changeable system variables
sql/share/italian/errmsg.txt:
new changeable system variables
sql/share/japanese/errmsg.txt:
new changeable system variables
sql/share/korean/errmsg.txt:
new changeable system variables
sql/share/norwegian-ny/errmsg.txt:
new changeable system variables
sql/share/norwegian/errmsg.txt:
new changeable system variables
sql/share/polish/errmsg.txt:
new changeable system variables
sql/share/portuguese/errmsg.txt:
new changeable system variables
sql/share/romanian/errmsg.txt:
new changeable system variables
sql/share/russian/errmsg.txt:
new changeable system variables
sql/share/slovak/errmsg.txt:
new changeable system variables
sql/share/spanish/errmsg.txt:
new changeable system variables
sql/share/swedish/errmsg.txt:
new changeable system variables
sql/share/ukrainian/errmsg.txt:
new changeable system variables
sql/slave.cc:
new changeable system variables
Added some suppression of error messages
Initialize current_thd for all slave threads.
sql/sql_acl.cc:
Added checking of arguments for SET PASSWORD (for new SET defintion)
sql/sql_acl.h:
new prototypes
sql/sql_base.cc:
new changeable system variables
sql/sql_cache.cc:
new changeable system variables
sql/sql_cache.h:
Renamed some arguments to make code more readable
sql/sql_class.cc:
new changeable system variables
sql/sql_class.h:
New changeable system variables
Code cleanup
sql/sql_db.cc:
Fixed bug in DROP DATABASE
sql/sql_delete.cc:
Usage of wrong define in test (possible speed problem)
sql/sql_insert.cc:
use extra_opt()
Code cleanup
sql/sql_lex.cc:
Added support for SET @@[global | session] system_variable
sql/sql_lex.h:
Added support for SET @@[global | session] system_variable
sql/sql_load.cc:
Cleanup for embedded library
Use extra_opt()
sql/sql_parse.cc:
Cleanup for embedded library
New changeable system variables
sql/sql_repl.cc:
new changeable system variables
sql/sql_repl.h:
Fixed variable definitions
sql/sql_select.cc:
new changeable system variables
sql/sql_show.cc:
New changeable system variables
sql/sql_table.cc:
Fixed bug in DROP DATABASE
sql/sql_union.cc:
New changeable system variables
sql/sql_update.cc:
Usage of wrong define in test (possible speed problem)
sql/sql_yacc.yy:
New changeable system variables
sql/structs.h:
Added typedef for SHOW_VAR
sql/table.cc:
Fixed bug in auto_increment on second part keys
sql/uniques.cc:
Comment fix
sql/unireg.h:
A
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
BitKeeper/deleted/.del-mysql_new_fix_privilege_tables.sh~b1664b401375eece:
Delete: scripts/mysql_new_fix_privilege_tables.sh
Docs/manual.texi:
Updated manual for privilege changes.
include/mysqld_error.h:
new error messages
mysql-test/install_test_db.sh:
Updated to use new privileges
mysql-test/r/grant_cache.result:
Updated to use new privileges
mysql-test/r/rpl000017.result:
Updated to use new privileges
mysql-test/t/rpl000017.test:
Updated to use new privileges
mysys/safemalloc.c:
Cleanup
scripts/mysql_fix_privilege_tables.sh:
Updated to use new privileges
scripts/mysql_install_db.sh:
Updated to use new privileges
sql/field.h:
Cleanup
sql/item_strfunc.cc:
Updated to use new privileges
sql/lex.h:
Updated to use new privileges
sql/log.cc:
Updated to use new privileges
sql/mysql_priv.h:
Updated to use new privileges
sql/mysqld.cc:
Updated to use new privileges
sql/repl_failsafe.cc:
Updated to use new privileges
sql/share/czech/errmsg.txt:
new error messages
sql/share/danish/errmsg.txt:
new error messages
sql/share/dutch/errmsg.txt:
new error messages
sql/share/english/errmsg.txt:
new error messages
sql/share/estonian/errmsg.txt:
new error messages
sql/share/french/errmsg.txt:
new error messages
sql/share/german/errmsg.txt:
new error messages
sql/share/greek/errmsg.txt:
new error messages
sql/share/hungarian/errmsg.txt:
new error messages
sql/share/italian/errmsg.txt:
new error messages
sql/share/japanese/errmsg.txt:
new error messages
sql/share/korean/errmsg.txt:
new error messages
sql/share/norwegian-ny/errmsg.txt:
new error messages
sql/share/norwegian/errmsg.txt:
new error messages
sql/share/polish/errmsg.txt:
new error messages
sql/share/portuguese/errmsg.txt:
new error messages
sql/share/romanian/errmsg.txt:
new error messages
sql/share/russian/errmsg.txt:
new error messages
sql/share/slovak/errmsg.txt:
new error messages
sql/share/spanish/errmsg.txt:
new error messages
sql/share/swedish/errmsg.txt:
new error messages
sql/share/ukrainian/errmsg.txt:
new error messages
sql/slave.cc:
Portability cleanup
sql/sql_acl.cc:
Updated to use new privileges
sql/sql_acl.h:
Updated to use new privileges
sql/sql_base.cc:
Remove not used include file
sql/sql_class.cc:
Comment cleanup
sql/sql_class.h:
Updated to use new privileges
Comment cleanups
sql/sql_insert.cc:
Updated to use new privileges
sql/sql_lex.h:
Indentation cleanup
sql/sql_parse.cc:
Updated to use new privileges
sql/sql_repl.cc:
Updated to use new privileges
Comment cleanup
sql/sql_show.cc:
Updated to use new privileges
sql/sql_yacc.yy:
Updated to use new privileges
Sorted some tockens for easer merge to 4.1 in the future.
sql/table.h:
Updated to use new privileges
tests/grant.pl:
Updated to use new privileges
tests/grant.res:
Updated to use new privileges
Fixed critical bug on 64 bit systems.
Cleanups
BUILD/compile-solaris-sparc-purify:
Added --debug option.
sql/log_event.cc:
Added DBUG_xxx statements.
Cleanup
sql/opt_range.h:
Dummy fix to remove warnings in purify
sql/repl_failsafe.cc:
Cleanup
sql/slave.cc:
Added DBUG statements to be able to find bugs.
Optimized code.
Fixed critical bug on 64 bit systems.
sql/sql_repl.cc:
Added DBUG_xx statements.
sql/slave.cc:
Released some variables in non-debug version. These are needed
in mysqld.cc my_getopt struct, which defines some options,
which are used by mysql_test in a non-debug version.
sql/sql_repl.cc:
Released some variables in non-debug version. These are needed
in mysqld.cc my_getopt struct, which defines some options,
which are used by mysql_test in a non-debug version.
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 :-)
mysql-test/r/rpl000014.result:
updated result
mysql-test/r/rpl000015.result:
updated result
mysql-test/r/rpl000016.result:
updated result
mysql-test/r/rpl_log.result:
new result
mysys/mf_iocache.c:
DBUG_ cleanup
mysys/mf_iocache2.c:
DBUG_ fix
sql/log.cc:
added relay_log_space_limit
sql/mysqld.cc:
relay_log_space_limit
sql/slave.cc:
relay_log_space_limit
sql/slave.h:
relay_log_space_limit
sql/sql_class.h:
relay_log_space_limit
sql/sql_repl.cc:
fixed buffer overrun bug
If no problems are discovered in the next week, this will make the replication
code ready for 4.0.2 release.
dbug/dbug.c:
cleanup of my previous fix
sql/mysqld.cc:
fixed a REALLY NASTY BUG - slave threads were being launched before
initialization of global thread keys. Thus if the slave thread was slow
to start everything worked fine, but if it started quickly, we would get
into trouble using the unitinialized keys
sql/net_pkg.cc:
make net_printf() work with 0 error code taking the third argument as
format string in that case
sql/slave.cc:
misc fix-ups and debugging instrumentations
sql/slave.h:
added skip_log_purge member
sql/sql_class.cc:
debugging instrumentation to track down random memory corruption
sql/sql_class.h:
added debugging sentry to THD to track down memory corruption
sql/sql_repl.cc:
fixed bugs in CHANGE MASTER
memory corruption I can only repeat on one system.
mysql-test/r/multi_update.result:
extended test trying to find why the old one was failing
mysql-test/r/rpl000015.result:
result update
mysql-test/t/multi_update.test:
updated test to do more intermediate result checks
mysql-test/t/rpl000014.test:
cosmetic change
mysql-test/t/rpl000015-slave-master-info.opt:
reduce connect retry trying to simulate a bug
mysql-test/t/rpl000015.test:
cosmetic change
sql/lex.h:
added RELAY_LOG_FILE and RELAY_LOG_POS to CHANGE MASTER TO
sql/log.cc:
fixed replication bug
sql/log_event.cc:
properly ignore replication errors according to error mask
sql/mysqld.cc:
handle SIGFPE in the coredump handler
sql/slave.cc:
do not kick slave if it has already exited and freed the structures
sql/sql_lex.cc:
fixed initialization bug in CHANGE MASTER TO
sql/sql_lex.h:
CHANGE MASTER TO .. RELAY_LOG_FILE=,RELAY_LOG_POS=
sql/sql_repl.cc:
CHANGE MASTER TO .. RELAY_LOG_FILE=,RELAY_LOG_POS=
sql/sql_yacc.yy:
CHANGE MASTER TO .. RELAY_LOG_FILE=,RELAY_LOG_POS=
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
Docs/manual.texi:
Fixed Changelog, upgrading to 4.0 and 4.1 TODO sections.
Docs/mysqld_error.txt:
Added error message.
configure.in:
Fix for autoconf 2.52
include/my_getopt.h:
Portability fix.
include/my_global.h:
Portablity fix.
include/mysqld_error.h:
New error messages
mysql-test/r/bigint.result:
Test of unsigned BIGINT values.
mysql-test/r/func_op.result:
Test of unsigned BIGINT values.
mysql-test/r/varbinary.result:
Test of unsigned BIGINT values.
mysql-test/t/bigint.test:
Test of unsigned BIGINT values.
sql/item_func.h:
Optimized Item_int_func() usage.
sql/lock.cc:
Cleanup comments
sql/log.cc:
Cleanup
sql/log_event.cc:
Cleanup and portability fixes.
sql/log_event.h:
Cleanup and portability fixes.
sql/mini_client.cc:
Cleanup and portability fixes.
sql/mysqld.cc:
Fix for queries-per-hour
sql/repl_failsafe.cc:
Prepare for making binary log 2G clean.
sql/share/czech/errmsg.txt:
New error messages
sql/share/danish/errmsg.txt:
New error messages
sql/share/dutch/errmsg.txt:
New error messages
sql/share/english/errmsg.txt:
New error messages
sql/share/estonian/errmsg.txt:
New error messages
sql/share/french/errmsg.txt:
New error messages
sql/share/german/errmsg.txt:
New error messages
sql/share/greek/errmsg.txt:
New error messages
sql/share/hungarian/errmsg.txt:
New error messages
sql/share/italian/errmsg.txt:
New error messages
sql/share/japanese/errmsg.txt:
New error messages
sql/share/korean/errmsg.txt:
New error messages
sql/share/norwegian-ny/errmsg.txt:
New error messages
sql/share/norwegian/errmsg.txt:
New error messages
sql/share/polish/errmsg.txt:
New error messages
sql/share/portuguese/errmsg.txt:
New error messages
sql/share/romanian/errmsg.txt:
New error messages
sql/share/russian/errmsg.txt:
New error messages
sql/share/slovak/errmsg.txt:
New error messages
sql/share/spanish/errmsg.txt:
New error messages
sql/share/swedish/errmsg.txt:
New error messages
sql/share/ukrainian/errmsg.txt:
New error messages
sql/slave.cc:
Cleanup
sql/slave.h:
Cleanup
sql/sql_acl.cc:
Cleanup and removal of possible reserved words
sql/sql_base.cc:
More DBUG
sql/sql_cache.cc:
Cleanup & portability fixes
sql/sql_class.h:
Make binary log 4G clean
sql/sql_delete.cc:
More DBUG
sql/sql_handler.cc:
Cleanup & portability fixes
sql/sql_parse.cc:
Cleanup of queries-per-hours code
sql/sql_rename.cc:
Add missing DBUG_RETURN
sql/sql_repl.cc:
Cleanup & portability fixes
sql/sql_select.cc:
Cleanup & portability fixes
sql/sql_show.cc:
Cleanup & portability fixes
sql/sql_update.cc:
Small cleanup of multi-update-code (need second pass)
sql/sql_yacc.yy:
Changed syntax for GRANT ... QUERIES PER HOUR
strings/str2int.c:
Cleanup & portability fixes
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.
Makefile.am:
moved tags target script into a separate file
include/my_sys.h:
fixes in IO_CACHE for SEQ_READ_APPEND + some documentation
libmysqld/lib_sql.cc:
updated replication locks, but now I see I did it wrong and it won't compile. Will fix
before the push.
mysql-test/r/rpl000014.result:
test result update
mysql-test/r/rpl000015.result:
test result update
mysql-test/r/rpl000016.result:
test result update
mysql-test/r/rpl_log.result:
test result update
mysql-test/t/rpl000016-slave.sh:
remove relay logs
mysql-test/t/rpl000017-slave.sh:
remove relay logs
mysql-test/t/rpl_log.test:
updated test
mysys/mf_iocache.c:
IO_CACHE updates to make replication work
mysys/mf_iocache2.c:
IO_CACHE update to make replication work
mysys/thr_mutex.c:
cosmetic change
sql/item_func.cc:
new replication code
sql/lex.h:
new replication
sql/log.cc:
new replication
sql/log_event.cc:
new replication
sql/log_event.h:
new replication
sql/mini_client.cc:
new replication
sql/mini_client.h:
new replication
sql/mysql_priv.h:
new replication
sql/mysqld.cc:
new replication
sql/repl_failsafe.cc:
new replication
sql/slave.cc:
new replication
sql/slave.h:
new replication
sql/sql_class.cc:
new replication
sql/sql_class.h:
new replication
sql/sql_lex.h:
new replication
sql/sql_parse.cc:
new replication
sql/sql_repl.cc:
new replication
sql/sql_repl.h:
new replication
sql/sql_show.cc:
new replication
sql/sql_yacc.yy:
new replication
sql/stacktrace.c:
more robust stack tracing
sql/structs.h:
new replication code
BitKeeper/etc/ignore:
Added mysql-test/r/rpl000002.eval mysql-test/r/rpl000014.eval mysql-test/r/rpl000015.eval mysql-test/r/rpl000016.eval mysql-test/r/slave-running.eval mysql-test/r/slave-stopped.eval to the ignore list
include/my_global.h:
Remove dbug_assert() (One should use DBUG_ASSERT() instead)
mysql-test/mysql-test-run.sh:
Fixed that xterm works on Solaris 2.8.
Fixed printing of errors
mysql-test/r/isam.result:
Removed MyISAM test from ISAM test
mysql-test/t/isam.test:
Removed MyISAM test from ISAM test
mysys/my_alloc.c:
Removed warnings
mysys/my_bitmap.c:
Use DBUG_ASSERT
mysys/my_pthread.c:
Use DBUG_ASSERT
mysys/my_seek.c:
More DBUG
sql/ha_berkeley.cc:
Use DBUG_ASSERT
sql/ha_innobase.cc:
Use DBUG_ASSERT
sql/log.cc:
Use DBUG_ASSERT
sql/opt_range.cc:
Use DBUG_ASSERT
sql/sql_base.cc:
Use DBUG_ASSERT
sql/sql_handler.cc:
Use DBUG_ASSERT
sql/sql_load.cc:
Cleanup
sql/sql_parse.cc:
Use DBUG_ASSERT
sql/sql_repl.cc:
Cleanup
sql/sql_select.cc:
Use DBUG_ASSERT
tools/mysqlmanager.c:
Cleanup
fixed typo on sql_repl.cc
added build-tags script for the benefit of the poor, sick, and afflicted,
as Matt likes to say :-)
Docs/manual.texi:
replication updates
sql/sql_repl.cc:
fixed typo in comment
moved fail-safe replication routines from sql_repl.cc to repl_failsafe.cc
write start event only in the first log
client/mysqlbinlog.cc:
work to enable reading 3.23 logs
libmysql/Makefile.shared:
added mf_iocache2 to libmysqlclient - needed for mysqlbinlog
mysql-test/mysql-test-run.sh:
added --start-and-exit
mysql-test/r/rpl000002.result:
result clean-up
mysql-test/r/rpl000016.result:
result update
mysql-test/r/rpl_log.result:
result update
mysql-test/t/rpl000016.test:
test cleanup
mysys/mf_iocache.c:
fixed new bug
sql/log.cc:
write start event only on server start or after reset master
sql/log_event.cc:
work to enable reading 3.23 log format
sql/log_event.h:
work to enable reading 3.23 format
sql/repl_failsafe.cc:
code restructuring
sql/repl_failsafe.h:
re-organized code
sql/slave.cc:
check master version
sql/slave.h:
old_format member
sql/sql_class.h:
allow user to specify io cache type
need_start_event member to allow writing start event only in the first log
sql/sql_parse.cc:
code re-organization
sql/sql_repl.cc:
code reorganization
sql/sql_repl.h:
reorganized code