Adding new fields Last_{IO,SQL}_Errno and Last_{IO,SQL}_Error to output
of SHOW SLAVE STATUS to hold errors from I/O and SQL thread respectively.
Old fields Last_Error and Last_Errno are aliases for Last_SQL_Error and
Last_SQL_Errno respectively.
Fields are added last to output of SHOW SLAVE STATUS to allow old applications
to use the same positional arguments into the row, while allowing new
application to benefit from the added information.
In addition, some new error codes are added (especially for the I/O
thread) to be able to provide sensible error message.
mysql-test/extra/rpl_tests/rpl_max_relay_size.test:
Commenting out irrelevant fields Last_IO_Error and Last_IO_Errno
mysql-test/r/binlog_row_mix_innodb_myisam.result:
Result change
mysql-test/r/rpl_000015.result:
Result change
mysql-test/r/rpl_change_master.result:
Result change
mysql-test/r/rpl_deadlock_innodb.result:
Result change
mysql-test/r/rpl_empty_master_crash.result:
Result change
mysql-test/r/rpl_extraCol_innodb.result:
Result change
---
Result change.
mysql-test/r/rpl_extraCol_myisam.result:
Result change
---
Result change.
mysql-test/r/rpl_flushlog_loop.result:
Result change
mysql-test/r/rpl_loaddata.result:
Result change
mysql-test/r/rpl_log_pos.result:
Result change
mysql-test/r/rpl_ndb_basic.result:
Result change
mysql-test/r/rpl_ndb_extraCol.result:
Result change
---
Result change.
mysql-test/r/rpl_ndb_idempotent.result:
Result change
mysql-test/r/rpl_ndb_log.result:
Result change
mysql-test/r/rpl_openssl.result:
Result change
mysql-test/r/rpl_rbr_to_sbr.result:
Result change
mysql-test/r/rpl_redirect.result:
Result change
mysql-test/r/rpl_replicate_do.result:
Result change
mysql-test/r/rpl_rotate_logs.result:
Result change
mysql-test/r/rpl_row_inexist_tbl.result:
Result change
mysql-test/r/rpl_row_log.result:
Result change
mysql-test/r/rpl_row_log_innodb.result:
Result change
mysql-test/r/rpl_row_max_relay_size.result:
Result change
mysql-test/r/rpl_row_reset_slave.result:
Result change
mysql-test/r/rpl_row_tabledefs_2myisam.result:
Result change
---
Result change.
mysql-test/r/rpl_row_tabledefs_3innodb.result:
Result change
---
Result change.
mysql-test/r/rpl_row_until.result:
Result change
mysql-test/r/rpl_server_id1.result:
Result change
mysql-test/r/rpl_server_id2.result:
Result change
mysql-test/r/rpl_slave_status.result:
Result change
mysql-test/r/rpl_stm_log.result:
Result change
mysql-test/r/rpl_stm_max_relay_size.result:
Result change
---
Result change.
mysql-test/r/rpl_stm_reset_slave.result:
Result change
mysql-test/r/rpl_stm_until.result:
Result change
mysql-test/t/binlog_row_mix_innodb_myisam.test:
Test fixed.
mysql-test/t/rpl_000015.test:
Commenting out irrelevant fields Last_IO_Error and Last_IO_Errno
mysql-test/t/rpl_change_master.test:
Commenting out irrelevant fields Last_IO_Error and Last_IO_Errno
mysql-test/t/rpl_empty_master_crash.test:
Commenting out irrelevant fields Last_IO_Error and Last_IO_Errno
mysql-test/t/rpl_flushlog_loop.test:
Commenting out irrelevant fields Last_IO_Error and Last_IO_Errno
mysql-test/t/rpl_log_pos.test:
Commenting out irrelevant fields Last_IO_Error and Last_IO_Errno
mysql-test/t/rpl_ndb_bank.test:
Commenting out irrelevant fields Last_IO_Error and Last_IO_Errno
mysql-test/t/rpl_ndb_basic.test:
Commenting out irrelevant fields Last_IO_Error and Last_IO_Errno
mysql-test/t/rpl_ndb_idempotent.test:
Commenting out irrelevant fields Last_IO_Error and Last_IO_Errno
mysql-test/t/rpl_ndb_sync.test:
Commenting out irrelevant fields Last_IO_Error and Last_IO_Errno
mysql-test/t/rpl_openssl.test:
Commenting out irrelevant fields Last_IO_Error and Last_IO_Errno
mysql-test/t/rpl_rbr_to_sbr.test:
Commenting out irrelevant fields Last_IO_Error and Last_IO_Errno
mysql-test/t/rpl_redirect.test:
Commenting out irrelevant fields Last_IO_Error and Last_IO_Errno
mysql-test/t/rpl_replicate_do.test:
Commenting out irrelevant fields Last_IO_Error and Last_IO_Errno
mysql-test/t/rpl_rotate_logs.test:
Commenting out irrelevant fields Last_IO_Error and Last_IO_Errno
mysql-test/t/rpl_row_inexist_tbl.test:
Commenting out irrelevant fields Last_IO_Error and Last_IO_Errno
mysql-test/t/rpl_row_until.test:
Commenting out irrelevant fields Last_IO_Error and Last_IO_Errno
mysql-test/t/rpl_server_id1.test:
Commenting out irrelevant fields Last_IO_Error and Last_IO_Errno
mysql-test/t/rpl_server_id2.test:
Commenting out irrelevant fields Last_IO_Error and Last_IO_Errno
mysql-test/t/rpl_slave_status.test:
Commenting out irrelevant fields Last_IO_Error and Last_IO_Errno
mysql-test/t/rpl_stm_until.test:
Commenting out irrelevant fields Last_IO_Error and Last_IO_Errno
sql/Makefile.am:
Adding new files
sql/log_event.cc:
Changes to use Slave_reporting_capability for reporting errors.
Adding debug variable to stop slave with an out-of-memory error or with
a fatal error. The checks are put both in the new Execute_load_query_
log_event and in the old Load_log_event which is used for Execute_load_
log_event.
Adding code to generate fatal error message.
Eliminating redundant arguments when printing ER_NO_DEFAULT_FOR_FIELD
message.
sql/rpl_mi.cc:
Using Slave_reporting_capability for error reporting.
sql/rpl_mi.h:
Using Slave_reporting_capability to handle I/O thread errors and other messages.
sql/rpl_rli.cc:
Using Slave_reporting_capability to handle SQL thread errors and other messages.
sql/rpl_rli.h:
Changes to use Slave_reporting_capability for reporting SQL thread error and other messages.
sql/rpl_utility.cc:
Changes to use Slave_reporting_capability for reporting errors.
sql/slave.cc:
Changes to use Slave_reporting_capability for reporting errors.
sql/slave.h:
Removing slave_print_msg()
sql/share/errmsg.txt:
New error messages.
Making message for ER_NO_DEFAULT_FOR_FIELD consistent over languages
(actually restoring old message).
Adding argument to ER_SLAVE_FATAL_ERROR message.
sql/sql_repl.cc:
Using new names for thread masks.
mysql-test/t/rpl_loaddata_fatal-slave.opt:
New BitKeeper file ``mysql-test/t/rpl_loaddata_fatal-slave.opt''
sql/rpl_reporting.cc:
New BitKeeper file ``sql/rpl_reporting.cc''
sql/rpl_reporting.h:
New BitKeeper file ``sql/rpl_reporting.h''
mysql-test/include/show_slave_status.inc:
New BitKeeper file ``mysql-test/include/show_slave_status.inc''
mysql-test/r/rpl_loaddata_fatal.result:
New BitKeeper file ``mysql-test/r/rpl_loaddata_fatal.result''
mysql-test/t/rpl_loaddata_fatal.test:
New BitKeeper file ``mysql-test/t/rpl_loaddata_fatal.test''
into rama.(none):/home/jimw/my/mysql-5.1-clean
mysql-test/extra/binlog_tests/insert_select-binlog.test:
Auto merged
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
Auto merged
mysql-test/t/innodb.test:
Auto merged
mysql-test/t/sp_trans.test:
Auto merged
into pilot.(none):/data/msvensson/mysql/mysql-5.1-new-maint
mysql-test/extra/binlog_tests/blackhole.test:
Auto merged
mysql-test/t/mysqldump.test:
Auto merged
mysql-test/t/ndb_binlog_basic2.test:
Auto merged
mysql-test/t/ps.test:
Auto merged
into pilot.(none):/data/msvensson/mysql/mysql-5.1-new-maint
mysql-test/t/backup.test:
Auto merged
mysql-test/extra/binlog_tests/blackhole.test:
Auto merged
into mysql.com:/nfsdisk1/lars/MERGE/mysql-5.1-merge
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/t/disabled.def:
Auto merged
mysql-test/t/rpl_row_mysqlbinlog.test:
Auto merged
sql/sql_load.cc:
Auto merged
BitKeeper/deleted/.del-.del-rpl_critical_errors.result:
Delete: BitKeeper/deleted/.del-rpl_critical_errors.result
This patch corrects a bug involving a LOAD DATA INFILE operation on a
transactional table. It corrects a problem in the error handler by moving
the transactional table check and autocommit_or_rollback operation to the
end of the error handler.
The problem was an assert was thrown after the operation completed. The
assert found a non-sunk event in the transaction cache. The events in the
transaction cache were added after commit_or_rollack and thereafter nothing
removed them.
An additional test case was added to detect this
condition.
mysql-test/extra/rpl_tests/rpl_loaddata.test:
BUG#17233 : LOAD DATA INFILE: failure causes mysqld dbug_assert, binlog not flushed
This patch adds an additional test to rpl_loaddata for handling the
duplicate key error on LOAD DATA INFILE.
mysql-test/r/rpl_loaddata.result:
BUG#17233 : LOAD DATA INFILE: failure causes mysqld dbug_assert, binlog not flushed
This patch adds the results for the additional test for properly handling the
duplicate key error on LOAD DATA INFILE.
sql/sql_load.cc:
BUG#17233 : LOAD DATA INFILE: failure causes mysqld dbug_assert, binlog not flushed
This patch moves the check for a transactional table and rollback in the
error handler for mysql_load(). The patch moves the transactional table
check to the end of the error handler matching the implementation for other
similar operations (see sql_insert).
---
Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build-work-vanilla-building
into pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.1-build-work-vanilla-building
---
Fix test cases to pass for a plain ./configure && make build. This includes disabling two test cases when certain features are not present in the server. We're not losing coverage from this because these features are usually present, and disabling them here only serves the purpose to make the test cases work in the unlikely case that they aren't.
---
fixes
mysql-test/extra/rpl_tests/rpl_extraSlave_Col.test:
Disable this test case if we don't have partitioning
mysql-test/t/rpl_row_basic_11bugs.test:
Disable warnings in a number of places to make this test case work with servers that don't contain InnoDB
---
make test case look better on request from reviewer
mysql-test/t/rpl_row_mysqlbinlog.test:
Disable this test case if the server does not have cp932 compiled in
mysql-test/t/sp.test:
Disable warnings during table creation in one place where engine=innodb is used, in order to make this test case work with a mysqld that was compiled without InnoDB.
(Removes some warnings about UNIX_TIMESTAMP from the slave.err logs)
Marked federated_server as a '--big-test'
Change error in net_clear to 'Note', as it interfered with mysql-test-run.
client/mysqltest.c:
More DBUG messages
Adding missing DBUG_RETURN
mysql-test/extra/rpl_tests/rpl_max_relay_size.test:
Added missing sync_slave_with_master
mysql-test/extra/rpl_tests/rpl_relayrotate.test:
Added missing sync_slave_with_master
mysql-test/include/federated.inc:
Don't do stop slave before the slave has started properly
(Removes some warnings about UNIX_TIMESTAMP from the slave.err logs)
mysql-test/include/federated_cleanup.inc:
Trivial cleanup
mysql-test/t/federated_server.test:
Don't run this unless under --big-test
Made test-loop smaller. (We will find out errors in code over time, as the test is run under a lot of difference machines which will compensate for the smaller loop)
mysql-test/t/rpl_flushlog_loop.test:
Added missing sync_slave_with_master
sql/net_serv.cc:
Change error to Note (low level warning), as it interfered with mysql-test-run.
This is probably fine as we in some context on sever shutdown can get information about connection shutdown on the connection while we are doing a query at the same time.
Still, in normal context one should get this, so it's good to have it in the log as it enables one to find errors easier.
sql/slave.cc:
Added reason to why things failed to error message
- Eliminating some compiler warnings
mysql-test/extra/binlog_tests/blackhole.test:
Using include file for SHOW BINLOG EVENTS.
mysql-test/extra/binlog_tests/drop_temp_table.test:
Using include file for SHOW BINLOG EVENTS.
mysql-test/extra/binlog_tests/insert_select-binlog.test:
Using include file for SHOW BINLOG EVENTS.
mysql-test/extra/rpl_tests/rpl_log.test:
Using include file for SHOW BINLOG EVENTS.
mysql-test/extra/rpl_tests/rpl_row_delayed_ins.test:
Using include file for SHOW BINLOG EVENTS.
mysql-test/extra/rpl_tests/rpl_truncate_helper.test:
Using include file for SHOW BINLOG EVENTS.
mysql-test/include/show_binlog_events.inc:
Fixing regex replace to handle XIDs as well.
mysql-test/r/binlog_row_binlog.result:
Result change
mysql-test/r/binlog_row_blackhole.result:
Result change
mysql-test/r/binlog_row_ctype_ucs.result:
Result change
mysql-test/r/binlog_row_drop_tmp_tbl.result:
Result change
mysql-test/r/binlog_row_insert_select.result:
Result change
mysql-test/r/binlog_row_mix_innodb_myisam.result:
Result change
mysql-test/r/binlog_stm_binlog.result:
Result change
mysql-test/r/binlog_stm_blackhole.result:
Result change
mysql-test/r/binlog_stm_drop_tmp_tbl.result:
Result change
mysql-test/r/binlog_stm_insert_select.result:
Result change
mysql-test/r/binlog_stm_mix_innodb_myisam.result:
Result change
mysql-test/r/ctype_cp932_binlog_row.result:
Result change
mysql-test/r/rpl_ndb_charset.result:
Result change
mysql-test/r/rpl_ndb_log.result:
Result change
mysql-test/r/rpl_ndb_multi.result:
Result change
mysql-test/r/rpl_row_basic_11bugs.result:
Result change
mysql-test/r/rpl_row_charset.result:
Result change
mysql-test/r/rpl_row_create_table.result:
Result change
mysql-test/r/rpl_row_delayed_ins.result:
Result change
mysql-test/r/rpl_row_drop.result:
Result change
mysql-test/r/rpl_row_flsh_tbls.result:
Result change
mysql-test/r/rpl_row_inexist_tbl.result:
Result change
mysql-test/r/rpl_row_log.result:
Result change
mysql-test/r/rpl_row_log_innodb.result:
Result change
mysql-test/r/rpl_row_reset_slave.result:
Result change
mysql-test/r/rpl_row_until.result:
Result change
mysql-test/r/rpl_stm_log.result:
Result change
mysql-test/r/rpl_truncate_2myisam.result:
Result change
mysql-test/r/rpl_truncate_3innodb.result:
Result change
mysql-test/r/rpl_udf.result:
Result change
mysql-test/t/binlog_row_mix_innodb_myisam.test:
Fixing binary log position
mysql-test/t/binlog_stm_mix_innodb_myisam.test:
Fixing binary log position.
sql/log_event.cc:
Eliminating compiler warnings.
Adding an event that can be used to denote that an incident occured
on the master. The event can be used to denote a gap in the replication
stream, but can also be used to denote other incidents.
In addition, the injector interface is extended with functions to
generate an incident event. The function will also rotate the binary
log after generating an incident event to get a fresh binary log.
client/Makefile.am:
Adding file rpl_constants.h with constants for replication.
mysql-test/extra/binlog_tests/binlog.test:
Binlog position change
mysql-test/extra/binlog_tests/binlog_insert_delayed.test:
Binlog position change
mysql-test/extra/binlog_tests/ctype_cp932_binlog.test:
Binlog position change
mysql-test/extra/binlog_tests/ctype_ucs_binlog.test:
Binlog position change
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
Binlog position change
mysql-test/extra/rpl_tests/rpl_deadlock.test:
Binlog position change
mysql-test/extra/rpl_tests/rpl_log.test:
Binlog position change
mysql-test/extra/rpl_tests/rpl_multi_query.test:
Binlog position change
mysql-test/extra/rpl_tests/rpl_row_charset.test:
Binlog position change
mysql-test/extra/rpl_tests/rpl_row_sp002.test:
Binlog position change
mysql-test/extra/rpl_tests/rpl_row_sp003.test:
Binlog position change
mysql-test/extra/rpl_tests/rpl_stm_charset.test:
Binlog position change
mysql-test/include/show_binlog_events.inc:
Binlog position change
mysql-test/r/binlog_row_binlog.result:
Result change
mysql-test/r/binlog_row_ctype_ucs.result:
Result change
mysql-test/r/binlog_row_insert_select.result:
Result change
mysql-test/r/binlog_row_mix_innodb_myisam.result:
Result change
mysql-test/r/binlog_stm_binlog.result:
Result change
mysql-test/r/binlog_stm_ctype_ucs.result:
Result change
mysql-test/r/binlog_stm_insert_select.result:
Result change
mysql-test/r/binlog_stm_mix_innodb_myisam.result:
Result change
mysql-test/r/ctype_cp932_binlog_row.result:
Result change
mysql-test/r/ctype_cp932_binlog_stm.result:
Result change
mysql-test/r/flush_block_commit_notembedded.result:
Result change
mysql-test/r/rpl_000015.result:
Result change
mysql-test/r/rpl_change_master.result:
Result change
mysql-test/r/rpl_deadlock_innodb.result:
Result change
mysql-test/r/rpl_flushlog_loop.result:
Result change
mysql-test/r/rpl_loaddata.result:
Result change
mysql-test/r/rpl_loaddata_s.result:
Result change
mysql-test/r/rpl_log_pos.result:
Result change
mysql-test/r/rpl_ndb_charset.result:
Result change
mysql-test/r/rpl_ndb_log.result:
Result change
mysql-test/r/rpl_ndb_multi.result:
Result change
mysql-test/r/rpl_rbr_to_sbr.result:
Result change
mysql-test/r/rpl_rotate_logs.result:
Result change
mysql-test/r/rpl_row_basic_11bugs.result:
Result change
mysql-test/r/rpl_row_charset.result:
Result change
mysql-test/r/rpl_row_create_table.result:
Result change
mysql-test/r/rpl_row_delayed_ins.result:
Result change
mysql-test/r/rpl_row_drop.result:
Result change
mysql-test/r/rpl_row_flsh_tbls.result:
Result change
mysql-test/r/rpl_row_inexist_tbl.result:
Result change
mysql-test/r/rpl_row_log.result:
Result change
mysql-test/r/rpl_row_log_innodb.result:
Result change
mysql-test/r/rpl_row_max_relay_size.result:
Result change
mysql-test/r/rpl_row_reset_slave.result:
Result change
mysql-test/r/rpl_row_until.result:
Result change
mysql-test/r/rpl_server_id1.result:
Result change
mysql-test/r/rpl_server_id2.result:
Result change
mysql-test/r/rpl_sp.result:
Result change
mysql-test/r/rpl_stm_charset.result:
Result change
mysql-test/r/rpl_stm_flsh_tbls.result:
Result change
mysql-test/r/rpl_stm_log.result:
Result change
mysql-test/r/rpl_stm_max_relay_size.result:
Result change
mysql-test/r/rpl_stm_multi_query.result:
Result change
mysql-test/r/rpl_stm_reset_slave.result:
Result change
mysql-test/r/rpl_stm_until.result:
Result change
mysql-test/r/rpl_switch_stm_row_mixed.result:
Result change
mysql-test/r/rpl_truncate_2myisam.result:
Result change
mysql-test/r/rpl_truncate_3innodb.result:
Result change
mysql-test/r/rpl_truncate_7ndb.result:
Result change
mysql-test/r/user_var-binlog.result:
Result change
mysql-test/t/binlog_row_mix_innodb_myisam.test:
Binlog position change
mysql-test/t/binlog_stm_mix_innodb_myisam.test:
Binlog position change
mysql-test/t/ctype_cp932_binlog_stm.test:
Binlog position change
mysql-test/t/mysqlbinlog.test:
Binlog position change
mysql-test/t/mysqlbinlog2.test:
Binlog position change
mysql-test/t/rpl_loaddata_s.test:
Binlog position change
mysql-test/t/rpl_log_pos.test:
Binlog position change
mysql-test/t/rpl_row_basic_11bugs.test:
Binlog position change
mysql-test/t/rpl_row_create_table.test:
Binlog position change
mysql-test/t/rpl_row_flsh_tbls.test:
Binlog position change
mysql-test/t/rpl_row_mysqlbinlog.test:
Binlog position change
mysql-test/t/rpl_sp.test:
Binlog position change
mysql-test/t/rpl_stm_flsh_tbls.test:
Binlog position change
mysql-test/t/rpl_switch_stm_row_mixed.test:
Binlog position change
mysql-test/t/user_var-binlog.test:
Binlog position change
sql/Makefile.am:
Adding file rpl_constants.h with constants for replication.
sql/log_event.cc:
Changing prototype for read_str() to be const-correct and changing code to match that.
Adding incident log event.
sql/log_event.h:
Adding incident log event.
sql/rpl_injector.cc:
Adding support for generating incidents into the binary log.
sql/rpl_injector.h:
Adding support for generating incidents into the binary log.
sql/share/errmsg.txt:
Adding new error message to indicate an incident.
sql/sql_parse.cc:
Adding code to generate an incident log event just before executing a REPLACE
if the variable "incident_database_resync_on_replace" is set.
mysql-test/r/rpl_incident.result:
New BitKeeper file ``mysql-test/r/rpl_incident.result''
mysql-test/t/rpl_incident.test:
New BitKeeper file ``mysql-test/t/rpl_incident.test''
sql/rpl_constants.h:
New BitKeeper file ``sql/rpl_constants.h''
into mysql.com:/nfsdisk1/lars/MERGE/mysql-5.1-merge
client/mysqlbinlog.cc:
Auto merged
mysql-test/extra/binlog_tests/binlog.test:
Auto merged
mysql-test/r/binlog_row_binlog.result:
Auto merged
mysql-test/r/binlog_stm_binlog.result:
Auto merged
mysql-test/t/disabled.def:
Auto merged
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/lock.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/slave.cc:
Auto merged
sql/slave.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/table.h:
Auto merged
mysql-test/r/rpl_ndb_log.result:
Manual merge main->rpl 5.1
mysql-test/r/rpl_truncate_7ndb.result:
Manual merge main->rpl 5.1
sql/log.cc:
Manual merge main->rpl 5.1
sql/log_event.cc:
Manual merge main->rpl 5.1
There was hanging at binlog_commit by a thread executing autocommit query.
The hang appeared to be due to an overly condtion for early return
from binlog_commit introduced by bug#20265 fix.
Fixed with reverting the logic back to 5.0 version.
mysql-test/extra/binlog_tests/binlog.test:
added a regression test
mysql-test/r/binlog_row_binlog.result:
results changed
mysql-test/r/binlog_stm_binlog.result:
results changed
sql/log.cc:
Removing `all' conjuction arg from early return condition.
There is nothing to execute by transaction if trx_data is empty.
The work for rotate_and_purge is delayed till TC_LOG::unlog
(same as in 5.0 code)
sql/log.h:
singed because there are assert on positiveness
into romeo.(none):/home/bk/b22583-mysql-5.1-new-rpl
mysql-test/extra/rpl_tests/rpl_log.test:
Auto merged
mysql-test/r/rpl_ndb_log.result:
Auto merged
mysql-test/r/rpl_row_log.result:
Auto merged
mysql-test/r/rpl_row_log_innodb.result:
Auto merged
mysql-test/r/rpl_stm_log.result:
Auto merged
mysql-test/r/rpl_switch_stm_row_mixed.result:
Auto merged
mysql-test/t/mysqlbinlog.test:
Auto merged
mysql-test/t/rpl_switch_stm_row_mixed.test:
Auto merged
sql/log_event.cc:
Auto merged
sql/sql_class.cc:
Auto merged
mysql-test/r/rpl_row_basic_11bugs.result:
Manual merge.
mysql-test/t/rpl_row_basic_11bugs.test:
Manual merge.
field does not work
Fix to prevent MyISAM from reading data from NULL BLOB.
Fix to make record comparison independent of values of unused bits in
record.
Updating binlog positions in tests.
mysql-test/extra/rpl_tests/rpl_multi_query.test:
Binlog position change
mysql-test/extra/rpl_tests/rpl_stm_charset.test:
Binlog position change
mysql-test/include/show_binlog_events.inc:
Binlog position change
mysql-test/r/binlog_stm_binlog.result:
Result change
mysql-test/r/binlog_stm_ctype_ucs.result:
Result change
mysql-test/r/binlog_stm_insert_select.result:
Result change
mysql-test/r/binlog_stm_mix_innodb_myisam.result:
Result change
mysql-test/r/ctype_cp932_binlog_stm.result:
Result change
mysql-test/r/ndb_binlog_multi.result:
Result change
mysql-test/r/rpl_known_bugs_detection.result:
Result change
mysql-test/r/rpl_loaddata.result:
Result change
mysql-test/r/rpl_loaddata_s.result:
Result change
mysql-test/r/rpl_ndb_charset.result:
Result change
mysql-test/r/rpl_ndb_extraCol.result:
Result change
mysql-test/r/rpl_ndb_log.result:
Result change
mysql-test/r/rpl_ndb_multi.result:
Result change
mysql-test/r/rpl_rbr_to_sbr.result:
Result change
mysql-test/r/rpl_rotate_logs.result:
Result change
mysql-test/r/rpl_sp.result:
Result change
mysql-test/r/rpl_stm_charset.result:
Result change
mysql-test/r/rpl_stm_flsh_tbls.result:
Result change
mysql-test/r/rpl_stm_log.result:
Result change
mysql-test/r/rpl_stm_max_relay_size.result:
Result change
mysql-test/r/rpl_stm_multi_query.result:
Result change
mysql-test/r/rpl_stm_reset_slave.result:
Result change
mysql-test/r/rpl_stm_until.result:
Result change
mysql-test/r/rpl_truncate_7ndb.result:
Result change
mysql-test/r/user_var-binlog.result:
Result change
mysql-test/t/binlog_stm_mix_innodb_myisam.test:
Binlog position change
mysql-test/t/ctype_cp932_binlog_stm.test:
Binlog position change
mysql-test/t/mysqlbinlog.test:
Binlog position change
mysql-test/t/mysqlbinlog2.test:
Binlog position change
mysql-test/t/rpl_sp.test:
Binlog position change
mysql-test/t/rpl_stm_flsh_tbls.test:
Binlog position change
sql/log_event.cc:
Emptying the record entirely since it appears MyISAM reads blob column
data even when they are NULL.
Adding code to set unused bits of the records before doing a comparison,
and restoring the original values after. Setting the unused bits is necessary
since NDB does not set them correctly, and resetting them afterwards is needed
because MyISAM compares the record with the one located when updating
or deleting it.
mysql-test/r/rpl_row_basic_11bugs-master.opt:
New BitKeeper file ``mysql-test/r/rpl_row_basic_11bugs-master.opt''
mysql-test/r/rpl_row_basic_11bugs-slave.opt:
New BitKeeper file ``mysql-test/r/rpl_row_basic_11bugs-slave.opt''
into romeo.(none):/home/bk/b22583-mysql-5.1-new-rpl
mysql-test/extra/binlog_tests/binlog.test:
Auto merged
mysql-test/extra/binlog_tests/ctype_cp932_binlog.test:
Auto merged
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
Auto merged
mysql-test/t/rpl_row_create_table.test:
Auto merged
sql/log_event.h:
Auto merged
mysql-test/r/binlog_row_binlog.result:
Manual merge
sql/log_event.cc:
Manual merge
sql/sql_class.cc:
Manual merge
Post-merge fixes.
mysql-test/extra/binlog_tests/binlog.test:
Binlog position change
mysql-test/extra/binlog_tests/binlog_insert_delayed.test:
Binlog position change
mysql-test/extra/binlog_tests/ctype_cp932_binlog.test:
Binlog position change
mysql-test/extra/binlog_tests/ctype_ucs_binlog.test:
Binlog position change
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
Binlog position change
mysql-test/r/binlog_row_binlog.result:
Result change
mysql-test/r/binlog_row_ctype_ucs.result:
Result change
mysql-test/r/binlog_row_insert_select.result:
Result change
mysql-test/r/binlog_row_mix_innodb_myisam.result:
Result change
mysql-test/r/ctype_cp932_binlog_row.result:
Result change
mysql-test/r/flush_block_commit_notembedded.result:
Result change
mysql-test/r/rpl_row_create_table.result:
Result change
mysql-test/r/rpl_row_delayed_ins.result:
Result change
mysql-test/t/binlog_row_mix_innodb_myisam.test:
Binlog position change
mysql-test/t/rpl_row_create_table.test:
Removing blinding of end_log_pos in SHOW BINLOG EVENTS output.
Binlog position change.
sql/log_event.cc:
Post-merge fixes.
into quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/mrg0306/51
client/mysqltest.c:
Auto merged
include/my_pthread.h:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/sp.result:
Auto merged
mysql-test/t/disabled.def:
Auto merged
mysql-test/t/sp.test:
Auto merged
mysys/my_wincond.c:
Auto merged
sql/event_queue.cc:
Auto merged
sql/field.cc:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/log.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_load.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_trigger.cc:
Auto merged
client/mysql_upgrade.c:
Manual merge; I chose to keep Magnus' changes because they make the code
more simple; always use *only* the option file created by mysql_upgrade.
mysql-test/extra/binlog_tests/ctype_cp932.test:
Manual merge
mysql-test/r/binlog_row_ctype_cp932.result:
Manual merge
mysql-test/r/binlog_stm_ctype_cp932.result:
Manual merge
mysql-test/r/mysqlbinlog.result:
Manual merge
mysql-test/r/rpl_switch_stm_row_mixed.result:
Manual merge
mysql-test/t/mysqlbinlog.test:
Manual merge
mysql-test/t/rpl_switch_stm_row_mixed.test:
Manual merge
1. Fixes within the testscripts (affects rpl_ddl.test and rpl_ndb_ddl.test)
- slave connection is only an observer (-> AUTOCOMMIT = 0)
This removes the problem with the hanging test around DROP DATABASE (NDB). The hanging test around DROP DATABASE is a difference to InnoDB/MyISAm behaviour but fare
away of a clear bug. IMHO this behaviour does not violate the SQL standard and should be therefore simply accepted.
- removal of wrong comments
- CREATE/DROP TEMPORARY TABLE must not cause implicit commit of the current transaction.
NDB behaves here correct and InnoDB/Falcon wrong.
- Add a missing connection slave
- Reenable the test rpl_ndb_ddl.
2. Disable rpl_ddl.test because of Bug#26418.
3. Reenable rpl_ndb_ddl.test
4. Improvements (affect rpl_ddl.test and rpl_ndb_ddl.test)
- Better + extended comments which should prevent that somebody accidently destroys the logics of the test
- Replace SELECT's printing comments by "--echo" (decreases the number of auxiliary SQL commands)
- Remove the need for include/rpl_stmt_seq2.inc (was mostly redundant to rpl_stmt_seq.inc)
- Remove extra/rpl_tests/rpl_ndb_ddl.test (corrected extra/rpl_tests/rpl_ddl.test is sufficient)
- Shift assignment of values to $show_binlog, $manipulate (variables useful for debugging) into the toplevel scripts
- The temporary tables get now their storage engine from the variable $temp_engine_type. (more deterministic testing conditions)
- Add additional protocol line if the connection is switched (was partially missing)
- Add two DML commands for comparison purposes
BitKeeper/deleted/.del-rpl_ndb_ddl.test:
Delete: mysql-test/extra/rpl_tests/rpl_ndb_ddl.test
BitKeeper/deleted/.del-rpl_stmt_seq2.inc:
Delete: mysql-test/include/rpl_stmt_seq2.inc
mysql-test/extra/rpl_tests/rpl_ddl.test:
Improvements + Fixes
mysql-test/include/rpl_stmt_seq.inc:
Improvements
mysql-test/r/rpl_ddl.result:
Updated expected results
mysql-test/r/rpl_ndb_ddl.result:
Updated expected results
mysql-test/t/disabled.def:
Reenable rpl_ndb_ddl because of bug fix.
Disable rpl_ddl because of Bug#26418.
mysql-test/t/rpl_ddl.test:
Improvements
mysql-test/t/rpl_ndb_ddl.test:
Improvements
That causes test case for bug#6880 to be run on the master
instead of the slave and thus the result files need to be updated
mysql-test/r/rpl_ndb_log.result:
Update result, test is now run on master
mysql-test/r/rpl_row_log.result:
Update result, test is now run on master
mysql-test/r/rpl_row_log_innodb.result:
Update result, test is now run on master
mysql-test/r/rpl_stm_log.result:
Update result, test is now run on master
into pilot.blaudden:/home/msvensson/mysql/mysql-5.1-maint
BitKeeper/etc/ignore:
auto-union
extra/comp_err.c:
Auto merged
include/my_pthread.h:
Auto merged
mysql-test/r/innodb.result:
Auto merged
mysql-test/r/mix2_myisam.result:
Auto merged
mysql-test/r/mysqltest.result:
Auto merged
mysql-test/r/type_blob.result:
Auto merged
mysql-test/t/disabled.def:
Auto merged
mysql-test/t/mysqltest.test:
Auto merged
sql/Makefile.am:
Auto merged
sql/item.cc:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/log.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/tztime.cc:
Auto merged
client/mysqltest.c:
Manual merge
mysql-test/mysql-test-run.pl:
Manual merge
sql/mysqld.cc:
Manual merge
mysql-test/extra/rpl_tests/rpl_row_func003.test:
Fix spelling error
mysql-test/extra/rpl_tests/rpl_row_tabledefs.test:
Restore sql_mode after test
mysql-test/r/events_logs_tests.result:
Turn even_scheduleroff before test ends
mysql-test/r/events_scheduling.result:
Turn even_scheduleroff before test ends
mysql-test/r/insert.result:
Drop tables t1 before test ends
mysql-test/r/rpl_read_only.result:
Set read_only flag back to default
mysql-test/r/rpl_row_NOW.result:
Drop database mysqltest1 before test ends
mysql-test/r/rpl_row_USER.result:
Drop users created by test
mysql-test/r/rpl_row_basic_11bugs.result:
Drop table and set query_cache_size back to default
mysql-test/r/rpl_row_func002.result:
Drop table created by test
mysql-test/r/rpl_row_sp008.result:
Drop table created by test
mysql-test/r/rpl_row_sp012.result:
Drop user created by test
mysql-test/r/rpl_row_tabledefs_2myisam.result:
Restore sql_mode
mysql-test/r/rpl_row_tabledefs_3innodb.result:
Restore sql_mode
mysql-test/r/rpl_row_tabledefs_7ndb.result:
Restore sql_mode
mysql-test/r/rpl_row_view01.result:
Drop database created by test
mysql-test/r/rpl_slave_status.result:
Remove created users
mysql-test/r/rpl_switch_stm_row_mixed.result:
Reset binlog_format to default
mysql-test/r/sp.result:
Drop procedure created by test
mysql-test/r/varbinary.result:
Drop table created by test
mysql-test/r/variables.result:
Reset changed variables to their defaults
mysql-test/t/events_logs_tests.test:
Turn off event_scheduler before test ends
mysql-test/t/events_scheduling.test:
Turn off event_scheduler
mysql-test/t/insert.test:
Drop table created by test
mysql-test/t/rpl_read_only.test:
Reset read_only flag
mysql-test/t/rpl_row_NOW.test:
Drop db created by test
mysql-test/t/rpl_row_USER.test:
Drop users created
mysql-test/t/rpl_row_basic_11bugs.test:
Drop tables created by test
mysql-test/t/rpl_row_func002.test:
Drop table created by test
mysql-test/t/rpl_row_sp008.test:
Drop table created by test
mysql-test/t/rpl_row_sp012.test:
Drop user created by test
mysql-test/t/rpl_row_view01.test:
Drop db created by test
mysql-test/t/rpl_slave_status.test:
Remove users created by test
mysql-test/t/rpl_switch_stm_row_mixed.test:
Reset binlog_format
mysql-test/t/sp.test:
Drop procedure created by test
mysql-test/t/varbinary.test:
Drop tables created by test
mysql-test/t/variables.test:
Restore variables to their default before test ends
into mysql.com:/nfsdisk1/lars/MERGE/mysql-5.1-merge
sql/field.cc:
Auto merged
sql/log.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_insert.cc:
Auto merged
into mysql.com:/home/gluh/MySQL/Merge/5.1-opt
mysql-test/r/innodb.result:
Auto merged
mysql-test/r/insert_update.result:
Auto merged
mysql-test/r/myisam.result:
Auto merged
mysql-test/r/select.result:
Auto merged
mysql-test/r/subselect3.result:
Auto merged
mysql-test/r/type_blob.result:
Auto merged
mysql-test/t/insert_update.test:
Auto merged
mysql-test/t/select.test:
Auto merged
BitKeeper/deleted/.del-bdb.result:
Auto merged
mysql-test/extra/binlog_tests/blackhole.test:
Auto merged
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_union.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
storage/blackhole/ha_blackhole.cc:
Auto merged
mysql-test/r/binlog_stm_blackhole.result:
manual merge
mysql-test/r/insert_select.result:
manual merge
mysql-test/r/subselect.result:
manual merge
mysql-test/r/update.result:
manual merge
mysql-test/t/insert_select.test:
manual merge
mysql-test/t/subselect.test:
manual merge
sql/sql_help.cc:
manual merge
sql/sql_insert.cc:
manual merge
sql/sql_update.cc:
manual merge
into romeo.(none):/home/bk/b25091-mysql-5.1-new-rpl
sql/handler.cc:
Auto merged
sql/log.cc:
Auto merged
sql/sp.cc:
Auto merged
sql/table.h:
Auto merged
With this patch, statements that change metadata (in the mysql database)
is logged as statements, while normal changes (e.g., using INSERT, DELETE,
and/or UPDATE) is logged according to the format in effect.
The log tables (i.e., general_log and slow_log) are not replicated at all.
With this patch, the following statements are replicated as statements:
GRANT, REVOKE (ALL), CREATE USER, DROP USER, and RENAME USER.
mysql-test/extra/binlog_tests/binlog.test:
Added test to check that normal INSERT, DELETE, and UPDATE to a table in
the mysql database is replicated both under row-based and statement-based
replication.
mysql-test/r/binlog_row_binlog.result:
Result change.
mysql-test/r/binlog_stm_binlog.result:
Result change.
sql/handler.cc:
Removed hardcoded check for mysql database.
Added table-specific flag for non-replication (used by log tables).
sql/log.cc:
Adding flag that a table shall not be replicated and set it for log
tables.
sql/sp.cc:
Turning row-based replication off for statements that change metadata.
sql/sql_acl.cc:
Turning row-based replication off for statements that change metadata.
sql/table.h:
Adding flag that a table shall not be replicated.
fix after merge: server now returns ER_DUP_ENTRY_WITH_KEY_NAME, not ER_DUP_ENTRY
mysql-test/extra/rpl_tests/rpl_insert_delayed.test:
fix after merge: server now returns ER_DUP_ENTRY_WITH_KEY_NAME, not ER_DUP_ENTRY
into mysql.com:/nfsdisk1/lars/MERGE/mysql-5.1-merge
client/mysqlbinlog.cc:
Auto merged
include/my_global.h:
Auto merged
mysql-test/extra/rpl_tests/rpl_insert_id.test:
Auto merged
mysql-test/t/show_check.test:
Auto merged
mysys/mf_iocache2.c:
Auto merged
sql/field.cc:
Auto merged
sql/item_xmlfunc.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/log_event.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/slave.cc:
Auto merged
sql/slave.h:
Auto merged
sql/sql_show.cc:
Auto merged
mysql-test/t/disabled.def:
Manual merge
sql/log.cc:
Manual merge
sql/sql_insert.cc:
Manual merge
into polly.local:/home/kaa/src/maint/mysql-5.1-maint
mysql-test/include/mix2.inc:
Auto merged
mysql-test/r/innodb.result:
Auto merged
mysql-test/r/sp.result:
Auto merged
mysql-test/t/sp.test:
Auto merged
sql/mysqld.cc:
Auto merged
mysql-test/r/mysqlbinlog.result:
Manual merge
mysql-test/t/innodb.test:
Manual merge
mysql-test/t/mysql.test:
Manual merge
mysql-test/t/mysqlbinlog.test:
Manual merge
into polly.local:/tmp/maint/bug25137/my51-bug25137
mysql-test/extra/binlog_tests/ctype_cp932.test:
Auto merged
mysql-test/r/binlog_stm_ctype_cp932.result:
Auto merged
mysql-test/r/mysql.result:
Auto merged
mysql-test/r/sp.result:
Auto merged
mysql-test/t/ctype_ucs2_def-master.opt:
Auto merged
mysql-test/t/ctype_ucs2_def.test:
Auto merged
mysql-test/t/mysql.test:
Auto merged
mysql-test/t/mysqlbinlog.test:
Auto merged
sql/mysqld.cc:
Auto merged
mysql-test/r/innodb.result:
Manual merge
mysql-test/t/innodb.test:
Manual merge
mysql-test/t/sp.test:
Manual merge
1)
BUG#25507 "multi-row insert delayed + auto increment causes
duplicate key entries on slave" (two concurrrent connections doing
multi-row INSERT DELAYED to insert into an auto_increment column,
caused replication slave to stop with "duplicate key error" (and
binlog was wrong), and BUG#26116 "If multi-row INSERT
DELAYED has errors, statement-based binlogging breaks" (the binlog
was not accounting for all rows inserted, or slave could stop).
The fix is that: in statement-based binlogging, a multi-row INSERT
DELAYED is silently converted to a non-delayed INSERT.
This is supposed to not affect many 5.1 users as in 5.1, the default
binlog format is "mixed", which does not have the bug (the bug is
only with binlog_format=STATEMENT).
We should document how the system delayed_insert thread decides of
its binlog format (which is not modified by this patch):
this decision is taken when the thread is created
and holds until it is terminated (is not affected by any later change
via SET GLOBAL BINLOG_FORMAT). It is also not affected by the binlog
format of the connection which issues INSERT DELAYED (this binlog
format does not affect how the row will be binlogged).
If one wants to change the binlog format of its server with SET
GLOBAL BINLOG_FORMAT, it should do FLUSH TABLES to be sure all
delayed_insert threads terminate and thus new threads are created,
taking into account the new format.
2)
BUG#24432
"INSERT... ON DUPLICATE KEY UPDATE skips auto_increment values".
When in an INSERT ON DUPLICATE KEY UPDATE, using
an autoincrement column, we inserted some autogenerated values and
also updated some rows, some autogenerated values were not used
(for example, even if 10 was the largest autoinc value in the table
at the start of the statement, 12 could be the first autogenerated
value inserted by the statement, instead of 11). One autogenerated
value was lost per updated row. Led to exhausting the range of the
autoincrement column faster.
Bug introduced by fix of BUG#20188; present since 5.0.24 and 5.1.12.
This bug breaks replication from a pre-5.0.24/pre-5.1.12 master.
But the present bugfix, as it makes INSERT ON DUP KEY UPDATE
behave like pre-5.0.24/pre-5.1.12, breaks replication from a
[5.0.24,5.0.34]/[5.1.12,5.1.15]
master to a fixed (5.0.36/5.1.16) slave! To warn users against this when
they upgrade their slave, as agreed with the support team, we add
code for a fixed slave to detect that it is connected to a buggy
master in a situation (INSERT ON DUP KEY UPDATE into autoinc column)
likely to break replication, in which case it cannot replicate so
stops and prints a message to the slave's error log and to SHOW SLAVE
STATUS.
For 5.0.36->[5.0.24,5.0.34] replication or 5.1.16->[5.1.12,5.1.15]
replication we cannot warn as master
does not know the slave's version (but we always recommended to users
to have slave at least as new as master).
As agreed with support, I have asked for an alert to be put into
the MySQL Network Monitoring and Advisory Service.
3) note that I'll re-enable rpl_insert_id as soon as 5.1-rpl gets
the changes from the main 5.1.
BitKeeper/deleted/.del-rpl_insert_delayed.result:
Delete: mysql-test/r/rpl_insert_delayed.result
mysql-test/extra/rpl_tests/rpl_insert_delayed.test:
tests for BUG#25507 (lauch many concurrent INSERT DELAYED into an auto_inc
column and see if they cause duplicates) and BUG#26116 (see if one error
at first row on master makes the slave's data incorrect).
It is then incorporated into a statement-based and mixed binlogging
test, and into a row-based test.
It is in fact mysql-test/t/rpl_insert_delayed.test from 5.0, renamed
and extended to test BUG#25507.
mysql-test/extra/rpl_tests/rpl_insert_id.test:
manual merge of test for BUG#24432
"INSERT... ON DUPLICATE KEY UPDATE skips auto_increment values"
from 5.0
mysql-test/r/rpl_insert_id.result:
result update (it automerged from 5.0, contrary to the test file)
mysql-test/r/rpl_known_bugs_detection.result:
result update (binlog event sizes differ from 5.0)
mysql-test/t/disabled.def:
rpl_insert_id tests statement-based replication of INSERT ON
DUPLICATE KEY UPDATE. This type of INSERT had BUG#24432, which is
fixed in 5.1.16; we made the slave detect if it is connected to a
<5.1.16 master and if so refuse to replicate.
The problem is that this 5.1-rpl tree, even though it will produce
the 5.1.16 release, still has a 5.1.15 version in configure.in.
Thus rpl_insert_id fails. So I disable it. As soon as the 5.1-rpl
tree gets the changesets from the main 5.1, its version will change
to 5.1.16 and so I'll be able to re-enable the test.
mysql-test/t/rpl_known_bugs_detection.test:
only in statement-based; row-based has no bug so test would fail.
sql/slave.cc:
slave_print_msg(ERROR_LEVEL) calls my_error(ER_UNKNOWN_ERROR);
so, for our my_printf_error(), which has a nicer message than this
my_error(), to have any effect, it must be
called before slave_print_msg()
sql/sql_insert.cc:
manual merge from 5.0 of a piece of the fixes for
BUG#24432 "INSERT... ON DUPLICATE KEY UPDATE skips auto_increment values"
BUG#25507 "multi-row insert delayed + auto increment causes
duplicate key entries on slave"
BUG#26116 "If multi-row INSERT DELAYED has errors, statement-based
binlogging breaks".
The other pieces (e.g. log_event.cc) automerged from 5.0.
mysql-test/r/rpl_row_insert_delayed.result:
result
mysql-test/r/rpl_stm_insert_delayed.result:
result. Note how "mixed" and "statement" insert different data in
the table.
mysql-test/t/rpl_row_insert_delayed.test:
wrapper to test INSERT DELAYED binlogging in row-based mode
mysql-test/t/rpl_stm_insert_delayed.test:
wrapper to test INSERT DELAYED binlogging in statement-based and mixed
mode
does not work): Changing packed row format to only include null bits
for those columns that are present in the row as well as writing BIT
columns in a storage engine-independent format.
The change in row format is incompatible with the previous format and a
slave will not be able to read the new events.
mysql-test/extra/rpl_tests/rpl_deadlock.test:
Position change since Format_description_log_event is longer.
mysql-test/extra/rpl_tests/rpl_log.test:
Position change since Format_description_log_event is longer.
mysql-test/extra/rpl_tests/rpl_row_charset.test:
Position change since Format_description_log_event is longer.
mysql-test/r/rpl_000015.result:
Result change.
mysql-test/r/rpl_change_master.result:
Result change.
mysql-test/r/rpl_deadlock_innodb.result:
Result change.
mysql-test/r/rpl_flushlog_loop.result:
Result change.
mysql-test/r/rpl_log_pos.result:
Result change.
mysql-test/r/rpl_row_basic_11bugs.result:
Result change.
mysql-test/r/rpl_row_charset.result:
Result change.
mysql-test/r/rpl_row_create_table.result:
Result change.
mysql-test/r/rpl_row_delayed_ins.result:
Result change.
mysql-test/r/rpl_row_drop.result:
Result change.
mysql-test/r/rpl_row_flsh_tbls.result:
Result change.
mysql-test/r/rpl_row_inexist_tbl.result:
Result change.
mysql-test/r/rpl_row_log.result:
Result change.
mysql-test/r/rpl_row_log_innodb.result:
Result change.
mysql-test/r/rpl_row_max_relay_size.result:
Result change.
mysql-test/r/rpl_row_reset_slave.result:
Result change.
mysql-test/r/rpl_row_until.result:
Result change.
mysql-test/r/rpl_server_id1.result:
Result change.
mysql-test/r/rpl_server_id2.result:
Result change.
mysql-test/r/rpl_switch_stm_row_mixed.result:
Result change.
mysql-test/r/rpl_truncate_2myisam.result:
Result change.
mysql-test/r/rpl_truncate_3innodb.result:
Result change.
mysql-test/t/rpl_loaddata_s.test:
Position change since Format_description_log_event is longer.
mysql-test/t/rpl_log_pos.test:
Position change since Format_description_log_event is longer.
mysql-test/t/rpl_row_basic_11bugs-master.opt:
Adding --innodb option
mysql-test/t/rpl_row_basic_11bugs.test:
Testing explicitly for RBR MyISAM -> InnoDB and vice versa.
Position change since Format_description_log_event is longer.
mysql-test/t/rpl_row_create_table.test:
Position change since Format_description_log_event is longer.
mysql-test/t/rpl_row_flsh_tbls.test:
Position change since Format_description_log_event is longer.
mysql-test/t/rpl_row_mysqlbinlog.test:
Position change since Format_description_log_event is longer.
mysql-test/t/rpl_switch_stm_row_mixed.test:
Position change since Format_description_log_event is longer.
mysql-test/t/user_var-binlog.test:
Position change since Format_description_log_event is longer.
sql/log_event.cc:
Changing packed row format to only include null bits for those columns
that are present in the row as well as writing BIT columns in a storage
engine-independent format.
Changing unpack_row() to accomodate for the changes.
sql/log_event.h:
Renumbering old row events and adding new codes.
sql/sql_class.cc:
Changing packed row format to only include null bits for those columns
that are present in the row as well as writing BIT columns in a storage
engine-independent format.
Changing THD::pack_row() to accomodate for the changes and adding
documentation.
mysql-test/t/rpl_row_basic_11bugs-slave.opt:
New BitKeeper file ``mysql-test/t/rpl_row_basic_11bugs-slave.opt''
into mysql.com:/home/bar/mysql-5.1.b25815
sql/field.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
mysql-test/extra/binlog_tests/ctype_cp932.test:
Auto merged
mysql-test/r/binlog_stm_ctype_cp932.result:
Auto merged
sql/mysqld.cc:
After merge fix
mysql-test/extra/rpl_tests/rpl_trig004.test:
Fixed bug in last push
mysql-test/r/create.result:
Fixed error number
mysql-test/r/rpl_sp.result:
Fixed error number
mysql-test/r/sp.result:
Fixed error number
mysql-test/r/view.result:
Better fix for now() handling
mysql-test/t/ndb_basic.test:
Use error names instead of numbers
mysql-test/t/ndb_index_unique.test:
Use error names instead of numbers
mysql-test/t/rpl_skip_error-slave.opt:
Change to new error number
mysql-test/t/sp.test:
Change to new error number
mysql-test/t/view.test:
Better fix for now() handling
into mysql.com:/home/my/mysql-5.1
BUILD/SETUP.sh:
Auto merged
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
Auto merged
mysql-test/extra/rpl_tests/rpl_row_basic.test:
Auto merged
mysql-test/include/mix1.inc:
Auto merged
mysql-test/r/sp.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/t/ctype_utf8.test:
Auto merged
mysql-test/t/delayed.test:
Auto merged
mysql-test/t/innodb.test:
Auto merged
mysql-test/t/insert_select.test:
Auto merged
mysql-test/t/myisam.test:
Auto merged
mysql-test/t/ndb_index_unique.test:
Auto merged
mysql-test/t/rpl_row_create_table.test:
Auto merged
mysql-test/t/rpl_sp.test:
Auto merged
mysql-test/t/sp.test:
Auto merged
mysql-test/t/type_binary.test:
Auto merged
mysql-test/t/type_varchar.test:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/handler.cc:
Auto merged
sql/sql_table.cc:
Auto merged
mysql-test/r/rpl_sp.result:
Manual merge
mysql-test/t/ndb_update.test:
Manual merge
sql/share/errmsg.txt:
Manual merge
Changed error message to be compatible with old error file
Added new error message for new DUP_ENTRY syntax
BUILD/SETUP.sh:
Give warnings for unused objects
mysql-test/extra/binlog_tests/insert_select-binlog.test:
Changed to use new error message
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
Changed to use new error message
mysql-test/extra/rpl_tests/rpl_auto_increment.test:
Changed to use new error message
mysql-test/extra/rpl_tests/rpl_foreign_key.test:
Changed to use new error message
mysql-test/extra/rpl_tests/rpl_insert_id.test:
Changed to use new error message
mysql-test/extra/rpl_tests/rpl_insert_id_pk.test:
Changed to use new error message
mysql-test/extra/rpl_tests/rpl_loaddata.test:
Changed to use new error message
mysql-test/extra/rpl_tests/rpl_row_basic.test:
Changed to use new error message
mysql-test/extra/rpl_tests/rpl_stm_EE_err2.test:
Changed to use new error message
mysql-test/extra/rpl_tests/rpl_trig004.test:
Changed to use new error message
mysql-test/include/mix1.inc:
Changed to use new error message
mysql-test/include/mix2.inc:
Changed to use new error message
mysql-test/include/ps_modify.inc:
Changed to use new error message
mysql-test/include/query_cache.inc:
Changed to use new error message
mysql-test/include/varchar.inc:
Changed to use new error message
mysql-test/r/create.result:
Changed to use new error message
mysql-test/r/rpl_sp.result:
Changed to use new error message
mysql-test/r/sp.result:
Changed to use new error message
mysql-test/r/view.result:
Changed to use new error message
mysql-test/t/auto_increment.test:
Changed to use new error message
mysql-test/t/create.test:
Changed to use new error message
mysql-test/t/create_select_tmp.test:
Changed to use new error message
mysql-test/t/ctype_utf8.test:
Changed to use new error message
mysql-test/t/delayed.test:
Changed to use new error message
mysql-test/t/heap.test:
Changed to use new error message
mysql-test/t/heap_btree.test:
Changed to use new error message
mysql-test/t/heap_hash.test:
Changed to use new error message
mysql-test/t/innodb.test:
Changed to use new error message
mysql-test/t/insert_select.test:
Changed to use new error message
mysql-test/t/insert_update.test:
Changed to use new error message
mysql-test/t/join_outer.test:
Changed to use new error message
mysql-test/t/key.test:
Changed to use new error message
mysql-test/t/merge.test:
Changed to use new error message
mysql-test/t/myisam.test:
Changed to use new error message
mysql-test/t/ndb_charset.test:
Changed to use new error message
mysql-test/t/ndb_index_unique.test:
Changed to use new error message
mysql-test/t/ndb_insert.test:
Changed to use new error message
mysql-test/t/ndb_replace.test:
Changed to use new error message
mysql-test/t/ndb_update.test:
Changed to use new error message
mysql-test/t/replace.test:
Changed to use new error message
mysql-test/t/rpl_err_ignoredtable.test:
Changed to use new error message
mysql-test/t/rpl_row_create_table.test:
Changed to use new error message
mysql-test/t/rpl_skip_error-slave.opt:
Changed to use new error message
mysql-test/t/rpl_sp.test:
Changed to use new error message
mysql-test/t/show_check.test:
Changed to use new error message
mysql-test/t/sp-error.test:
Changed to use new error message
mysql-test/t/sp.test:
Changed to use new error message
mysql-test/t/sp_trans.test:
Changed to use new error message
mysql-test/t/temp_table.test:
Changed to use new error message
mysql-test/t/type_binary.test:
Changed to use new error message
mysql-test/t/type_bit.test:
Changed to use new error message
mysql-test/t/type_bit_innodb.test:
Changed to use new error message
mysql-test/t/type_blob.test:
Changed to use new error message
mysql-test/t/type_varchar.test:
Changed to use new error message
mysql-test/t/view.test:
Changed to use new error message
sql/handler.cc:
ER_DUP_ENTRY -> ER_DUP_ENTRY_WITH_KEY_NAME
sql/share/errmsg.txt:
Changed error message to be compatible with old error file
Added new error message for new DUP_ENTRY syntax
sql/sql_table.cc:
ER_DUP_ENTRY -> ER_DUP_ENTRY_WITH_KEY_NAME
sql-bench/example:
Example file for how to run tests
The test uses show binlog event which is not deterministic due to the single insert delayed
query can generate up to number of inserted rows row-events pair (table_map + Write_row)
The solution is to leave the current binlogging behaviour as it is and change
the test as spliting arguments of insert delayed query. Note, that such fix was applied
earlier for binlog_insert_delayed.test :
https://intranet.mysql.com/secure/apps/irclog.php?channel=22&start_time=2006-09-27
There are no tests with insert delayed and show binlog events combination requiring
this fix.
mysql-test/extra/rpl_tests/rpl_row_delayed_ins.test:
splitting insert delayed per rows
into mysql.com:/home/bk/MERGE/mysql-5.1-merge
client/mysqlbinlog.cc:
Auto merged
client/mysqldump.c:
Auto merged
config/ac-macros/ha_ndbcluster.m4:
Auto merged
configure.in:
Auto merged
include/my_global.h:
Auto merged
mysql-test/r/mysqldump.result:
Auto merged
mysql-test/r/rpl_timezone.result:
Auto merged
mysql-test/t/disabled.def:
Auto merged
sql/handler.cc:
Auto merged
sql/item_create.cc:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/log.cc:
Auto merged
sql/log.h:
Auto merged
sql/log_event.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/rpl_injector.h:
Auto merged
sql/set_var.cc:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_view.cc:
Auto merged
sql/table.cc:
Auto merged
mysql-test/t/mysqldump.test:
Manual merge
sql/log_event.cc:
manual merge
Field_bit::set_default() did not check the bit_len, hence used the undefined
bit_ptr, causing a crash. The patch adds a check that bit_len > 0 before
following the bit_ptr.
mysql-test/extra/rpl_tests/rpl_row_tabledefs.test:
Doing select using ORDER BY to prevent table-internal order from
affecting the result.
mysql-test/r/rpl_row_tabledefs_2myisam.result:
Result change
mysql-test/r/rpl_row_tabledefs_3innodb.result:
Result change
sql/field.cc:
Checking bit_len before following the bit_ptr, since bit_ptr has no
sensible value in the case that bit_len == 0.
sql/field.h:
Field_bit::set_default() used the bit_ptr, but it is undefined,
hence causing a crash. In reality, the hierarchy order is not correct
so added a TODO comment about refactoring.
sql/log_event.cc:
Code was manipulating bits for a FIELD_TYPE_BIT field without checking
if the bit_len was > 0, hence using an undefined bit_ptr when the
class was actually a Field_bit_as_char.
mysql-test/t/rpl_row_tabledefs_3innodb-slave.opt:
New BitKeeper file ``mysql-test/t/rpl_row_tabledefs_3innodb-slave.opt''
into neptunus.(none):/home/msvensson/mysql/mysql-5.1-new-maint
BitKeeper/etc/collapsed:
auto-union
configure.in:
Auto merged
mysql-test/Makefile.am:
Auto merged
mysql-test/extra/rpl_tests/rpl_deadlock.test:
Auto merged
mysql-test/mysql-test-run-shell.sh:
Auto merged
mysql-test/r/func_time.result:
Auto merged
mysql-test/r/ps.result:
Auto merged
mysql-test/r/windows.result:
Auto merged
mysql-test/t/disabled.def:
Auto merged
mysql-test/t/func_time.test:
Auto merged
mysql-test/t/ps.test:
Auto merged
mysql-test/t/windows.test:
Auto merged
sql/item.cc:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql-common/my_time.c:
Auto merged
sql/sql_parse.cc:
Auto merged
BitKeeper/deleted/.del-ps_not_windows.result:
Delete: mysql-test/r/ps_not_windows.result
BitKeeper/deleted/.del-ps_not_windows.test:
Delete: mysql-test/t/ps_not_windows.test
mysql-test/mysql-test-run.pl:
Manual merge
mysql-test/r/rpl_deadlock_innodb.result:
Manual merge
into neptunus.(none):/home/msvensson/mysql/mysql-5.1-new-maint
mysql-test/extra/rpl_tests/rpl_deadlock.test:
Auto merged
mysql-test/extra/rpl_tests/rpl_max_relay_size.test:
Auto merged
mysql-test/r/key_cache.result:
Auto merged
mysql-test/r/rpl_deadlock_innodb.result:
Auto merged
mysql-test/r/rpl_sp.result:
Auto merged
mysql-test/r/rpl_stm_max_relay_size.result:
Auto merged
mysql-test/r/rpl_timezone.result:
Auto merged
mysql-test/r/type_float.result:
Auto merged
mysql-test/r/view_grant.result:
Auto merged
mysql-test/t/init_connect.test:
Auto merged
mysql-test/t/mysqldump.test:
Auto merged
mysql-test/t/view_grant.test:
Auto merged
mysql-test/r/mysqldump.result:
Manual merge
mysql-test/r/rpl_drop_db.result:
Manual merge
mysql-test/r/rpl_variables.result:
Manual merge
mysql-test/t/rpl_drop_db.test:
Manual merge
mysql-test/t/rpl_sp.test:
Manual merge
mysql-test/t/rpl_timezone.test:
Manual merge
mysql-test/t/rpl_variables.test:
Manual merge
into mysql.com:/users/lthalmann/bk/MERGE/mysql-5.1-merge
BitKeeper/etc/collapsed:
auto-union
include/m_ctype.h:
Auto merged
mysql-test/r/binlog_row_mix_innodb_myisam.result:
Auto merged
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/t/disabled.def:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/Makefile.am:
Auto merged
sql/field.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/log.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_view.cc:
Auto merged
unittest/mytap/tap.c:
Auto merged
sql/log_event.cc:
manual merge
sql/sql_class.cc:
manual merge
Bug#23831 deadlock not noticed
RBR bug in that when replicated msta (multi-statement-trans-action) deadlocks
with a local at write row event or gets timed-out, the event handler did not return
the correct error code.
Wrong error code stops slave sql thread instead of to proceed with
rollback and replay.
The correct code is typed in error log and stored for error handling rotine
to conduct rollback and replay of the transaction. The handling for the rbr
remains the same as for the sbr events.
Particularly, timed-out transaction still is rolled back - look at the related bugs.
mysql-test/extra/rpl_tests/rpl_deadlock.test:
fixing deadlock stimulation, commented on potential race condition and left todo.
mysql-test/r/rpl_deadlock_innodb.result:
changed
sql/log_event.cc:
returning the correct errors for write row event type;
storing DL, TO error codes to check at grand-caller in step with sbr.
into dsl-hkigw8-feaef900-46.dhcp.inet.fi:/home/elkin/MySQL/TEAM/FIXES/merge_50
mysql-test/r/rpl_deadlock_innodb.result:
results changed
mysql-test/extra/rpl_tests/rpl_deadlock.test:
taking a fix for testing timed-out behaviour.
sql/slave.cc:
just comments are fixed due to changes in behavior of timed-out msta.
Bug #22027 CREATE TABLE IF NOT EXISTS SELECT logged improperly with row-based binlog
post-merge fix, also making results free from server's version number.
mysql-test/extra/binlog_tests/binlog.test:
eliminating format-description line in show binlog events.
mysql-test/r/binlog_row_binlog.result:
results changed
into dsl-hkigw8-febefb00-148.dhcp.inet.fi:/home/elkin/MySQL/TEAM/FIXES/5.1/bug22027_create_select_exists
sql/sql_show.cc:
Auto merged
mysql-test/r/binlog_row_mix_innodb_myisam.result:
SCCS merged
into neptunus.(none):/home/msvensson/mysql/mysql-5.1-new-maint
BitKeeper/deleted/.del-ps_6bdb.result:
Auto merged
mysql-test/include/have_multi_ndb.inc:
Auto merged
mysql-test/include/have_ndb.inc:
Auto merged
mysql-test/r/log_tables.result:
Auto merged
mysql-test/r/partition.result:
Auto merged
mysql-test/r/ps_2myisam.result:
Auto merged
mysql-test/r/ps_3innodb.result:
Auto merged
mysql-test/r/ps_4heap.result:
Auto merged
mysql-test/r/ps_5merge.result:
Auto merged
mysql-test/r/ps_7ndb.result:
Auto merged
mysql-test/r/query_cache.result:
Auto merged
mysql-test/r/subselect.result:
Auto merged
mysql-test/t/crash_commit_before.test:
Auto merged
mysql-test/t/ps.test:
Auto merged
mysql-test/t/sp.test:
Auto merged
mysql-test/t/subselect.test:
Auto merged
BitKeeper/deleted/.del-mtr_im.pl:
Delete: mysql-test/lib/mtr_im.pl
client/mysqltest.c:
Use remote
mysql-test/mysql-test-run.pl:
Use remote
mysql-test/lib/mtr_process.pl:
Use remote
Remove extra space for "send" commands
mysql-test/extra/rpl_tests/rpl_truncate_helper.test:
Get $SERVER_VERSION from the mysqld
mysql-test/r/flush_table.result:
Remove extra space for "send" commands
mysql-test/r/handler_innodb.result:
Remove extra space for "send" commands
mysql-test/r/lock_multi.result:
Remove extra space for "send" commands
mysql-test/r/log_tables.result:
Remove extra space for "send" commands
into neptunus.(none):/home/msvensson/mysql/same_tools/my51-same_tools
BitKeeper/deleted/.del-mtr_stress.pl:
Auto merged
BitKeeper/deleted/.del-ps_6bdb.result:
Auto merged
BitKeeper/deleted/.del-rpl000018.result:
Auto merged
BitKeeper/deleted/.del-rpl000018.test:
Auto merged
BitKeeper/deleted/.del-rpl_chain_temp_table.result:
Auto merged
BitKeeper/deleted/.del-rpl_chain_temp_table.test:
Auto merged
BitKeeper/deleted/.del-rpl_failsafe.result:
Auto merged
BitKeeper/deleted/.del-rpl_failsafe.test:
Auto merged
BitKeeper/deleted/.del-rpl_heap.result:
Auto merged
BitKeeper/deleted/.del-rpl_heap.test:
Auto merged
mysql-test/include/have_ndb.inc:
Auto merged
mysql-test/include/master-slave.inc:
Auto merged
mysql-test/lib/mtr_misc.pl:
Auto merged
mysql-test/lib/mtr_report.pl:
Auto merged
mysql-test/r/binlog_stm_mix_innodb_myisam.result:
Auto merged
mysql-test/r/connect.result:
Auto merged
mysql-test/r/csv.result:
Auto merged
mysql-test/r/drop.result:
Auto merged
mysql-test/r/flush_block_commit.result:
Auto merged
mysql-test/r/func_misc.result:
Auto merged
mysql-test/r/grant2.result:
Auto merged
mysql-test/r/handler_myisam.result:
Auto merged
mysql-test/r/multi_update.result:
Auto merged
mysql-test/r/ps_2myisam.result:
Auto merged
mysql-test/r/ps_3innodb.result:
Auto merged
mysql-test/r/ps_4heap.result:
Auto merged
mysql-test/r/ps_5merge.result:
Auto merged
mysql-test/r/ps_7ndb.result:
Auto merged
mysql-test/r/query_cache.result:
Auto merged
mysql-test/r/query_cache_notembedded.result:
Auto merged
mysql-test/r/rpl_err_ignoredtable.result:
Auto merged
mysql-test/r/rpl_master_pos_wait.result:
Auto merged
mysql-test/r/rpl_stm_000001.result:
Auto merged
mysql-test/r/sp-threads.result:
Auto merged
mysql-test/r/sp_notembedded.result:
Auto merged
mysql-test/r/subselect.result:
Auto merged
mysql-test/r/synchronization.result:
Auto merged
mysql-test/r/type_blob.result:
Auto merged
mysql-test/t/connect.test:
Auto merged
mysql-test/t/csv.test:
Auto merged
mysql-test/t/mysql_client_test.test:
Auto merged
mysql-test/t/ps.test:
Auto merged
mysql-test/t/ps_1general.test:
Auto merged
mysql-test/t/ps_grant.test:
Auto merged
mysql-test/t/query_cache.test:
Auto merged
mysql-test/t/rpl_trunc_temp.test:
Auto merged
mysql-test/t/sp-error.test:
Auto merged
mysql-test/t/sp_notembedded.test:
Auto merged
mysql-test/t/subselect.test:
Auto merged
mysql-test/t/view_grant.test:
Auto merged
mysql-test/extra/rpl_tests/rpl_flsh_tbls.test:
SCCS merged
into neptunus.(none):/home/msvensson/mysql/mysql-5.1-new-maint
sql/item_func.cc:
Auto merged
sql/log.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_select.cc:
Auto merged
into neptunus.(none):/home/msvensson/mysql/mysql-5.1-new-maint
client/mysql.cc:
Auto merged
include/m_ctype.h:
Auto merged
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/r/ps.result:
Auto merged
mysql-test/r/strict.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/r/warnings.result:
Auto merged
mysql-test/t/ctype_utf8.test:
Auto merged
sql/field.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
mysql-test/extra/rpl_tests/rpl_insert_id.test:
Enhance test for bug#21726 to cover statement-based replication of
function calls.
sql/sql_class.cc:
Fix typo and whitespace.
Adding test case.
mysql-test/extra/rpl_tests/rpl_row_basic.test:
Rename: mysql-test/include/rpl_row_basic.inc -> mysql-test/extra/rpl_tests/rpl_row_basic.test
mysql-test/r/rpl_row_basic_11bugs.result:
Result change
mysql-test/t/rpl_row_basic_11bugs.test:
Adding test case for bug.
mysql-test/t/rpl_row_basic_2myisam.test:
Moving test include file to extra/rpl_tests
mysql-test/t/rpl_row_basic_3innodb.test:
Moving test include file to extra/rpl_tests
mysql-test/t/rpl_row_basic_7ndb.test:
Moving test include file to extra/rpl_tests
mysql-test/extra/rpl_tests/rpl_insert_id.test:
Add test case for bug#21726: Incorrect result with multiple invocations
of LAST_INSERT_ID, and 5.0 version of test case for bug#20339: stored
procedure using LAST_INSERT_ID() does not replicate statement-based.
mysql-test/r/rpl_insert_id.result:
Update result.
and #22762: create talbe if not exists like a-temp-table binlogged w/o "if not exists"
These are rbr bugs.
store_create_info, which generates the create statement e.g for binlogging,
did not account a lex option HA_LEX_CREATE_IF_NOT_EXISTS.
The fix makes the generated query to include the parent's statement option
if
that was supplied.
mysql-test/extra/binlog_tests/binlog.test:
test cases for #22027, #22762
mysql-test/r/binlog_row_binlog.result:
results changed
mysql-test/r/binlog_row_mix_innodb_myisam.result:
results changed because of the test's query has "if not exists"
mysql-test/r/binlog_stm_binlog.result:
results changed
sql/sql_show.cc:
store_create_info inserts "if not exists" into output when an input query contains
the qualifier.
SHOW BINLOG event. The latter should be either fixed or replaced to favor
reading from binlog as the check.
mysql-test/extra/binlog_tests/binlog_insert_delayed.test:
interminism of binlogging of multi-row insert delayed forced to relocate the show
mysql-test/r/binlog_row_binlog.result:
new results
ChangeSet@1.2309.1.12, 2006-09-12 15:42:13+02:00, guilhem@gbichot3.local +14 -0
Fixing problems I identified in my auto_increment work pushed in July
(as part of the auto_increment cleanup of WL #3146; ...
The problem is in that show binlog events in indeterministic, row events can be compressed,
so that 2 seconds original delay does not guard from inconsistency.
We syncronize test's current inserted rows counter with system insert delayed thread
per each query.
From another side there is no requirement for binlog to be event per row and then
to verify if binlog has recorded what was recently inserted is better
via reading from it instead of 'show binlog events'.
mysql-test/extra/binlog_tests/binlog_insert_delayed.test:
removing sleeps, syncronizing with system delayed thread per each statement,
note that an insert statement is performed atomically including writing to binlog,
so that concurrent selects are waiting. That's why the wait macro is safe.
mysql-test/r/binlog_row_binlog.result:
new result
mysql-test/include/wait_until_rows_count.inc:
macro implements waiting until a targeted table has a prescribed rows number.
into romeo.(none):/home/bk/w3259-mysql-5.1-new-rpl
mysql-test/r/rpl_row_tabledefs_2myisam.result:
Auto merged
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
mysql-test/t/disabled.def:
SCCS merged
Incorporating changes from review.
Fixing one bug that surfaced.
mysql-test/extra/rpl_tests/rpl_row_tabledefs.test:
Adding tests that UPDATE and DELETE does not generate an error.
mysql-test/r/rpl_row_tabledefs_2myisam.result:
Result change.
mysql-test/r/rpl_row_tabledefs_3innodb.result:
Result change.
mysql-test/t/disabled.def:
Enabling rpl_sp_effects (even though it gives a result mismatch currently).
sql/field.cc:
Using constant to denote undefined last null byte.
sql/field.h:
Using constant to denote undefined last null byte.
Adding documentation.
sql/log_event.cc:
Not generating error for non-NULL no-DEFAULT columns when updating or deleting row.
Better documentation and comments.
sql/rpl_utility.cc:
Moving documentation to header file.
sql/rpl_utility.h:
Documenting class and members.
(as part of the auto_increment cleanup of WL#3146; let's not be
sad, that monster push still removed serious bugs):
one problem with INSERT DELAYED (unexpected interval releases),
one with stored functions (wrong auto_inc binlogging).
These bugs were not released.
mysql-test/extra/binlog_tests/binlog_insert_delayed.test:
more tests of binlogging of INSERT DELAYED: with multi-row INSERTs.
I identified why sleeps are needed to get a repeatable row-based
binlogged: because without sleeps rows sometimes get groupped
and so generate different row based events.
mysql-test/extra/rpl_tests/rpl_foreign_key.test:
don't forget to drop tables on slave too, otherwise it leaves
an orphan innodb table leading to rpl_insert_id failing sometimes
(like in pushbuild "sapsrv2 -max").
mysql-test/extra/rpl_tests/rpl_insert_id.test:
testing that if some statement does not update any row, it does
not pollute the auto_inc binlog variables of the next statement;
the test has to use stored procedures because with plain statements,
mysql_reset_thd_for_next_command() does the resetting (and thus
there is no problem); mysql_reset_thd_for_next_command() is not
called inside routines.
mysql-test/r/binlog_row_binlog.result:
result additions
mysql-test/r/binlog_statement_insert_delayed.result:
result additions
mysql-test/r/binlog_stm_binlog.result:
result additions
mysql-test/r/rpl_insert_id.result:
result additions
mysql-test/r/rpl_loaddata.result:
With the change to log.cc reverted, the result changes and is better:
the change to log.cc had caused some INSERT_ID events to disappear
though they were necessary (but testsuite could not catch that because
it's single-threaded).
mysql-test/r/rpl_ndb_insert_ignore.result:
NDB is now like other engines regarding INSERT IGNORE: autoincrement
values which caused a duplicate key are re-used for next row, not lost.
rpl_ndb_insert_ignore.result is now identical to rpl_insert_ignore.result.
sql/log.cc:
LOAD DATA INFILE is binlogged as several events, and the last of them must
have the auto_inc id. So it's wrong to reset the auto_inc id after every
binlog write (because then it's lost after the first event of LOAD
DATA INFILE and so missing for the last one)/
Another problem: MYSQL_LOG::write() is not always called (for example
if no row was updated), so we were missing reset in some cases.
sql/sp_head.cc:
SELECT func1(),func2() generates two binlog events, so needs to
clear auto_increment binlog variables after each binlog event
(it would be more natural to clear them in the log write code,
but LOAD DATA INFILE would suffer from this see the cset comment
for log.cc). Without the clearing, the problem is:
> exec func1()
>> call cleanup_after_query() (which does not clear our vars here)
>> binlog SELECT func1()
<
> exec func2()
and so SELECT func2() is binlogged with the auto_inc of SELECT func1().
sql/sql_class.cc:
after every statement we should clear auto_inc variables used for
binlogging, except if this was a function/trigger (in which case
it may be "INSERT SELECT func()", where the cleanup_after_query()
executed in func() should not reset the auto_inc binlog variables
as they'll be necessary when binlogging the INSERT SELECT later).
sql/sql_insert.cc:
- as INSERT DELAYED uses the same TABLE object as the delayed_insert
system thread, we should not call ha_release_auto_increment()
from INSERT DELAYED (and btw it's logical as we reserve nothing
as we don't perform the insert). Calling the function caused us to
release values being used by the delayed_insert thread.
So I do the call only if this is a non-DELAYED INSERT.
- Assuming two INSERT DELAYED which get grouped by the delayed_insert
thread, the second may use values reserved by the first, which is ok
per se, but is a problem in statement-based binlogging:
the 2nd INSERT gets binlogged with the "interval start" value
of the first INSERT (=> duplicate error in slave).
- no reason to ha_release_auto_increment() after every inserted row
in INSERT SELECT; more efficient to do it only when the statement ends
sql/sql_parse.cc:
a comment
into mysql.com:/users/lthalmann/bk/MERGE/mysql-5.1-merge
BitKeeper/deleted/.del-rpl_heap.test:
Auto merged
Makefile.am:
Auto merged
mysql-test/extra/binlog_tests/binlog.test:
Auto merged
mysql-test/r/binlog_stm_binlog.result:
Auto merged
mysql-test/r/rpl_switch_stm_row_mixed.result:
Auto merged
mysql-test/t/date_formats.test:
Auto merged
mysql-test/t/mysqlbinlog.test:
Auto merged
mysql-test/t/rpl_trigger.test:
Auto merged
sql/CMakeLists.txt:
Auto merged
sql/Makefile.am:
Auto merged
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/log.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
storage/innobase/handler/ha_innodb.cc:
Auto merged
unittest/README.txt:
Auto merged
unittest/unit.pl:
Auto merged
mysql-test/t/disabled.def:
Merge (main -> rpl 5.1)
The following is an excerption from the WL.
1. Change so that MIXED is default format
1.1 to change the default for command line --binlog-format
1.2 to alter global_system_variables.binlog_format calculation
basing on command line --binlog-format parameter and
its default.
2. Change test suite so that more testing is done by MIXED format.
2.1 to check if there are test cases requiring --binlog-foramt=statement via
`source include/have_binlog_format_statement.inc' and affected by
altering the latter to be "mixed".
2.2 to check the content of such vulnerable cases to find if
extending to the mixed does not modify results. In that case simply
substitute source arguments as explained.
2.3 if a test in mixed mode deals with features triggering
row-binlogging then if necessary we can switch explicitly
to statement mode or create another test to run with
non-recommended STATEMENT mode
Particullarily, extracting INSERT DELAYED
binlogging subtest for statement mode is performed, and
the snippet is moved into a separate test file.
Note that since now all three modes verify this use case
through 3 different tests.
No changes in item 3 of HLD appeared to be needed.
mysql-test/extra/binlog_tests/binlog.test:
Moving INSERT DELAYED verification section into separate file. The latter is sourced
from two different files: the current one and a newly created for STATEMENT
mode check.
mysql-test/extra/rpl_tests/rpl_loaddata.test:
require mixed_or_statement
mysql-test/extra/rpl_tests/rpl_stm_000001.test:
require mixed_or_statement
mysql-test/extra/rpl_tests/rpl_stm_charset.test:
require mixed_or_statement
mysql-test/r/binlog_stm_binlog.result:
new result to correspond to MIXED mode.
mysql-test/r/rpl_rbr_to_sbr.result:
result changed
mysql-test/t/archive.test:
require mixed_or_statement
mysql-test/t/binlog_stm_binlog.test:
require exclusive mixed format because of INSERT DELAYED.
mysql-test/t/binlog_stm_blackhole.test:
require mixed_or_statement
mysql-test/t/binlog_stm_ctype_cp932.test:
require mixed_or_statement
mysql-test/t/binlog_stm_ctype_ucs.test:
require mixed_or_statement
mysql-test/t/binlog_stm_drop_tmp_tbl.test:
require mixed_or_statement
mysql-test/t/binlog_stm_innodb_stat.test:
require mixed_or_statement
mysql-test/t/binlog_stm_insert_select.test:
require mixed_or_statement
mysql-test/t/binlog_stm_mix_innodb_myisam.test:
require mixed_or_statement
mysql-test/t/create_select_tmp.test:
require mixed_or_statement
mysql-test/t/ctype_cp932_binlog_stm.test:
require mixed_or_statement
mysql-test/t/date_formats.test:
MIXED case appended to the replace instruction
mysql-test/t/mysqlbinlog.test:
require mixed_or_statement
mysql-test/t/mysqlbinlog2.test:
require mixed_or_statement
mysql-test/t/ndb_multi.test:
require mixed_or_statement
mysql-test/t/rpl000013.test:
require mixed_or_statement
mysql-test/t/rpl_heap.test:
require mixed_or_statement
mysql-test/t/rpl_loaddata_s.test:
require mixed_or_statement
mysql-test/t/rpl_mixed_ddl_dml.test:
require mixed_or_statement
mysql-test/t/rpl_rbr_to_sbr.test:
Rather meaningless line is discarded.
The test does not loose anything without it and without considering the WL.
mysql-test/t/rpl_rewrt_db.test:
require mixed_or_statement
mysql-test/t/rpl_rotate_logs.test:
require mixed_or_statement
mysql-test/t/rpl_stm_EE_err2.test:
require mixed_or_statement
mysql-test/t/rpl_stm_flsh_tbls.test:
require mixed_or_statement
mysql-test/t/rpl_stm_log.test:
require mixed_or_statement
mysql-test/t/rpl_stm_max_relay_size.test:
require mixed_or_statement
mysql-test/t/rpl_stm_multi_query.test:
require mixed_or_statement
mysql-test/t/rpl_stm_mystery22.test:
require mixed_or_statement
mysql-test/t/rpl_stm_no_op.test:
require mixed_or_statement
mysql-test/t/rpl_stm_reset_slave.test:
require mixed_or_statement
mysql-test/t/rpl_stm_until.test:
require mixed_or_statement
mysql-test/t/rpl_temp_table.test:
require mixed_or_statement
mysql-test/t/rpl_trigger.test:
require mixed_or_statement
mysql-test/t/rpl_trunc_temp.test:
require mixed_or_statement
mysql-test/t/user_var-binlog.test:
require mixed_or_statement
sql/mysqld.cc:
Implementation of making BINLOG_FORMAT_MIXED to be the default of
global_system_variables.binlog_format. Not in the case of embedded.
mysql-test/extra/binlog_tests/binlog_insert_delayed.test:
Snippend sourced from two tests to verify INSERT DELAYED in all three binlog formats.
mysql-test/include/have_binlog_format_mixed.inc:
Part of exclusive MIXED format requirement
mysql-test/include/have_binlog_format_mixed_or_statement.inc:
requirement to have mixed or statement. Most of the tests with STATEMENT format indeed
are tolerant to MIXED format to yield the same result files. There are few exception
because of features triggering RBR events when MIXED format.
mysql-test/r/binlog_statement_insert_delayed.result:
BitKeeper file /home/elkin/MySQL/TEAM/FIXES/5.1/wl3368_mixed_default/mysql-test/r/binlog_statement_insert_delayed.result
mysql-test/r/have_binlog_format_mixed.require:
Exclusive MIXED format
mysql-test/t/binlog_statement_insert_delayed.test:
BitKeeper file /home/elkin/MySQL/TEAM/FIXES/5.1/wl3368_mixed_default/mysql-test/t/binlog_statement_insert_delayed.test
Add order by in rpl_(ndb)_multi_update3 to make result deterministic
mysql-test/extra/rpl_tests/rpl_multi_update3.test:
Add order by in rpl_(ndb)_multi_update3 to make result deterministic
mysql-test/r/rpl_multi_update3.result:
Add order by in rpl_(ndb)_multi_update3 to make result deterministic
mysql-test/r/rpl_ndb_multi_update3.result:
Add order by in rpl_(ndb)_multi_update3 to make result deterministic
into romeo.(none):/home/bk/w3259-mysql-5.1-new-rpl
sql/field.h:
Auto merged
sql/log_event.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/Makefile.am:
Merge patch for worklog 3259 into mysql-5.1-rpl
sql/field.cc:
Merge patch for worklog 3259 into mysql-5.1-rpl
sql/log_event.cc:
Merge patch for worklog 3259 into mysql-5.1-rpl
into siva.hindu.god:/usr/home/tim/m/bk/merge-51
(which is mysql-5.1-new-maint team tree)
include/my_base.h:
Auto merged
mysql-test/extra/rpl_tests/rpl_loaddata.test:
Auto merged
mysql-test/lib/mtr_cases.pl:
Auto merged
mysql-test/r/rpl_loaddata.result:
Auto merged
mysql-test/r/sp-security.result:
Auto merged
mysql-test/t/sp-security.test:
Auto merged
mysql-test/lib/mtr_report.pl:
merge of mysql-5.1 -> mysql-5.1-new-maint
mysql-test/mysql-test-run.pl:
merge of mysql-5.1 -> mysql-5.1-new-maint
We now reset the THD members related to auto_increment+binlog in
MYSQL_LOG::write(). This is better than in THD::cleanup_after_query(),
which was not able to distinguish between SELECT myfunc1(),myfunc2()
and INSERT INTO t SELECT myfunc1(),myfunc2() from a binlogging point
of view.
Rows_log_event::exec_event() now calls lex_start() instead of
mysql_init_query() because the latter now does too much (it resets
the binlog format).
mysql-test/extra/rpl_tests/rpl_insert_id.test:
fix after merge
mysql-test/mysql-test-run.pl:
-v does not bring useful information when running valgrind; I remove it;
if you think it's useful add it back.
mysql-test/r/binlog_stm_mix_innodb_myisam.result:
Position columns of SHOW BINLOG EVENTS are replaced by # (more robust
if the size of an event changes).
mysql-test/r/rpl_insert_id.result:
fix after merge
mysql-test/r/rpl_loaddata.result:
The binlog positions change, because one event disappeared; indeed there
was this in the binlog (in the current 5.1!):
SET INSERT_ID=2;
SET INSERT_ID=1;
SET TIMESTAMP=1152540671;
load data LOCAL INFILE '/tmp/SQL_LOAD_MB-1-2' INTO table t1;
Two INSERT_ID events, useless and a bug. Goes away afer cleaning up
auto_increment handling.
mysql-test/r/rpl_switch_stm_row_mixed.result:
INSERT_ID=5 appears, it's a consequence of having merged the fix
for BUG#20341
"stored function inserting into one auto_increment puts bad data in slave".
In mixed mode, if one substatement of a stored procedure requires row-based,
the entire procedure uses row-based (was already true for stored functions);
this is a consequence of not doing the resetting of binlog format inside
lock_tables() (which didn't work with how the slave thread executes
row-based binlog events).
mysql-test/t/rpl_switch_stm_row_mixed.test:
removing the multi-row delayed insert because in RBR the number of events
which it generates, is not repeatable (probably depends on how the delayed
thread groups rows, i.e. dependent on timing).
sql/ha_partition.cc:
update to new prototype
sql/ha_partition.h:
update to new prototype of the handler:: method.
sql/handler.cc:
after-merge fixes (manually merging part which was hard to merge in fmtool)
sql/log.cc:
When we write to the binary log, THD's parameters which influenced this
write are reset: stmt_depends_on_first_successful_insert_id_in_prev_stmt
and auto_inc_intervals_in_cur_stmt_for_binlog. This is so that future
writes are not influenced by those and can write their own values.
As a consequence, when we don't write to the binlog we do not reset.
This is to abide by the rule that in a complex statement (using triggers etc),
the first top- or substatement to generate auto_increment ids
wins their writing to the binlog (that writing may be done by the statement
itself or by the caller); so for example for
INSERT INTO t SELECT myfunc() where myfunc() inserts into auto_increment
and INSERT INTO t does not, myfunc() will fill
auto_inc_intervals_in_cur_stmt_for_binlog, which will not be reset when
myfunc() ends, then INSERT INTO t will write to the binlog and thus
write the preserved auto_inc_intervals_in_cur_stmt_for_binlog.
sql/log_event.cc:
mysql_init_query() does too much now to be called in Rows_log_event::exec_event
(it call mysql_reset_thd_for_next_command() which may switch
the binlog format now).
It's ok to call it in Table_map_log_event::exec_event() but its call must
be before setting the binlog format to "row".
sql/sql_base.cc:
Resetting the binlog format in lock_tables() was a bad idea of mine;
it causes problems in execution of row-based binlog events, where
the thread sets the binlog format by itself and does not want a next
lock_tables() to reset the binlog format.
It is also misleading, for a function named lock_tables(), to reset
the binlog format.
As a consequence of this change, in mixed binlogging mode, a routine
is logged either entirely statement-based or entirely row-based, we
don't switch in the middle (this was already true for prelocked routines,
now it's also true for stored procedures).
sql/sql_class.cc:
resetting of auto_increment variables used for binlogging is now done
when writing to the binary log, no need to do the resetting at the end
of the statement. It is also more correct this way; consider
SELECT myfunc1(),myfunc2();
where both functions insert into the same auto_increment column.
Binlogging is done in 2 events: "SELECT myfunc1()" and "SELECT myfunc2()".
So each of those needs to have, in binlog, the INSERT_ID which
it inserted. But as the 2 function calls are executed under prelocked mode,
the old code didn't reset auto_inc_intervals_in_cur_stmt_for_binlog
after the first SELECT was binlogged, and so the INSERT_ID of the first
SELECT was binlogged for the first SELECT and (wrong) also for the 2nd
SELECT event.
stmt_depends_on_first_... has the same logic.
sql/sql_class.h:
clearer comment
sql/sql_delete.cc:
unneeded #ifdef. As we temporarily change the binlog format to "statement"
before calling mysql_delete(), we must restore it afterwards.
sql/sql_insert.cc:
after-merge fixes.
No need to reset auto_inc_intervals_in_cur_stmt_for_binlog for every
row in the delayed insert system thread, because we already reset it
when writing to the binlog.
sql/sql_parse.cc:
unneeded #ifdef
into gbichot3.local:/home/mysql_src/mysql-5.1
sql/ha_federated.cc:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/handler.h:
Auto merged
sql/log_event.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/handler.cc:
will fix by hand
mysql-test/extra/rpl_tests/rpl_insert_id.test:
merge
mysql-test/r/rpl_insert_id.result:
merge
sql/sql_insert.cc:
merge
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
As in other tests, we should replace both position columns of SHOW BINLOG
EVENTS; otherwise a small change (like here, the fact that CREATE TEMPORARY
TABLE is not binlogged in RBR as a consequence of the bugfix for BUG#20522)
causes a large diff in the result file.
mysql-test/r/binlog_row_mix_innodb_myisam.result:
result update: positions in SHOW BINLOG EVENTS become #, and
the CREATE TEMPORARY TABLE disappear from binlog (consequence of fix for
BUG#20522 "RBR: CREATE TEMPORARY TABLE SELECT writes to binlog though
unneeded").
were copied/split between 5.0 and 5.1).
mysql-test/extra/rpl_tests/rpl_auto_increment.test:
manual merge of test from 5.0
mysql-test/extra/rpl_tests/rpl_insert_id.test:
manuel merge of test from 5.0
mysql-test/r/rpl_auto_increment.result:
error messages changed compared to 5.0
this is a cleanup patch for our current auto_increment handling:
new names for auto_increment variables in THD, new methods to manipulate them
(see sql_class.h), some move into handler::, causing less backup/restore
work when executing substatements.
This makes the logic hopefully clearer, less work is is needed in
mysql_insert().
By cleaning up, using different variables for different purposes (instead
of one for 3 things...), we fix those bugs, which someone may want to fix
in 5.0 too:
BUG#20339 "stored procedure using LAST_INSERT_ID() does not replicate
statement-based"
BUG#20341 "stored function inserting into one auto_increment puts bad
data in slave"
BUG#19243 "wrong LAST_INSERT_ID() after ON DUPLICATE KEY UPDATE"
(now if a row is updated, LAST_INSERT_ID() will return its id)
and re-fixes:
BUG#6880 "LAST_INSERT_ID() value changes during multi-row INSERT"
(already fixed differently by Ramil in 4.1)
Test of documented behaviour of mysql_insert_id() (there was no test).
The behaviour changes introduced are:
- LAST_INSERT_ID() now returns "the first autogenerated auto_increment value
successfully inserted", instead of "the first autogenerated auto_increment
value if any row was successfully inserted", see auto_increment.test.
Same for mysql_insert_id(), see mysql_client_test.c.
- LAST_INSERT_ID() returns the id of the updated row if ON DUPLICATE KEY
UPDATE, see auto_increment.test. Same for mysql_insert_id(), see
mysql_client_test.c.
- LAST_INSERT_ID() does not change if no autogenerated value was successfully
inserted (it used to then be 0), see auto_increment.test.
- if in INSERT SELECT no autogenerated value was successfully inserted,
mysql_insert_id() now returns the id of the last inserted row (it already
did this for INSERT VALUES), see mysql_client_test.c.
- if INSERT SELECT uses LAST_INSERT_ID(X), mysql_insert_id() now returns X
(it already did this for INSERT VALUES), see mysql_client_test.c.
- NDB now behaves like other engines wrt SET INSERT_ID: with INSERT IGNORE,
the id passed in SET INSERT_ID is re-used until a row succeeds; SET INSERT_ID
influences not only the first row now.
Additionally, when unlocking a table we check that the thread is not keeping
a next_insert_id (as the table is unlocked that id is potentially out-of-date);
forgetting about this next_insert_id is done in a new
handler::ha_release_auto_increment().
Finally we prepare for engines capable of reserving finite-length intervals
of auto_increment values: we store such intervals in THD. The next step
(to be done by the replication team in 5.1) is to read those intervals from
THD and actually store them in the statement-based binary log. NDB
will be a good engine to test that.
mysql-test/extra/binlog_tests/binlog.test:
Testing that if INSERT_ID is set to a value too big for the
column's type, the binlogged INSERT_ID is the truncated value
(important if slave has a column of a "wider" numeric type).
Testing binlogging of INSERT_ID with INSERT DELAYED, to be sure that
we binlog an INSERT_ID event only for the delayed rows which use one.
mysql-test/extra/rpl_tests/rpl_insert_id.test:
Testcase for BUG#20339 "stored procedure using
LAST_INSERT_ID() does not replicate statement-based".
Testcase for BUG#20341 "stored function inserting into one
auto_increment puts bad data in slave".
mysql-test/extra/rpl_tests/rpl_loaddata.test:
Test that LOAD DATA INFILE sets a value for a future LAST_INSERT_ID().
mysql-test/r/auto_increment.result:
behaviour change: when INSERT totally fails (not even succeeds
partially and then rolls back), don't change last_insert_id().
Behaviour change: LAST_INSERT_ID() is now the first successfully inserted,
autogenerated, id.
Behaviour change: if INSERT ON DUPLICATE KEY UPDATE, if the table has auto_increment
and a row is updated, then LAST_INSERT_ID() returns the id of this row.
mysql-test/r/binlog_row_binlog.result:
result update
mysql-test/r/binlog_stm_binlog.result:
result update
mysql-test/r/insert.result:
result update
mysql-test/r/rpl_insert_id.result:
result update
mysql-test/r/rpl_loaddata.result:
result update
mysql-test/r/rpl_ndb_auto_inc.result:
ndb's behaviour is now like other engines wrt SET INSERT_ID
in a multi-row INSERT:
- with INSERT IGNORE: the id passed in SET INSERT_ID is re-used until
a row succeeds.
- generally, SET INSERT_ID sets the first value and other values are
simply computed from this first value, instead of previously where
the 2nd and subsequent values where not influenced by SET INSERT_ID;
this good change is due to the removal of "thd->next_insert_id=0"
from ha_ndbcluster.
mysql-test/t/auto_increment.test:
A testcase of BUG#19243: if ON DUPLICATE KEY UPDATE updates a row,
LAST_INSERT_ID() now returns the id of the row.
Test of new behaviour of last_insert_id() when no autogenerated value was
inserted, or when only some autogenerated value (not the first of them) was
inserted.
mysql-test/t/insert.test:
testing INSERT IGNORE re-using generated values
sql/ha_federated.cc:
update for new variables.
sql/ha_ndbcluster.cc:
handler::auto_increment_column_changed not needed, equivalent to
(insert_id_for_cur_row > 0).
thd->next_insert_id=0 not needed anymore; it was used to force
handler::update_auto_increment() to call ha_ndbcluster::get_auto_increment()
for each row of a multi-row INSERT, now this happens naturally
because NDB says "I have reserved you *one* value" in get_auto_increment(),
so handler::update_auto_increment() calls again for next row.
sql/handler.cc:
More comments, use of new methods and variables. Hopes to be clearer
than current code.
thd->prev_insert_id not in THD anymore: it is managed locally by inserters
(like mysql_insert()).
THD::clear_next_insert_id is now equivalent to
handler::next_insert_id > 0.
get_auto_increment() reserves an interval of values from the engine,
uses this interval for next rows of the statement, until interval
is exhausted then it asks for another interval (of a bigger size
than the first one; size doubles until reaching 65535 then it stays constant).
If doing statement-based binlogging, intervals are remembered in a list
for storage in the binlog.
For "forced" insert_id values (SET INSERT_ID or replication slave),
forced_auto_inc_intervals is non-empty and the handler takes its intervals
from there, without calling get_auto_increment().
ha_release_auto_increment() resets the handler's auto_increment variables;
it calls release_auto_increment() which is handler-dependent and
serves to return to the engine any unused tail of the last used
interval.
If ending a statement, next_insert_id>0 means that autoinc values have been
generated or taken from the master's binlog (in a replication slave) so
we clear those values read from binlog, so that next top- or sub-
statement does not use them.
sql/handler.h:
handler::auto_increment_changed can be replaced by
(handler::insert_id_for_cur_row > 0).
THD::next_insert_id moves into handler (more natural, and prepares
for the day when we'll support a single statement inserting into
two tables - "multi-table INSERT" like we have UPDATE - will this
happen?).
This move makes the backup/restore of THD::next_insert_id when entering
a substatement unneeded, as each substatement has its own handler
objects.
sql/item_func.cc:
new names for variables.
For the setting of what mysql_insert_id() will return to the client,
LAST_INSERT_ID(X) used to simply pretend that the generated autoinc
value for the current row was X, but this led to having no reliable
way to know the really generated value, so we now have a bool:
thd->arg_of_last_insert_id_function which enables us to know that
LAST_INSERT_ID(X) was called (and then X can be found in
thd->first_successful_insert_id_in_prev_stmt).
sql/log.cc:
new variable names for insert_ids. Removing some unused variables in the slow
log.
sql/log_event.cc:
new variable names, comments. Preparing for when master's won't binlog
LAST_INSERT_ID if it was 0.
sql/set_var.cc:
new variable names.
The last change repeats how Bar fixed BUG#20392
"INSERT_ID session variable has weird value" in 5.0.
sql/sql_class.cc:
new variables for insert_id. In THD::cleanup_after_query() we fix
BUG#20339 "stored procedure using LAST_INSERT_ID() does not replicate
statement-based" (will one want to fix it in 5.0?). Many comments
about what stored functions do to auto_increment.
In reset|restore_sub_statement_state(), we need to backup less
auto_inc variables as some of them have moved to the handler;
we backup/restore those which are about the current top- or sub-
statement, *not* those about the statement-based binlog
(which evolve as the top- and sub-statement execute).
Because we split THD::last_insert_id into
THD::first_successful_insert_id_in_prev_stmt and
THD::auto_inc_intervals_for_binlog (among others), we fix
BUG#20341 "stored function inserting into one auto_increment
puts bad data in slave": indeed we can afford to not backup/restore
THD::auto_inc_intervals_for_binlog (which fixes the bug) while still
backing up / restoring THD::first_successful_insert_id_in_prev_stmt
(ensuring that the top-level LAST_INSERT_ID() is not affected by INSERTs
done by sub-statements, as is desirable and tested in rpl_insert_id.test).
sql/sql_class.h:
new variables and methods for auto_increment.
Some THD members move into handler (those which are really about
the table being inserted), some stay in THD (those which are
about what a future LAST_INSERT_ID() should return, or about
what should be stored into the statement-based binlog).
THD::next_insert_id moves to handler::.
THD::clear_next_insert_id removed (had become equivalent
to next_insert_id > 0).
THD::last_insert_id becomes four:
THD::first_successful_insert_id_in_cur_stmt,
THD::auto_inc_intervals_for_binlog,
handler::insert_id_for_cur_row,
THD::first_successful_insert_id_in_prev_stmt.
THD::current_insert_id becomes:
THD::first_successful_insert_id_in_prev_stmt_for_binlog
THD::prev_insert_id is removed, handler can just use
handler::insert_id_for_cur_row instead (which is more accurate:
for the first row, prev_insert_id was set before get_auto_increment
was called, so was 0, causing a call to
get_auto_increment() for the 2nd row if the 1st row fails;
here we don't need the call as insert_id_for_cur_row has
the value of the first row).
THD::last_insert_id_used becomes: stmt_depends_on_first_row_in_prev_stmt
THD::insert_id_used is removed (equivalent to
auto_inc_intervals_for_binlog non empty).
The interval returned by get_auto_increment() and currently being
consumed is handler::auto_inc_interval_for_cur_row.
Comments to explain each of them.
select_insert::last_insert_id becomes autoinc_value_of_last_inserted_row.
sql/sql_insert.cc:
the "id" variable is not changed for each row now; it used to compensate for
this contradiction:
- thd->last_insert_id supposed job was to keep the id of the first row
- but it was updated for every row
- so mysql_insert() made sure to catch its first value and restore it at the end of stmt.
Now THD keeps the first value in first_successful_insert_id_in_cur_stmt,
and value of the row in insert_id_for_cur_row. So "id" only serves to fill
mysql_insert_id(), as depending on some conditions, "id" must be different
values.
Prev_insert_id moves from THD to write_record().
We now set LAST_INSERT_ID() in ON DUPLICATE KEY UPDATE too (BUG#19243).
In an INSERT DELAYED, we still "reset auto-increment caching" but differently
(by calling ha_release_auto_increment()).
sql/sql_load.cc:
no need to fiddle with "id", THD maintains
THD::first_successful_insert_id_in_cur_stmt by itself and correctly now.
ha_release_auto_increment() is now (logically) called before we unlock
the table.
sql/sql_parse.cc:
update to new variable names.
Assertion that reset_thd_for_next_command() is not called for every
substatement of a routine (I'm not against it, but if we do this change,
statement-based binlogging needs some adjustments).
sql/sql_select.cc:
update for new variable names
sql/sql_table.cc:
next_insert_id not needed in mysql_alter_table(), THD manages.
sql/sql_update.cc:
update for new variable names.
Even though this is UPDATE, an insert id can be generated (by
LAST_INSERT_ID(X)) and should be recorded because mysql_insert_id() wants
to know about it.
sql/structs.h:
A class for "discrete" intervals (intervals of integer numbers with a certain
increment between them): Discrete_interval, and a class for a list of such
intervals: Discrete_intervals_list
tests/mysql_client_test.c:
tests of behaviour of mysql_insert_id(): there were no such tests, while in
our manual we document its behaviour. In comments you'll notice the behaviour
changes introduced (there are 5).
into zippy.(none):/home/cmiller/work/mysql/merge/mysql-5.1-new-maint
BUILD/compile-dist:
Auto merged
BitKeeper/deleted/.del-partition_innodb.result:
Auto merged
BitKeeper/deleted/.del-partition_innodb.test:
Auto merged
client/mysqltest.c:
Auto merged
mysql-test/r/create.result:
Auto merged
mysql-test/r/create_not_windows.result:
Auto merged
mysql-test/r/func_group.result:
Auto merged
mysql-test/r/innodb_mysql.result:
Auto merged
mysql-test/r/partition.result:
Auto merged
mysql-test/r/sp.result:
Auto merged
mysql-test/t/innodb_mysql.test:
Auto merged
mysql-test/t/partition.test:
Auto merged
mysql-test/t/ps_1general.test:
Auto merged
mysql-test/t/sp.test:
Auto merged
mysql-test/t/wait_timeout.test:
Auto merged
mysys/my_lib.c:
Auto merged
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/unireg.cc:
Auto merged
mysql-test/extra/rpl_tests/rpl_log.test:
manuakl merge
mysql-test/lib/mtr_process.pl:
manuakl merge
mysql-test/mysql-test-run.pl:
manuakl merge
mysql-test/r/type_newdecimal.result:
manuakl merge
mysql-test/t/create.test:
manuakl merge
mysql-test/t/func_group.test:
manuakl merge
mysql-test/t/type_newdecimal.test:
manuakl merge
mysql-test/extra/rpl_tests/rpl_log.test:
Fix for bug #20601: rpl_ndb_log.test failure
- replace insignificant columns to make tests repeatable
mysql-test/r/rpl_ndb_log.result:
Fix for bug #20601: rpl_ndb_log.test failure
- result adjusted
mysql-test/r/rpl_row_log.result:
Fix for bug #20601: rpl_ndb_log.test failure
- result adjusted
mysql-test/r/rpl_row_log_innodb.result:
Fix for bug #20601: rpl_ndb_log.test failure
- result adjusted
into mysql.com:/users/lthalmann/bk/MERGE/mysql-5.1-merge
mysql-test/t/archive.test:
Auto merged
sql/log.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_table.cc:
Auto merged
mysql-test/extra/rpl_tests/rpl_truncate_helper.test:
Rename: mysql-test/extra/rpl_tests/rpl_truncate_helper.inc -> mysql-test/extra/rpl_tests/rpl_truncate_helper.test
mysql-test/extra/rpl_tests/rpl_truncate.test:
File included from test changed name.
Fixed failing test case
field.cc, item_cmpfunc.cc, select.result:
After merge fix
mysql-test/r/select.result:
After merge fix
mysql-test/r/rpl_stm_log.result:
Fixed failing test case
sql/item_cmpfunc.cc:
After merge fix
sql/field.cc:
After merge fix
mysql-test/extra/rpl_tests/rpl_log.test:
Fixed failing test case
configure.in:
Auto merged
client/mysqlbinlog.cc:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/archive.result:
Auto merged
mysql-test/r/auto_increment.result:
Auto merged
mysql-test/r/cast.result:
Auto merged
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/r/func_group.result:
Auto merged
mysql-test/r/func_str.result:
Auto merged
mysql-test/r/func_time.result:
Auto merged
mysql-test/r/multi_update.result:
Auto merged
mysql-test/r/ndb_lock.result:
Auto merged
mysql-test/r/replace.result:
Auto merged
mysql-test/r/union.result:
Auto merged
mysql-test/t/archive.test:
Auto merged
mysql-test/t/auto_increment.test:
Auto merged
mysql-test/t/delayed.test:
Auto merged
mysql-test/t/func_time.test:
Auto merged
mysql-test/t/multi_update.test:
Auto merged
mysql-test/t/ndb_lock.test:
Auto merged
mysql-test/t/select.test:
Auto merged
sql/field.cc:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/item.h:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/opt_range.cc:
Auto merged
sql/opt_sum.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_select.h:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/structs.h:
Auto merged
storage/archive/ha_archive.cc:
Auto merged
tests/mysql_client_test.c:
Auto merged
mysql-test/extra/rpl_tests/rpl_truncate_helper.inc:
Removing xid from test output
mysql-test/r/rpl_truncate_7ndb.result:
Result change.
mysql-test/t/rpl_truncate_7ndb.test:
Removing xid from test output
into mysql.com:/users/lthalmann/bk/MERGE/mysql-5.1-merge
mysql-test/r/binlog_row_mix_innodb_myisam.result:
Auto merged
mysql-test/r/federated.result:
Auto merged
mysql-test/r/innodb.result:
Auto merged
mysql-test/extra/rpl_tests/rpl_ddl.test:
Auto merged
mysql-test/r/rpl_ddl.result:
Auto merged
mysql-test/r/sp-error.result:
Auto merged
mysql-test/r/sp.result:
Auto merged
mysql-test/r/rpl_ndb_charset.result:
Auto merged
mysql-test/r/type_ranges.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/r/trigger-grant.result:
Auto merged
mysql-test/t/archive.test:
Auto merged
mysql-test/t/create.test:
Auto merged
mysql-test/t/disabled.def:
Auto merged
mysql-test/t/federated.test:
Auto merged
mysql-test/t/innodb.test:
Auto merged
mysql-test/t/innodb_mysql.test:
Auto merged
mysql-test/t/sp.test:
Auto merged
mysql-test/t/trigger-grant.test:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/log.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/set_var.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
mysql-test/r/create.result:
Manual merge
mysql-test/r/innodb_mysql.result:
Manual merge
sql/handler.cc:
Manual merge
sql/share/errmsg.txt:
Manual merge
sql/sql_class.h:
Manual merge
sql/sql_delete.cc:
Manual merge
sql/sql_insert.cc:
Manual merge
sql/sql_table.cc:
Manual merge
Fixing result files for tests.
mysql-test/extra/rpl_tests/rpl_truncate_helper.inc:
Fixing SERVER_VERSION
mysql-test/r/binlog_row_mix_innodb_myisam.result:
Result change
mysql-test/r/rpl_ddl.result:
Result change
mysql-test/r/rpl_row_basic_11bugs.result:
Result change
mysql-test/r/rpl_truncate_2myisam.result:
Result change
mysql-test/r/rpl_truncate_3innodb.result:
Result change
mysql-test/r/rpl_truncate_7ndb.result:
Result change
mysql-test/t/rpl_truncate_7ndb.test:
Fixing SERVER_VERSION
into neptunus.(none):/home/msvensson/mysql/mysql-5.1-new-maint
BUILD/compile-dist:
Auto merged
client/mysqltest.c:
Auto merged
config/ac-macros/ssl.m4:
Auto merged
include/config-win.h:
Auto merged
include/my_base.h:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/func_group.result:
Auto merged
mysql-test/r/group_min_max.result:
Auto merged
mysql-test/r/partition.result:
Auto merged
mysql-test/r/ps.result:
Auto merged
mysql-test/r/rpl_insert_id_pk.result:
Auto merged
mysql-test/r/rpl_ndb_multi_update3.result:
Auto merged
mysql-test/r/sp.result:
Auto merged
mysql-test/t/create.test:
Auto merged
mysql-test/t/join_outer.test:
Auto merged
mysql-test/t/partition.test:
Auto merged
mysql-test/t/ps.test:
Auto merged
mysql-test/r/rpl_ndb_sp006.result:
Auto merged
mysql-test/t/sp.test:
Auto merged
mysys/my_clock.c:
Auto merged
mysys/my_copy.c:
Auto merged
mysys/my_create.c:
Auto merged
mysys/my_dup.c:
Auto merged
mysys/my_lib.c:
Auto merged
mysys/my_open.c:
Auto merged
mysys/my_redel.c:
Auto merged
mysql-test/r/create.result:
Manual merge
mysql-test/r/innodb_mysql.result:
Manual merge
mysql-test/r/join_outer.result:
Manual merge
mysql-test/t/func_group.test:
Manual merge
mysql-test/t/group_min_max.test:
Manual merge
mysql-test/t/innodb_mysql.test:
Manual merge
Remove compiler warnings
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
Fixed regex to get rid of xid= in output
mysql-test/r/mysqlcheck.result:
Drop client_test_db if mysql_client_test fails
mysql-test/t/mysqlcheck.test:
Drop client_test_db if mysql_client_test fails
mysql-test/t/mysqldump.test:
Use --defaults-file instead of --defaults-extra-file to avoid reading my.cnf files
sql/event_scheduler.cc:
Remove compiler warnings
sql/ha_partition.cc:
Don't divide with 0 when checking current auto_increment value
sql/handler.cc:
After merge fix
sql/mysqld.cc:
Remove comiler warning
sql/partition_info.cc:
After merge fix
Fixed memory reference overrun for some wrong partition definitions
sql/sql_base.cc:
After merge fix
Always set *leaves in setup_tables_and_check_access() (assume argument is always given).
sql/sql_select.cc:
Simple optimization
sql/sql_show.cc:
Remove compiler warning
sql/sql_table.cc:
After merge fix
storage/csv/ha_tina.cc:
Ensure table maps are restored properly
storage/ndb/include/ndbapi/Ndb.hpp:
Remove compiler warning
into mysql.com:/home/my/mysql-5.1
BitKeeper/etc/ignore:
auto-union
include/heap.h:
Auto merged
include/my_base.h:
Auto merged
include/mysql_com.h:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/mysql-test-run.sh:
Auto merged
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
Auto merged
mysql-test/r/binlog_stm_mix_innodb_myisam.result:
Auto merged
mysql-test/r/func_time.result:
Auto merged
mysql-test/r/ndb_index_unique.result:
Auto merged
mysql-test/t/func_time.test:
Auto merged
mysql-test/t/view_grant.test:
Auto merged
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/ha_berkeley.cc:
Auto merged
sql/ha_berkeley.h:
Auto merged
mysql-test/r/view_grant.result:
Auto merged
sql/ha_federated.cc:
Auto merged
sql/ha_federated.h:
Auto merged
sql/ha_heap.h:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/ha_innodb.h:
Auto merged
sql/ha_myisam.h:
Auto merged
sql/ha_myisammrg.cc:
Auto merged
sql/ha_ndbcluster.h:
Auto merged
sql/ha_partition.h:
Auto merged
sql/item.cc:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/item_strfunc.h:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/item_subselect.h:
Auto merged
sql/log.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sp.cc:
Auto merged
sql/sp_head.cc:
Auto merged
sql/spatial.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_bitmap.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_partition.cc:
Auto merged
sql/sql_plugin.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/share/errmsg.txt:
Auto merged
sql/sql_handler.cc:
Auto merged
sql/sql_view.cc:
Auto merged
sql/table.h:
Auto merged
storage/archive/ha_archive.cc:
Auto merged
storage/archive/ha_archive.h:
Auto merged
storage/example/ha_example.cc:
Auto merged
storage/myisam/ft_boolean_search.c:
Auto merged
unittest/mysys/base64-t.c:
Auto merged
mysql-test/r/innodb_mysql.result:
manual merge
mysql-test/t/innodb_mysql.test:
manual merge
mysql-test/valgrind.supp:
manual merge
sql/event.cc:
manual merge
sql/ha_heap.cc:
manual merge
sql/ha_myisam.cc:
manual merge
sql/ha_ndbcluster.cc:
manual merge
sql/ha_ndbcluster_binlog.cc:
manual merge
sql/ha_partition.cc:
manual merge
sql/handler.cc:
manual merge
renamed print_key_dupp_error to print_key_dup_error
sql/handler.h:
manual merge
renamed print_key_dupp_error to print_key_dup_error
sql/item.h:
automatic merge
sql/item_cmpfunc.cc:
automatic merge
sql/log_event.cc:
manual merge
Trivial cleanup
sql/mysql_priv.h:
manual merge
renamed print_key_dupp_error to print_key_dup_error
sql/opt_range.cc:
manual merge
renamed print_key_dupp_error to print_key_dup_error
sql/sql_delete.cc:
manual merge
renamed print_key_dupp_error to print_key_dup_error
sql/sql_insert.cc:
manual merge
renamed print_key_dupp_error to print_key_dup_error
sql/sql_load.cc:
manual merge
renamed print_key_dupp_error to print_key_dup_error
sql/sql_select.cc:
manual merge
renamed print_key_dupp_error to print_key_dup_error
sql/sql_show.cc:
manual merge
renamed print_key_dupp_error to print_key_dup_error
sql/sql_table.cc:
manual merge
renamed print_key_dupp_error to print_key_dup_error
sql/sql_update.cc:
manual merge
renamed print_key_dupp_error to print_key_dup_error
sql/table.cc:
manual merge
renamed print_key_dupp_error to print_key_dup_error
storage/blackhole/ha_blackhole.cc:
manual merge
renamed print_key_dupp_error to print_key_dup_error
storage/csv/ha_tina.cc:
manual merge
renamed print_key_dupp_error to print_key_dup_error
mysql-test/valgrind.supp.orig:
Manual merge
Changes that requires code changes in other code of other storage engines.
(Note that all changes are very straightforward and one should find all issues
by compiling a --debug build and fixing all compiler errors and all
asserts in field.cc while running the test suite),
- New optional handler function introduced: reset()
This is called after every DML statement to make it easy for a handler to
statement specific cleanups.
(The only case it's not called is if force the file to be closed)
- handler::extra(HA_EXTRA_RESET) is removed. Code that was there before
should be moved to handler::reset()
- table->read_set contains a bitmap over all columns that are needed
in the query. read_row() and similar functions only needs to read these
columns
- table->write_set contains a bitmap over all columns that will be updated
in the query. write_row() and update_row() only needs to update these
columns.
The above bitmaps should now be up to date in all context
(including ALTER TABLE, filesort()).
The handler is informed of any changes to the bitmap after
fix_fields() by calling the virtual function
handler::column_bitmaps_signal(). If the handler does caching of
these bitmaps (instead of using table->read_set, table->write_set),
it should redo the caching in this code. as the signal() may be sent
several times, it's probably best to set a variable in the signal
and redo the caching on read_row() / write_row() if the variable was
set.
- Removed the read_set and write_set bitmap objects from the handler class
- Removed all column bit handling functions from the handler class.
(Now one instead uses the normal bitmap functions in my_bitmap.c instead
of handler dedicated bitmap functions)
- field->query_id is removed. One should instead instead check
table->read_set and table->write_set if a field is used in the query.
- handler::extra(HA_EXTRA_RETRIVE_ALL_COLS) and
handler::extra(HA_EXTRA_RETRIEVE_PRIMARY_KEY) are removed. One should now
instead use table->read_set to check for which columns to retrieve.
- If a handler needs to call Field->val() or Field->store() on columns
that are not used in the query, one should install a temporary
all-columns-used map while doing so. For this, we provide the following
functions:
my_bitmap_map *old_map= dbug_tmp_use_all_columns(table, table->read_set);
field->val();
dbug_tmp_restore_column_map(table->read_set, old_map);
and similar for the write map:
my_bitmap_map *old_map= dbug_tmp_use_all_columns(table, table->write_set);
field->val();
dbug_tmp_restore_column_map(table->write_set, old_map);
If this is not done, you will sooner or later hit a DBUG_ASSERT
in the field store() / val() functions.
(For not DBUG binaries, the dbug_tmp_restore_column_map() and
dbug_tmp_restore_column_map() are inline dummy functions and should
be optimized away be the compiler).
- If one needs to temporary set the column map for all binaries (and not
just to avoid the DBUG_ASSERT() in the Field::store() / Field::val()
methods) one should use the functions tmp_use_all_columns() and
tmp_restore_column_map() instead of the above dbug_ variants.
- All 'status' fields in the handler base class (like records,
data_file_length etc) are now stored in a 'stats' struct. This makes
it easier to know what status variables are provided by the base
handler. This requires some trivial variable names in the extra()
function.
- New virtual function handler::records(). This is called to optimize
COUNT(*) if (handler::table_flags() & HA_HAS_RECORDS()) is true.
(stats.records is not supposed to be an exact value. It's only has to
be 'reasonable enough' for the optimizer to be able to choose a good
optimization path).
- Non virtual handler::init() function added for caching of virtual
constants from engine.
- Removed has_transactions() virtual method. Now one should instead return
HA_NO_TRANSACTIONS in table_flags() if the table handler DOES NOT support
transactions.
- The 'xxxx_create_handler()' function now has a MEM_ROOT_root argument
that is to be used with 'new handler_name()' to allocate the handler
in the right area. The xxxx_create_handler() function is also
responsible for any initialization of the object before returning.
For example, one should change:
static handler *myisam_create_handler(TABLE_SHARE *table)
{
return new ha_myisam(table);
}
->
static handler *myisam_create_handler(TABLE_SHARE *table, MEM_ROOT *mem_root)
{
return new (mem_root) ha_myisam(table);
}
- New optional virtual function: use_hidden_primary_key().
This is called in case of an update/delete when
(table_flags() and HA_PRIMARY_KEY_REQUIRED_FOR_DELETE) is defined
but we don't have a primary key. This allows the handler to take precisions
in remembering any hidden primary key to able to update/delete any
found row. The default handler marks all columns to be read.
- handler::table_flags() now returns a ulonglong (to allow for more flags).
- New/changed table_flags()
- HA_HAS_RECORDS Set if ::records() is supported
- HA_NO_TRANSACTIONS Set if engine doesn't support transactions
- HA_PRIMARY_KEY_REQUIRED_FOR_DELETE
Set if we should mark all primary key columns for
read when reading rows as part of a DELETE
statement. If there is no primary key,
all columns are marked for read.
- HA_PARTIAL_COLUMN_READ Set if engine will not read all columns in some
cases (based on table->read_set)
- HA_PRIMARY_KEY_ALLOW_RANDOM_ACCESS
Renamed to HA_PRIMARY_KEY_REQUIRED_FOR_POSITION.
- HA_DUPP_POS Renamed to HA_DUPLICATE_POS
- HA_REQUIRES_KEY_COLUMNS_FOR_DELETE
Set this if we should mark ALL key columns for
read when when reading rows as part of a DELETE
statement. In case of an update we will mark
all keys for read for which key part changed
value.
- HA_STATS_RECORDS_IS_EXACT
Set this if stats.records is exact.
(This saves us some extra records() calls
when optimizing COUNT(*))
- Removed table_flags()
- HA_NOT_EXACT_COUNT Now one should instead use HA_HAS_RECORDS if
handler::records() gives an exact count() and
HA_STATS_RECORDS_IS_EXACT if stats.records is exact.
- HA_READ_RND_SAME Removed (no one supported this one)
- Removed not needed functions ha_retrieve_all_cols() and ha_retrieve_all_pk()
- Renamed handler::dupp_pos to handler::dup_pos
- Removed not used variable handler::sortkey
Upper level handler changes:
- ha_reset() now does some overall checks and calls ::reset()
- ha_table_flags() added. This is a cached version of table_flags(). The
cache is updated on engine creation time and updated on open.
MySQL level changes (not obvious from the above):
- DBUG_ASSERT() added to check that column usage matches what is set
in the column usage bit maps. (This found a LOT of bugs in current
column marking code).
- In 5.1 before, all used columns was marked in read_set and only updated
columns was marked in write_set. Now we only mark columns for which we
need a value in read_set.
- Column bitmaps are created in open_binary_frm() and open_table_from_share().
(Before this was in table.cc)
- handler::table_flags() calls are replaced with handler::ha_table_flags()
- For calling field->val() you must have the corresponding bit set in
table->read_set. For calling field->store() you must have the
corresponding bit set in table->write_set. (There are asserts in
all store()/val() functions to catch wrong usage)
- thd->set_query_id is renamed to thd->mark_used_columns and instead
of setting this to an integer value, this has now the values:
MARK_COLUMNS_NONE, MARK_COLUMNS_READ, MARK_COLUMNS_WRITE
Changed also all variables named 'set_query_id' to mark_used_columns.
- In filesort() we now inform the handler of exactly which columns are needed
doing the sort and choosing the rows.
- The TABLE_SHARE object has a 'all_set' column bitmap one can use
when one needs a column bitmap with all columns set.
(This is used for table->use_all_columns() and other places)
- The TABLE object has 3 column bitmaps:
- def_read_set Default bitmap for columns to be read
- def_write_set Default bitmap for columns to be written
- tmp_set Can be used as a temporary bitmap when needed.
The table object has also two pointer to bitmaps read_set and write_set
that the handler should use to find out which columns are used in which way.
- count() optimization now calls handler::records() instead of using
handler->stats.records (if (table_flags() & HA_HAS_RECORDS) is true).
- Added extra argument to Item::walk() to indicate if we should also
traverse sub queries.
- Added TABLE parameter to cp_buffer_from_ref()
- Don't close tables created with CREATE ... SELECT but keep them in
the table cache. (Faster usage of newly created tables).
New interfaces:
- table->clear_column_bitmaps() to initialize the bitmaps for tables
at start of new statements.
- table->column_bitmaps_set() to set up new column bitmaps and signal
the handler about this.
- table->column_bitmaps_set_no_signal() for some few cases where we need
to setup new column bitmaps but don't signal the handler (as the handler
has already been signaled about these before). Used for the momement
only in opt_range.cc when doing ROR scans.
- table->use_all_columns() to install a bitmap where all columns are marked
as use in the read and the write set.
- table->default_column_bitmaps() to install the normal read and write
column bitmaps, but not signaling the handler about this.
This is mainly used when creating TABLE instances.
- table->mark_columns_needed_for_delete(),
table->mark_columns_needed_for_delete() and
table->mark_columns_needed_for_insert() to allow us to put additional
columns in column usage maps if handler so requires.
(The handler indicates what it neads in handler->table_flags())
- table->prepare_for_position() to allow us to tell handler that it
needs to read primary key parts to be able to store them in
future table->position() calls.
(This replaces the table->file->ha_retrieve_all_pk function)
- table->mark_auto_increment_column() to tell handler are going to update
columns part of any auto_increment key.
- table->mark_columns_used_by_index() to mark all columns that is part of
an index. It will also send extra(HA_EXTRA_KEYREAD) to handler to allow
it to quickly know that it only needs to read colums that are part
of the key. (The handler can also use the column map for detecting this,
but simpler/faster handler can just monitor the extra() call).
- table->mark_columns_used_by_index_no_reset() to in addition to other columns,
also mark all columns that is used by the given key.
- table->restore_column_maps_after_mark_index() to restore to default
column maps after a call to table->mark_columns_used_by_index().
- New item function register_field_in_read_map(), for marking used columns
in table->read_map. Used by filesort() to mark all used columns
- Maintain in TABLE->merge_keys set of all keys that are used in query.
(Simplices some optimization loops)
- Maintain Field->part_of_key_not_clustered which is like Field->part_of_key
but the field in the clustered key is not assumed to be part of all index.
(used in opt_range.cc for faster loops)
- dbug_tmp_use_all_columns(), dbug_tmp_restore_column_map()
tmp_use_all_columns() and tmp_restore_column_map() functions to temporally
mark all columns as usable. The 'dbug_' version is primarily intended
inside a handler when it wants to just call Field:store() & Field::val()
functions, but don't need the column maps set for any other usage.
(ie:: bitmap_is_set() is never called)
- We can't use compare_records() to skip updates for handlers that returns
a partial column set and the read_set doesn't cover all columns in the
write set. The reason for this is that if we have a column marked only for
write we can't in the MySQL level know if the value changed or not.
The reason this worked before was that MySQL marked all to be written
columns as also to be read. The new 'optimal' bitmaps exposed this 'hidden
bug'.
- open_table_from_share() does not anymore setup temporary MEM_ROOT
object as a thread specific variable for the handler. Instead we
send the to-be-used MEMROOT to get_new_handler().
(Simpler, faster code)
Bugs fixed:
- Column marking was not done correctly in a lot of cases.
(ALTER TABLE, when using triggers, auto_increment fields etc)
(Could potentially result in wrong values inserted in table handlers
relying on that the old column maps or field->set_query_id was correct)
Especially when it comes to triggers, there may be cases where the
old code would cause lost/wrong values for NDB and/or InnoDB tables.
- Split thd->options flag OPTION_STATUS_NO_TRANS_UPDATE to two flags:
OPTION_STATUS_NO_TRANS_UPDATE and OPTION_KEEP_LOG.
This allowed me to remove some wrong warnings about:
"Some non-transactional changed tables couldn't be rolled back"
- Fixed handling of INSERT .. SELECT and CREATE ... SELECT that wrongly reset
(thd->options & OPTION_STATUS_NO_TRANS_UPDATE) which caused us to loose
some warnings about
"Some non-transactional changed tables couldn't be rolled back")
- Fixed use of uninitialized memory in ha_ndbcluster.cc::delete_table()
which could cause delete_table to report random failures.
- Fixed core dumps for some tests when running with --debug
- Added missing FN_LIBCHAR in mysql_rm_tmp_tables()
(This has probably caused us to not properly remove temporary files after
crash)
- slow_logs was not properly initialized, which could maybe cause
extra/lost entries in slow log.
- If we get an duplicate row on insert, change column map to read and
write all columns while retrying the operation. This is required by
the definition of REPLACE and also ensures that fields that are only
part of UPDATE are properly handled. This fixed a bug in NDB and
REPLACE where REPLACE wrongly copied some column values from the replaced
row.
- For table handler that doesn't support NULL in keys, we would give an error
when creating a primary key with NULL fields, even after the fields has been
automaticly converted to NOT NULL.
- Creating a primary key on a SPATIAL key, would fail if field was not
declared as NOT NULL.
Cleanups:
- Removed not used condition argument to setup_tables
- Removed not needed item function reset_query_id_processor().
- Field->add_index is removed. Now this is instead maintained in
(field->flags & FIELD_IN_ADD_INDEX)
- Field->fieldnr is removed (use field->field_index instead)
- New argument to filesort() to indicate that it should return a set of
row pointers (not used columns). This allowed me to remove some references
to sql_command in filesort and should also enable us to return column
results in some cases where we couldn't before.
- Changed column bitmap handling in opt_range.cc to be aligned with TABLE
bitmap, which allowed me to use bitmap functions instead of looping over
all fields to create some needed bitmaps. (Faster and smaller code)
- Broke up found too long lines
- Moved some variable declaration at start of function for better code
readability.
- Removed some not used arguments from functions.
(setup_fields(), mysql_prepare_insert_check_table())
- setup_fields() now takes an enum instead of an int for marking columns
usage.
- For internal temporary tables, use handler::write_row(),
handler::delete_row() and handler::update_row() instead of
handler::ha_xxxx() for faster execution.
- Changed some constants to enum's and define's.
- Using separate column read and write sets allows for easier checking
of timestamp field was set by statement.
- Remove calls to free_io_cache() as this is now done automaticly in ha_reset()
- Don't build table->normalized_path as this is now identical to table->path
(after bar's fixes to convert filenames)
- Fixed some missed DBUG_PRINT(.."%lx") to use "0x%lx" to make it easier to
do comparision with the 'convert-dbug-for-diff' tool.
Things left to do in 5.1:
- We wrongly log failed CREATE TABLE ... SELECT in some cases when using
row based logging (as shown by testcase binlog_row_mix_innodb_myisam.result)
Mats has promised to look into this.
- Test that my fix for CREATE TABLE ... SELECT is indeed correct.
(I added several test cases for this, but in this case it's better that
someone else also tests this throughly).
Lars has promosed to do this.
BitKeeper/etc/ignore:
added mysys/test_bitmap
include/base64.h:
Removed my_global.h, as this must be included first in any program
include/heap.h:
Added heap_reset() (Required by new handler interface)
include/my_base.h:
Removed HA_EXTRA_RESET. MySQL will now call ::reset() instead of ::extra(HA_EXTRA_RESET).
HA_EXTRA_RETRIVE_ALL_COLS and HA_EXTRA_RETRIVE_PRIMARY key are deleted as the column bitmaps makes these unnecessary
include/my_bitmap.h:
Remove my_pthread.h (should be included at upper level)
Introduced my_bitmap_map typedef to make it the bitmap handling more like a black box
Added bitmap_is_overlapping(), bitmap_test_and_clear(), bitmap_copy() and bitmap_cmp()
Made bitmap_set_bit(), bitmap_flip_bit(), bitmap_clear_bit() return void
include/myisam.h:
Added mi_reset() (Required by new handler interface)
include/myisammrg.h:
Added myrg_reset() (Required by new handler interface)
include/mysql_com.h:
Added flag FIELD_IN_ADD_INDEX to be able to remove Field->add_index
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
Added testing of CREATE ... SELECT in a mixed environment
(This found some bugs that Mats is going to fix shortly)
mysql-test/install_test_db.sh:
Simplify ldata usage
Added --tmpdir=. option to mysqld bootstrap (Removed some warnings when TMPDIR was wrongly set)
mysql-test/mysql-test-run.pl:
Added --tmpdir=. to bootstrap
mysql-test/mysql-test-run.sh:
Use copy instead of INSTALL_DB for master and slave databases.
(Speeds up startup time a lot!)
Remove snapshot directories at startup (removes some strange warnings)
mysql-test/r/binlog_row_mix_innodb_myisam.result:
Added testing of CREATE ... SELECT in a mixed environment
(This found some bugs that Mats is going to fix shortly)
mysql-test/r/binlog_stm_mix_innodb_myisam.result:
Added testing of CREATE ... SELECT in a mixed environment
mysql-test/r/create.result:
Some extra tests of warnings and number of tables opened by CREATE ... SELECT
mysql-test/r/federated.result:
Drop some left over tables
Added testing of multiple table update and multiple table delete (with and without keys)
mysql-test/r/func_gconcat.result:
Enable some disabled tests (converted them slightly to be predictable)
mysql-test/r/func_time.result:
Added drop of test function
mysql-test/r/innodb_mysql.result:
Added tests for CREATE ... SELECT
mysql-test/r/insert.result:
More tests
Added testing of duplicate columns in insert
mysql-test/r/loaddata.result:
Added testing LOAD DATA ... SET ...
mysql-test/r/multi_update.result:
Test multi updates and deletes using primary key and without
mysql-test/r/ndb_index_unique.result:
Better error message
mysql-test/r/ndb_replace.result:
New correct result after fixing REPLACE handling with NDB
mysql-test/r/rpl_ddl.result:
Now we don't get these (wrong) warnings anymore
mysql-test/r/view_grant.result:
Drop used views
mysql-test/t/create.test:
Some extra tests of warnings and number of tables opened by CREATE ... SELECT
mysql-test/t/federated.test:
Drop some left over tables
Added testing of multiple table update and multiple table delete (with and without keys)
mysql-test/t/func_gconcat.test:
Enable some disabled tests (converted them slightly to be predictable)
mysql-test/t/func_time.test:
Added drop of test function
mysql-test/t/innodb_mysql.test:
Added tests for CREATE ... SELECT
mysql-test/t/insert.test:
More tests
Added testing of duplicate columns in insert
mysql-test/t/loaddata.test:
Added testing LOAD DATA ... SET ...
mysql-test/t/multi_update.test:
Test multi updates and deletes using primary key and without
mysql-test/t/view_grant.test:
Drop used views
mysql-test/valgrind.supp:
Added supression of not needed warnings when printing stack trace
mysys/base64.c:
Include my_global.h first
mysys/my_bitmap.c:
Added bitmap_is_overlapping(), bitmap_test_and_clear() and bitmap_copy()
Changed logic of bitmap handling to be a bit more efficent (Did this together with Mikael Ronström)
Now the 'extra, not used bits' in the bitmap are assumed to have a 'random value' and the bitmap functions are free to change them whenever needed.
Changed how mutex is allocated to make 'bitmap_free()' function simpler.
mysys/thr_lock.c:
Added 0x before thread pointers (for easier comparison of DBUG traces)
sql/event.cc:
Ensure 'use_all_columns()' is used for event tables
Don't print warning that event table is damaged if it doesn't exists.
sql/field.cc:
Added ASSERT_COLUMN_MARKED_FOR_WRITE in all store() methods and ASSERT_COLUMN_MARKED_FOR_READ in all val() methods to catch wrong setting if table->read_set and table->write_set
(Rest of changes are only indentation cleanups)
sql/field.h:
Removed Field->query_id (replaced by table->read_set and table->write_set)
Removed Field->fieldnr (use Field->field_index instead)
Removed Field->add_index (Use Field->flags instead)
Add Field->part_of_key_not_clustered (for usage in opt_range.cc)
sql/filesort.cc:
Added paramater sort_postion to filesort() to force sorting by position instead of storing all fields in the result set.
This allowed me to remove checking of sql_command.
Create a temporary column bitmap for fields that are used by the sorting process.
Use column bitmaps instead of query_id
sql/ha_berkeley.cc:
Update to 'newer' table handler interface
sql/ha_berkeley.h:
Update to 'newer' table handler interface
sql/ha_federated.cc:
Update to 'newer' table handler interface
Only read columns that are needed from remote server.
In case of eq ranges, don't generate two conditions in the WHERE clause
(this can still be optimized, but would require a bigger code change)
Use 'simpler to use' XXXX_LEN' macros
A bit simpler logic in ::write_row() when creating statements.
In update, only include test of fields actually read.
(This greatly simplifies the queries sent by the federated engine)
Similar changes done for delete_row()
sql/ha_federated.h:
Update to 'newer' table handler interface
Changed XXX_LEN macros to use sizeof(...)-1, to simplify usage in ha_federated.cc
Added HA_PRIMARY_KEY_REQUIRED_FOR_DELETE to tell MySQL to read all primary key columns in case of DELETE
sql/ha_heap.cc:
Update to 'newer' table handler interface
sql/ha_heap.h:
Update to 'newer' table handler interface
sql/ha_innodb.cc:
Update to 'newer' table handler interface
- Update innobase_create_handler() to new interface
- Removed HA_NOT_EXACT_COUNT (not needed)
- Renamed HA_PRIMARY_KEY_ALLOW_RANDOM_ACCESS to HA_PRIMARY_KEY_REQUIRED_FOR_POSITION.
- Prefixed base status variables with 'stats'
- Use table column bitmaps instead of ha_get_bit_in_read_set()
- Added ::reset(), with code from ::extra(HA_EXTRA_RESET)
- Removed HA_EXTRA_RETRIVE_ALL_COLS and HA_EXTRA_RETRIEVE_PRIMARY_KEY as
the table->read_set and table->write_set bitmaps now are accurate
sql/ha_innodb.h:
Update to 'newer' table handler interface
- table_flags are now ulonglong
- Added reset() method
- Removed not needed ha_retrieve_all_cols() and ha_retrieve_all_pk() columns.
- Made build_template() a class function to be able to easier access class variables
sql/ha_myisam.cc:
Update to 'newer' table handler interface
sql/ha_myisam.h:
Update to 'newer' table handler interface
sql/ha_myisammrg.cc:
Update to 'newer' table handler interface
sql/ha_myisammrg.h:
Update to 'newer' table handler interface
sql/ha_ndbcluster.cc:
Update to 'newer' table handler interface
Fixed use_blob_value() to be accurate
In ::complemented_read() we have to check both the read and write bitmap as the old code did mark all changed columns also in the read map
Correct dumping of field data with DBUG_DUMP
Prefix addresses in DBUG_PRINT with 0x
Fixed usage of not initialized memory
Update to use field->flags & FIELD_IN_ADD_INDEX instead of field->add_index.
sql/ha_ndbcluster.h:
Update to 'newer' table handler interface
sql/ha_ndbcluster_binlog.cc:
Mark usage of all columns in ndbcluster binlog tables
false -> FALSE, true -> TRUE
Use table->s->all_set instead of creating a temporary bitmap.
sql/ha_partition.cc:
Update to 'newer' table handler interface
Added memroot to initialise_partitions() and related functions to get faster memory allocation.
partition_create_handler() is now responsible for initialisation of the partition object
Some trivial optimizations and indentation fixes
Ensure that table_flags() are up to date
Removed documentation for removed HA_EXTRA flags
Fixed 'strange' usage of m_file[i] in new_handlers_from_part_info()that worked in current code 'by chance'
sql/ha_partition.h:
Update to 'newer' table handler interface
sql/handler.cc:
create_xxx handler now takes MEMROOT as an argument to simplify memory allocation.
Much simpler get_new_handler()
(Initialization of the object is now handled by the create method for the engine)
Moved all allocation of bitmap handling to the TABLE object (in table.cc)
Added column_bitmaps_signal() to signal column usage changes.
Changed binlog_log_row() to use the exiusting all_set bitmap in the table object.
Added ha_reset() function to test that the file object is ok at end of statement and call handler::reset()
Added use_hidden_primary_key() to signal handler that we we are going to read and update + delete the row and the handler should thus remember the position for the row
sql/handler.h:
Added HA_NO_TRANSACTIONS, HA_PARTIAL_COLUMN_READ, HA_REQUIRES_KEY_COLUMNS_FOR_DELETE,HA_PRIMARY_KEY_REQUIRED_FOR_DELETE and HA_HAS_RECORDS
Removed HA_NOT_EXACT_COUNT, HA_READ_RND_SAME
HA_DUPP_POS -> HA_DUPLICATE_POS
HA_NOT_EXACT_COUNT replaced by HA_STATS_RECORDS_IS_EXACT, HA_HAS_RECORDS and records()
HA_PRIMARY_KEY_ALLOW_RANDOM_ACCESS renamed to HA_PRIMARY_KEY_REQUIRED_FOR_POSITION
Added future row type 'ROW_TYPE_PAGES'
Added MEM_ROOT to handlerton 'create' function
Added ha_statistics, a structure for all status variable in the base handler class.
Moved all status variables in the handler class into a stats structs to improve readability.
ha_table_flags() is now a cached (not virtual) version of table_flags()
reset() doesn't anymore call extra(HA_EXTRA_RESET) but is a function of it's own.
Renamed dupp_ref to dup_ref
Renamed not used handler::sortkey
Moved read_set and write_set to TABLE structure
handler::init() function added for cacheing of virtual constants from engine.
sql/item.cc:
Added register_field_in_read_map() for marking used columns in expression.
This is used by filesort() for creating an optimal column bitmap while retrieving columns for sorting.
Initalize value.cs_info.character_set_client to fix core dump bug with --debug
set_query_id -> mark_used_columns
Mark used columns in read_set OR write_set.
sql/item.h:
Removed reset_query_id_processor() as it's not needed anymore.
Added register_field_in_read_map()
Added extra argument to Item::walk() to indicate if we should also
traverse sub queries.
sql/item_cmpfunc.cc:
Temporary mark used columns to be read/writable
Update Item::walk to new interface
sql/item_cmpfunc.h:
Added extra argument to Item::walk() to indicate if we should also traverse sub queries.
sql/item_func.cc:
Update Item::walk() to new interface
table_flags() -> ha_table_flags()
sql/item_func.h:
Update Item::walk() to new interface
sql/item_row.cc:
Update Item::walk() to new interface
sql/item_row.h:
Update Item::walk() to new interface
sql/item_strfunc.h:
Update Item::walk() to new interface
sql/item_subselect.cc:
Added Item_subselect::walk()
(It was a bug it was missing before. Not sure what kind of bugs this could have caused)
sql/item_subselect.h:
Update Item::walk() to new interface
sql/item_sum.cc:
Update Item::walk() to new interface
Updates for new handler interace
sql/item_sum.h:
Update Item::walk() to new interface
sql/key.cc:
Updates for new handler interace
sql/log.cc:
Mark all columns used for log tables
Split options flag
Ensured that second argument to trans_register_ha is a bool
sql/log_event.cc:
Fixed comments to be withing 79 characters
Use OPTION_KEEP_LOG instead of OPTION_STATUS_NO_TRANS_UPDATE to remove wrong warnings
Updates for new handler interface
Use 0x%lx instead of %p (portability problem)
sql/mysql_priv.h:
Added OPTION_KEEP_LOG to indicate that we should replicate the binlog even on rollback
Removed not used 'conds' argument to setup_tables
sql/mysqld.cc:
Indentation fixes and removed old comment
sql/opt_range.cc:
Update to new handler and bitmap interface.
Fixed calls to cp_buffer_from_ref() and walk() (new argument).
Create new temporary bitmaps for ror scans.
(Needed because of handler changes and to get more accurate column bitmaps than before)
Remove not needed file->ha_reset() call before file->close().
Some trivial optimization and indentation fixes.
Use Field->part_of_key_not_clustered() to check if field is part of a key, instead of looping over all key parts.
Added flag 'in_ror_merged_scan' to allow ::get_next() to know that we need a special column bitmap to only fetch pointer to record.
This is needed because ror scan uses the same TABLE object but different file objects, which creates problem for the column bitmap handling.
(This is a temporary solution. A better one would be to allocate an own TABLE object for ROR scans)
Optimized bitmap handling in ror scans:
- Start bitmap at position 0, not 1
- Use same bitmap size as in TABLE
- Use table->read_set and table->write_set to create column bitmaps instead of looping over all fields in table
sql/opt_range.h:
Added 'in_ror_merged_scan' to indicate if we are doing a ROR scan
Added temporary column bitmaps used in ROR scans
sql/opt_sum.cc:
Added get_ext_record_count() which is used in COUNT() optimization if handler has HA_HAS_RECORDS
Note that we don't call this if handler has HA_STATS_RECORDS_IS_EXACT set.
sql/protocol.cc:
We need to mark columns as readable in ::store() as we sometimes return default value for fields to the user
sql/records.cc:
Updates for new handler interface
sql/set_var.cc:
Handle splitting OPTION_STATUS_NO_TRANS_UPDATE to two flags
sql/share/errmsg.txt:
Fixed wrong
sql/sp.cc:
Mark that we are using all columns for the proc table
Update call to setup_tables() to use new prototype
sql/sp_head.cc:
Removed QQ comment
sql/spatial.cc:
Removed wrong QQ comment
sql/sql_acl.cc:
Mark that we need all columns for acl tables
Supply memroot to some 'new' calls.
Indentation fixes
sql/sql_base.cc:
set_query_id removed
Ensure we call ha_reset() at end of each statement
Mark read columns in read_set and changed columns in write_set (Before all columns was marked in read set)
Fixed marking of some columns that was not proplerly marked before
Maintain in TABLE->merge_keys set of all keys that are used in some way
Removed not used 'conds' argument from setup_tables()
Remove not used setting of 'dupp_field' in insert_fields()
Added missing FN_LIBCHAR in mysql_rm_tmp_tables()
(This has probably caused us to not properly remove temporary files after crash)
sql/sql_bitmap.h:
Added is_overlapping()
sql/sql_class.cc:
Slow_logs was not properly initialized, which could maybe cause extra/lost entries in slow log.
set_query_id -> mark_used_columns
Simpler variable usage in pack_row() (cleanup)
Moved some variable declartion at start of function for better code readability
sql/sql_class.h:
Added enum_mark_columns
Updated comments
Renamed dupp_field -> dup_field
Added virtual function 'can_rollback_data()' to select_insert() to be used in CREATE ... SELECT to optimize use of OPTION_STATUS_NO_TRANS_UPDATE.
(This fixes a bug in CREATE ... SELECT where we did give wrong warnings when using non transacational tables)
sql/sql_delete.cc:
Updates to new handler interface
Call table->mark_columns_needed_for_delete() to allow us to put additional columns in column usage maps if handler so requires.
Call table->prepare_for_position() to tell handler that we are going to call ha_position().
Removed call to free_io_cache(). (io_cache is now removed in ha_reset()).
Fixed calls to setup_tables()
sql/sql_do.cc:
Update call to setup_fields()
sql/sql_handler.cc:
Tell handler tables to always read all columns.
Use temporary column map when storing value in field for later index usage
sql/sql_help.cc:
Makr all used fields to be read
Update call to setup_fields()
sql/sql_insert.cc:
Tell handler we are going to update the auto_increment column
dupp_field -> dup_field
Set column usage bits for timestamp field.
Call table->mark_columns_needed_for_insert() and table->mark_auto_increment_column()
Removed not used argument from mysql_prepare_insert_check_table().
If we get an duplicate row on insert, change column map to read and write all columns while retrying the operatation.
This is required by the definition of REPLACE and also ensures that fields that are only part of UPDATE are properly handled.
This fixed a bug in NDB and REPLACE where REPLACE wrongly copied some column values from the replaced row.
Setup new bitmaps for delayed insert rows
Remove reseting of next_number_fields as it will be reset on next call to handler_insert()
Fixed usage of thd->options and OPTION_STATUS_NO_TRANS_UPDATE.
The issue was that one should not to reset this flag as it may be set by a previous statement.
The way it was now used caused us to loose some warnings and get other wrong warnings when using non transactional tables mixed with transactional.
I fixed it by introducing 'select_insert::can_rollback_data' to inform send_error() that the given statement can be rolled back (which in case of CREATE TABLE can always be done)
Don't close tables created with CREATE ... SELECT but keep them in the table cache.
Moved out MY_HOOKS from inside function (better readability)
sql/sql_load.cc:
Update to use new handler and column marking interface
Update using setup_tables()
sql/sql_olap.cc:
Update calls to setup_tables
Use enums instead of constants to setup_fields()
sql/sql_parse.cc:
Handle OPTION_KEEP_LOG:
- Set it on CREATE TEMPORARY TABLE / DROP TABLE
- Reset it when OPTION_STATUS_NO_TRANS_UPDATE is reset
- Don't set it for CREATE ... SELECT (this is handled in select_create class)
Remove reseting of OPTION_STATUS_NO_TRANS_UPDATE in begin_trans() as this should already be reset.
If in autocommit mode, reset OPTION_KEEP_LOG and OPTION_STATUS_NO_TRANS_UPDATE to not give warnings in future commands
sql/sql_partition.cc:
Update walk() usage
Trivial indentation fixes
sql/sql_plugin.cc:
Mark all columns as used for plugins
sql/sql_prepare.cc:
Added assert to find out hidden bugs in character_set_client (got an error in debug binary when this not set correctly)
Updates for new handler interface
Update calls to setup_fields()
sql/sql_repl.cc:
Indentation fixes
sql/sql_select.cc:
Update call to setup_tables() and setup_fields()
Remove some old disabled code
Update to new hadler interface
Indentation cleanups
Added column bitmaps for temporary tables.
Remove updating of the removed slots in the Field class
Added TABLE argument to cp_buffer_from_ref() (To be able to install temporary column maps)
For internal temporary tables, use handler::write_row(), handler::delete_row() and handler::update_row() instead of handler::ha_xxxx() for faster execution.
sql/sql_select.h:
Indentaition fixes.
Install temporary column usage maps when needed
Added TABLE element to cp_buffer_from_ref()
sql/sql_show.cc:
Update to new handler interface
Mark all columns used for internal tables.
Style fixes.
Added support for 'future' ROW_TYPE_PAGES.
Don't allocate TMP_TABLE_PARAM with calloc. The 'init()' function will initialize the structure properly.
sql/sql_table.cc:
Update to new handler interface
Simple my_snprintf -> strmake()
Changed some constants to defines
Don't test for NULL in primary key (as we a couple of line above force the PRIMARY KEY to be NOT NULL)
Change field->add_index to use field->flags & FIELD_IN_ADD_INDEX
Mark all columns as used for ALTER TABLE
Style fixes
Update call to filesort()
sql/sql_trigger.h:
Added friend functions to be able to test if triggers exists for table we are going to insert/update or delete in.
sql/sql_udf.cc:
Mark all columns as used for udf system table.
sql/sql_union.cc:
Update call to walk()
Update to new handler interface
sql/sql_update.cc:
Remove query_id argument from compare_record()
Use column bitmaps instead of query_id.
We can't use compare_records() to skip updates for handlers that returns a partial column set and the read_set doesn't cover all columns in the write set, because compare_record() can't in this case know if a not read column changed value.
Update call to setup_fields()
Using separate column read and write sets allows for easier checking of timestamp field was set by statement.
Removed call to free_io_cache() as this is now done in ha_reset()
Call table->mark_columns_needed_for_update() and table->prepare_for_position()
Style fixes
sql/sql_view.cc:
Style fixes
sql/table.cc:
Remove implicitely include 'errno.h'
Remove code for building normalized path, as this is now identical to 'path'
Remove field->fieldnr
Added update of field->part_of_key_not_clustered()
Create column bitmaps in TABLE and TABLE_SHARE
Don't setup a temporary MEM_ROOT object as a thread specific variable for the handler. Instead we send the to-be-used MEMROOT to get_new_handler()
Update to new handler interface
Update call to walk()
Added new functions:
- st_table::clear_column_bitmaps()
- st_table::prepare_for_position()
- st_table::mark_columns_used_by_index()
- st_table::restore_column_maps_after_mark_index()
- st_table::mark_columns_used_by_index_no_reset()
- st_table::mark_auto_increment_column()
- st_table::mark_columns_needed_for_delete()
- st_table::mark_columns_needed_for_update()
- st_table::mark_columns_needed_for_insert()
sql/table.h:
Moved column usage bitmaps from handler to TABLE
Added to TABLE_SHARE all_set and column_bitmap_size
Added to TABLE merge_keys, bitmap_init_values, def_read_set, def_write_set, tmp_set, read_set and write_set.
Declared all new table column bitmap functions
Added TABLE functions column_bitmaps_set(), column_bitmaps_set_no_signal(), use_all_columns() and default_column_bitmaps()
Added functions: tmp_use_all_columns() and tmp_restore_column_map() to temporarly switch column bitmaps
Added functions: dbug_tmp_use_all_columns() and dbug_tmp_restore_column_map() to temporarly switch column bitmaps to avoid asserts in Field::store() and Field::val().
sql/tztime.cc:
Mark all columns as used for timezone tables
storage/archive/ha_archive.cc:
Update to new handler interface
storage/archive/ha_archive.h:
Update to new handler interface
storage/blackhole/ha_blackhole.cc:
Update to new handler interface
storage/blackhole/ha_blackhole.h:
Update to new handler interface
removed not needed flag HA_DUPP_POS
storage/csv/ha_tina.cc:
Update to new handler interface
storage/csv/ha_tina.h:
Update to new handler interface
storage/example/ha_example.cc:
Update to new handler interface
storage/example/ha_example.h:
Update to new handler interface
storage/heap/hp_extra.c:
Added heap_reset() (Required by new handler interface)
storage/heap/hp_test2.c:
Use heap_reset()
storage/myisam/ft_boolean_search.c:
Fixed compiler warning
storage/myisam/mi_extra.c:
Added mi_reset() (Required by new handler interface)
storage/myisam/mi_search.c:
Fixed DBUG_PRINT messages to use 0x%lx instead of %lx
storage/myisam/mi_test2.c:
Use mi_reset()
storage/myisam/myisampack.c:
Use mi_reset()
storage/myisammrg/myrg_extra.c:
Added myrg_reset() (Required by new handler interface)
unittest/mysys/base64.t.c:
Include my_global.h
Don't include implictely include file 'stdlib.h'
Under row-based replication, DELETE FROM will now always be
replicated as individual row deletions, while TRUNCATE TABLE will
always be replicated as a statement.
mysql-test/extra/rpl_tests/rpl_ddl.test:
Using --echo instead of SELECT to print message.
mysql-test/r/binlog_row_mix_innodb_myisam.result:
Result change.
mysql-test/r/federated.result:
Result change.
mysql-test/r/range.result:
Result change.
mysql-test/r/rpl_sp_effects.result:
Result change.
mysql-test/r/show_check.result:
Result change.
mysql-test/r/sp-error.result:
Result change.
mysql-test/r/sp.result:
Result change.
mysql-test/r/timezone2.result:
Result change.
mysql-test/r/trigger-grant.result:
Result change.
mysql-test/r/type_datetime.result:
Result change.
mysql-test/r/type_ranges.result:
Result change.
mysql-test/r/type_timestamp.result:
Result change.
mysql-test/r/view.result:
Result change.
mysql-test/t/archive.test:
Test contain statements that only works for statement-based logging.
mysql-test/t/disabled.def:
Disabling test due to reported bug.
mysql-test/t/federated.test:
Adding ORDER BY clause to SELECT statements
mysql-test/t/range.test:
Adding ORDER BY clause to SELECT (sub-)statement
mysql-test/t/rpl_sp_effects.test:
Adding ORDER BY clause to SELECT statement.
mysql-test/t/show_check.test:
Replacing DELETE FROM without WHERE with TRUNCATE TABLE.
mysql-test/t/sp-error.test:
Replacing DELETE FROM without WHERE with TRUNCATE TABLE.
mysql-test/t/sp.test:
Adding ORDER BY clause to SELECT statement.
mysql-test/t/timezone2.test:
Replacing DELETE FROM without WHERE with TRUNCATE TABLE.
mysql-test/t/trigger-grant.test:
Replacing DELETE FROM without WHERE with TRUNCATE TABLE.
mysql-test/t/type_datetime.test:
Adding ORDER BY clause to SELECT statement.
mysql-test/t/type_ranges.test:
Replacing DELETE FROM without WHERE with TRUNCATE TABLE.
mysql-test/t/type_timestamp.test:
Replacing DELETE FROM without WHERE with TRUNCATE TABLE.
mysql-test/t/view.test:
Adding ORDER BY clause to SELECT statement.
sql/sql_class.h:
Adding member function to set replication to statement-based.
sql/sql_delete.cc:
When row-based replication is used, DELETE FROM will always delete the
contents of the table row-by-row and not use delete_all_rows().
mysql-test/extra/rpl_tests/rpl_truncate.test:
New BitKeeper file ``mysql-test/extra/rpl_tests/rpl_truncate.test''
mysql-test/extra/rpl_tests/rpl_truncate_helper.inc:
New BitKeeper file ``mysql-test/extra/rpl_tests/rpl_truncate_helper.inc''
mysql-test/r/rpl_truncate_2myisam.result:
New BitKeeper file ``mysql-test/r/rpl_truncate_2myisam.result''
mysql-test/r/rpl_truncate_3innodb.result:
New BitKeeper file ``mysql-test/r/rpl_truncate_3innodb.result''
mysql-test/r/rpl_truncate_7ndb.result:
New BitKeeper file ``mysql-test/r/rpl_truncate_7ndb.result''
mysql-test/t/rpl_truncate_2myisam.test:
New BitKeeper file ``mysql-test/t/rpl_truncate_2myisam.test''
mysql-test/t/rpl_truncate_3innodb.test:
New BitKeeper file ``mysql-test/t/rpl_truncate_3innodb.test''
mysql-test/t/rpl_truncate_7ndb.test:
New BitKeeper file ``mysql-test/t/rpl_truncate_7ndb.test''
- Add missing drop(s)
- Reset changed variables
NOTE! These kind of problems are easily found with --check-testcases options to mysql-test-run.pl
mysql-test/extra/rpl_tests/rpl_insert_id_pk.test:
Add missing drop table
mysql-test/extra/rpl_tests/rpl_loaddata.test:
Add missing drop table
mysql-test/extra/rpl_tests/rpl_log.test:
Tables where only dropped on slave, switch to master connection before dropping them
mysql-test/extra/rpl_tests/rpl_multi_update3.test:
Add missing drop table
mysql-test/extra/rpl_tests/rpl_row_sp006.test:
Add missing drop database
mysql-test/include/check-testcase.test:
Add option "--skip-lock-tables" when dumping tables, as noone else is using the tables anyway
mysql-test/r/ndb_cache_multi.result:
Reset query_cache_size after test on both master and "second" master mysqld
mysql-test/r/partition.result:
Add missing drop procedure
mysql-test/r/rpl_drop_db.result:
Add missing drop table
mysql-test/r/rpl_multi_update3.result:
Add missing drop table
mysql-test/r/rpl_ndb_multi_update3.result:
Add missing drop table
mysql-test/r/rpl_ndb_sp006.result:
Add missing drop database
mysql-test/r/rpl_stm_no_op.result:
Add missing drop table
mysql-test/r/rpl_variables.result:
Reset slave_net_timeout to it's default value after test
mysql-test/t/ndb_cache_multi.test:
Reset query_cahche_size after test
mysql-test/t/partition.test:
Add missing drop procedure
mysql-test/t/rpl_drop_db.test:
Add missing drop table
mysql-test/t/rpl_stm_no_op.test:
Add missing drop table
mysql-test/t/rpl_variables.test:
Reset slave_net_timeout to it's default value after test
into ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-5.1-new-marvel
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/mysql-test-run.sh:
Auto merged
sql/mysqld.cc:
Auto merged
mysql-test/extra/binlog_tests/innodb_stat.test:
test doesn't work with the embedded server
sql/log.cc:
code shouldn't work without row based replication
sql/sql_insert.cc:
code shouldn't work without row based replication
into dl145j.mysql.com:/users/gbichot/mysql-5.1-new
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/extra/binlog_tests/binlog.test:
Auto merged
sql/log_event.cc:
Auto merged
sql/mysqld.cc:
Auto merged
That option was used to suppress the XID from the output of SHOW BINLOG EVENTS (to create a repeatable testsuite),
was available only in debug builds, and was explicitely marked as "may be removed in future versions" in mysqld --help.
Idea of the removal approved by the replication team.
mysql-test/extra/binlog_tests/binlog.test:
use replace-regex to remove xid
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
use replace-regex to remove xid
mysql-test/mysql-test-run.pl:
option removed
mysql-test/mysql-test-run.sh:
option removed
sql/log_event.cc:
no more need to hide XID in tests output as we have replace-regex
sql/log_event.h:
no more need to hide XID in tests output as we have replace-regex
sql/mysqld.cc:
no more need to hide XID in tests output as we have replace-regex
mysql-test/extra/rpl_tests/rpl_log.test:
Remove disable log per lars
mysql-test/r/rpl_stm_log.result:
New results file
mysql-test/r/rpl_row_log.result:
New results file
mysql-test/r/rpl_row_log_innodb.result:
New results file
Updated per lars
rpl_row_flsh_tbls.test:
updated per lars
mysql-test/extra/rpl_tests/rpl_flsh_tbls.test:
Updated per lars
mysql-test/t/rpl_row_flsh_tbls.test:
updated per lars
mysql-test/t/rpl_multi_engine.test:
Updated per lars
mysql-test/t/rpl_row_basic_11bugs.test:
Updated per lars
mysql-test/t/rpl_sp004.test:
updated to work with default NDB engine
mysql-test/r/rpl_sp004.result:
updated to work with default NDB engine
mysql-test/extra/rpl_tests/rpl_flsh_tbls.test:
Updated to skip when ndb is default
mysql-test/t/rpl_multi_engine.test:
Results will not match when ndb is default do to myisam table creates and show create
mysql-test/t/rpl_row_basic_11bugs.test:
Disables for when ndb is default as the show binlog events will cause failure
Added support for UPDATE.
Some minor fixes.
mysql-test/t/rpl_row_tabledefs_2myisam.test:
Rename: mysql-test/t/rpl_row_tabledefs.test -> mysql-test/t/rpl_row_tabledefs_2myisam.test
mysql-test/extra/rpl_tests/rpl_row_tabledefs.test:
Extending test to ensure that there is one more null byte on slave than
it is on the master.
Some cleanup.
sql/field.cc:
Added support to find the last null byte for a field.
sql/field.h:
Added support to find the last null byte for a field.
sql/log_event.cc:
unpack_row() will now deduce the number of null bytes on the slave
and use that when copying the null bytes from the row.
Factored out code to copy "extra" record fields into separate function.
Used that function to copy the "extra" fields when updating a row as well.
mysql-test/r/rpl_row_tabledefs_2myisam.result:
Result change
mysql-test/r/rpl_row_tabledefs_3innodb.result:
New BitKeeper file ``mysql-test/r/rpl_row_tabledefs_3innodb.result''
mysql-test/r/rpl_row_tabledefs_7ndb.result:
New BitKeeper file ``mysql-test/r/rpl_row_tabledefs_7ndb.result''
mysql-test/t/rpl_row_tabledefs_3innodb.test:
New BitKeeper file ``mysql-test/t/rpl_row_tabledefs_3innodb.test''
(Fixes core dump in rpl_failed_optimize.test)
Ensure we end active transcations if we do an admin command (like optimize, repair etc)
mysql-test/extra/rpl_tests/rpl_failed_optimize.test:
Added extra test + drop of table at end of test
mysql-test/lib/mtr_report.pl:
Fail if mysqld asserts or prints stack
mysql-test/mysql-test-run.sh:
Fail if mysqld asserts or prints stack
mysql-test/r/exampledb.result:
Cleanup of events_tests (as this caused a lot of problems if it didn't work)
mysql-test/r/innodb.result:
Extra test to see that we can do an optimize table on an active transaction
mysql-test/r/rpl_failed_optimize.result:
Added extra test + drop of table at end of test
mysql-test/t/exampledb.test:
Cleanup of events_tests (as this caused a lot of problems if it didn't work)
mysql-test/t/innodb.test:
Extra test to see that we can do an optimize table on an active transaction
sql/handler.cc:
Don't use row level logging on optimize or repair table.
sql/log.cc:
Simplify code (no logic changes)
sql/mysql_priv.h:
Added prototype
sql/sql_base.cc:
Better name for define
sql/sql_class.cc:
Indentation fix
sql/sql_parse.cc:
Make end_active_trans() global
sql/sql_table.cc:
Ensure we end active transcations if we do an admin command (like optimize, repair etc)
Extended replication to allow extra columns added last on slave
as compared with table on master.
mysql-test/extra/rpl_tests/rpl_row_tabledefs.test:
Testing that replication can handle extra extra columns on slave.
mysql-test/r/rpl_row_tabledefs.result:
Result file change
sql/Makefile.am:
Adding new files.
sql/field.cc:
Implementing missing Field_bit::set_default()
sql/field.h:
Implementing missing Field_bit::set_default()
sql/log_event.cc:
Extending unpack_row() and replace_record() to handle the case when there are more columns
on the slave than on the master. Especially handle BIT columns correctly.
Using newly introduced table_def class to perform comparison.
sql/log_event.h:
Adding field to table_map_log_event. Changing prototype for do_prepare_row().
sql/mysql_priv.h:
Adding include guards
mysql-test/t/rpl_row_tabledefs.test:
New BitKeeper file ``mysql-test/t/rpl_row_tabledefs.test''
sql/rpl_utility.cc:
New BitKeeper file ``sql/rpl_utility.cc''
sql/rpl_utility.h:
New BitKeeper file ``sql/rpl_utility.h''
mysql-test/extra/rpl_tests/rpl_insert_id.test:
Post-merge fix. Added new 5.0 test case manually.
sql/sql_yacc.yy:
Post-merge fix. Removed GOTO/LABEL from parser.
client/mysql.cc:
Auto merged
mysql-test/mysql-test-run.sh:
Auto merged
mysql-test/r/func_gconcat.result:
Auto merged
mysql-test/t/rpl_relayrotate.test:
Auto merged
mysys/mf_keycache.c:
Auto merged
BitKeeper/deleted/.del-innodb_unsafe_binlog-master.opt~9cbe1bb3d8696c5b:
Auto merged
mysql-test/t/rpl_stm_until.test:
Auto merged
sql/item_func.cc:
Auto merged
sql/lock.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_union.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/unireg.h:
Auto merged
storage/ndb/src/kernel/SimBlockList.cpp:
Auto merged
storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrInit.cpp:
Auto merged
This is not a bug. Enabling disabled test and adding comment.
mysql-test/extra/rpl_tests/rpl_sv_relay_space.test:
Adding comment about test.
mysql-test/r/rpl_ndb_relay_space.result:
Result change.
mysql-test/r/rpl_relay_space_innodb.result:
Result change.
mysql-test/r/rpl_relay_space_myisam.result:
Result change.
mysql-test/t/disabled.def:
Enabling test
better replicaiton test cleanup to ensure better test predictability
+ some ndb test cleanup
client/mysqltest.c:
increase save_master_pos timeout to 30 seconds for higher test predictability
mysql-test/extra/rpl_tests/rpl_ddl.test:
better replicaiton test cleanup to ensure better test predictability
mysql-test/extra/rpl_tests/rpl_row_UUID.test:
better replicaiton test cleanup to ensure better test predictability
mysql-test/r/rpl_ndb_dd_advance.result:
better replicaiton test cleanup to ensure better test predictability
mysql-test/r/rpl_ndb_sync.result:
better replicaiton test cleanup to ensure better test predictability
mysql-test/t/disabled.def:
better replicaiton test cleanup to ensure better test predictability
mysql-test/t/rpl_ndb_bank.test:
better replicaiton test cleanup to ensure better test predictability
mysql-test/t/rpl_ndb_basic.test:
better replicaiton test cleanup to ensure better test predictability
mysql-test/t/rpl_ndb_dd_advance.test:
better replicaiton test cleanup to ensure better test predictability
mysql-test/t/rpl_ndb_dd_basic.test:
better replicaiton test cleanup to ensure better test predictability
mysql-test/t/rpl_ndb_sync.test:
better replicaiton test cleanup to ensure better test predictability
Switching to using index_read() instead of index_read_idx() since a
range of rows need to be retrieved.
mysql-test/r/rpl_row_basic_8partition.result:
Result change
mysql-test/t/rpl_row_basic_8partition.test:
Enabling section for testing PARTITION BY KEY().
sql/log_event.cc:
Using index_read() instead of index_read_idx() since a range of records
are read using index_next().
mysql-test/extra/rpl_tests/rpl_partition.test:
New BitKeeper file ``mysql-test/extra/rpl_tests/rpl_partition.test''
into mysql.com:/home/bk/w3023-mysql-5.1-new
configure.in:
Auto merged
mysql-test/extra/binlog_tests/insert_select-binlog.test:
Auto merged
mysql-test/r/binlog_row_insert_select.result:
Auto merged
mysql-test/r/rpl_row_basic_11bugs.result:
Auto merged
scripts/mysql_fix_privilege_tables.sql:
Auto merged
sql/ha_ndbcluster_binlog.cc:
Auto merged
sql/handler.h:
Auto merged
sql/log_event.cc:
Auto merged
sql/log_event.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_table.cc:
Auto merged
client/Makefile.am:
Merging with mysql-5.1-new
mysql-test/r/binlog_row_ctype_cp932.result:
Merging with mysql-5.1-new
mysql-test/r/rpl_ndb_blob.result:
Merging with mysql-5.1-new
mysql-test/r/rpl_ndb_dd_basic.result:
Merging with mysql-5.1-new
More adaptions to make it work with existing code base.
mysql-test/extra/rpl_tests/rpl_row_charset.test:
Info for RBR events now include table id; changed test to not
depend on the table id.
mysql-test/r/rpl_ndb_blob.result:
Result change
mysql-test/r/rpl_ndb_dd_basic.result:
Result change
mysql-test/r/rpl_row_basic_7ndb.result:
Result change
mysql-test/r/rpl_row_drop.result:
Result change
mysql-test/r/rpl_row_log.result:
Result change
mysql-test/r/rpl_row_log_innodb.result:
Result change
mysql-test/r/rpl_row_sp008.result:
Result change
mysql-test/r/rpl_switch_stm_row_mixed.result:
Result change
sql/ha_ndbcluster_binlog.cc:
Enabled patch to NDB to support new locking scheme.
sql/handler.cc:
Added test to prevent logging if the binlog is closed.
sql/log.cc:
Adaptions to use thread-local variable for enabling row-based replication.
sql/log_event.cc:
Fixing compile failure.
sql/slave.cc:
Reordering in initializer list to eliminate compiler warning.
sql/sql_base.cc:
Bad use of return when DBUG_RETURN should be used.
sql/sql_insert.cc:
Adaptions to use thread-local variable for enabling row-based replication.
mysql-test/extra/rpl_tests/rpl_ndb_2multi_eng.test:
Updated from review comments
mysql-test/include/rpl_multi_engine3.inc:
Updated from review comments
into mysql.com:/home/bk/w3023-mysql-5.1-new
configure.in:
Auto merged
BitKeeper/deleted/.del-sp_notembedded.test:
Auto merged
mysql-test/extra/binlog_tests/binlog.test:
Auto merged
mysql-test/extra/binlog_tests/blackhole.test:
Auto merged
mysql-test/r/binlog_stm_ctype_cp932.result:
Auto merged
mysql-test/t/sp.test:
Auto merged
scripts/mysql_fix_privilege_tables.sql:
Auto merged
sql/ha_ndbcluster_binlog.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/handler.h:
Auto merged
sql/log.h:
Auto merged
sql/log_event.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/opt_range.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/table.h:
Auto merged
mysql-test/extra/binlog_tests/insert_select-binlog.test:
Fixing isssues with preexisting tables
mysql-test/r/binlog_stm_insert_select.result:
new results
mysql-test/t/rpl_ndb_2innodb.test:
New rpl ndb test case for replicating to other storage engines
mysql-test/t/rpl_ndb_2myisam.test:
New rpl ndb test case for replicating to other storage engines
mysql-test/t/rpl_ndb_2innodb-slave.opt:
New rpl ndb test supporting option files
mysql-test/t/rpl_ndb_2innodb-master.opt:
New rpl ndb test supporting option files
mysql-test/t/rpl_ndb_2myisam-master.opt:
New rpl ndb test supporting option files
mysql-test/t/rpl_ndb_2myisam-slave.opt:
New rpl ndb test supporting option files
mysql-test/t/rpl_ndb_innodb2ndb.test:
New rpl ndb test case for replicating from other storage engines to ndb
mysql-test/t/rpl_ndb_myisam2ndb.test:
New rpl ndb test case for replicating from other storage engines to ndb
mysql-test/t/rpl_ndb_innodb2ndb-master.opt:
New rpl ndb test supporting option files
mysql-test/t/rpl_ndb_innodb2ndb-slave.opt:
New rpl ndb test supporting option files
mysql-test/t/rpl_ndb_myisam2ndb-master.opt:
New rpl ndb test supporting option files
mysql-test/t/rpl_ndb_myisam2ndb-slave.opt:
New rpl ndb test supporting option files
mysql-test/extra/rpl_tests/rpl_ndb_2multi_eng.test:
New test code that drives the rpl of ndb -> innodb/myisam or innodb/myisam -> ndb
mysql-test/include/rpl_multi_engine3.inc:
New include that cover repeating code of the rpl of ndb -> innodb/myisam or innodb/myisam -> ndb
mysql-test/t/disabled.def:
Updated to include new test cases that have outstanding bug reports.
into mysql.com:/home/my/mysql-5.1
BitKeeper/deleted/.del-innodb_notembedded.test:
Delete: mysql-test/t/innodb_notembedded.test
BitKeeper/deleted/.del-sp_notembedded.test:
Delete: mysql-test/t/sp_notembedded.test
BitKeeper/deleted/.del-subselect_notembedded.test:
Delete: mysql-test/t/subselect_notembedded.test
BitKeeper/deleted/.del-ctype_cp932_notembedded.result:
Delete: mysql-test/r/ctype_cp932_notembedded.result
BitKeeper/deleted/.del-innodb_notembedded.result:
Delete: mysql-test/r/innodb_notembedded.result
BitKeeper/deleted/.del-sp_notembedded.result:
Delete: mysql-test/r/sp_notembedded.result
BitKeeper/deleted/.del-subselect_notembedded.result:
Delete: mysql-test/r/subselect_notembedded.result
configure.in:
Auto merged
include/mysql.h:
Auto merged
libmysql/libmysql.c:
Auto merged
libmysqld/emb_qcache.cc:
Auto merged
libmysqld/embedded_priv.h:
Auto merged
libmysqld/libmysqld.c:
Auto merged
mysql-test/extra/binlog_tests/blackhole.test:
Auto merged
mysql-test/mysql-test-run.sh:
Auto merged
mysql-test/r/innodb.result:
Auto merged
mysql-test/r/mysqltest.result:
Auto merged
mysql-test/r/query_cache.result:
Auto merged
mysql-test/r/query_cache_notembedded.result:
Auto merged
mysql-test/r/sp-error.result:
Auto merged
mysql-test/r/sp.result:
Auto merged
mysql-test/r/subselect.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/r/view_grant.result:
Auto merged
mysql-test/t/backup.test:
Auto merged
mysql-test/t/compress.test:
Auto merged
mysql-test/t/delayed.test:
Auto merged
mysql-test/t/handler.test:
Auto merged
mysql-test/t/mysql.test:
Auto merged
mysql-test/t/mysql_client_test.test:
Auto merged
mysql-test/t/mysqltest.test:
Auto merged
mysql-test/t/query_cache.test:
Auto merged
mysql-test/t/query_cache_notembedded.test:
Auto merged
mysql-test/t/read_only.test:
Auto merged
mysql-test/t/skip_grants.test:
Auto merged
mysql-test/t/sp-destruct.test:
Auto merged
mysql-test/t/sp-error.test:
Auto merged
mysql-test/t/sp-threads.test:
Auto merged
mysql-test/t/sp.test:
Auto merged
mysql-test/t/temp_table.test:
Auto merged
mysql-test/t/view_grant.test:
Auto merged
mysql-test/t/wait_timeout.test:
Auto merged
mysys/mf_dirname.c:
Auto merged
sql/field.cc:
Auto merged
sql/handler.h:
Auto merged
sql/item.h:
Auto merged
sql/log_event.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/opt_range.cc:
Auto merged
sql/protocol.cc:
Auto merged
sql/protocol.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_cursor.cc:
Auto merged
sql/sql_db.cc:
Auto merged
sql-common/client.c:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_select.h:
Auto merged
sql/table.h:
Auto merged
sql/tztime.cc:
Auto merged
sql/tztime.h:
Auto merged
storage/ndb/include/ndbapi/NdbDictionary.hpp:
Auto merged
tests/mysql_client_test.c:
Auto merged
libmysqld/lib_sql.cc:
Manual merge
mysql-test/extra/binlog_tests/binlog.test:
Manual merge
mysql-test/extra/binlog_tests/ctype_cp932.test:
No changes
mysql-test/r/binlog_stm_binlog.result:
Manual merge
mysql-test/r/binlog_stm_ctype_cp932.result:
No changes
mysql-test/t/innodb.test:
Manual merge
mysql-test/t/view.test:
Manual merge
mysys/my_bitmap.c:
Manual merge
scripts/mysql_fix_privilege_tables.sql:
Manual merge
sql/item.cc:
Manual merge
sql/sql_cache.h:
Manual merge
sql/sql_class.h:
Manual merge
sql/sql_update.cc:
Manual merge
into mysql.com:/home/bk/w3023-mysql-5.1-new
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
Auto merged
mysql-test/extra/rpl_tests/rpl_log.test:
Auto merged
mysql-test/extra/rpl_tests/rpl_row_delayed_ins.test:
Auto merged
mysql-test/r/binlog_row_insert_select.result:
Auto merged
mysql-test/r/rpl_row_delayed_ins.result:
Auto merged
mysql-test/t/rpl_sp.test:
Auto merged
mysql-test/t/sp.test:
Auto merged
sql/ha_ndbcluster_binlog.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/handler.h:
Auto merged
mysql-test/t/rpl_ndb_dd_basic.test:
Auto merged
sql/log.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/opt_range.cc:
Auto merged
sql/slave.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/table.h:
Auto merged
mysql-test/r/binlog_row_mix_innodb_myisam.result:
Merge with 5.1.7 release clone.
mysql-test/r/rpl_row_basic_11bugs.result:
Merge with 5.1.7 release clone.
mysql-test/r/rpl_row_basic_2myisam.result:
Merge with 5.1.7 release clone.
mysql-test/r/rpl_row_basic_3innodb.result:
Merge with 5.1.7 release clone.
mysql-test/r/rpl_row_create_table.result:
Merge with 5.1.7 release clone.
mysql-test/r/rpl_row_log.result:
Merge with 5.1.7 release clone.
mysql-test/r/rpl_row_log_innodb.result:
Merge with 5.1.7 release clone.
mysql-test/r/rpl_row_sp008.result:
Merge with 5.1.7 release clone.
mysql-test/t/rpl_row_basic_11bugs.test:
Merge with 5.1.7 release clone.
mysql-test/t/rpl_row_sp008.test:
Merge with 5.1.7 release clone.
Adaptions to make it work with NDB.
mysql-test/extra/binlog_tests/binlog.test:
Using replace_regex to remove table id.
mysql-test/extra/binlog_tests/blackhole.test:
Using replace_regex to remove table id.
mysql-test/extra/binlog_tests/ctype_cp932.test:
Using replace_regex to remove table id.
mysql-test/extra/binlog_tests/ctype_cp932_binlog.test:
Using replace_regex to remove table id.
mysql-test/extra/binlog_tests/ctype_ucs_binlog.test:
Using replace_regex to remove table id.
mysql-test/extra/binlog_tests/drop_temp_table.test:
Using replace_regex to remove table id.
mysql-test/extra/binlog_tests/insert_select-binlog.test:
Using replace_regex to remove table id.
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
Using replace_regex to remove table id.
mysql-test/extra/rpl_tests/rpl_flsh_tbls.test:
Using replace_regex to remove table id.
mysql-test/extra/rpl_tests/rpl_log.test:
Using replace_regex to remove table id.
mysql-test/extra/rpl_tests/rpl_multi_query.test:
Using replace_regex to remove table id.
mysql-test/extra/rpl_tests/rpl_row_charset.test:
Using replace_regex to remove table id.
mysql-test/extra/rpl_tests/rpl_row_delayed_ins.test:
Using replace_regex to remove table id.
mysql-test/extra/rpl_tests/rpl_stm_charset.test:
Using replace_regex to remove table id.
mysql-test/include/rpl_row_basic.inc:
Removing sync with master on cleanup since there are engines that does
not work in a "syncronized" fashion on dropping tables.
mysql-test/r/binlog_row_binlog.result:
Result change
mysql-test/r/binlog_row_blackhole.result:
Result change
mysql-test/r/binlog_row_ctype_cp932.result:
Result change
mysql-test/r/binlog_row_ctype_ucs.result:
Result change
mysql-test/r/binlog_row_insert_select.result:
Result change
mysql-test/r/binlog_row_mix_innodb_myisam.result:
Result change
mysql-test/r/ctype_cp932_binlog_row.result:
Result change
mysql-test/r/rpl_row_basic_11bugs.result:
Result change
mysql-test/r/rpl_row_basic_2myisam.result:
Result change
mysql-test/r/rpl_row_basic_3innodb.result:
Result change
mysql-test/r/rpl_row_charset.result:
Result change
mysql-test/r/rpl_row_create_table.result:
Result change
mysql-test/r/rpl_row_delayed_ins.result:
Result change
mysql-test/r/rpl_row_log.result:
Result change
mysql-test/r/rpl_row_log_innodb.result:
Result change
mysql-test/r/rpl_row_max_relay_size.result:
Result change
mysql-test/r/rpl_row_sp008.result:
Result change
mysql-test/t/binlog_stm_binlog.test:
Using replace_regex to remove table id.
mysql-test/t/ndb_binlog_ddl_multi.test:
Using replace_regex to remove table id.
mysql-test/t/ndb_binlog_ignore_db.test:
Using replace_regex to remove table id.
mysql-test/t/rpl_heap.test:
Using replace_regex to remove table id.
mysql-test/t/rpl_loaddata_s.test:
Using replace_regex to remove table id.
mysql-test/t/rpl_ndb_blob.test:
Using replace_regex to remove table id.
mysql-test/t/rpl_ndb_disk.test:
Using replace_regex to remove table id.
mysql-test/t/rpl_row_basic_11bugs.test:
Using replace_regex to remove table id.
mysql-test/t/rpl_row_create_table.test:
Using replace_regex to remove table id.
mysql-test/t/rpl_row_drop.test:
Using replace_regex to remove table id.
mysql-test/t/rpl_row_sp008.test:
Using replace_regex to remove table id.
mysql-test/t/rpl_sp.test:
Using replace_regex to remove table id.
mysql-test/t/sp.test:
Using replace_regex to remove table id.
mysql-test/t/sp_notembedded.test:
Using replace_regex to remove table id.
mysql-test/t/user_var-binlog.test:
Using replace_regex to remove table id.
sql/ha_ndbcluster_binlog.cc:
Assign_new_table_id() now takes table share.
Removed gratuitous friend declaration of ndb_add_binlog_index().
Turning of binlogging during execution of ndb_add_binlog_index().
sql/handler.h:
Removed gratuitous friend declaration of ndb_add_binlog_index().
sql/log.cc:
Adding debug printout.
sql/log_event.cc:
Closing thread tables on dummy event.
sql/rpl_injector.cc:
Added support for new locking scheme.
sql/rpl_injector.h:
Added support for new locking scheme.
Rename mix_innodb_myisam_binlog-master.opt; when the test was moved to
separate stm/row test cases, the .opt were not moved along with it,
causing a 60-second test duration because of default lock timeout :-(
mysql-test/t/binlog_row_mix_innodb_myisam-master.opt:
bk cp mysql-test/t/mix_innodb_myisam_binlog-master.opt mysql-test/t/binlog_row_mix_innodb_myisam-master.opt
mysql-test/t/binlog_stm_mix_innodb_myisam-master.opt:
Rename: mysql-test/t/mix_innodb_myisam_binlog-master.opt -> mysql-test/t/binlog_stm_mix_innodb_myisam-master.opt
mysql-test/r/mysqlbinlog_base64.result:
Fix test cases to work with non-standard --vardir.
mysql-test/r/ndb_load.result:
Fix test cases to work with non-standard --vardir.
mysql-test/r/rpl_LD_INFILE.result:
Fix test cases to work with non-standard --vardir.
mysql-test/r/rpl_loaddata2.result:
Fix test cases to work with non-standard --vardir.
mysql-test/r/rpl_loaddata_m.result:
Fix test cases to work with non-standard --vardir.
mysql-test/t/loaddata.test:
Fix test cases to work with non-standard --vardir.
mysql-test/t/mysqlbinlog_base64.test:
Fix test cases to work with non-standard --vardir.
mysql-test/t/ndb_dd_dump.test:
Fix test cases to work with non-standard --vardir.
mysql-test/t/ndb_load.test:
Fix test cases to work with non-standard --vardir.
mysql-test/t/rpl_LD_INFILE.test:
Fix test cases to work with non-standard --vardir.
mysql-test/t/rpl_loaddata2.test:
Fix test cases to work with non-standard --vardir.
mysql-test/t/rpl_loaddata_m.test:
Fix test cases to work with non-standard --vardir.
mysql-test/t/rpl_loadfile.test:
Fix test cases to work with non-standard --vardir.
mysql-test/extra/rpl_tests/rpl_row_001.test:
Fix test cases to work with non-standard --vardir.
mysql-test/r/rpl_load_table_from_master.result:
Fix test cases to work with non-standard --vardir.
mysql-test/r/rpl_loadfile.result:
Fix test cases to work with non-standard --vardir.
mysql-test/r/rpl_ndb_row_001.result:
Fix test cases to work with non-standard --vardir.
mysql-test/r/rpl_row_001.result:
Fix test cases to work with non-standard --vardir.
mysql-test/r/rpl_row_loaddata_m.result:
Fix test cases to work with non-standard --vardir.
mysql-test/r/rpl_row_stop_middle_update.result:
Fix test cases to work with non-standard --vardir.
mysql-test/t/rpl_drop_db.test:
Fix test cases to work with non-standard --vardir.
mysql-test/t/rpl_load_table_from_master.test:
Fix test cases to work with non-standard --vardir.
mysql-test/t/rpl_row_stop_middle_update.test:
Fix test cases to work with non-standard --vardir.
mysql-test/extra/rpl_tests/rpl_row_UUID.test:
Fix test cases to work with non-standard --vardir.
mysql-test/extra/rpl_tests/rpl_row_blob.test:
Fix test cases to work with non-standard --vardir.
mysql-test/extra/rpl_tests/rpl_row_charset.test:
Fix test cases to work with non-standard --vardir.
mysql-test/extra/rpl_tests/rpl_row_func003.test:
Fix test cases to work with non-standard --vardir.
mysql-test/extra/rpl_tests/rpl_row_sp006.test:
Fix test cases to work with non-standard --vardir.
mysql-test/include/ndb_backup.inc:
Fix test cases to work with non-standard --vardir.
mysql-test/r/rpl_ndb_bank.result:
Fix test cases to work with non-standard --vardir.
mysql-test/r/rpl_ndb_sync.result:
Fix test cases to work with non-standard --vardir.
mysql-test/t/rpl_ndb_bank.test:
Fix test cases to work with non-standard --vardir.
mysql-test/t/rpl_ndb_sync.test:
Fix test cases to work with non-standard --vardir.
mysql-test/t/rpl_row_NOW.test:
Fix test cases to work with non-standard --vardir.
mysql-test/t/rpl_row_func002.test:
Fix test cases to work with non-standard --vardir.
mysql-test/t/rpl_row_sp001.test:
Fix test cases to work with non-standard --vardir.
mysql-test/t/rpl_row_sp011.test:
Fix test cases to work with non-standard --vardir.
mysql-test/t/rpl_row_trig001.test:
Fix test cases to work with non-standard --vardir.
mysql-test/t/rpl_row_trig003.test:
Fix test cases to work with non-standard --vardir.
mysql-test/t/rpl_sp004.test:
Fix test cases to work with non-standard --vardir.
mysql-test/t/show_check.test:
Fix test cases to work with non-standard --vardir.
mysql-test/include/partition_1.inc:
Fix test cases to work with non-standard --vardir.
mysql-test/include/partition_layout.inc:
Fix test cases to work with non-standard --vardir.
mysql-test/r/ndb_dd_backuprestore.result:
Fix test cases to work with non-standard --vardir.
"mysqldump" test fails (mysqlimport related, Brian aware), ndb_cache2 ndb_cache_multi2
partition_mgm_err fail (unrelated to my changes), rpl_row_view01 (known crash BUG#17265)
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
compared with 5.0, this part has to move to the wrappers as the arg of --start-position depends on row-based or statement-based replication
mysql-test/r/binlog_row_mix_innodb_myisam.result:
result update
mysql-test/r/rpl_row_UUID.result:
result update (somebody had forgotten to run row-based tests, the solution is to use "make test" :)
mysql-test/t/binlog_row_mix_innodb_myisam.test:
merge from 5.0
mysql-test/t/binlog_stm_mix_innodb_myisam.test:
merge form 5.0
sql/mysqld.cc:
fix after merge
sql/sp_head.cc:
fix after merge
into mysql.com:/home/mysql_src/mysql-5.1-new
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
Auto merged
mysql-test/r/binlog_stm_mix_innodb_myisam.result:
Auto merged
into mysql.com:/home/mysql_src/mysql-5.1-new; will fix manually sp_head.cc and mysqld.cc later soon.
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
Auto merged
mysql-test/r/binlog_stm_mix_innodb_myisam.result:
Auto merged
mysql-test/r/rpl_sp.result:
Auto merged
mysql-test/r/sql_mode.result:
Auto merged
mysql-test/t/rpl_sp-slave.opt:
Auto merged
mysql-test/t/rpl_sp.test:
Auto merged
mysql-test/t/sql_mode.test:
Auto merged
sql/set_var.cc:
Auto merged
sql/log.cc:
auto merged
sql/mysqld.cc:
will fix manually
sql/sp_head.cc:
will fix manually
mysql-test/t/disabled.def:
Updated
mysql-test/extra/rpl_tests/rpl_log.test:
Updated and moved drop of tables to end of test to help bin log be more deterministic
mysql-test/r/rpl_row_log.result:
Updated results
mysql-test/r/rpl_row_log_innodb.result:
Updated results
mysql-test/r/rpl_ndb_log.result:
Updated results
into mysql.com:/home/bk/w3023-mysql-5.1-new
mysql-test/extra/binlog_tests/ctype_cp932.test:
Auto merged
mysql-test/r/binlog_row_blackhole.result:
Auto merged
mysql-test/r/binlog_stm_ctype_cp932.result:
Auto merged
sql/handler.cc:
Auto merged
sql/handler.h:
Auto merged
sql/lock.cc:
Auto merged
sql/log.cc:
Auto merged
sql/log.h:
Auto merged
sql/log_event.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/opt_range.cc:
Auto merged
sql/parse_file.cc:
Auto merged
sql/slave.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_load.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/table.h:
Auto merged
sql/log_event.cc:
Merge with mysql-5.1-new
Table maps are now written on aquiring locks to tables and released
at the end of each logical statement.
mysql-test/extra/binlog_tests/ctype_cp932.test:
Disabling cleanup code
mysql-test/r/binlog_row_blackhole.result:
Result change
mysql-test/r/binlog_row_mix_innodb_myisam.result:
Result change
mysql-test/r/binlog_stm_ctype_cp932.result:
Result change
mysql-test/r/rpl_row_charset.result:
Result change
mysql-test/r/rpl_row_create_table.result:
Result change
mysql-test/t/rpl_row_create_table.test:
Binlog position change
sql/handler.cc:
Writing table map after external_lock()
sql/handler.h:
Adding class for table operation hooks.
sql/log.cc:
Adding binlog_write_table_map() to THD.
Removing write_table_map() from MYSQL_LOG.
sql/log.h:
Minor interface changes to move table map writing.
sql/log_event.cc:
Removing pre-allocation of memory for buffers.
Allowing ULONG_MAX as table id denoting an event to ignore (only used to transfer flags).
Adding code to collect tables while seeing table maps and lock collected tables
when seeing a binrow event.
Debriding code as a result of the above changes.
sql/log_event.h:
Minor interface changes.
sql/mysql_priv.h:
Adding hooks argument to create_table_from_items().
sql/parse_file.cc:
Minor fix to avoid crash in debug printout.
sql/rpl_rli.h:
Adding list of tables to lock to RLI structure.
sql/slave.cc:
Using list of tables to lock from RLI structure.
sql/sql_acl.cc:
Removing redundant pending events flush.
sql/sql_base.cc:
Moving pending event flush.
Using flag to guard to clear statement transaction only if this is the original
open tables state.
sql/sql_class.cc:
Adding flag for open tables state.
Removing redundant pending events flushes.
Write a dummy event to indicate that the tables to lock should be emptied
on the slave.
sql/sql_class.h:
Adding open tables state flags.
Adding binlog_write_table_map() function to THD.
Changes to select_create() to support new locking scheme.
sql/sql_insert.cc:
Adding rollback of statement transaction on error. It can now contain
events after locking tables.
sql/sql_load.cc:
Removing redundant pending event flush.
sql/sql_table.cc:
Adding hooks argument to create_table_from_items().
Calling prelock hook before starting to lock tables.
sql/sql_update.cc:
Removing a compiler warning.
sql/table.h:
Minor changes.
BitKeeper/deleted/.del-rpl_row_multi_update3.test~fcf9a2234bd0f1b:
Delete: mysql-test/t/rpl_row_multi_update3.test
BitKeeper/deleted/.del-rpl_row_multi_update3.test~b366698f8379f38f:
Delete: mysql-test/extra/rpl_tests/rpl_row_multi_update3.test
BitKeeper/deleted/.del-rpl_row_multi_update3.result~1a3a8438eaaf11f2:
Delete: mysql-test/r/rpl_row_multi_update3.result
mysql-test/t/rpl_ndb_commit_afterflush.test:
added comments
mysql-test/r/rpl_ndb_commit_afterflush.result:
New results file
mysql-test/t/rpl_ddl.test:
Added to skip default ndb engine
mysql-test/t/rpl_ndb_ddl.test:
new wrapper for ndb
mysql-test/r/rpl_ndb_ddl.result:
new wrapper for ndb
mysql-test/t/rpl_insert_ignore.test:
Added to skip ndb if default engine
mysql-test/t/rpl_ndb_insert_ignore.test:
New wrapper for ndb
mysql-test/r/rpl_ndb_insert_ignore.result:
New Results file
mysql-test/t/rpl_multi_update2.test:
Updated to skip ndb default engine + added comments
mysql-test/t/rpl_ndb_multi_update2.test:
New ndb wrapper for test case
mysql-test/t/rpl_ndb_multi_update2-slave.opt:
New slave option file to go with new NDB test wrapper
mysql-test/r/rpl_ndb_multi_update2.result:
New results file
mysql-test/t/rpl_multi_update3.test:
Updated to skip ndb default engine + added comments
mysql-test/t/rpl_ndb_multi_update3.test:
New ndb wrapper for test case
mysql-test/r/rpl_ndb_multi_update3.result:
New results file
mysql-test/t/rpl_relayrotate.test:
added comments and ability to sjip when ndb is default engine
mysql-test/t/rpl_ndb_relayrotate.test:
New wrapper for ndb
mysql-test/t/rpl_ndb_relayrotate-slave.opt:
New option file for ndb slave
mysql-test/r/rpl_ndb_relayrotate.result:
New results file
mysql-test/t/rpl_loaddata.test:
Updated
mysql-test/t/rpl_multi_update.test:
Updated
mysql-test/t/rpl_relay_space_myisam.test:
Updated
mysql-test/t/rpl_row_001.test:
Updated
mysql-test/t/rpl_row_blob_myisam.test:
Updated
mysql-test/t/rpl_row_charset.test:
Updated
mysql-test/t/rpl_row_delayed_ins.test:
Updated
mysql-test/t/rpl_row_log.test:
Updated
mysql-test/t/rpl_row_UUID.test:
Updated
mysql-test/t/rpl_auto_increment.test:
Updated
mysql-test/t/rpl_commit_after_flush.test:
Updated
mysql-test/t/rpl_deadlock_innodb.test:
Updated
mysql-test/t/rpl_failed_optimize.test:
Updated
mysql-test/t/rpl_foreign_key_innodb.test:
Updated
mysql-test/t/rpl_insert_id_pk.test:
Updated
mysql-test/t/rpl_insert_id.test:
Updated
mysql-test/t/rpl_relay_space_innodb.test:
Updated
mysql-test/t/rpl_row_blob_innodb.test:
Updated
mysql-test/t/rpl_row_func003.test:
Updated
mysql-test/t/rpl_row_log_innodb.test:
Updated
mysql-test/t/rpl_row_sp002_innodb.test:
Updated
mysql-test/t/rpl_row_sp003.test:
Updated
mysql-test/t/rpl_row_sp006_InnoDB.test:
Updated
mysql-test/t/rpl_row_sp007_innodb.test:
Updated
mysql-test/t/rpl_ndb_row_001.test:
New wrapper for ndb
mysql-test/r/rpl_ndb_row_001.result:
New results file
mysql-test/t/rpl_ndb_UUID.test:
New wrapper for ndb
mysql-test/r/rpl_ndb_UUID.result:
New results file
mysql-test/extra/rpl_tests/rpl_row_delayed_ins.test:
Updated with order by
mysql-test/r/rpl_row_delayed_ins.result:
Updated results file
mysql-test/t/rpl_ndb_charset.test:
New wrapper for ndb
mysql-test/r/rpl_ndb_charset.result:
New results file
mysql-test/t/rpl_row_until.test:
Updated to skip when ndb is default. ndb bin logs are different size, so test would need to be rewitten for ndb
mysql-test/t/rpl_row_max_relay_size.test:
Updated
mysql-test/t/rpl_row_sp008.test:
Removed show binlog as it is not needed for test
mysql-test/r/rpl_row_sp008.result:
Updated results
mysql-test/t/rpl_row_basic_11bugs.test:
Removed show binlog as it is not needed for test
mysql-test/r/rpl_row_basic_11bugs.result:
Updated results
BitKeeper/deleted/.del-rpl_ndb_max_relay_size.test~afa6834a51627676:
Delete: mysql-test/t/rpl_ndb_max_relay_size.test
BitKeeper/deleted/.del-rpl_ndb_max_relay_size.result~1e944e2782e270d8:
Delete: mysql-test/r/rpl_ndb_max_relay_size.result
mysql-test/t/disabled.def:
Updated
mysql-test/t/rpl_ndb_delete_nowhere.test:
new wrapper for NDB engine
mysql-test/r/rpl_ndb_delete_nowhere.result:
new reults file
mysql-test/t/disabled.def:
Added test to be diabled
mysql-test/t/rpl_delete_no_where.test:
Fix typo
mysql-test/t/rpl_EE_err.test:
Updated wrapper
mysql-test/extra/rpl_tests/rpl_trig004.test:
Updated
mysql-test/t/rpl_row_trig004.test:
Updated
mysql-test/r/rpl_row_trig004.result:
Updated
mysql-test/t/rpl_ndb_trig004.test:
New wrapper for ndb
mysql-test/r/rpl_ndb_trig004.result:
New result
mysql-test/include/not_ndb_default.inc:
New include file to skip certain tests with default engine = ndb
mysql-test/t/rpl_optimize.test:
Updated to skip test when NDB is default engine
mysql-test/extra/rpl_tests/rpl_auto_increment.test:
Updated to skip test when NDB is default engine
BitKeeper/deleted/.del-rpl_ndb_auto_inc-master.opt~e38255d94debc2c8:
Delete: mysql-test/t/rpl_ndb_auto_inc-master.opt
mysql-test/t/rpl_ndb_auto_inc.test:
updated to use with ndb
mysql-test/r/rpl_ndb_auto_inc.result:
New results
mysql-test/t/disabled.def:
Updated to remove rpl_ndb_auto_inc.test
mysql-test/extra/rpl_tests/rpl_row_blob.test:
updated to remove check table, not needed and not supported by ndb engine
mysql-test/t/rpl_ndb_blob2.test:
new ndb wrapper
mysql-test/r/rpl_ndb_blob2.result:
new results
BitKeeper/deleted/.del-raid.test~501e9e00b3c27a55:
Delete: mysql-test/t/raid.test
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
Test change
mysql-test/r/binlog_stm_mix_innodb_myisam.result:
New results
mysql-test/r/ctype_ujis.result:
New results
mysql-test/r/innodb_concurrent.result:
New results.
mysql-test/r/rpl_heap.result:
New results
mysql-test/r/warnings.result:
New results
mysql-test/t/ctype_ujis.test:
Fixed ENGINE=, test should now actually function
mysql-test/t/innodb_concurrent.test:
Fixed test for engine
mysql-test/t/rpl_heap.test:
Fixed test for engine
mysql-test/t/system_mysql_db_fix.test:
Fixed setup.
mysql-test/t/warnings.test:
Removed deprecated tests
scripts/fill_func_tables.sh:
Fixed script
scripts/mysql_convert_table_format.sh:
Fixed script
sql/ha_innodb.cc:
Fixed comment
sql/sql_yacc.yy:
Removed deprecated syntax
tests/fork_big.pl:
Fixed scipt
tests/fork_big2.pl:
Fixed script
tests/mail_to_db.pl:
Fixed script
tests/mysql_client_test.c:
Fixed test
mysql-test/t/rpl_trigger.test:
Test cleanup
mysql-test/t/rpl_ndb_sync.test:
Test cleanup
mysql-test/t/rpl_ndb_idempotent.test:
Test cleanup
mysql-test/r/rpl_trigger.result:
Updated result files
mysql-test/r/rpl_ndb_sync.result:
Updated result files
mysql-test/r/rpl_ndb_idempotent.result:
Updated result files
mysql-test/t/rpl_ndb_dd_basic.test:
Rename: mysql-test/t/rpl_ndb_disk.test -> mysql-test/t/rpl_ndb_dd_basic.test
mysql-test/r/rpl_ndb_dd_basic.result:
Rename: mysql-test/t/rpl_ndb_dd_basic.result -> mysql-test/r/rpl_ndb_dd_basic.result
mysql-test/r/rpl_ndb_sp006.result:
New results file
mysql-test/t/rpl_row_sp007_innodb-slave.opt:
Ensure slave tables are created as innodb
mysql-test/t/disabled.def:
updated 17290
mysql-test/r/rpl_ndb_sp007.result:
New results file
mysql-test/t/rpl_ndb_sp007.test:
Added comment
mysql-test/t/rpl_ndb_sp006.test:
Added comment
mysql-test/extra/rpl_tests/rpl_row_sp003.test:
Augmented for use with NDB due to injector thread not populating the bin log before sync with master is done
mysql-test/r/rpl_ndb_sp003.result:
New results file
mysql-test/t/rpl_ndb_sp003.test:
Wrapper to use same code for testing NDB that is used for InnoDB Currently
into mysql.com:/home/ndbdev/jmiller/clones/mysql-5.1-new
mysql-test/extra/rpl_tests/rpl_log.test:
Auto merged
mysql-test/r/rpl_insert_id.result:
Auto merged
mysql-test/r/rpl_replicate_do.result:
Auto merged
mysql-test/r/rpl_row_log.result:
Auto merged
mysql-test/r/rpl_skip_error.result:
Auto merged
mysql-test/t/rpl_replicate_do.test:
Auto merged
mysql-test/t/rpl_skip_error.test:
Auto merged
BitKeeper/deleted/.del-rpl000004.result~a3147834a662043a:
Auto merged
BitKeeper/deleted/.del-rpl000004.test~61532b03f9ad2734:
Auto merged
mysql-test/t/rpl_load_from_master.test:
Auto merged
mysql-test/extra/rpl_tests/rpl_row_blob.test:
Changes that Larss requested
mysql-test/r/rpl_row_blob_innodb.result:
Changes that Larss requested
mysql-test/r/rpl_row_blob_myisam.result:
Changes that Larss requested
mysql-test/r/rpl_insert_id.result:
updated results
mysql-test/extra/rpl_tests/rpl_insert_id_pk.test:
Suggested PK test by Lars
mysql-test/t/rpl_insert_id_pk.test:
Suggested PK test by Lars
mysql-test/t/rpl_insert_id_pk-slave.opt:
Suggested PK test by Lars
mysql-test/r/rpl_insert_id_pk.result:
Suggested PK test by Lars
mysql-test/extra/rpl_tests/rpl_insert_id.test:
updated per lars
mysql-test/extra/rpl_tests/rpl_insert_id.test:
Updated wiht 1022 error, order by and PK for use with NDB engine
mysql-test/r/rpl_insert_id.result:
Updated wiht 1022 error, order by and PK for use with NDB engine
mysql-test/t/rpl_skip_error.test:
updated to wrk with ndb
mysql-test/r/rpl_skip_error.result:
updated to wrk with ndb
mysql-test/t/rpl_sporadic_master.test:
updated to wrk with ndb
mysql-test/r/rpl_sporadic_master.result:
updated to wrk with ndb
mysql-test/t/rpl_row_trig002.test:
updated to work with NDB engine
mysql-test/r/rpl_row_trig002.result:
updated to work with NDB engine
mysql-test/t/rpl_temporary.test:
updated to work with NDB engine
mysql-test/r/rpl_temporary.result:
updated to work with NDB engine
mysql-test/extra/rpl_tests/rpl_row_001.test:
updated to work with NDB as default engine
mysql-test/r/rpl_row_001.result:
updated to work with NDB as default engine
mysql-test/t/rpl_row_blob_innodb.test:
Fixed bug in test case
mysql-test/t/rpl_row_blob_innodb-slave.opt:
Added slave option file to ensure correct engine type on slave
mysql-test/r/rpl_row_blob_innodb.result:
Updated results
mysql-test/r/rpl_row_blob_myisam.result:
Updated results
mysql-test/r/rpl_ndb_log.result:
update results file
into neptunus.(none):/home/msvensson/mysql/mysql-5.1-new
mysql-test/extra/rpl_tests/rpl_stm_000001.test:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/mysql-test-run.sh:
Auto merged
mysql-test/r/query_cache.result:
Auto merged
mysql-test/r/rpl_loaddata.result:
Auto merged
mysql-test/r/rpl_loaddata_m.result:
Auto merged
mysql-test/r/rpl_loaddata_s.result:
Auto merged
mysql-test/r/rpl_misc_functions.result:
Auto merged
mysql-test/r/rpl_replicate_do.result:
Auto merged
mysql-test/r/rpl_stm_000001.result:
Auto merged
mysql-test/t/mysqltest.test:
Auto merged
mysql-test/t/query_cache.test:
Auto merged
mysql-test/t/rpl_loaddata.test:
Auto merged
mysql-test/t/rpl_loaddata_m.test:
Auto merged
mysql-test/t/rpl_loaddata_s.test:
Auto merged
mysql-test/t/rpl_misc_functions.test:
Auto merged
mysql-test/t/rpl_replicate_do.test:
Auto merged
mysql-test/t/trigger-compat.test:
Auto merged
mysql-test/t/type_varchar.test:
Auto merged
mysql-test/r/mysqltest.result:
Merge 5.0 -> 5.1
mysql-test/t/trigger-grant.test:
"Use local" when merging 5.0 -> 5.1
into neptunus.(none):/home/msvensson/mysql/mysql-5.1-new
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/ps_1general.result:
Auto merged
mysql-test/r/query_cache.result:
Auto merged
mysql-test/r/rpl_loaddata_m.result:
Auto merged
mysql-test/r/sp-security.result:
Auto merged
mysql-test/r/variables.result:
Auto merged
mysql-test/r/view_grant.result:
Auto merged
mysql-test/t/query_cache.test:
Auto merged
mysql-test/t/read_only.test:
Auto merged
mysql-test/t/sp-security.test:
Auto merged
mysql-test/t/trigger-compat.test:
Auto merged
mysql-test/t/view_grant.test:
Auto merged
mysql-test/r/trigger-compat.result:
Merge 5.0 -> 5.1
into neptunus.(none):/home/msvensson/mysql/mysqltestrun_check_testcases/my51-mysqltestrun_check_testcases
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/extra/binlog_tests/ctype_cp932.test:
Auto merged
mysql-test/extra/rpl_tests/rpl_flsh_tbls.test:
Auto merged
mysql-test/extra/rpl_tests/rpl_stm_000001.test:
Auto merged
mysql-test/r/binlog_stm_ctype_cp932.result:
Auto merged
mysql-test/r/ps_1general.result:
Auto merged
mysql-test/r/query_cache.result:
Auto merged
mysql-test/r/rpl000017.result:
Auto merged
mysql-test/r/rpl_loaddata.result:
Auto merged
mysql-test/r/rpl_loaddata_s.result:
Auto merged
mysql-test/r/rpl_replicate_do.result:
Auto merged
mysql-test/r/rpl_stm_000001.result:
Auto merged
mysql-test/r/rpl_stm_flsh_tbls.result:
Auto merged
mysql-test/r/sp-prelocking.result:
Auto merged
mysql-test/r/type_bit.result:
Auto merged
mysql-test/r/variables.result:
Auto merged
mysql-test/r/view_grant.result:
Auto merged
mysql-test/t/create_select_tmp.test:
Auto merged
mysql-test/t/ps_1general.test:
Auto merged
mysql-test/t/query_cache.test:
Auto merged
mysql-test/t/rpl000017.test:
Auto merged
mysql-test/t/rpl_replicate_do.test:
Auto merged
mysql-test/t/sp-prelocking.test:
Auto merged
mysql-test/t/trigger-compat.test:
Auto merged
mysql-test/t/variables.test:
Auto merged
mysql-test/t/view_grant.test:
Auto merged
mysql-test/r/rpl_loaddata_m.result:
Merge 5.0->5.1
mysql-test/t/rpl_failed_optimize.test:
Merge 5.0->5.1
mysql-test/t/rpl_insert_id.test:
Merge 5.0->5.1
mysql-test/t/rpl_loaddata.test:
Merge 5.0->5.1
mysql-test/t/rpl_loaddata_m.test:
Merge 5.0->5.1
mysql-test/t/rpl_loaddata_s.test:
Merge 5.0->5.1
mysql-test/t/rpl_multi_update3.test:
Merge 5.0->5.1
mysql-test/t/rpl_create_database.test:
Updated to pass when other default engines are being used
mysql-test/r/rpl_create_database.result:
Updated to pass when other default engines are being used
mysql-test/t/rpl_row_func003-slave.opt:
new opt file to enusre innodb on slave
mysql-test/t/rpl_replicate_do.test:
Updated with order by for use during ndb testing
mysql-test/r/rpl_replicate_do.result:
Updated with order by for use during ndb testing
mysql-test/t/rpl_redirect.test:
updated with order by
mysql-test/r/rpl_redirect.result:
updated with order by
mysql-test/t/rpl_ndb_func003.test:
New func003 wrapper to use NDB engine for table creation
mysql-test/r/rpl_ndb_func003.result:
New func003 wrapper to use NDB engine for table creation
mysql-test/r/rpl_row_sp001.result:
updated with order by
mysql-test/t/rpl_row_sp001.test:
updated with order by
BitKeeper/deleted/.del-rpl_row_log.test~f6ed1be9e3ca110f:
Delete: mysql-test/extra/rpl_tests/rpl_row_log.test
mysql-test/extra/rpl_tests/rpl_log.test:
Updated test to ensure that MyISAM, and innodb engines passed even if NDB was used as default engine. Due to diff in bin log output between MyISAM, InnoDB and NDB the file had to use different wrappers and results files.
mysql-test/t/rpl_row_log.test:
part of rpl_log.test check in
mysql-test/r/rpl_row_log.result:
part of rpl_log.test check in
mysql-test/r/rpl_row_log_innodb.result:
part of rpl_log.test check in
mysql-test/t/rpl_row_log_innodb-master.opt:
part of rpl_log.test check in
mysql-test/t/rpl_row_log_innodb-slave.opt:
part of rpl_log.test check in
mysql-test/t/rpl_row_log_innodb.test:
part of rpl_log.test check in
mysql-test/r/rpl_ndb_log.result:
part of rpl_log.test check in
mysql-test/t/rpl_ndb_log.test:
part of rpl_log.test check in
mysql-test/t/rpl_ndb_log-master.opt:
part of rpl_log.test check in
mysql-test/t/disabled.def:
Updated with MySQL Bugs: #17158
mysql-test/t/rpl000004.test:
Updated test so it would not fail when MyISAM was not default Engine
mysql-test/r/rpl000004.result:
Updated test so it would not fail when MyISAM was not default Engine
mysql-test/extra/rpl_tests/rpl000006.test:
Updated test so that it would not fail when other engines are set as default engine
mysql-test/r/rpl000006.result:
Updated test so that it would not fail when other engines are set as default engine
mysql-test/r/rpl_relay_space_myisam.result:
Rename: mysql-test/r/rpl000005.result -> mysql-test/r/rpl_relay_space_myisam.result
mysql-test/extra/rpl_tests/rpl_sv_relay_space.test:
Had to split the test cases out to use for each engine. Reason being that the data goes applies to ndb in different order. So it has to have its own result file and I want to ensure that it is not used for other tests when ndb is used as default engine. Old test case was called rpl000009.test, so it was renamed as well to give the test more meaning
mysql-test/t/rpl_relay_space_innodb-master.opt:
Wrapper for old test case called rpl000009.test
mysql-test/t/rpl_relay_space_innodb-slave.opt:
Wrapper for old test case called rpl000009.test
mysql-test/t/rpl_relay_space_innodb.test:
Wrapper for old test case called rpl000009.test
mysql-test/t/rpl_relay_space_myisam.test:
Wrapper for old test case called rpl000009.test
mysql-test/t/rpl_ndb_relay_space.test:
Wrapper for old test case called rpl000009.test
mysql-test/r/rpl_ndb_relay_space.result:
Result file for wrapper for old test case called rpl000009.test
mysql-test/r/rpl_relay_space_innodb.result:
Result file for wrapper for old test case called rpl000009.test
mysql-test/r/rpl_relay_space_ndb.result:
Result file for wrapper for old test case called rpl000009.test
mysql-test/t/rpl000009.test:
updated to work when ndb is default engine
mysql-test/r/rpl000009.result:
updated to work when ndb is default engine
mysql-test/t/rpl_LD_INFILE.test:
Plan test cleanup
mysql-test/r/rpl_LD_INFILE.result:
Plan test cleanup
mysql-test/t/rpl_auto_increment-slave.opt:
needed to ensure test does not fail if default engine is specified
mysql-test/extra/rpl_tests/rpl_auto_increment.test:
Sorry, forgot to cleanup from debugging
mysql-test/t/rpl_ndb_auto_inc.test:
New wrapper for NDB
mysql-test/t/rpl_ndb_auto_inc-master.opt:
New wrapper for NDB
mysql-test/r/rpl_ndb_auto_inc.result:
New wrapper for NDB
mysql-test/t/disabled.def:
Updated
mysql-test/extra/rpl_tests/rpl_loaddata.test:
Update to use std_data_ln
mysql-test/mysql-test-run.pl:
Add back variable path_mysqltest_log
mysql-test/r/rpl_loaddata.result:
Binlog offset changed when using std_data_ln instead of std_data
mysql-test/r/rpl_stm_log.result:
Binlog offset changed when using std_data_ln instead of std_data
had to add order by
mysql-test/extra/rpl_tests/rpl_foreign_key.test:
had to add order by
mysql-test/r/rpl_foreign_key_innodb.result:
had to add order by
BitKeeper/deleted/.del-not_ndb_table.inc~86f167fc49e34d38:
Delete: mysql-test/include/not_ndb_table.inc
BitKeeper/deleted/.del-not_ndb_table.require~1e81af954dbb864a:
Delete: mysql-test/r/not_ndb_table.require
mysql-test/extra/rpl_tests/rpl_foreign_key.test:
Cleanup test for NDB
mysql-test/t/rpl_foreign_key_innodb.test:
Cleanup test for NDB
mysql-test/r/rpl_foreign_key_innodb.result:
Cleanup test for NDB
mysql-test/t/rpl_optimize.test:
setting back to orginal values
mysql-test/extra/rpl_tests/rpl_EE_err.test:
Splitting tests case per Lars review
mysql-test/t/rpl_EE_err.test:
Splitting tests case per Lars review
mysql-test/r/rpl_EE_err.result:
Splitting tests case per Lars review
mysql-test/t/rpl_stm_EE_err2.test:
New test case file from splitting out the test cases from the orginal rpl_EE_error.test per lars
mysql-test/extra/rpl_tests/rpl_stm_EE_err2.test:
New test case file from splitting out the test cases from the orginal rpl_EE_error.test per lars
mysql-test/r/rpl_stm_EE_err2.result:
New test case file from splitting out the test cases from the orginal rpl_EE_error.test per lars
BitKeeper/deleted/.del-rpl_row_EE_err.test~b3d8db3eacbb7af5:
Delete: mysql-test/extra/rpl_tests/rpl_row_EE_err.test
BitKeeper/deleted/.del-rpl_row_EE_err.test~6cd033708a4535db:
Delete: mysql-test/t/rpl_row_EE_err.test
BitKeeper/deleted/.del-rpl_row_EE_err.result~5ad217703f686c4d:
Delete: mysql-test/r/rpl_row_EE_err.result
mysql-test/extra/binlog_tests/ctype_cp932.test:
fixed test case
mysql-test/r/binlog_stm_ctype_cp932.result:
fixed test result
mysql-test/t/ctype_ucs.test:
fixed test case
sql/sql_show.cc:
Compilation with disabled partitioning is fixed
mysql-test/extra/rpl_tests/rpl_row_blob.test:
New blobs test for RBR
mysql-test/t/rpl_row_blob_innodb.test:
Innodb wrapper for rbr blob test
mysql-test/t/rpl_row_blob_myisam.test:
MyISAM wrapper for rbr blob test
mysql-test/r/rpl_row_blob_myisam.result:
MyISAM result for rbr blob test
mysql-test/r/rpl_row_blob_innodb.result:
Innodb result for rbr blob test
BitKeeper/deleted/.del-rpl_row_view.test~91ced6f754fb06a7:
Delete: mysql-test/t/rpl_row_view.test
BitKeeper/deleted/.del-rpl_row_view.result~7ec7f00e6d6beca9:
Delete: mysql-test/r/rpl_row_view.result
mysql-test/t/rpl_view.test:
Updated to work for both SBR and RBR per lars review comments
mysql-test/r/rpl_view.result:
Updated results file
mysql-test/t/rpl_timezone-master.opt:
Rename: mysql-test/t/rpl_stm_timezone-master.opt -> mysql-test/t/rpl_timezone-master.opt
mysql-test/t/rpl_timezone-slave.opt:
Rename: mysql-test/t/rpl_stm_timezone-slave.opt -> mysql-test/t/rpl_timezone-slave.opt
BitKeeper/deleted/.del-rpl_row_timezone-master.opt~59152d4b828ae88d:
Delete: mysql-test/t/rpl_row_timezone-master.opt
BitKeeper/deleted/.del-rpl_row_timezone-slave.opt~6e899f3565026efd:
Delete: mysql-test/t/rpl_row_timezone-slave.opt
BitKeeper/deleted/.del-rpl_row_timezone.test~eb6bbf4edaa18f2d:
Delete: mysql-test/t/rpl_row_timezone.test
BitKeeper/deleted/.del-rpl_row_timezone.result~ea5c5977bb4da1cf:
Delete: mysql-test/r/rpl_row_timezone.result
mysql-test/r/rpl_timezone.result:
Updated results file
mysql-test/t/rpl_timezone.test:
Remove comment
mysql-test/t/rpl_rewrt_db-slave.opt:
Rename: mysql-test/t/rpl_stm_rewrt_db-slave.opt -> mysql-test/t/rpl_rewrt_db-slave.opt
mysql-test/t/rpl_rewrt_db.test:
Rename: mysql-test/t/rpl_stm_rewrt_db.test -> mysql-test/t/rpl_rewrt_db.test
mysql-test/r/rpl_rewrt_db.result:
Rename: mysql-test/r/rpl_stm_rewrt_db.result -> mysql-test/r/rpl_rewrt_db.result
BitKeeper/deleted/.del-rpl_row_rewrt_db-slave.opt~d63094f08f0f222c:
Delete: mysql-test/t/rpl_row_rewrt_db-slave.opt
BitKeeper/deleted/.del-rpl_row_rewrt_db.test~2aa70363e3b25660:
Delete: mysql-test/t/rpl_row_rewrt_db.test
BitKeeper/deleted/.del-rpl_row_rewrt_db.result~a1f2f21a8d2ed591:
Delete: mysql-test/r/rpl_row_rewrt_db.result
mysql-test/t/rpl_loaddata_m-master.opt:
Rename: mysql-test/t/rpl_stm_loaddata_m-master.opt -> mysql-test/t/rpl_loaddata_m-master.opt
mysql-test/t/rpl_loaddata_m.test:
Updated test to work with both SBR and RBR. RBR show bug. Bug# 15942. Test will be added to disable.def until bug corrected
mysql-test/r/rpl_loaddata_m.result:
new results file for test case
BitKeeper/deleted/.del-rpl_stm_err_ignoredtable.test~bfe9b63deec27fb2:
Delete: mysql-test/t/rpl_stm_err_ignoredtable.test
mysql-test/t/rpl_err_ignoredtable-slave.opt:
Rename: mysql-test/t/rpl_stm_err_ignoredtable-slave.opt -> mysql-test/t/rpl_err_ignoredtable-slave.opt
mysql-test/t/rpl_err_ignoredtable.test:
Updated test to work with both SBR and RBR
mysql-test/r/rpl_err_ignoredtable.result:
Updated results file
mysql-test/t/rpl_user_variables.test:
Works with both SBR and RBR
mysql-test/r/rpl_user_variables.result:
Rename: mysql-test/r/rpl_stm_user_variables.result -> mysql-test/r/rpl_user_variables.result
BitKeeper/deleted/.del-rpl_row_user_variables.result~f7e7536de1d8b8b0:
Delete: mysql-test/r/rpl_row_user_variables.result
BitKeeper/deleted/.del-rpl_stm_user_variables.test~84f68bdef965db77:
Delete: mysql-test/t/rpl_stm_user_variables.test
BitKeeper/deleted/.del-rpl_row_user_variables.test~cca11b4f4d044a26:
Delete: mysql-test/t/rpl_row_user_variables.test
mysql-test/t/rpl_row_log.test:
Updated comment to correct statement
mysql-test/t/disabled.def:
Updated with Bug# 15963
mysql-test/t/rpl_ddl.test:
Updated to work with SBR and RBR
mysql-test/r/rpl_ddl.result:
Updated results
BitKeeper/deleted/.del-rpl_row_ddl.test~d1339fea669fc00a:
Delete: mysql-test/t/rpl_row_ddl.test
BitKeeper/deleted/.del-rpl_row_ddl.result~ce73af252273e6bc:
Delete: mysql-test/r/rpl_row_ddl.result