1. 06 Nov, 2019 1 commit
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-20987 InnoDB fails to start when fts table has FK relation · 5c3bbbd8
      Thirunarayanan Balathandayuthapani authored
      InnoDB: Assertion failure in file .../dict/dict0dict.cc line ...
      InnoDB: Failing assertion: table->can_be_evicted
      
      This fixes a regression that was caused by the fix of MDEV-20621
      (commit a41d4297).
      MySQL 5.6 (and MariaDB 10.0) introduced eviction of tables from
      the InnoDB data dictionary cache. Tables that are connected to
      FOREIGN KEY constraints or FULLTEXT INDEX are exempt of the eviction.
      With the problematic change, a table that would already be exempt
      from eviction due to FOREIGN KEY would cause the problem if there
      also was a FULLTEXT INDEX defined on it.
      
      dict_load_table(): Only prevent eviction if table->can_be_evicted holds.
      5c3bbbd8
  2. 05 Nov, 2019 1 commit
  3. 04 Nov, 2019 2 commits
    • Vladislav Vaintroub's avatar
      Fix ninja build · dc771113
      Vladislav Vaintroub authored
      Do not rely on existence of CMakeFiles/${target}.dir directory existence
      It is not there for custom targets in Ninja build.
      dc771113
    • Marko Mäkelä's avatar
      Fix GCC 9.2.1 -Wstringop-truncation · 5164f8c2
      Marko Mäkelä authored
      dict_table_rename_in_cache(): Use strcpy() instead of strncpy(),
      because they are known to be equivalent in this case (the length
      of old_name was already validated).
      
      mariabackup: Invoke strncpy() with one less than the buffer size,
      and explicitly add NUL as the last byte of the buffer.
      5164f8c2
  4. 02 Nov, 2019 1 commit
    • pkubaj's avatar
      Fix build on !glibc/powerpc* · eb56339b
      pkubaj authored
      Do the same that newer branches do and don't include glibc-related headers on non-glibc environment.
      eb56339b
  5. 01 Nov, 2019 2 commits
  6. 31 Oct, 2019 2 commits
  7. 30 Oct, 2019 14 commits
  8. 29 Oct, 2019 4 commits
  9. 28 Oct, 2019 2 commits
  10. 25 Oct, 2019 2 commits
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-20621 FULLTEXT INDEX activity causes InnoDB hang · a41d4297
      Thirunarayanan Balathandayuthapani authored
      - fts_optimize_thread() uses dict_table_t object instead of table id.
      So that it doesn't acquire dict_sys->mutex. It leads to remove the
      hang of dict_sys->mutex between fts_optimize_thread() and other threads.
      
      - in_queue to indicate whether the table is in fts_optimize_queue. It
      is protected by fts_optimize_wq->mutex to avoid any race condition.
      
      - fts_optimize_init() adds the fts table to the fts_optimize_wq
      a41d4297
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-19073 FTS row mismatch after crash recovery · bd22650b
      Thirunarayanan Balathandayuthapani authored
      InnoDB stores synced_doc_id + 1 value in FTS_CONFIG table. But
      while reading the synced doc id from FTS_CONFIG table after restart,
      InnoDB should read synced_doc_id - 1 to get the actual synced
      doc id value.
      bd22650b
  11. 23 Oct, 2019 1 commit
  12. 19 Oct, 2019 3 commits
  13. 15 Oct, 2019 3 commits
  14. 14 Oct, 2019 2 commits
    • Marko Mäkelä's avatar
      MDEV-20813: Remove the buf_flush_init_for_writing() assertion · ae702d76
      Marko Mäkelä authored
      Old InnoDB/XtraDB versions only initialized FIL_PAGE_TYPE for
      B-tree pages (to FIL_PAGE_INDEX), and left it uninitialized
      (possibly containing FIL_PAGE_INDEX) for others. In MySQL
      or MariaDB 5.5, the field is initialized on almost all pages,
      but still not all of them.
      
      In MariaDB 10.2 and later, buf_flush_init_for_writing() would
      initialize the FIL_PAGE_TYPE on such old pages, but only after
      passing the debug assertion that we are now removing from 10.1.
      There, we will be able to modify fil_crypt_rotate_page() so
      that it will skip the key rotation for pages that contain 0
      in FIL_PAGE_TYPE.
      
      In MariaDB 10.1, there is no logic that would initialize
      FIL_PAGE_TYPE on data pages in old data files after an update.
      So, encryption key rotation may routinely cause page flushes
      on pages that contain 0 in FIL_PAGE_TYPE.
      ae702d76
    • Marko Mäkelä's avatar
      MDEV-19740: Fix C++11 violations caught by GCC 9.2.1 · 2920377a
      Marko Mäkelä authored
      This is a backport of commit ec28f953
      to MariaDB Server 10.1.
      2920377a