1. 27 Jul, 2009 4 commits
  2. 26 Jul, 2009 1 commit
    • Luis Soares's avatar
      BUG#43046: mixed mode switch to row format with temp table lead · 8357c993
      Luis Soares authored
                 to wrong result
            
      When using MIXED mode and issuing 'CREATE TEMPORARY TABLE t_tmp',
      the statement is logged if the current binlogging mode is
      STATEMENT. This causes the slave to replay the instruction and
      create the temporary table as well. If there is no switch to ROW
      mode, and later on a 'DROP TEMPORARY TABLE t_tmp' is issued, then
      this statement will also be logged and the slave will
      remove/close the temporary table.
            
      However, if there is a switch to ROW mode between the CREATE and
      DROP TEMPORARY table, the DROP statement will not be logged,
      leaving the slave with a dangling temporary table.
            
      This patch addresses this, by always logging a DROP TEMPORARY
      TABLE IF EXISTS when in mixed mode and a drop statement is issued
      for temporary table(s).
      
      mysql-test/suite/rpl/r/rpl_temp_table_mix_row.result:
        Updated result file.
      mysql-test/suite/rpl/t/rpl_temp_table_mix_row.test:
        Added test case.
      sql/sql_table.cc:
        When dropping table(s) in mixed mode and current statement 
        logging is ROW, builds an extra DROP TEMPORARY TABLE IF 
        EXISTS for temporary tables that are being dropped. Later, 
        it logs the extra drop statement.
      8357c993
  3. 24 Jul, 2009 16 commits
    • Davi Arnaut's avatar
      Bug#43587: Putting event_scheduler=1 in init SQL file crashes · 2f4ca9a2
      Davi Arnaut authored
      mysqld
      
      The problem was that enabling the event scheduler inside a init
      file caused the server to crash upon start-up. The crash occurred
      because the event scheduler wasn't being initialized before the
      commands in the init-file are processed.
      
      The solution is to initialize the event scheduler before the init
      file is read. The patch also disables the event scheduler during
      bootstrap and makes the bootstrap operation robust in the
      presence of background threads.
      
      mysql-test/std_data/init_file.dat:
        Add test case for Bug#43587
      sql/event_scheduler.cc:
        Signal that the thread_count has been decremented.
      sql/events.cc:
        Disable the event scheduler during bootstrap.
      sql/mysql_priv.h:
        Export variable.
      sql/mysqld.cc:
        Initialize the event scheduler before commands are executed.
      sql/sql_parse.cc:
        Signal that the bootstrap thread is done.
      2f4ca9a2
    • Konstantin Osipov's avatar
    • Gleb Shchepa's avatar
      Merge from 5.0 · a7f63a9d
      Gleb Shchepa authored
      ******
      manual merge 5.0-bugteam --> 5.1-bugteam (bug 38816)
      a7f63a9d
    • Gleb Shchepa's avatar
      Bug #38816: kill + flush tables with read lock + stored · 065732ee
      Gleb Shchepa authored
                  procedures causes crashes!
      
      The problem of that bugreport was mostly fixed by the
      patch for bug 38691.
      However, attached test case focused on another crash or
      valgrind warning problem: SHOW PROCESSLIST query accesses
      freed memory of SP instruction that run in a parallel
      connection.
      
      Changes of thd->query/thd->query_length in dangerous
      places have been guarded with the per-thread
      LOCK_thd_data mutex (the THD::LOCK_delete mutex has been
      renamed to THD::LOCK_thd_data).
      
      
      sql/ha_myisam.cc:
        Bug #38816: kill + flush tables with read lock + stored
                    procedures causes crashes!
        
        Modification of THD::query/query_length has been guarded
        with the a THD::set_query() method call/LOCK_thd_data
        mutex.
        Unnecessary locking with the global LOCK_thread_count
        mutex has been removed.
      sql/log_event.cc:
        Bug #38816: kill + flush tables with read lock + stored
                    procedures causes crashes!
        
        Modification of THD::query/query_length has been guarded
        with the THD::set_query()) method call/LOCK_thd_data
        mutex.
      sql/slave.cc:
        Bug #38816: kill + flush tables with read lock + stored
                    procedures causes crashes!
        
        Modification of THD::query/query_length has been guarded
        with the THD::set_query() method call/LOCK_thd_data mutex.
        
        The THD::LOCK_delete mutex has been renamed to
        THD::LOCK_thd_data.
      sql/sp_head.cc:
        Bug #38816: kill + flush tables with read lock + stored
                    procedures causes crashes!
        
        Modification of THD::query/query_length has been guarded
        with the a THD::set_query() method call/LOCK_thd_data
        mutex.
      sql/sql_class.cc:
        Bug #38816: kill + flush tables with read lock + stored
                    procedures causes crashes!
        
        The new THD::LOCK_thd_data mutex and THD::set_query()
        method has been added to guard modifications of THD::query/
        THD::query_length fields, also the Statement::set_statement()
        method has been overloaded in the THD class.
        
        The THD::LOCK_delete mutex has been renamed to
        THD::LOCK_thd_data.
      sql/sql_class.h:
        Bug #38816: kill + flush tables with read lock + stored
                    procedures causes crashes!
        
        The new THD::LOCK_thd_data mutex and THD::set_query()
        method has been added to guard modifications of THD::query/
        THD::query_length fields, also the Statement::set_statement()
        method has been overloaded in the THD class.
        
        The THD::LOCK_delete mutex has been renamed to
        THD::LOCK_thd_data.
      sql/sql_insert.cc:
        Bug #38816: kill + flush tables with read lock + stored
                    procedures causes crashes!
        
        Modification of THD::query/query_length has been guarded
        with the a THD::set_query() method call/LOCK_thd_data
        mutex.
      sql/sql_parse.cc:
        Bug #38816: kill + flush tables with read lock + stored
                    procedures causes crashes!
        
        Modification of THD::query/query_length has been guarded
        with the a THD::set_query() method call/LOCK_thd_data mutex.
      sql/sql_repl.cc:
        Bug #38816: kill + flush tables with read lock + stored
                    procedures causes crashes!
        
        The THD::LOCK_delete mutex has been renamed to
        THD::LOCK_thd_data.
      sql/sql_show.cc:
        Bug #38816: kill + flush tables with read lock + stored
                    procedures causes crashes!
        
        Inter-thread read of THD::query/query_length field has
        been protected with a new per-thread LOCK_thd_data
        mutex in the mysqld_list_processes function.
      065732ee
    • Alexey Kopytov's avatar
      Automerge. · 58cff27e
      Alexey Kopytov authored
      58cff27e
    • Alexey Kopytov's avatar
      Automerge. · fafd4b23
      Alexey Kopytov authored
      fafd4b23
    • Alexey Kopytov's avatar
      Automerge. · 05e6e0aa
      Alexey Kopytov authored
      05e6e0aa
    • Alexey Kopytov's avatar
      Manual merge. · a96f9473
      Alexey Kopytov authored
      a96f9473
    • Alexey Kopytov's avatar
      Bug #46075: Assertion failed: 0, file .\protocol.cc, line 416 · df9eac9e
      Alexey Kopytov authored
      In create_myisam_from_heap() mark all errors as fatal except 
      HA_ERR_RECORD_FILE_FULL for a HEAP table.
      
      Not doing so could lead to problems, e.g. in a case when a
      temporary MyISAM table gets overrun due to its MAX_ROWS limit
      while executing INSERT/REPLACE IGNORE ... SELECT. 
      The SELECT execution was aborted, but the error was 
      converted to a warning due to IGNORE clause, so neither 'ok' 
      nor 'error' packet could be sent back to the client. This 
      condition led to hanging client when using 5.0 server, or 
      assertion failure in 5.1.
      
      
      mysql-test/r/insert_select.result:
        Added a test case for bug #46075.
      mysql-test/t/insert_select.test:
        Added a test case for bug #46075.
      sql/sql_select.cc:
        In create_myisam_from_heap() mark all errors as fatal except 
        HA_ERR_RECORD_FILE_FULL for a HEAP table.
      df9eac9e
    • Anurag Shekhar's avatar
      merging with local branch. · 47b133d0
      Anurag Shekhar authored
      47b133d0
    • Anurag Shekhar's avatar
      Bug#30102: Rename table does corrupt tables with partition files on failure · f7ecccd9
      Anurag Shekhar authored
      Problem was that a failing rename just left the partitions at the state
      it was at the failure.
      
      Solution was to try to revert the started rename if a failure occured.
      
      mysql-test/r/partition_not_embedded.result:
        Bug#30102: Rename table does corrupt tables with partition files on failure
        
        New result file
      mysql-test/t/partition_not_embedded.test:
        Bug#30102: Rename table does corrupt tables with partition files on failure
        
        New test file
        (list_files does not report the files in embedded)
      sql/ha_partition.cc:
        Bug#30102: Rename table does corrupt tables with partition files on failure
        
        Better error handling for rename partitions (reverting the started rename
        operation)
        
        Different order of files for delete.
      sql/handler.cc:
        Bug#30102: Rename table does corrupt tables with partition files on failure
        
        Tries to remove as many table files as possible
        if the first delete succeeds.
      f7ecccd9
    • V Narayanan's avatar
      merging with mysql-5.1-bugteam · b9d1887a
      V Narayanan authored
      b9d1887a
    • V Narayanan's avatar
      merging with mysql-5.0-bugteam · feec1106
      V Narayanan authored
      feec1106
    • Satya B's avatar
      merge 5.0-bugteam to 5.1-bugteam · 487d5cb4
      Satya B authored
      487d5cb4
    • Alexander Barkov's avatar
      Backporting "WL#3332 Korean Enhancements" and · 70d072b9
      Alexander Barkov authored
      "WL#4584 New euckr characters" from 5.4.
      (as agreed on ServerPT meeting on July 8).
      70d072b9
    • Satya B's avatar
      merge to mysql-5.0-bugteam · 7fd6a2e6
      Satya B authored
      7fd6a2e6
  4. 23 Jul, 2009 2 commits
    • Staale Smedseng's avatar
      Merge from 5.0 · ae1d127d
      Staale Smedseng authored
      ae1d127d
    • Staale Smedseng's avatar
      Bug #45770 errors reading server SSL files are printed, but · 94db736d
      Staale Smedseng authored
      not logged
              
      Errors encountered during initialization of the SSL subsystem
      are printed to stderr, rather than to the error log.
              
      This patch adds a parameter to several SSL init functions to
      report the error (if any) out to the caller. The function
      init_ssl() in mysqld.cc is moved after the initialization of
      the log subsystem, so that any error messages can be logged to
      the error log. Printing of messages to stderr has been 
      retained to get diagnostic output in a client context.
      
      
      include/violite.h:
        Adding an enumeration for the various errors that can
        occur during initialization of the SSL module.
      sql/mysqld.cc:
        Adding more logging of SSL init errors, and moving
        init_ssl() till after initialization of logging 
        subsystem.
      vio/viosslfactories.c:
        Define error strings, provide an access method for these
        strings, and maintain an error parameter in several funcs
        to return the error (if any) to the caller.
      94db736d
  5. 22 Jul, 2009 1 commit
  6. 19 Jul, 2009 3 commits
  7. 18 Jul, 2009 3 commits
    • Alfranio Correia's avatar
      BUG#46129 Failing mixed stm (with trans and non-trans tables) causes wrong seq in · b9b08caa
      Alfranio Correia authored
      binlog
            
      The fix for BUG 43929 introduced a regression issue. In a nutshell, when a
      statement that changes a non-transactional table fails, it is written to the
      binary log with the error code appended. Unfortunately, after BUG 43929, this
      failure was flushing the transactional chace causing mismatch between execution
      and logging histories. To fix this issue, we avoid flushing the transactional
      cache when a commit or rollback is not issued.
      b9b08caa
    • Evgeny Potemkin's avatar
      Merged corrected fix for the bug#46051. · bb55b34b
      Evgeny Potemkin authored
      bb55b34b
    • Evgeny Potemkin's avatar
      Bug#46051: Incorrectly market field caused wrong result. · 486d9303
      Evgeny Potemkin authored
      When during the optimization an item is moved to the upper select
      the item's context left unchanged. This caused wrong result in the 
      PS/SP mode.
      The Item_ident::remove_dependence_processor now sets the context
      of the select to which the item is moved to.
      
      mysql-test/r/subselect.result:
        The test case for the bug#46051 is adjusted.
      mysql-test/t/subselect.test:
        The test case for the bug#46051 is adjusted.
      sql/item.cc:
        Bug#46051: Incorrectly market field caused wrong result.
        The Item_ident::remove_dependence_processor now sets the context
        of the select to which the item is moved to.
      486d9303
  8. 17 Jul, 2009 6 commits
    • Evgeny Potemkin's avatar
      Merged fix for the bug#46051. · dc1c164f
      Evgeny Potemkin authored
      dc1c164f
    • V Narayanan's avatar
      merging with mysql-5.0-bugteam · 750e91bf
      V Narayanan authored
      750e91bf
    • Satya B's avatar
      Fix for BUG#18828 - If InnoDB runs out of undo slots, · 6c50be21
      Satya B authored
                          it returns misleading 'table is full'
      
      Innodb returns a misleading error message "table is full" 
      when the number of active concurrent transactions is greater
      than 1024.
      
      Fixed by adding errorcode "ER_TOO_MANY_CONCURRENT_TRXS" to the
      error codes. Innodb should return HA_TOO_MANY_CONCURRENT_TRXS
      to mysql which is then mapped to ER_TOO_MANY_CONCURRENT_TRXS
      
      
      Note: testcase is not written as this was reproducible only by
            changing innodb code.
      
      extra/perror.c:
        Add error number and message for HA_ERR_TOO_MANY_CONCURRENT_TRXS
      include/my_base.h:
        Add error number and message for HA_ERR_TOO_MANY_CONCURRENT_TRXS
      sql/ha_innodb.cc:
        Return HA_ERR_TOO_MANY_CONCURRENT_TRXS to mysql server
      sql/handler.cc:
        Add error number and message for HA_ERR_TOO_MANY_CONCURRENT_TRXS
      sql/share/errmsg.txt:
        Add error message for ER_TOO_MANY_CONCURRENT_TRXS
      6c50be21
    • V Narayanan's avatar
      merging with mysql-5.0-bugteam · 00a56499
      V Narayanan authored
      00a56499
    • unknown's avatar
      Bug #45214 get_master_version_and_clock does not report error when queries fail · 744bae11
      unknown authored
      Append the patch for resolving the problems, which have been brought by commiting bug#45214.
      744bae11
    • unknown's avatar
      Auto merge · d812f4a2
      unknown authored
      d812f4a2
  9. 16 Jul, 2009 4 commits
    • Evgeny Potemkin's avatar
      Bug#46051: Incorrectly market field caused wrong result. · c288559c
      Evgeny Potemkin authored
      In a subselect all fields from outer selects are marked as dependent on
      selects they are belong to. In some cases optimizer substitutes it for an
      equivalent expression. For example "a_field IN (SELECT outer_field)" is
      substituted with "a_field = outer_field". As we moved the outer_field to the
      upper select it's not really outer anymore. But it was left marked as outer.
      If exists an index over a_field optimizer choose wrong execution plan and thus
      return wrong result.
      
      Now the Item_in_subselect::single_value_transformer function removes dependent
      marking from fields when a subselect is optimized away.
      
      mysql-test/r/subselect.result:
        Added a test case for the bug#46051.
      mysql-test/t/subselect.test:
        Added a test case for the bug#46051.
      sql/item_subselect.cc:
        Bug#46051: Incorrectly market field caused wrong result.
        Now the Item_in_subselect::single_value_transformer function removes dependent
        marking from fields when a subselect is optimized away.
      c288559c
    • Georgi Kodinov's avatar
      automerge · 7432874d
      Georgi Kodinov authored
      7432874d
    • Georgi Kodinov's avatar
    • Georgi Kodinov's avatar