1. 03 Jan, 2020 8 commits
  2. 02 Jan, 2020 3 commits
  3. 01 Jan, 2020 1 commit
    • Eugene Kosov's avatar
      MDEV-18115 Remove dummy tablespace for the redo log · 562c037b
      Eugene Kosov authored
      Redo log subsystem was decoupled from tablespace subsystem. It now manages file
      descriptors for redo log files by itself.
      
      FIL_TYPE_LOG: removed, code in various places was simplified
      
      SRV_LOG_SPACE_FIRST_ID: renamed to SRV_SPACE_ID_UPPER_BOUND
        to better match its purpose. Code in various places was simplified
      
      fil_n_log_flushes: replaced with log_sys::flushes
      fil_n_pending_log_flushes: replaced with log_sys::pending_flushes
      
      log_t::files::files: redo log file descriptors
      log_t::files::file_names: redo log file names
      
      log_t::files::set_file_names(): set file names without opening them
      log_t::files::open_files(): opens redo log files
      log_t::files::read(): treats several files as one big
      log_t::files::write(): treats several files as one big
      log_t::files::fsync(): flushes page cache to disk
      log_t::files::close_files(): closes redo log files
      
      fil_open_log_and_system_tablespace_files(): renamed to
        fil_open_system_tablespace_files()
        and obviously it now doesn't open redo log files
      
      global files[1000]: removed. Why it was needed at all?
      562c037b
  4. 31 Dec, 2019 2 commits
  5. 30 Dec, 2019 5 commits
    • Marko Mäkelä's avatar
      Cleanup after MDEV-12026 · 59d4f2a3
      Marko Mäkelä authored
      buf_flush_init_for_writing(): If innodb_checksum_algorithm=full_crc32,
      return even earlier.
      
      The logic to reset garbage FIL_PAGE_TYPE fields applies to
      data pages in old data files that were last written before
      commit 3926673c was introduced.
      
      When innodb_checksum_algorithm=full_crc32 is in effect, it only
      applies to newly created data files. A file that was created in
      full_crc32 format will keep that format. Other files will keep
      some other format than full_crc32. Hence, the garbage-resetting
      logic does not apply full_crc32 files.
      59d4f2a3
    • Marko Mäkelä's avatar
      Post-fix for MDEV-12253: Remove redundant log writes · 4a012ce2
      Marko Mäkelä authored
      The 8 bytes at FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION
      will be overwritten at page flush, in buf_page_encrypt_before_write(),
      ever since commit 765a4360
      (MariaDB 10.1.23, 10.2.6, 10.3.1).
      
      btr_store_big_rec_extern_fields(): Remove useless writes to the
      page header (and to the redo log) for ROW_FORMAT=COMPRESSED BLOB pages.
      4a012ce2
    • Marko Mäkelä's avatar
      Merge 10.4 into 10.5 · 3fa4a9e6
      Marko Mäkelä authored
      3fa4a9e6
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · ffc0a08d
      Marko Mäkelä authored
      ffc0a08d
    • Marko Mäkelä's avatar
      MDEV-21405 Assertion failed on instant ADD COLUMN · 02e30069
      Marko Mäkelä authored
      btr_cur_pessimistic_insert(): Relax a too strict debug assertion that
      would fail when the function is invoked by btr_cur_pessimistic_update()
      during innobase_add_instant_try(), that is, when updating the hidden
      metadata record during a subsequent ADD COLUMN operation involves
      splitting the leftmost clustered index leaf page.
      
      This is a partial backport of 301bd62b
      from 10.4.
      02e30069
  6. 29 Dec, 2019 2 commits
    • Nikita Malyavin's avatar
      MDEV-18865 Assertion `t->first->versioned_by_id()' failed in innodb_prepare_commit_versioned · 4923604e
      Nikita Malyavin authored
      Cause:
      * row_start != 0 treated as it exists. Probably, possible row permutations had not been taken in mind.
      
      Solution:
      * Checking both row_start and row_end is correct, so versioned() function is used
      4923604e
    • Nikita Malyavin's avatar
      MDEV-18875 Assertion `thd->transaction.stmt.ha_list == __null || trans ==... · 720e9bd5
      Nikita Malyavin authored
      MDEV-18875 Assertion `thd->transaction.stmt.ha_list == __null || trans == &thd->transaction.stmt' failed or bogus ER_DUP_ENTRY upon ALTER TABLE with versioning
      
      Cause:
      * when autocommit=0 (or transaction is issued by user),
       `ha_commit_trans` is called twice on ALTER TABLE, causing a duplicated
       insert into `transaction_registry` (ER_DUP_ENTRY).
      
      Solution:
      * ALTER TABLE makes an implicit commit by a second call. We actually
       need to make an insert only when it is a real commit. So is_real
       variable is additionally checked.
      720e9bd5
  7. 27 Dec, 2019 10 commits
  8. 26 Dec, 2019 2 commits
    • Varun Gupta's avatar
      MDEV-19680:: Assertion `!table || (!table->read_set ||... · 359d91aa
      Varun Gupta authored
      MDEV-19680:: Assertion `!table || (!table->read_set || bitmap_is_set(table->read_set, field_index) || (!(ptr >= table->record[0] && ptr < table->record[0] + table->s->reclength)))' or alike failed upon SELECT with mix of functions from simple view
      
      Set read_set bitmap for view from the JOIN::all_fields list instead of JOIN::fields_list
      as split_sum_func would have added items to the all_fields list.
      359d91aa
    • Varun Gupta's avatar
      MDEV-21318: Wrong results with window functions and implicit grouping · 891609b5
      Varun Gupta authored
      The issue here is for degenerate joins we should execute the window
      function but it is not getting executed in all the cases.
      
      To get the window function values window function needs to be executed
      always. This currently does not happen in few cases
      where the join would return 0 or 1 row like
        1) IMPOSSIBLE WHERE
        2) MIN/MAX optimization
        3) EMPTY CONST TABLE
      
      The fix is to make sure that window functions get executed
      and the temporary table is setup for the execution of window functions
      891609b5
  9. 25 Dec, 2019 3 commits
  10. 24 Dec, 2019 4 commits