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
Portability fixes for HPUX
Rename of CHECK_LOCK to IS_FREE_LOCK
Apply lower_case_table_names also to databases
Cleanup of describe code
Don't allow \ in database names
Build-tools/Do-compile:
Added option --make-options
Docs/manual.texi:
Changelog
Added XOR, ^ and IS_FREE_LOCK() descriptions
acinclude.m4:
Update for running gcc 3.x on HPUX
client/mysql.cc:
Portability fix
client/mysqlbinlog.cc:
Fix for using gcc 3.1
configure.in:
Fix for using gcc 3.1
include/my_global.h:
Fix for using gcc 3.1
include/my_pthread.h:
Removed warning on HPUX
innobase/configure.in:
Portability fix (for gcc 3.1 on HPUX)
innobase/ut/ut0ut.c:
Portability fix (for gcc 3.1 on HPUX)
mysql-test/r/func_test.result:
Test of new functions
mysql-test/r/rpl_get_lock.result:
Test of new functions
mysql-test/t/func_test.test:
Test of new functions
mysql-test/t/rpl_get_lock.test:
Test of new functions
mysys/my_tempnam.c:
Portability fix
sql/item_cmpfunc.cc:
Added comments to Item_cond_xor.
Fixed NULL handling for XOR
sql/item_create.cc:
rename of CHECK_LOCK to IS_FREE_LOCK
sql/item_create.h:
rename of CHECK_LOCK to IS_FREE_LOCK
sql/item_func.cc:
Cleanup XOR handling
sql/item_func.h:
rename of CHECK_LOCK to IS_FREE_LOCK
sql/lex.h:
rename of CHECK_LOCK to IS_FREE_LOCK
sql/mysqld.cc:
Moved chroot() to be exectued earlier.
sql/sql_db.cc:
Apply lower_case_table_names also to databases
sql/sql_parse.cc:
Apply lower_case_table_names also to databases
sql/sql_select.cc:
Cleanup describe code (after Sinisa's patch for EXPLAIN + UNION)
sql/table.cc:
Don't allow \ in database names
Fixed data corruption bug in query cache.
Made queries be dependent of the database in use.
Docs/manual.texi:
Update binary log reference
client/mysql.cc:
Removed warning
include/thr_alarm.h:
Cleanup of alarm macros.
libmysql/libmysql.c:
Portabiliy fix
libmysql/net.c:
Cleanup of alarm macros.
mysql-test/t/rpl_get_lock.test:
Fixed results after merge.
mysys/my_bitmap.c:
Removed warning.
sql/log_event.cc:
Use thd->db_length
sql/mini_client.cc:
Cleanup of alarm macros.
sql/net_serv.cc:
Cleanup of alarm macros.
sql/sql_acl.cc:
Use thd->db_length
sql/sql_cache.cc:
Store used database together with the query.
sql/sql_class.cc:
Use thd->db_length
sql/sql_class.h:
Use thd->db_length
sql/sql_db.cc:
Use thd->db_length
sql/sql_parse.cc:
Use thd->db_length
sql/sql_udf.cc:
Use thd->db_length
Docs/manual.texi:
fixed bad merge
include/my_bitmap.h:
fixed comment format
mysql-test/r/rpl_get_lock.result:
make the test results predicable
mysql-test/t/rpl_get_lock.test:
predicatable test results
mysys/my_bitmap.c:
do not init/destroy mutex if bitmap is not declared thread safe
sql/slave.cc:
clean-up suggested by Monty to make init_slave_skip_errors() more compact
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
Docs/manual.texi:
documented slave-skip-errors
updated change history
extra/resolve_stack_dump.c:
fixed wrong help message
include/my_bitmap.h:
bitmap code updates
mysql-test/r/rpl_get_lock.result:
test for a possible bug in release_lock() replication
mysql-test/t/rpl_get_lock.test:
test for possible bug in release_lock replication
mysys/my_bitmap.c:
bitmap code updates/clean-up
sql/mysqld.cc:
slave-skip-errors
sql/slave.cc:
slave-skip-errors
sql/slave.h:
slave skip errors