1. 12 Mar, 2019 10 commits
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · e4505279
      Marko Mäkelä authored
      e4505279
    • Marko Mäkelä's avatar
      MDEV-18878: After-merge fixes · 69b33fca
      Marko Mäkelä authored
      In 10.3, all records will be processed by purge due to MDEV-12288.
      But, the insert undo records do not contain a transaction identifier.
      
      row_purge_parse_undo_rec(): Use node->trx_id=TRX_ID_MAX for the
      insert undo records. We cannot skip table lookups for these records
      after DISCARD TABLESPACE other than by 'detaching' the table from
      the undo logs by updating SYS_TABLES.ID on both DISCARD TABLESPACE
      and IMPORT TABLESPACE.
      
      Also, remove a redundant condition that was introduced
      in the merge commit 814205f3.
      69b33fca
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · b32bc70e
      Marko Mäkelä authored
      b32bc70e
    • Marko Mäkelä's avatar
      Add an end-of-tests marker to ease merges · f72760df
      Marko Mäkelä authored
      f72760df
    • Marko Mäkelä's avatar
      MDEV-18902 Uninitialized variable in recv_parse_log_recs() · bef947b4
      Marko Mäkelä authored
      recv_parse_log_recs(): Do not compare type if ptr==end_ptr
      (we have reached the end of the redo log parsing buffer),
      because it will not have been correctly initialized in that case.
      bef947b4
    • Marko Mäkelä's avatar
      MDEV-18878: Fix GCC -flifetime-dse · e070cfe3
      Marko Mäkelä authored
      GCC 6 and later can optimize away the memset() that is part of
      mem_heap_zalloc() in a placement new call. So, instead of relying
      on that kind of initialization, explicitly initialize the necessary
      fields in the constructors.
      
      que_common_t::que_common_t(): Initialize more fields in the
      default constructor.
      
      purge_vcol_info_t::purge_vcol_info_t(): Initialize all fields in
      the default constructor.
      
      purge_node_t::purge_node_t(): Initialize all necessary fields.
      
      Reference:
      
          https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71388
      
          https://gcc.gnu.org/ml/gcc/2016-02/msg00207.html
      e070cfe3
    • Marko Mäkelä's avatar
      Merge 10.1 into 10.2 · e374755b
      Marko Mäkelä authored
      e374755b
    • Marko Mäkelä's avatar
      MDEV-18749: Fix GCC -flifetime-dse · 32de60bb
      Marko Mäkelä authored
      row_merge_create_fts_sort_index(): Initialize dict_col_t in
      an unambiguous way. GCC 6 and later appear to be able to optimize
      away the memset() that is part of mem_heap_zalloc() in the
      placement new call. Let us avoid using placement new in order
      to ensure that the objects will actually be initialized.
      
      https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71388
      
      https://gcc.gnu.org/ml/gcc/2016-02/msg00207.html
      
      While the latter reference hints that the optimization is only
      applicable to non-POD types (and dict_col_t does not define
      any member functions before 10.2), it is most consistent to
      use the same initialization across all versions.
      32de60bb
    • Sergei Golubchik's avatar
      MDEV-17070 Table corruption or Assertion `table->file->stats.records > 0 ||... · 69abd437
      Sergei Golubchik authored
      MDEV-17070 Table corruption or Assertion `table->file->stats.records > 0 || error' or Assertion `!is_set() || (m_status == DA_OK_BULK && is_bulk_op())' failed upon actions on temporary table
      
      This was caused by a combination of factors:
      * MyISAM/Aria temporary tables historically never saved the state
        to disk (MYI/MAI), because the state never needed to persist
      * certain ALTER TABLE operations modify the original TABLE structure
        and if they fail, the original table has to be reopened to
        revert all changes (m_needs_reopen=1)
      
      as a result, when ALTER fails and MyISAM/Aria temp table gets reopened,
      it reads the stale state from the disk.
      
      As a fix, MyISAM/Aria tables now *always* write the state to disk
      on close, *unless* HA_EXTRA_PREPARE_FOR_DROP was done first. And
      the server now always does HA_EXTRA_PREPARE_FOR_DROP before dropping
      a temporary table.
      69abd437
    • Sergei Golubchik's avatar
      7025a51a
  2. 11 Mar, 2019 16 commits
  3. 09 Mar, 2019 7 commits
  4. 08 Mar, 2019 7 commits