1. 20 Mar, 2021 7 commits
  2. 19 Mar, 2021 17 commits
  3. 18 Mar, 2021 16 commits
    • Vladislav Vaintroub's avatar
      40fd42f7
    • Vladislav Vaintroub's avatar
    • Sergei Petrunia's avatar
      MDEV-23677: Optimizer trace: remove "no predicate for first keypart" (not) · 2b3fd5df
      Sergei Petrunia authored
      Don't remove (reasons given in Jira), instead add test coverage.
      Improve other printout in best_access_path.
      2b3fd5df
    • Igor Babaev's avatar
      MDEV-25112 MIN/MAX aggregation over an indexed column may return wrong result · b34bb81e
      Igor Babaev authored
      If a query with implicit grouping contains in MIN/MAX set function in the
      select list over a column that is a part of an index then the query
      might be subject to MIN/MAX optimization. With this optimization the
      server performs a look-up into an index, fetches a value of the column C
      used in the MIN/MAX function and substitute the MIN/MAX expression for this
      value. This allows to eliminate the table containing C from further join
      processing. In order the optimization to be applied the WHERE condition
      must be a conjunction of simple equality/inequality predicates or/and
      BETWEEN predicates.
      The bug fixed in the patch resulted in fetching a wrong value from the
      index used for MIN/MAX optimization. It may happened when a BETWEEN
      predicate containing the MIN/MAX value followed a strict inequality.
      
      Approved by dmitry.shulga@mariadb.com
      b34bb81e
    • Marko Mäkelä's avatar
      MDEV-23497 fixup: Do not warn for ALTER TABLE conversion · 4903031b
      Marko Mäkelä authored
      Our intention is to make users aware that the ROW_FORMAT=COMPRESSED
      format is on its way to deprecation.  It is an unnecessary annoyance
      to users if we issue a warning when the user is converting a
      ROW_FORMAT=COMPRESSED table to a supported format
      (such as ROW_FORMAT=DYNAMIC).
      
      ha_innobase::is_read_only(): Add a parameter to specify that an
      ALTER TABLE to a supported format has been requested.
      
      ha_innobase::check_if_supported_inplace_alter(): Set the parameter
      when ALTER_OPTIONS to something else than ROW_FORMAT=COMPRESSED
      (and without KEY_BLOCK_SIZE) is being requested.
      
      Thanks to Elena Stepanova for suggesting this.
      4903031b
    • Marko Mäkelä's avatar
      MDEV-24883 fixup: Avoid io_uring in ./mtr --rr · e0c3b5f9
      Marko Mäkelä authored
      Until https://github.com/rr-debugger/rr/issues/2613
      has been addressed, ./mtr --rr will fail to start up the
      server if it has been configured with liburing.
      To make the ./mtr --rr option work out of the box, we will
      disable native asynchronous I/O.
      
      Note: libaio never worked under rr, but it failed more gracefully:
      the emulated io_setup() call would always return an error.
      e0c3b5f9
    • Marko Mäkelä's avatar
      fixup 7627bfa0 · 8d1098a5
      Marko Mäkelä authored
      8d1098a5
    • Vladislav Vaintroub's avatar
      MDEV-9077 - rerecord test result · 7627bfa0
      Vladislav Vaintroub authored
      so that sys.schema_auto_increment_columns returns  correct
      auto_increment_value
      7627bfa0
    • Marko Mäkelä's avatar
      Merge 10.5 into 10.6 · ccfbeafc
      Marko Mäkelä authored
      ccfbeafc
    • Vladislav Vaintroub's avatar
      MDEV-9077 - fix README.md · 7887d453
      Vladislav Vaintroub authored
      Fix confusing documentation. There is no installation necessary for sys schema.
      it is there after mysql_install_db, or mysql_upgrade.
      7887d453
    • Marko Mäkelä's avatar
      Merge 10.4 into 10.5 · 190a8312
      Marko Mäkelä authored
      190a8312
    • Marko Mäkelä's avatar
      MDEV-25121: innodb_flush_method=O_DIRECT fails on compressed tables · 12672542
      Marko Mäkelä authored
      Tests with 4096-byte sector size confirm that it is
      safe to use O_DIRECT with page_compressed tables.
      That had been disabled on Linux, in an attempt to fix MDEV-21584
      which had been filed for the O_DIRECT problems earlier.
      
      The fil_node_t::block_size was being set mostly correctly until
      commit 10dd290b (MDEV-17380)
      introduced a regression in MariaDB Server 10.4.4.
      
      fil_node_open_file(): Only avoid setting O_DIRECT on
      ROW_FORMAT=COMPRESSED tables that use KEY_BLOCK_SIZE=1 or 2
      (1024 or 2048 bytes).
      
      fil_ibd_create(): Avoid setting O_DIRECT on ROW_FORMAT=COMPRESSED tables
      that use KEY_BLOCK_SIZE=1 or 2 (1024 or 2048 bytes).
      
      fil_node_t::find_metadata(): Require fstat() to be always invoked
      outside Microsoft Windows, so that fil_node_t::block_size can be set.
      
      fil_node_t::read_page0(): Rely on find_metadata() to assign block_size.
      
      Thanks to Vladislav Vaintroub for testing this on Microsoft Windows
      using an old-fashioned rotational hard disk with 4KiB sector size.
      
      Reviewed by: Vladislav Vaintroub
      
      This is a port of commit 00f620b2
      and commit 6505662c from 10.2.
      12672542
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · 39c015b7
      Marko Mäkelä authored
      39c015b7
    • Marko Mäkelä's avatar
      MDEV-25125 Assertion failure in fetch_data_into_cache_low() · 867724fd
      Marko Mäkelä authored
      Before MDEV-14638, there was no race condition between the
      execution of fetch_data_into_cache() and transaction commit.
      
      fetch_data_into_cache(): Acquire trx_t::mutex before checking
      trx_t::state, to prevent a concurrent transition from
      TRX_STATE_COMMITTED_IN_MEMORY to TRX_STATE_NOT_STARTED
      in trx_commit_in_memory().
      867724fd
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · 19052b6d
      Marko Mäkelä authored
      19052b6d
    • Marko Mäkelä's avatar
      MDEV-10682 Race condition between ANALYZE and STATS_AUTO_RECALC · c557e954
      Marko Mäkelä authored
      ha_innobase::info_low(): While collecting statistics for
      ANALYZE TABLE, ensure that dict_stats_process_entry_from_recalc_pool()
      is not executing on the same table.
      
      We observed result differences for the test innodb.innodb_stats because
      dict_stats_empty_index() was being invoked by the background statistics
      calculation while ha_innobase::analyze() was executing
      dict_stats_analyze_index_level().
      c557e954