MariaDB 5.3.0 Changelog p6

Downloadarrow-up-right |Release Notes |Changelog (page:[1](mariadb-530-changelog.md)[2](mariadb-530-changelog-p2.md)[3](mariadb-530-changelog-p3.md)[4](mariadb-530-changelog-p4.md)[5](mariadb-530-changelog-p5.md) 6 ) |Overview of 5.3

Release date: 26 July 2011

  • Revision #2832arrow-up-right Mon 2010-10-25 23:48:43 +0300

    • The bug was a result of missing logic to handle the case when there are 'expensive' predicates that are not evaluated during constant table optimization. Such is the case for the IN predicate, which is considered expensive if it is computed via materialization. In general this bug can be triggered with any expensive predicate instead of IN.

    • When FALSE constant predicates are not evaluated during constant optimization, the execution path changes so that instead of setting JOIN::zero_result_cause after make_join_select, and exiting JOIN::exec via the call to return_zero_rows(), execution ends in JOIN::exec in the branch:

      if (join->tables == join->const_tables)
      {
      ...
      else if (join->send_row_on_empty_set())
       ...
       rc= join->result->send_data(*columns_list);
      }
  • Unlike return_zero_rows(), this branch didn't evaluate the having clause of the query.

  • The patch adds a call to evaluate the HAVING clause of a query even when all tables are constant, because even for an empty result set some aggregate functions may produce a NULL value.

  • Revision #2831arrow-up-right Mon 2010-10-18 16:23:05 +0400

    • Make innodb_plugin testsuite not to use IndexConditionPushdown or DS-MRR (Otherwise we get different EXPLAINs for xtradb and innodb plugin).

  • Revision #2830arrow-up-right Mon 2010-10-18 12:55:26 +0400

    • No BUG#, a case brought from 5.2's innodb_mysql_lock.test

      • Fix a crash in nested semi-join subquery processing

  • Revision #2829arrow-up-right Sun 2010-10-17 18:05:29 +0400

    • MariaDB 5.2 -> 5.2 post-merge fixes:

      • When building multiple-equalities for HAVING, don't set JOIN::cond_equal, set join_having_equal instead. Setting JOIN::cond_equal based on HAVING makes equality propagation data self-inconsistent

  • Revision #2828arrow-up-right [merge] Thu 2010-10-14 16:01:40 -0700

    • Merge from mariadb-5.1 (through mariadb-5.2)

  • Revision #2827arrow-up-right Thu 2010-10-14 11:45:46 -0700

  • Revision #2826arrow-up-right [merge] Thu 2010-10-14 01:50:16 +0400

  • Revision #2825arrow-up-right Thu 2010-10-14 01:48:03 +0400

  • Revision #2824arrow-up-right Wed 2010-10-13 16:26:58 +0400

    • More post-merge test result updates (2).

  • Revision #2823arrow-up-right Tue 2010-10-12 23:11:08 +0300

    • More post-merge test result updates

  • Revision #2822arrow-up-right Tue 2010-10-12 22:48:49 +0300

    • Post-merge test result fixes part#1 (checked)

  • Revision #2821arrow-up-right Sun 2010-10-10 22:43:19 +0300

    • Remove garbage comments

  • Revision #2820arrow-up-right Sun 2010-10-10 17:38:17 +0300

    • Post-merge fixes part 1

  • Revision #2819arrow-up-right [merge] Sun 2010-10-10 17:18:11 +0300

    • Merge 5.2->5.3

      • Re-commit Monty's merge, partially fixed by Igor and SergeyP, but still broken

  • Revision #2818arrow-up-right Tue 2010-09-14 16:43:41 +0300

    • Engine should not be mentioned in such test

  • Revision #2817arrow-up-right Thu 2010-09-09 11:01:13 +0300

    • table_elimination switchable only for debug build and has no influence on the result of the test so it is removed.

  • Revision #2816arrow-up-right Wed 2010-09-08 09:26:17 +0300

    • (no message)

  • Revision #2815arrow-up-right Mon 2010-09-06 15:34:24 +0300

    • Fixed Bug #615760arrow-up-right: Check on double cache assignment added into the transformation methods.

    • Cache parameters print added in EXPLAIN EXTENDED output.

  • Revision #2814arrow-up-right Wed 2010-09-01 17:42:41 +0300

    • pbxt test suite fix (expression test added to EXPLAIN EXTENDED).

  • Revision #2813arrow-up-right Tue 2010-08-31 16:16:10 +0300

  • Revision #2812arrow-up-right Mon 2010-08-30 11:07:16 +0300

    • Fixed Bug #608744arrow-up-right

      • The bug is a result of the following change by Monty:

        • Revision Id: monty@askmonty.org-20100716073301-gstby2062nqd42qv Fri 2010-07-16 10:33:01 +0300

    • Where Monty changed the queues interface and implementation. The fix adjusts the queue_remove call to the new interface.

  • Revision #2811arrow-up-right Mon 2010-08-09 21:03:48 +0400

    • Let xtradb set mrr_length_per_rec stats.

  • Revision #2810arrow-up-right Mon 2010-08-09 13:00:58 +0300

    • Fix for Bug #611625arrow-up-right: Removing NULL references from subquery parameter list added.

    • Incorrect limitation on number of parameters removed.

  • Revision #2809arrow-up-right Thu 2010-08-05 17:23:48 +0300

    • The test files renamed to have uniform name.

  • Revision #2808arrow-up-right Fri 2010-07-30 07:16:58 +0300

    • Fix for Bug #609043arrow-up-right

      • Removed indirect reference in equalities for cache index lookup.

      • We should use a direct reference because some optimization of the query may optimize out a condition predicate and if the outer reference is the only element of the condition predicate the indirect reference becomes NULL.

      • We can resolve correctly the indirect reference in Expression_cache_tmptable::make_equalities because it is called before optimization of the cached subquery.

  • Revision #2807arrow-up-right Thu 2010-07-29 14:13:48 +0300

  • Revision #2806arrow-up-right Fri 2010-07-23 11:25:00 +0300

    • Removed dead code that was made obsolete by the introduction of check_join_cache_usage() by the change:

  • Revision #2805arrow-up-right Fri 2010-07-16 14:02:15 +0300

    • Fixed a problem where the temp table of a materialized subquery was not cleaned up between PS re-executions. The reason was two-fold:

      • a merge with mysql-6.0 missed select_union::cleanup() that should have cleaned up the temp table, and

      • the subclass of select_union used by materialization didn't call the base class cleanup() method.

  • Revision #2804arrow-up-right [merge] Fri 2010-07-16 13:07:11 +0400

    • Merge

    • Revision #2802.1.1arrow-up-right Fri 2010-07-16 12:58:24 +0400

      • Fix @@optimizer_switch support

        • Let "mysqld --help --verbose" list all optimizer options

        • Make it possible to add new @@optimizer_switch flags w/o causing .result changes all over the testsuite:

          • Remove "select @@optimizer_switch" from tests that do not need all switches

          • Move @@optimizer_switch-specific tests to t/optimizer_switch.test

  • Revision #2803arrow-up-right [merge] Fri 2010-07-16 11:02:05 +0300

    • Merge with new queue code. Updated configure.in to have version 5.3

    • Revision #2800.1.1arrow-up-right Fri 2010-07-16 10:33:01 +0300

      • Improved speed of thr_alarm from O(N) to O(1). thr_alarm is used to handle timeouts and kill of connections. Fixed compiler warnings. queues.h and queues.c are now based on the UNIREG code and thus made BSD.

      • Fix code to use new queue() interface. This mostly affects how you access elements in the queue. If USE_NET_CLEAR is not set, don't clear connection from unexpected characters. This should give a speed up when doing a lot of fast queries. Fixed some code in ma_ft_boolean_search.c that had not made it from myisam/ft_boolean_search.c

  • Revision #2802arrow-up-right Thu 2010-07-15 18:07:01 +0400

    • Fix order_by test failure: don't run EXPLAIN for a query that has multiple range plans with identical costs.

  • Revision #2801arrow-up-right Thu 2010-07-15 16:59:10 +0300

    • Fixed an error in the creation of REF access method for materialized subquery execution, where the REF buffer format was mistaken to be in record format instead of key format. The error was that the null byte for all fields of the record was in the front of the buffer, and not before each field data.

  • Revision #2800arrow-up-right<> Sat 2010-07-10 13:37:30 +0300

  • Revision #2799arrow-up-right Tue 2010-07-06 19:16:24 +0400

    • Fix buildbot valgrind failure

      • Item_in_subselect::init_left_expr_cache() should not try to guess whether the left expression is accessed "over the grouping operation" (i.e. the subselect is evaluated after the grouping while the left_expr is an Item_ref that wraps an expression from before the grouping). Instead, let new_Cached_item not to try accessing item->real_item() when creating left expr cache.

  • Revision #2798arrow-up-right Thu 2010-07-01 22:13:19 -0700

    • Added missing calls of update_virtual_fields() in the

      • join cache module.

      • Without these calls SELECTs over tables with virtual columns that used join cache could return wrong results. This could be seen with the test case added into vcol_misc.test

  • Revision #2797arrow-up-right Sun 2010-06-27 09:52:14 +0400

    • Add sql/opt_index_cond_pushdown.cc to CMakeLists.txt files

  • Revision #2796arrow-up-right Sun 2010-06-27 01:00:34 +0400

    • Fix windows build: add sql/opt_subselect.cc to CMakeLists.txt files

  • Revision #2795arrow-up-right Sun 2010-06-27 00:55:40 +0400

    • Fix valgrind failure: when creating key image, don't try to copy out more than field->pack_length() bytes.

  • Revision #2794arrow-up-right Sat 2010-06-26 23:55:33 +0400

    • Fix windows build: provide log2 function if the system doesn't have it.

  • Revision #2793arrow-up-right Sat 2010-06-26 23:33:16 +0400

    • Post-merge fixes: update test results for vcol and pbxt test suites.

  • Revision #2792arrow-up-right Sat 2010-06-26 23:11:45 +0400

    • Post-merge fixes: Update test results. The differences in QEPs are because 5.3 had

      • handler::index_only_read_time(uint keynr, double records)

      • while 5.2 got:

      • handler::keyread_read_time(uint index, uint ranges, ha_rows rows)

    • which causes floor()'ing of rows parameter, which makes all further costs different.

  • Revision #2791arrow-up-right Sat 2010-06-26 23:05:09 +0400

    • Post-merge fixes:

      • fix a bug in LooseScan strategy execution code (exposed by changing costs/QEP)

      • Do set join_tab->sorted=TRUE for JOIN_TABs that use LooseScan (partitioning handler cares about "sorted" parameter of h->index_init() call)

  • Revision #2790arrow-up-right [merge] Sat 2010-06-26 14:05:41 +0400

  • Revision #2789arrow-up-right Mon 2010-06-14 15:17:54 +0400

    • More comments

  • Revision #2788arrow-up-right Mon 2010-05-10 15:46:08 +0200

    • fix compilation errors for builds w/o maria engine. tests still fail, the fix will come from 5.1 tree

  • Revision #2787arrow-up-right Tue 2010-03-30 00:09:40 +0400

    • Fix buildbot compile failure on hardy-amd64-makedist: invoke proper Item_int constructor.

  • Revision #2786arrow-up-right Mon 2010-03-29 18:04:35 +0400

    • MWL#110arrow-up-right: Make EXPLAIN always show materialization separately

      • Add Item_in_subselect::get_identifier() that returns subquery's id

      • Change select_describe() to produce output in new format

      • Update test results (checked)

  • Revision #2785arrow-up-right Tue 2010-03-23 17:57:50 +0300

  • Revision #2784arrow-up-right Sun 2010-03-21 23:06:04 +0300

    • Make test result stable (had different result orderings, on some platforms, both of which satisfied the ORDER BY clause).

  • Revision #2783arrow-up-right Sun 2010-03-21 22:50:33 +0300

    • Fix merge error in pbxt suite test results

  • Revision #2782arrow-up-right Sat 2010-03-20 19:59:30 +0300

  • Revision #2781arrow-up-right [merge] Sat 2010-03-20 15:08:44 +0300

  • Revision #2780arrow-up-right [merge] Sat 2010-03-20 15:01:47 +0300

  • Revision #2779arrow-up-right [merge] Mon 2010-03-15 21:52:58 +0200

    • Merge in MWL#68arrow-up-right: Subquery optimization: Efficient NOT IN execution with NULLs

    • Revision #2761.1.6arrow-up-right Thu 2010-03-11 23:43:31 +0200

      • MWL#68arrow-up-right Subquery optimization: Efficient NOT IN execution with NULLs

      • This patch does three things:

        • It adds the possibility to force the execution of top-level [NOT] IN subquery predicates via the IN=>EXISTS transformation. This is done by setting both optimizer switches partial_match_rowid_merge and partial_match_table_scan to "off".

        • It adjusts all test cases where the complete optimizer_switch is selected because now we have two more switches.

        • For those test cases where the plan changes because of the new available strategies, we switch off both partial match strategies in order to force the "old" IN=>EXISTS strategy. This is done because most of these test cases specifically test bugs in this strategy.

    • Revision #2761.1.5arrow-up-right [merge] Tue 2010-03-09 12:36:15 +0200

      • MWL#68arrow-up-right Subquery optimization: Efficient NOT IN execution with NULLs

      • Automerge with 5.3-subqueries

    • Revision #2761.1.4arrow-up-right Tue 2010-03-09 12:14:06 +0200

      • MWL#68arrow-up-right Subquery optimization: Efficient NOT IN execution with NULLs

        • Implemented a second partial matching strategy via table scan. This strategy is a fallback when there is no memory for rowid merging.

        • Refactored the selection and creation of partial matching strategies, so that the choice of strategy is encapsulated in a separate method choose_partial_match_strategy().

        • Refactored the representation of partial match strategies so that:

          • each strategy is represented by a polymorphic class, and

          • the base class for all partial match strategies contains common execution code.

        • Added an estimate of the memory needed for the rowid merge strategy, and the system variable "rowid_merge_buff_size" to control the maximum memory to be used by the rowid merge algorithm.

        • Added two optimizer_switch system variables to control the choice of partial match strategy: "partial_match_rowid_merge", "partial_match_table_scan".

        • Fixed multiple problems with deallocation of resources by the partial match strategies.

    • Revision #2761.1.3arrow-up-right Mon 2010-02-22 17:16:55 +0200

      • MWL#68arrow-up-right Subquery optimization: Efficient NOT IN execution with NULLs

      • This patch mainly adds sorting of all indexes for partial matching according to their NULL selectivity. The patch also fixes a related bug in subselect_rowid_merge_engine::test_null_row() where the wrong matched indexes were skipped.

      • In addition the patch:

        • adds few ::print() methods,

        • renames few variables that had similar names but different purpose.

    • Revision #2761.1.2arrow-up-right [merge] Mon 2010-02-22 15:57:09 +0200

      • Automerge with 5.3-subqueries

    • Revision #2761.1.1arrow-up-right Fri 2010-02-19 23:55:57 +0200

      • MWL#68arrow-up-right Subquery optimization: Efficient NOT IN execution with NULLs

      • This patch implements correct NULL semantics for materialized subquery execution.

      • The implementation has the following properties and main limitations:

        • It passes all query result tests, but fails a number of EXPLAIN tests because of changed plans.

        • The EXPLAIN output for partial matching is not decided yet.

        • It works only when all necessary indexes fit into main memory. Notice that these are not the general B-tree/Hash indexes, but instead much more compact ones, therefore this limitation may not be a problem in many practical cases.

        • It doesn't contain specialized tests.

        • In several places the implementation uses methods that are modified copies of other similar methods. These cases need to be refactored to avoid code duplication.

        • Add a test if the predicate is top-level just before deciding on partial matching. If it is top-level, use a more efficient exec method (index lookup).

        • Add sorting of indexes according to their selectivity. The code is almost there.

        • Needs more comments, and to sync existing ones with the implementation.

  • Revision #2778arrow-up-right [merge] Mon 2010-03-15 09:35:35 +0300

  • Revision #2777arrow-up-right Mon 2010-03-15 09:32:54 +0300

    • Apply fix by Roy Lyseng:

      • MySQL Bug #48623arrow-up-right: Multiple subqueries are optimized incorrectly

      • The function setup_semijoin_dups_elimination() has a major loop that goes through every table in the JOIN object. Usually, there is a normal "plus one" increment in the for loop that implements this, but each semijoin nest is treated as one entity and there is another increment that skips past the semijoin nest to the next table in the JOIN object. However, when combining these two increments, the next joined table is skipped, and if that happens to be the start of another semijoin nest, the correct processing for that nest will not be carried out.

  • Revision #2776arrow-up-right [merge] Sun 2010-03-14 21:25:43 +0300

    • Merge

    • Revision #2773.1.2arrow-up-right Sun 2010-03-14 00:11:06 +0300

      • Apply fix by oystein.grovlen@sun.com 2010-03-12:

        • MySQL Bug #48213arrow-up-right Materialized subselect crashes if using GEOMETRY type

        • The problem occurred because during semi-join a materialized table was created which contained a GEOMETRY column, which is a specialized BLOB column. This caused an segmentation fault because such tables will have extra columns, and the semi-join code was not prepared for that.

        • The solution is to disable materialization when Blob/Geometry columns would need to be materialized. Blob columns cannot be used for index look-up anyway, so it does not makes sense to use materialization.

        • This fix implies that it is detected earlier that subquery materialization can not be used. The result of that is that in->exist optimization may be performed for such queries. Hence, extended query plans for such queries had to be updated.

    • Revision #2773.1.1arrow-up-right Sat 2010-03-13 23:04:52 +0300

      • MySQL Bug #45174arrow-up-right: XOR in subqueries produces differing results in 5.1 and 5.4

      • MySQL Bug #50019arrow-up-right: Wrong result for IN-subquery with materialization

        • Fix equality substitution in presense of semi-join materialization, lookup and scan variants (started off from fix by Evgen Potemkin, then modified it to work in all cases)

  • Revision #2775arrow-up-right Sun 2010-03-14 20:55:49 +0300

    • Fix support-files/build-tags to work with recent versions of bazaar.

  • Revision #2774arrow-up-right Sun 2010-03-14 20:54:12 +0300

    • MySQL Bug #43768arrow-up-right: Prepared query with nested subqueries core dumps on second execution

    • Fix two problems:

      1. Let optimize_semijoin_nests() reset sj_nest->sjmat_info irrespectively of value of optimizer_flag. We need this in case somebody has turned optimization off between reexecutions of the same statement.

      2. Do not pull out constant tables out of semi-join nests. The problem is that pullout operation is not undoable, and if a table is constant because it is 1/0-row table it may cease to be constant on the next execution. Note that tables that are constant because of possible eq_ref(const) access will still be pulled out as they are considered functionally-dependent.

  • Revision #2773arrow-up-right Sun 2010-03-07 18:41:45 +0300

    • MySQL Bug #49129arrow-up-right: Wrong result with IN-subquery with join_cache_level=6 and firstmatch=off

      • The problem was that DuplicateWeedout strategy setup code wasn't aware of the fact that join buffering will be used and applied optimization that doesn't work together with join buffering. Fixed by making DuplicateWeedout setup code to have a pessimistic check about whether there is a chance that join buffering will be used.

      • Make JOIN_CACHE_BKA::init() correctly process Copy_field elements that denote saving current rowids in the join buffer.

  • Revision #2772arrow-up-right Sat 2010-03-06 11:14:55 -0800

    • Fixed MySQL Bug #51092arrow-up-right.

      • The function JOIN_CACHE::read_all_record_fields could return 0 for an incremental join cache in two cases:

        1. there were no more records in the associated join buffer

        2. there was no table fields stored in the join buffer.

      • As a result the function JOIN_CACHE::get_record() could return prematurely and did not read all needed fields from join buffers into the record buffer.

      • Now the function JOIN_CACHE::read_all_record_fields returns -1 if there are no more records in the associated join buffer.

  • Revision #2771arrow-up-right Fri 2010-03-05 10:54:48 -0800

    • Corrected Evgen's fix for MySQL Bug #45191arrow-up-right. Made sure that join buffers could be used for inner tables of any semi-join when the first match strategy is employed.

  • Revision #2770arrow-up-right Thu 2010-02-25 08:09:10 +0000

    • Prepare for OJ+SJ handling: Make replace_where_subcondition() not to assume it's working on the WHERE clause.

  • Revision #2769arrow-up-right Wed 2010-02-24 12:33:42 +0100

    • MySQL Bug #49198arrow-up-right Wrong result for second call of procedure with view in subselect.

    • Re-worked fix of Tor Didriksen:

      • The problem was that fix_after_pullout() after semijoin conversion wasn't propagated from the view to the underlying table.

      • On subesequent executions of the prepared statement, we would mark the underlying table as 'dependent' and the predicate anlysis would lead to a different (and illegal) execution plan.

  • Revision #2768arrow-up-right Tue 2010-02-23 11:22:02 +0200

    • Subquery backport: update pbxt suite test results (checked).

  • Revision #2767arrow-up-right Sun 2010-02-21 09:53:12 +0200

    • Fix buildbot failure: take into account that there is no optimizer_switch flag for table elimination in debug builds. (part 2)

  • Revision #2766arrow-up-right Sun 2010-02-21 09:33:54 +0200

    • Fix buildbot failure: take into account that there is no optimizer_switch flag for table elimination in debug builds.

  • Revision #2765arrow-up-right Sun 2010-02-21 08:32:23 +0200

    • Change Field_enumerator to enumerate Item_field-s not Field-s. In Item_ref::fix_fields() do invoke mark_as_dependent() for outside references in all cases (see email for more details)

  • Revision #2764arrow-up-right Sun 2010-02-21 05:36:18 +0200

    • Better self-recursion protection in Item_subselect::fix_fields. Don't go into branch that calls upper_refs.empty() more than once per PREPARE or EXECUTE

    • Avoid crashing when processing references to outside from subquery's HAVING (will explain in more details in email)

  • Revision #2763arrow-up-right Sat 2010-02-20 11:23:29 +0300

    • Fix Item_subselect::update_used_tables() and fix_after_pullout() to work with prepared statements: re-collect list of upper refs on every PS re-execution.

  • Revision #2762arrow-up-right Thu 2010-02-18 01:54:59 +0300

    • Subquery backport: update test results (checked).

  • Revision #2761arrow-up-right Thu 2010-02-18 00:59:41 +0300

    • Subquery optimizations backport: fix test failures, update test results.

  • Revision #2760arrow-up-right Wed 2010-02-17 13:47:55 +0300

    • Subquery backport:

      • More test results updates (checked)

  • Revision #2759arrow-up-right Wed 2010-02-17 13:05:27 +0300

    • Subquery optimizations backport:

      • Update test results

      • More comments

      • Add Item_in_optimizer::transform() which was lost in backport

  • Revision #2758arrow-up-right Tue 2010-02-16 00:53:06 +0300

    • Subquery optimization backport:

      • Factor out subquery code into sql/opt_subselect.{h,cc}

      • Stop using the term "confluent" (was used due to misreading the dictionary)

  • Revision #2757arrow-up-right Fri 2010-02-12 21:10:41 +0300

    • Fix for previous cset

  • Revision #2756arrow-up-right Fri 2010-02-12 02:59:58 +0300

    • MySQL Bug #31480arrow-up-right: Incorrect result for nested subquery when executed via semi join

      • Variant #3 of the fix. It also

        • Unifies code with table elimination's

        • is able to handle FROM-subquery pullout.

  • Revision #2755arrow-up-right Fri 2010-02-12 01:31:18 +0300

    • Subquery optimizations: backport: enable disabled subquery code in BKA

  • Revision #2754arrow-up-right Fri 2010-02-12 01:00:36 +0300

    • Subquery optimizations: backport

      • Fix valgrind failure: do initialize Item::is_expensive_cache.

  • Revision #2753arrow-up-right Fri 2010-02-12 00:59:32 +0300

    • Subquery optimizations backport: Update test results (checked)

  • Revision #2752arrow-up-right Fri 2010-02-12 00:58:23 +0300

    • Apply Jorgen Loland's fix: MySQL Bug #45221arrow-up-right: Query "SELECT pk FROM C WHERE pk IN (SELECT int_key)" failing

      • XOR conditions are not optimized, and Item_cond_xor therefore acts like type Func_item even though it inherits from Item_cond. A subtle difference between Item_func and Item_cond is that you can get the children Items from the former by calling arguments(), and from the latter by calling argument_list(). However, since Item_cond_xor inherits from Item_cond, arguments() did not return any Items.

      • The fact that Item_cond_xor::arguments() did not return it's children items lead to a problem for make_cond_for_index(); the method accepted that XOR items on unindexed columns were pushed using ICP. ICP evaluation of non-indexed columns does not (and should not) work.

      • The fix for this bug is to make Item_cond_xor return it's children items when the arguments() method is used. This makes Item_cond_xor behave more like Item_func and in turn allows make_cond_for_index() to discover any conflicting children Items.

      • This is a temporary fix and should be removed when Item_cond_xor is optimized.

  • Revision #2751arrow-up-right Fri 2010-02-12 00:56:02 +0300

    • Subquery backport: Update test results (checked)

  • Revision #2750arrow-up-right Fri 2010-02-12 00:54:56 +0300

    • Subquery optimization backport: Duplicate Elimination: process temporary table overflow correctly.

  • Revision #2749arrow-up-right Thu 2010-01-28 16:48:33 +0300

    • Subquery optimizations: non-semijoin materialization

      • Backport into Maria DB 5.3, part 1

  • Revision #2748arrow-up-right Tue 2010-01-19 01:32:23 +0300

    • Subquery optimizations: Backport into 5.3:

      • Enable semi-join handling in the join cache code

  • Revision #2747arrow-up-right Sun 2010-01-17 23:52:20 +0300

    • Subquery optimizations, backport to 5.3:

      • Fix valgrind failure

      • Test result fixes (not finished)

  • Revision #2746arrow-up-right Sun 2010-01-17 18:01:59 +0300

    • Fix incorrect merge

  • Revision #2745arrow-up-right [merge] Sun 2010-01-17 17:55:08 +0300

  • Revision #2744arrow-up-right Sun 2010-01-17 17:51:10 +0300

    • Backport of subquery optimizations to 5.3. There are still test failures because of:

      • Wrong query results in outer join + semi join

      • EXPLAIN output differences

  • Revision #2743arrow-up-right Sun 2009-12-27 23:24:22 +0300

    • DS-MRR backport: fix buildbot valgrind failures:

      • Do call update_used_tables() for new conditions obtained when adding outer join's triggered conditions. Correct values of used_tables() are now needed for condition pushdown.

      • Update test results

  • Revision #2742arrow-up-right [merge] Tue 2009-12-22 07:18:49 -0800

  • Revision #2741arrow-up-right Tue 2009-12-22 07:12:09 -0800

    • Added the include files needed for join_cache.test.

  • Revision #2740arrow-up-right [merge] Mon 2009-12-21 10:34:47 -0800

  • Revision #2739arrow-up-right Sun 2009-12-20 18:26:15 -0800

    • Backport into MariaDB-5.2 the following:WL#2771arrow-up-right "Block Nested Loop Join and Batched Key Access Join"

  • Revision #2738arrow-up-right Wed 2009-12-16 12:28:51 +0300

    • DS-MRR backport:

      • Fix PBXT test results (PBXT doesn't support MRR or ICP, but we get result diffs because we've also backported a fix that

        • prints out "Using where" when the table has part of WHERE that it has got from LEFT JOIN's ON expression

        • Does a better job at removing equalities that are guaranteed to be true by use of ref acccess.

  • Revision #2737arrow-up-right Wed 2009-12-16 01:37:39 +0300

    • Add ds_mrr.cc to CMakeLists.txt

  • Revision #2736arrow-up-right Wed 2009-12-16 00:35:55 +0300

    • Fix compile failure

  • Revision #2735arrow-up-right Tue 2009-12-15 20:23:55 +0300

    • Backport into MariaDB-5.2 the following:

      • MWL#2474arrow-up-right "Multi Range Read: Change the default MRR implementation to implement new MRR interface"

      • MWL#2475arrow-up-right "Batched range read functions for MyISAM/InnoDb" "Index condition pushdown for MyISAM/InnoDB"

        • Adjust test results (checked)

        • Code cleanup.

  • Revision #2734arrow-up-right Tue 2009-12-15 17:53:30 +0300

    • Backport into MariaDB-5.2 the following:

      • MWL#2474arrow-up-right "Multi Range Read: Change the default MRR implementation to implement new MRR interface"

      • MWL#2475arrow-up-right "Batched range read functions for MyISAM/InnoDb" "Index condition pushdown for MyISAM/InnoDB"

      • Fix valgrind failures

  • Revision #2733arrow-up-right Tue 2009-12-15 10:16:46 +0300

    • Backport into MariaDB-5.2 the following:

      • MWL#2474arrow-up-right "Multi Range Read: Change the default MRR implementation to implement new MRR interface"

      • MWL#2475arrow-up-right "Batched range read functions for MyISAM/InnoDb" "Index condition pushdown for MyISAM/InnoDB"

      • Igor's fix from sp1r-igor@olga.mysql.com-20080330055902-07614: There could be observed the following problems:

        1. EXPLAIN did not mention pushdown conditions from on expressions in the 'extra' column. As a result if a query had no where conditions pushed down to a table, but had on conditions pushed to this table the 'extra' column in the EXPLAIN for the table missed 'using where'.

        2. Conditions for ref access were not eliminated from on expressions though such conditions were eliminated from the where condition.

MariaDB 5.3.0 Changelog — page:[1](mariadb-530-changelog.md)[2](mariadb-530-changelog-p2.md)[3](mariadb-530-changelog-p3.md)[4](mariadb-530-changelog-p4.md)[5](mariadb-530-changelog-p5.md) 6

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?