The conformance checker was not taking into
account, and, making concessions for acceptable
incompatibilites in tables created by
versions earlier than 4.1.
The current patch relaxes the conformance
checker to ignore differences in key_alg
and language for tables created by versions
earlier than 4.1.
The test started failing following the push for BUG#41541.
Some of the algorithms access bytes beyond the input data
and this can affect up to one byte less than "word size"
which is BITS_SAVED / 8.
Fixed by adding (BITS_SAVED / 8) -1 bytes to buffer size
(i.e. Memory Segment #2) to avoid accessing un-allocated data.
1. Test case was rewritten completely.
2. Test covers 3 cases:
a) do deadlock on slave, wait retries of transaction, unlock slave before lock
timeout;
b) do deadlock on slave and wait error 'lock timeout exceed' on slave;
c) same as b) but if of max relay log size = 0;
3. Added comments inline.
4. Updated result file.
The problem is that a SELECT .. FOR UPDATE statement might open
a table and later wait for a impeding global read lock without
noticing whether it is holding a table that is being waited upon
the the flush phase of the process that took the global read
lock.
The same problem also affected the following statements:
LOCK TABLES .. WRITE
UPDATE .. SET (update and multi-table update)
TRUNCATE TABLE ..
LOAD DATA ..
The solution is to make the above statements wait for a impending
global read lock before opening the tables. If there is no
impending global read lock, the statement raises a temporary
protection against global read locks and progresses smoothly
towards completion.
Important notice: the patch does not try to address all possible
cases, only those which are common and can be fixed unintrusively
enough for 5.0.
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.