1. 16 Nov, 2017 1 commit
  2. 15 Nov, 2017 2 commits
  3. 13 Nov, 2017 1 commit
    • Marko Mäkelä's avatar
      MDEV-14378 In ALGORITHM=INPLACE, use a common name for the intermediate tables or partitions · e94c9d24
      Marko Mäkelä authored
      Allow DROP TABLE `#mysql50##sql-...._.` to drop tables that were
      being rebuilt by ALGORITHM=INPLACE
      
      NOTE: If the server is killed after the table-rebuilding ALGORITHM=INPLACE
      commits inside InnoDB but before the .frm file has been replaced, then
      the recovery will involve something else than DROP TABLE.
      
      NOTE: If the server is killed in a true inplace ALTER TABLE commits
      inside InnoDB but before the .frm file has been replaced, then we
      are really out of luck. To properly handle that situation, we would
      need a transactional mysql.ddl_fixup table that directs recovery to
      rename or remove files.
      
      prepare_inplace_alter_table_dict(): Use the altered_table->s->table_name
      for generating the new_table_name.
      
      table_name_t::part_suffix: The start of the partition name suffix.
      
      table_name_t::dbend(): Return the end of the schema name.
      
      table_name_t::dblen(): Return the length of the schema name, in bytes.
      
      table_name_t::basename(): Return the name without the schema name.
      
      table_name_t::part(): Return the partition name, or NULL if none.
      
      row_drop_table_for_mysql(): Assert for #sql, not #sql-ib.
      e94c9d24
  4. 10 Nov, 2017 8 commits
  5. 09 Nov, 2017 11 commits
  6. 08 Nov, 2017 3 commits
  7. 07 Nov, 2017 8 commits
  8. 06 Nov, 2017 6 commits
    • Vladislav Vaintroub's avatar
      Fix test case · 120f848f
      Vladislav Vaintroub authored
      120f848f
    • Marko Mäkelä's avatar
      Remove dead code for non-debug builds · f830314f
      Marko Mäkelä authored
      f830314f
    • Igor Babaev's avatar
      Test case for mdev-13753 CTE is not visible during view creation · 8128ae48
      Igor Babaev authored
      The bug was fixed by the patch for the bug mdev-13780.
      8128ae48
    • Vladislav Vaintroub's avatar
    • Marko Mäkelä's avatar
      Merge 10.0 into 10.1 · 56911096
      Marko Mäkelä authored
      56911096
    • Marko Mäkelä's avatar
      MDEV-13328 ALTER TABLE…DISCARD TABLESPACE takes a lot of time · 51b4366b
      Marko Mäkelä authored
      With a big buffer pool that contains many data pages,
      DISCARD TABLESPACE took a long time, because it would scan the
      entire buffer pool to remove any pages that belong to the tablespace.
      With a large buffer pool, this would take a lot of time, especially
      when the table-to-discard is empty.
      
      The minimum amount of work that DISCARD TABLESPACE must do is to
      remove the pages of the to-be-discarded table from the
      buf_pool->flush_list because any writes to the data file must be
      prevented before the file is deleted.
      
      If DISCARD TABLESPACE does not evict the pages from the buffer pool,
      then IMPORT TABLESPACE must do it, because we must prevent pre-DISCARD,
      not-yet-evicted pages from being mistaken for pages of the imported
      tablespace.
      
      It would not be a useful fix to simply move the buffer pool scan to
      the IMPORT TABLESPACE step. What we can do is to actively evict those
      pages that could be mistaken for imported pages. In this way, when
      importing a small table into a big buffer pool, the import should
      still run relatively fast.
      
      Import is bypassing the buffer pool when reading pages for the
      adjustment phase. In the adjustment phase, if a page exists in
      the buffer pool, we could replace it with the page from the imported
      file. Unfortunately I did not get this to work properly, so instead
      we will simply evict any matching page from the buffer pool.
      
      buf_page_get_gen(): Implement BUF_EVICT_IF_IN_POOL, a new mode
      where the requested page will be evicted if it is found. There
      must be no unwritten changes for the page.
      
      buf_remove_t: Remove. Instead, use trx!=NULL to signify that a write
      to file is desired, and use a separate parameter bool drop_ahi.
      
      buf_LRU_flush_or_remove_pages(), fil_delete_tablespace():
      Replace buf_remove_t.
      
      buf_LRU_remove_pages(), buf_LRU_remove_all_pages(): Remove.
      
      PageConverter::m_mtr: A dummy mini-transaction buffer
      
      PageConverter::PageConverter(): Complete the member initialization list.
      
      PageConverter::operator()(): Evict any 'shadow' pages from the
      buffer pool so that pre-existing (garbage) pages cannot be mistaken
      for pages that exist in the being-imported file.
      
      row_discard_tablespace(): Remove a bogus comment that seems to
      refer to IMPORT TABLESPACE, not DISCARD TABLESPACE.
      51b4366b