This is a read-only copy of the MariaDB Knowledgebase generated on 2024-11-14. For the latest, interactive version please visit https://mariadb.com/kb/.

MariaDB 5.3.6 Changelog

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 Bug #972943 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.
  • Revision #3499 Sat 2012-04-07 02:29:04 -0700
    • Fixed Bug #972973.
    • 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.
  • Revision #3498 [merge] Fri 2012-04-06 16:40:39 -0700
    • Merge.
    • Revision #3489.1.1 Fri 2012-04-06 15:08:09 -0700
      • Fixed Bug #915222.
      • 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 #3497 Fri 2012-04-06 13:18:12 +0300
    • Unused method removed.
  • Revision #3496 [merge] Fri 2012-04-06 14:24:00 +0500
    • merging.
    • Revision #2732.53.29 [merge] Fri 2012-04-06 13:51:42 +0500
      • merging.
      • 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
            • MDEV-80 Memory engine table full at much less than max_heap_table_size with btree index. uint->size_t for the 'old_allocated'.
  • Revision #3495 [merge] Thu 2012-04-05 23:07:18 +0200
  • Revision #3494 Thu 2012-04-05 23:32:57 +0300
    • Fix of Bug #968720.
    • 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.
  • Revision #3493 Wed 2012-04-04 21:35:34 +0400
    • Make test results stable.
  • Revision #3492 [merge] Wed 2012-04-04 14:19:46 +0300
    • Merge with 5.2
    • Fixed additional changed pbxt test cases
    • Revision #2732.53.27 [merge] Wed 2012-04-04 13:50:24 +0300
      • 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 #3491 [merge] Wed 2012-04-04 12:37:46 +0400
    • Merge
    • Revision #3488.1.2 Wed 2012-04-04 12:26:36 +0400
    • 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 #3490 [merge] Wed 2012-04-04 01:00:23 +0300
    • Merge with 5.2
    • Revision #2732.53.26 [merge] Wed 2012-04-04 00:33:02 +0300
      • Merge with 5.1
      • 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)
  • Revision #3489 Tue 2012-04-03 15:42:26 +0300
    • Don't disable core on signal just becasue platform doesn't handle stack traces
  • Revision #3488 [merge] Mon 2012-04-02 17:54:33 +0200
  • Revision #3487 [merge] Mon 2012-04-02 12:27:15 +0300
    • automatic merge
    • Revision #3485.1.2 Mon 2012-04-02 11:45:07 +0300
    • Fixed Bug #886479 "[PATCH] plugin boolean result"
    • 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 #3486 [merge] Fri 2012-03-30 16:13:41 +0200
  • Revision #3485 [merge] Fri 2012-03-30 13:54:33 +0300
    • Merge from 5.2
    • Revision #2732.53.23 [merge] Fri 2012-03-30 13:51:16 +0300
      • Automatic merge
      • 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 #3484 [merge] Fri 2012-03-30 08:49:57 +0200
  • Revision #3483 Thu 2012-03-29 16:32:35 +0200
    • remove race conditions from the test
  • Revision #3482 Thu 2012-03-29 21:58:40 +0200
    • Add missing include (fixes compile failure with gcc 4.7).
  • Revision #3481 [merge] Wed 2012-03-28 13:58:14 +0300
    • Automatic merge
    • Revision #2732.53.21 [merge] Wed 2012-03-28 13:49:07 +0300
    • Merge with 5.1
      • 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.
  • Revision #3480 Tue 2012-03-27 16:06:00 +0300
    • Added feature request from Bug #956585 "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.
  • Revision #3479 Tue 2012-03-27 14:43:26 +0400
    • Bug #965872: Server crashes in embedding_sjm on a simple 1-table select with AND and OR
      • This is a regession introduced by fix for Bug #951937
      • 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.
      • The fix was to add the missing calls.
  • Revision #3478 [merge] Mon 2012-03-26 21:38:24 +0400
    • Merge
    • Revision #3474.1.1 Mon 2012-03-26 21:34:24 +0400
      • Bug #951283: Wrong result (missing rows) with semijoin+firstmatch, IN/ANY subquery
        • 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.
  • Revision #3477 Mon 2012-03-26 16:06:42 +0300
    • Bug fix for MySQL Bug #61209 "auto_increment_offset != 1 + innodb_autoinc_lock_mode=1 => bulk inserts fail"
    • Patch and test case by Patryk Pomykalski
  • Revision #3476 Mon 2012-03-26 15:05:50 +0300
    • Sorted some test results that can be different on different machines
  • Revision #3475 Mon 2012-03-26 13:29:45 +0300
    • Fixed Bug #963603 "Assertion `lock_type != TL_UNLOCK && (lock_type == TL_IGNORE || file->lock.type == TL_UNLOCK)' failed in ha_maria::store_lock with DML, triggers, views"
  • Revision #3474 [merge] Mon 2012-03-26 13:52:55 +0400
    • Merge
    • Revision #3472.1.1 Mon 2012-03-26 13:47:00 +0400
      • Bug #951937: Wrong result (missing rows) with semijoin+materialization, IN subquery, InnoDB, TEMPTABLE view
      • 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)
  • Revision #3473 Mon 2012-03-26 11:46:01 +0300
    • Increased version number
  • Revision #3472 Sun 2012-03-25 18:31:35 +0400
    • Bug #962667: 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.
      • 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 #3471 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.
  • Revision #3470 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.
  • Revision #3469 Fri 2012-03-23 18:18:16 +0200
    • Fixes Bug #941889 "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
  • Revision #3468 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.
  • Revision #3467 Thu 2012-03-22 19:56:17 -0700
    • Fixed Bug #954900.
    • 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.
  • Revision #3466 [merge] Thu 2012-03-22 13:23:55 +0100
    • Automerge.
    • Revision #3460.1.1 Thu 2012-03-22 13:21:15 +0100
      • Backport some simple performance patches from 5.5.
  • Revision #3465 [merge] Wed 2012-03-21 19:15:29 +0100
    • merge
    • Revision #2732.53.20 [merge] Wed 2012-03-21 18:30:34 +0100
      • merge
      • 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
  • Revision #3464 Wed 2012-03-21 10:59:20 +0100
    • MDEV-191 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.
  • Revision #3463 [merge] Wed 2012-03-21 11:18:20 +0400
    • Merge Bug #952372
    • Revision #3457.2.1 Sun 2012-03-18 23:58:20 +0400
      • Bug #952372: Server crashes on 2nd execution of PS in find_field_in_tables with semijoin+materialization
        • 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 #3462 Tue 2012-03-20 17:03:28 -0700
    • Fixed Bug #954262.
    • This bug in the constructor SEL_IMERGE::SEL_IMERGE could cause huge excessive memory requests.
  • Revision #3461 Mon 2012-03-19 01:04:55 +0400
    • Bug #952583: Server crashes in Item_field::fix_after_pullout on INSERT .. SELECT
    • Take into account that there may exist Item_field objects with context==NULL.
  • Revision #3460 [merge] Wed 2012-03-14 13:58:18 +0200
    • Merge 5.2->5.3
    • Revision #2732.53.19 Wed 2012-03-14 12:09:03 +0200
      • test suite for LP bug#694450
    • Revision #2732.53.18 [merge] Mon 2012-03-12 12:15:55 +0100
    • 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).
  • Revision #3459 [merge] Tue 2012-03-13 13:49:18 -0700
    • Merge.
    • Revision #3457.1.1 Tue 2012-03-13 13:34:20 -0700
      • Fixed Bug #953649.
      • 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.
  • Revision #3458 Tue 2012-03-13 16:38:43 +0200
    • Fixed bug Bug #917689 "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.
    • Replication code changed to detect wrong field information in events.
  • Revision #3457 [merge] Mon 2012-03-12 18:21:14 +0400
    • Merge
    • Revision #3450.1.2 [merge] Mon 2012-03-12 18:08:40 +0400
      • Merge
      • 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.
  • Revision #3456 Mon 2012-03-12 18:20:30 +0400
    • Better comments
  • Revision #3455 [merge] Mon 2012-03-05 22:33:46 -0800
    • Merge.
    • Revision #3453.1.1 Mon 2012-03-05 20:32:28 -0800
      • Fixed Bug #946055.
      • 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.
  • Revision #3454 [merge] Mon 2012-03-05 22:00:24 +0200
    • Automatic merge
    • Revision #3442.1.2 Mon 2012-03-05 21:59:00 +0200
      • Ensure that we mark all processed tables as 'properly closed'.
      • 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.
  • Revision #3453 Mon 2012-03-05 15:48:12 +0200
    • Fix for Bug #944504
    • Problem is that subquery execution can't be called during prepare/optimize phase.
    • Also small fix for subquery test suite.
  • Revision #3452 Sun 2012-03-04 22:38:17 -0800
    • Fixed Bug #944782.
    • 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.
  • Revision #3451 Wed 2012-02-29 23:28:16 -0800
    • Fixed Bug #943543.
    • This bug appeared after the patch for Bug #939009 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.
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.