MariaDB 5.3.0 Changelog p2

You are viewing an old version of this article. View the current version here.

Download | Release Notes | Changelog (page: 1 2 3 4 5 6 ) | 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.
  • Revision #3068 [merge] Tue 2011-06-28 19:56:30 -0700
    • Merge.
    • Revision #3065.1.1 Tue 2011-06-28 18:31:54 -0700
      • Fixed Bug #802860. 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 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.
      • 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.
  • Revision #3067 Tue 2011-06-28 15:48:44 +0300
    • Fixed Bug #800679
      • 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.
      • 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 #3066 Tue 2011-06-28 11:11:26 +0400
    • MySQL Bug #751484: Valgrind warning / sporadic crash in evaluate_join_record sql_select.cc:14099 with semijoin
      • Added testcase. The bug is most likely fixed by MWL#90 code.
  • Revision #3065 [merge] Mon 2011-06-27 23:36:20 -0700
    • Merge
    • Revision #3062.2.1 Mon 2011-06-27 23:07:46 -0700
      • Fixed Bug #800535. The function create_view_field in some cases incorrectly set the maybe_null flag for the returned items.
  • Revision #3064 [merge] Tue 2011-06-28 00:18:42 +0300
    • Automatic merge
    • Revision #3062.1.1 [merge] Tue 2011-06-28 00:13:22 +0300
      • Automatic merge
        • 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 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
            • Revision #3039.1.1 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
  • Revision #3063 Mon 2011-06-27 23:38:56 +0400
    • Added TODO comments
  • Revision #3062 Sun 2011-06-26 21:55:32 -0700
    • Fixed Bug #801536. Ensured valid calculations of the estimates stored in JOIN_TAB::used_fieldlength.
  • Revision #3061 Sat 2011-06-25 14:02:27 -0700
    • Fixed Bug #802023. Made mergeable views and mergeable derived tables transparent for the MIN/MAX optimization.
  • Revision #3060 Fri 2011-06-24 21:18:20 -0700
  • Revision #3059 Fri 2011-06-24 18:42:14 -0700
    • Fixed Bug #799499. 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.
      • These could cause crashes or memory overwrite.
  • Revision #3058 Fri 2011-06-24 14:38:53 -0700
    • Fixed Bug #798576. 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.
  • Revision #3057 [merge] Fri 2011-06-24 21:43:31 +0400
    • Merge 5.2 -> 5.3 (testcase for Bug #798597 now crashes)
  • Revision #3056 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.
  • Revision #3055 Thu 2011-06-23 14:48:45 -0700
    • Fixed Bug #800518. 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.
  • Revision #3054 [merge] Tue 2011-06-21 18:17:28 -0700
    • Merge
    • Revision #3052.1.1 Tue 2011-06-21 18:00:58 -0700
      • Fixed Bug #798621.
      • 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.
  • Revision #3053 Tue 2011-06-21 23:01:01 +0300
    • MWL#89 Removed forgotten EXPLAIN EXTENDED from the test file.
  • Revision #3052 [merge] Tue 2011-06-21 16:00:41 +0300
    • MWL#89 Automerged with 5.3.
    • Revision #3015.3.1 Tue 2011-06-21 15:50:07 +0300
      • MWL#89
        • 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.
  • Revision #3051 Fri 2011-06-17 23:00:26 +0200
    • Bug #779758 - fix missing alpha/beta etc in MSI and ZIP package names.
  • Revision #3050 [merge] Fri 2011-06-17 17:45:41 +0400
    • Merge fix for Bug #778406.
    • Revision #3048.1.1 Wed 2011-06-15 18:37:01 +0400
      • Bug #778406: 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.
  • Revision #3049 [merge] Wed 2011-06-15 21:48:38 -0700
    • Merge of mwl #106 into 5.3.
    • Revision #3025.1.5 Thu 2011-06-09 12:43:28 -0700
      • Fixed Bug #794909.
        • 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
      • Merged the code of MWL#106 into the latest 5.3 with MWL#90 pushed. Resolved all conflicts and failures.
  • Revision #3048 Wed 2011-06-15 17:40:18 +0400
  • Revision #3047 Wed 2011-06-15 16:02:32 +0400
    • Bug #598247: partition.test produces valgrind errors in 5.3-based branches
      • Testcase
  • Revision #3046 Wed 2011-06-15 15:32:24 +0400
    • Bug #761598: InnoDB: Error: row_search_for_mysql() is called without ha_innobase::external_lock() in maria-5.3
      • Testcase
  • Revision #3045 Wed 2011-06-15 13:43:04 +0400
    • Bug #751439 Assertion `!table->file || table->file->inited == handler::NONE' failed with subquery
      • Add testcase
  • Revision #3044 Tue 2011-06-14 18:45:14 +0200
    • fix for cast of negative numbers to datetime
  • Revision #3043 Sun 2011-06-12 11:28:22 +0200
    • a couple of fixes for pbxt tests
  • Revision #3042 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.
    • Fix by explicitly killing the old dump thread if it is still around.
  • Revision #3041 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).
  • Revision #3040 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).
  • Revision #3039 [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.
    • Revision #3027.1.6 Fri 2011-06-10 21:15:13 +0200
      • more buildbot fixes
    • 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
        • Revision #2502.1147.47 Thu 2011-05-26 19:16:10 +0200
          • innodb compatibility fix
        • Revision #2502.1147.46 Thu 2011-05-26 18:11:26 +0200
          • fix for double or decimal to datetime conversion
  • Revision #3038 Sat 2011-06-11 11:41:46 +0300
    • Fixed build failures with maria3.test and widows build
  • Revision #3037 [merge] Sat 2011-06-11 11:09:17 +0300
    • Merge with main 5.3
    • Revision #3034.1.1 [merge] Fri 2011-06-10 12:09:21 +0300
      • Merge with 5.2
  • Revision #3036 Fri 2011-06-10 12:45:43 +0400
    • Bug #727183: WL#90 does not trigger with non-comma joins
      • Add a testcase (the bug has already been fixed)
  • Revision #3035 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.
  • Revision #3034 Thu 2011-06-09 21:39:31 +0300
    • Removed depricated --maria-options from mysqld.
  • Revision #3033 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.
  • Revision #3032 Thu 2011-06-09 11:13:03 +0300
    • Fixed build failure on OpenSolaris
  • Revision #3031 Tue 2011-06-07 14:19:49 +0300
    • Upgraded to latest handlersocket code. This fixed Bug #766870 "Assertion `next_insert_id == 0' failed with handlersocket"
  • Revision #3030 Tue 2011-06-07 10:54:37 +0300
    • Fixed that mysqld --no-defaults --help --verbose doesn't give a lot of irrelevant error messages.
  • Revision #3029 Tue 2011-06-07 10:29:08 +0300
    • Fixed strict alias problem by replacing = with memcpy()
  • Revision #3028 Mon 2011-06-06 15:50:46 -0700
    • Fixed Bug #784441. 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.
  • Revision #3027 [merge] Mon 2011-06-06 19:37:33 +0300
    • Merge with 5.2 to get bug fixes for thr_lock
  • Revision #3026 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.
  • Revision #3025 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
  • Revision #3024 Fri 2011-06-03 15:06:13 +0200
    • Fixed compiler warning in central header file mysql_priv.h.
  • Revision #3023 Fri 2011-06-03 13:42:02 +0400
    • More changes from optimizer_use_mrr to optimizer_switch
  • Revision #3022 Fri 2011-06-03 11:32:21 +0400
    • Buildbot fixes: don't use @@optimizer_use_mrr, it has been moved into @@optimizer_switch
  • Revision #3021 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.
  • Revision #3020 [merge] Fri 2011-06-03 09:38:59 +0400
    • Merge
    • Revision #3018.1.1 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.
  • Revision #3019 [merge] Thu 2011-06-02 17:33:08 -0700
    • Merge
    • Revision #3015.2.1 Tue 2011-05-31 09:39:35 -0700
      • Corrected the previous patch concerning elimination of SQL_SELECT::original_cond.
      • Corrected the code from the patch for Bug #702322.
  • Revision #3018 [merge] Thu 2011-06-02 23:52:36 +0400
    • Merge fix for Bug #787299.
    • Revision #3015.1.1 Thu 2011-06-02 23:48:33 +0400
      • Bug #787299: Valgrind complains on a join query with two IN subqueries
        • 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
  • Revision #3017 Thu 2011-06-02 16:46:47 +0400
    • Change suite/rpl/t/rpl_row_basic_11bugs.test to require query cache.
  • Revision #3016 [merge] Tue 2011-05-31 12:16:02 +0200
    • automerge
    • Revision #2732.26.25 Tue 2011-05-31 12:14:21 +0200
      • Attempt to fix rpl.rpl_corruption failure seen in Buildbot on Windows.
      • 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 #3015 Mon 2011-05-30 11:19:40 +0400
    • Remove compiler warning
    • Remove garbage comments
  • Revision #3014 [merge] Mon 2011-05-30 10:51:41 +0400
  • Revision #3013 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.
  • Revision #3012 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.
  • Revision #3011 Sat 2011-05-28 19:28:39 +0200
    • Fix gcc warning.
  • Revision #3010 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.
  • Revision #3009 [merge] Sat 2011-05-28 06:00:22 +0300
    • Automatic merge
    • Revision #3006.1.4 [merge] Sat 2011-05-28 05:58:16 +0300
      • automatic merge with 5.3
    • 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 #3008 [merge] Fri 2011-05-27 19:05:35 +0200
    • merge
  • Revision #3007 [merge] Mon 2011-05-23 11:54:26 +0300
  • Revision #3006 Sat 2011-05-21 22:23:14 +0200
    • Fix comp_errr crash ( fprintf crashes wheb uninitialized string is passed)
  • Revision #3005 Sat 2011-05-21 00:46:18 +0300
    • Changed MariaDB error numbers to start from 1900 to not conflict with MySQL error numbers
  • Revision #3004 Fri 2011-05-20 19:52:24 +0400
    • Fix a comment (unmatched '{' and '}' screw up jumping in advanced editors)
  • Revision #3003 Fri 2011-05-20 19:08:55 +0400
    • Stabilize a testcase after fix for Bug #784723, part 2
  • Revision #3002 Fri 2011-05-20 14:15:22 +0400
  • Revision #3001 [merge] Fri 2011-05-20 10:13:02 +0400
    • Merge fix for Bug #784723
    • Revision #2982.1.2 Fri 2011-05-20 01:05:06 +0400
      • Bug #784723: Wrong result with semijoin + nested subqueries in maria-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)

MariaDB 5.3.0 Changelog page: 1 2 3 4 5 6

Comments

Comments loading...
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.