1. 06 Feb, 2018 12 commits
  2. 05 Feb, 2018 4 commits
  3. 04 Feb, 2018 1 commit
  4. 03 Feb, 2018 5 commits
  5. 02 Feb, 2018 14 commits
  6. 01 Feb, 2018 4 commits
    • Monty's avatar
      Ensure that thd->user_var_events_alloc is always relevant · 859fe1f2
      Monty authored
      If binary logging is not enabled thd->user_var_events_alloc
      would never be initialized.
      859fe1f2
    • Marko Mäkelä's avatar
      MDEV-15165 InnoDB purge for index on virtual column is trying to access an incomplete record · 44314c76
      Marko Mäkelä authored
      The algorithm change is based on a MySQL 8.0 fix for
      BUG #26818787: ASSERTION: DATA0DATA.IC:430:TUPLE
      by Krzysztof Kapuścik
      https://github.com/mysql/mysql-server/commit/ee606e62bbddd7ac3579b4a20ef8684fa7cd83fe
      
      If a record had been inserted in place of a delete-marked purgeable
      record by modifying that record, and purge was accessing that record
      before the off-page columns were written, row_build_index_entry()
      would have returned NULL, causing a crash.
      
      row_vers_non_virtual_fields_equal(): Check whether all non-virtual fields
      of an index are equal. Replaces row_vers_non_vc_match(). A more complex
      version of this function was called row_vers_non_vc_index_entry_match()
      in the MySQL 8.0 fix.
      
      row_vers_impl_x_locked_low(): This change is not directly related to
      the reported problem, but apparently to the removal of the function
      row_vers_non_vc_match(). This function checks if a secondary index
      record was modified by a transaction that has not been committed yet.
      For comparing the non-virtual columns, construct a secondary index
      tuple from the table row.
      
      row_vers_vc_matches_cluster(): Replace row_vers_non_vc_match() with
      code that is equivalent to the row_vers_non_vc_index_entry_match()
      in the MySQL 8.0 fix. Also, deduplicate some code by using goto.
      44314c76
    • Marko Mäkelä's avatar
      Correct a comment about incomplete records · 29240b50
      Marko Mäkelä authored
      The comment that I made in
      commit 06299ddd
      is inaccurate. Replace the comment, and make the assertion
      debug-only, because I cannot remember any reports of
      it ever failing in these 10 years.
      29240b50
    • Marko Mäkelä's avatar
      Silence a bogus warning about uninitialized m_size · 78716fff
      Marko Mäkelä authored
      If crypt_block != NULL the entire object crypt_pfx should be
      guaranteed to be initialized, including m_size, which will have been
      initialized either in allocate_large(), either directly or via
      allocate_trace().
      78716fff