1. 30 May, 2022 3 commits
  2. 29 May, 2022 1 commit
  3. 25 May, 2022 3 commits
    • Marko Mäkelä's avatar
      Merge 10.4 into 10.5 · ea40c75c
      Marko Mäkelä authored
      ea40c75c
    • Marko Mäkelä's avatar
      MDEV-28601 InnoDB history list length was reverted to 32 bits · 99c8aed0
      Marko Mäkelä authored
      srv_do_purge(): In commit edde1f6e
      when the de-facto 32-bit trx_sys_t::history_size() was replaced with
      32-bit trx_sys.rseg_history_len, some more variables were changed
      from ulint (size_t) to uint32_t.
      
      The history list length is the number of committed transactions whose
      undo logs are waiting to be purged. Each TRX_RSEG_HISTORY list is
      storing the number of entries in a 32-bit field and each transaction
      will occupy at least one undo log page. It is thinkable that the
      length of each TRX_RSEG_HISTORY list may approach the maximum
      representable number. The number cannot be exceeded, because the
      rollback segment header is allocated from the same tablespace as
      the undo log header pages it is pointing to, and because the page
      numbers of a tablespace are stored in 32 bits. In any case, it is
      possible that the total number of unpurged committed transactions
      cannot be represented in 32 but 39 bits (corresponding to
      128 rollback segments and undo tablespaces).
      99c8aed0
    • Marko Mäkelä's avatar
      MDEV-28668 Recovery or backup of INSERT may be incorrect · a0e4853e
      Marko Mäkelä authored
      page_cur_insert_rec_low(): When checking for common bytes with
      the preceding record, exclude the header bytes of next_rec
      that could have been updated by this function.
      
      The scenario where this caused corruption was an insert of
      a node pointer record. The child page number was written as
      0x203 but recovered as 0x103 because the n_owned field of next_rec
      was changed from 1 to 2 before the comparison was invoked.
      a0e4853e
  4. 24 May, 2022 11 commits
  5. 23 May, 2022 3 commits
    • Tingyao Nian's avatar
      MDEV-22023 Update man pages titles to say MariaDB instead of MySQL · 3dd3dccb
      Tingyao Nian authored
      When reading the man page of e.g. 'mysql' on a system with MariaDB
      installed one would actually see the man page of 'mariadb'. However the
      man page had no indication of the page being for 'mariadb', which was
      confusing for users.
      
      Fix this by updating the man page title lines to use mariadb-* instead
      of mysql* for MariaDB binaries that are drop-in replacements for MySQL
      equivalents, indicating that the commands are actually of the MariaDB
      version.
      
      In long term, all the commands in man pages should be replaced by their
      MariaDB counterparts. Update the title lines as a start, and only those
      that exist as symlinks to their MariaDB counterparts.
      
      Before:
      
          man mariadb-upgrade | head -n 1
          MYSQL_UPGRADE(1) ...
      
      After:
      
          man mariadb-upgrade | head -n 1
          MARIADB-UPGRADE(1) ...
      
      All new code of the whole pull request, including one or several files
      that are either new files or modified ones, are contributed under the
      BSD-new license. I am contributing on behalf of my employer Amazon Web
      Services, Inc.
      3dd3dccb
    • Marko Mäkelä's avatar
      Merge 10.4 into 10.5 · a0f0687f
      Marko Mäkelä authored
      a0f0687f
    • Marko Mäkelä's avatar
      Merge 10.4 into 10.5 · 2f6a014f
      Marko Mäkelä authored
      2f6a014f
  6. 20 May, 2022 6 commits
  7. 19 May, 2022 1 commit
    • Oleg Smirnov's avatar
      MDEV-28246 Optimizer uses all partitions after upgrade to 10.3 · 40d9dbb2
      Oleg Smirnov authored
      Cause: a copy of the joined TABLE_LIST is created during multi_update::prepare
      and TABLE::pos_in_table_list of the tables are set to point to the new
      TABLE_LIST object. This prevents some optimization steps to perform correctly.
      Solution: do not update pos_in_table_list during multi_update::prepare
      40d9dbb2
  8. 18 May, 2022 2 commits
    • KiyoshiTakeda's avatar
      MDEV-14642 Assertion 'table->s->db_create_options ==... · 8881c010
      KiyoshiTakeda authored
      MDEV-14642 Assertion 'table->s->db_create_options == part_table->s->db_create_options' failed in compare_table_with_partition
      
      When trying to execute ALTER TABLE EXCHANGE PARTITION with different
      definitions, assertion
      
          table->s->db_create_options == part_table->s->db_create_options
      
      failed in compare_table_with_partition().
      
      However, this execution should not be allowed since executing
      'exchange partition' requires the identical structure of the two tables.
      
      To fix the problem, I deleted the assertion code and added code that
      returns an error that indicates tables have different definitions.
      
      Reviewed By: Nayuta Yanagisawa
      8881c010
    • Sergei Golubchik's avatar
      Merge branch '10.4' into 10.5 · 7970ac7f
      Sergei Golubchik authored
      7970ac7f
  9. 17 May, 2022 10 commits