Download |Release Notes |Changelog |Overview of 5.3
Release date: 9 Apr 2012
For the highlights of this release, see the release notes.
The revision number links will take you to the revision's page on Launchpad. On Launchpad you can view more details of the revision and view diffs of the code modified in that revision.
Revision #3500 Sat 2012-04-07 17:27:00 -0700
Fixed properly.
The previous patch for the bug (that erroneously identified the bug as bug 972973 in its comment) was incorrect.
It turned out that the code that triggered the abort complain reported for the bug was not needed at all.
Sat 2012-04-07 02:29:04 -0700
Fixed .
When the function free_tmp_table deletes the handler object for a temporary table the field TABLE::file for this table should be set to NULL. Otherwise an assertion failure may occur.
[merge] Fri 2012-04-06 16:40:39 -0700
Merge.
Fri 2012-04-06 15:08:09 -0700
Fixed .
Fri 2012-04-06 13:18:12 +0300
Unused method removed.
[merge] Fri 2012-04-06 14:24:00 +0500
merging.
[merge] Fri 2012-04-06 13:51:42 +0500
merging.
[merge] Thu 2012-04-05 23:07:18 +0200
merge
[merge] Thu 2012-04-05 12:01:52 +0200
merge
Thu 2012-04-05 23:32:57 +0300
Fix of .
When a view/derived table is converted from merged to materialized the items from the used_item lists are substituted for items referring to the fields of the result of the materialization. The problem appeared with queries employing natural joins. Since the resolution of a natural join was performed only once the used_item list formed at the second execution of the query lacked the references to the fields that were used only in the equality predicates generated for the natural join.
Wed 2012-04-04 21:35:34 +0400
Make test results stable.
[merge] Wed 2012-04-04 14:19:46 +0300
Merge with 5.2
Fixed additional changed pbxt test cases
[merge] Wed 2012-04-04 13:50:24 +0300
[merge] Wed 2012-04-04 12:37:46 +0400
Merge
Wed 2012-04-04 12:26:36 +0400
: better comments and function names.
[merge] Wed 2012-04-04 01:00:23 +0300
Merge with 5.2
[merge] Wed 2012-04-04 00:33:02 +0300
Merge with 5.1
Tue 2012-04-03 15:42:26 +0300
Don't disable core on signal just becasue platform doesn't handle stack traces
[merge] Mon 2012-04-02 17:54:33 +0200
merge
Mon 2012-04-02 11:29:28 +0200
SET PASSWORD in 5.2 does not update user's auth plugin
[merge] Mon 2012-04-02 12:27:15 +0300
automatic merge
Mon 2012-04-02 11:45:07 +0300
Fixed "[PATCH] plugin boolean result"
[merge] Fri 2012-03-30 16:13:41 +0200
merge
[merge] Fri 2012-03-30 16:12:21 +0200
merge
[merge] Fri 2012-03-30 13:54:33 +0300
Merge from 5.2
[merge] Fri 2012-03-30 13:51:16 +0300
Automatic merge
[merge] Fri 2012-03-30 08:49:57 +0200
merge
[merge] Thu 2012-03-29 21:15:30 +0200
merge
Thu 2012-03-29 16:32:35 +0200
remove race conditions from the test
Thu 2012-03-29 21:58:40 +0200
Add missing include (fixes compile failure with gcc 4.7).
[merge] Wed 2012-03-28 13:58:14 +0300
Automatic merge
[merge] Wed 2012-03-28 13:49:07 +0300
Merge with 5.1
Tue 2012-03-27 16:06:00 +0300
Added feature request from "Feature request - prevent truncating query in mytop"
Added feature request 'reading of my.cnf files' to mytop
Thanks to Jean Weisbuch for the patch/suggestion.
Tue 2012-03-27 14:43:26 +0400
: Server crashes in embedding_sjm on a simple 1-table select with AND and OR
This is a regession introduced by fix for
The problem was that there were scenarios where check_simple_equality() would create an Item_equal object but would not call item_equal->set_context_field() on it.
[merge] Mon 2012-03-26 21:38:24 +0400
Merge
Mon 2012-03-26 21:34:24 +0400
: Wrong result (missing rows) with semijoin+firstmatch, IN/ANY subquery
Mon 2012-03-26 16:06:42 +0300
Bug fix for "auto_increment_offset != 1 + innodb_autoinc_lock_mode=1 => bulk inserts fail"
Patch and test case by Patryk Pomykalski
Mon 2012-03-26 15:05:50 +0300
Sorted some test results that can be different on different machines
Mon 2012-03-26 13:29:45 +0300
Fixed "Assertion `lock_type != TL_UNLOCK && (lock_type == TL_IGNORE || file->lock.type == TL_UNLOCK)' failed in ha_maria::store_lock with DML, triggers, views"
[merge] Mon 2012-03-26 13:52:55 +0400
Merge
Mon 2012-03-26 13:47:00 +0400
: Wrong result (missing rows) with semijoin+materialization, IN subquery, InnoDB, TEMPTABLE view
Mon 2012-03-26 11:46:01 +0300
Increased version number
Sun 2012-03-25 18:31:35 +0400
: Assertion `0' failed in QUICK_INDEX_SORT_SELECT::need_sorted_output()
The problem was that
we've picked a LooseScan that used full index scan (tab->type==JT_ALL) on certain index.
Sat 2012-03-24 17:08:59 +0100
Improve filesort performance for small sorts: Don't write pointers to records that we will never use.
Fri 2012-03-23 18:22:39 +0200
Speedup:
Don't call update_virtual_fields() if table->vfield is not set
Don't prealloc memory for in open_tables() as this is very seldom used.
Fri 2012-03-23 18:18:16 +0200
Fixes "JOIN constructors takes a long time in 5.3"
Remove all references of MAX_TABLES from JOIN struct and make these dynamic
Updated Join_plan_state to allocate just as many elements as it's needed
Fri 2012-03-23 18:11:29 +0200
Speedups:
Optimize away calls to hp_rec_hashnr() by cashing hash
Try to get more rows / block (to minimize overhead of HP_PTRS) in HEAP tables.
Thu 2012-03-22 19:56:17 -0700
Fixed .
If the first component of a ref key happened to be a constant appeared after constant row substitution then no store_key element should be created for such a component. Yet create_ref_for_key() erroneously could create such an element that caused construction of invalid ref keys and wrong results for some joins.
[merge] Thu 2012-03-22 13:23:55 +0100
Automerge.
Thu 2012-03-22 13:21:15 +0100
Backport some simple performance patches from 5.5.
[merge] Wed 2012-03-21 19:15:29 +0100
merge
[merge] Wed 2012-03-21 18:30:34 +0100
merge
Wed 2012-03-21 10:59:20 +0100
SHOW TABLES was unnecessary opening .frm files
mark the corresponding I_S table as OPTIMIZE_I_S_TABLE, to let the I_S optimizer figure out whether files need to be opened, and don't open the tables unless I_S optimizer says so.
[merge] Wed 2012-03-21 11:18:20 +0400
Merge
Sun 2012-03-18 23:58:20 +0400
: Server crashes on 2nd execution of PS in find_field_in_tables with semijoin+materialization
Tue 2012-03-20 17:03:28 -0700
Fixed .
This bug in the constructor SEL_IMERGE::SEL_IMERGE could cause huge excessive memory requests.
Mon 2012-03-19 01:04:55 +0400
: Server crashes in Item_field::fix_after_pullout on INSERT .. SELECT
Take into account that there may exist Item_field objects with context==NULL.
[merge] Wed 2012-03-14 13:58:18 +0200
Merge 5.2->5.3
Wed 2012-03-14 12:09:03 +0200
test suite for LP bug#694450
[merge] Tue 2012-03-13 13:49:18 -0700
Merge.
Tue 2012-03-13 13:34:20 -0700
Fixed .
Tue 2012-03-13 16:38:43 +0200
Fixed bug "Archive table corruption crashing MariaDB signal 11"
Added 'from_end' as extra parameter to Field::unpack() to detect wrong from data.
Change ha_archive::unpack_row() to detect wrong field lengths.
[merge] Mon 2012-03-12 18:21:14 +0400
Merge
[merge] Mon 2012-03-12 18:08:40 +0400
Merge
Mon 2012-03-12 18:20:30 +0400
Better comments
[merge] Mon 2012-03-05 22:33:46 -0800
Merge.
Mon 2012-03-05 20:32:28 -0800
Fixed .
[merge] Mon 2012-03-05 22:00:24 +0200
Automatic merge
Mon 2012-03-05 21:59:00 +0200
Ensure that we mark all processed tables as 'properly closed'.
Mon 2012-03-05 15:48:12 +0200
Fix for
Problem is that subquery execution can't be called during prepare/optimize phase.
Also small fix for subquery test suite.
Sun 2012-03-04 22:38:17 -0800
Fixed .
This bug in the function JOIN::drop_unused_derived_keys() could leave the internal structures for a materialized derived table in an inconsistent state. This led to a not quite correct EXPLAIN output when no additional key had been created to access the table.
It also may lead to more serious consequences: so, the test case added with this fix caused a crash in mariadb-5.5.20.
Wed 2012-02-29 23:28:16 -0800
Fixed .
This bug appeared after the patch for that in the function merge_key_fields forgot to reset a proper value for the val field in the result of the merge operation of the key field created for a regular key access and the key field created to look for a NULL key.
Adjusted the results of the test case for bug 939009 that actually were incorrect.
This bug happened because the function find_field_in_view formed autogenerated names of view columns without a possibility to roll them back. In some situation it could cause memory misuses reported by valgrind or even crashes.
Revision #2643.153.4 Fri 2012-04-06 13:31:33 +0500
MDEV-80 Memory engine table full at much less than max_heap_table_size with btree index.
RB-tree index in the MEMORY table fails if it grews over 4G.
That happened because the old_allocated variable in hp_rb_write_key() had the uint type. Changed with the 'size_t' type to be same as the 'rb_tree.allocated'.
per-file comments:
storage/heap/hp_write.c
Memory engine table full at much less than max_heap_table_size with btree index. uint->size_t for the 'old_allocated'.
Revision #2643.153.3 [merge] Thu 2012-04-05 10:49:38 +0200
mysql-5.1.62 merge
Revision #2643.153.2 Wed 2012-04-04 15:41:50 +0200
MDEV-212 sporadic main.connect failures in 5.3
don't cast implicitly an int to a char, when a boolean value is desired.
Merge with 5.1
Revision #2643.153.1 [merge] Wed 2012-04-04 13:38:19 +0300
Merge in deleted fixes
Revision #2643.152.2 Wed 2012-04-04 13:20:06 +0300
Fixed test cases that changed as part of fixing bugs with record count and partitioning
Revision #3488.1.1 [merge] Mon 2012-04-02 21:47:31 +0400
Merge
Revision #3479.1.1 Mon 2012-04-02 21:41:54 +0400
Bug #913030: Optimizer chooses a suboptimal excution plan for Q18 from DBT-3
When doing join optimization, pre-sort the tables so that they mimic the execution order we've had with 'semijoin=off'.
That way, we will not get regressions when there are two query plans (the old and the new) that have indentical costs but different execution times (because of factors that the optimizer was not able to take into account).
Revision #2643.152.1 Wed 2012-04-04 00:14:07 +0300
Fixed Bug #970528 "Server crashes in my_strnncollsp_simple on LEFT JOIN with CSV table, TEXT field"
The main problem was a bug in CSV where it provided wrong statistics (it claimed the table was empty when it wasn't)
I also fixed wrong freeing of blob's in the CSV handler. (Any call to handler::read_first_row() on a CSV table with blobs would fail)
Thanks to Maarten Vanraes for the patch
Revision #3485.1.1 Fri 2012-03-30 16:00:10 +0300
Compatibility fixes by U Orsini
Revision #2643.143.86 Fri 2012-03-30 16:09:57 +0200
MDEV-205 don't install libevent headers
Revision #2643.143.85 Fri 2012-03-30 13:42:52 +0300
Fixed Bug #967914 "CHECK TABLE persistently reports table corruption after removing Aria logs"
Fixed that repair removes the 'table is moved' mark.
Revision #2643.143.84 Thu 2012-03-29 18:06:08 +0200
fix the test case for windows: replace_result \\ /
Revision #2643.143.83 Thu 2012-03-29 16:36:06 +0200
make the code compile again
Revision #2643.143.82 Wed 2012-03-28 13:22:21 +0300
Fixed Bug #944422 "mysql_upgrade destroys Maria tables?"
The issue was that check/optimize/anaylze did not zerofill the table before they started to work on it.
Added one more element to not often used function handler::auto_repair() to allow handler to decide when to auto repair.
The fix was to add the missing calls.
The problem was with execution strategy for cases where FirstMatch's inner tables were interleaved with outer-uncorrelated tables.
I was unable to find any cases where such join orders would be practically useful, so fixed it by disabling them.
Fix equality propagation to work with SJM nests and OR clauses (full descirption of problem and solution in the comment in the patch)
The second commit with post-review fixes)
there was also a quick select (tab->quick!=NULL), that used other indexes.
some old code assumes that (tab->type==JT_ALL && tab->quick) -> means that the quick select should be used, which is not true.
Fixed by discarding the quick select as soon as we know we're using LooseScan without using the quick select.
Revision #2643.143.81 Wed 2012-03-21 18:22:02 +0100
Bug #933959 Assertion `0' failed in net_end_statement(THD*) on concurrent SELECT FROM I_S.INNODB_SYS_INDEXES and ALTER TABLE
Workaround: report a generic error if an I_S plugin failed silently.
Revision #2643.143.80 Thu 2012-03-15 15:06:06 +0100
Fix access to uninitialized variable in innodb error message in case WriteFile() fails.
Revision #2643.143.79 Wed 2012-03-14 21:16:24 +0100
restore my_safe_printf_stderr for "crash-safe sigsegv handler"
use vsnprintf()
use write() on windows, not WriteFile or fwrite()
localtime_r is still a problem
The problem was that convert_subq_to_jtbm() attached the semi-join TABLE_LIST object into the wrong list: they used to attach it to the end of parent_lex->leaf_tables.head()->next_local->...->next_local.
This was apparently inccorect, as one can construct an example where JTBM nest is attached to a table that is inside some mergeable VIEW, which breaks (causes crash) for name resolution on the subsequent statement re-execution.
Solution: Attach to the "right" list. The "wording" was copied from st_select_lex::handle_derived.
Revision #2732.53.18 [merge] Mon 2012-03-12 12:15:55 +0100
merge
Revision #2643.143.78 Mon 2012-03-12 11:31:40 +0100
Bug #953714: Fix formatting of the crash messages in signal/exception handler
Revision #2732.53.17 Mon 2012-03-12 12:14:04 +0100
Bug #952607: Do not show MySQL services preinstalled by Dell in the upgrade wizard
Revision #2732.53.16 Fri 2012-03-09 15:37:16 -0800
Fixed Bug #930814.
This bug was introduced into mariadb 5.2 in the December 2010 with the patch that added a new engine property: the ability to support virtual columns.
As a result of this bug the information from frm files for tables that contained virtual columns did not appear in the information schema tables.
Revision #2732.53.15 Fri 2012-03-09 14:28:02 +0200
Added test case for Bug #905782 "Assertion pageno < ((1ULL) <<` 40)' failed at ma_pagecache.c:3438: pagecache_read or table corruption on INSERT into a ucs2 table"
The orignal bug has been fixed earlier
Revision #2732.53.14 Fri 2012-03-09 14:06:17 +0200
Added ucs2 test moved from maria3.test. (MDEV-167)
Revision #2732.53.13 Thu 2012-03-08 22:33:01 -0800
Fixed Bug #884175.
If in the where clause of the a query some comparison conditions on the field under a MIN/MAX aggregate function contained constants whose sizes exceeded the size of the field then the query could return a wrong result when the optimizer had chosen to apply the MIN/MAX optimization.
With such conditions the MIN/MAX optimization still could be applied, yet it would require a more thorough analysis of the keys built to find the value of MIN/MAX aggregate functions with index look-ups.
The current patch just prohibits using the MIN/MAX optimization in this situation.
Revision #2732.53.12 [merge] Tue 2012-03-06 01:48:38 +0100
merge
Revision #2732.55.1 Tue 2012-03-06 01:46:32 +0100
Bug #947631: Uninstall wipes HeidiSQL settings, even if HeidiSQL is installed prior to MariaDB
Fixed detection of installed HeidiSQL in the machine, prevent installing own copy if HeidiSQL is already installed.
On deinstallation, do not remove settings if official HeidiSQL is detected.
Revision #2732.53.11 Thu 2012-03-01 09:27:42 +0200
Return original checksum value inside the test.
Move ucs2 test in separate file (MDEV-167).
Do not call, directly or indirectly, SQL_SELECT::test_quick_select() for derived materialized tables / views when optimizing joins referring to these tables / views to get cost estimates of materialization. The current code does not create B-tree indexes for materialized derived tables / views. So now it's not possible to get any estimates for ranges conditions over the results of the materialization.
The function mysql_derived_create() must take into account the fact that array of the KEY structures specifying the keys over a derived table / view may be moved after the optimization phase if the derived table / view is materialized.
Replication code changed to detect wrong field information in events.
Revision #3450.1.1 Mon 2012-03-12 17:41:22 +0400
Bug #952297: Server crashes on 2nd execution of PS in Field::is_null with semijoin+materialization
The bug would show up
when using PS (so that we get re-execution)
the left_expr of the subquery is a reference to viewname.column_name, so that it crashes when one tries to use it without having called fix_fields for it.
when using SJ-Materialization, which makes use of sj_subq_pred->left_expr expression
The fix is to have setup_conds() fix sj_subq_pred->left_expr for semi-join nests it finds.
The function create_hj_key_for_table() that builds the descriptor of the hash join key to access a table of a materialized subquery must ignore any equi-join predicate depending on the tables not belonging to the subquery.
This is needed as last log entry may be a DDL that is not processed and then a table may be left in 'not properly closed state' even if information is correct in it.
Revision #3442.1.1 Tue 2012-02-28 23:18:52 +0200
Fixed Bug #925377 "Querying myisam table metadata while 'alter table..enable keys' is running may corrupt the table"
Fixed wrong mutex order bug in Aria when flush_log_for_bitmap() was called when table is not yet marked for change.
This page is licensed: CC BY-SA / Gnu FDL