1. 26 Feb, 2010 5 commits
    • Alexey Kopytov's avatar
      Manual merge from mysql-5.1-bugteam to mysql-trunk-merge. · 8266ebbe
      Alexey Kopytov authored
      Conflicts:
      
      Text conflict in scripts/Makefile.am
      Text conflict in sql/share/Makefile.am
      8266ebbe
    • Sergey Glukhov's avatar
      automerge · 80303d7e
      Sergey Glukhov authored
      80303d7e
    • Sergey Glukhov's avatar
      Bug#50995 Having clause on subquery result produces incorrect results. · 7fd2461c
      Sergey Glukhov authored
      The problem is that cond->fix_fields(thd, 0) breaks
      condition(cuts off 'having'). The reason of that is
      that NULL valued Item pointer is present in the
      middle of Item list and it breaks the Item processing
      loop.
      
      
      mysql-test/r/having.result:
        test case
      mysql-test/t/having.test:
        test case
      sql/item_cmpfunc.h:
        added ASSERT to make sure that we do not add NULL valued Item pointer
      sql/sql_select.cc:
        skip adding an item to condition if Item pointer is NULL.
        skip adding a list to condition if this list is empty.
      7fd2461c
    • Evgeny Potemkin's avatar
      Auto-merged fox for the bug#50843. · 97e5e12a
      Evgeny Potemkin authored
      97e5e12a
    • Evgeny Potemkin's avatar
      Bug#50843: Filesort used instead of clustered index led to · 09d5f8b7
      Evgeny Potemkin authored
      performance degradation.
      
      Filesort + join cache combination is preferred to full index scan because it
      is usually faster. But it's not the case when the index is clustered one.
      
      Now test_if_skip_sort_order function prefers filesort only if index isn't
      clustered.
      
      mysql-test/r/innodb_mysql.result:
        Added a test case for the bug#50843.
      mysql-test/t/innodb_mysql.test:
        Added a test case for the bug#50843.
      sql/sql_select.cc:
        Bug#50843: Filesort used instead of clustered index led to
        performance degradation.
        Now test_if_skip_sort_order function prefers filesort only if index isn't
        clustered.
      09d5f8b7
  2. 25 Feb, 2010 5 commits
    • Gleb Shchepa's avatar
      Bug #45360: wrong results · ebaba11c
      Gleb Shchepa authored
      Propagation of a large unsigned numeric constant
      in the WHERE expression led to wrong result.
      
      For example,
      "WHERE a = CAST(0xFFFFFFFFFFFFFFFF AS USIGNED) AND FOO(a)",
      where a is an UNSIGNED BIGINT, and FOO() accepts strings,
      was transformed to "... AND FOO('-1')".
      
      That has been fixed.
      
      Also EXPLAIN EXTENDED printed incorrect numeric constants in
      transformed WHERE expressions like above. That has been
      fixed too.
      
      
      mysql-test/r/bigint.result:
        Added test case for bug #45360.
      mysql-test/t/bigint.test:
        Added test case for bug #45360.
      sql/item.cc:
        Bug #45360: wrong results
        
        As far as Item_int_with_ref (and underlaying Item_int)
        class accepts both signed and unsigned 64bit values,
        Item_int::val_str and Item_int::print methods have been
        modified to take into account unsigned_flag.
      ebaba11c
    • Alexey Kopytov's avatar
      Automerge. · c50098c9
      Alexey Kopytov authored
      c50098c9
    • Alexey Kopytov's avatar
      Bug #50335: Assertion `!(order->used & map)' in eq_ref_table · f380b946
      Alexey Kopytov authored
       
      The problem was in an incorrect debug assertion. The expression 
      used in the failing assertion states that when finding 
      references matching ORDER BY expressions, there can be only one 
      reference to a single table. But that does not make any sense, 
      all test cases for this bug are valid examples with multiple 
      identical WHERE expressions referencing the same table which
      are also present in the ORDER BY list. 
       
      Fixed by removing the failing assertion. We also have to take 
      care of the 'found' counter so that we count multiple 
      references only once. We rely on this fact later in 
      eq_ref_table(). 
      
      mysql-test/r/join.result:
        Added a test case for bug #50335.
      mysql-test/t/join.test:
        Added a test case for bug #50335.
      sql/sql_select.cc:
        Removing the assertion in eq_ref_table() as it does not make
        any sense. We also have to take care of the 'found' counter so 
        that we count multiple references only once. We rely on this 
        fact later in eq_ref_table().
      f380b946
    • Georgi Kodinov's avatar
      merge · 375ce0e5
      Georgi Kodinov authored
      375ce0e5
    • Georgi Kodinov's avatar
      1f17562f
  3. 24 Feb, 2010 3 commits
  4. 23 Feb, 2010 4 commits
  5. 22 Feb, 2010 9 commits
    • Timothy Smith's avatar
      auto-merge · 18cd726c
      Timothy Smith authored
      18cd726c
    • Timothy Smith's avatar
      auto-merge · 5a122d3b
      Timothy Smith authored
      5a122d3b
    • Timothy Smith's avatar
      auto-merge · bfd2e9d9
      Timothy Smith authored
      bfd2e9d9
    • Tatiana A. Nurnberg's avatar
      auto-merge · 33acac56
      Tatiana A. Nurnberg authored
      33acac56
    • Tatiana A. Nurnberg's avatar
      revert 48525 · 27d7b276
      Tatiana A. Nurnberg authored
      27d7b276
    • Bjorn Munch's avatar
      merge from 5.1-mtr · aae3c0fc
      Bjorn Munch authored
      aae3c0fc
    • Staale Smedseng's avatar
      Bug #43414 Parenthesis (and other) warnings compiling · 01995d1b
      Staale Smedseng authored
      MySQL with gcc 4.3.2
            
      This is the final patch in the context of this bug. 
      
      cmd-line-utils/readline/rlmbutil.h:
        Changed in a previous patch, reverted by a backport.
      cmd-line-utils/readline/text.c:
        Static var initialization.
      extra/yassl/include/yassl_error.hpp:
        SetErrorString handles errors outside of the YasslError
        enum.
      extra/yassl/src/ssl.cpp:
        SetErrorString handles errors outside of the YasslError
        enum.
      extra/yassl/src/yassl_error.cpp:
        SetErrorString handles errors outside of the YasslError
        enum.
      01995d1b
    • Tatiana A. Nurnberg's avatar
      auto-merge · d5db06e8
      Tatiana A. Nurnberg authored
      d5db06e8
    • Luis Soares's avatar
      Post-push fix for BUG#50364. · 3968a1b0
      Luis Soares authored
      There was an erroneous parameter when calling flush_master_info
      from write_ignored_events_info_to_relay_log which could lead to a
      server crash. This happens because the I/O thread releases the
      log_lock before calling the flush_master_info.
      
      Set the function to call flush_master_info with third parameter
      to true, so that the mutex is properly taken.
      3968a1b0
  6. 21 Feb, 2010 1 commit
  7. 20 Feb, 2010 5 commits
  8. 19 Feb, 2010 4 commits
    • Serge Kozlov's avatar
      Bug#48308. Post-fix · de403b15
      Serge Kozlov authored
      Removed --remove_file in cleanup procedure
      de403b15
    • Tatiana A. Nurnberg's avatar
      manual merge · c9c45cae
      Tatiana A. Nurnberg authored
      c9c45cae
    • Tatiana A. Nurnberg's avatar
      Bug#49487: crash with explain extended and group_concat in a derived table · 09a58105
      Tatiana A. Nurnberg authored
      When EXPLAIN EXTENDED tries to print column names, it checks whether the
      referenced table is CONST (in which case, the column's value rather than
      its name will be printed). If no proper table is reference (i.e. because
      a derived table was used that has since gone out of scope), this will fail
      spectacularly.
      
      This ports an equivalent of the fix for Bug 43354.
      
      mysql-test/r/func_gconcat.result:
        Show that EXPLAIN EXTENDED on a GROUP_CONCAT() on a derived table
        no longer crashes the server.
      mysql-test/t/func_gconcat.test:
        Show that EXPLAIN EXTENDED on a GROUP_CONCAT() on a derived table
        no longer crashes the server.
      sql/item_sum.cc:
        Do not de-ref what cannot be, that is, temp-tables that have gone away.
        This is of questionable utility anyway, since our deref has the sole
        purpose of checking whether the table is const (in which case, we'll
        substitute the column with its value in EXPLAIN EXTENDED - that is all).
      09a58105
    • Bjorn Munch's avatar
  9. 18 Feb, 2010 3 commits
    • Tatiana A. Nurnberg's avatar
      Bug#48525: trigger changes "Column 'id' cannot be null" behaviour · 4169e9f3
      Tatiana A. Nurnberg authored
      CHECK_FIELD_IGNORE was treated as CHECK_FIELD_ERROR_FOR_NULL;
      UPDATE...SET...NULL on NOT NULL fields behaved differently after
      a trigger.
      
      Now distinguishes between IGNORE and ERROR_FOR_NULL and save/restores
      check-field options.
      
      mysql-test/r/trigger.result:
        Show that UPDATE...SET...NULL on NOT NULL columns doesn't behave differently
        when run after a trigger.
      mysql-test/t/trigger.test:
        Show that UPDATE...SET...NULL on NOT NULL columns doesn't behave differently
        when run after a trigger.
      sql/field_conv.cc:
        CHECK_FIELD_IGNORE was treated as CHECK_FIELD_ERROR_FOR_NULL.
        Distinguish between the two.
      sql/sp_head.cc:
        raise error as needed
      sql/sql_class.cc:
        Save and restore check-fields options.
      sql/sql_class.h:
        Make room so we can save check-fields options.
      sql/sql_insert.cc:
        raise error as needed
      4169e9f3
    • Georgi Kodinov's avatar
      Bug #51049: main.bug39022 fails in mysql-trunk-merge · e828bad0
      Georgi Kodinov authored
      Fixed the test to behave correctly with ps-protocol
      and binlog format row.
      e828bad0
    • Bjorn Munch's avatar
      upmerge 51135 · b3beebe9
      Bjorn Munch authored
      b3beebe9
  10. 17 Feb, 2010 1 commit