1. 19 Jul, 2023 15 commits
  2. 04 Jul, 2023 2 commits
  3. 03 Jul, 2023 4 commits
  4. 30 Jun, 2023 3 commits
    • Marko Mäkelä's avatar
      MDEV-31559 btr_search_hash_table_validate() does not check if CHECK TABLE is killed · 3d901438
      Marko Mäkelä authored
      btr_search_hash_table_validate(), btr_search_validate(): Add the
      parameter THD for checking if the statement has been killed.
      Any non-QUICK CHECK TABLE will validate the entire adaptive hash index
      for all InnoDB tables, which may be extremely slow when running
      multiple concurrent CHECK TABLE.
      3d901438
    • Marko Mäkelä's avatar
      Merge 10.6 into 10.9 · d04de1aa
      Marko Mäkelä authored
      d04de1aa
    • Oleg Smirnov's avatar
      MDEV-30639 Upgrade to 10.8 and later does not work on Windows · 6d911219
      Oleg Smirnov authored
      During the upgrade procedure on Windows mysqld.exe is started with
      the named pipe connection protocol. mysqladmin.exe then pings the
      server to check if is up and running. Command line looks like:
         mysqladmin.exe --protocol=pipe --socket=mysql_upgrade_service_xxx ping
      But the "socket" parameter resets the "protocol" which was previously
      initialized with the "pipe" value, setting it to "socket".
      As a result, connection cannot be established and the upgrade
      procedure fails.
      "socket" in Windows is used to pass the name of the pipe so resetting
      the protocol is not valid in this case.
      
      This commit fixes resetting of the "protocol" parameter with "socket"
      parameter in the case when protocol has been previously initialized
      to "pipe" value
      6d911219
  5. 29 Jun, 2023 1 commit
    • Oleg Smirnov's avatar
      MDEV-30639 Upgrade to 10.8 and later does not work on Windows · 8e2b20bf
      Oleg Smirnov authored
      During the upgrade procedure on Windows mysqld.exe is started with
      the named pipe connection protocol. mysqladmin.exe then pings the
      server to check if is up and running. Command line looks like:
         mysqladmin.exe --protocol=pipe --socket=mysql_upgrade_service_xxx ping
      But the "socket" parameter resets the "protocol" which was previously
      initialized with the "pipe" value, setting it to "socket".
      As a result, connection cannot be established and the upgrade
      procedure fails.
      "socket" in Windows is used to pass the name of the pipe so resetting
      the protocol is not valid in this case.
      
      This commit fixes resetting of the "protocol" parameter with "socket"
      parameter in the case when protocol has been previously initialized
      to "pipe" value
      8e2b20bf
  6. 28 Jun, 2023 4 commits
    • Sergei Petrunia's avatar
      MDEV-31573: rocksdb.group_min_max test fails · cd39f4ab
      Sergei Petrunia authored
      Set the histogram_type to be DOUBLE_PREC_HB as
      it originally was.
      cd39f4ab
    • Vlad Lesin's avatar
      MDEV-31570 gap_lock_split.test hangs sporadically · 3e89b4fc
      Vlad Lesin authored
      The fix is in replacing the waiting for the whole purge finishing
      with the the waiting for only delete-marked records purging finishing.
      
      Reviewed by: Marko Mäkelä
      3e89b4fc
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-31537 Bulk insert operation aborts the server for redundant table · 73f78fb3
      Thirunarayanan Balathandayuthapani authored
      - InnoDB bulk insert operation aborts the server for redundant
      table. InnoDB miscalculates the record size in temporary file
      for the redundant table. CHAR in redundant row format table
      always fixed length, but in temporary file, it is variable-length
      for variable-length character sets.
      73f78fb3
    • Vlad Lesin's avatar
      MDEV-30648 btr_estimate_n_rows_in_range() accesses unfixed, unlatched page · 687fd6be
      Vlad Lesin authored
      The issue is caused by MDEV-30400 fix.
      
      There are two cursors in btr_estimate_n_rows_in_range() - p1 and p2, but
      both share the same mtr. Each cursor contains mtr savepoint for the
      previously fetched block to release it then the current block is
      fetched.
      
      Before MDEV-30400 the block was released with
      mtr_t::release_block_at_savepoint(), it just unfixed a block and
      released its page patch. In MDEV-30400 it was replaced with
      mtr_t::rollback_to_savepoint(), which does the same as the former
      mtr_t::release_block_at_savepoint(ulint begin, ulint end) but also
      erases the corresponding slots from mtr memo, what invalidates any
      stored mtr's memo savepoints, greater or equal to "begin".
      
      The idea of the fix is to get rid of savepoints at all in
      btr_estimate_n_rows_in_range() and
      btr_estimate_n_rows_in_range_on_level(). As
      mtr_t::rollback_to_savepoint() erases elements from mtr_t::m_memo, we
      know what element of mtr_t::m_memo can be deleted on the certain case,
      so there is no need to store savepoints.
      
      See also the following slides for details:
      https://docs.google.com/presentation/d/1RFYBo7EUhM22ab3GOYctv3j_3yC0vHtBY9auObZec8U
      
      Reviewed by: Marko Mäkelä
      687fd6be
  7. 27 Jun, 2023 5 commits
  8. 26 Jun, 2023 2 commits
    • Marko Mäkelä's avatar
      Merge 10.5 into 10.6 · 49308383
      Marko Mäkelä authored
      49308383
    • Rucha Deodhar's avatar
      MDEV-28915: mysql_upgrade fails due to old_mode="", with "Cannot load from · 14275b47
      Rucha Deodhar authored
      mysql.proc. The table is probably corrupted"
      
      Analysis: When mysql_upgrade runs statements for upgrade, characterset is
      converted to utf8mb4 because server starts with old_mode that interprets
      utf8 to utf8mb4, but mysql.proc table has "utf8mb3" as hardcoded, so
      it crashes with corrupted table.
      
      Fix: Changed Table_check_intact::check() definition to allow both
      utf8mb3 and utf8mb4 by checking prefix and changing the upgrade scripts
      to explicitly use utf8mb3
      14275b47
  9. 25 Jun, 2023 4 commits
    • Monty's avatar
    • Michael Widenius's avatar
      MDEV-23106 Unable to recognize/import partitioned tables from physical MySQL databases · 3c7fd3c8
      Michael Widenius authored
      MDEV-29253 Detect incompatible MySQL partition scheme and either convert
      them or report to user and in error log.
      
      This task is about converting in place MySQL 5.6 and 5.7 partition tables
      to MariaDB as part of mariadb-upgrade.
      
      - Update TABLE_SHARE::init_from_binary_frm_image() to be able to read
        MySQL frm files with partitions.
      - Create .par file, if it do not exists, on open of partitioned table.
      
      Executing mariadb-upgrade will create all the missing .par files.
      The MySQL .frm file will be changed to MariaDB format after next
      ALTER TABLE.
      
      Other changes:
      - If we are using stored mysql_version to distingush between MySQL and
        MariaDB  .frm file information, do not upgrade mysql_version in the
        .frm file as part of CHECK TABLE .. FOR UPGRADE as this would cause
        problems next time we parse the .frm file.
      3c7fd3c8
    • Monty's avatar
      Fixed some errors & warnings when running mariadb-upgrade on MySQL instance · d671fec4
      Monty authored
      - Moved view checks after privilege tables are fixed. This is to avoid
        warnings about wrongly defined mysql.proc when checking views.
      - Don't use stat tables before they have been fixed.
      - Don't run mysql_fix_view() if 'FOR MYSQL' is used if the view is
        already a MariaDB view.
      - Added 'FOR UPGRADE' as an option for 'REPAIR VIEW' to be able to
        detect if the REPAIR command comes from mariadb_upgrade. In this
        case we get a warning, instead of an error, if a definer of a view
        does not exists.
      d671fec4
    • Vicentiu Ciorbaru's avatar
      Fix segfault in find_files if db is NULL and path does not exist or can't be read · 324d8a60
      Vicentiu Ciorbaru authored
      In this case, one would end up calling my_error(ER_BAD_DB_ERROR, ...)
      with a null ptr for DB, which caused a NULL ptr dereference.
      324d8a60