1. 26 Aug, 2010 1 commit
  2. 25 Aug, 2010 2 commits
  3. 24 Aug, 2010 1 commit
    • Alexey Kopytov's avatar
      Bug #54802: 'NOT BETWEEN' evaluation is incorrect · 756076bd
      Alexey Kopytov authored
      Queries involving predicates of the form "const NOT BETWEEN
      not_indexed_column AND indexed_column" could return wrong data
      due to incorrect handling by the range optimizer.
      
      For "c NOT BETWEEN f1 AND f2" predicates, get_mm_tree()
      produces a disjunction of the SEL_ARG trees for "f1 > c" and
      "f2 < c". If one of the trees is empty (i.e. one of the
      arguments is not sargable) the resulting tree should be empty
      as well, since the whole expression in this case is not
      sargable.
      
      The above logic is implemented in get_mm_tree() as follows. The
      initial state of the resulting tree is NULL (aka empty). We
      then iterate through arguments and compute the corresponding
      SEL_ARG tree (either "f1 > c" or "f2 < c"). If the resulting
      tree is NULL, it is simply replaced by the generated
      tree. Otherwise it is replaced by a disjunction of itself and
      the generated tree. The obvious flaw in this implementation is
      that if the first argument is not sargable and thus produces a
      NULL tree, the resulting tree will simply be replaced by the
      tree for the second argument. As a result, "c NOT BETWEEN f1
      AND f2" will end up as just "f2 < c".
      
      Fixed by adding a check so that when the first argument
      produces an empty tree for the NOT BETWEEN case, the loop is
      aborted with an empty tree as a result. The whole idea of using
      a loop for 2 arguments does not make much sense, but it was
      probably used to avoid code duplication for several BETWEEN
      variants.
      756076bd
  4. 20 Aug, 2010 6 commits
  5. 19 Aug, 2010 4 commits
  6. 18 Aug, 2010 2 commits
    • 's avatar
      The patch is 5.1 part of the worklog. It is for 5.1 only. · b37c8a7a
      authored
      So null merge.
      b37c8a7a
    • 's avatar
      WL#5370 Keep forward-compatibility when changing · b766a51f
      authored
              'CREATE TABLE IF NOT EXISTS ... SELECT' behaviour
      BUG#55474, BUG#55499, BUG#55598, BUG#55616 and BUG#55777 are fixed
      in this patch too.
      
      This is the 5.1 part.
      It implements:
      - if the table exists, binlog two events: CREATE TABLE IF NOT EXISTS
        and INSERT ... SELECT
      
      - Insert nothing and binlog nothing on master if the existing object
        is a view. It only generates a warning that table already exists.
      b766a51f
  7. 17 Aug, 2010 1 commit
  8. 16 Aug, 2010 3 commits
  9. 13 Aug, 2010 3 commits
    • Georgi Kodinov's avatar
      Bug #55565: debug assertion when ordering by expressions with user · b6e3adf1
      Georgi Kodinov authored
      variable assignments
      
      The assert() that is firing is checking if expressions that can't be
      null return a NULL when evaluated.
      MAKEDATE() function can return NULL if the second argument is 
      less then or equal to 0. Thus its nullability depends not only on 
      the nullability of its arguments but also on their values.
      Fixed by (overoptimistically) setting MAKEDATE() to be nullable 
      despite the nullability of its arguments.
      Test added.
      Had to update one test result to reflect the metadata change.
      b6e3adf1
    • Alexander Nozdrin's avatar
      Disable test cases due to Bug 55966. · 496e1fb4
      Alexander Nozdrin authored
      496e1fb4
    • Georgi Kodinov's avatar
      Bug #55580 : segfault in read_view_sees_trx_id · 12f7d57d
      Georgi Kodinov authored
      The server was not checking for errors generated during
      the execution of Item::val_xxx() methods when copying
      data to the group, order, or distinct temp table's row.
      Fixed by extending the copy_funcs() to return an error
      code and by checking for that error code on the places
      copy_funcs() is called. 
      Test case added.
      12f7d57d
  10. 12 Aug, 2010 3 commits
  11. 11 Aug, 2010 1 commit
  12. 12 Aug, 2010 1 commit
  13. 11 Aug, 2010 2 commits
  14. 10 Aug, 2010 5 commits
    • Jonathan Perkin's avatar
      Merge to mysql-5.5-bugfixing · 66972aa2
      Jonathan Perkin authored
      66972aa2
    • Georgi Kodinov's avatar
      merge · 59c59c7a
      Georgi Kodinov authored
      59c59c7a
    • Georgi Kodinov's avatar
      merge · 11b1c9b7
      Georgi Kodinov authored
      11b1c9b7
    • Georgi Kodinov's avatar
      Bug #55809: Server README not current · 5781bfa2
      Georgi Kodinov authored
      Updated the README file.
      5781bfa2
    • Alfranio Correia's avatar
      BUG#50312 Warnings for unsafe sub-statement not returned to client · bd3aa7eb
      Alfranio Correia authored
                              
      After BUG#36649, warnings for sub-statements are cleared when a 
      new sub-statement is started. This is problematic since it suppresses
      warnings for unsafe statements in some cases. It is important that we
      always give a warning to the client, because the user needs to know
      when there is a risk that the slave goes out of sync.
                              
      We fixed the problem by generating warning messages for unsafe statements
      while returning from a stored procedure, function, trigger or while
      executing a top level statement.
                              
      We also started checking unsafeness when both performance and log tables are
      used. This is necessary after the performance schema which does a distinction
      between performance and log tables.
      bd3aa7eb
  15. 09 Aug, 2010 5 commits