MariaDB 5.3.5 Changelog
Download |Release Notes |Changelog |Overview of 5.3
Release date: 29 Feb 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 #3450 Tue 2012-02-28 15:41:55 +0100
Bug #938977 - Query performance with join/index super slow on MariaDB 5.3.4RC
make sure that stored routines are evaluated (that is, de facto - cached) in convert_const_to_int(). revert the fix for Bug #806943 because it cannot be repeated anymore. add few tests for convert_const_to_int()
Revision #3449 [merge] Tue 2012-02-28 15:04:31 +0100
merge
Revision #2732.53.10 [merge] Tue 2012-02-28 13:50:30 +0200
Automatic merge
Revision #2732.54.1 Tue 2012-02-28 13:39:02 +0200
Fixed Bug #905716 "Assertion `page->size <= share->max_index_block_size'"
The issue was that Aria allowed too long keys to be created (so that the internal buffer was not big enough to hold the whole key).
Key lengths is now limited to HA_MAX_KEY_LENGTH (1000), as for MyISAM.
Fixed failure in "_ma_apply_redo_index: Assertion `new_page_length == 0", as found by buildbot.
Revision #3448 [merge] Sun 2012-02-26 03:13:33 -0800
Merge.
Revision #3446.1.2 [merge] Sun 2012-02-26 02:42:45 -0800
Merge 5.2->5.3
Revision #2732.53.9 Sat 2012-02-25 17:10:07 -0800
Fixed LP bug #939866.
The field key_cache_mem_size of the KEY_CACHE structure must be initialized in the function init_key_cache() and updated in the function resize_key_cache().
Revision #2732.53.8 Sat 2012-02-25 09:03:06 +0200
Fix of Bug #938518 (also Bug #791761 and Bug #806955)
Cause of the bug is uninitialized items before evaluation
HAVING
clasue in case of empty result.
Revision #3446.1.1 Sun 2012-02-26 00:19:07 -0800
Rolled back the patch for bug 791761.
A better fix for this bug will be pulled from mariadb-5.2.
Revision #3447 Sun 2012-02-26 11:44:52 +0400
Bump the version number.
Revision #3446 [merge] Fri 2012-02-24 18:35:58 -0800
Merge.
Revision #3439.2.1 Fri 2012-02-24 16:50:22 -0800
Fixed Bug #939009.
The result of materialization of the right part of an IN subquery predicate is placed into a temporary table. Each row of the materialized table is distinct. A unique key over all fields of the temporary table is defined and created. It allows to perform key look-ups into the table. The table created for a materialized subquery can be accessed by key as any other table. The function best_access-path search for the best access to join a table to a given partial join. With some where conditions this function considers a possibility of a ref_or_null access. If such access employs the unique key on the temporary table then when estimating the cost this access the function tries to use the array rec_per_key. Yet, such array is not built for this unique key. This causes a crash of the server.
Rows returned by the subquery that contain nulls don't have to be placed into temporary table, as they cannot be match any row produced by the left part of the subquery predicate. So all fields of the temporary table can be defined as non-nullable. In this case any ref_or_null access to the temporary table does not make any sense and it does not make sense to estimate such an access.
The fix makes sure that the temporary table for a materialized IN subquery is defined with columns that are all non-nullable. The also ensures that any row with nulls returned by the subquery is not placed into the temporary table.
Revision #3445 Sat 2012-02-25 01:42:28 +0400
Update test results.
Revision #3444 Fri 2012-02-24 22:42:37 +0400
Bug #938131: Subquery materialization is not used in
CREATE TABLE SELECT
Enable subquery materialization for
CREATE TABLE ... SELECT
.
Revision #3443 [merge] Fri 2012-02-24 20:07:12 +0400
Merge 5.2->5.3
Revision #2732.53.7 [merge] Fri 2012-02-24 17:21:44 +0200
Automatic merge
Revision #2643.143.77 Fri 2012-02-24 17:01:47 +0200
Fix for Bug #909635: MariaDB crashes on a select with long varchar and blob fields
Problem was a crash in internal temporary (Maria) files when row length exceeded 65535
Revision #2732.53.6 Wed 2012-02-22 00:10:39 -0800
Back-ported the fix and test cases for MySQL Bug #59487 and MySQL Bug #43368 from the mysql-5.6 code line.
Revision #3442 [merge] Fri 2012-02-24 17:13:04 +0400
Merge fix for Bug #934597
Revision #3439.1.1 Fri 2012-02-24 17:09:13 +0400
Bug #934597: Assertion `! is_set()' failed in Diagnostics_area::set_ok_status(THD...
After the exec_const_cond->val_int() call, check for error and return. (if we don't do it, we will eventually hit an error when trying to set status OK in the diagnostics area, which already has an error status).
Revision #3441 Fri 2012-02-24 12:34:47 +0200
Removed const declarations to get rid of compiler warnings. The changes are similar to what is done in innobase in MySQL 5.5
Revision #3440 [merge] Thu 2012-02-23 17:00:10 +0200
Automatic merge
Revision #3434.1.2 Thu 2012-02-23 16:51:58 +0200
Fixes for make_binary_distribution and mysql_config for OpenSuse 12.1
Revision #3434.1.1 Thu 2012-02-23 16:43:35 +0200
Fixed Bug #933719, "Assertion open_tables == 0 ... " in THD::restore_backup_open_tables_state.
This also fixes a (not likely) crashing bug when forcing a thread that was doing a table lock to re-open it's files, for example by creating a trigger.
Revision #3439 Wed 2012-02-22 17:38:24 +0400
Don't run test for BUG#933412 with embedded server, as it requires concurrent query execution which
mtr --embedded
does not support
Revision #3438 Wed 2012-02-22 17:11:33 +0400
Sort counters by their names (otherwise, the order of SHOW STATUS output is sometimes sorted and sometimes not)
Revision #3437 Wed 2012-02-22 16:48:29 +0400
Added back MRR counters. The new names are:
Handler_mrr_init
,Handler_mrr_key_refills
,Handler_mrr_rowid_refills
.
Revision #3436 Wed 2012-02-22 10:38:28 +0200
Changed names of statistic variables and counting matches instaed of rejected rows.
Revision #3435 Tue 2012-02-21 21:18:41 +0100
Bug #923429 Crash in
decimal_cmp
on usingUNIX_TIMESTAMP
with a wrongly formatted timestampUNIX_TIMESTAMP()
can be null, and returns null for invalid values
Revision #3434 [merge] Tue 2012-02-21 18:00:23 +0200
Merge with 5.2
Revision #2732.53.5 [merge] Tue 2012-02-21 17:48:15 +0200
Automatic merge with 5.1
Revision #2643.143.76 Tue 2012-02-21 14:17:33 +0200
Fixed suppression expression.
Revision #3433 Tue 2012-02-21 17:58:43 +0200
Fixed that 'make distcheck' works with automake 1.11.11
Fixed compiler warnings found by buildbot
Revision #3432 Mon 2012-02-20 21:30:23 +0100
fix for "relocation R_X86_64_PC32 against `handler_index_cond_check' can not be used when making a shared object; recompile with -fPIC" don't use visibility=hidden for external functions
Revision #3431 [merge] Tue 2012-02-21 09:43:36 +0200
Automatic merge
Revision #3429.1.4 [merge] Tue 2012-02-21 09:37:56 +0200
Automatic merge
Revision #2732.53.4 Tue 2012-02-21 09:35:46 +0200
Fixed wrong test case
Revision #3429.1.3 [merge] Tue 2012-02-21 09:36:48 +0200
Automatic merge
Revision #2732.53.3 [merge] Tue 2012-02-21 01:55:12 +0200
Merge with 5.1
Revision #2643.143.75 [merge] Tue 2012-02-21 01:51:55 +0200
Automatic merge
Revision #2643.151.1 Tue 2012-02-21 01:44:50 +0200
More general handling of memory loss in dlclose (backported from 5.2)
Fixed supression in mysql-test-run so it also works on windows.
Revision #2732.53.2 [merge] Tue 2012-02-21 01:49:14 +0200
Automatic merge
Revision #2732.46.76 Tue 2012-02-21 01:46:51 +0200
Added missing signal values to signal_handler.cc
Revision #2732.53.1 [merge] Mon 2012-02-20 18:46:22 +0100
merge
Revision #2643.143.74 Mon 2012-02-20 18:07:38 +0100
Fix compilation on Windows, and various Windows related mistakes introduced by "safe exception patch".
Remove misleading comments suggesting about signal() Windows, the routine here is part of a exception handler, and sig parameter is an exception code.
Revision #3429.1.2 [merge] Tue 2012-02-21 01:58:50 +0200
Merge with MariaDB 5.2
Revision #2732.46.75 [merge] Mon 2012-02-20 17:58:00 +0200
Merge with 5.1
Revision #2643.143.73 Mon 2012-02-20 17:56:47 +0200
Fixed compiler warnings
Revision #2732.46.74 [merge] Mon 2012-02-20 17:49:21 +0200
Merge with MariaDB 5.1 and MySQL 5.1.61
Revision #2643.143.72 [merge] Mon 2012-02-20 16:23:18 +0200
Merge with MYSQL 5.1.61
Fixed README with link to source
Merged InnoDB change to XtraDB
merge] Sat 2012-02-11 16:42:46 +0100
merge
Revision #2643.143.70 Wed 2012-01-25 11:34:43 +0100
mtr runs only "big" tests, if
--big-test
is repeated twice
Revision #2643.143.69 Wed 2012-01-04 20:10:15 +0100
report innodb_file_per_table, innodb_flush_log_at_trx_commit, innodb_flush_method
Revision #2732.46.73 Mon 2012-02-20 14:03:44 +0200
Fixed Bug #902654 "MariaDB consistently crashes in collect_tables on Aria checkpoint execution" This happend when you have more than 1024 open Aria tables during checkpoint.
Revision #2732.46.72 Thu 2012-02-16 16:06:49 -0800
Fixed Bug #933117.
The bug was fixed with the code back-ported from the patch for LP bug 800184 pushed into mariadb-5.3.
Revision #3429.1.1 Mon 2012-02-20 17:59:42 +0200
Fixed issue found by buildbot
Revision #3430 Mon 2012-02-20 20:38:05 +0400
Bug #933412: Server crashes in _mi_put_key_in_record on KILL QUERY with ICP, STRAIGHT_JOIN
In mi_rkey(), do correct handling of case where mi_yield_and_check_if_killed() detects that the thread was killed (all other similar functions in MyISAM/Aria have slightly different code and do not have this problem).
Also fixed assignment in DBUG_ASSERT
this is 2nd variant of the fix:
make .result file smaller
run KILLable statements in a separate connection, otherwise we could end up trying to KILL the final "DROP TABLE" statement
Revision #3429 [merge] Mon 2012-02-20 15:34:50 +0400
Merge
Revision #3419.1.1 Mon 2012-02-20 15:30:54 +0400
Bug #933407: Valgrind warnings in mark_as_null_row with materialization+semijoin, STRAIGHT_JOIN, impossible WHERE
In return_zero_rows(), don't call mark_as_null_row() for semi-join materialized tables, because 1) they may have been already freed, and 2)there is no real need to call mark_as_null_row() for them.
Revision #3428 Sat 2012-02-18 19:11:57 -0800
Fixed Bug #934348.
This bug is the result of an incomplete/inconsistent change introduced into 5.3 code when the cond_equal parameter were added to the function optimize_cond.
The change was made during a merge from 5.2 in October 2010.
The bug could affect only queries with HAVING.
Revision #3427 Sat 2012-02-18 16:06:38 -0800
Fixed Bug #934342.
An outer join query with a semi-join subquery could return a wrong result if the optimizer chose to materialize the subquery.
It happened because when substituting for the best field into a ref item used to build access keys not all
COND_EQUAL
objects that could be employed at substitution were checked.Also refined some code in the function check_join_cache_usage to make it safer.
Revision #3426 Fri 2012-02-17 13:27:41 +0100
Remove engine-specific (but identical) icp callbacks. create one reusable common icp callback in the handler.cc.
It can also increment status counters, without making the engine dependent on the exact THD layout (that is different in embedded).
Revision #3425 Thu 2012-02-16 20:13:28 -0800
Fixed Bug #928352.
This bug led to wrong values of the use_count fields in some SEL_ARG trees that triggered complains on the server side when executing the test case for LP bug 800184 if a debug build of the server was used.
This was the result of the incomplete fix for Bug #800184.
To complete it the following corrections had to be made:
the copy constructor for SEL_TREE must call the new function incr_refs_all() instead of the function incr_refs(), because references to next key parts from any SEL_ARG tree belonging to the list of the first key part has to be adjusted.
the method and_sel_tree of the class SEL_IMERGE must use the copy constructor of the SEL_TREE class to make a copy of its second argument before it ANDs it with any SEL_TREE tree from the processed SEL_IMERGE object.
Revision #3424 Thu 2012-02-16 20:15:57 +0400
Backport of:
timestamp: Thu 2011-12-01 15:12:10 +0100
Fix for Bug#13430436 PERFORMANCE DEGRADATION IN SYSBENCH ON INNODB DUE TO ICP
.
When running sysbench on InnoDB there is a performance degradation due
to index condition pushdown (ICP). Several of the queries in sysbench
have a WHERE condition that the optimizer uses for executing these
queries as range scans. The upper and lower limit of the range scan
will ensure that the WHERE condition is fulfilled. Still, the WHERE
condition is part of the queries' condition and if ICP is enabled the
condition will be pushed down to InnoDB as an index condition.
.
Due to the range scan's upper and lower limits ensure that the WHERE
condition is fulfilled, the pushed index condition will not filter out
any records. As a result the use of ICP for these queries results in a
performance overhead for sysbench. This overhead comes from using
resources for determining the part of the condition that can be pushed
down to InnoDB and overhead in InnoDB for executing the pushed index
condition.
.
With the default configuration for sysbench the range scans will use
the primary key. This is a clustered index in InnoDB. Using ICP on a
clustered index provides the lowest performance benefit since the
entire record is part of the clustered index and in InnoDB it has the
highest relative overhead for executing the pushed index condition.
.
The fix for removing the overhead ICP introduces when running sysbench
is to disable use of ICP when the index used by the query is a
clustered index.
.
When WL#6061 is implemented this change should be re-evaluated.
Revision #3423 Thu 2012-02-16 18:56:10 +0400
Added comments
Revision #3422 Thu 2012-02-16 08:49:10 +0200
Counters for Index Condition Pushdown added (MDEV-130).
This page is licensed: CC BY-SA / Gnu FDL
Last updated
Was this helpful?