1. 15 May, 2009 5 commits
    • Alexey Kopytov's avatar
      Automerge. · 188a1e48
      Alexey Kopytov authored
      188a1e48
    • Alexey Kopytov's avatar
      Automerge. · 5de9d968
      Alexey Kopytov authored
      5de9d968
    • Alexey Kopytov's avatar
      Bug #44792: valgrind warning when casting from time to time · 81f2782b
      Alexey Kopytov authored
       
      Field_time::get_time() did not initialize some members of 
      MYSQL_TIME which led to valgrind warnings when those members 
      were accessed in Protocol_simple::store_time(). 
       
      It is unlikely that this bug could result in wrong data 
      being returned, since Field_time::get_time() initializes the 
      'day' member of MYSQL_TIME to 0, so the value of 'day' 
      in Protocol_simple::store_time() would be 0 regardless 
      of the values for 'year' and 'month'.
      
      mysql-test/r/type_time.result:
        Added a test case for bug #44792.
      mysql-test/t/type_time.test:
        Added a test case for bug #44792.
      sql/field.cc:
        Field_time::get_time() did not initialize some members of 
        MYSQL_TIME which led to valgrind warnings when those members 
        were accessed in Protocol_simple::store_time().
      81f2782b
    • Sergey Glukhov's avatar
      5.0-bugteam->5.1-bugteam merge · 58538d75
      Sergey Glukhov authored
      58538d75
    • Sergey Glukhov's avatar
      Bug#43612 crash with explain extended, union, order by · e5a22cc2
      Sergey Glukhov authored
      In UNION if we use last SELECT without braces and this
      SELECT have ORDER BY clause, such clause belongs to
      global UNION. It is parsed like last SELECT
      part and used further as 'unit->global_parameters->order_list' value.
      During DESCRIBE EXTENDED we call select_lex->print_order() for
      last SELECT where order fields refer to tmp table 
      which already freed. It leads to crash.
      The fix is clean up global_parameters->order_list
      instead of fake_select_lex->order_list.
      
      
      mysql-test/r/union.result:
        test result
      mysql-test/t/union.test:
        test case
      sql/sql_union.cc:
        In UNION if we use last SELECT without braces and this
        SELECT have ORDER BY clause, such clause belongs to
        global UNION. It is parsed like last SELECT
        part and used further as 'unit->global_parameters->order_list' value.
        During DESCRIBE EXTENDED we call select_lex->print_order() for
        last SELECT where order fields refer to tmp table 
        which already freed. It leads to crash.
        The fix is clean up global_parameters->order_list
        instead of fake_select_lex->order_list.
      e5a22cc2
  2. 14 May, 2009 7 commits
  3. 13 May, 2009 6 commits
  4. 12 May, 2009 5 commits
    • Jim Winstead's avatar
      Merge in approved bug-fixes · 9d764856
      Jim Winstead authored
      9d764856
    • Jim Winstead's avatar
      Merge from 5.0-bugteam · 0acb89dd
      Jim Winstead authored
      0acb89dd
    • Gleb Shchepa's avatar
      Bug #44290: explain crashes for subquery with distinct in · 555cbdb7
      Gleb Shchepa authored
                  SQL_SELECT::test_quick_select
      
      The crash was caused by an incomplete cleanup of JOIN_TAB::select
      during the filesort of rows for GROUP BY clause inside a subquery.
      Queries where a quick index access is replaced with filesort was
      was affected. For example:
      
        SELECT 1 FROM
          (SELECT COUNT(DISTINCT c1) FROM t1
             WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x
      
      Quick index access related data in the SQL_SELECT::test_quick_select
      function was inconsistent after an incomplete cleanup.
      This function has been completed to prevent crashes in the
      SQL_SELECT::test_quick_select function.
      
      
      mysql-test/include/mix1.inc:
        Add test case for bug #44290.
      mysql-test/r/innodb_mysql.result:
        Add test case for bug #44290.
      sql/sql_select.cc:
        Bug #44290: explain crashes for subquery with distinct in
                    SQL_SELECT::test_quick_select
        
        Quick index access related data in the SQL_SELECT::test_quick_select
        function was inconsistent after an incomplete cleanup.
        This function has been completed to prevent crashes in the
        SQL_SELECT::test_quick_select function.
      555cbdb7
    • Luis Soares's avatar
      BUG#42749: infinite loop writing to row based binlog - processlist shows · 1d406fba
      Luis Soares authored
      "freeing items"
      
      The calculation of the table map log event in the event constructor
      was one byte shorter than what would be actually written. This would
      lead to a mismatch between the number of bytes written and the event
      end_log_pos, causing bad event alignment in the binlog (corrupted
      binlog) or in the transaction cache while fixing positions
      (MYSQL_BIN_LOG::write_cache). This could lead to impossible to read
      binlog or even infinite loops in MYSQL_BIN_LOG::write_cache.
      
      This patch addresses this issue by correcting the expected event
      length in the Table_map_log_event constructor, when the field metadata
      size exceeds 255.
      
      sql/log_event.cc:
        Added the extra byte as net_store_length imposes.
      1d406fba
    • Ramil Kalimullin's avatar
      Fix for bug#44774: load_file function produces valgrind warnings · 9a3cf78b
      Ramil Kalimullin authored
      Problem: using LOAD_FILE() in some cases we pass a file name string
      without a trailing '\0' to fn_format() which relies on that however.
      That may lead to valgrind warnings.
      
      Fix: add a trailing '\0' to the file name passed to fn_format().
      
      
      mysql-test/r/func_str.result:
        Fix for bug#44774: load_file function produces valgrind warnings
          - test result.
      mysql-test/t/func_str.test:
        Fix for bug#44774: load_file function produces valgrind warnings
          - test case.
      sql/item_strfunc.cc:
        Fix for bug#44774: load_file function produces valgrind warnings
          - passing a file name to fn_format(), file_name->c_ptr() replaced
            with file_name->c_ptr_safe() to ensure we have a trailing '\0'.
      9a3cf78b
  5. 11 May, 2009 3 commits
    • Davi Arnaut's avatar
      Bug#44664: valgrind warning for COMMIT_AND_CHAIN and ROLLBACK_AND_CHAIN · 49d006a5
      Davi Arnaut authored
      The problem is that the internal variable used to specify a
      transaction with consistent read was being used outside the
      processing context of a START TRANSACTION WITH CONSISTENT
      SNAPSHOT statement. The practical consequence was that a
      consistent snapshot specification could leak to unrelated
      transactions on the same session.
      
      The solution is to ensure a consistent snapshot clause is
      only relied upon for the START TRANSACTION statement.
      
      This is already fixed in a similar way on 6.0.
      
      mysql-test/r/consistent_snapshot.result:
        Add test case result for Bug#44664
      mysql-test/t/consistent_snapshot.test:
        Add test case for Bug#44664
      sql/sql_parse.cc:
        The WITH CONSISTENT SNAPSHOT clause is only valid for the
        START TRANSACTION statement.
      49d006a5
    • Mats Kindahl's avatar
      Merging with 5.1-bugteam tree. · 0a99b633
      Mats Kindahl authored
      0a99b633
    • Mats Kindahl's avatar
      Bug #44442: Incident events are silent in mysqlbinlog output · 014dc99c
      Mats Kindahl authored
            
      In the output from mysqlbinlog, incident log events were
      represented as just a comment. Since the incident log event
      represents an incident that could cause the contents of the
      database to change without being logged to the binary log,
      it means that if the SQL is applied to a server, it could
      potentially lead to that the databases are out of sync.
      
      In order to handle that, this patch adds the statement "RELOAD
      DATABASE" to the SQL output for the incident log event. This will
      require a DBA to edit the file and handle the case as apropriate
      before applying the output to a server.
      
      mysql-test/suite/binlog/t/binlog_incident-master.opt:
        Options file to cause server to generate an incident log
        event when executing a REPLACE.
      mysql-test/suite/binlog/t/binlog_incident.test:
        Test to check that the incident log event is represented
        correctly in the output from mysqlbinlog.
      sql/log_event.cc:
        The incident log event now ouput a "RELOAD DATABASE" instead
        of just a comment. RELOAD DATABASE is not an existing command
        and will generate a syntax error.
      014dc99c
  6. 10 May, 2009 2 commits
    • Ramil Kalimullin's avatar
      Manual merge. · d14d473c
      Ramil Kalimullin authored
      d14d473c
    • Ramil Kalimullin's avatar
      Fix for bug#42009: SELECT into variable gives different results to direct SELECT · 000049f0
      Ramil Kalimullin authored
      Problem: storing "SELECT ... INTO @var ..." results in variables we used val_xxx()
      methods which returned results of the current row. 
      So, in some cases (e.g. SELECT DISTINCT, GROUP BY or HAVING) we got data
      from the first row of a new group (where we evaluate a clause) instead of
      data from the last row of the previous group.
      
      Fix: use val_xxx_result() counterparts to get proper results.
      
      
      mysql-test/r/distinct.result:
        Fix for bug#42009: SELECT into variable gives different results to direct SELECT
          - results adjusted.
      mysql-test/r/user_var.result:
        Fix for bug#42009: SELECT into variable gives different results to direct SELECT
          - test result.
      mysql-test/t/user_var.test:
        Fix for bug#42009: SELECT into variable gives different results to direct SELECT
          - test case.
      sql/item_func.cc:
        Fix for bug#42009: SELECT into variable gives different results to direct SELECT
          - Item_func_set_user_var::save_item_result() added to evaluate and store 
            an item's result into a user variable.
      sql/item_func.h:
        Fix for bug#42009: SELECT into variable gives different results to direct SELECT
          - Item_func_set_user_var::save_item_result() added to evaluate and store 
            an item's result into a user variable.
      sql/sql_class.cc:
        Fix for bug#42009: SELECT into variable gives different results to direct SELECT
          - use Item_func_set_user_var::save_item_result() to store results into user 
            variables.
      000049f0
  7. 08 May, 2009 10 commits
  8. 07 May, 2009 2 commits