MariaDB 5.5.24 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: 31 May 2012

For the highlights of this release, see therelease 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 #3425arrow-up-right Wed 2012-05-30 20:20:54 +0200

    • MSI package: always install new component "Common" (currently consists of charset directory)

  • Revision #3424arrow-up-right Wed 2012-05-30 19:11:59 +0200

    • don't use deprecated options in the installed config files

  • Revision #3423arrow-up-right Tue 2012-05-29 21:38:51 +0200

    • RPM packages should not obsolete themselves.

    • Otherwise yum on fedora will not install them (rpm will, yum on centos and rhel will).

  • Revision #3422arrow-up-right Tue 2012-05-29 21:38:35 +0200

    • MDEV-293arrow-up-right 5.5 RPMs for RHEL6/CentOS6

    • Build MariaDB-compat rpm by repackaging files from MariaDB-shared-5.3.*.rpm

    • Or RHEL6/CentOS6 make all other MariaDB rpms depend on MariaDB-compat.

  • Revision #3421arrow-up-right Sat 2012-05-26 13:04:23 +0200

    • Don't install debug plugins and don't populate unused "plugins.files" file.

  • Revision #3420arrow-up-right Fri 2012-05-25 21:08:26 +0200

    • MDEV-295arrow-up-right Do NOT start mysql when installing MariaDB rpms but restart it on upgrade, if it was already running

  • Revision #3419arrow-up-right Fri 2012-05-25 19:18:29 +0200

    • create a new MariaDB-common.rpm that contains files needed both by the client and the server.

    • use my.cnf includes to split one big my.cnf file in server and client parts.

    • remove "Provides: mysql-libs" (doesn't help on CentOS 6)

  • Revision #3418arrow-up-right Wed 2012-05-23 18:06:06 +0200

    • fix test case

  • Revision #3417arrow-up-right Tue 2012-05-22 11:04:32 +0200

    • Building RPMs with CPack

    • configure with cmake -DRPM=distro

  • Revision #3416arrow-up-right Fri 2012-05-11 09:18:00 +0200

    • more portable fix for Bug #942266arrow-up-right - 5.5 builds fail with systemtap-sdt-dev installed on Ubuntu

    • include early, before min/max macros are defined.

  • Revision #3415arrow-up-right [merge] Mon 2012-05-21 20:54:41 +0200

    • 5.3 merge

    • Revision #2502.546.66arrow-up-right [merge] Sun 2012-05-20 14:57:29 +0200

    • Revision #2502.546.65arrow-up-right [merge] Fri 2012-05-18 16:28:11 +0400

      • Merge

      • Revision #2502.558.1arrow-up-right Fri 2012-05-18 16:24:12 +0400

        • Bug #1000269arrow-up-right: Wrong result (extra rows) with semijoin+materialization, IN subqueries, join_cache_level>0

        • make make_cond_after_sjm() correctly handle OR clauses where one branch refers to the semi-join table while the other branch refers to the non-semijoin table.

    • Revision #2502.546.64arrow-up-right Thu 2012-05-17 10:45:20 +0300

    • Revision #2502.546.63arrow-up-right Tue 2012-05-15 08:31:07 +0300

      • If we did nothing in resolving unique table conflict we should not retry (it leed to infinite loop).

      • Now we retry (recheck) unique table check only in case if we materialized a table.

    • Revision #2502.546.62arrow-up-right Sun 2012-05-13 13:15:17 +0400

      • Bug #998236arrow-up-right: Assertion failure or valgrind errors at best_access_path ...

      • Let fix_semijoin_strategies_for_picked_join_order() set POSITION::prefix_record_count for POSITION records that it copies from SJ_MATERIALIZATION_INFO::tables.

      • (These records do not have prefix_record_count set, because they are optimized as joins-inside-semijoin-nests, without full advance_sj_state() processing).

    • Revision #2502.546.61arrow-up-right [merge] Sat 2012-05-12 12:27:26 +0400

    • Revision #2502.546.60arrow-up-right [merge] Fri 2012-05-11 11:40:23 +0300

      • Merge 5.2->5.3

      • Revision #2502.528.44arrow-up-right Fri 2012-05-11 09:35:46 +0300

        • The not_null_tables() of Item_func_not_all and Item_in_optimizer was inherited from Item_func by mistake. It made the optimizer think that subquery predicates with ALL/ANY/IN were null-rejecting. This could trigger invalid conversions of outer joins into inner joins.

      • Revision #2502.528.43arrow-up-right Thu 2012-05-10 09:00:21 +0300

        • Fixed typo

      • Revision #2502.528.42arrow-up-right Tue 2012-05-08 12:38:22 +0200

        • MDEV-262arrow-up-right : log_state occationally fails in buildbot.

        • The failures are missing entries in the slow query log. The reason for the failure are sleep() calls with short duration 10ms, which is less than the default system timer resolution for various WaitForXXXObject functions (15.6 ms) and thus can't work reliably.

        • The fix is to make sleeps tiny bit longer (20ms from 10ms) in the test.

      • Revision #2502.528.41arrow-up-right Tue 2012-05-08 00:26:41 +0200

        • MDEV-261arrow-up-right : mysqtest crashes when assigning variable to result of select , like let x = SELECT <something>

        • The fix is to detect the condition "no active connection", to report error and die.

        • Note, that the check for no active connection was already in place for ordinary commands, and was missing only for assign-variable command.

      • Revision #2502.528.40arrow-up-right Mon 2012-05-07 13:26:34 +0300

        • Optimization of aggregate functions detected constant under max() and evalueted it, but condition in the WHWRE clause (which is always FALSE) was not taken into account

      • Revision #2502.528.39arrow-up-right Mon 2012-05-07 11:02:58 +0300

        • The patch backports two patches from mysql 5.6:

          • BUG#12640437: USING SQL_BUFFER_RESULT RESULTS IN A DIFFERENT QUERY OUTPUT

          • Bug#12578908: SELECT SQL_BUFFER_RESULT OUTPUTS TOO MANY ROWS WHEN GROUP IS OPTIMIZED AWAY

          • Original comment:

            • 3714 Jorgen Loland 2012-03-01

            • BUG#12640437 - USING SQL_BUFFER_RESULT RESULTS IN A DIFFERENT QUERY OUTPUT

            • For all but simple grouped queries, temporary tables are used to resolve grouping. In these cases, the list of grouping fields is stored in the temporary table and grouping is resolved there (e.g. by adding a unique constraint on the involved fields). Because of this, grouping is already done when the rows are read from the temporary table.

            • In the case where a group clause may be optimized away, grouping does not have to be resolved using a temporary table. However, if a temporary table is explicitly requested (e.g. because the SQL_BUFFER_RESULT hint is used, or the statement is INSERT...SELECT), a temporary table is used anyway. In this case, the temporary table is created with an empty group list (because the group clause was optimized away) and it will therefore not create groups. Since the temporary table does not take care of grouping, JOIN::group shall not be set to false in make_simple_join(). This was fixed in bug 12578908.

            • However, there is an exception where make_simple_join() should set JOIN::group to false even if the query uses a temporary table that was explicitly requested but is not strictly needed. That exception is if the loose index scan access method (explain says "Using index for group-by") is used to read into the temporary table. With loose index scan, grouping is resolved by the access method. This is exactly what happens in this bug.

      • Revision #2502.528.38arrow-up-right Thu 2012-05-03 14:49:52 +0300

        • This is a backport of the fix for MySQL bug #13723054 in 5.6.

        • Original comment:

          • The crash is caused by arbitrary memory area owerwriting in case of BLOB fields during attempt to copy BLOB field key image into record buffer(record buffer is too small to get BLOB key part image). note:

          • QUICK_GROUP_MIN_MAX_SELECT can not work with BLOB fields because it uses record buffer as temporary buffer for key values however this case is filtered out by covering_keys() check in get_best_group_min_max() as BLOBs always require key length modificator in the key declaration and if the key has a BLOB then it can not be covered key. The fix is to use 'max_used_key_length' key length instead of 0.

          • Analysis:

          • Spcifically the crash in this bug was a result of the call to key_copy() that copied the whole key, inlcuding the BLOB field which is not used for index access. Copying the blob field overwrote memory as far as the function parameter 'key_info'. As a result the contents of key_info was all 0, which resulted in a crash when this key_info was accessed few lines below in key_cmp().

    • Revision #2502.546.59arrow-up-right Tue 2012-05-08 20:58:41 +0300

      • Fix compiler warnings.

    • Revision #2502.546.58arrow-up-right Tue 2012-05-08 19:13:26 +0300

      • Addition to the fix to LP bug#994275.

      • It is problem of constant propagated to ref* access method (the problem was hiden by using debug binaries for testing).

    • Revision #2502.546.57arrow-up-right Mon 2012-05-07 21:14:37 +0300

      • In 5.3 we substitute constants in ref access values it can't be null so we do not need add NOT NULL for early NULL filtering.

  • Revision #3414arrow-up-right [merge] Mon 2012-05-21 15:30:25 +0200

    • Merge with MySQL

  • Revision #3413arrow-up-right [merge] Fri 2012-05-18 16:45:59 +0300

  • Revision #3412arrow-up-right Fri 2012-05-18 13:32:25 +0200

    • Fix test case to produce sorted output

  • Revision #3411arrow-up-right Fri 2012-05-18 01:44:13 -0700

    • Asked for sorted result from a query.

  • Revision #3410arrow-up-right Thu 2012-05-17 18:01:13 -0700

    • Changed a test case from join_cache.test to make it platform independent

  • Revision #3409arrow-up-right [merge] Thu 2012-05-17 21:52:48 +0200

  • Revision #3408arrow-up-right [merge] Wed 2012-05-16 22:33:22 -0700

    • Merge.

    • Revision #3403.1.1arrow-up-right Wed 2012-05-16 20:39:03 -0700

    • Fixed Bug #999251arrow-up-right: Q13 from DBT3 uses table scan instead of covering index scan.

    • The optimizer chose a less efficient execution plan due to the following defects of the code:

      1. the generic handler function handler::keyread_time did not take into account that in clustered primary keys record data is included into each index entry

      2. the function make_join_readinfo erroneously decided that index only scan could not be used if join cache was empoyed.

    • Added no additional test case.

    • Adjusted some of the test results.

  • Revision #3407arrow-up-right Thu 2012-05-17 01:47:28 +0300

    • More fixes for LOCK TABLE and REPAIR/FLUSH

    • Changed HA_EXTRA_NORMAL to HA_EXTRA_NOT_USED (more clean)

  • Revision #3406arrow-up-right Wed 2012-05-16 22:04:48 +0300

  • Revision #3405arrow-up-right Wed 2012-05-16 18:46:02 +0300

    • Moved maria tests to suite/maria

  • Revision #3404arrow-up-right Wed 2012-05-16 18:44:17 +0300

    • Fixed Bug #973039arrow-up-right - Assertion `share->in_trans == 0' failed in maria_close on DROP TABLE under LOCK

    • 5.5 was missing calls to ha_extra(HA_PREPARE_FOR_DROP | HA_PREPARE_FOR_RENAME); Lost in merge 5.3 -> 5.5

  • Revision #3403arrow-up-right Tue 2012-05-15 19:35:57 +0200

    • Added --continue-on-error to mysqltest and mysql-test-run

    • This will contune the test case even if there was an error and makes it easier to run a test that contains many sub tests against one engine.

    • (originally by Monty)

  • Revision #3402arrow-up-right Tue 2012-05-08 14:27:44 +0200

    • MDEV-254arrow-up-right: Server hang with FLUSH TABLES WITH READ LOCK AND DISABLE CHECKPOINT

    • The code to re-enable checkpointing after UNLOCK TABLES was lost in the 5.5 merge, so re-add it back in.

  • Revision #3401arrow-up-right Mon 2012-05-07 12:47:29 +0200

  • Revision #3400arrow-up-right [merge] Mon 2012-05-07 12:21:59 +0200

  • Revision #3399arrow-up-right [merge] Sat 2012-05-05 14:59:44 +0200

    • merge

    • Revision #3391.1.2arrow-up-right Sat 2012-05-05 08:27:17 +0200

      • MDEV-207arrow-up-right Install headers required to build external storage plugins

      • 5.5 version. for cmake, not autotools.

    • Revision #3391.1.1arrow-up-right [merge] Fri 2012-05-04 07:16:38 +0200

    • Bug #986120arrow-up-right Problem installing mariadb 5 on solaris 10

    • remove a redundant line in Makefile.am

      • Revision #2502.546.53arrow-up-right Wed 2012-05-02 15:23:49 +0200

        • implement Item_singlerow_subselect::get_date() to avoid unnecessary date->string->date conversion

      • Revision #2502.546.52arrow-up-right Wed 2012-05-02 15:22:47 +0200

        • MDEV-241arrow-up-right Bug #992722arrow-up-right - Server crashes in get_datetime_value

        • Create an Item_cache based on item's cmp_type, not result_type in subselect_engine.

        • Use result_field in Item_cache_temporal::cache_value(), just like all other Item_cache*::cache_value() do.

      • Revision #2502.546.51arrow-up-right [merge] Wed 2012-05-02 17:04:28 +0200

      • Revision #2502.546.50arrow-up-right Sun 2012-04-29 18:08:11 +0500

        • Bug #977021arrow-up-right ST_BUFFER fails with the negative D.

        • Points and lines should disappear if we got negative D.

          • To make it work properly inside the GEOMETRYCOLLECTION, we add the empty operation there.

          • Bug #986977arrow-up-right Assertion `!cur_p->event' failed in Gcalc_scan_iterator::arrange_event(int, int).

          • The double->inernal coord conversion produced -0 (minus zero) on some data.

          • That minus-zero produces invalid comparison results when compared agains plus-zero.

          • So we fixed the gcalc_set_double() to avoid it.

          • per-file comments:

      • Revision #2502.546.49arrow-up-right Thu 2012-04-26 19:21:37 +0200

        • MDEV-216arrow-up-right Bug #976104arrow-up-right - Assertion `0' failed in my_message_sql on UPDATE IGNORE, or unknown error on release build

        • Don't send_error at the end of mysql_multi_update() if select failed.

        • The error, if there was any, was already sent by mysql_select

      • Revision #2502.546.48arrow-up-right Fri 2012-04-27 12:59:17 +0300

        • Analysis:

          • The reason for the wrong result is the interaction between constant optimization (in this case 1-row table) and subquery optimization.

          • First the outer query is optimized, and 'make_join_statistics' finds that table t2 has one row, reads that row, and marks the whole table as constant. This also means that all fields of t2 are constant.

          • Next, we optimize the subquery in the end of the outer 'make_join_statistics'. The field 'f2' is considered constant, with value '3'. The subquery predicate is rewritten as the constant TRUE.

          • The outer query execution detects early that the whole query result is empty and calls 'return_zero_rows'. Since the query is with implicit grouping, we have to produce one row with special values for the aggregates (depending on each aggregate function), and NULL values for all non-aggregate fields. This function calls 'no_rows_in_result' to set each aggregate function to the default value when it aggregates over an empty result, and then calls 'send_data', which in turn evaluates each Item in the SELECT list.

          • When evaluation reaches the subquery predicate, it executes the subquery with field 'f2' having a constant value '3', and the subquery produces the incorrect result '7'.

        • Solution:

          • Implement Item::no_rows_in_result for all subquery predicates. In order to make this work, it is also needed to make all val_* methods of all subquery predicates respect the Item_subselect::forced_const flag. Otherwise subqueries are executed anyways, and override the default value set by no_rows_in_result with whatever result is produced from the subquery evaluation.

      • Revision #2502.546.47arrow-up-right [merge] Mon 2012-04-23 20:37:44 +0200

        • merge

        • Revision #2502.557.1arrow-up-right Fri 2012-04-20 21:09:16 +0200

          • Bug #983285arrow-up-right - incompatibility in frm in case of VIEWs with non-default ALGORITHM option.

          • As part of derived tables redesign, values for VIEW_ALGORITHM_MERGE and VIEW_ALGORITHM_TMPTABLE have changed from (former values 1 rsp 2 , new values 5 rsp 9).

          • This lead to the problem that views, created with version 5.2 or earlier would not work in all situations (e.g "SHOW CREATE VIEW"), or with mysqldump.

          • The fix is to restore backward compatibility for the from file, and convert algorithm={1,2} in the frm to {5,9} when reading .frm from disk, and store backward compatible values when writing from to disk.

          • Also allow processing correct processing for "invalid" .frms created with MariaDB 5.3/5.5 GA releases (where algorithm stored in memory matched the one stored in frm).

      • Revision #2502.546.46arrow-up-right Mon 2012-04-23 09:45:27 +0200

        • MDEV-207arrow-up-right Install headers required to build external storage plugins

        • install all private headers in mysql/private/

      • Revision #2502.546.45arrow-up-right Thu 2012-04-19 09:16:30 +0300

        • Fixed incorrect type casting which made all fields (except very first) changes to materialized table incorrect.

        • Saved list of view/derived table used items after expanding '*'.

      • Revision #2502.546.44arrow-up-right Thu 2012-04-19 05:37:16 +0400

        • Bug #978479arrow-up-right: Wrong result (extra rows) with derived_with_keys+loosescan+semijoin=ON, materialization=OFF

        • Part#2: Don't try to construct a LooseScan access on indexes that do not guarantee index-ordered reads.

      • Revision #2502.546.43arrow-up-right Thu 2012-04-19 04:50:32 +0400

        • Bug #978479arrow-up-right: Wrong result (extra rows) with derived_with_keys+loosescan+semijoin=ON, materialization=OFF

        • Part#1: make EXPLAIN's plan match the one by actual execution: Item_subselect::used_tables() should return the same value irrespectively of whether we're running an EXPLAIN or a SELECT.

  • Revision #3398arrow-up-right Sat 2012-05-05 02:36:10 +0200

  • Revision #3397arrow-up-right Fri 2012-05-04 17:22:40 +0200

    • FreeBSD : Extend CMAKE_REQUIRED_LIBRARIES with ${LIBEXECINFO} , for backtrace_symbols & Co

  • Revision #3396arrow-up-right Fri 2012-05-04 14:46:18 +0200

    • Resolve opt_vardir in MTR with realpath. Server resolves some directory names, thus mtr should do it as well, to avoid differences in test output.

    • This fixes sys_vars.secure_file_priv on FreeBSD9.0 buildbot.

  • Revision #3395arrow-up-right Fri 2012-05-04 14:02:35 +0200

    • Fix FreeBSD test errors. Also link with libexecinfo on FreeBSD for stacktrace functionality.

  • Revision #3394arrow-up-right Fri 2012-05-04 03:51:30 +0200

    • support same version upgrade for MSI

  • Revision #3393arrow-up-right Thu 2012-05-03 18:58:48 +0200

    • Fix (hopefully) a race condition in a test. Wait until killed connection is gone.

  • Revision #3392arrow-up-right [merge] Thu 2012-05-03 16:00:41 +0300

    • automatic merge

    • Revision #3363.1.1arrow-up-right Wed 2012-04-04 00:16:38 +0300

      • Created suites for heap, archive and csv.

      • Moved test from main suite to the new suites.

      • Move tests from maria/t and maria/r to maria

  • Revision #3391arrow-up-right Thu 2012-05-03 02:47:06 +0200

    • MDEV-246arrow-up-right - Aborted_clients incremented during ordinary connection close

    • The problem was increment of aborted_threads variable due to thd->killed which was set when threadpool connection was terminated . The fix is not to set thd->killed anymore, there is no real reason for doing it..

    • Added a test that checks that status variable aborted_clients does not grow for ordinary disconnects, and that successful KILL increments this variable.

  • Revision #3390arrow-up-right Thu 2012-04-19 17:00:13 +0300

    • Dependency of tests from ulong size removed.

  • Revision #3389arrow-up-right Sun 2012-04-29 17:18:38 +0500

    • Bug #977021arrow-up-right ST_BUFFER fails with the negative D.

      • Points and lines should disappear if we got negative D.

      • To make it work properly inside the GEOMETRYCOLLECTION, we add the empty operation there.

    • Bug #986977arrow-up-right Assertion `!cur_p->event' failed in Gcalc_scan_iterator::arrange_event(int, int).

      • The double->inernal coord conversion produced -0 (minus zero) on some data.

      • That minus-zero produces invalid comparison results when compared agains plus-zero.

      • So we fixed the gcalc_set_double() to avoid it.

    • per-file comments:

  • Revision #3388arrow-up-right Sat 2012-04-21 02:57:28 +0200

  • Revision #3387arrow-up-right Thu 2012-04-19 04:02:28 +0200

  • Revision #3386arrow-up-right Wed 2012-04-18 20:48:14 +0200

    • MDEV-217arrow-up-right - Assertion `thd->stmt_arena != thd->progress.arena' failed in thd_progress_init on OPTIMIZE two tables when replaced by recreate

    • call thd_progress_end() in the copy_data_between_tables(), to match its thd_progress_init().

  • Revision #3385arrow-up-right Wed 2012-04-18 04:00:08 +0200

  • Revision #3384arrow-up-right Wed 2012-04-18 03:29:26 +0200

    • add a space between safemalloc error mesage and a stack trace

  • Revision #3383arrow-up-right Wed 2012-04-18 03:29:13 +0200

    • fix information_schema_all_engines test to pass both with ha_xtradb.so and libxtradb.a

  • Revision #3382arrow-up-right Tue 2012-04-17 20:30:19 +0200

    • update @@have_innodb variable when innodb plugin is uninstalled

  • Revision #3381arrow-up-right Tue 2012-04-17 20:29:43 +0200

    • better fix for string plugin variables pointing into argv[] for a plugin installed run-time

  • Revision #3380arrow-up-right Tue 2012-04-17 20:28:21 +0200

    • bugfix: mysqld failed to start if a compiled-in plugin failed to initialize (--xxx=ON behaving as --xxx=FORCE)

  • Revision #3379arrow-up-right Tue 2012-04-17 20:25:03 +0200

    • typo fixed: space in the status variable name

  • Revision #3378arrow-up-right Tue 2012-04-17 14:25:08 +0200

    • bug fix: I_S plugins were not locked when used

  • Revision #3377arrow-up-right [merge] Tue 2012-04-17 01:03:10 +0200

  • Revision #3376arrow-up-right Sun 2012-04-15 01:54:28 +0200

    • fix compile error on unixes

  • Revision #3375arrow-up-right Sun 2012-04-15 01:41:03 +0200

    • exclude cmake generated files from mysql-test installation (applies only for in-source builds)

  • Revision #3374arrow-up-right Sun 2012-04-15 01:40:00 +0200

    • fix application verifier crashes

  • Revision #3373arrow-up-right Sun 2012-04-15 01:29:17 +0200

    • Use test/db.opt as dummy file in the package, instead of test/.empty

    • Also, do not package aria log files in the zip package- not required for the database to function, also will avoid trouble with recovery, if someone accidentially (or on purpose) upgrades by unpacking the zip in the existing install directory.

  • Revision #3372arrow-up-right Sun 2012-04-15 01:21:18 +0200

    • Add minimal clarication about 'root' user to the installer UI

  • Revision #3371arrow-up-right Sun 2012-04-15 01:19:39 +0200

  • Revision #3370arrow-up-right Fri 2012-04-13 19:44:22 +0200

    • Fixed some simple warnings on Windows.

  • Revision #3369arrow-up-right Thu 2012-04-12 01:40:44 +0200

    • Threadpool - use EV_ONESHOT with kevent, to prevent race condition when 2 threads are retrieving events at the same time.

  • Revision #3368arrow-up-right Thu 2012-04-12 01:33:43 +0200

    • Fix build on OSX

      • Workaround linker bug that prevents linking aria test executables using -fno-common on OSX

      • Skip system readline detection (OSX readline is incompatible one)

      • Make Xcode generator work

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?