1. 18 Aug, 2015 4 commits
    • Monty's avatar
      Merge /my/maria-10.1-default into 10.1 · 4374da63
      Monty authored
      4374da63
    • Monty's avatar
      Fixed failing tests and compiler warnings · dfac82e4
      Monty authored
      - UNINIT_VAR() was required for 4.8.3 on openSUSE 13.2
      dfac82e4
    • Monty's avatar
      Ensure that fields declared with NOT NULL doesn't have DEFAULT values if not... · 6b203426
      Monty authored
      Ensure that fields declared with NOT NULL doesn't have DEFAULT values if not specified and if not timestamp or auto_increment
      
      In original code, sometimes one got an automatic DEFAULT value in some cases, in other cases not.
      
      For example:
      create table t1 (a int primary key)      - No default
      create table t2 (a int, primary key(a))  - DEFAULT 0
      create table t1 SELECT ....              - Default for all fields, even if they where defined as NOT NULL
      ALTER TABLE ... MODIFY could sometimes add an unexpected DEFAULT value.
      
      The patch is quite big because we had some many test cases that used
      CREATE ... SELECT or CREATE ... (...PRIMARY KEY(xxx)) which doesn't have an automatic DEFAULT anymore.
      
      Other things:
      - Removed warnings from InnoDB when waiting from semaphore (got this when testing things with --big)
      6b203426
    • Monty's avatar
      MDEV-8475 stale .TMM file causes MyiSAM and Aria engine to stop serving the table · 92fd6583
      Monty authored
      Issue was two fold (both in MyISAM and Aria)
      - optimize and repair failed if there was an old .TMM file around. As optimized and repair are protected against multiple execution, I decided to change so that we just truncate the file if it exists.
      - I had missed to check for error condition if creation of the temporary index file failed. This caused the strange behaviour that it looked as if optimized would have worked once.
      92fd6583
  2. 17 Aug, 2015 1 commit
    • Alexander Barkov's avatar
      Adding EXPLAIN SELECT tests for: · 5fe8b747
      Alexander Barkov authored
      MDEV-7649 wrong result when comparing utf8 column with an invalid literal
      This is a preparatory patch for:
      MDEV-8433 Make field<'broken-string' use indexes
      5fe8b747
  3. 14 Aug, 2015 5 commits
  4. 13 Aug, 2015 2 commits
  5. 12 Aug, 2015 3 commits
  6. 10 Aug, 2015 1 commit
  7. 09 Aug, 2015 1 commit
  8. 08 Aug, 2015 5 commits
    • Nirbhay Choubey's avatar
      MDEV-7205 : Galera cluster & sql_log_bin = off don't work · cd1a11ac
      Nirbhay Choubey authored
      While sql_bin_log=1(0) is meant to control binary logging for the
      current session so that the updates to do(not) get logged into the
      binary log to be replicated to the async MariaDB slave. The same
      should not affect galera replication.
      
      That is, the updates should always get replicated to other galera
      nodes regardless of sql_bin_log's value.
      
      Fixed by making sure that the updates are written to binlog cache
      irrespective of sql_bin_log.
      
      Added test cases.
      cd1a11ac
    • Jan Lindström's avatar
      MDEV-8582: innodb_force_primary_key option does not force PK or unique key · 46ad86f6
      Jan Lindström authored
      Analysis: Handler used table flag HA_REQUIRE_PRIMARY_KEY but a bug on
      sql_table.cc function mysql_prepare_create_table internally marked
      secondary key with NOT NULL colums as unique key and did not then
      fail on requirement that table should have primary key or unique key.
      46ad86f6
    • Jan Lindström's avatar
      MDEV-8582: innodb_force_primary_key option does not force PK or unique key · 3307eaab
      Jan Lindström authored
      Analysis: Handler table flag HA_REQUIRE_PRIMARY_KEY alone is not enough
      to force primary or unique key, if table has at least one NOT NULL
      column and secondary key for that column.
      
      Fix: Add additional check that table really has primary key or
      unique key for InnoDB terms.
      3307eaab
    • Jan Lindström's avatar
      MDEV-8583: Empty lines in encryption logging · 05bcb088
      Jan Lindström authored
      Removed extra line break.
      05bcb088
    • Jan Lindström's avatar
      MDEV-8410: Changing file-key-management to example-key-management causes crash and no real error · 18b0176a
      Jan Lindström authored
      MDEV-8409: Changing file-key-management-encryption-algorithm causes crash and no real info why
      
      Analysis: Both bugs has two different error cases. Firstly, at startup
      when server reads latest checkpoint but requested key_version,
      key management plugin or encryption algorithm or method is not found
      leading corrupted log entry. Secondly, similarly when reading system
      tablespace if requested key_version, key management plugin or encryption
      algorithm or method is not found leading buffer pool page corruption.
      
      Fix: Firsly, when reading checkpoint at startup check if the log record
      may be encrypted and if we find that it could be encrypted, print error
      message and do not start server. Secondly, if page is buffer pool seems
      corrupted but we find out that there is crypt_info, print additional
      error message before asserting.
      18b0176a
  9. 07 Aug, 2015 1 commit
  10. 04 Aug, 2015 4 commits
    • Kristian Nielsen's avatar
      Merge branch 'mdev8302-3' into 10.1 · afd59b57
      Kristian Nielsen authored
      afd59b57
    • Kristian Nielsen's avatar
      Fix embedded server build · 5ca061e6
      Kristian Nielsen authored
      5ca061e6
    • Kristian Nielsen's avatar
      Merge MDEV-8302 into 10.1 · dbd20579
      Kristian Nielsen authored
      dbd20579
    • Kristian Nielsen's avatar
      MDEV-8302: Duplicate key with parallel replication · 9b9c5e89
      Kristian Nielsen authored
      This bug is essentially another variant of MDEV-7458.
      
      If a transaction conflict caused a deadlock kill of T2 in record_gtid()
      during commit, the code would do a rollback _before_ running
      rgi->unmark_start_commit(). This creates a race where following transactions
      could start too early (before T2 has completed its transaction retry). This
      in turn could lead to replication failure, if there was a conflict that
      caused eg. duplicate key error or similar.
      
      The fix is to remove these rollbacks (in Query_log_event::do_apply_event()
      and Xid_log_event::do_apply_event(). They seem out-of-place; code in
      log_event.cc generally does not roll back on error, this is handled higher
      up.
      
      In addition, because of the extreme difficulty of reproducing bugs like
      MDEV-7458 and MDEV-8302, this patch adds some extra precations to try to
      detect (in debug builds) or prevent (in release builds) similar bugs.
      ha_rollback_trans() will now call unmark_start_commit() if needed (and
      assert in debug build when a caller does rollback without unmark first).
      
      We also add an extra check for thd->killed() so that we avoid doing
      mark_start_commit() if we already have a pending deadlock kill.
      
      And we add a missing unmark_start_commit() call in the error case, found by
      the above assertion.
      9b9c5e89
  11. 24 Jul, 2015 1 commit
  12. 23 Jul, 2015 2 commits
  13. 22 Jul, 2015 2 commits
  14. 21 Jul, 2015 1 commit
    • Jan Lindström's avatar
      MDEV-8501: encryption.create_or_replace fails in buildbot on P8 builders · 62b5a561
      Jan Lindström authored
      Analysis: There is race between drop table and encryption threads that
      could cause encryption thread to enter mutex that has been already
      released.
      
      Fix: When destroying crypt_data first enter the mutex and set crypt data
      unavailable, then release the memory and clean up the data. This should
      make the race more unprobable. Additionally, added big_test for
      create_or_replace as it could fail testcase timeout
      if you have slow I/O (tested that testcase passes with --mem).
      62b5a561
  15. 20 Jul, 2015 5 commits
  16. 19 Jul, 2015 2 commits