1. 11 Mar, 2015 1 commit
    • Daniel Black's avatar
      Add Master_gtid_wait_{count,time,timeouts} status · fa5809ce
      Daniel Black authored
      MASTER_GTID_WAIT function needs some status to evaluate its use.
      
      master_gtid_wait_count indicates how many times the function is called.
      master_gtid_wait_time indicates how much time in microseconds occurred
      waiting (or timing out)
      master_gtid_timeouts indicates how many time times this function timed
      out rather than all successful gtids events being available.
      fa5809ce
  2. 06 Mar, 2015 7 commits
  3. 05 Mar, 2015 3 commits
  4. 04 Mar, 2015 3 commits
    • Kristian Nielsen's avatar
      3ef0b9b2
    • Kristian Nielsen's avatar
      MDEV-6403: Temporary tables lost at STOP SLAVE in GTID mode if master has not... · 78c74dbe
      Kristian Nielsen authored
      MDEV-6403: Temporary tables lost at STOP SLAVE in GTID mode if master has not rotated binlog since restart
      
      The binlog contains specially marked format description events to mark
      when a master restart happened (which could have caused temporary
      tables to be silently dropped). Such events also cause slave to close
      temporary tables.
      
      However, there was a bug that if after this, slave re-connects to the
      master in GTID mode, the master can send an old format description
      event again. If temporary tables are closed when such event is seen
      for the second time, it might drop temporary tables created after that
      event, and cause replication failure.
      
      With this patch, the restart flag of the format description event is
      cleared by the master when it is sent to the slave in a subsequent
      connection, to avoid the errorneous temp table close.
      78c74dbe
    • Kristian Nielsen's avatar
      MDEV-6589: Incorrect relay log start position when restarting SQL thread after... · ad0d203f
      Kristian Nielsen authored
      MDEV-6589: Incorrect relay log start position when restarting SQL thread after error in parallel replication
      
      The problem occurs in parallel replication in GTID mode, when we are using
      multiple replication domains. In this case, if the SQL thread stops, the
      slave GTID position may refer to a different point in the relay log for each
      domain.
      
      The bug was that when the SQL thread was stopped and restarted (but the IO
      thread was kept running), the SQL thread would resume applying the relay log
      from the point of the most advanced replication domain, silently skipping all
      earlier events within other domains. This caused replication corruption.
      
      This patch solves the problem by storing, when the SQL thread stops with
      multiple parallel replication domains active, the current GTID
      position. Additionally, the current position in the relay logs is moved back
      to a point known to be earlier than the current position of any replication
      domain. Then when the SQL thread restarts from the earlier position, GTIDs
      encountered are compared against the stored GTID position. Any GTID that was
      already applied before the stop is skipped to avoid duplicate apply.
      
      This patch should have no effect if multi-domain GTID parallel replication is
      not used. Similarly, if both SQL and IO thread are stopped and restarted, the
      patch has no effect, as in this case the existing relay logs are removed and
      re-fetched from the master at the current global @@gtid_slave_pos.
      ad0d203f
  5. 02 Mar, 2015 2 commits
  6. 01 Mar, 2015 4 commits
    • Olivier Bertrand's avatar
      - Make json_udf test work on Windows · b9a9b82f
      Olivier Bertrand authored
      modified:
        storage/connect/mysql-test/connect/t/json_udf.inc
      b9a9b82f
    • Olivier Bertrand's avatar
      - Making json_udf test working on linux · 5f4909b3
      Olivier Bertrand authored
      added:
        storage/connect/mysql-test/connect/t/json_udf.inc
      modified:
        storage/connect/mysql-test/connect/r/json_udf.result
        storage/connect/mysql-test/connect/t/json_udf.test
      5f4909b3
    • Olivier Bertrand's avatar
      - Remove a signed/unsigned warning. · 34c89597
      Olivier Bertrand authored
      modified:
        storage/connect/jsonudf.cpp
      34c89597
    • Olivier Bertrand's avatar
      - Fix crash when Json_Value was called without arguments. · 5c8862ee
      Olivier Bertrand authored
        Correct memory calculation in Serialize.
        Correct some UDF's messages.
        Add and modify the json tests
      removed:
        storage/connect/mysql-test/connect/std_data/biblio.jsn
        storage/connect/mysql-test/connect/std_data/expense.jsn
        storage/connect/mysql-test/connect/std_data/mulexp3.jsn
        storage/connect/mysql-test/connect/std_data/mulexp4.jsn
        storage/connect/mysql-test/connect/std_data/mulexp5.jsn
      added:
        storage/connect/mysql-test/connect/r/json_udf.result
        storage/connect/mysql-test/connect/std_data/biblio.json
        storage/connect/mysql-test/connect/std_data/expense.json
        storage/connect/mysql-test/connect/std_data/mulexp3.json
        storage/connect/mysql-test/connect/std_data/mulexp4.json
        storage/connect/mysql-test/connect/std_data/mulexp5.json
        storage/connect/mysql-test/connect/t/json_udf.test
      modified:
        storage/connect/json.cpp
        storage/connect/jsonudf.cpp
        storage/connect/mysql-test/connect/r/json.result
        storage/connect/mysql-test/connect/t/json.test
      5c8862ee
  7. 28 Feb, 2015 2 commits
    • Olivier Bertrand's avatar
      - Implement random access to ODBC tables · d862d7c0
      Olivier Bertrand authored
      modified:
        storage/connect/odbconn.cpp
        storage/connect/odbconn.h
      
      - Fix get proper length of ODBC DECIMAL column in discovery
      modified:
        storage/connect/ha_connect.cc
        storage/connect/mysql-test/connect/r/odbc_oracle.result
      
      - Implement random access to JSON tables
      modified:
        storage/connect/tabjson.cpp
        storage/connect/tabjson.h
      
      - Fix MDEV-7636
      modified:
        storage/connect/tabutil.cpp
      d862d7c0
    • Vicențiu Ciorbaru's avatar
      MDEV-6838: Using too big key for internal temp tables · 45b6edb1
      Vicențiu Ciorbaru authored
      This bug manifests due to wrong computation and evaluation of
      keyinfo->key_length. The issues were:
      * Using table->file->max_key_length() as an absolute value that must not be
        reached for a key, while it represents the maximum number of bytes
        possible for a table key.
      * Incorrectly computing the keyinfo->key_length size during
        KEY_PART_INFO creation. The metadata information regarding the key
        such the field length (for strings) was added twice.
      45b6edb1
  8. 27 Feb, 2015 2 commits
  9. 26 Feb, 2015 1 commit
  10. 25 Feb, 2015 5 commits
  11. 24 Feb, 2015 7 commits
  12. 23 Feb, 2015 3 commits
    • Kristian Nielsen's avatar
      MDEV-7458: Deadlock in parallel replication can allow following transaction to... · 79e9ff44
      Kristian Nielsen authored
      MDEV-7458: Deadlock in parallel replication can allow following transaction to start replicating too early
      
      In parallel replication, don't rollback inside ha_commit_trans() in case of
      error.
      
      The rollback will be done later, but the parallel replication code needs to
      run unmark_start_commit() before the rollback to properly control the
      sequencing of transactions.
      
      I did not manage to come up with a reliable automatic test case for this, but
      I tested it manually.
      79e9ff44
    • Kristian Nielsen's avatar
      Add error handling on realpath() call. · 41cfdc83
      Kristian Nielsen authored
      (Without this, it happened for me that realpath() failed returning
      undef for the default vardir. This in turn caused mysql-test-run.pl to
      delete the source mysql-test/ directory.)
      
      Backport from 10.1, it's not nice to get one's source directory nuked
      by a rouge mysql-test-run.
      41cfdc83
    • Kristian Nielsen's avatar
      MDEV-7310: last_commit_pos_offset set to wrong value after binlog rotate in group commit · b5d6aa55
      Kristian Nielsen authored
      When the binlog was rotated due to @@max_binlog_size, the values of the
      binlog_shapshot_file and binlog_snapshot_position were inconsistent in case of
      non-transactional DML. The position was refering to the old file, while the
      filename was of the new file after rotation. This patch makes them consistent
      by making sure the position is also refering to the new file.
      b5d6aa55