MariaDB 5.3.2 Changelog
Download |Release Notes |Changelog |Overview of 5.3
Release date: 14 Oct 2011
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 #3231 Thu 2011-10-13 00:15:51 +0400
Remove garbage comment
Revision #3230 Wed 2011-10-12 21:40:56 +0400
Bug #872702: Crash in add_ref_to_table_cond() when grouping by a PK
Testcase
Revision #3229 Wed 2011-10-12 21:38:40 +0400
Code cleanup: move variable into branch that uses it
Revision #3228 Wed 2011-10-12 14:01:01 +0200
fix a compilation failure for perl Net::HandlerSocket module
Revision #3227 [merge] Wed 2011-10-12 12:45:35 +0200
merge
Revision #3225.1.1 [merge] Wed 2011-10-12 12:30:55 +0200
merge
Revision #2732.46.9 Wed 2011-10-12 12:07:14 +0200
Add option to enable feedback plugin to the MSI installer.
Revision #3226 Wed 2011-10-12 14:23:42 +0400
Fix compile error: ‘cond_copy’ may be used uninitialized in this function.
Revision #3225 Wed 2011-10-12 13:19:37 +0400
Bug #869001: Wrong result with semijoin + materialization + firstmatch + multipart key
Make advance_sj_state() not to attempt building duplicate removal strategies when we're doing optimization of an SJM-nest.
Revision #3224 Wed 2011-10-12 02:04:03 +0400
Update subselect_sj{,2}_mat.result with changes that were lost when they were deleted and re-created.
Revision #3223 Tue 2011-10-11 23:38:26 +0200
Restore files accidentally deleted in previous merge.
Revision #3222 [merge] Tue 2011-10-11 23:52:23 +0400
Merge: fix subselect_sj2*.test: add missing DROP TABLE statement
Revision #3219.1.1 Tue 2011-10-11 23:48:50 +0400
Fix testcases from the previous push: add missing DROP TABLE statement
Revision #3221 Tue 2011-10-11 21:43:43 +0200
when freeing a possibly NULL pointer under safemalloc - use MY_ALLOW_ZERO_PTR
Revision #3220 [merge] Tue 2011-10-11 20:20:19 +0200
merge
Revision #3218.1.2 [merge] Tue 2011-10-11 20:18:46 +0200
merge
Revision #3218.1.1 [merge] Tue 2011-10-11 20:17:44 +0200
merge
Revision #2732.46.8 [merge] Tue 2011-10-11 20:16:11 +0200
merge
Revision #2643.143.40 Tue 2011-10-11 20:13:57 +0200
remove unconditional SAFEMALLOC/SAFEMUTEX from debug flags
Revision #3219 [merge] Tue 2011-10-11 21:57:57 +0400
Merge fix for BUG#869012
Revision #3216.1.1 Tue 2011-10-11 21:34:00 +0400
Bug #869012: Wrong result with semijoin + materialization + AND in WHERE
in make_join_select(), use the correct condition to check whether the current table is a SJM nest (the previous condition used to be correct before, but then sj-materialization temp table creation was moved to happen before make_join_select was called)
Revision #3218 [merge] Tue 2011-10-11 12:55:42 +0200
merge
Revision #2732.46.7 [merge] Mon 2011-10-10 19:34:37 +0200
merge
Revision #2643.143.39 Mon 2011-10-10 17:59:26 +0200
add a missing definition
Revision #2732.46.6 Sat 2011-10-08 19:00:00 +0200
fix feedback plugin for 5.2
Revision #2732.46.5 [merge] Fri 2011-10-07 00:18:30 +0200
merge with 5.1
Revision #2643.143.38 Thu 2011-10-06 23:40:19 +0200
sort results in tests to make them stable
Revision #2643.143.37 Thu 2011-10-06 23:39:44 +0200
disable feedback plugin by default. Now on windows too.
Revision #2643.143.36 [merge] Thu 2011-10-06 21:42:43 +0200
merge the feedback tree
Revision #2643.147.8 Thu 2011-10-06 20:55:38 +0200
Implement uname() on Windows.
Also, fix code to get physical memory size.
Revision #2643.147.7 [merge] Thu 2011-10-06 18:48:16 +0200
merge with feedback-plugin
and disable feedback plugin by default, if it's compiled in.
Revision #0.13.4 Thu 2011-10-06 18:24:00 +0200
add #define WITH_FEEDBACK_PLUGIN
Revision #2643.147.6 Wed 2011-10-05 20:16:42 +0200
fix fulltext_plugin.test on windows
Revision #2643.147.5 Tue 2011-10-04 16:51:39 +0200
tests for feedback plugin,
bugfix: garbage in PLUGIN_VAR_STR variables when INSTALL'ing a plugin
Revision #2643.147.4 [merge] Tue 2011-10-04 16:03:10 +0200
merge feedback plugin
Revision #0.13.3 Tue 2011-10-04 15:48:39 +0200
fix for static plugins in mariadb.
send "startup" message 5 minutes after startup, not immediately
Revision #0.13.2 Mon 2011-10-03 08:43:01 +0200
don't use https url by default, if ssl is not available
Revision #0.13.1 Sat 2011-10-01 21:23:01 +0200
initial checkin
Revision #2643.147.3 Tue 2011-10-04 15:41:52 +0200
support for plugins on windows
Revision #2643.147.2 Tue 2011-10-04 15:07:55 +0200
my_gethwaddr() on Solaris and Windows
Revision #2643.147.1 Tue 2011-10-04 15:01:26 +0200
remove redundant declarations
Revision #2732.46.4 Thu 2011-10-06 16:56:59 +0300
Fixed that when using a trigger mysql.proc is now accessed
Cleanup: Changed procedure type from a int/char to an enum for easier to manage and debug code.
Revision #3217 Tue 2011-10-11 02:36:08 -0700
Fixed Bug #870046.
This bug is a consequence of the fix in the function add_ref_to_table_cond for Bug #826935 that turned out to be not quite correct: it tried to AND the same generated condition with two different other conditions.
This patch creates a copy of the generated condition if the condition needs to be ANDed with two different items.
Revision #3216 [merge] Mon 2011-10-10 23:34:32 +0300
Merge
Revision #3210.2.1 Wed 2011-10-05 18:18:00 +0300
Making subquery cache on by default.
Revision #3215 Mon 2011-10-10 15:38:11 +0200
remove unnecessary define
Revision #3214 Thu 2011-09-29 20:12:57 +0200
make sure that cast(... as date) returns a valid date, as specified by the caller.
make Item::send() request a date according to the current SQL mode limitations.
Revision #3213 [merge] Thu 2011-10-06 01:21:15 +0400
Merge fix for BUG#860580
Revision #3210.1.1 Thu 2011-10-06 01:11:08 +0400
Bug #860580: Sporadic crash / valgrind warning in register_field_in_read_map() with semijoin
The problem:
in an uncorrelated subquery, JOIN execution code may make irreversible cleanups after it has been executed (because the subquery won't be executed again). In particular, JTBM nests and their injected IN-equalities will be invalidated (the materialized table will be dropped and TABLE structure freed).
Solution:
don't walk into Item_subselect if represents an uncorrelated subselect that has already been executed. The idea is that the subselect will not be executed again (calling Item_subselect_xxx::val_int() will fetch the cached value), so it should not matter what is inside the subselect.
Revision #3212 [merge] Wed 2011-10-05 16:56:17 +0300
Automatic merge with 5.2
Revision #2732.46.3 [merge] Wed 2011-10-05 16:53:35 +0300
Automatic merge with 5.1
Revision #2643.143.35 Wed 2011-10-05 16:37:05 +0300
Fix for issue found in buildbot where mysqld.*.err files was missing
Added suppression message for valgrind failure found on OpenSuSE 11.1
Revision #3211 [merge] Wed 2011-10-05 16:15:30 +0300
Automatic merge
Revision #2732.46.2 Wed 2011-10-05 15:59:49 +0300
Fixed Bug #859051 "Periodic aria checkpoints prevent power management"
Now the aria_log_control_file and log file is not touched if aria files are not written to.
merge] Fri 2011-09-16 18:30:46 +0200
merge
Revision #3210 Tue 2011-10-04 23:57:46 +0300
Fix Bug #856152
Analysis:
The cause of the bug was that the method subselect_rowid_merge_engine::partial_match() was not designed for re-execution within the same query. Specifically, it didn't cleanup the bitmap of matching keys after completion.
The test query requires double execution of the IN predicate because it first checks the predicate as a constant condition. The second execution during regular execution used the bitmap of matching keys produced by the first execution instead of starting with a clean one.
Solution:
Cleanup the bitmap of matching keys at the end of the partial matching procedure.
Revision #3209 Tue 2011-10-04 12:00:55 -0700
Made the result test of a test case platform independent
(correction for the previous patch).
Revision #3208 Tue 2011-10-04 08:45:01 -0700
Made the result test of a test case platform independent.
Revision #3207 Mon 2011-10-03 21:36:18 -0700
Fixed a bad merge.
Changed a test case to make its result set platform independent.
Revision #3206 [merge] Mon 2011-10-03 15:50:42 -0700
Merge.
Revision #3190.2.2 Fri 2011-09-30 21:53:59 -0700
The previous correction of the cost estimate to access a joined table in the function best_access_path revealed another bug: currently table scans on NULL keys used for NOT IN subqueries cannot work together with employment of join caches for inner tables of these subqueries. Otherwise the result can be wrong as it could be seen with the result of the test case constructed for bug #37894 in the file subselect3_jcl6.result.
Revision #3190.2.1 Fri 2011-09-30 18:55:02 -0700
Fixed a cost estimation bug introduced into in the function best_access_path of the 5.3 code line after a merge with 5.2 on 2010-10-28 in order not to allow the cost to access a joined table to be equal to 0 ever.
Expanded data sets for many test cases to get the same execution plans as before.
Revision #3205 [merge] Tue 2011-10-04 02:24:04 +0400
Merge
Revision #3203.1.1 Tue 2011-10-04 02:20:06 +0400
Fix buildbot failure in previous fix (Bug #861147):
convert_subq_to_jtbm() should always restore the used arena.
Revision #3204 Mon 2011-10-03 22:48:15 +0300
Fix Bug #858038
Analysis:
The cause of the bug was the changed meaning of subselect_partial_match_engine::has_covering_null_row. Previously it meant that there is row with NULLs in all nullable fields of the materialized subquery table. Later it was changed to mean a row with NULLs in all fields of this table.
At the same time there was a shortcut in subselect_rowid_merge_engine::partial_match() that detected a special case where:
there is no match in any of the columns with NULLs, and
there is no NULL-only row that covers all columns with NULLs.
With the change in the meaning of has_covering_null_row, the condition that detected this special case was incomplete.
This resulted in an incorrect FALSE, when the result was a partial match.
Solution:
Expand the condition that detected the special case with the correct test for the existence of a row with NULL values in all columns that contain NULLs (a kind of parially covering NULL-row).
Revision #3203 [merge] Sat 2011-10-01 00:56:42 +0400
Merge
Revision #3199.1.3 Sat 2011-10-01 00:55:57 +0400
Bug #861147: Assertion `fixed == 1' failed in Item_func_eq::val_int() with semijoin + materialization
convert_subq_to_jtbm() didn't check that subuqery optimization was successful. If it wasn't (in this example because of @@max_join_size violation), it would proceed further and eventually crash when trying to execute the un-optimized subquery.
Revision #3202 [merge] Sat 2011-10-01 00:20:01 +0400
Merge
Revision #3199.1.2 Sat 2011-10-01 00:10:03 +0400
Bug #860553: Crash in create_ref_for_key with semijoin + materialization
The problem was that JOIN::save/restore_query_plan() did not save/restore parts of the query plan that are located inside SJ_MATERIALIZATION_INFO structures. This could cause parts of one plan to be used with another, which led get_best_combination() to constructing non-sensical join plans (and crash). Fixed by saving/restoring SJM parts of the query plans.
check_and_do_in_subquery_rewrites() will not set SUBS_MATERIALIZATION flag when it records that the subquery predicate is to be converted into semi-join. If convert_join_subqueries_to_semijoins() later decides not to convert to semi-join, let it set SUBS_MATERIALIZATION flag, if appropriate.
Revision #3201 [merge] Thu 2011-09-29 17:07:43 +0400
Merge
Revision #3199.1.1 Thu 2011-09-29 17:03:12 +0400
Bug #860535: Assertion `keypart_map' failed in mi_rkey with semijoin
are_tables_local() failed to recognize the fact that OUTER_REF_TABLE_BIT is ok for SJ-Materialization. This caused zero-length ref access to be constructed, which led to an assert.
Revision #3200 Thu 2011-09-29 12:58:20 +0200
Fix test suite:
on Windows, kill can and almost always will return client error 2013 ("Lost connection...") on the killed connection,
On the server side, if connection is "sleeping" KILL will close the socket, thus socket error on client is expected.
Revision #3199 Wed 2011-09-28 17:20:43 +0300
Fix Bug #858148.
Analysis:
The crash is a result of the same cause as all similar bugs (Bug #827416, Bug #718763, Bug #778413, Bug #806943,Bug #611690). The general pattern is that some optimization requires the evaluation of some condition (e.g. the WHERE clause), and this condition contains a subquery, such that the subquery itself requires a temporary table for its execution. During the subquery execution the original tables in the FROM clause are replaced by the temporary table needed for the final GROUP or ORDER operation. All this happens during optimization of the outer query. Later when EXPLAIN is run for the subquery, explain attempts to print the name of the tables in the FROM clause, but it finds there a temporary table without a corresponding TABLE_LIST object. The attempt to print the name of a NULL table list results in a crash.
Solution:
This patch extends the fix to bug Bug #702301, and dissalows constant substitution of aggregate functions if the filter condition used to check MIN/MAX keys is an expensive condition.
Revision #3198 [merge] Wed 2011-09-28 13:01:47 +0400
Merge
Revision #3196.1.1 Wed 2011-09-28 12:58:01 +0400
Bug #860300: Second crash with get_fanout_with_deps() with semijoin + materialization
Make get_post_group_estimate() take into account semi-join materialization nests.
Revision #3197 Tue 2011-09-27 17:40:04 +0300
Fixed test case that changed when max_user_connections was made signed. Threat ER_CONNECTION_KILLED same as ER_SERVER_SHUTDOWN in replication (to get rid of a possible warning in error log)
Revision #3196 [merge] Mon 2011-09-26 23:54:00 +0300
Automatic merge
Revision #3191.1.3 Mon 2011-09-26 20:26:47 +0300
Allow one to block an account by using GRANT max_user_connections = -1
One can set @@global.max_user_connections to -1 to block anyone, except SUPER user, to login.
If max_user_connection is 0, one can't change it without a restart (needed to get user connections counting to work correctly)
Revision #3191.1.2 Fri 2011-09-23 13:55:01 +0300
Fixed issue with slow query logging where examined rows where wrong
Reset 'examined_rows_count' in union to not count same rows twice
Revision #3191.1.1 Fri 2011-09-23 01:13:38 +0300
Added new options to KILL. New syntax is KILL [HARD|SOFT] [CONNECTION|QUERY] [ID | USER user_name]
If USER is given, all threads for that user is signaled
If SOFT is used then the KILL will not be sent to the handler. This can be used to not interrupt critical things in the handler like 'REPAIR'.
Internally added more kill signals. This gives us more information of why a query/connection was killed.
KILL_SERVER is used when server is going down. In this case the users gets ER_SHUTDOWN as the reason connection was killed.
Changed signals to number in correct order, which makes it easier to test how the signal should affect the code.
New error message ER_CONNECTION_KILLED if connection was killed by 'KILL CONNECTION'. Before we got error ER_SHUTDOWN.
Changed names of not used parameters KILL_QUERY & KILL_CONNCTION to mysql_kill() to not conflict with defines in the server
Revision #3195 [merge] Mon 2011-09-26 14:15:04 +0400
Merge
Revision #3192.1.1 Mon 2011-09-26 13:56:09 +0400
Bug #858732: Wrong result with semijoin + loosescan + comma join
Fix wrong loop bounds in setup_semijoin_dups_elimination()
Revision #3194 Sat 2011-09-24 14:45:49 +0200
portability fix: use SOCKET_SIZE_TYPE in the handlersocket plugin
Revision #3193 Fri 2011-09-23 12:00:52 +0200
fix typo: binlog_annotate_rows_events -> binlog_annotate_row_events
Revision #3192 [merge] Fri 2011-09-23 01:30:44 +0400
Merge
Revision #3190.1.1 Fri 2011-09-23 01:25:08 +0400
Bug #849776: Wrong result with semijoin + "Impossible where"
Provide fix_after_pullout() function for Item_in_optimizer and other Item_XXX classes (basically, all of them that have eval_not_null_tables, which means they have special rules for calculating not_null_tables_cache value)
Revision #3191 Thu 2011-09-22 11:04:00 +0200
portability fix: avoid anonymous structs and unions in C
Revision #3190 Thu 2011-09-22 01:55:17 +0400
Fix after previous cset: update test results
Revision #3189 [merge] Tue 2011-09-20 20:43:57 +0400
Merge
Revision #3184.1.2 Tue 2011-09-20 20:40:07 +0400
Bug #849763: Wrong result with second execution of prepared statement with semijoin + view
The problem was that Item_direct_view_ref and its embedded Item_field were getting incorrect value of item->used_tables() after fix_fields() in the second and subsequent EXECUTE.
Made relevant fixes in Item_field::fix_fields() and find_field_in_tables(), so that the Item_field gets the correct attributes.
Revision #3188 [merge] Sat 2011-09-17 23:58:36 +0400
Merge
Revision #3184.1.1 Sat 2011-09-17 23:53:50 +0400
LPBUG
849717: Crash in Item_func::fix_fields on second execution of a prepared statement with semijoin
If convert_join_subqueries_to_semijoins() decides to wrap Item_in_subselect in Item_in_optimizer, it should do so in prep_on_expr/prep_where, too, as long as they are present.
There seems to be two possibilities of how we arrive in this function:
prep_on_expr/prep_where==NULL, and will be set later by simplify_joins()
prep_on_expr/prep_where!=NULL, and it is a copy_and_or_structure()-made copy of on_expr/where. the latter can happen for some (but not all!) nested joins. This bug was that we didn't handle this case.
Revision #3187 [merge] Fri 2011-09-16 18:26:20 +0200
merge
Revision #2732.44.36 Fri 2011-09-16 18:15:04 +0200
Fix path lookup for singtool
Revision #2732.44.35 Fri 2011-09-16 18:14:19 +0200
Fix compile warning
Revision #3186 [merge] Thu 2011-09-15 17:25:37 +0300
Merge with 5.2
Revision #2732.44.34 Thu 2011-09-15 16:56:06 +0300
Fixed race condition that could cause diff to fail.
(Code taken from 5.5)
Revision #2732.44.33 Thu 2011-09-15 10:36:17 +0300
Fixed test to be repeatable
Revision #2732.44.32 Wed 2011-09-14 12:48:08 +0300
Reset variable to not access it uninitialized
Revision #2732.44.31 Tue 2011-09-13 18:46:47 +0300
Increased version number
Give proper error to client on shutdown.
Revision #3185 branch nick: maria-5.3 Thu 2011-09-15 16:36:43 +0300
Removed duplicate test
Revision #3184 [merge] Wed 2011-09-14 12:43:29 +0400
Merge
Revision #3182.1.1 Tue 2011-09-13 23:45:02 +0400
Bug #730133: Wrong result with jkl = 7, BKA, ICP in maria-5.3 + compound index
Mrr_ordered_index_reader::interrupt_read() and resume_read() should save/restore not just index lookup tuple, but entire index tuple.
Key parts that are not used for index lookup can be still used in pushed index condition. Failure to save/restore will cause the index condition to be evaluated over the wrong values.
Revision #3183 [merge] branch nick: maria-5.3 Sat 2011-09-10 18:01:27 +0300
Merge with 5.2
Revision #2732.44.30 [merge] Sat 2011-09-10 09:37:55 +0300
Automatic merge
Revision #2732.45.2 Fri 2011-09-09 19:44:07 +0300
Fixed that automatic killing of delayed insert thread (in flush, alter table etc) will not abort auto-repair of MyISAM table.
Give more information when finding an error in a MyISAM table.
When killing system thread, use KILL_SYSTEM_THREAD instead of KILL_CONNECTION to make it easier to ignore the signal in sensitive context (like auto-repair)
Added new kill level: KILL_SERVER that will in the future to be used to signal killed by shutdown.
Add more warnings about killed connections when warning level > 3
Revision #2732.45.1 Fri 2011-09-02 12:41:20 +0300
Fixed Bug #814238 "safe_mutex issues must be assertions in debug binary"
Added
--debug-assert-on-error
variable which, if set, will cause safe_mutex to assert if it founds an error.
Revision #2732.44.29 Thu 2011-09-08 16:57:46 +0300
Bug #813418 fix.
The problem was that optimization code did not take into account later feature when instad of NOT before BETWEEN it has negated flag into the Item_func_between inherited from Item_func_neg_opt. So optimizer tried process NOT BETWEEN as BETWEEN.
The patch just switches off the optimisation for NOT BETWEEN as it was before when NOT function was really used.
This page is licensed: CC BY-SA / Gnu FDL
Last updated
Was this helpful?