1. 09 Jun, 2021 7 commits
    • Marko Mäkelä's avatar
      MDEV-25852: Orphan #sql*.ibd files are left behind · 6a4e5bf1
      Marko Mäkelä authored
      The implementation of MDEV-24626 was not entirely correct.
      We could occasionally fail to remove some *.ibd files on recovery.
      
      deferred_spaces: Keep track of FILE_DELETE records.
      
      deferred_spaces.add(): Do not allow duplicate file names.
      
      recv_rename_files(): Preserve some of renamed_spaces entries for
      deferred_spaces.reinit_all().
      
      Thanks to Thirunarayanan Balathandayuthapani for noticing that
      deferred_spaces.add() must filter out duplicate file names,
      as well as some debugging help.
      6a4e5bf1
    • Marko Mäkelä's avatar
      Merge 10.5 into 10.6 · 65f1a427
      Marko Mäkelä authored
      65f1a427
    • 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
    • Anel Husakovic's avatar
      MDEV-25857: MTR should report at least last test that was executed in case of... · 29e8c154
      Anel Husakovic authored
      MDEV-25857: MTR should report at least last test that was executed in case of shutdown and not-completed
      
      - Report the test name in case not all tests are completed and server
      closed the connection
      - Rerport the failure of the last test with the server log in case of
      server shutdown.
      - Ignore stackdump files (obtained on Windows).
      
      Reviewed by: wlad@mariadb.com
      29e8c154
    • mkaruza's avatar
      MDEV-25698 SIGSEGV in wsrep_should_replicate_ddl · 8b02e02b
      mkaruza authored
      If temporary internal table is in use `hton` will not be set. Skip check
      if DDL should be replicated in this case.
      Reviewed-by: default avatarJan Lindström <jan.lindstrom@mariadb.com>
      8b02e02b
  2. 08 Jun, 2021 6 commits
  3. 07 Jun, 2021 10 commits
  4. 06 Jun, 2021 4 commits
    • Vladislav Vaintroub's avatar
      MDEV-25602 get rid of __WIN__ in favor of standard _WIN32 · 3d6eb7af
      Vladislav Vaintroub authored
      This fixed the MySQL bug# 20338 about misuse of double underscore
      prefix __WIN__, which was old MySQL's idea of identifying Windows
      Replace it by _WIN32 standard symbol for targeting Windows OS
      (both 32 and 64 bit)
      
      Not that connect storage engine is not fixed in this patch (must be
      fixed in "upstream" branch)
      3d6eb7af
    • 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
  5. 05 Jun, 2021 1 commit
  6. 04 Jun, 2021 7 commits
  7. 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
  8. 02 Jun, 2021 3 commits
    • Sergei Golubchik's avatar
      MDEV-25672 table alias from previous statement interferes later commands · 5c896472
      Sergei Golubchik authored
      only perform the "correct table name" check for *new* generated columns,
      but not for already existing ones - they're guaranteed to be valid
      5c896472
    • Monty's avatar
      Fixed that compile-pentium64-valgrind-max works · fa0bbff0
      Monty authored
      - Removed Tokudb (no need to test this anymore with valgrind)
      - Added __attribute__(unused)) to a few places to be able to compile even
        if valgrind/memcheck.h is not installed.
      
      Reviewer: Marko Mäkelä <marko.makela@mariadb.com>
      fa0bbff0
    • Igor Babaev's avatar
      MDEV-25635 Assertion failure when pushing from HAVING into WHERE of view · 2e789108
      Igor Babaev authored
      This bug could manifest itself after pushing a where condition over a
      mergeable derived table / view / CTE DT into a grouping view / derived
      table / CTE V whose item list contained set functions with constant
      arguments such as MIN(2), SUM(1) etc. In such cases the field references
      used in the condition pushed into the view V that correspond set functions
      are wrapped into Item_direct_view_ref wrappers. Due to a wrong implementation
      of the virtual method const_item() for the class Item_direct_view_ref the
      wrapped set functions with constant arguments could be erroneously taken
      for constant items. This could lead to a wrong result set returned by the
      main select query in 10.2. In 10.4 where a possibility of pushing condition
      from HAVING into WHERE had been added this could cause a crash.
      
      Approved by Sergey Petrunya <sergey.petrunya@mariadb.com>
      2e789108