Occasionally mysqlbinlog --hexdump failed with error:
ERROR 1064 (42000) at line ...: You have an error in your
SQL syntax; check the manual that corresponds to your MySQL
server version for the right syntax to use near
'Query thread_id=... exec_time=... error_code=...
When the length of hexadecimal dump of binlog header was
divisible by 16, commentary sign '#' after header was lost.
The Log_event::print_header function has been modified to always
finish hexadecimal binlog header with "\n# ".
sql/log_event.cc:
Fixed bug #28293.
The Log_event::print_header function has been modified to always
finish hexadecimal binlog header with "\n# ".
mysql-test/r/mysqlbinlog.result:
Updated test case for bug #28293.
mysql-test/t/mysqlbinlog.test:
Updated test case for bug #28293.
The abort happened when a query contained a conjunctive predicate
of the form 'view column = constant' in the WHERE condition and
the grouping list also contained a reference to a view column yet
a different one.
Removed the failing assertion as invalid in a general case.
Also fixed a bug that prevented applying some optimization for grouping
queries using views. If the WHERE condition of such a query contains
a conjunctive condition of the form 'view column = constant' and
this view column is used in the grouping list then grouping by this
column can be eliminated. The bug blocked performing this elimination.
mysql-test/r/view.result:
Added a test case for bug #29104.
mysql-test/t/view.test:
Added a test case for bug #29104.
sql/item.cc:
Fixed bug #29104: assertion abort for grouping queries using views.
The abort happened when a query contained a conjunctive predicate
of the form 'view column = constant' in the WHERE condition and
the grouping list also contained a reference to a view column yet
a different one.
Removed the failing assertion as invalid in a general case.
Also fixed a bug that prevented applying some optimization for grouping
queries using views. If the WHERE condition of such a query contains
a conjunctive condition of the form 'view column = constant' and
this view column is used in the grouping list then grouping by this
column can be eliminated. The bug blocked performing this elimination.
This bug was in the function Item_field::eq while the failing
assertion was in the function Item_direct_view_ref::eq.
into bodhi.(none):/opt/local/work/mysql-5.1-runtime
mysql-test/t/ndb_index_ordered.test:
Auto merged
sql/field.cc:
Auto merged
sql/item_timefunc.cc:
Auto merged
mysql-test/t/greedy_optimizer.test:
Manual merge.
mysql-test/t/join.test:
Manual merge.
tests/mysql_client_test.c:
Manual merge.
and replicated):
A DROP USER statement with a non-existing user was correctly written to
the binary log (there might be users that were removed, but not all),
but the error code was not set, which caused the slave to stop with an
error.
The error reporting code was moved to before the statement was logged
to ensure that the error information for the thread was correctly set
up. This works since my_error() will set the fields net.last_errno and
net.last_error for the thread that is reporting the error, and this
will then be picked up when the Query_log_event is created and written
to the binary log.
sql/sql_acl.cc:
Moving error reporting code to ensure that thd->net.last_err{or,no} is
set and adding debug printout.
mysql-test/r/rpl_grant.result:
New BitKeeper file ``mysql-test/r/rpl_grant.result''
mysql-test/t/rpl_grant.test:
New BitKeeper file ``mysql-test/t/rpl_grant.test''
causes later tests to fail.
mysql-test/r/ndb_backup_print.result:
Result change.
mysql-test/t/ndb_backup_print.test:
Adding missing drop table at the end of the test.
Updated test case for bug #28898. Additional cleanup.
mysql-test/t/metadata.test:
Updated test case for bug #28898. Additional cleanup.
mysql-test/r/metadata.result:
Updated test case for bug #28898. Additional cleanup.
into mysql.com:/home/hf/work/28839/my51-28839
mysql-test/r/rpl_skip_error.result:
Auto merged
mysql-test/t/rpl_skip_error.test:
Auto merged
sql/log_event.cc:
merging
slave_sql thread calls thd->clear_error() to force error to be ignored,
though this method didn't clear thd->killed state, what causes
slave_sql thread to stop.
clear thd->killed state if we ignore an error
mysql-test/r/rpl_skip_error.result:
Bug #28839 Errors in strict mode silently stop SQL thread if --slave-skip-errors exists.
test result
mysql-test/t/rpl_skip_error.test:
Bug #28839 Errors in strict mode silently stop SQL thread if --slave-skip-errors exists.
test case
sql/log_event.cc:
Bug #28839 Errors in strict mode silently stop SQL thread if --slave-skip-errors exists.
clear thd->killed state if we ignore the error
For a join query with GROUP BY and/or ORDER BY and a view reference
in the FROM list the metadata erroneously showed empty table aliases
and database names for the view columns.
sql/item.h:
Fixed bug #28898.
Body of Item_ref::get_tmp_table_item method has been moved
to item.cc file.
mysql-test/t/metadata.test:
Updated test case for bug #28898.
sql/item.cc:
Fixed bug #28898.
The Item_ref::get_tmp_table_item method has been modified
to copy pointers to the table alias and database name to the new
Item_field object created for a field stored in the temporary
table.
mysql-test/r/metadata.result:
Updated test case for bug #28898.
sql/sql_select.cc:
Fixed bug #28898.
The change_to_use_tmp_fields function has been modified to
to copy pointers to the table alias and database name from
the Item_ref objects to the new Item_field objects created
for fields stored in the temporary table.
into damien-katzs-computer.local:/Users/dkatz/mysql51
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/query_cache.result:
Auto merged
mysql-test/t/mysqltest.test:
Auto merged
mysql-test/t/query_cache.test:
Auto merged
sql/sql_yacc.yy:
Auto merged
mysql-test/r/binlog_multi_engine.result:
Result change
mysql-test/t/binlog_multi_engine.test:
Fixing test case. Keeping some bad statements in the test since I don't
want to disable the entire test. Have marked the offending statement
so that they can easily be found.
CREATE/DROP TEMPORARY TABLE + ROLLBACK on master
The transaction ability of the storage engines of
the tables on the replication master and the replication
slave must generally be the same.
When the storage engine type of the slave is
non-transactional then transactions on the master that
mix update of transactional and non-transactional tables
should be avoided because they will cause inconsistency of
the data between the master's transactional table and the
slave's non-transactional table.
The effect described by this bug is actually expected.
A detailed test case is added (to be merged later to
the updated rpl_ddl.test), as there was no coverage
by the existing tests.
Some code cleanup is also added by this change.
mysql-test/r/rpl_innodb.result:
Bug #26418: test case
mysql-test/t/rpl_innodb.test:
Bug #26418: test case
sql/events.cc:
Bug #26418: replace repeating code with a function call
sql/sp.cc:
Bug #26418: replace repeating code with a function call
sql/sql_acl.cc:
Bug #26418: replace repeating code with a function call
sql/sql_class.cc:
Bug #26418: remove dead code
sql/sql_class.h:
Bug #26418: remove dead code
sql/sql_delete.cc:
Bug #26418: replace repeating code with a function call
sql/sql_parse.cc:
Bug #26418: replace repeating code with a function call
sql/sql_rename.cc:
Bug #26418: replace repeating code with a function call
sql/sql_tablespace.cc:
Bug #26418: replace repeating code with a function call
sql/sql_trigger.cc:
Bug #26418: replace repeating code with a function call
sql/sql_udf.cc:
Bug #26418: replace repeating code with a function call
sql/sql_view.cc:
Bug #26418: replace repeating code with a function call
Problem: we use 'sleep 2; wait_for_slave_to_stop;' to reach some slave's states
which is buggy, wasteful of time, platform dependant etc.
Fix: use include/wait_for_slave_***.inc's where it's possible instead.
mysql-test/include/wait_for_slave_io_to_stop.inc:
Fix for bug #28772: rpl_row_until fails in pushbuild
- changed to use query_vertical so that it is easier to read the output.
mysql-test/include/wait_for_slave_sql_to_stop.inc:
Fix for bug #28772: rpl_row_until fails in pushbuild
- changed to use query_vertical so that it is easier to read the output.
mysql-test/include/wait_for_slave_to_start.inc:
Fix for bug #28772: rpl_row_until fails in pushbuild
- changed to use query_vertical so that it is easier to read the output.
mysql-test/include/wait_for_slave_to_stop.inc:
Fix for bug #28772: rpl_row_until fails in pushbuild
- changed to use query_vertical so that it is easier to read the output.
mysql-test/t/rpl_row_until.test:
Fix for bug #28772: rpl_row_until fails in pushbuild
- 'sleep 2; wait_for_slave_to_stop;' replaced with sourcing
include/wait_for_slave_sql_to_stop.inc to be more predictable.
mysql-test/t/rpl_stm_until.test:
Fix for bug #28772: rpl_row_until fails in pushbuild
- 'sleep 2; wait_for_slave_to_stop;' replaced with sourcing
include/wait_for_slave_sql_to_stop.inc to be more predictable.
mysql-test/r/sp.result:
Auto merged
mysql-test/t/query_cache.test:
Auto merged
mysql-test/t/sp.test:
Auto merged
sql/handler.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
counters from relay
Updated the test to return columns vertically.
mysql-test/r/rpl_change_master.result:
Bug #29116: test updated
mysql-test/t/rpl_change_master.test:
Bug #29116: test updated
into pilot.(none):/data/msvensson/mysql/mysql-5.1-new-maint
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/t/mysqltest.test:
Auto merged
BitKeeper/deleted/.del-wait_for_slave_io_to_stop.inc:
Auto merged
mysql-test/r/binlog_unsafe.result:
Result change
mysql-test/r/rpl_loaddata_fatal.result:
Result change
mysql-test/r/rpl_udf.result:
Result change
mysql-test/t/binlog_innodb.test:
Test requires binary log
mysql-test/t/binlog_unsafe.test:
Test requires binary log
mysql-test/t/multi_update.test:
Test requires binary log.
Error changed for a statement.
mysql-test/t/rpl_row_basic_11bugs.test:
Error changed for a statement.
- Add test case for this already existing feature
mysql-test/r/mysqltest.result:
Update result file
mysql-test/t/mysqltest.test:
Add test case for this feature
- Move binlog related tests to binlog_innodb.test
- Remove "source include/have_log_bin.inc" from innodb.test
mysql-test/r/innodb.result:
Move binlog related tests to binlog_innodb.test
mysql-test/t/innodb.test:
Move binlog related tests to binlog_innodb.test
mysql-test/r/binlog_innodb.result:
Move binlog related tests to binlog_innodb.test
mysql-test/t/binlog_innodb.test:
Move binlog related tests to binlog_innodb.test
into damien-katzs-computer.local:/Users/dkatz/mysql51
mysql-test/r/udf.result:
Auto merged
mysql-test/t/udf.test:
Auto merged
sql/sql_yacc.yy:
This line that marks the expression as unsafe for caching now belongs in the create() methods for builder objects inheriting from Create_func.
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-rpl
mysql-test/extra/rpl_tests/rpl_log.test:
Auto merged
mysql-test/extra/rpl_tests/rpl_row_basic.test:
Auto merged
mysql-test/t/rpl_ndb_bank.test:
Auto merged
mysql-test/t/rpl_ndb_basic.test:
Auto merged
mysql-test/t/rpl_ndb_do_table.test:
Auto merged
mysql-test/t/rpl_ndb_idempotent.test:
Auto merged
mysql-test/t/rpl_ndb_stm_innodb.test:
Auto merged
mysql-test/t/rpl_ndb_sync.test:
Auto merged
sql/ha_ndbcluster_binlog.cc:
Auto merged
storage/ndb/test/run-test/daily-basic-tests.txt:
Auto merged
mysql-test/include/have_multi_ndb.inc:
manual merge
mysql-test/include/have_ndb.inc:
manual merge
mysql-test/t/rpl_ndb_commit_afterflush.test:
manual merge
mysql-test/t/rpl_ndb_ddl.test:
manual merge
mysql-test/t/rpl_ndb_innodb_trans.test:
manual merge
Fixed runtime to no longer allow the caching of queries with UDF calls.
mysql-test/r/udf.result:
Added a test that turns on caching and checks that querys calling UDFs don't get cached.
mysql-test/t/udf.test:
Added a test that turns on caching and checks that querys calling UDFs don't get cached.
sql/sql_yacc.yy:
Fixed code to set safe_to_cache_query=0 regardless if the function call is a UDF or SP. Where it was placed previously -- at the very end of the else testing for UDFs -- it only executed the statement if the function call was a stored procedure call.
Changed code to enforce that SQL_CACHE only in the first SELECT is used to turn on caching(as documented), but any SQL_NO_CACHE will turn off caching (not documented, but a useful behaviour, especially for machine generated queries). Added test cases to explicitly test the documented caching behaviour and test cases for the reported bug.
mysql-test/r/query_cache.result:
Added non-bug specific tests that ensure that only SQL_CACHE in the first SELECT is respected when encountered by the parser. These tests validate what is already documented, that only the outer most SELECTS can use the SQL_CACHE option to turn on caching. Because it would break existing SQL applications, we do not return an error if the SQL_CACHE expression is found in nested SELECTs. Also added test to validate nested SELECT can contain SQL_NO_CACHE and it will always turn off caching for the whole query.
Also added a bug specific test case to validate that the buggy behavior as reported has been fixed.
mysql-test/t/query_cache.test:
Added non-bug specific tests that ensure that only SQL_CACHE in the first SELECT is respected when encountered by the parser. These tests validate what is already documented, that only the outer most SELECTS can use the SQL_CACHE option to turn on caching. Because it would break existing SQL applications, we do not return an error if the SQL_CACHE expression is found in nested SELECTs. Also added test to validate nested SELECT can contain SQL_NO_CACHE and it will always turn off caching for the whole query.
Also added a bug specific test case to validate that the buggy behavior as reported has been fixed.
sql/sql_yacc.yy:
Added an explicit check to make sure "SELECT SQL_CACHE" only works on the first select in a query.
The parser will always hit the outermost SELECT first, and if the SQL_CACHE option is found it sets the safe_to_query flag in the lex. Then, if there are subseqent "uncachable" subqueries or functions, as it parses those elements it sets the safe_to_query to 0. However, this cause problems if nested SELECTs also used the SQL_CACHE option, because then it would set back safe_to_query to 1, even though there are uncacheable expressions previously parsed.
By adding the check to ensure only the first SELECT can turn caching on, it means a subsequent SQL_CACHE option can't turn caching back on after a uncacheable subsequery was already encountered.
When all table blocks were removed from the query cache the client session
hung in a tight loop waiting on an impossible condition while consuming a lot
of CPU.
This patch also corrects an error which caused valid tables to sometimes be
removed from the query cache.
mysql-test/r/query_cache.result:
Added test case to make sure server doesn't hang in a tight loop if last
table block is removed from the cache.
mysql-test/t/query_cache.test:
Added test case to make sure server doesn't hang in a tight loop if last
table block is removed from the cache.
sql/sql_cache.cc:
- Refactored loop over table blocks. The invalidate_table() function effects
the elements over which we iterate. The previous stop condition was broken
due to a compiler optimization error probably caused by the goto-statement
pointing out of the loop. The effect being that tables_blocks was never
checked for null values and thus the loop never terminated.
- The new implementation uses two while loops instead of a goto-statement.
The tables_blocks is a circular list which becomes null if the last table
block is removed from the list.
- make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_commit_after_flush.test:
make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_delete_no_where.test:
make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_insert_ignore.test:
make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_log.test:
make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_multi_update2.test:
make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_multi_update3.test:
make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_relayrotate.test:
make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_row_001.test:
make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_row_UUID.test:
make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_row_basic.test:
make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_row_blob.test:
make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_row_charset.test:
make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_row_func003.test:
make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_row_sp003.test:
make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_row_sp006.test:
make tests wait until ndb connects properly
mysql-test/include/have_multi_ndb.inc:
make tests wait until ndb connects properly
mysql-test/include/have_ndb.inc:
make tests wait until ndb connects properly
mysql-test/include/ndb_not_readonly.inc:
make tests wait until ndb connects properly
mysql-test/t/rpl_commit_after_flush.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_delete_no_where.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_insert_ignore.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_multi_update2.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_multi_update3.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_2innodb.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_2myisam.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_UUID.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_auto_inc.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_bank.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_basic.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_blob.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_blob2.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_charset.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_circular.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_circular_simplex.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_commit_afterflush.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_dd_advance.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_dd_basic.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_dd_partitions.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_ddl.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_delete_nowhere.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_do_db.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_do_table.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_extraCol.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_func003.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_idempotent.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_innodb2ndb.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_innodb_trans.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_insert_ignore.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_load.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_log.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_multi.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_multi_update2.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_multi_update3.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_myisam2ndb.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_relayrotate.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_rep_ignore.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_row_001.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_sp003.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_sp006.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_stm_innodb.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_sync.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_trig004.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndbapi_multi.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_relayrotate.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_row_001.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_row_UUID.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_row_basic_2myisam.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_row_basic_3innodb.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_row_basic_7ndb.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_row_blob_innodb.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_row_blob_myisam.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_row_charset.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_row_func003.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_row_log.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_row_log_innodb.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_row_sp003.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_row_sp006_InnoDB.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_stm_log.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_truncate_7ndb.test:
make tests wait until ndb connects properly
mysql-test/include/ndb_master-slave.inc:
New BitKeeper file ``mysql-test/include/ndb_master-slave.inc''
The method select_insert::send_error does two things, it rolls back a statement
being executed and outputs an error message. But when a
nonexistent column is referenced, an error message has been published already and
there is no need to publish another.
Fixed by moving all functionality beyond publishing an error message into
select_insert::abort() and calling only that function.
mysql-test/r/errors.result:
Bug#28677: test result
mysql-test/t/errors.test:
Bug#28677: test case
sql/sql_class.h:
Bug#28677: overriding abort()
sql/sql_insert.cc:
Bug#28677:
- moved everything beyond producing an error message out of select_insert::send_error
and into new override select_insert::abort()
- made corresponding move of code from select_create::send_error to select_create::abort
sql/sql_select.cc:
Bug#28677: No need to pusblish an error here
into gleb.loc:/home/uchum/work/bk/5.1-opt
mysql-test/r/func_str.result:
Auto merged
mysql-test/t/func_str.test:
Auto merged
sql/item_strfunc.cc:
Auto merged