1. 27 Aug, 2018 2 commits
    • Igor Babaev's avatar
      MDEV-17017 Explain for query using derived table specified with · 497d8627
      Igor Babaev authored
                 a table value constructor shows wrong number of rows
      
      This is another attempt to fix this bug. The previous patch did not take
      into account that a transformation for ALL/ANY subqueries could be applied
      to the materialized table that wrapped the table value constructor used as
      a specification of the subselect used an ALL/ANY subquery. In this case
      the result of the derived table used a sink of the class select_subselect
      rather than of the class select_unit. Thus the previous fix could cause
      memory overwrites when running EXPLAIN for queries with table value
      constructors in ALL/ANY subselects.
      497d8627
    • Jan Lindström's avatar
      MDEV-17062: Test failure on galera.MW-336 · a290b807
      Jan Lindström authored
      MDEV-17058: Test failure on wsrep.variables
      MDEV-17060: Test failure on galera.galera_var_slave_threads
      
      Fix incorrect calculation of increased applier (slave) threads.
      Note that increase change takes effect "immediately" but we should
      use proper wait condition to wait it. Reducing the number of
      slave threads is not immediate as thread will only exit after a
      replication event.
      a290b807
  2. 25 Aug, 2018 2 commits
  3. 24 Aug, 2018 5 commits
  4. 23 Aug, 2018 2 commits
  5. 22 Aug, 2018 1 commit
    • Ming Lin's avatar
      MDEV-16703: Update AUTO_INCREMENT in the UPDATE statement · f7154242
      Ming Lin authored
      Currently RocksDB engine doesn't update AUTO_INCREMENT in the UPDATE statement.
      For example,
      
      CREATE TABLE t1 (pk INT AUTO_INCREMENT, a INT, PRIMARY KEY(pk)) ENGINE=RocksDB;
      INSERT INTO t1 (a) VALUES (1);
      UPDATE t1 SET pk = 3; ==> AUTO_INCREMENT should be updated to 4.
      
      Without this fix, it hits the Assertion `dd_val >= last_val' failed in
      myrocks::ha_rocksdb::load_auto_incr_value_from_index.
      f7154242
  6. 21 Aug, 2018 3 commits
    • Igor Babaev's avatar
      MDEV-16930 Crash when VALUES in derived table contains expressions · c43d11b9
      Igor Babaev authored
      This patch always provides columns of the temporary table used for
      materialization of a table value constructor with some names.
      Before this patch these names were always borrowed from the items
      of the first row of the table value constructor. When this row
      contained expressions and expressions were not named then it could cause
      different kinds of problems. In particular if the TVC is used as the
      specification of a derived table this could cause a crash.
      The names given to the expressions used in a TVC are the same as those
      given to the columns of the result set from the corresponding SELECT.
      c43d11b9
    • Igor Babaev's avatar
      MDEV-17017 Explain for query using derived table specified with a table · a1fd25c2
      Igor Babaev authored
                 value constructor shows wrong number of rows
      
      If the specification of a derived table contained a table value constructor
      then the optimizer incorrectly estimated the number of rows in the derived
      table. This happened because the optimizer did not take into account the
      number of rows in the constructor. The wrong estimate could lead to choosing
      inefficient execution plans.
      a1fd25c2
    • Daniel Black's avatar
      0dadb96e
  7. 16 Aug, 2018 8 commits
    • Monty's avatar
      Fixed that -DDBUG_ASSERT_AS_PRINTF works again · 34c7222c
      Monty authored
      Note that this option was only designed to work on binaries
      compiled without DBUG.
      34c7222c
    • Marko Mäkelä's avatar
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · 1eb2d8f6
      Marko Mäkelä authored
      1eb2d8f6
    • Marko Mäkelä's avatar
      Report all redo log corruption · 05153a67
      Marko Mäkelä authored
      Amend commit b853b4fd
      that was reverted in commit 29150e23.
      
      recv_parse_log_recs(): Do check for corrupted redo log or file
      system before checking for len==0, but only read *ptr if
      it is not past the end of the buffer (end_ptr).
      
      recv_parse_log_rec(): Report incorrect redo log type
      in a consistent way with recv_parse_or_apply_log_rec_body().
      This is a follow-up to commit f30c5af4.
      05153a67
    • Marko Mäkelä's avatar
      MDEV-16136 Various ASAN failures after MDEV-15030 · a0ce3216
      Marko Mäkelä authored
      The Pool poisoning that was introduced in MDEV-15030 introduced
      race conditions in AddressSanitizer builds, because concurrent
      poisoning and unpoisoning were not prevented by any synchronization
      primitive.
      
      Pool::get(): Protect the unpoisoning by m_lock_strategy.
      
      Pool::mem_free(): Protect the poisoning by m_lock_strategy.
      
      Pool::putl(): Renamed from put(), because now the caller is
      responsible for invoking m_lock_strategy.
      a0ce3216
    • Marko Mäkelä's avatar
      MDEV-16136: Prevent wrong reuse in trx_reference() · fa2a74e0
      Marko Mäkelä authored
      If trx_free() and trx_create_low() were called while a call to
      trx_reference() was pending, we could get a reference to a wrong
      transaction object.
      
      trx_reference(): Return NULL if the trx->id no longer matches.
      
      lock_trx_release_locks(): Assign trx->id = 0, so that trx_reference()
      will not return a reference to this object.
      
      trx_cleanup_at_db_startup(): Assign trx->id = 0.
      
      assert_trx_is_free(): Assert !trx->n_ref. Assert trx->id == 0,
      now that it will be cleared as part of a transaction commit.
      fa2a74e0
    • Marko Mäkelä's avatar
      Rename lock_pool_t to lock_list · 65835065
      Marko Mäkelä authored
      Also, replace reverse iteration with forward iteration.
      
      lock_table_has(): Remove a redundant condition.
      65835065
    • Marko Mäkelä's avatar
      MDEV-16136: Simplify trx_lock_t memory management · 3ce8a0fc
      Marko Mäkelä authored
      Allocate trx->lock.rec_pool and trx->lock.table_pool directly from trx_t.
      Remove unnecessary use of std::vector.
      
      In order to do this, move some definitions from lock0priv.h to
      lock0types.h, so that ib_lock_t will not be an opaque type.
      3ce8a0fc
  8. 15 Aug, 2018 2 commits
  9. 14 Aug, 2018 3 commits
  10. 13 Aug, 2018 6 commits
  11. 12 Aug, 2018 6 commits