Problem: rpl_stm_mystery22 is unstable.
Reason: At one place, the test case *should* wait until the SQL thread on the
slave receives an error, but instead it waits until the SQL thread stops. The
SQL thread may stop before the error flag is set, so that when the test case
continues to execute, the error flag is not set.
Fix: Introduce the subroutine mysql-test/include/wait_for_slave_sql_error.inc,
which waits until there is an error in the sql thread of the slave.
Re-commit: fixed one logical error and two smaller things noted by Mats.
mysql-test/suite/rpl/t/rpl_stm_mystery22.test:
Use the new wait_for_slave_sql_error.inc instead of wait_for_slave_to_stop.
There may be a delay from when the slave stops to when Last_SQL_Errno is set,
so it is not safe to merely wait until the slave stops.
mysql-test/include/wait_for_slave_sql_error.inc:
New BitKeeper file ``mysql-test/include/wait_for_slave_sql_error.inc''
This is a subroutine that waits until the sql thread on the slave receives an
error, as indicated by Last_SQL_Errno in "SHOW SLAVE STATUS".
into mysql.com:/nfsdisk1/lars/MERGE/mysql-5.1-merge
mysql-test/suite/binlog/t/binlog_row_mix_innodb_myisam.test:
Auto merged
mysql-test/suite/ndb/r/ndb_dd_basic.result:
Auto merged
sql/field.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/log_event.h:
Auto merged
sql/rpl_record.cc:
Auto merged
sql/rpl_utility.cc:
Auto merged
sql/rpl_utility.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
into pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.1-build
mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result:
Auto merged
mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result:
Auto merged
in following tests.
mysql-test/suite/rpl/r/rpl_bug31076.result:
Result file change.
mysql-test/suite/rpl/t/rpl_bug31076.test:
Dropping database so that following tests don't see it.
Row-based replication crashes when replicating from pre-5.1.22 to 5.1.22
due to an uninitialized variable.
sql/log_event.cc:
Initializing m_null_bits to null so that it can be detected that it
was not initialized later.
mysql-test/suite/rpl/r/rpl_bug31076.result:
New BitKeeper file ``mysql-test/suite/rpl/r/rpl_bug31076.result''
mysql-test/suite/rpl/t/rpl_bug31076.test:
New BitKeeper file ``mysql-test/suite/rpl/t/rpl_bug31076.test''
into mysql.com:/home/gluh/MySQL/Merge/5.1-opt
mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result:
Auto merged
mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result:
Auto merged
into mysql.com:/nfsdisk1/lars/MERGE/mysql-5.1-merge
sql/field.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/rpl_utility.cc:
Auto merged
sql/rpl_utility.h:
Auto merged
sql/slave.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_update.cc:
Auto merged
mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result:
results changed
mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result:
results changed
mysql-test/suite/binlog/t/binlog_row_mix_innodb_myisam.test:
calling included file with testing bug#27417,23333. bug#28960 is not an rbr bug.
mysql-test/suite/binlog/t/binlog_stm_mix_innodb_myisam.test:
moved SF() with side effects bugs to a separate includable file.
This test verifies STMT format whereas binlog_row test is reposible for
ROW format.
mysql-test/extra/binlog_tests/mix_innodb_myisam_side_effects.test:
sourced part for bugs with SF() etc having side effects of midifying
non-transactional tables.
mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result:
results changed due to
1. tt table made temporary is it's supposed to;
2. show master status is turned into binlog pos masking-out macro
3. merge defect for select_insert::abort()
mysql-test/suite/binlog/t/binlog_stm_mix_innodb_myisam.test:
masking-out binlog postions in the results via
source include/show_binlog_events.inc;
sql/sql_insert.cc:
merging defect in not applied hunk for select_insert::abort() is fixed
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
follow-up of the previous manual resolve. The snippet is moved into the heading
file.
mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result:
results changed
mysql-test/suite/binlog/t/binlog_stm_mix_innodb_myisam.test:
removing explicit offsets from report;
appending bug#27417,23333,28960 related snippet, addressing left TODO:s.
mysql-test/suite/rpl/r/rpl_packet.result:
results changed
mysql-test/suite/rpl/t/rpl_packet.test:
fixing row/stmt compatibility with #-ing out unneeded values
into trift2.:/MySQL/M51/push-5.1
config/ac-macros/misc.m4:
Auto merged
mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result:
Auto merged
mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result:
Auto merged
mysql-test/t/disabled.def:
Auto merged
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/log_event.h:
Auto merged
sql/rpl_record.cc:
Auto merged
sql/rpl_rli.h:
Auto merged
sql/rpl_utility.cc:
Auto merged
sql/rpl_utility.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_cache.cc:
Auto merged
Merge with 5.0-opt.
mysql-test/r/binlog_unsafe.result:
Merge with 5.0-opt.
mysql-test/r/events_bugs.result:
Merge with 5.0-opt.
mysql-test/r/events_trans.result:
Merge with 5.0-opt.
mysql-test/r/sp.result:
Merge with 5.0-opt.
mysql-test/r/sp_gis.result:
Merge with 5.0-opt.
mysql-test/r/xml.result:
Merge with 5.0-opt.
mysql-test/suite/rpl/r/rpl_incident.result:
Merge with 5.0-opt.
mysql-test/suite/rpl/r/rpl_loaddata_fatal.result:
Merge with 5.0-opt.
mysql-test/suite/rpl/r/rpl_udf.result:
Merge with 5.0-opt.
mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result:
Merge with 5.0-opt.
mysql-test/suite/ndb/r/ndb_dd_basic.result:
Merge with 5.0-opt.
mysql-test/suite/ndb/r/ndb_dd_ddl.result:
Merge with 5.0-opt.
mysql-test/suite/ndb/r/ndb_gis.result:
Merge with 5.0-opt.
mysql-test/suite/ndb/r/ndb_row_format.result:
Merge with 5.0-opt.
mysql-test/suite/ndb/r/ndb_single_user.result:
Merge with 5.0-opt.
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge
mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result:
Auto merged
mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result:
Auto merged
mysql-test/t/disabled.def:
Auto merged
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/ha_ndbcluster_binlog.h:
Auto merged
sql/log_event.cc:
Auto merged
sql/log_event.h:
Auto merged
sql/rpl_record.cc:
Auto merged
sql/rpl_rli.h:
Auto merged
sql/rpl_utility.cc:
Auto merged
sql/rpl_utility.h:
Auto merged
into mysql.com:/nfsdisk1/lars/MERGE/mysql-5.1-merge
mysql-test/suite/ndb/r/ndb_dd_basic.result:
Auto merged
mysql-test/suite/rpl/include/rpl_mixed_dml.inc:
Auto merged
mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result:
Auto merged
sql/field.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/log.cc:
Auto merged
sql/log_event_old.cc:
Auto merged
sql/log_event_old.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/rpl_record.cc:
Auto merged
sql/rpl_record.h:
Auto merged
sql/rpl_utility.cc:
Auto merged
sql/rpl_utility.h:
Auto merged
sql/slave.cc:
Auto merged
sql/slave.h:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_string.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/unireg.h:
Auto merged
mysql-test/suite/rpl/t/disabled.def:
Manual merge
mysql-test/suite/rpl_ndb/t/disabled.def:
Manual merge
sql/log_event.cc:
Manual merge
sql/log_event.h:
Manual merge
sql/sql_yacc.yy:
Manual merge
into gleb.loc:/home/uchum/work/bk/5.1-opt
mysql-test/r/sp.result:
Auto merged
mysql-test/t/sp.test:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_view.cc:
Auto merged
mysql-test/Makefile.am:
Add install data for new test case
storage/ndb/tools/restore/Restore.cpp:
Convert blob(text) length stored in main table
mysql-test/std_data/ndb_backup51_data_be/BACKUP-1-0.1.Data:
test data for endian test
mysql-test/std_data/ndb_backup51_data_be/BACKUP-1-0.2.Data:
test data for endian test
mysql-test/std_data/ndb_backup51_data_be/BACKUP-1.1.ctl:
test data for endian test
mysql-test/std_data/ndb_backup51_data_be/BACKUP-1.1.log:
test data for endian test
mysql-test/std_data/ndb_backup51_data_be/BACKUP-1.2.ctl:
test data for endian test
mysql-test/std_data/ndb_backup51_data_be/BACKUP-1.2.log:
test data for endian test
mysql-test/std_data/ndb_backup51_data_le/BACKUP-1-0.1.Data:
test data for endian test
mysql-test/std_data/ndb_backup51_data_le/BACKUP-1-0.2.Data:
test data for endian test
mysql-test/std_data/ndb_backup51_data_le/BACKUP-1.1.ctl:
test data for endian test
mysql-test/std_data/ndb_backup51_data_le/BACKUP-1.1.log:
test data for endian test
mysql-test/std_data/ndb_backup51_data_le/BACKUP-1.2.ctl:
test data for endian test
mysql-test/std_data/ndb_backup51_data_le/BACKUP-1.2.log:
test data for endian test
mysql-test/suite/ndb/r/ndb_restore_different_endian_data.result:
test result for endian test
mysql-test/suite/ndb/t/ndb_restore_different_endian_data.test:
test case for endian test
into weblab.(none):/home/marcsql/TREE/mysql-5.1-rt50-merge
mysql-test/r/sp.result:
Auto merged
mysql-test/t/mysql.test:
Auto merged
mysql-test/t/query_cache.test:
Auto merged
mysql-test/t/sp.test:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/rpl_utility.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_cache.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
into trift2.:/MySQL/M51/push-5.1
configure.in:
Auto merged
mysql-test/t/disabled.def:
Auto merged
sql/field.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/log_event.h:
Auto merged
sql/rpl_record.cc:
Auto merged
sql/rpl_utility.cc:
Auto merged
sql/rpl_utility.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_cache.cc:
Auto merged
into ibm.opbmk:/home/alik/Documents/MySQL/devel/5.1-rt-bug25843
sql/mysql_priv.h:
Auto merged
sql/sp.cc:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_db.cc:
Auto merged
of statement breaks binlog.
There were two problems discovered by this bug:
1. Default (current) database is not fixed at the creation time.
That leads to wrong output of DATABASE() function.
2. Database attributes (@@collation_database) are not fixed at
the creation time. That leads to wrong resultset.
Binlog breakage and Query Cache wrong output happened because of
the first problem.
The fix is to remember the current database at the PREPARE-time and
set it each time at EXECUTE.
mysql-test/include/query_cache_sql_prepare.inc:
The first part of the test case for BUG#25843.
mysql-test/r/query_cache_ps_no_prot.result:
Update result file.
mysql-test/r/query_cache_ps_ps_prot.result:
Update result file.
mysql-test/suite/rpl/r/rpl_ps.result:
Update result file.
mysql-test/suite/rpl/t/rpl_ps.test:
The second part of the test case for BUG#25843.
sql/mysql_priv.h:
Added mysql_opt_change_db() prototype.
sql/sp.cc:
1. Polishing;
2. sp_use_new_db() has been removed;
3. Use mysql_opt_change_db() instead of sp_use_new_db().
sql/sp.h:
sp_use_new_db() has been removed.
This function has nothing to do with a) sp and b) *new* database.
It was merely "switch the current database if needed".
sql/sp_head.cc:
1. Polishing.
2. Use mysql_opt_change_db() instead of sp_use_new_db().
sql/sql_class.cc:
Move THD::{db, db_length} into Statement.
sql/sql_class.h:
Move THD::{db, db_length} into Statement.
sql/sql_db.cc:
Introduce mysql_opt_change_db() as a replacement (and inspired by)
sp_use_new_db().
sql/sql_prepare.cc:
1. Remember the current database in Prepared_statement::prepare().
2. Switch/restore the current database in Prepared_statement::execute().
into weblab.(none):/home/marcsql/TREE/mysql-5.1-rt50-merge
client/mysql.cc:
Auto merged
mysql-test/r/query_cache.result:
Auto merged
mysql-test/t/query_cache.test:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/sp.cc:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_db.cc:
Auto merged
sql/sql_handler.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_yacc.yy:
Auto merged
into dev3-240.dev.cn.tlan:/home/justin.he/mysql/mysql-5.1/mysql-5.1-new-ndb-bj.merge
mysql-test/Makefile.am:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
storage/ndb/tools/restore/Restore.cpp:
Auto merged
storage/ndb/tools/restore/restore_main.cpp:
Auto merged
mysql-test/suite/ndb/r/ndb_restore_compat.result:
Auto merged
mysql-test/suite/ndb/t/ndb_restore_compat.test:
Auto merged
into sita.local:/Users/tsmith/m/bk/maint/51
sql/field.cc:
Auto merged
sql/log_event_old.cc:
Auto merged
sql/rpl_record.h:
Auto merged
sql/rpl_utility.cc:
Auto merged
sql/rpl_utility.h:
Auto merged
sql/slave.h:
Auto merged
storage/innobase/handler/ha_innodb.cc:
Auto merged
sql/log_event.cc:
Manual merge
sql/log_event.h:
Manual merge
sql/log_event_old.h:
Manual merge
sql/rpl_record.cc:
Manual merge
sql/slave.cc:
Manual merge
Bug#21422 GRANT/REVOKE possible inside stored function, probably in a trigger
Bug#17244 GRANT gives strange error message when used in a stored function
GRANT/REVOKE statements are non-transactional (no explicit transaction
boundaries) in nature and hence are forbidden inside stored functions and
triggers, but they weren't being effectively forbidden. Furthermore, the
absence of implict commits makes changes made by GRANT/REVOKE statements to
not be rolled back.
The implemented fix is to issue a implicit commit with every GRANT/REVOKE
statement, effectively prohibiting these statements in stored functions
and triggers. The implicit commit also fixes the replication bug, and looks
like being in concert with the behavior of DDL and administrative statements.
Since this is a incompatible change, the following sentence should be
added to the Manual in the very end of the 3rd paragraph, subclause
13.4.3 "Statements That Cause an Implicit Commit": "Beginning with
MySQL 5.0.??, the GRANT and REVOKE statements cause an implicit commit."
Patch contributed by Vladimir Shebordaev
mysql-test/r/sp-error.result:
Test case result for Bug#17244
mysql-test/t/sp-error.test:
Test case for Bug#17244
sql/sp_head.cc:
Set that a procedure with GRANT/REVOKE command has a (implicit or explicit)
commit.
sql/sql_parse.cc:
End active transaction in SQLCOM_GRANT and SQLCOM_REVOKE, and thus effectively
prohibit these statements in stored functions and triggers. An implicit commit
also fixes a bug in replication, when GRANT or REVOKE would disappear from the
binary log in case of a subsequent ROLLBACK, since they were considered
transactional statements.
mysql-test/suite/rpl/r/rpl_binlog_grant.result:
Add test case result for Bug#21975
mysql-test/suite/rpl/t/rpl_binlog_grant.test:
Add test case for Bug#21975
ChangeSet@1.2509, 2007-08-28
http://lists.mysql.com/commits/33239
Fixes for the funcs_1 datadict test bugs
#30418 "datadict" tests (all engines) fail:
Dependency on the host name for ordering
#30420 "datadict" tests (all engines) fail:
Release build has help tables loaded
#30438 "{memory,myisam,ndb}__datadict" tests fail:
Use "InnoDB" without checking
#30440 "datadict" tests (all engines) fail:
Character sets depend on
configuration
mysql-test/suite/funcs_1/README.txt:
Improved README
mysql-test/suite/funcs_1/datadict/datadict_load.inc:
Additions for the NDB variant (currently not in use)
mysql-test/suite/funcs_1/datadict/datadict_master.inc:
Write a comment about Bug#30689 into the test protocols.
mysql-test/suite/funcs_1/datadict/processlist_priv.inc:
Fix for a not reported bug.
The missing revoke usage and drop user harmed the next test.
mysql-test/suite/funcs_1/r/a_processlist_priv_no_prot.result:
Updated results
mysql-test/suite/funcs_1/r/b_processlist_priv_ps.result:
Updated results
mysql-test/suite/funcs_1/r/innodb__datadict.result:
Updated results
mysql-test/suite/funcs_1/r/memory__datadict.result:
Updated results
mysql-test/suite/funcs_1/r/myisam__datadict.result:
Updated results
mysql-test/suite/funcs_1/r/ndb__datadict.result:
Updated results as far as they could be corrected.
Attention:
This test failed even before the current bug fixes.
The updated expected results are now better than before,
but they do not prevent that the test fails.
It looks like one script is "damaged" and treats
this NDB test different than expected within the
file with expected results.
The functions ROW_COUNT/FOUND_ROWS are indeed not safe to be used in
statement based replication.
Added code to declare them as such and switch the statement they're in
to row based logging for mixed mode.
sql/item_create.cc:
Bug #30244: row_count/found_rows does not replicate well
- add the functions to the set of "unsafe functions"
for statement based replication
mysql-test/suite/rpl/r/rpl_row_unsafe_funcs.result:
BitKeeper file /home/kgeorge/mysql/work/B30244-5.1-opt/mysql-test/suite/rpl/r/rpl_row_unsafe_funcs.result
mysql-test/suite/rpl/t/rpl_row_unsafe_funcs.test:
BitKeeper file /home/kgeorge/mysql/work/B30244-5.1-opt/mysql-test/suite/rpl/t/rpl_row_unsafe_funcs.test