1. 25 Mar, 2019 6 commits
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · c3a6c683
      Marko Mäkelä authored
      c3a6c683
    • Marko Mäkelä's avatar
      MDEV-14126: Detect unexpected emptying of B-tree pages · 72b934e3
      Marko Mäkelä authored
      If an index page becomes empty, btr_page_empty() should be called.
      72b934e3
    • Marko Mäkelä's avatar
    • Marko Mäkelä's avatar
      MDEV-14126: Remove page_is_root() · b59d4846
      Marko Mäkelä authored
      The predicate page_is_root(), which was added in MariaDB Server 10.2.2,
      is based on a wrong assumption.
      
      Under some circumstances, InnoDB can transform B-trees into a degenerate
      state where a non-leaf page has no sibling pages. Because of this,
      we cannot assume that a page that has no siblings is the root page.
      This bug will be tracked as MDEV-19022.
      
      Because of the bug that may affect many InnoDB data files, we must remove
      and replace the wrong predicate. Using the wrong predicate can cause
      corruption. A leaf page is not allowed to be empty except if it is the
      root page, and the entire table is empty.
      b59d4846
    • Marko Mäkelä's avatar
      MDEV-18090 Assertion failures due to virtual columns after upgrading to 10.2 · 71c781bf
      Marko Mäkelä authored
      MariaDB before MDEV-5800 in version 10.2.2 did not support
      indexed virtual columns. Non-persistent virtual columns were
      hidden from storage engines. Only starting with MDEV-5800, InnoDB
      would create internal metadata on virtual columns.
      
      Similar to what was done in MDEV-18084 and MDEV-18960, we adjust two more
      code paths for the old tables.
      
      ha_innobase::build_template(): Do not invoke
      dict_index_contains_col_or_prefix() for virtual columns if InnoDB
      does not store the metadata.
      
      innobase_build_col_map(): Relax an assertion about the number of columns.
      
      ha_innobase::omits_virtual_cols(): Renamed from omits_virtual_cols().
      71c781bf
    • Alexander Barkov's avatar
      SEQUENCE tests for MDEV-18892 Regression in slow log and admin statements · f03f4da6
      Alexander Barkov authored
      Adding tests to cover how SEQUENCE related statements work in combination
      with the slow log configuration commands.
      f03f4da6
  2. 23 Mar, 2019 2 commits
  3. 22 Mar, 2019 17 commits
  4. 21 Mar, 2019 12 commits
  5. 20 Mar, 2019 3 commits
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · f4116613
      Marko Mäkelä authored
      f4116613
    • Marko Mäkelä's avatar
      MDEV-18981 Possible corruption when using FOREIGN KEY with virtual columns · 630199e7
      Marko Mäkelä authored
      row_ins_foreign_fill_virtual(): Construct update->old_vrow
      with ROW_COPY_DATA instead of ROW_COPY_POINTERS. With the latter,
      the object would be pointing to a buffer pool page frame. That page
      frame can become stale and invalid as soon as
      row_ins_foreign_check_on_constraint() invokes mtr_t::commit().
      
      Most of the time, the pointer target is not going to be overwritten
      by anything, and everything appears to work correctly.
      Buffer pool page replacement is highly unlikely, and any pessimistic
      operation that would overwrite the old location of the record is only
      slightly more likely. It is not known whether there is an actual bug.
      This came up while diagnosing MDEV-18879 in MariaDB 10.3.
      630199e7
    • Marko Mäkelä's avatar
      MDEV-18879/MDEV-18972 Corrupted record inserted by FOREIGN KEY operation · b47cec6c
      Marko Mäkelä authored
      row_ins_foreign_check_on_constraint(): When constructing
      cascade->historical_row for tables WITH SYSTEM VERSIONING,
      use the appropriate mode ROW_COPY_DATA, because the pointers
      will be stale after mtr_commit() is invoked.
      b47cec6c