1. 07 Oct, 2018 1 commit
    • Igor Babaev's avatar
      MDEV-17382 Hash join algorithm should not be used to join materialized · bd219043
      Igor Babaev authored
                 derived table / view by equality
      
      Now rows of a materialized derived table are always put into a
      temporary table before join operation. If BNLH is used to join this
      table with the result of a partial join then both operands of the
      join are actually put into main memory. In most cases this is not
      efficient.
      We could avoid this by sending the rows of the derived table directly
      to the join operation. However this kind of data flow is not supported
      yet.
      Fixed by not allowing usage of hash join algorithm to join a materialized
      derived table if it's joined by an equality predicate of the form
      f=e where f is a field of the derived table.
      bd219043
  2. 01 Oct, 2018 1 commit
  3. 22 Sep, 2018 2 commits
  4. 21 Sep, 2018 8 commits
  5. 20 Sep, 2018 3 commits
  6. 18 Sep, 2018 1 commit
    • Sergey Vojtovich's avatar
      MDEV-14410 - Assertion `table->pos_in_locked_tables == __null || · 327b2717
      Sergey Vojtovich authored
                   table->pos_in_locked_tables->table == table'
                   failed in mark_used_tables_as_free_for_reuse
      
      Assertion failure can be triggered by some DDL executed under LOCK TABLES
      that holds lock for DDL target table multiple times (either explicitly or
      implcitly).
      
      When closing all table instances for given table (e.g. when preparing for
      table removal during CREATE OR REPLACE), only one instance was removed
      from m_locked_tables list.
      
      Later we attempt to re-insert one of the instances in mysql_create_table()/
      add_back_last_deleted_lock(), which wasn't actually removed. This leads
      to m_locks_tables corruption, specifically loss of all following elements.
      
      Then UNLOCK TABLE won't reset some table instances properly (specifically
      pos_in_locked_tables), since they're not present in m_locked_tables.
      
      Eventually such table instance gets released to table cache and then
      re-used by subsequent statement, which triggers this assertion failure.
      327b2717
  7. 10 Sep, 2018 2 commits
  8. 06 Sep, 2018 2 commits
  9. 05 Sep, 2018 2 commits
  10. 04 Sep, 2018 11 commits
  11. 03 Sep, 2018 3 commits
  12. 31 Aug, 2018 1 commit
  13. 30 Aug, 2018 1 commit
    • Monty's avatar
      MDEV-16682 Assertion `(buff[7] & 7) == HEAD_PAGE' failed · 42f09ada
      Monty authored
      Problem was that SQL level tried to read a record with rnd_pos()
      that was already deleted by the same statement.
      In the case where the page for the record had been deleted, this
      caused an assert.
      Fixed by extending the assert to also handle empty pages and
      return HA_ERR_RECORD_DELETED for reads to deleted pages.
      42f09ada
  14. 29 Aug, 2018 1 commit
  15. 28 Aug, 2018 1 commit