1. 16 Jun, 2021 1 commit
    • Daniel Black's avatar
      MDEV-25894: support AIX as a platform in mtr · 48938c57
      Daniel Black authored
      Add fixed for tests mysqld--help,aix.rdiff and sysvars_server_notembedded,aix.rdiff
      
      AIX couldn't compile in embedded mode so leaving sysvars_server_embedded
      for later (if required).
      48938c57
  2. 09 Jun, 2021 4 commits
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-25642 InnoDB rename table copy DDL fails while dropping the table · 2c6d5c92
      Thirunarayanan Balathandayuthapani authored
      When doing a ALTER TABLE ... RENAME, MariaDB doesn't rename
      original table to #sql-backup, which it does in other cases,
      but insteads drops the original table directly. However
      this optimization doesn't work in case of InnoDB table
      with a foreign key constraint.
      
      During copy algorithm, InnoDB fails to rename the foreign key
      constraint(MDEV-25855). With this optimisation, InnoDB also
      fails to drop the original table because the table has
      FOREIGN Key constraint exist in INNODB_SYS_FOREIGN table.
      This leads to orphan .ibd file in InnoDB dictionary.
      so disabling this optimization when FK is involved.
      
      Reviewer: monty@mariadb.org
      2c6d5c92
    • Marko Mäkelä's avatar
      Merge 10.4 into 10.5 · b25d2a45
      Marko Mäkelä authored
      b25d2a45
    • Marko Mäkelä's avatar
      Merge 10.3 to 10.4 · c7ee039d
      Marko Mäkelä authored
      c7ee039d
    • Marko Mäkelä's avatar
      MDEV-25886 CHECK TABLE crash with DB_MISSING_HISTORY if innodb_read_only · 75a65d32
      Marko Mäkelä authored
      Occasionally, the test innodb.alter_copy would fail in MariaDB 10.6.1,
      reporting DB_MISSING_HISTORY during CHECK TABLE. It started to occur during
      the development of MDEV-25180, which introduced purge_sys.stop_SYS().
      If we delay purge more during DDL operations, then the test would
      almost always fail. The reason is that during startup we will restore
      a purge view, and CHECK TABLE would still use REPEATABLE READ
      even though innodb_read_only is set and other isolation levels
      than READ UNCOMMITTED are not guaranteed to work.
      
      ha_innobase::check(): Use READ UNCOMMITTED isolation level if
      innodb_read_only is set or innodb_force_recovery exceeds 3.
      
      dict_set_corrupted(): Do not update the persistent data dictionary
      if innodb_force_recovery exceeds 3.
      75a65d32
  3. 08 Jun, 2021 6 commits
  4. 07 Jun, 2021 5 commits
    • Igor Babaev's avatar
      MDEV-25682 Explain shows an execution plan different from actually executed · 8149e4d0
      Igor Babaev authored
      If a select query contained an ORDER BY clause that followed a LIMIT clause
      or an ORDER BY clause or ORDER BY with LIMIT the EXPLAIN output for the
      query showed an execution plan different from that was actually executed.
      
      Approved by Roman Nozdrin <roman.nozdrin@mariadb.com>
      8149e4d0
    • Monty's avatar
      MDEV-25866 Upgrade from pre-10.5.10 to 10.5.10 causes CHECK errors on encrypted Aria tables · bf5c050f
      Monty authored
      Hard to do a test case, but tested by hand and verified that mysql_upgrade
      will update the encrypted MariaDB tables.
      bf5c050f
    • Monty's avatar
      Fixed a DBUG_ASSERT when running zerofill() on aria tables · eed419b4
      Monty authored
      This happended when an aria table was already used by the system before
      running zerofill, which could happen with Aria system tables.
      
      Fixed by using a proper page type when reading pages in zerofill
      eed419b4
    • Marko Mäkelä's avatar
      MDEV-25783: Change buffer records are lost under heavy load · 310dff5d
      Marko Mäkelä authored
      ibuf_read_merge_pages(): Disable some code that was added in MDEV-20394
      in order to avoid a server hang if the change buffer is corrupted,
      presumably due to the race condition in recovery that was later fixed in
      MDEV-24449. The code will still be available in debug builds when
      the command line option --debug=d,ibuf_merge_corruption is specified.
      
      Due to MDEV-19514, the impact of this code is much worse starting
      with the 10.5 series. In older versions, the code was only enabled
      during a shutdown with innodb_fast_shutdown=0, but in 10.5 it was
      active during the normal operation of the server.
      310dff5d
    • Monty's avatar
      Make maria.repair more resiliant for different failures · f456e716
      Monty authored
      This is because on different compilation and server configurations the
      memory usage is different and the query can get killed in different places
      with different error messages as a result.
      
      Reviewer: None (trival change)
      f456e716
  5. 06 Jun, 2021 3 commits
    • Otto Kekäläinen's avatar
      Revert "CONNECT: move jar files to /usr/share and include them in DEBs" · 3c922d6d
      Otto Kekäläinen authored
      This partially reverts commit d7321893.
      
      The *.jar files are not being built and all Debian builds are failing
      as dh_install stops on missing files. To build them we would need to also
      add new Java build dependencies.
      
      In a stable release (10.2->10.5) we shouldn't add new files and certainly
      not any new build dependencies, so reverting commit.
      
      Also, the files are located in a different path, and already included
      in the mariadb-test-data package:
      
        /usr/share/mysql/mysql-test/plugin/connect/connect/std_data/JavaWrappers.jar
        /usr/share/mysql/mysql-test/plugin/connect/connect/std_data/JdbcMariaDB.jar
        /usr/share/mysql/mysql-test/plugin/connect/connect/std_data/Mongo2.jar
        /usr/share/mysql/mysql-test/plugin/connect/connect/std_data/Mongo3.jar
      
      This change needs to be redesigned and applies only on 10.6 or newer.
      3c922d6d
    • Vladislav Vaintroub's avatar
      MDEV-23815 Windows : mysql_upgrade_wizard fails, if service name has spaces · 9f9a925c
      Vladislav Vaintroub authored
      The fix is to quote service name parameter, when it is passed to
      mysql_upgrade_service subprocess.
      9f9a925c
    • Otto Kekäläinen's avatar
      Deb: Misc cleanup and autobake-deb.sh and Salsa-CI fixes · d4a6e3a6
      Otto Kekäläinen authored
      * Clean up autobake-deb.sh
      
        - No need to define any TokuDB rules, there is no such package
        - No need to define RocksDB arch, it already has "Architecture:" line
        - No need to dh-systemd backwards compat stanza, neither Debian Jessie
          nor Ubuntu Xenial has any new MariaDB 10.5 releases anymore
        - Minor spelling fixes
      
      * Ensure dch runs non-interactively so builds pass with new dch version
      
        A recent version of dch (available in Ubuntu Hirsute and Debian Bullseye)
        had a change in behaviour that it started prompting if the DEBEMAIL or
        EMAIL variable as unset, asking for confirmation. We can't have anything
        interactive in our build scripts, so prevent this prompt by giving
        --controlmaint to the command, so it always uses the name and email from
        the debian/control file and does not prompt anything.
      
        The command-line argument has been around for a long time, so it is safe
        to use on all Debian/Ubuntu builds we have.
      
        See https://manpages.debian.org/jessie/devscripts/dch.1.en.html
      
        Since MariaDB 10.5 is the oldest release we still release for Ubuntu Hisute
        and Debian Bullseye, merge this on 10.5 and from there merge up to latest.
        No need to consider 10.2, 10.3 and 10.4 as those will not be released for
        Ubuntu Bullseye or Ubuntu Hirsute.
      
      * Minor Salsa-CI cleanup
      
        - Fix spelling (synced from downstream Debian)
      
      * Many minor spelling fixes (synced from downstream Debian)
      d4a6e3a6
  6. 05 Jun, 2021 1 commit
  7. 04 Jun, 2021 7 commits
  8. 03 Jun, 2021 2 commits
    • Igor Babaev's avatar
      MDEV-25714 Join using derived with aggregation returns incorrect results · 0b797130
      Igor Babaev authored
      If a join query uses a derived table (view / CTE) with GROUP BY clause then
      the execution plan for such join may employ split optimization. When this
      optimization is employed the derived table is not materialized. Rather only
      some partitions of the derived table are subject to grouping. Split
      optimization can be applied only if:
      - there are some indexes over the tables used in the join specifying the
        derived table whose prefixes partially cover the field items used in the
        GROUP BY list (such indexes are called splitting indexes)
      - the WHERE condition of the join query contains conjunctive equalities
        between columns of the derived table that comprise major parts of
        splitting indexes and columns of the other join tables.
      
      When the optimizer evaluates extending of a partial join by the rows of the
      derived table it always considers a possibility of using split optimization.
      Different splitting indexes can be used depending on the extended partial
      join. At some rare conditions, for example, when there is a non-splitting
      covering index for a table joined in the join specifying the derived table
      usage of a splitting index to produce rows needed for grouping may be still
      less beneficial than usage of such covering index without any splitting
      technique. The function JOIN_TAB::choose_best_splitting() must take this
      into account.
      
      Approved by Oleksandr Byelkin <sanja@mariadb.com>
      0b797130
    • Igor Babaev's avatar
      MDEV-25714 Join using derived with aggregation returns incorrect results · 663bc849
      Igor Babaev authored
      If a join query uses a derived table (view / CTE) with GROUP BY clause then
      the execution plan for such join may employ split optimization. When this
      optimization is employed the derived table is not materialized. Rather only
      some partitions of the derived table are subject to grouping. Split
      optimization can be applied only if:
      - there are some indexes over the tables used in the join specifying the
        derived table whose prefixes partially cover the field items used in the
        GROUP BY list (such indexes are called splitting indexes)
      - the WHERE condition of the join query contains conjunctive equalities
        between columns of the derived table that comprise major parts of
        splitting indexes and columns of the other join tables.
      
      When the optimizer evaluates extending of a partial join by the rows of the
      derived table it always considers a possibility of using split optimization.
      Different splitting indexes can be used depending on the extended partial
      join. At some rare conditions, for example, when there is a non-splitting
      covering index for a table joined in the join specifying the derived table
      usage of a splitting index to produce rows needed for grouping may be still
      less beneficial than usage of such covering index without any splitting
      technique. The function JOIN_TAB::choose_best_splitting() must take this
      into account.
      
      Approved by Oleksandr Byelkin <sanja@mariadb.com>
      663bc849
  9. 02 Jun, 2021 9 commits
  10. 01 Jun, 2021 2 commits