Mysql server crashes because unsafe statements warning is wrongly elevated to error,
which is set the error status of Diagnostics_area of the thread in THD::binlog_query().
Yet the caller believes that binary logging shouldn't touch the status, so it will
set the status also later by my_ok(), my_error() or my_message() seperately
according to the execution result of the statement or transaction.
But the status of Diagnostics_area of the thread is allowed to set only once.
Fixed to clear the error wrongly set by binary logging, but keep the warning message.
Altered the test to accommodate the new behavior of max_allowed_packet.
Had to disconnect / reconnect the default connection for the new value to register.
Re-enabled certain parts of the test that were commented out and added
some setup / cleanup code to ensure proper reset of max_allowed_packet at the end of the test.
Re-recorded the .result file to account for changes to the test.
Bug#32136: mysqld_multi --defaults-file not respected while using \
--mysqld=mysqld_safe
Revert change that adds "--no-defaults" to mysqld_multi.
This closes Bug#43508 and re-opens Bug#32136.
Original commentary:
Bug #37348: Crash in or immediately after JOIN::make_sum_func_list
The optimizer pulls up aggregate functions which should be aggregated in
an outer select. At some point it may substitute such a function for a field
in the temporary table. The setup_copy_fields function doesn't take this
into account and may overrun the copy_field buffer.
Fixed by filtering out the fields referenced through the specialized
reference for aggregates (Item_aggregate_ref).
Added an assertion to make sure bugs that cause similar discrepancy
don't go undetected.
The problem is that XML functions(items) do not reset null_value
before their execution and further item excution may use
null_value value of the previous result.
The fix is to reset null_value.
Merged from 5.0 version of this patch:
- Removed entire isamchk section. Support for ISAM tables was removed in 5.0.
- Replaced key_buffer with key_buffer_size (correct spelling).
- Removed skip-bdb, as BDB is no longer included in 5.0 and above.
- Removed commented-out bdb_cache_size and bdb_max_lock for the same reason.
- Removed commented-out innodb_log_arch_dir, deprecated in 5.0.24.
- Removed myisam_max_extra_sort_file_size, deprecated in 5.0.6.
- Removed log_long_format, deprecated in 4.1.
- Replaced default_table_type with default-storage-engine.
New in 5.1:
- Replaced table_cache with table_open_cache.
- Removed skip-federated, should have been in 5.0 only.
- Replaced log_slow_queries with slow_query_log, deprecated in 5.1.29.
- Removed entire isamchk section. Support for ISAM tables was removed in 5.0.
- Replaced key_buffer with key_buffer_size (correct spelling).
- Removed skip-bdb, as BDB is no longer included in 5.0 and above.
- Removed commented-out bdb_cache_size and bdb_max_lock for the same reason.
- Removed commented-out innodb_log_arch_dir, deprecated in 5.0.24.
- Removed myisam_max_extra_sort_file_size, deprecated in 5.0.6.
- Removed log_long_format, deprecated in 4.1.
- Replaced default_table_type with default-storage-engine.
on 5.0
The server crashes on an assert in net_end_statement indicating that the
Diagnostics area wasn't set properly during execution.
This happened on a multi table DELETE operation using the IGNORE keyword.
The keyword is suppose to allow for execution to continue on a best effort
despite some non-fatal errors. Instead execution stopped and no client
response was sent which would have led to a protocol error if it hadn't been
for the assert.
This patch corrects this issue by checking for the existence of an IGNORE
option before setting an error state during row-by-row delete iteration.