1. 14 Feb, 2020 2 commits
    • Sergei Petrunia's avatar
      MDEV-21628: Index condition pushdown condition ... not used with BKA · 9f718041
      Sergei Petrunia authored
      Partitioning storage now supports MRR but doesn't support Index Condition
      Pushdown (aka ICP). This causes counter-intuitive query plans for queries
      that use BKA and conditions that depend on index fields:
      - If the condition refers to other tables, BKA's variant of ICP is used
         to handle it.
      - If the condition depends on this table only, the optimizer will try to
        use regular ICP for it, which will fail because the storage engine
        doesn't support ICP.
      
      Make the optimizer be smarter in the second case: if we were not able to
      use regular ICP, use BKA's variant of ICP..
      9f718041
    • Daniel Black's avatar
      mysys: remove windac my_security_attr_create (#1391) · 8eb03845
      Daniel Black authored
      No longer used.
      8eb03845
  2. 13 Feb, 2020 2 commits
    • Eugene Kosov's avatar
      micro optimization: avoid std::string copy · c400a73d
      Eugene Kosov authored
      c400a73d
    • Eugene Kosov's avatar
      MDEV-21669 InnoDB: Table ... contains <n> indexes inside InnoDB, which is... · 1394216e
      Eugene Kosov authored
      MDEV-21669 InnoDB: Table ... contains <n> indexes inside InnoDB, which is different from the number of indexes <n> defined in the MariaDB
      
      compare_keys_but_name(): do not use KEY_PART_INFO::field for
      Field::is_equal(). Following the logic of that code we need to
      compare fields of a table. But KEY_PART_INFO::field sometimes
      (when key part is shorter than table field) is a different field.
      In that case Field::is_equal() returns incorrect result and
      problems occur.
      
      KEY_PART_INFO::field may become some strange field in
      open_frm_error open_table_from_share(). I think this is an
      incorrect logic, some tecnhical debt. I'm not fixing it right now,
      because I don't have time. But I'm making Field::field_length
      a const class member. Then, the only fishy code which changed that
      field requires now a const_cast<>. I'm bringing attention to that
      code with it. This change should not affect logic of the
      program in any way.
      1394216e
  3. 12 Feb, 2020 1 commit
    • Sergey Vojtovich's avatar
      MDEV-20867 - Perform careful review of "Server crashes with BACKUP STAGE and... · c5e00fea
      Sergey Vojtovich authored
      MDEV-20867 - Perform careful review of "Server crashes with BACKUP STAGE and FLUSH TABLE table_name"
      
      Reverted original patch (c2e0a0b1).
      
      For consistency with "LOCK TABLE <table_name> READ" and "FLUSH TABLES
      WITH READ LOCK", which are forbidden under "BACKUP STAGE", forbid "FLUSH
      TABLE <table_name> FOR EXPORT" and "FLUSH TABLE <table_name> WITH READ
      LOCK" as well.
      
      It'd allow consistent fixes for problems like MDEV-18643.
      c5e00fea
  4. 11 Feb, 2020 1 commit
  5. 10 Feb, 2020 5 commits
  6. 09 Feb, 2020 4 commits
  7. 08 Feb, 2020 2 commits
  8. 07 Feb, 2020 4 commits
  9. 06 Feb, 2020 3 commits
  10. 05 Feb, 2020 4 commits
  11. 04 Feb, 2020 4 commits
  12. 03 Feb, 2020 4 commits
    • Jan Lindström's avatar
      MDEV-20625 : MariaDB asserting when enabling wsrep_on · 574354a6
      Jan Lindström authored
      When wsrep_on is changed to ON we might need to run wsrep_init
      if wsrep-provider is set and wsrep is not inited.
      574354a6
    • Marko Mäkelä's avatar
      Cleanup: Remove mem_block_t::magic_n and mem_block_validate() · a9d13248
      Marko Mäkelä authored
      Use of freed memory is better caught by AddressSanitizer,
      especially with ASAN_POISON_MEMORY_REGION that is aliased
      by MEM_NOACCESS and UNIV_MEM_FREE.
      a9d13248
    • Marko Mäkelä's avatar
      MDEV-21636 information_schema.innodb_mutexes.name column is not populated · 37b9734c
      Marko Mäkelä authored
      The column INFORMATION_SCHEMA.INNODB_MUTEXES.NAME is not populated ever since
      commit 2e814d47 applied the InnoDB changes from
      MySQL 5.7.9 to MariaDB Server 10.2.2.
      
      Since the same commit, the view is only providing information about
      rw_lock_t, not any mutexes.
      
      For now, let us convert the source code file name and line number of
      the rw_lock_t creation into a name. A better option in the future might
      be to store the information somewhere where it can be looked up by
      mysql_pfs_key_t, and possibly to remove the CREATE_FILE and CREATE_LINE
      columns.
      37b9734c
    • Sachin's avatar
      MDEV-20001 Potential dangerous regression: INSERT INTO >=100 rows fail for... · eed6d215
      Sachin authored
      MDEV-20001 Potential dangerous regression: INSERT INTO >=100 rows fail for myisam table with HASH indexes
      
      Problem:-
      
      So the issue is when we do bulk insert with rows
      > MI_MIN_ROWS_TO_DISABLE_INDEXES(100) , We try to disable the indexes to
      speedup insert. But current logic also disables the long unique indexes.
      
      Solution:- In ha_myisam::start_bulk_insert if we find long hash index
      (HA_KEY_ALG_LONG_HASH) we will not disable the index.
      
      This commit also refactors the mi_disable_indexes_for_rebuild function,
      Since this is function is called at only one place, it is inlined into
      start_bulk_insert
      
      mi_clear_key_active is added into myisamdef.h because now it is also used
      in ha_myisam.cc file.
      
      (Same is done for Aria Storage engine)
      eed6d215
  13. 02 Feb, 2020 4 commits