1. 19 Mar, 2014 7 commits
    • Michael Widenius's avatar
      Fix for MDEV-5589: "Discrepancy in binlog on half-failed CREATE OR REPLACE" · c4bb7cd6
      Michael Widenius authored
      Now if CREATE OR REPLACE fails but we have deleted a table already, we will generate a DROP TABLE in the binary log.
      This fixes this issue.
      
      In addition, for a failing CREATE OR REPLACE TABLE ... SELECT we don't generate a log of all the inserted rows, only the DROP TABLE.
      
      I added code for not logging DROP TEMPORARY TABLE for tables where the CREATE TABLE was not logged. This code will be activated in 10.1
      by removing the code protected by DONT_LOG_DROP_OF_TEMPORARY_TABLES.
      
      
      
      
      
      mysql-test/suite/rpl/r/create_or_replace_mix.result:
        More test cases
      mysql-test/suite/rpl/r/create_or_replace_row.result:
        More test cases
      mysql-test/suite/rpl/r/create_or_replace_statement.result:
        More test cases
      mysql-test/suite/rpl/t/create_or_replace.inc:
        More test cases
      sql/log.cc:
        Added binlog_reset_cache() to clear the binary log.
      sql/log.h:
        Added prototype
      sql/sql_insert.cc:
        If CREATE OR REPLACE TABLE ... SELECT fails:
        - Don't log anything if nothing changed
        - If table was deleted, log a DROP TABLE.
        Remember if we table creation of temporary tables was logged.
      sql/sql_table.cc:
        Added log_drop_table()
        Remember if we table creation of temporary tables was logged.
        If CREATE OR REPLACE TABLE ... SELECT fails and a table was deleted, log a DROP TABLE.
      sql/sql_table.h:
        Added prototype
      sql/sql_truncate.cc:
        Remember if we table creation of temporary tables was logged.
      sql/table.h:
        Added table_creation_was_logged
      c4bb7cd6
    • Michael Widenius's avatar
      Automatic merge · d1655ba6
      Michael Widenius authored
      d1655ba6
    • Michael Widenius's avatar
      MDEV-5854 Interrupted CREATE OR REPLACE is written into binlog, and in a wrong format · 913d1f19
      Michael Widenius authored
      
      mysql-test/r/create_or_replace2.result:
        Added test case
      mysql-test/t/create_or_replace.test:
        Fixed comment
      mysql-test/t/create_or_replace2.test:
        Added test case
      sql/sql_base.cc:
        Safety fix:
        Don't let threads with query_id=0 free temporary tables as this may free temporary tables not in use.
        This is mostly the case for the slave io threads, as most other threads has thd->query_id != 0.
      sql/sql_table.cc:
        Added comment.
        Ignore kill when opening temporary table for CREATE ... LIKE.
        This fixed the original isue
      913d1f19
    • Sergey Petrunya's avatar
      Merge · 7ba9f064
      Sergey Petrunya authored
      7ba9f064
    • Sergey Petrunya's avatar
      MDEV-5901: EITS: killing the server leaves statistical tables in "marked as crashed" state · ebd4a820
      Sergey Petrunya authored
      - Do like sp.cc does with mysql.proc table: call HA_EXTRA_FLUSH after we've modified
        a statistical table.
      ebd4a820
    • unknown's avatar
      RBR triggers compiled-out with ifdefs in 10.0 · e7704bfd
      unknown authored
      e7704bfd
    • unknown's avatar
  2. 17 Mar, 2014 3 commits
  3. 16 Mar, 2014 1 commit
  4. 14 Mar, 2014 3 commits
  5. 13 Mar, 2014 2 commits
  6. 12 Mar, 2014 5 commits
    • Sergei Golubchik's avatar
      update test results · 89406110
      Sergei Golubchik authored
      89406110
    • Sergei Golubchik's avatar
      typo fixed · 4e29d31c
      Sergei Golubchik authored
      4e29d31c
    • Michael Widenius's avatar
      MDEV-5619: CREATE OR REPLACE does not release MDL_EXCLUSIVE upon failure · f320b12c
      Michael Widenius authored
      
      mysql-test/r/create_or_replace.result:
        Added test of releasing of metadata locks
      mysql-test/t/create_or_replace.test:
        Added test of releasing of metadata locks
      sql/handler.h:
        Added marker if table was deleted as part of CREATE OR REPLACE
      sql/sql_base.cc:
        Added Locked_tables_list::unlock_locked_table()
      sql/sql_class.h:
        New prototypes
      sql/sql_insert.cc:
        Unlock metadata locks for deleted table in case of error. Also do unlock tables if this was the only locked table.
      sql/sql_table.cc:
        Unlock metadata locks for deleted table in case of error. Also do unlock tables if this was the only locked table.
      f320b12c
    • Michael Widenius's avatar
      Fixed some failing tests · 49ca12a1
      Michael Widenius authored
      Remove memory warnings if mysql client aborts early
      Changed copyright for clients
      
      client/mysql.cc:
        Free memory if get_options fails, so that we don't get warnings from safemalloc
      include/welcome_copyright_notice.h:
        Added SkySQL to client copyrights
      mysql-test/valgrind.supp:
        Added suppressions for memory leaks from dlopen() for OpenSUSE 12.3
      storage/oqgraph/mysql-test/oqgraph/regression_mdev5744.result:
        Suppress warning
      storage/oqgraph/mysql-test/oqgraph/regression_mdev5744.test:
        Suppress warning
      49ca12a1
    • unknown's avatar
      Update the help text for --slave-parallel-threads, to clarify the · 2fc4a103
      unknown authored
      meaning of the count, and to remove the alpha warning.
      2fc4a103
  7. 11 Mar, 2014 3 commits
    • unknown's avatar
      MDEV-5804: If same GTID is received on multiple master connections in... · 8b9b7ec3
      unknown authored
      MDEV-5804: If same GTID is received on multiple master connections in multi-source replication, the event is double-executed causing corruption or replication failure
      
      Some fixes, mainly to make it work in non-parallel replication mode also
      (--slave-parallel-threads=0).
      
      Patch should be fairly complete now.
      8b9b7ec3
    • Michael Widenius's avatar
      Merge with 5.5 · 17278496
      Michael Widenius authored
      17278496
    • Michael Widenius's avatar
      Fixed a compiler failure and removed some warnings in windows · 800a278f
      Michael Widenius authored
      extra/replace.c:
        Removed compiler warning
      sql/unireg.cc:
        Removed compiler warning
      storage/maria/ma_blockrec.c:
        Removed compiler warning
      storage/maria/ma_dynrec.c:
        Fixed compiler failure
      storage/maria/ma_unique.c:
        Removed compiler warning
      storage/myisam/mi_check.c:
        Removed compiler warning
      storage/myisam/mi_checksum.c:
        Removed compiler warning
      800a278f
  8. 10 Mar, 2014 1 commit
    • Michael Widenius's avatar
      Fixed MDEV-5724 "Server crashes on SQL select containing more group by and... · 599eb0dc
      Michael Widenius authored
      Fixed MDEV-5724 "Server crashes on SQL select containing more group by and left join statements using innodb tables"
        
      The problem was that a big record was allocated on the stack, which casued stack to run out.
        
      Fixed by using my_safe_alloca() instead of my_alloca() when allocating records.
      Now only records <= 16384 are allocated on the stack.
      
      mysql-test/r/stack-crash.result:
        Added test case
      mysql-test/t/stack-crash.test:
        Added test case
      storage/maria/ma_blockrec.c:
        Use my_safe_alloca() instead of my_alloca()
      storage/maria/ma_dynrec.c:
        Use my_safe_alloca() instead of my_alloca()
      storage/maria/maria_def.h:
        Added MARIA_MAX_RECORD_ON_STACK
      storage/maria/maria_pack.c:
        Use my_safe_alloca() instead of my_alloca()
      599eb0dc
  9. 09 Mar, 2014 1 commit
    • unknown's avatar
      MDEV-5804: If same GTID is received on multiple master connections in... · 2c2478b8
      unknown authored
      MDEV-5804: If same GTID is received on multiple master connections in multi-source replication, the event is double-executed causing corruption or replication failure
      
      Before, the arrival of same GTID twice in multi-source replication
      would cause double-apply or in gtid strict mode an error.
      
      Keep the behaviour, but add an option --gtid-ignore-duplicates which
      allows to correctly handle duplicates, ignoring all but the first.
      This relies on the user ensuring correct configuration so that
      sequence numbers are strictly increasing within each replication
      domain; then duplicates can be detected simply by comparing the
      sequence numbers against what is already applied.
      
      Only one master connection (but possibly multiple parallel worker
      threads within that connection) is allowed to apply events within
      one replication domain at a time; any other connection that
      receives a GTID in the same domain either discards it (if it is
      already applied) or waits for the other connection to not have
      any events to apply.
      
      Intermediate patch, as proof-of-concept for testing. The main limitation
      is that currently it is only implemented for parallel replication,
      @@slave_parallel_threads > 0.
      2c2478b8
  10. 15 Mar, 2014 1 commit
  11. 07 Mar, 2014 5 commits
  12. 10 Mar, 2014 4 commits
    • Elena Stepanova's avatar
      Increase version number · 6dda6428
      Elena Stepanova authored
      6dda6428
    • Elena Stepanova's avatar
      The test had synchronization point, but did not save master position · f62eec52
      Elena Stepanova authored
      before that, which caused indeterministic outcome
      f62eec52
    • Michael Widenius's avatar
      Fixed MDEV-5724 "Server crashes on SQL select containing more group by and... · 3b55c2fe
      Michael Widenius authored
      Fixed MDEV-5724 "Server crashes on SQL select containing more group by and left join statements using innodb tables"
      
      The problem was that a big record was allocated on the stack, which casued stack to run out.
      
      Fixed by using my_safe_alloca() instead of my_alloca() when allocating records.
      Now only records <= 16384 are allocated on the stack.
      
      mysql-test/r/stack-crash.result:
        Added test case
      mysql-test/t/stack-crash.test:
        Added test case
      storage/maria/ma_blockrec.c:
        Use my_safe_alloca() instead of my_alloca()
      storage/maria/ma_dynrec.c:
        Use my_safe_alloca() instead of my_alloca()
      storage/maria/maria_def.h:
        Added MARIA_MAX_RECORD_ON_STACK
      storage/maria/maria_pack.c:
        Use my_safe_alloca() instead of my_alloca()
      3b55c2fe
    • Michael Widenius's avatar
      Fixed MDEV-5780 "create-big fails in 10.0" · b07f9f72
      Michael Widenius authored
      The issue was that create...trigger part of the test suite used a debug_sync point that before was never triggered (in other words, wrong meaningless test).
      With the new create ... replace code the debug sync point is triggered and the test case could not handled that.
      
      I fixed this by adding a wait and go for the debug syncpoint in the test.
      
      Removed some compiler warnings from mysql_cond_timedwait
      
      
      include/mysql/psi/mysql_thread.h:
        Removed compiler warnings
      mysql-test/r/create-big.result:
        New test result
      mysql-test/t/create-big.test:
        Fixed test case as create_table_select_before_check_if_exists was not before triggered by the code.
      b07f9f72
  13. 08 Mar, 2014 1 commit
  14. 07 Mar, 2014 3 commits