MariaDB 5.5.29 Changelog

The most recent release in the MariaDB 5.5 series is:MariaDB 5.5.68 Download Nowarrow-up-right

Downloadarrow-up-right | Release Notes | Changelog |[Overview of 5.5arrow-up-right

Release date: 30 Jan 2013

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.

MDEV-3817arrow-up-right: Wrong result with index_merge+index_merge_intersection, InnoDB table, join, AND and OR conditions Reconcile the fixes from:

# guilhem.bichot@oracle.com-20110805143029-ywrzuz15uzgontr0

Fix for BUG#12698916 - "JOIN QUERY GIVES WRONG RESULT AT 2ND EXEC. OR

AFTER FLUSH TABLES [-INT VS NULL]"

# guilhem.bichot@oracle.com-20111209150650-tzx3ldzxe1yfwji6

Fix for BUG#12912171 - ASSERTION FAILED: QUICK->HEAD->READ_SET == SAVE_READ_SET

and

  • Now, ROR-merged QUICK_RANGE_SELECT objects make no assumptions about the values of table->read_set and table->write_set. Each QUICK_ROR_SELECT has (and had before) its own column bitmap, but now, all QUICK_ROR_SELECT's functions that care: reset(), init_ror_merged_scan(), and get_next() will set table->read_set when invoked and restore it back to what it was before the call before they return.

  • This allows to avoid the mess when somebody else modifies table->read_set for some reason.

  • Revision #3650arrow-up-right [merge] Mon 2013-01-28 13:36:05 +0100

  • Revision #3649arrow-up-right Mon 2013-01-28 13:49:14 +0200

  • Revision #3648arrow-up-right [merge] Sat 2013-01-26 22:23:27 +0100

    • Revision #3644.1.4arrow-up-right Fri 2013-01-25 23:34:46 +0100

      • fix embedded

    • Revision #3644.1.3arrow-up-right Fri 2013-01-25 18:59:30 +0100

      • Fix embedded build

    • Revision #3644.1.2arrow-up-right Fri 2013-01-25 17:26:10 +0100

      • Miscellaneous workarounds for drop-in compatibility problems with Linux distributions, arounf versioning of the MySQL 5.5 client shared library. There seems to be 3 different ways major distributions handle versioning

        1. Fedora (also Mageia, and likely other Redhat descendants) way old, 5.1 API functions are given version libmysqlclient_16 new API functions (client plugins, mysql_stmt_next ) are given version libmysqlclient_18 some extra functions beyond API are exported. some functions are renamed.

      • 2.Debian Wheezy way all functions are given libmysqlclient_18 version

        1. Ubuntu way (or MySQL/MariaDB download packages) no versioning

      • UIp to this fix, MariaDB distributions did not have any versioning in the libraries, this rendered client library incompatible to distributions thus exchanging distribution's libmysqlclient.so.18.0.0 with MariaDB's did not work nicely (anywhere but on Ubuntu)

      • THE FIX is to build libraries the same way as distributions do it - when building RPMs, use same version script as Fedora does, Make sure to export extra-symbols, the same as Fedora exports. - when building DEBs, use the same version script as Debian Wheezy - do not use version scripts otherwise

      • Also, makes sure that extensions of MySQL APIs (asynchronous client functionality) is exported by the shared libraries.

    • Revision #3644.1.1arrow-up-right Fri 2013-01-25 16:50:14 +0100

      • MDEV-3971arrow-up-right : problems installing MariaDB packages (conflicts with mysql-libs-5.5) FIx : make "shared" RPM obsolete/provide mysql-libs

  • Revision #3647arrow-up-right [merge] Sat 2013-01-26 01:59:27 +0200

  • Revision #3646arrow-up-right [merge] Fri 2013-01-25 11:24:42 +0100

  • Revision #3645arrow-up-right [merge] Wed 2013-01-23 15:18:05 -0800

    • Merge 5.3->5.5

    • Revision #2502.567.61arrow-up-right [merge] Mon 2013-01-21 21:29:19 -0800

    • Revision #2502.567.60arrow-up-right Wed 2013-01-16 21:07:26 +0200

      • The problem was that maybe_null of Item_row and its componetes was unsynced after update_used_tables() (and so pushed_cond_guards was not initialized but then requested).

      • Fix updates Item_row::maybe_null on update_used_tables().

    • Revision #2502.567.59arrow-up-right Thu 2013-01-17 16:08:05 +0200

      • MDEV-3900arrow-up-right Optimizer difference between MySQL and MariaDB with stored functions in WHERE clause of UPDATE or DELETE statements

      • Analysis The reason for the less efficient plan was result of a prior design decision - to limit the eveluation of constant expressions during optimization to only non-expensive ones. With this approach all stored procedures were considered expensive, and were not evaluated during optimization. As a result, SPs didn't participate in range optimization, which resulted in a plan with table scan rather than index range scan.

      • Solution Instead of considering all SPs expensive, consider expensive only those SPs that are non-deterministic. If an SP is deterministic, the optimizer will checj if it is constant, and may eventually evaluate it during optimization.

    • Revision #2502.567.58arrow-up-right Thu 2013-01-17 13:53:15 +0200

      • backport of: Don't reset maybe_null in update_used_tables(); This breaks ROLLUP This fixed failing test in group_by.test

    • Revision #2502.567.57arrow-up-right Wed 2013-01-16 15:11:13 +0200

      • Subquery turned into constant too late to be excluded from grouping list so test for constant added to the create_temp_table().

    • Revision #2502.567.56arrow-up-right Fri 2013-01-11 20:26:34 -0800

      • Fixed bug MDEV-4025arrow-up-right. The bug could lead to a wrong estimate of the number of expected rows in the output of the EXPLAIN commands for queries with GROUP BY. This could be observed in the test case for LP bug 934348.

    • Revision #2502.567.55arrow-up-right Fri 2013-01-11 12:44:21 +0100

      • MDEV-4020arrow-up-right : Make sure strmov symbol is exported by client library on Linux (even if the server and libraries itself use stpcpy instead of it)

      • It is a workaround that allows myodbc built by certain distributions' (CentOS,Fedora) to peacefully coexist with mariadb client libraries. The problem is that MyODBC in these distros needs strmov() to be exported by mysql client shared library, or else myodbc fails to load.

  • Revision #3644arrow-up-right Wed 2013-01-23 14:58:05 +0100

    • remove one particularly stupid test

  • Revision #3643arrow-up-right Mon 2013-01-21 12:20:54 +0100

  • Revision #3642arrow-up-right Tue 2013-01-22 13:29:59 +0200

    • Fixed typo in the function name. test suite added.

  • Revision #3641arrow-up-right Mon 2013-01-21 14:34:39 +0200

  • Revision #3640arrow-up-right Sun 2013-01-20 21:43:11 +0100

    • fix a strict aliasing warning - remove a meaningless cast.

  • Revision #3639arrow-up-right Sun 2013-01-20 21:42:01 +0100

    • MDEV-3952arrow-up-right Incompatible change in MariaDB-5.5.28a-client rpm adds mytop when not in MariaDB-5.5.23-client (CentOS 5)

    • Same as for deb: don't add mytop to the client rpm.

  • Revision #3638arrow-up-right Sun 2013-01-20 14:06:33 +0100

    • MDEV-3934arrow-up-right Assertion `((keypart_map+1) & keypart_map) == 0' failed in _mi_pack_key with an index on a POINT column

    • sel_arg_range_seq_next(): set keypart map also for GEOM_FLAG keys

  • Revision #3637arrow-up-right Sun 2013-01-20 00:46:51 +0100

    • MDEV-4029arrow-up-right SELECT on information_schema using a subquery locks up the information_schema table due to incorrect mutexes handling

    • Early evaluation of subqueries in the WHERE conditions on I_S.*_STATUS tables, otherwise the subquery on this same table will try to acquire LOCK_status twice.

  • Revision #3636arrow-up-right Sat 2013-01-19 14:03:33 +0100

    • MDEV-3832arrow-up-right MariaDB conflicts with packages filesystem-3.1-2.fc18.i686 and jre-1.7.0_09-fcs.i586 on Fedora 18

    • fix the rpm packaging to work on Fedora18. Two problems: * conflicts on common directories with other packages. * more auto-generated requirements for mariadb-test.rpm

  • Revision #3635arrow-up-right Fri 2013-01-18 19:10:20 +0100

  • Revision #3634arrow-up-right Fri 2013-01-18 19:07:59 +0100

    • simplify THD::binlog_setup_trx_data() usage

  • Revision #3633arrow-up-right Fri 2013-01-18 19:04:51 +0100

  • Revision #3632arrow-up-right Fri 2013-01-18 19:04:23 +0100

  • Revision #3631arrow-up-right Fri 2013-01-18 18:49:07 +0100

    • Fix Windows installers' bootstrapper scripts , after mysql_performance_tables.sql was split off mysql_system_tables.sql

  • Revision #3630arrow-up-right Thu 2013-01-17 02:27:10 +0200

    • Don't reset maybe_null in update_used_tables(); This breaks ROLLUP This fixed failing test in group_by.test

  • Revision #3629arrow-up-right Thu 2013-01-17 01:08:49 +0200

    • Fixed compiler warning

  • Revision #3628arrow-up-right [merge] Wed 2013-01-16 11:13:08 +0100

  • Revision #3627arrow-up-right Tue 2013-01-15 19:16:29 +0100

    • Test case and a different fix for MySQL bug#14485479

  • Revision #3626arrow-up-right Tue 2013-01-15 19:16:18 +0100

    • small cleanups

  • Revision #3625arrow-up-right Tue 2013-01-15 19:15:51 +0100

    • backport a test case for a 5.5 bug fix from the 5.6 tree

  • Revision #3624arrow-up-right [merge] Tue 2013-01-15 19:13:32 +0100

    • mysql-5.5.29 merge

    • Revision #3077.166.19arrow-up-right [

      • merge] Tue 2012-09-11 17:42:22 +0300

      • merge

    • Revision #3077.166.18arrow-up-right Mon 2012-08-27 15:30:58 +0300

      • Bug #13548161: MYSQLD_SAFE IMPROVEMENTS FOR 5.5 ALLWAYS SETS PLUGIN_DIR TO DEFAULT IGNOR

      • The test in mysqld_safe for the presence of the --plugin-dir and assigning a default value to it were performed before the actual argument parsing. This is wrong, as PLUGIN_DIR mysqld_safe code also uses MY_BASEDIR_VERSION to look for version specific plugin directory if present. Fixed by moving the PLUGIN_DIR logic after the parse_arguments() call.

    • Revision #3077.166.17arrow-up-right Fri 2012-08-24 15:01:31 +0300

      • Bug #14181049: MYSQL_INSTALL_DB.PL CREATES EMPTY SYSTEM TABLES FOR MYSQL

      • The script is different from what's used on unixes. It was not playing the table insertion script (mysql_system_tables_data.sql), although it was checking for the presence of this script. Fixed by re-enabling the lookup for this file and replaying it at bootstrap time. Note that on the Unixes "SELECT @@hostname" does return a fully qualified name, whereas on Windows it returns only a hostname. So by default we're filtering records in the mysql.user table until we ensure this is fixed.

  • Revision #3623arrow-up-right Tue 2013-01-15 19:08:49 +0100

    • update debian patch to apply

  • Revision #3622arrow-up-right [merge] Tue 2013-01-15 19:07:46 +0100

  • Revision #3621arrow-up-right Tue 2013-01-15 17:46:46 +0100

    • remove thd_mark_as_hard_kill() (because it's conceptually wrong. only the user can decide whether the kill is allowed to leave tables in the inconsistent state, storage engine has no say in that)

  • Revision #3620arrow-up-right Tue 2013-01-15 14:33:08 +0200

    • Fix for bug MDEV-3992arrow-up-right, second attempt

    • The previous fix for MDEV-3992arrow-up-right was incomplete, because it still computed incorrectly the number of keyparts of the extended secondary key in the case when columns of the PK participate in the secondary key.

    • This patch by Monty corrects the above problem.

  • Revision #3619arrow-up-right Mon 2013-01-14 15:05:05 +0200

    • Analysis: The crash is a result of incorrect analysis of whether a secondary key can be extended with a primary in order to compute ORDER BY. The analysis is done in test_if_order_by_key(). This function doesn't take into account that the primary key may in fact index the same columns as the secondary key. For the test query test_if_order_by_key says that there is an extended key with total 2 keyparts. At the same time, the condition if (pkinfo->key_part[i].field->key_start.is_set(nr)) in test_if_cheaper_oredring() becomes true for (i == 0), which results in an invalid access to rec_per_key[-1].

    • Solution: The best solution would be to reuse KEY::ext_key_parts that is already computed by open_binary_frm(), however after detailed analysis the conclusion is that the change would be too intrusive for a GA release. The solution for 5.5 is to add a guard for the case when the 0-th key part is considered, and to assume that all keys will be scanned in this case.

  • Revision #3618arrow-up-right Fri 2013-01-11 02:03:43 +0200

    • Buildbot fixes and cleanups: - Added --verbose to BUILD scripts to get make to write out compile commands. - Detect if AM_EXTRA_MAKEFLAGS=VERBOSE=1 was used with build scripts. - Don't write warnings about replication variables when doing bootstrap. - Fixed that mysql_cond_wait() and mysql_cond_timedwait() will report original source file in case of errors. - Ignore some compiler warnings

  • Revision #3617arrow-up-right Fri 2013-01-11 01:31:50 +0200

    • Fixed crashing bug in GROUP_CONCAT with ROLLUP Fixed MDEV-4002arrow-up-right: Server crash or valgrind errors in Item_func_group_concat::setup and Item_func_group_concat::add

  • Revision #3616arrow-up-right Fri 2013-01-11 00:53:07 +0200

    • Fixed problem with failing mysql_upgrade when proc table was not correct. Moved out creation of performance schema tables from mysql_system_tables.sql as the performance_tables creation scripts needs a working mysql.proc to work.

  • Revision #3615arrow-up-right Fri 2013-01-11 00:35:33 +0200

    • Fixed MDEV-4013arrow-up-right: Password length in replication setup Give error for wrong parameters to CHANGE MASTER Extend MASTER_PASSWORD and MASTER_HOST lengths

  • Revision #3614arrow-up-right Fri 2013-01-11 00:22:14 +0200

    • Fixed some race conditons and bugs related to killed queries KILL now breaks locks inside InnoDB Fixed possible deadlock when running INNODB STATUS Added ha_kill_query() and kill_query() to send kill signal to all storage engines Added reset_killed() to ensure we don't reset killed state while awake() is getting called

  • Revision #3613arrow-up-right Thu 2013-01-10 23:40:18 +0200

    • Fix for MDEV-4009arrow-up-right: main.delayed sporadically fails with "query 'REPLACE DELAYED t1 VALUES (5)' failed: 1317: Query execution was interrupted" - Fixed broadcast without a proper mutex - Don't break existing locks if we are just testing if we can get the lock

  • Revision #3612arrow-up-right Wed 2013-01-09 17:30:20 +0100

  • Revision #3611arrow-up-right Wed 2013-01-09 17:29:51 +0100

  • Revision #3610arrow-up-right Tue 2013-01-08 21:23:40 +0100

  • Revision #3609arrow-up-right Tue 2013-01-08 21:21:28 +0100

    • MDEV-3987arrow-up-right uninitialized read in Item_cond::fix_fields leads to crash: select .. where .. in ( select ... )

    • change Item_func_group_concat to use max_length according to the expected semantics

  • Revision #3608arrow-up-right Mon 2013-01-07 20:21:05 +0100

    • non-functional cleanup, clarifying CONVERT_IF_BIGGER_TO_BLOB

  • Revision #3607arrow-up-right Sat 2013-01-05 23:52:25 +0100

    • Remove timed mutexes in XtraDB - obsolete feature that does not link on Windows, if plugin is build dynamically It was already removed from innobase in the past.

  • Revision #3606arrow-up-right Tue 2013-01-01 15:33:25 +0100

  • Revision #3605arrow-up-right [merge] Mon 2012-12-31 01:39:26 +0400

    • MDEV-3990arrow-up-right: engine tests went out of sync with current MariaDB code Reasons: - as of 5.5.27, YEAR(2) is deprecated, hence the new warning; - MDEV-553arrow-up-right - different error code/message on out-of-range autoincrement; - INSERT IGNORE now produces a warning if a duplicate was encountered

    • Revision #3604.1.1arrow-up-right Fri 2012-12-28 17:02:33 +0400

      • storage_engine tests and upstream engines/* suites went out of sync with current MariaDB code. Reasons: - as of 5.5.27, YEAR(2) is deprecated, hence the new warning; - MDEV-553arrow-up-right - different error code/message on out-of-range autoincrement; - INSERT IGNORE now produces a warning if a duplicate was encountered (change pushed along with MDEV-553arrow-up-right)

  • Revision #3604arrow-up-right Thu 2012-12-06 17:30:22 +0100

    • typo

  • Revision #3603arrow-up-right Thu 2012-12-06 16:34:02 +0100

    • if the debian package name for 5.5.28 is 5.5.28-mariadb1wheezy then for 5.5.28a it should be 5.5.28a-mariadb1wheezy not 5.5.28-mariadb-a1wheezy

  • Revision #3602arrow-up-right Fri 2012-12-21 11:18:29 +0200

  • Revision #3601arrow-up-right Fri 2012-12-21 00:12:37 +0100

    • MDEV-3945arrow-up-right - do not hold LOCK_thread_count when freeing THD.

    • The patch decreases the duration of LOCK_thread_count, so it is not hold during THD destructor and freeing memory. This mutex now only protects the integrity of threads list, when removing THD from it, and thread_count variable.

    • The add_to_status() function that updates global status during client disconnect, is now correctly protected by the LOCK_status mutex.

    • Benchmark : in a "non-persistent" sysbench test (oltp_ro with reconnect after each query), ~ 25% more connects/disconnects were measured

  • Revision #3600arrow-up-right Thu 2012-12-20 22:38:40 +0200

    • MDEV-3899arrow-up-right Valgrind warnings (blocks are definitely lost) in filesort on IN subquery with SUM and DISTINCT

    • Analysys: In the beginning of JOIN::cleanup there is code that is supposed to free all filesort buffers. The code assumes that the table being sorted is the first non-constant table. To get this table it calls: first_top_level_tab(this, WITHOUT_CONST_TABLES)

    • However, first_top_level_tab() instead returned the wrong table - the first one in the plan, instead of the first non-constant table. There is no other place outside filesort() where sort buffers may be freed. As a result, the sort buffer was not freed, and there was a memory leak.

    • Solution: Change first_top_level_tab(), to test for WITH_CONST_TABLES instead of WITHOUT_CONST_TABLES.

  • Revision #3599arrow-up-right Wed 2012-12-19 21:58:05 +0200

    • Fixed some compiler warnings

  • Revision #3598arrow-up-right Tue 2012-12-18 12:44:15 +0200

    • MDEV-3818arrow-up-right: Query against view over IS tables worse than equivalent query without view

    • Fixed the test to be lower-case because it fails on windows with mixed case.

  • Revision #3597arrow-up-right Mon 2012-12-17 22:34:56 +0200

    • Fixed the CREATE TABLE IF EXIST generates warnings instead of errors

  • Revision #3596arrow-up-right Mon 2012-12-17 15:23:58 +0200

    • MDEV-3818arrow-up-right: Query against view over IS tables worse than equivalent query without view

    • Analysis: The reason for the suboptimal plan when querying IS tables through a view was that the view columns that participate in an equality are wrapped by an Item_direct_view_ref and were not recognized as being direct column references.

    • Solution: Use the original Item_field objects via the real_item() method.

  • Revision #3595arrow-up-right Sun 2012-12-16 20:51:48 +0200

    • Remember original table row pack type for ALTER TABLE if table is not copied.

  • Revision #3594arrow-up-right Sun 2012-12-16 20:49:57 +0200

    • Removed lock wait timeout warning when using CREATE TABLE IF EXISTS

  • Revision #3593arrow-up-right Sun 2012-12-16 16:13:17 +0200

    • Implemented MDEV-3941arrow-up-right: CREATE TABLE xxx IF NOT EXISTS should not block if table exists. - Added option to check_if_table_exists() to quickly check if table exists (either SHARE or .FRM) - Extended lock_table_names() to not wait for meta data locks if CREATE IF NOT EXISTS is used.

  • Revision #3592arrow-up-right [merge] Sun 2012-12-16 12:04:26 +0200

  • Revision #3591arrow-up-right Mon 2012-11-26 21:22:44 +0200

    • Fix of MDEV-3874arrow-up-right: Server crashes in Item_field::print on a SELECT from a MERGE view with materialization+semijoin, subquery, ORDER BY.

    • The problem was that in debugging binaries it try to print item to assign human readable name to the item. But subquery item was already freed (join_free/cleanup with full cleanup) so Item_field refers to temporary table which memory had been already freed.

  • Revision #3590arrow-up-right Tue 2012-12-04 16:06:07 -0800

    • Fixed bug MDEV-3888arrow-up-right. When inserting a record with update on duplicate keys the server calls the ha_index_read_idx_map handler function to look for the record that violates unique key constraints. The third parameter of this call should mark only the base components of the index where the server is searched for the record. Possible hidden components of the primary key are to be unmarked.

  • Revision #3589arrow-up-right Sat 2012-12-01 18:01:59 +0100

    • fix openssl_1 test

  • Revision #3588arrow-up-right Sat 2012-12-01 16:33:22 +0100

circle-info

Be notified of new MariaDB Server releases automatically by subscribingarrow-up-right to the MariaDB Foundation community announce 'at' lists.mariadb.org announcement list (this is a low traffic, announce-only list). MariaDB plc customers will be notified for all new releases, security issues and critical bug fixes for all MariaDB plc products thanks to the Notification Services.

MariaDB may already be included in your favorite OS distribution. More information can be found on the Distributions which Include MariaDB page.

This page is licensed: CC BY-SA / Gnu FDL

spinner

Last updated

Was this helpful?