An error occurred fetching the project authors.
  1. 20 Dec, 2012 1 commit
    • Igor Babaev's avatar
      The patch for the task mdev-539. · ca2cdaad
      Igor Babaev authored
      The patch lifts the limitation of the current implementation
      of ALTER TABLE that does not allow to build unique/primary
      indexes by sort for MyISAM and Aria engines.
      ca2cdaad
  2. 14 Dec, 2012 1 commit
    • Igor Babaev's avatar
      Addressed all remaining issues from the review of the patch · a06224bd
      Igor Babaev authored
      that introduced engine independent persistent statistics.
      In particular:
      - added an enumeration type for possible values of the system
        variable use_stat_tables
      - renamed KEY::real_rec_per_key to KEY::actual_rec_per_key
      - optimized the collection of statistical data for any primary
        key defined only on one column.
        
      a06224bd
  3. 08 Dec, 2012 1 commit
    • Igor Babaev's avatar
      Addressed the following issue from the review of the patch for · 2447bc4c
      Igor Babaev authored
      engine-independent statistics.
      When the primary key was dropped or changed statistics on secondary
      indexes for the prefixes that included components of the primary 
      key was not removed from the table mysql.index_stats.
      
      Also fixed: in the some cases when a column was changed statistics
      on the indexes that included this column was not removed from the
      table mysql.index_stats.
      
      Also disabled the test mdev-504 for --ps-protocol.
      2447bc4c
  4. 10 Nov, 2012 1 commit
    • Igor Babaev's avatar
      Fixed bug mdev-3845. · 094f4cf7
      Igor Babaev authored
      If triggers are used for an insert/update/delete statement than the values of
      all virtual columns must be computed as any of them may be used by the triggers.
      094f4cf7
  5. 17 Oct, 2012 1 commit
    • unknown's avatar
      MDEV-452 Add full support for auto-initialized/updated timestamp and datetime · bc4a4567
      unknown authored
      Generalized support for auto-updated and/or auto-initialized timestamp
      and datetime columns. This patch is a reimplementation of MySQL's
      "WL#5874: CURRENT_TIMESTAMP as DEFAULT for DATETIME columns". In order to
      ease future merges, this implementation reused few function and variable
      names from MySQL's patch, however the implementation is quite different.
      
      TODO:
      The only unresolved problem in this patch is the semantics of LOAD DATA for
      TIMESTAMP and DATETIME columns in the cases when there are missing or NULL
      columns. I couldn't fully comprehend the logic behind MySQL's behavior and
      its relationship with their own documentation, so I left the results to be
      more consistent with all other LOAD cases.
      
      The problematic test cases can be seen by running the test file function_defaults,
      and observing the test case differences. Those were left on purpose for discussion.
      bc4a4567
  6. 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
  7. 13 Sep, 2012 1 commit
    • Michael Widenius's avatar
      Added THD::utime_after_query to avoid calling current_utime() twice for every end-of-query · 32e4c7e1
      Michael Widenius authored
      Increment long_query_count also if thd->variables.log_slow_rate_limit is used
      Added new state "Writing to binlog"
      
      
      sql/sql_class.h:
        Added THD::utime_after_query to avoid calling current_utime() twice for every end-of-query
      sql/sql_parse.cc:
        Increment long_query_count also if thd->variables.log_slow_rate_limit is used
        Removed extra calls to thd_proc_info(thd, "logging slow query") and thd->current_utime();
      sql/sql_table.cc:
        Added new state "Writing to binlog"
      32e4c7e1
  8. 01 Sep, 2012 1 commit
  9. 24 Aug, 2012 1 commit
    • unknown's avatar
      MDEV-382: Incorrect quoting · cdeabcfd
      unknown authored
      Various places in the server replication code was incorrectly quoting
      strings, which could lead to incorrect SQL on the slave/mysqlbinlog.
      cdeabcfd
  10. 15 Aug, 2012 2 commits
    • Michael Widenius's avatar
      Fixed MDEV-366: Assertion `share->reopen == 1' failed in maria_extra on DROP... · a1bc3936
      Michael Widenius authored
      Fixed MDEV-366: Assertion `share->reopen == 1' failed in maria_extra on DROP TABLE which is locked twice
      
      mysql-test/suite/maria/lock.result:
        Added test case
      mysql-test/suite/maria/lock.test:
        Added test case
      sql/sql_table.cc:
        One can't call HA_EXTRA_FORCE_REOPEN on something that may be opened twice.
        It's safe to remove the call in this case as we will call HA_EXTRA_PREPARE_FOR_DROP for the table anyway.
        (One nice side effect is that drop is a bit faster as we are not flushing the cache to disk before the drop anymore)
      a1bc3936
    • Michael Widenius's avatar
      Fixed MDEV-365 "Got assertion when doing alter table on a partition" · fbe5ac4e
      Michael Widenius authored
      mysql-test/r/partition.result:
        Added test case
      mysql-test/t/partition.test:
        Added test case
      sql/sql_partition.cc:
        Do mysql_trans_prepare_alter_copy_data() after all original tables are locked.
        (We don't want to disable transactions for the original tables, that still may be in the cache)
      sql/sql_table.cc:
        Fixed two wrong DBUG_ENTER
      fbe5ac4e
  11. 13 Aug, 2012 2 commits
    • Michael Widenius's avatar
      Fixed compiler warnings (A few of these was bugs) · cee888ac
      Michael Widenius authored
      client/mysqldump.c:
        Slave needs to be initialized with 0
      dbug/dbug.c:
        Removed not existing function
      plugin/semisync/semisync_master.cc:
        Fixed compiler warning
      sql/opt_range.cc:
        thd needs to be set early as it's used in some error conditions.
      sql/sql_table.cc:
        Changed to use uchar* to make array indexing portable
      storage/innobase/handler/ha_innodb.cc:
        Removed not used variable
      storage/maria/ma_delete.c:
        Fixed compiler warning
      storage/maria/ma_write.c:
        Fixed compiler warning
      cee888ac
    • Sergei Golubchik's avatar
      MDEV-364 Server crashes in add_identifier on concurrent ALTER TABLE and SHOW ENGINE INNODB STATUS · ecc03af9
      Sergei Golubchik authored
      fix add_identifier() to distinguish between temporary tables (#sql- prefix) and temporary partitions (#TMP# suffix).
      change add_identifier() to use the same name variant constants as sql_partition.cc does.
      ecc03af9
  12. 10 Aug, 2012 1 commit
  13. 31 Jul, 2012 1 commit
    • Alexey Botchkov's avatar
      MDEV-340 Save replication comments for DROP TABLE. · 9705ad5e
      Alexey Botchkov authored
            mysql_rm_table_no_locks() function was modified.
            When we construct log record for the DROP TABLE, now we
            look if there's a comment before the first table name and
            add it to the record if so.
        
      per-file comments:
        sql/sql_table.cc
        MDEV-340 Save replication comments for DROP TABLE.
              comment_length() function implemented to find comments in the query,
              call it in mysql_rm_table_no_locks() and use the result to form log record.
        mysql-test/suite/binlog/r/binlog_drop_if_exists.result
        MDEV-340 Save replication comments for DROP TABLE.
              test result updated.
        mysql-test/suite/binlog/t/binlog_drop_if_exists.test
        MDEV-340 Save replication comments for DROP TABLE.
              test case added.
      9705ad5e
  14. 10 Jul, 2012 2 commits
    • Igor Babaev's avatar
      Added procedures to delete records by keys from statistical tables. · 47fae7f0
      Igor Babaev authored
      Now when a table is dropped the statistics on the table is removed 
      from the statistical tables. If the table is altered in such a way
      that a column is dropped or the type of the column is changed then
      statistics on the column is removed from the table column_stat.
      It also triggers removal of the statistics on the indexes who use
      this column as its component.
      
      Added procedures that changes the names of the tables or columns
      in the statistical tables for. 
      These procedures are used when tables/columns are renamed.
      
      Also partly re-factored the code that introduced the persistent
      statistical tables.
      
      Added test cases into statistics.test to cover the new code.
      47fae7f0
    • Jon Olav Hauglid's avatar
      Bug#12623923 Server can crash after failure to create · a47e778a
      Jon Olav Hauglid authored
                   primary key with innodb tables
      
      The bug was triggered if a single ALTER TABLE statement both
      added and dropped indexes and ALTER TABLE failed during drop
      (e.g. because the index was needed in a foreign key constraint).
      In such cases, the server index information would get out of
      sync with InnoDB - the added index would be present inside
      InnoDB, but not in the server. This could then lead to InnoDB
      error messages and/or server crashes.
      
      The root cause is that new indexes are added before old indexes
      are dropped. This means that if ALTER TABLE fails while dropping
      indexes, index changes will be reverted in the server but not
      inside InnoDB.
      
      This patch fixes the problem by dropping any added indexes
      if drop fails (for ALTER TABLE statements that both adds
      and drops indexes). 
      
      However, this won't work if we added a primary key as this
      key might not be possible to drop inside InnoDB. Therefore,
      we resort to the copy algorithm if a primary key is added
      by an ALTER TABLE statement that also drops an index.
      
      In 5.6 this bug is more properly fixed by the handler interface
      changes done in the scope of WL#5534 "Online ALTER".
      a47e778a
  15. 15 Jun, 2012 1 commit
    • Michael Widenius's avatar
      Fixed MDEV-306 / LP:1007967 - Assertion `table->file->stats.records > 0 ||... · acba7d2f
      Michael Widenius authored
      Fixed MDEV-306 / LP:1007967 - Assertion `table->file->stats.records > 0 || error' failed join_read_const_table on concurrent SELECT and DROP/ADD INDEX
      
      
      sql/sql_table.cc:
        Added comment
      storage/maria/ma_close.c:
        Don't store history if it's visible to all.
        This fixed the MDEV-306 bug
      storage/maria/ma_delete_table.c:
        Removed old comment
        Delete history state for deleted tables
      storage/maria/ma_info.c:
        More DBUG_PRINT
      storage/maria/ma_open.c:
        More DBUG_PRINT
      acba7d2f
  16. 01 Jun, 2012 1 commit
    • Jon Olav Hauglid's avatar
      Bug#13982017: ALTER TABLE RENAME ENDS UP WITH ERROR 1050 (42S01) · 1c0388a5
      Jon Olav Hauglid authored
      Fixed by backport of:
          ------------------------------------------------------------
          revno: 3402.50.156
          committer: Jon Olav Hauglid <jon.hauglid@oracle.com>
          branch nick: mysql-trunk-test
          timestamp: Wed 2012-02-08 14:10:23 +0100
          message:
            Bug#13417754 ASSERT IN ROW_DROP_DATABASE_FOR_MYSQL DURING DROP SCHEMA
            
            This assert could be triggered if an InnoDB table was being moved
            to a different database using ALTER TABLE ... RENAME, while this
            database concurrently was being dropped by DROP DATABASE.
            
            The reason for the problem was that no metadata lock was taken
            on the target database by ALTER TABLE ... RENAME.
            DROP DATABASE was therefore not blocked and could remove
            the database while ALTER TABLE ... RENAME was executing. This
            could cause the assert in InnoDB to be triggered.
            
            This patch fixes the problem by taking a IX metadata lock on
            the target database before ALTER TABLE ... RENAME starts
            moving a table to a different database.
            
            Note that this problem did not occur with RENAME TABLE which
            already takes the correct metadata locks.
            
            Also note that this patch slightly changes the behavior of
            ALTER TABLE ... RENAME. Before, the statement would abort and
            return an error if a lock on the target table name could not
            be taken immediately. With this patch, ALTER TABLE ... RENAME
            will instead block and wait until the lock can be taken 
            (or until we get a lock timeout). This also means that it is
            possible to get ER_LOCK_DEADLOCK errors in this situation
            since we allow ALTER TABLE ... RENAME to wait and not just
            abort immediately.
      1c0388a5
  17. 16 May, 2012 2 commits
    • Michael Widenius's avatar
      More fixes for LOCK TABLE and REPAIR/FLUSH · b1485a47
      Michael Widenius authored
      Changed HA_EXTRA_NORMAL to HA_EXTRA_NOT_USED (more clean)
      
      mysql-test/suite/maria/lock.result:
        More extensive tests of LOCK TABLE with FLUSH and REPAIR
      mysql-test/suite/maria/lock.test:
        More extensive tests of LOCK TABLE with FLUSH and REPAIR
      sql/sql_admin.cc:
        Fix that REPAIR TABLE ... USE_FRM works with LOCK TABLES
      sql/sql_base.cc:
        Ensure that transactions are closed in ARIA when doing flush
        HA_EXTRA_NORMAL -> HA_EXTRA_NOT_USED
        Don't call extra many times for a table in close_all_tables_for_name()
        Added test if table_list->table as this can happen in error situations
      sql/sql_partition.cc:
        HA_EXTRA_NORMAL -> HA_EXTRA_NOT_USED
      sql/sql_reload.cc:
        Fixed comment
      sql/sql_table.cc:
        HA_EXTRA_NORMAL -> HA_EXTRA_NOT_USED
      sql/sql_trigger.cc:
        HA_EXTRA_NORMAL -> HA_EXTRA_NOT_USED
      sql/sql_truncate.cc:
        HA_EXTRA_FORCE_REOPEN -> HA_EXTRA_PREPARE_FOR_DROP for truncate, as this speeds up truncate by not having to flush the cache to disk.
      b1485a47
    • Michael Widenius's avatar
      Fixed bug LP:973039 - Assertion `share->in_trans == 0' failed in maria_close... · 6d8e329c
      Michael Widenius authored
      Fixed bug LP:973039 - Assertion `share->in_trans == 0' failed in maria_close on DROP TABLE under LOCK
      - 5.5 was missing calls to ha_extra(HA_PREPARE_FOR_DROP | HA_PREPARE_FOR_RENAME);  Lost in merge 5.3 -> 5.5
      
      
      sql/sql_admin.cc:
        Updated arguments for close_all_tables_for_name
      sql/sql_base.h:
        Updated arguments for close_all_tables_for_name
      sql/sql_partition.cc:
        Updated arguments for close_all_tables_for_name
      sql/sql_table.cc:
        Updated arguments for close_all_tables_for_name
        Removed test of kill, as we have already called 'ha_extra(HA_PREPARE_FOR_DROP)' and the table may be inconsistent.
      sql/sql_trigger.cc:
        Updated arguments for close_all_tables_for_name
      sql/sql_truncate.cc:
        For truncate that is done with drop + recreate, signal that the table will be dropped.
      6d8e329c
  18. 18 Apr, 2012 1 commit
  19. 17 Apr, 2012 1 commit
    • Annamalai Gurusami's avatar
      Bug #12902967 CREATING SELF REFERENCING FK ON SAME INDEX · fe040069
      Annamalai Gurusami authored
      UNHANDLED, CONFUSING ERROR
      
      The main confusion with the error message is that "it 
      implies that your data dictionary may now be out of 
      sync".  This patch will remove the unwanted and the 
      misleading error message by not doing an unnecessary 
      operation in the error handling code.  
      
      rb://980 approved by: Dmitry Lenev
      fe040069
  20. 14 Apr, 2012 1 commit
  21. 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
  22. 23 Mar, 2012 1 commit
    • Michael Widenius's avatar
      Speedup: · c36bdf1c
      Michael Widenius authored
      - Don't call update_virtual_fields() if table->vfield is not set
      - Don't prealloc memory for in open_tables() as this is very seldom used.
      
      
      sql/records.cc:
        Don't call update_virtual_fields() if table->vfield is not set
      sql/sql_base.cc:
        Don't prealloc memory for in open_tables() as this is very seldom used.
        Don't call update_virtual_fields() if table->vfield is not set
      sql/sql_delete.cc:
        Don't call update_virtual_fields() if table->vfield is not set
      sql/sql_handler.cc:
        Don't call update_virtual_fields() if table->vfield is not set
      sql/sql_join_cache.cc:
        Don't call update_virtual_fields() if table->vfield is not set
        Move some frequent values to local variables
      sql/sql_table.cc:
        Don't call update_virtual_fields() if table->vfield is not set
      sql/sql_update.cc:
        Don't call update_virtual_fields() if table->vfield is not set
      sql/table.cc:
        Assert if update_virtual_fields is called with wrong parameters
      c36bdf1c
  23. 15 Feb, 2012 1 commit
  24. 09 Feb, 2012 1 commit
    • Rohit Kalhans's avatar
      BUG#11758263 50440: MARK UNORDERED UPDATE WITH AUTOINC UNSAFE · 31c990ca
      Rohit Kalhans authored
             
      Problem: Statements that write to tables with auto_increment columns
               based on the selection from another table, may lead to master
               and slave going out of sync, as the order in which the rows
               are retrieved from the table may differ on master and slave.
                  
      Solution: We mark writing to a table with auto_increment table
                based on the rows selected from another table as unsafe. This
                will cause the execution of such statements to throw a warning
                and forces the statement to be logged in ROW if the logging
                format is mixed. 
                  
      Changes:
             1. All the statements that writes to a table with auto_increment 
                column(s) based on the rows fetched from another table, will now
                be unsafe.
             2. CREATE TABLE with SELECT will now be unsafe.
      
      sql/share/errmsg-utf8.txt:
        Added new warning messages.
      sql/sql_base.cc:
        -Created function to check statements that write to 
         tables with auto_increment column and has select.
        -Marked all the statements that write to a table
         with auto_increment column based on rows fetched
         from other table(s) as unsafe.
      sql/sql_table.cc:
        mark CREATE TABLE[with auto_increment column] as unsafe.
      31c990ca
  25. 10 Jan, 2012 1 commit
  26. 05 Jan, 2012 1 commit
  27. 12 Dec, 2011 1 commit
    • Mattias Jonsson's avatar
      Bug#12361113: CRASH WHEN "LOAD INDEX INTO CACHE" WITH TOO · beedf6b2
      Mattias Jonsson authored
      SMALL KEY CACHE
      
      The server crashed on division by zero because the key cache was not
      initialized and the block length was 0 which was used in a division.
      
      The fix was to not allow CACHE INDEX if the key cache was not initiallized.
      Thus never try LOAD INDEX INTO CACHE for an uninitialized key cache.
      
      Also added some windows files/directories to .bzrignore.
      beedf6b2
  28. 29 Nov, 2011 1 commit
    • Michael Widenius's avatar
      Fixed compiler warnings · 47575bd0
      Michael Widenius authored
      dbug/tests.c:
        Added __attribute__((unused)) to get rid of compiler warning
      server-tools/instance-manager/guardian.cc:
        Added __attribute__((unused)) to get rid of compiler warning
      sql/filesort.cc:
        Added __attribute__((unused)) to get rid of compiler warning
      sql/slave.cc:
        Added __attribute__((unused)) to get rid of compiler warning
      sql/sql_load.cc:
        Added __attribute__((unused)) to get rid of compiler warning
      sql/sql_table.cc:
        Added __attribute__((unused)) to get rid of compiler warning
      storage/maria/ma_blockrec.c:
        Added __attribute__((unused)) to get rid of compiler warning
      storage/maria/ma_check.c:
        Added missing cast
      storage/maria/ma_loghandler.c:
        Added __attribute__((unused)) to get rid of compiler warning
      storage/maria/ma_recovery.c:
        Added __attribute__((unused)) to get rid of compiler warning
      storage/pbxt/src/cache_xt.cc:
        Added __attribute__((unused)) to get rid of compiler warning
      storage/xtradb/fil/fil0fil.c:
        Removed not used variable
      storage/xtradb/handler/ha_innodb.cc:
        Use unused variable
      vio/viosocket.c:
        Remove usage of not used variable
      vio/viosslfactories.c:
        Added cast
      47575bd0
  29. 21 Nov, 2011 1 commit
    • Sneha Modi's avatar
      Bug#11748731:SOME 'BIG' TESTS FAILING ON 6.0 · 7ee2962f
      Sneha Modi authored
      A patch for alter_table-big.test has been committed earlier.
      This is a patch for create-big.test:
      The test used to time-out after 900 seconds. 
      It relied on debug sleeps that are no longer present in the 
      code. Since the sleeps are long gone, fixing the problem didn't 
      involve just updating the result file or using macro 
      "show_binlog_events2.inc" instead of "show binlog events" 
      statement. The test needed to be rewritten using debug sync 
      points, and result then needed to be updated.
      So, the sleeps have been replaced by debug_sync points and the test execution time has 
      been reduced significantly.
      7ee2962f
  30. 11 Nov, 2011 1 commit
  31. 01 Nov, 2011 1 commit
  32. 02 Nov, 2011 1 commit
  33. 19 Oct, 2011 1 commit
  34. 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
  35. 12 Jul, 2011 1 commit
  36. 02 Jul, 2011 1 commit