Download |Release Notes |Changelog (page:1 2 3456 ) |Overview of 5.3
Release date: 26 July 2011
Revision #3069 Wed 2011-06-29 16:05:16 -0700
Fixed Bug #803410. Due to this bug in the function generate_derived_keys_for_table some key definitions to access materialized derived tables or materialized views were constructed with invalid info for their key parts. This could make the server crash when it optimized queries using materialized derived tables or materialized views.
[merge] Tue 2011-06-28 19:56:30 -0700
Merge.
Tue 2011-06-28 18:31:54 -0700
Fixed . This crashing bug could manifest itself at execution of join queries over materialized derived tables with IN subquery predicates in the where clause. If for such a query the optimizer chose to use duplicate weed-out with duplicates in a materialized derived table and chose to employ join cache the execution could cause a crash of the server. It happened because the JOIN_CACHE::init method assumed that the value of TABLE::file::ref is set at the moment when the method was called for the employed join cache. It's true for regular tables, but it's not true for materialized derived tables that are filled now at the first access to them, i.e. after the JOIN_CACHE::init has done its job.
Tue 2011-06-28 15:48:44 +0300
Fixed
Analysis:
The failed assert ensured that the choice of subquery strategy is performed only for queries with at least one table. If there is a LIMIT 0 clause all tables are removed, and the subquery is neither optimized, nor executed during actual optimization. However, if the query is EXPLAIN-ed, the EXPLAIN execution path doesn't remove the query tables if there is a LIMIT 0 clause. As a result, the subquery optimization code is called, which violates the ASSERT condition.
Tue 2011-06-28 11:11:26 +0400
: Valgrind warning / sporadic crash in evaluate_join_record sql_select.cc:14099 with semijoin
Added testcase. The bug is most likely fixed by code.
[merge] Mon 2011-06-27 23:36:20 -0700
Merge
Mon 2011-06-27 23:07:46 -0700
Fixed . The function create_view_field in some cases incorrectly set the maybe_null flag for the returned items.
[merge] Tue 2011-06-28 00:18:42 +0300
Automatic merge
[merge] Tue 2011-06-28 00:13:22 +0300
Automatic merge
Mon 2011-06-27 23:38:56 +0400
Added TODO comments
Sun 2011-06-26 21:55:32 -0700
Fixed . Ensured valid calculations of the estimates stored in JOIN_TAB::used_fieldlength.
Sat 2011-06-25 14:02:27 -0700
Fixed . Made mergeable views and mergeable derived tables transparent for the MIN/MAX optimization.
Fri 2011-06-24 21:18:20 -0700
Added test cases for and fixed by the patch for .
Fri 2011-06-24 18:42:14 -0700
Fixed . The following were missing in the patch for mwl106:
KEY_PART_INFO::fieldnr were not set for generated keys to access tmp tables storing the rows of materialized derived tables/views
TABLE_SHARE::column_bitmap_size was not set for tmp tables storing the rows of materialized derived tables/views.
Fri 2011-06-24 14:38:53 -0700
Fixed . If a view/derived table is non-mergeable then the definition of the tmp table to store the rows for it is created at the prepare stage. In this case if the view definition uses outer joins and a view column belongs to an inner table of one of them then the column should be considered as nullable independently on nullability of the underlying column. If the underlying column happens to be defined as non-nullable then the function create_tmp_field_from_item rather than the function create_tmp_field_from_field should be employed to create the definition of the interesting column in the tmp table.
[merge] Fri 2011-06-24 21:43:31 +0400
Merge 5.2 -> 5.3 (testcase for now crashes)
Thu 2011-06-23 22:12:22 -0700
Fixed a valgrind problem. The function setup_tables should handle table_list elements for semijoin materialized tables in a special way when executing a prepared statement for the second time.
Thu 2011-06-23 14:48:45 -0700
Fixed . The function simple_pred did not take into account that a multiple equality could include ref items (more exactly items of the class Item_direct_view_ref). It caused crashes for queries over derived tables or views if the min/max optimization could be applied to these queries.
[merge] Tue 2011-06-21 18:17:28 -0700
Merge
Tue 2011-06-21 18:00:58 -0700
Fixed .
Tue 2011-06-21 23:01:01 +0300
Removed forgotten EXPLAIN EXTENDED from the test file.
[merge] Tue 2011-06-21 16:00:41 +0300
Automerged with 5.3.
Tue 2011-06-21 15:50:07 +0300
Fri 2011-06-17 23:00:26 +0200
- fix missing alpha/beta etc in MSI and ZIP package names.
[merge] Fri 2011-06-17 17:45:41 +0400
Merge fix for .
Wed 2011-06-15 18:37:01 +0400
: Crash in hp_movelink with Aria engine and subqueries -In do_sj_dups_weedout(), set nulls_ptr to point to NULL bytes (and not to length bytes) of the DuplicateWeedout column.
[merge] Wed 2011-06-15 21:48:38 -0700
Merge of mwl #106 into 5.3.
Thu 2011-06-09 12:43:28 -0700
Fixed .
Wed 2011-06-15 17:40:18 +0400
: Update .result file
Wed 2011-06-15 16:02:32 +0400
: partition.test produces valgrind errors in 5.3-based branches
Testcase
Wed 2011-06-15 15:32:24 +0400
: InnoDB: Error: row_search_for_mysql() is called without ha_innobase::external_lock() in maria-5.3
Testcase
Wed 2011-06-15 13:43:04 +0400
Assertion `!table->file || table->file->inited == handler::NONE' failed with subquery
Add testcase
Tue 2011-06-14 18:45:14 +0200
fix for cast of negative numbers to datetime
Sun 2011-06-12 11:28:22 +0200
a couple of fixes for pbxt tests
Tue 2011-06-14 15:21:54 +0200
Another attempt at fixing the rare random failures of rpl_corruption
The previous patch partially fixed things by waiting for the old dump thread on the master to exit before injecting the DBUG error. This prevents the error injection going to the wrong thread.
However, there is still the problem that the old dump thread may never exit, causing the wait to time out. This happens if the dump thread manages to write all events down the socket before the socket is closed by the slave. The master dump thread only checks for slave gone when writing a new event, so if no new events are generated, old dump threads can hang around forever on the master after the slave disconnects.
Mon 2011-06-13 12:41:19 +0400
Remove redundant code that is a result of a wrong merge. (Changeset sp1r-igor@olga.mysql.com-20070526173301-38848 moved this loop from one place to another, then the merge of sp1r-gshchepa/uchum@gleb.loc-20070527192244-26330 have kept both copies).
Sun 2011-06-12 00:35:53 +0400
In make_join_select():
move attempt to evaluate join->exec_const_cond() out of the "Extract constant part of each ON expression" loop (it got there by mistake when merging).
[merge] Sat 2011-06-11 12:04:42 +0300
Merge with Sergei's tree to get in latest microsecond patches and also fixes to innodb_plugin.
Fri 2011-06-10 21:15:13 +0200
more buildbot fixes
Sat 2011-06-11 11:41:46 +0300
Fixed build failures with maria3.test and widows build
[merge] Sat 2011-06-11 11:09:17 +0300
Merge with main 5.3
[merge] Fri 2011-06-10 12:09:21 +0300
Merge with 5.2
Fri 2011-06-10 12:45:43 +0400
: does not trigger with non-comma joins
Add a testcase (the bug has already been fixed)
Fri 2011-06-10 12:36:06 +0400
[No BUG#] end_tab_idx==-1 passed as parameter to JOIN::get_partial_cost_and_fanout()
Handle the case when the subquery's join is degenerate and so has zero tables.
Thu 2011-06-09 21:39:31 +0300
Removed depricated --maria-options from mysqld.
Thu 2011-06-09 13:35:01 +0300
Fixed compile failure when we don't use system zlib
Fixed crash when setting query_cache_type to 0.
Thu 2011-06-09 11:13:03 +0300
Fixed build failure on OpenSolaris
Tue 2011-06-07 14:19:49 +0300
Upgraded to latest handlersocket code. This fixed "Assertion `next_insert_id == 0' failed with handlersocket"
Tue 2011-06-07 10:54:37 +0300
Fixed that mysqld --no-defaults --help --verbose doesn't give a lot of irrelevant error messages.
Tue 2011-06-07 10:29:08 +0300
Fixed strict alias problem by replacing = with memcpy()
Mon 2011-06-06 15:50:46 -0700
Fixed . The code that added semi-join transformations missed checking the state of the fixed flag for the items built with the and_items function before calls of the fix_fields method. This could lead to an abort failure when the first argument of and_items() happened to be NULL.
[merge] Mon 2011-06-06 19:37:33 +0300
Merge with 5.2 to get bug fixes for thr_lock
Mon 2011-06-06 17:25:01 +0300
Fixed that SHOW COLUMNS for a virtual persistent column shows 'PERSISTENT' instead of 'VIRTUAL' Strict mode now gives error if one tries to update a virtual column.
Fri 2011-06-03 21:45:24 +0400
Buildbot fixes:
make sp.test work both with and without query_cache (attempt 2)
fix compile warning in make_sort_key(), as directed by SergeiG
Fri 2011-06-03 15:06:13 +0200
Fixed compiler warning in central header file mysql_priv.h.
Fri 2011-06-03 13:42:02 +0400
More changes from optimizer_use_mrr to optimizer_switch
Fri 2011-06-03 11:32:21 +0400
Buildbot fixes: don't use @@optimizer_use_mrr, it has been moved into @@optimizer_switch
Fri 2011-06-03 10:49:50 +0400
Buildbot fixes: let mysql-test/t/sp.test set @@query_cache_size only if the server has query cache.
[merge] Fri 2011-06-03 09:38:59 +0400
Merge
Fri 2011-06-03 00:25:58 +0400
Change optimizer_use_mrr=auto|disable|force to be optimizer_switch flags mrr=on|off and mrr_cost_based=on|off.
[merge] Thu 2011-06-02 17:33:08 -0700
Merge
Tue 2011-05-31 09:39:35 -0700
Corrected the previous patch concerning elimination of SQL_SELECT::original_cond.
[merge] Thu 2011-06-02 23:52:36 +0400
Merge fix for .
Thu 2011-06-02 23:48:33 +0400
: Valgrind complains on a join query with two IN subqueries
Thu 2011-06-02 16:46:47 +0400
Change suite/rpl/t/rpl_row_basic_11bugs.test to require query cache.
[merge] Tue 2011-05-31 12:16:02 +0200
automerge
Tue 2011-05-31 12:14:21 +0200
Attempt to fix rpl.rpl_corruption failure seen in Buildbot on Windows.
Mon 2011-05-30 11:19:40 +0400
Remove compiler warning
Remove garbage comments
[merge] Mon 2011-05-30 10:51:41 +0400
Merge 5.3-main ->
Sun 2011-05-29 20:48:14 -0700
Eliminated the member original_cond from the class SQL_SELECT introduced at the latest merge 5.1->5.2->5.3. It is basically not needed since if SQL_SELECT::pre_idx_push_select_cond is not NULL then SQL_SELECT::original_cond would point to the same condition as SQL_SELECT::pre_idx_push_select_cond. Otherwise SQL_SELECT::original_cond would be equal to SQL_SELECT::cond.
Sat 2011-05-28 22:07:56 -0700
Fixed the abort failure of a test case from vcol.vcol_misc. The fix blocks execution of any constant sub-expressions of the defining expressions for virtual columns when context analysis if these expressions is performed.
Fixed a compiler warning.
Sat 2011-05-28 19:28:39 +0200
Fix gcc warning.
Sat 2011-05-28 16:57:58 +0200
Fix compile errors and warnings and test errors introduced by microseconds push.
Also, change windows timespec definition to be Unix-ish - simplifies handling a lot.
[merge] Sat 2011-05-28 06:00:22 +0300
Automatic merge
[merge] Sat 2011-05-28 05:58:16 +0300
automatic merge with 5.3
[
merge] Fri 2011-05-27 19:05:35 +0200
merge
[merge] Mon 2011-05-23 11:54:26 +0300
automatic merge with 5.3
Mon 2011-05-23 10:56:05 +0300
: Address review feedback (by Sergey Petrunia)
Sat 2011-05-21 22:23:14 +0200
Fix comp_errr crash ( fprintf crashes wheb uninitialized string is passed)
Sat 2011-05-21 00:46:18 +0300
Changed MariaDB error numbers to start from 1900 to not conflict with MySQL error numbers
Fri 2011-05-20 19:52:24 +0400
Fix a comment (unmatched '{' and '}' screw up jumping in advanced editors)
Fri 2011-05-20 19:08:55 +0400
Stabilize a testcase after fix for , part 2
Fri 2011-05-20 14:15:22 +0400
Stabilize a testcase after fix for
[merge] Fri 2011-05-20 10:13:02 +0400
Merge fix for
Fri 2011-05-20 01:05:06 +0400
: Wrong result with semijoin + nested subqueries in maria-5.3
Changelog — page: 2
To fix this problem for any ROWID field of materialized derived table the procedure that copies fields from record buffers into the employed join buffer first checks whether the value of TABLE::file::ref has been set for the table, and if it's not so the procedure sets this value.
Solution:
Transform the assert into a condition, and if the outer query has no tables assume that there will be at most one subquery execution.
There is potentially a better solution by reengineering the EXPLAIN/optimize code, so that subquery optimization is not done if not needed. Such a solution would be a lot bigger and more complex than a bug fix.
Revision #3061.1.4 Mon 2011-06-27 19:30:05 +0300
Added mytop to distribution (with some small trivial changes to make it workg good also for MariaDB)
Revision #3061.1.3 Mon 2011-06-27 19:07:24 +0300
New status variables: Rows_tmp_read, Handler_tmp_update and Handler_tmp_write Split status variable Rows_read to Rows_read and Rows_tmp_read so that one can see how much real data is read. Same was done with Handler_update and Handler_write. Fixed bug in MEMORY tables where some variables was counted twice. Added new internal handler call 'ha_close()' to have one place to gather statistics. Fixed bug where thd->open_options was set to wrong value when doing admin_recreate_table()
Revision #3061.1.2 Mon 2011-06-27 12:51:13 +0300
Updated version tag to beta
Revision #3061.1.1 [merge] Mon 2011-06-27 12:48:53 +0300
Automatic merge
Revision #3039.1.2 Mon 2011-06-27 12:45:03 +0300
Added reading of client-server my.cnf tag
Mon 2011-06-13 14:07:44 +0300
Added test case to show that we get a warning from CHECK TABLE if we force auto_increment value to 0
These could cause crashes or memory overwrite.
The patch for Bug #717577 and Bug #724942 has missed to make adjustments for the call item_equal->add_const(const_item, orig_field_item) in the function check_simple_equality that builds multiple equality for a field and a constant. As a result, when this field happens to be a view field and the corresponding Item_field object F is wrapped in an Item_direct_view_ref object R the object F is placed in the multiple equality instead of the object R. A substitution of an equal item for F potentially can cause very serious problems and in some cases can lead to crashes of the server.
Added regression test with queries over the WORLD database.
Discovered and fixed several bugs in the related cost calculation functionality both in the semijoin and non-semijon subquery code.
Added DBUG printing of the cost variables used to decide between IN-EXISTS and MATERIALIZATION.
The function generate_derived_keys did not take into account the fact that the last element in the array of keyuses could be just a barrier element. In some cases it could lead to a crash of the server.
Also fixed a couple of other bugs in generate_derived_keys: the inner loop in the body of if this function did not change the cycle variables properly.
Revision #3025.1.4 Thu 2011-06-09 00:13:00 -0700
Fixed Bug #794038. INSERT/UPDATE/DELETE statement that used a temptable view v1 could lead to a crash if v1 was defined as a select from a mergeable view v2 that selected rows from a temptable view v3.
When INSERT/UPDATE/DELETE uses a view that is not updatable then field translation for the view should be created before the prepare phase.
Revision #3025.1.3 Mon 2011-06-06 12:19:35 -0700
Fixed Bug #793436
When looking for the execution plan of a derived table to be materialized JOIN::optimize finds out that all joined tables of the derived table contain not more than one row then the derived table should be maretialized at the optimization stage.
Added a test case for the bug.
Adjusted results in other test cases.
Revision #3025.1.2 Sun 2011-06-05 21:54:25 -0700
Added two new flags for the optimizer switch:
'derived_merge':
if the flag is off then all derived tables are materialized
if the flag is on then mergeable derived tables are merged
'derived_with_keys':
if the flag is off then no keys are created for derived tables
if the flag is on then for any derived table a key to access the derived table may be created.
Now by default both flags are on. Later the default values for the flags will be off to comply with the current behaviour of mysql-5.1.
Uncommented previously commented out test case from parts.partition_repair_myisam after having added an explicit requirement to materialize the derived table used in the test case.
Revision #3025.1.1 [merge] Sat 2011-06-04 19:56:06 -0700
Fix by explicitly killing the old dump thread if it is still around.
Revision #3027.1.5 Fri 2011-06-10 15:42:55 +0200
various fixes for buildbot failures
Revision #3027.1.4 Fri 2011-06-10 10:14:20 +0200
change test_if_equality_guarantees_uniqueness() from an ad hoc set of limitations to a correct rule
Revision #3027.1.3 Thu 2011-06-09 18:06:29 +0200
small optimization in Field_time_hires.
Fix Field_time_hires::reset()
Revision #3027.1.2 Thu 2011-06-09 17:23:39 +0200
bugfixes:
microsecond(TIME)
alter table datetime<->datetime(6)
max(TIME), mix(TIME)
Revision #3027.1.1 [merge] Tue 2011-06-07 18:13:02 +0200
merge with 5.1-micro
Revision #2502.1147.48 Mon 2011-06-06 20:28:15 +0200
revert a suggested "optimization" that introduced a bug
compilation error in mysys/my_getsystime.c fixed
some redundant code removed
sec_to_time, time_to_sec, from_unixtime, unix_timestamp, @@timestamp now use decimal, not double for numbers with a fractional part.
purge_master_logs_before_date() fixed
many bugs in corner cases fixed
Thu 2011-05-26 19:16:10 +0200
innodb compatibility fix
Thu 2011-05-26 18:11:26 +0200
fix for double or decimal to datetime conversion
Corrected the code from the patch for Bug #702322.
Don't attempt to construct FirstMatch access method if we've just figured three lines above that it can't be used (because join prefix doesn't have the needed tables), and so have set pos->first_firstmatch_table= MAX_TABLES
Attempts to analyze join->positions[MAX_TABLES] caused valgrind warnings
There is a potential race when we stop the slave. It may take some time for the master to detect that the slave connection is closed (eg. if scheduling delays the TCP RSET packet or whatever). Since we inject only a single corrupt binlog event, we may be unfortunate enough to inject it on the wrong connection, to a slave io thread that's already stopped.
Fix by waiting for the old dump thread on the master to go away before injecting the corrupt event.
Revision #3006.1.3 [merge] Sat 2011-05-28 05:17:24 +0300
automatic merge with 5.2
Revision #3006.1.2 [merge] Sat 2011-05-28 05:11:32 +0300
Merge with 5.1-microseconds
A lot of small fixes and new test cases.
Revision #3006.1.1 Mon 2011-05-23 15:14:54 +0300
Fixed errors found in buildbot
Revision #2991.1.2 Wed 2011-05-18 01:23:22 +0300
Revision #2991.1.1 [merge] Tue 2011-05-17 14:56:02 +0300
MWL#89 - automatic merge with 5.3
in advance_sj_state(), remember join->cur_dups_producing_tables in pos->prefix_dups_producing_tables before we modify it, so that restore_prev_sj_state() restores cur_dups_producing_tables in all cases.
Updated test results in subselect_sj2[_jcl6].result (the original EXPLAIN was invalid there)
This page is licensed: CC BY-SA / Gnu FDL