1. 23 Jan, 2013 2 commits
  2. 22 Jan, 2013 1 commit
  3. 21 Jan, 2013 4 commits
  4. 22 Jan, 2013 1 commit
  5. 21 Jan, 2013 2 commits
  6. 20 Jan, 2013 4 commits
  7. 19 Jan, 2013 2 commits
  8. 18 Jan, 2013 5 commits
  9. 17 Jan, 2013 1 commit
    • Michael Widenius's avatar
      Don't reset maybe_null in update_used_tables(); This breaks ROLLUP · c65f9a19
      Michael Widenius authored
      This fixed failing test in group_by.test
      
      mysql-test/r/join_outer.result:
        Updated test case
      mysql-test/r/join_outer_jcl6.result:
        Updated test case
      sql/item.cc:
        Don't reset maybe_null in update_used_tables(); This breaks ROLLUP
      sql/item.h:
        Don't reset maybe_null in update_used_tables(); This breaks ROLLUP
      sql/item_cmpfunc.h:
        Don't reset maybe_null in update_used_tables(); This breaks ROLLUP
      c65f9a19
  10. 16 Jan, 2013 3 commits
  11. 17 Jan, 2013 2 commits
    • unknown's avatar
      MDEV-3900 Optimizer difference between MySQL and MariaDB with stored functions... · d51f96b1
      unknown authored
      MDEV-3900 Optimizer difference between MySQL and MariaDB with stored functions in WHERE clause of UPDATE or DELETE statements
      
      Analysis
      The reason for the less efficient plan was result of a prior design decision -
      to limit the eveluation of constant expressions during optimization to only
      non-expensive ones. With this approach all stored procedures were considered
      expensive, and were not evaluated during optimization. As a result, SPs didn't
      participate in range optimization, which resulted in a plan with table scan
      rather than index range scan.
      
      Solution
      Instead of considering all SPs expensive, consider expensive only those SPs
      that are non-deterministic. If an SP is deterministic, the optimizer will
      checj if it is constant, and may eventually evaluate it during optimization.
      
      d51f96b1
    • unknown's avatar
      backport of: · 8a296e6c
      unknown authored
      Don't reset maybe_null in update_used_tables(); This breaks ROLLUP
      This fixed failing test in group_by.test
      8a296e6c
  12. 16 Jan, 2013 3 commits
  13. 15 Jan, 2013 9 commits
  14. 14 Jan, 2013 1 commit
    • unknown's avatar
      Fix for bug MDEV-3992 · cf79c01c
      unknown authored
      Analysis:
        The crash is a result of incorrect analysis of whether a secondary key
        can be extended with a primary in order to compute ORDER BY. The analysis
        is done in test_if_order_by_key(). This function doesn't take into account
        that the primary key may in fact index the same columns as the secondary
        key. For the test query test_if_order_by_key says that there is an extended
        key with total 2 keyparts.
        At the same time, the condition
          if (pkinfo->key_part[i].field->key_start.is_set(nr))
        in test_if_cheaper_oredring() becomes true for (i == 0), which results in
        an invalid access to rec_per_key[-1].
        
      Solution:
        The best solution would be to reuse KEY::ext_key_parts that is already computed
        by open_binary_frm(), however after detailed analysis the conclusion is that
        the change would be too intrusive for a GA release.
        The solution for 5.5 is to add a guard for the case when the 0-th key part is
        considered, and to assume that all keys will be scanned in this case.
      cf79c01c