1. 04 Sep, 2009 1 commit
    • Kristofer Pettersson's avatar
      Bug#46486 warnings produced when running mysql_install_db · 0c4c2d7b
      Kristofer Pettersson authored
      Incremental patch part 2
      
      Removing dead code and changing a note level message to a warning.
      
      
      sql/sql_plugin.cc:
        * Remove free_slots. The only purpose for this variable was to trigger
          a redundant warning message  and it failed.
        * Change the note level message about shutting down plugins which
          didn't end nicely to a warning level message. (If this shutdown
          fails and there still are reference counts in the plugin an
          additional error level message is emitted)
      0c4c2d7b
  2. 03 Sep, 2009 1 commit
    • Kristofer Pettersson's avatar
      Bug#46486 warnings produced when running mysql_install_db · 76b8bd35
      Kristofer Pettersson authored
      During start up some plugins are disabled by default. This caused an additional
      warning level message to be emitted as a result of a previous bug patch. Since
      there is risk of unnecessary confusion regarding the operation level of the server
      the redundant information is removed.
      
      76b8bd35
  3. 02 Sep, 2009 7 commits
  4. 01 Sep, 2009 5 commits
  5. 31 Aug, 2009 11 commits
  6. 30 Aug, 2009 3 commits
    • Staale Smedseng's avatar
      Merge from 5.1-bugteam · 4d7202a0
      Staale Smedseng authored
      4d7202a0
    • Alexey Kopytov's avatar
      Automerge. · 54e45160
      Alexey Kopytov authored
      54e45160
    • Alexey Kopytov's avatar
      Bug #46607: Assertion failed: (cond_type == Item::FUNC_ITEM) · 6ce48392
      Alexey Kopytov authored
                  results in server crash 
       
      check_group_min_max_predicates() assumed the input condition 
      item to be one of COND_ITEM, SUBSELECT_ITEM, or FUNC_ITEM. 
      Since a condition of the form "field" is also a valid condition 
      equivalent to "field <> 0", using such a condition in a query 
      where the loose index scan was chosen resulted in a debug 
      assertion failure. 
       
      Fixed by handling conditions of the FIELD_ITEM type in 
      check_group_min_max_predicates(). 
      
      mysql-test/r/group_min_max.result:
        Added a test case for bug #46607.
      mysql-test/t/group_min_max.test:
        Added a test case for bug #46607.
      sql/opt_range.cc:
        Handle conditions of the FUNC_ITEM type in 
        check_group_mix_max_predicates().
      6ce48392
  7. 29 Aug, 2009 1 commit
    • unknown's avatar
      Bug #44331 Restore of database with events produces warning in replication · f32c08bd
      unknown authored
      If an EVENT is created without the DEFINER clause set explicitly or with it set  
      to CURRENT_USER, the master and slaves become inconsistent. This issue stems from 
      the fact that in both cases, the DEFINER is set to the CURRENT_USER of the current 
      thread. On the master, the CURRENT_USER is the mysqld's user, while on the slave,  
      the CURRENT_USER is empty for the SQL Thread which is responsible for executing 
      the statement.
      
      To fix the problem, we do what follows. If the definer is not set explicitly,  
      a DEFINER clause is added when writing the query into binlog; if 'CURRENT_USER' is 
      used as the DEFINER, it is replaced with the value of the current user before 
      writing to binlog.
      
      mysql-test/suite/rpl/r/rpl_create_if_not_exists.result:
        Updated the result file after fixing bug#44331
      mysql-test/suite/rpl/r/rpl_drop_if_exists.result:
        Updated the result file after fixing bug#44331
      mysql-test/suite/rpl/r/rpl_events.result:
        Test result of Bug#44331
      mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result:
        Updated the result file after fixing bug#44331
      mysql-test/suite/rpl/t/rpl_events.test:
        Added test to verify if the definer is consistent between master and slave
        when the event is created without the DEFINER clause set explicitly or the
        DEFINER is set to CURRENT_USER
      sql/events.cc:
        The "create_query_string" function is added to create a new query string 
        for removing executable comments.
      sql/sql_yacc.yy:
        The remember_name token was added for recording the offset of EVENT_SYM.
      f32c08bd
  8. 28 Aug, 2009 8 commits
    • Davi Arnaut's avatar
      Reduce test case runtime. · dc7106f5
      Davi Arnaut authored
      mysql-test/r/lock_multi_bug38499.result:
        Update test case result.
      mysql-test/r/lock_multi_bug38691.result:
        Update test case result.
      mysql-test/t/lock_multi_bug38499.test:
        Do not sync .frm files.
      mysql-test/t/lock_multi_bug38691.test:
        Do not sync .frm files.
      dc7106f5
    • Staale Smedseng's avatar
      Merge from 5.0 for 43414 · 5be4c382
      Staale Smedseng authored
      5be4c382
    • Staale Smedseng's avatar
      Bug #43414 Parenthesis (and other) warnings compiling MySQL · 1ba25ae4
      Staale Smedseng authored
      with gcc 4.3.2
            
      This patch fixes a number of GCC warnings about variables used
      before initialized. A new macro UNINIT_VAR() is introduced for
      use in the variable declaration, and LINT_INIT() usage will be
      gradually deprecated. (A workaround is used for g++, pending a
      patch for a g++ bug.)
            
      GCC warnings for unused results (attribute warn_unused_result)
      for a number of system calls (present at least in later
      Ubuntus, where the usual void cast trick doesn't work) are
      also fixed.
      
      
      client/mysqlmanager-pwgen.c:
        A fix for warn_unused_result, adding fallback to use of
        srand()/rand() if /dev/random cannot be used. Also actually
        adds calls to rand() in the second branch so that it actually
        creates a random password.
      1ba25ae4
    • Davi Arnaut's avatar
      Fix for a few assorted compiler warnings. · 169f7da0
      Davi Arnaut authored
      client/mysql.cc:
        Remove leading whitespace.
        Remove extra text after #else directive.
      client/mysqldump.c:
        Function does not take a parameter.
      mysys/array.c:
        buffer is a uchar pointer.
      sql/item.cc:
        Assert if it should not happen.
      storage/myisam/mi_check.c:
        Cast to expected type. This is probably a bug, but it is
        casted in a similar way in another part of the code.
      storage/ndb/include/mgmapi/ndb_logevent.h:
        Apply fix from cluster team.
      tests/mysql_client_test.c:
        Remove extraneous slash.
      169f7da0
    • Mattias Jonsson's avatar
      merge · 99413e46
      Mattias Jonsson authored
      99413e46
    • Mattias Jonsson's avatar
      Manual merge between bug#46362 and bug#20577. · 0a763971
      Mattias Jonsson authored
      sql/opt_range.cc:
        Removed duplicate code (if statement must have been duplicated during earlier merge).
      sql/sql_partition.cc:
        After mergeing bug#46362 and bug#20577, the NULL partition was also searched
        when col = const, fixed by checking if = or range.
      0a763971
    • Alfranio Correia's avatar
      f9e413a1
    • Alfranio Correia's avatar
  9. 27 Aug, 2009 3 commits
    • Alfranio Correia's avatar
      BUG#46861 Auto-closing of temporary tables broken by replicate-rewrite-db · ea06bbd2
      Alfranio Correia authored
      When a connection is dropped any remaining temporary table is also automatically
      dropped and the SQL statement of this operation is written to the binary log in
      order to drop such tables on the slave and keep the slave in sync. Specifically,
      the current code base creates the following type of statement:
      DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `db`.`table`;
      
      Unfortunately, appending the database to the table name in this manner circumvents
      the replicate-rewrite-db option (and any options that check the current database).
      To solve the issue, we started writing the statement to the binary as follows:
      use `db`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `table`;
      ea06bbd2
    • Alfranio Correia's avatar
      BUG#46864 Incorrect update of InnoDB table on slave when using trigger with myisam table · 354f5f7b
      Alfranio Correia authored
      Slave does not correctly handle "expected errors" leading to inconsistencies
      between the mater and slave. Specifically, when a statement changes both
      transactional and non-transactional tables, the transactional changes are
      automatically rolled back on the master but the slave ignores the error and
      does not roll them back thus leading to inconsistencies.
            
      To fix the problem, we automatically roll back a statement that fails on
      the slave but note that the transaction is not rolled back unless a "rollback"
      command is in the relay log file.
      
      mysql-test/extra/rpl_tests/rpl_mixing_engines.test:
        Enabled item 13.e which was disabled because of the bug fixed by the
        current and removed item 14 which was introduced by mistake.
      354f5f7b
    • Georgi Kodinov's avatar
      Bug #46749: Segfault in add_key_fields() with outer subquery level · a22c29d5
      Georgi Kodinov authored
        field references
      
      This error requires a combination of factors : 
      1. An "impossible where" in the outermost SELECT
      2. An aggregate in the outermost SELECT
      3. A correlated subquery with a WHERE clause that includes an outer 
      field reference as a top level WHERE sargable predicate
      
      When JOIN::optimize detects an "impossible WHERE" it will bail out
      without doing the rest of the work and initializations. It will not
      call make_join_statistics() as well.  And make_join_statistics fills 
      in various structures for each table referenced.
      When processing the result of the "impossible WHERE" the query must
      send a single row of data if there are aggregate functions in it.
      In this case the server marks all the aggregates as having received 
      no rows and calls the relevant Item::val_xxx() method on the SELECT
      list. However if this SELECT list happens to contain a correlated 
      subquery this subquery is evaluated in a normal evaluation mode.
      And if this correlated subquery has a reference to a field from the 
      outermost "impossible where" SELECT the add_key_fields will mistakenly
      consider the outer field reference as a "local" field reference when 
      looking for sargable predicates.
      But since the SELECT where the outer field reference refers to is not
      completely initialized due to the "impossible WHERE" in this level
      we'll get a NULL pointer reference.
      Fixed by making a better condition for discovering if a field is "local"
      to the SELECT level being processed. 
      It's not enough to look for OUTER_REF_TABLE_BIT in this case since 
      for outer references to constant tables the Item_field::used_tables() 
      will return 0 regardless of whether the field reference is from the 
      local SELECT or not.
      a22c29d5