An error occurred fetching the project authors.
  1. 28 Aug, 2013 1 commit
  2. 05 Jun, 2013 1 commit
    • Michael Widenius's avatar
      -Run test suite with smaller aria keybuffer size (to make it possible to run... · bef95a4b
      Michael Widenius authored
      -Run test suite with smaller aria keybuffer size (to make it possible to run more tests in parallel)
      -Added test and extra code to ensure we don't leave keyread on for a handler table.
      -Create on disk temporary files always with long data pointers if SQL_SMALL_RESULT is not used. This ensures that we can handle temporary files bigger than 4G.
      
      mysql-test/include/default_mysqld.cnf:
        Run test suite with smaller aria keybuffer size
      mysql-test/suite/maria/maria3.result:
        Run test suite with smaller aria keybuffer size
      mysql-test/suite/sys_vars/r/aria_pagecache_buffer_size_basic.result:
        Run test suite with smaller aria keybuffer size
      sql/handler.cc:
        Disable key read (extra safety if something went wrong)
      sql/multi_range_read.cc:
        Ensure we have don't leave keyread on for secondary_file
      sql/opt_range.cc:
        Simplify code with mark_columns_used_by_index_no_reset()
        Ensure that read_keys_and_merge() disableds keyread if it enables it
      sql/opt_subselect.cc:
        Remove not anymore used argument for create_internal_tmp_table()
      sql/sql_derived.cc:
        Remove not anymore used argument for create_internal_tmp_table()
      sql/sql_select.cc:
        Use 'enable_keyread()' instead of calling HA_EXTRA_RESET. (Makes debugging easier)
        Create on disk temporary files always with long data pointers if SQL_SMALL_RESULT is not used. This ensures that we can handle temporary files bigger than 4G.
        Remove not anymore used argument for create_internal_tmp_table()
        More DBUG
      sql/sql_select.h:
        Remove not anymore used argument for create_internal_tmp_table()
      bef95a4b
  3. 19 Apr, 2013 1 commit
  4. 17 Apr, 2013 1 commit
  5. 19 Mar, 2013 1 commit
  6. 25 Feb, 2013 1 commit
  7. 14 Feb, 2013 1 commit
    • Mattias Jonsson's avatar
      Bug#16274455: CAN NOT ACESS PARTITIONED TABLES WHEN · e9618282
      Mattias Jonsson authored
      DOWNGRADED FROM 5.6.11 TO 5.6.10
      
      Problem was new syntax not accepted by previous version.
      
      Fixed by adding version comment of /*!50531 around the
      new syntax.
      
      Like this in the .frm file:
      'PARTITION BY KEY /*!50611 ALGORITHM = 2 */ () PARTITIONS 3'
      and also changing the output from SHOW CREATE TABLE to:
      CREATE TABLE t1 (a INT)
      /*!50100 PARTITION BY KEY */ /*!50611 ALGORITHM = 1 */ /*!50100 ()
      PARTITIONS 3 */
      
      It will always add the ALGORITHM into the .frm for KEY [sub]partitioned
      tables, but for SHOW CREATE TABLE it will only add it in case it is the non
      default ALGORITHM = 1.
      
      Also notice that for 5.5, it will say /*!50531 instead of /*!50611, which
      will make upgrade from 5.5 > 5.5.31 to 5.6 < 5.6.11 fail!
      If one downgrades an fixed version to the same major version (5.5 or 5.6) the
      bug 14521864 will be visible again, but unless the .frm is updated, it will
      work again when upgrading again.
      
      Also fixed so that the .frm does not get updated version
      if a single partition check passes.
      e9618282
  8. 18 Jan, 2013 1 commit
  9. 15 Jan, 2013 1 commit
    • Nisha Gopalakrishnan's avatar
      Bug#11757464:SERVER CRASH IN RECURSIVE CALL WHEN OOM · d01b5c39
      Nisha Gopalakrishnan authored
      Analysis:
      ---------
      
      When the server is out of memory, an error is raised
      to indicate the same. Handling the error requires
      more memory to be allocated which fails, hence the
      error handling loops in a recursion and causes the
      server to crash.
      
      Fix:
      ---
      a) Prevents pushing the 'out of memory' error condition
      to the diagnostic area as it requires memory allocation.
      GET DIAGNOSTICS, SHOW WARNINGS and SHOW ERRORS statements
      will not show information about this error. However the
      'out of memory' error is returned to the client.
      b) It sets the ME_FATALERROR flag when 'out of memory' errors
      are reported (for places where the flag is not already set).
      This flag prevents activation of SP error handlers which also
      require memory allocation and therefore are likely to fail.
      d01b5c39
  10. 11 Jan, 2013 1 commit
    • Michael Widenius's avatar
      Buildbot fixes and cleanups: · edc89f75
      Michael Widenius authored
      - Added --verbose to BUILD scripts to get make to write out compile commands.
      - Detect if AM_EXTRA_MAKEFLAGS=VERBOSE=1 was used with build scripts.
      - Don't write warnings about replication variables when doing bootstrap.
      - Fixed that mysql_cond_wait() and mysql_cond_timedwait() will report original source file in case of errors.
      - Ignore some compiler warnings
      
      BUILD/FINISH.sh:
        Detect if AM_EXTRA_MAKEFLAGS=VERBOSE=1 or --verbose was used
      BUILD/SETUP.sh:
        Added --verbose to print out the full compile lines
        Updated help message
      client/mysqltest.cc:
        Fixed that one can use 'replace' with cat_file
      cmake/configure.pl:
        If --verbose is used, get make to write out compile commands
      debian/dist/Debian/rules:
        Added $AM_EXTRA_MAKEFLAGS to get VERBOSE=1 on buildbot builds
      debian/dist/Ubuntu/rules:
        Added $AM_EXTRA_MAKEFLAGS to get VERBOSE=1 on buildbot builds
      include/my_pthread.h:
        Made set_timespec_time_nsec() more portable.
      include/mysql/psi/mysql_thread.h:
        Fixed that mysql_cond_wait() and mysql_cond_timedwait() will report original source file in case of errors.
      mysql-test/suite/innodb/r/auto_increment_dup.result:
        Fixed wrong DBUG_SYNC
      mysql-test/suite/innodb/t/auto_increment_dup.test:
        Fixed wrong DBUG_SYNC
      mysql-test/suite/perfschema/include/upgrade_check.inc:
        Make test more portable for changes in *.sql files
      mysql-test/suite/perfschema/r/pfs_upgrade.result:
        Updated test results
      mysql-test/valgrind.supp:
        Ignore running Aria checkpoint thread
      scripts/mysqlaccess.sh:
        Changed reference of bugs database
        Ensure that also client-server group is read.
      sql/handler.cc:
        Added missing syncpoint
      sql/mysqld.cc:
        Don't write warnings about replication variables when doing bootstrap
      sql/mysqld.h:
        Don't write warnings about replication variables when doing bootstrap
      sql/rpl_rli.cc:
        Don't write warnings about replication variables when doing bootstrap
      sql/sql_insert.cc:
        Don't mask SERVER_SHUTDOWN in insert_delayed
        This is done to be able to distingush between shutdown and interrupt errors
      support-files/compiler_warnings.supp:
        Ignore some compiler warnings in xtradb,innobase, oqgraph, yassl, string3.h
      edc89f75
  11. 10 Jan, 2013 1 commit
    • Michael Widenius's avatar
      Fixed some race conditons and bugs related to killed queries · 6e9a48b6
      Michael Widenius authored
      KILL now breaks locks inside InnoDB
      Fixed possible deadlock when running INNODB STATUS
      Added ha_kill_query() and kill_query() to send kill signal to all storage engines
      Added reset_killed() to ensure we don't reset killed state while awake() is getting called
      
      
      include/mysql/plugin.h:
        Added thd_mark_as_hard_kill()
      include/mysql/plugin_audit.h.pp:
        Added thd_mark_as_hard_kill()
      include/mysql/plugin_auth.h.pp:
        Added thd_mark_as_hard_kill()
      include/mysql/plugin_ftparser.h.pp:
        Added thd_mark_as_hard_kill()
      sql/handler.cc:
        Added ha_kill_query() to send kill signal to all storage engines
      sql/handler.h:
        Added ha_kill_query() and kill_query() to send kill signal to all storage engines
      sql/log_event.cc:
        Use reset_killed()
      sql/mdl.cc:
        use thd->killed instead of thd_killed() to abort on soft kill
      sql/sp_rcontext.cc:
        Use reset_killed()
      sql/sql_class.cc:
        Fixed possible deadlock in INNODB STATUS by not getting thd->LOCK_thd_data if it's locked.
        Use reset_killed()
        Tell storge engines that KILL has been sent
      sql/sql_class.h:
        Added reset_killed() to ensure we don't reset killed state while awake() is getting called.
        Added mark_as_hard_kill()
      sql/sql_insert.cc:
        Use reset_killed()
      sql/sql_parse.cc:
        Simplify detection of killed queries.
        Use reset_killed()
      sql/sql_select.cc:
        Use reset_killed()
      sql/sql_union.cc:
        Use reset_killed()
      storage/innobase/handler/ha_innodb.cc:
        Added innobase_kill_query()
        Fixed error reporting for interrupted queries.
      storage/xtradb/handler/ha_innodb.cc:
        Added innobase_kill_query()
        Fixed error reporting for interrupted queries.
      6e9a48b6
  12. 18 Oct, 2012 1 commit
  13. 08 Oct, 2012 1 commit
    • Annamalai Gurusami's avatar
      Bug #14036214 MYSQLD CRASHES WHEN EXECUTING UPDATE IN TRX WITH · 378a7d1e
      Annamalai Gurusami authored
      CONSISTENT SNAPSHOT OPTION
      
      A transaction is started with a consistent snapshot.  After 
      the transaction is started new indexes are added to the 
      table.  Now when we issue an update statement, the optimizer
      chooses an index.  When the index scan is being initialized
      via ha_innobase::change_active_index(), InnoDB reports 
      the error code HA_ERR_TABLE_DEF_CHANGED, with message 
      stating that "insufficient history for index".
      
      This error message is propagated up to the SQL layer.  But
      the my_error() api is never called.  The statement level
      diagnostics area is not updated with the correct error 
      status (it remains in Diagnostics_area::DA_EMPTY).  
      
      Hence the following check in the Protocol::end_statement()
      fails.
      
       516   case Diagnostics_area::DA_EMPTY:
       517   default:
       518     DBUG_ASSERT(0);
       519     error= send_ok(thd->server_status, 0, 0, 0, NULL);
       520     break;
      
      The fix is to backport the fix of bugs 14365043, 11761652 
      and 11746399. 
      
      14365043 PROTOCOL::END_STATEMENT(): ASSERTION `0' FAILED
      11761652 HA_RND_INIT() RESULT CODE NOT CHECKED
      11746399 RETURN VALUES OF HA_INDEX_INIT() AND INDEX_INIT() IGNORED
      
      rb://1227 approved by guilhem and mattiasj.
      378a7d1e
  14. 04 Oct, 2012 1 commit
    • Michael Widenius's avatar
      Fixed issues found by buildbot & valgrind: · ea6a4eef
      Michael Widenius authored
      - Wrong thd uses in Item_subselect, could lead to crash
      - Inititalize uninitialized variable in new autoincrement handling code
      
      
      sql/handler.cc:
        More DBUG_PRINT
      sql/item_subselect.cc:
        Wrong thd uses in Item_subselect, could lead to crash
      storage/innobase/handler/ha_innodb.cc:
        Initialize variable needed by upper level. This only happens when auto-increment value wraps over.
      storage/xtradb/handler/ha_innodb.cc:
        Initialize variable needed by upper level. This only happens when auto-increment value wraps over.
      ea6a4eef
  15. 18 Sep, 2012 1 commit
    • Michael Widenius's avatar
      Fix for MDEV-533: Confusing error code when doing auto-increment insert for out-of-range values · ae5bc059
      Michael Widenius authored
      create table t1 (a smallint primary key auto_increment);
      insert into t1 values(32767);
      insert into t1 values(NULL);
      ERROR 1062 (23000): Duplicate entry '32767' for key 'PRIMARY
      
      Now on always gets error HA_ERR_AUTOINC_RANGE=167 "Out of range value for column", independent of
      store engine, SQL Mode or number of inserted rows. This is an unique error that is easier to test for in replication.
      
      Another bug fix is that we now get an error when trying to insert a too big auto-generated value, even in non-strict mode.
      Before one get insted the max column value inserted.
      This patch also fixes some issues with inserting negative numbers in an auto-increment column.
      Fixed the ER_DUP_ENTRY and HA_ERR_AUTOINC_ERANGE are compared the same between master and slave.
      This ensures that replication works between an old server to a new slave for auto-increment overflow errors.
      Added SQLSTATE errors for handler errors
      
      Smaller bug fixes:
      * Added warnings for duplicate key errors when using INSERT IGNORE
      * Fixed bug when using --skip-log-bin followed by --log-bin, which did set log-bin to "0"
      * Allow one to see how cmake is called by using --just-print --just-configure
      
      
      BUILD/FINISH.sh:
        --just-print --just-configure now shows how cmake would be invoked. Good for understanding parameters to cmake.
      cmake/configure.pl:
        --just-print --just-configure now shows how cmake would be invoked. Good for understanding parameters to cmake.
      include/CMakeLists.txt:
        Added handler_state.h
      include/handler_state.h:
        SQLSTATE for handler error messages.
        Required for HA_ERR_AUTOINC_ERANGE, but solves also some other cases.
      mysql-test/extra/binlog_tests/binlog.test:
        Fixed old wrong behaviour
        Added more tests
      mysql-test/extra/binlog_tests/binlog_insert_delayed.test:
        Reset binary log to only print what's necessary in show_binlog_events
      mysql-test/extra/rpl_tests/rpl_auto_increment.test:
        Update to new error codes
      mysql-test/extra/rpl_tests/rpl_insert_delayed.test:
        Ignore warnings as this depends on how the test is run
      mysql-test/include/strict_autoinc.inc:
        On now gets an error on overflow
      mysql-test/r/auto_increment.result:
        Update results after fixing error message
      mysql-test/r/auto_increment_ranges_innodb.result:
        Test new behaviour
      mysql-test/r/auto_increment_ranges_myisam.result:
        Test new behaviour
      mysql-test/r/commit_1innodb.result:
        Added warnings for duplicate key error
      mysql-test/r/create.result:
        Added warnings for duplicate key error
      mysql-test/r/insert.result:
        Added warnings for duplicate key error
      mysql-test/r/insert_select.result:
        Added warnings for duplicate key error
      mysql-test/r/insert_update.result:
        Added warnings for duplicate key error
      mysql-test/r/mix2_myisam.result:
        Added warnings for duplicate key error
      mysql-test/r/myisam_mrr.result:
        Added warnings for duplicate key error
      mysql-test/r/null_key.result:
        Added warnings for duplicate key error
      mysql-test/r/replace.result:
        Update to new error codes
      mysql-test/r/strict_autoinc_1myisam.result:
        Update to new error codes
      mysql-test/r/strict_autoinc_2innodb.result:
        Update to new error codes
      mysql-test/r/strict_autoinc_3heap.result:
        Update to new error codes
      mysql-test/r/trigger.result:
        Added warnings for duplicate key error
      mysql-test/r/xtradb_mrr.result:
        Added warnings for duplicate key error
      mysql-test/suite/binlog/r/binlog_innodb_row.result:
        Updated result
      mysql-test/suite/binlog/r/binlog_row_binlog.result:
        Out of range data for auto-increment is not inserted anymore
      mysql-test/suite/binlog/r/binlog_statement_insert_delayed.result:
        Updated result
      mysql-test/suite/binlog/r/binlog_stm_binlog.result:
        Out of range data for auto-increment is not inserted anymore
      mysql-test/suite/binlog/r/binlog_unsafe.result:
        Updated result
      mysql-test/suite/innodb/r/innodb-autoinc.result:
        Update to new error codes
      mysql-test/suite/innodb/r/innodb-lock.result:
        Updated results
      mysql-test/suite/innodb/r/innodb.result:
        Updated results
      mysql-test/suite/innodb/r/innodb_bug56947.result:
        Updated results
      mysql-test/suite/innodb/r/innodb_mysql.result:
        Updated results
      mysql-test/suite/innodb/t/innodb-autoinc.test:
        Update to new error codes
      mysql-test/suite/maria/maria3.result:
        Updated result
      mysql-test/suite/maria/mrr.result:
        Updated result
      mysql-test/suite/optimizer_unfixed_bugs/r/bug43617.result:
        Updated result
      mysql-test/suite/rpl/r/rpl_auto_increment.result:
        Update to new error codes
      mysql-test/suite/rpl/r/rpl_insert_delayed,stmt.rdiff:
        Updated results
      mysql-test/suite/rpl/r/rpl_loaddatalocal.result:
        Updated results
      mysql-test/t/auto_increment.test:
        Update to new error codes
      mysql-test/t/auto_increment_ranges.inc:
        Test new behaviour
      mysql-test/t/auto_increment_ranges_innodb.test:
        Test new behaviour
      mysql-test/t/auto_increment_ranges_myisam.test:
        Test new behaviour
      mysql-test/t/replace.test:
        Update to new error codes
      mysys/my_getopt.c:
        Fixed bug when using --skip-log-bin followed by --log-bin, which did set log-bin to "0"
      sql/handler.cc:
        Ignore negative values for signed auto-increment columns
        Always give an error if we get an overflow for an auto-increment-column (instead of inserting the max value)
        Ensure that the row number is correct for the out-of-range-value error message.
        
        
        ******
        Fixed wrong printing of column namn for "Out of range value" errors
        Fixed that INSERT_ID is correctly replicated also for out-of-range autoincrement values
        Fixed that print_keydup_error() can also be used to generate warnings
        ******
        Return HA_ERR_AUTOINC_ERANGE (167) instead of ER_WARN_DATA_OUT_OF_RANGE for auto-increment overflow
      sql/handler.h:
        Allow INSERT IGNORE to continue also after out-of-range inserts.
        Fixed that print_keydup_error() can also be used to generate warnings
      sql/log_event.cc:
        Added DBUG_PRINT
        Fixed the ER_AUTOINC_READ_FAILED, ER_DUP_ENTRY and HA_ERR_AUTOINC_ERANGE are compared the same between master and slave.
        This ensures that replication works between an old server to a new slave for auto-increment overflow errors.
      sql/sql_insert.cc:
        Add warnings for duplicate key errors when using INSERT IGNORE
      sql/sql_state.c:
        Added handler errors
      sql/sql_table.cc:
        Update call to print_keydup_error()
      storage/innobase/handler/ha_innodb.cc:
        Fixed increment handling of auto-increment columns to be consistent with rest of MariaDB.
      storage/xtradb/handler/ha_innodb.cc:
        Fixed increment handling of auto-increment columns to be consistent with rest of MariaDB.
      ae5bc059
  16. 28 Aug, 2012 1 commit
    • Michael Widenius's avatar
      Split ER_NO_SUCH_TABLE into ER_NO_SUCH_TABLE and ER_NO_SUCH_TABLE_IN_ENGINE to... · 7dad5363
      Michael Widenius authored
      Split ER_NO_SUCH_TABLE into ER_NO_SUCH_TABLE and ER_NO_SUCH_TABLE_IN_ENGINE to be able to distingus if a .frm file is missing or if the table is missing in the engine.
      
      
      sql/handler.cc:
        Added ER_NO_SUCH_TABLE_IN_ENGINE
      sql/rpl_record.cc:
        Fixed wrong printf
      sql/share/errmsg-utf8.txt:
        Added ER_NO_SUCH_TABLE_IN_ENGINE
      sql/sp.cc:
        Added ER_NO_SUCH_TABLE_IN_ENGINE
      sql/sp_head.cc:
        Added ER_NO_SUCH_TABLE_IN_ENGINE
      sql/sql_admin.cc:
        Added ER_NO_SUCH_TABLE_IN_ENGINE
      sql/sql_base.cc:
        Added ER_NO_SUCH_TABLE_IN_ENGINE
      sql/sql_show.cc:
        Added ER_NO_SUCH_TABLE_IN_ENGINE
      sql/table.cc:
        Fixed typo
      7dad5363
  17. 20 Aug, 2012 1 commit
    • Michael Widenius's avatar
      Ensure we don't assert with debug binaries if SHOW INNODB STATUS returns with an error. · 75e8ce6d
      Michael Widenius authored
      sql/handler.cc:
        SHOW INNODB STATUS sometimes returns 0 even if it has generated an error.
        This code is here to catch it until InnoDB some day is fixed.
      storage/innobase/handler/ha_innodb.cc:
        Catch at least one of the possible errors from SHOW INNODB STATUS to provide a correct return code.
      storage/xtradb/handler/ha_innodb.cc:
        Catch at least one of the possible errors from SHOW INNODB STATUS to provide a correct return code.
      support-files/my-huge.cnf.sh:
        Fixed typo
      75e8ce6d
  18. 12 Jul, 2012 1 commit
    • Annamalai Gurusami's avatar
      Bug #11765218 58157: INNODB LOCKS AN UNMATCHED ROW EVEN THOUGH USING · 357a008a
      Annamalai Gurusami authored
      RBR AND RC
      
      Description: When scanning and locking rows with < or <=, InnoDB locks
      the next row even though row based binary logging and read committed
      is used.
      
      Solution: In the handler, when the row is identified to fall outside
      of the range (as specified in the query predicates), then request the
      storage engine to unlock the row (if possible). This is done in
      handler::read_range_first() and handler::read_range_next().
      357a008a
  19. 11 Jul, 2012 1 commit
  20. 21 Jun, 2012 1 commit
  21. 21 May, 2012 1 commit
    • Annamalai Gurusami's avatar
      Bug #12752572 61579: REPLICATION FAILURE WHILE · e979417c
      Annamalai Gurusami authored
      INNODB_AUTOINC_LOCK_MODE=1 AND USING TRIGGER
      
      When an insert stmt like "insert into t values (1),(2),(3)" is
      executed, the autoincrement values assigned to these three rows are
      expected to be contiguous.  In the given lock mode
      (innodb_autoinc_lock_mode=1), the auto inc lock will be released
      before the end of the statement.  So to make the autoincrement
      contiguous for a given statement, we need to reserve the auto inc
      values at the beginning of the statement.  
      
      Modified the fix based on review comment by Svoj.  
      e979417c
  22. 16 May, 2012 1 commit
    • Annamalai Gurusami's avatar
      Bug #12752572 61579: REPLICATION FAILURE WHILE · bcb5d737
      Annamalai Gurusami authored
      INNODB_AUTOINC_LOCK_MODE=1 AND USING TRIGGER
      
      When an insert stmt like "insert into t values (1),(2),(3)" is
      executed, the autoincrement values assigned to these three rows are
      expected to be contiguous.  In the given lock mode
      (innodb_autoinc_lock_mode=1), the auto inc lock will be released
      before the end of the statement.  So to make the autoincrement
      contiguous for a given statement, we need to reserve the auto inc
      values at the beginning of the statement.  
      
      rb://1074 approved by Alexander Nozdrin
      bcb5d737
  23. 17 May, 2012 1 commit
    • Igor Babaev's avatar
      Fixed LP bug #999251: Q13 from DBT3 uses table scan instead of covering index scan. · 4dc963a9
      Igor Babaev authored
      The optimizer chose a less efficient execution plan due to the following
      defects of the code:
      1. the generic handler function handler::keyread_time did not take into account
         that in clustered primary keys record data is included into each index entry
      2. the function make_join_readinfo erroneously decided that index only scan
         could not be used if join cache was empoyed.
      
      Added no additional test case.
      Adjusted some of the test results.
      4dc963a9
  24. 11 Apr, 2012 1 commit
    • unknown's avatar
      Bug#11815557 60269: MYSQL SHOULD REJECT ATTEMPTS TO CREATE SYSTEM · 99b18a03
      unknown authored
                          TABLES IN INCORRECT ENGINE
      
      PROBLEM:
        CREATE/ALTER TABLE currently can move system tables like
      mysql.db, user, host etc, to engines other than MyISAM. This is not
      completely supported as of now, by mysqld. When some of system tables
      like plugin, servers, event, func, *_priv, time_zone* are moved
      to innodb, mysqld restart crashes. Currently system tables
      can be moved to BLACKHOLE also!!!.
      
      ANALYSIS:
        The problem is that there is no check before creating or moving
      a system table to some particular engine.
      
        System tables are suppose to be residing in MyISAM. We can think
      of restricting system tables to exist only in MyISAM. But, there could
      be future needs of these system tables to be part of other engines
      by design. For eg, NDB cluster expects some tables to be on innodb
      or ndb engine. This calls for a solution, by which system
      tables can be supported by any desired engine, with minimal effort.
      
      FIX:
        The solution provides a handlerton interface using which,
      mysqld server can query particular storage engine handlerton for
      system tables that it supports. This way each storage engine
      layer can define their own system database and system tables.
      
        The check_engine() function uses the new handlerton function
      ha_check_if_supported_system_table() to check if db.tablename
      provided in the DDL is supported by the SE.
      
      Note: This fix has modified a test in help.test, which was moving
      mysql.help_* to innodb. The primary intention of the test was not
      to move them between engines.
      99b18a03
  25. 20 Mar, 2012 1 commit
    • Michael Widenius's avatar
      Fixed lp:947474 "Assertion `table->file->stats.records > 0 || error' failed in... · 690d8cc6
      Michael Widenius authored
      Fixed lp:947474 "Assertion `table->file->stats.records > 0 || error' failed in join_read_const_table on concurrent SELECT and ALTER, constant Aria table"
      Remove Aria state history for drop/rename
      
      mysql-test/suite/maria/r/maria-recovery2.result:
        Updated old (wrong) test result
      sql/handler.cc:
        Fixed wrong argument to implict_commit
      storage/maria/ha_maria.cc:
        Ensure that we don't use file->trn if THD_TRN is 0. (This means that implict_commit() has been called and the trn object is not ours anymore)
      storage/maria/ma_extra.c:
        Remove Aria state history for drop/rename
      storage/maria/ma_rename.c:
        Remove Aria state history for rename
      storage/maria/ma_state.c:
        More DBUG_PRINT
      690d8cc6
  26. 01 Mar, 2012 1 commit
    • Annamalai Gurusami's avatar
      Bug#13635833: MULTIPLE CRASHES IN FOREIGN KEY CODE WITH CONCURRENT DDL/DML · 7e36c4bd
      Annamalai Gurusami authored
            
      There are two threads.  In one thread, dml operation is going on 
      involving cascaded update operation.  In another thread, alter 
      table add foreign key constraint is happening.  Under these 
      circumstances, it is possible for the dml thread to access a 
      dict_foreign_t object that has been freed by the ddl thread.  
      The debug sync test case provides the sequence of operations.  
      Without fix, the test case will crash the server (because of 
      newly added assert).  With fix, the alter table stmt will return 
      an error message.  
            
      Backporting the fix from MySQL 5.5 to 5.1
      
      rb:961
      rb:947
      7e36c4bd
  27. 27 Feb, 2012 1 commit
    • Annamalai Gurusami's avatar
      Bug#13635833: MULTIPLE CRASHES IN FOREIGN KEY CODE WITH CONCURRENT DDL/DML · c1615df3
      Annamalai Gurusami authored
            
      There are two threads.  In one thread, dml operation is going on 
      involving cascaded update operation.  In another thread, alter 
      table add foreign key constraint is happening.  Under these 
      circumstances, it is possible for the dml thread to access a 
      dict_foreign_t object that has been freed by the ddl thread.  
      The debug sync test case provides the sequence of operations.  
      Without fix, the test case will crash the server (because of 
      newly added assert).  With fix, the alter table stmt will return 
      an error message.  
            
      rb:947
      approved by Jimmy Yang
      c1615df3
  28. 23 Feb, 2012 1 commit
    • Sergei Golubchik's avatar
      overlay support for mysql-test-run and mysqltest · c3987707
      Sergei Golubchik authored
      mysql-test-run auto-disables all optional plugins.
      
      
      mysql-test/include/default_client.cnf:
        no @OPT.plugindir anymore
      mysql-test/include/default_mysqld.cnf:
        don't disable plugins manually - mtr can do it better
      mysql-test/suite/innodb/t/innodb_bug47167.test:
        mtr now uses suite-dir as an include path
      mysql-test/suite/innodb/t/innodb_file_format.test:
        mtr now uses suite-dir as an include path
      mysql-test/t/partition_binlog.test:
        this test uses partitions
      storage/example/mysql-test/mtr/t/source.result:
        update results. as mysqltest includes the correct overlayed include
      storage/innobase/handler/ha_innodb.cc:
        the assert is wrong
      c3987707
  29. 22 Feb, 2012 1 commit
  30. 17 Feb, 2012 1 commit
  31. 01 Mar, 2012 1 commit
  32. 02 Jan, 2012 1 commit
  33. 11 Dec, 2011 1 commit
    • Michael Widenius's avatar
      Rewrite IGNORE handling: · 14858746
      Michael Widenius authored
      - Instead of supressing all errors, only suppress safe ones like:
      ER_DUP_KEY, ER_BAD_NULL_ERROR, ER_SUBQUERY_NO_1_ROW, ER_ROW_IS_REFERENCED_2
      14858746
  34. 29 Oct, 2011 1 commit
  35. 25 Oct, 2011 1 commit
    • Vasil Dimov's avatar
      Fix Bug#12661768 UPDATE IGNORE CRASHES SERVER IF TABLE IS INNODB AND IT IS · dce33740
      Vasil Dimov authored
      PARENT FOR OTHER ONE
      
      Do not try to lookup key_nr'th key in 'table' because there may not be such
      a key there. key_nr is the number of the key in the _child_ table name, not
      in the parent table.
      
      Instead just print the fields of the record that are covered by the first key
      defined on the parent table.
      
      This bug gets a better fix in MySQL 5.6, which is too risky for 5.1 and 5.5.
      
      Approved by:	Jon Olav Hauglid (via IM)
      dce33740
  36. 02 Nov, 2011 1 commit
  37. 23 Sep, 2011 1 commit
  38. 22 Sep, 2011 1 commit
    • Michael Widenius's avatar
      Added new options to KILL. New syntax is KILL [HARD|SOFT] [CONNECTION|QUERY] [ID | USER user_name] · 22e79363
      Michael Widenius authored
      - If USER is given, all threads for that user is signaled
      - If SOFT is used then the KILL will not be sent to the handler. This can be used to not interrupt critical things in the handler like 'REPAIR'.
      
      Internally added more kill signals. This gives us more information of why a query/connection was killed.
      - KILL_SERVER is used when server is going down. In this case the users gets ER_SHUTDOWN as the reason connection was killed.
      - Changed signals to number in correct order, which makes it easier to test how the signal should affect the code.
      - New error message ER_CONNECTION_KILLED if connection was killed by 'KILL CONNECTION'. Before we got error ER_SHUTDOWN.
      
      Changed names of not used parameters KILL_QUERY & KILL_CONNCTION to mysql_kill() to not conflict with defines in the server
      
      
      include/mysql.h.pp:
        Updated file
      include/mysql_com.h:
        Changed names of not used parameters KILL_QUERY & KILL_CONNCTION to mysql_kill() to not conflict with defines in the server
      mysql-test/r/kill.result:
        Added test of KILL USER
      mysql-test/suite/rpl/r/rpl_stm_000001.result:
        Updated error code
      mysql-test/suite/rpl/t/rpl_stm_000001.test:
        Updated error codes
      mysql-test/t/flush_read_lock_kill.test:
        Updated error codes
      mysql-test/t/kill.test:
        Added test of KILL USER
      plugin/handler_socket/handlersocket/database.cpp:
        Removed THD:: from KILL
      sql/debug_sync.cc:
        Removed THD:: from KILL
      sql/event_scheduler.cc:
        Removed THD:: from KILL
      sql/filesort.cc:
        Removed THD:: from KILL
      sql/ha_ndbcluster_binlog.cc:
        Removed THD:: from KILL
      sql/handler.cc:
        Removed THD:: from KILL
        Simplify code.
      sql/lex.h:
        Added new keywords HARD | SOFT
      sql/log.cc:
        Removed THD:: from KILL
        Added testing of new error ER_CONNECTION_KILLED
      sql/log_event.cc:
        Removed THD:: from KILL
        Added testing of new error ER_CONNECTION_KILLED
      sql/mysql_priv.h:
        Added new prototypes
      sql/mysqld.cc:
        Removed THD:: from KILL
        Use KILL_SERVER_HARD signal on shutdown.
      sql/scheduler.cc:
        Removed THD:: from KILL
        Simplify test if connection should be killed
      sql/share/errmsg.txt:
        New error message ER_CONNECTION_KILLED
      sql/slave.cc:
        Removed THD:: from KILL
      sql/sp_head.cc:
        Removed THD:: from KILL
      sql/sql_base.cc:
        Removed THD:: from KILL
      sql/sql_cache.cc:
        Removed THD:: from KILL
      sql/sql_class.cc:
        Removed THD:: from KILL
        Added killed_errno()
        Only signal kill to storage engine if HARD bit is set.
      sql/sql_class.h:
        Move KILL options out from THD to make them easier to use in sql_yacc.yy
      sql/sql_connect.cc:
        Removed THD:: from KILL
      sql/sql_delete.cc:
        Removed THD:: from KILL
      sql/sql_error.cc:
        Removed THD:: from KILL
      sql/sql_insert.cc:
        Removed THD:: from KILL
        Simplifed testing if thread is killed.
      sql/sql_lex.h:
        Added kill options to st_lex
      sql/sql_load.cc:
        Removed THD:: from KILL
      sql/sql_parse.cc:
        Added kill options to st_lex
        Simplifed and optimzed testing of thd->killed at end of query
        Added support for KILL USER
        Extended sql_kill() to allow use of more kill signals.
      sql/sql_repl.cc:
        Removed THD:: from KILL
      sql/sql_show.cc:
        Removed THD:: from KILL
        Simplied testing if query/connection was killed
      sql/sql_table.cc:
        Removed THD:: from KILL
      sql/sql_update.cc:
        Removed THD:: from KILL
      sql/sql_yacc.yy:
        Added support for new KILL syntax: KILL [HARD|SOFT] [CONNECTION|QUERY] [ID | USER user_name]
      storage/archive/ha_archive.cc:
        Simplify compilation
      storage/maria/ha_maria.cc:
        Removed THD:: from KILL
      22e79363
  39. 09 Sep, 2011 1 commit
    • Michael Widenius's avatar
      Fixed that automatic killing of delayed insert thread (in flush, alter table... · 8fb10c24
      Michael Widenius authored
      Fixed that automatic killing of delayed insert thread (in flush, alter table etc) will not abort auto-repair of MyISAM table.
      Give more information when finding an error in a MyISAM table.
      When killing system thread, use KILL_SYSTEM_THREAD instead of KILL_CONNECTION to make it easier to ignore the signal in sensitive context (like auto-repair)
      Added new kill level: KILL_SERVER that will in the future to be used to signal killed by shutdown.
      Add more warnings about killed connections when warning level > 3
      
      include/myisamchk.h:
        Added counting of printed info/notes
      mysys/mf_iocache.c:
        Remove duplicate assignment
      sql/handler.cc:
        Added test of KILL_SERVER
      sql/log.cc:
        Ignore new 'kill' error ER_NEW_ABORTING_CONNECTION when requesting query error code.
      sql/mysqld.cc:
        Add more warnings for killed connections when warning level > 3
      sql/scheduler.cc:
        Added checks for new kill signals
      sql/slave.cc:
        Ignore new kill signal ER_NEW_ABORTING_CONNECTION
      sql/sp_head.cc:
        Fixed assignment to bool
        Added testing of new kill signals
      sql/sql_base.cc:
        Use KILL_SYSTEM_THREAD to auto-kill system threads
      sql/sql_class.cc:
        Add more warnings for killed connections when warning level > 3
        thd_killed() now ignores KILL_BAD_DATA and THD::KILL_SYSTEM_THREAD as these should not abort sensitive operations.
      sql/sql_class.h:
        Added KILL_SYSTEM_THREAD and KILL_SERVER
      sql/sql_connect.cc:
        Added handling of KILL_SERVER
      sql/sql_insert.cc:
        Use KILL_SYSTEM_THREAD to auto-kill system threads
        Added handling of KILL_SERVER
      sql/sql_parse.cc:
        Add more warnings for killed connections when warning level > 3
        Added checking that thd->abort_on_warning is reset at end of query.
      sql/sql_show.cc:
        Update condition for when a query is 'killed'
      storage/myisam/ha_myisam.cc:
        Added counting of info/notes printed
      storage/myisam/mi_check.c:
        Always print an an error if we find data errors when checking/repairing a MyISAM table.
        When a repair was killed, don't retry repair.
        Added assert if sort_get_next_record() returned an error without an error message.
        Removed nonsence check "if (sort_param->read_cache.error < 0)" in repair.
      storage/myisam/myisamchk.c:
        Added counting of notes printed
      storage/pbxt/src/thread_xt.cc:
        Better error message.
      8fb10c24
  40. 01 Sep, 2011 1 commit
    • Marko Mäkelä's avatar
      Bug#12547647 UPDATE LOGGING COULD EXCEED LOG PAGE SIZE · 247ada63
      Marko Mäkelä authored
      This fix was accidentally pushed to mysql-5.1 after the 5.1.59 clone-off in
      bzr revision id marko.makela@oracle.com-20110829081642-z0w992a0mrc62s6w
      with the fix of Bug#12704861 Corruption after a crash during BLOB update
      but not merged to mysql-5.5 and upwards.
      
      In the Barracuda formats, the clustered index record no longer
      contains a prefix of off-page columns. Because of this, the undo log
      must contain these prefixes, so that purge and multi-versioning will
      continue to work. However, this also means that an undo log record can
      become too big to fit in an undo log page. (It is a limitation of the
      undo log that undo records cannot span across multiple pages.)
      
      In case the checks for undo log size fail when CREATE TABLE or CREATE
      INDEX is executed, we need a fallback that blocks a modification
      operation when the undo log record would exceed the maximum size.
      
      trx_undo_free_last_page_func(): Renamed from trx_undo_free_page_in_rollback().
      Define the trx_t parameter only in debug builds.
      
      trx_undo_free_last_page(): Wrapper for trx_undo_free_last_page_func().
      Pass the trx_t parameter only in debug builds.
      
      trx_undo_truncate_end_func(): Renamed from trx_undo_truncate_end().
      Define the trx_t parameter only in debug builds. Rewrite a for(;;) loop
      as a while loop for clarity.
      
      trx_undo_truncate_end(): Wrapper for from trx_undo_truncate_end_func().
      Pass the trx_t parameter only in debug builds.
      
      trx_undo_erase_page_end(): Return TRUE if the page was non-empty
      to begin with. Refuse to erase empty pages.
      
      trx_undo_report_row_operation(): If the page for which the undo log
      was too big was empty, free the undo page and return DB_TOO_BIG_RECORD.
      
      rb:749 approved by Inaam Rana
      247ada63