1. 09 May, 2023 1 commit
    • Sergei Petrunia's avatar
      MDEV-31022: SIGSEGV in maria_create from create_internal_tmp_table · b3edbf25
      Sergei Petrunia authored
      The code in create_internal_tmp_table() didn't take into account that
      now temporary (derived) tables may have multiple indexes:
      
      - one index due to duplicate removal
         = In this example created by conversion of big-IN(...) into subquery
         = this index might be converted into a "unique constraint" if the key
           length is too large.
      - one index added by derived_with_keys optimization.
      
      Make create_internal_tmp_table() handle multiple indexes.
      
      Before this patch, use of a unique constraint was indicated in
      TABLE_SHARE::uniques. This was ok as unique constraint was the only index
      in the table. Now it's no longer the case so TABLE_SHARE::uniques is removed
      and replaced with an in-memory-only flag HA_UNIQUE_HASH.
      
      This patch is based on Monty's patch.
      Co-Author: Monty <monty@mariadb.org>
      b3edbf25
  2. 03 May, 2023 5 commits
    • Monty's avatar
      63df43a0
    • Monty's avatar
      Moved events tests from main to suite/events · 78f684e5
      Monty authored
      This makes it easier to run test on just events.
      78f684e5
    • Monty's avatar
      Moved merge tests from main to suite/merge · ec820a38
      Monty authored
      This makes it easier to run test on just the MRG_MYISAM engine.
      
      Other things:
      - Renamed merge-big.test to flush_corruption.test as it does not
        have anything to do with merge tables.
      ec820a38
    • Monty's avatar
      MDEV-30786 SIGFPE in cost_group_min_max on EXP · 0099c2fc
      Monty authored
      The problem was that for merge tables without any underlaying tables the
      block size was 0, which the code could not handle.
      
      Fixed by ensuring that MERGE tables never have a block size of 0.
      Fixed also a wrong assumption of number of seeks needed to scan
      merge tables.
      0099c2fc
    • Monty's avatar
      MDEV-30812: Improve output cardinality estimates for hash join · 3bdc5542
      Monty authored
      Introduces @@optimizer_switch flag: hash_join_cardinality
      
      When this option is on, use EITS statistics to produce tighter bounds
      for hash join output cardinality.
      
      This patch is an extension / replacement to a similar patch in 10.6
      
      New features:
      - optimizer_switch hash_join_cardinality is on by default
      - records_out is set to fanout when HASH is used
      - Fixed bug in is_eits_usable: The function did not work with views
      3bdc5542
  3. 28 Apr, 2023 6 commits
  4. 27 Apr, 2023 13 commits
  5. 26 Apr, 2023 11 commits
  6. 25 Apr, 2023 4 commits
    • Julius Goryavsky's avatar
      MDEV-30804 addendum for 10.6+ branches · 898320b5
      Julius Goryavsky authored
      This addition to MDEV-30804 is relevant for 10.6+, it excludes
      the mixed transaction section using both innodb and aria storage
      engines from the galera_var_replicate_aria_off test, since such
      transactions cannot be executed unless aria supports two-phase
      transaction commit. No additional tests are required as this
      commit fixes the mtr test itself.
      898320b5
    • Andrei's avatar
      MDEV-30620 Trying to lock uninitialized LOCK_parallel_entry · e22a57da
      Andrei authored
      The error was seen by a number of mtr tests being caused
      by overdue initialization of rpl_parallel::LOCK_parallel_entry.
      Specifically, SHOW-SLAVE-STATUS might find in
      rpl_parallel::workers_idle() a gtid domain hash entry
      already inserted whose mutex had not done
      mysql_mutex_init().
      
      Fixed with swapping the mutex init and the its entry's stack insertion.
      
      Tested with a generous number of `mtr --repeat` of a few of the reported
      to fail tests, incl rpl.parallel_backup.
      e22a57da
    • Marko Mäkelä's avatar
      MDEV-26827 fixup: Prevent a hang in LRU eviction · c22ab93f
      Marko Mäkelä authored
      buf_pool_t::page_cleaner_wakeup(): If for_LRU=true, wake up the page
      cleaner immediately, also when it is in a timed wait. This avoids an
      unnecessary delay of up to 1 second.
      c22ab93f
    • Sergei Petrunia's avatar
      MDEV-31121: ANALYZE statement produces 0 for all timings in embedded server · a72b2c3f
      Sergei Petrunia authored
      Timers require my_timer_init() call.
      It was made only in mysqld_main(). Call it also from init_embedded_server().
      a72b2c3f