1. 11 Oct, 2018 5 commits
    • Marko Mäkelä's avatar
      MDEV-13564: Null-merge 10.2 into 10.3 · 30629e19
      Marko Mäkelä authored
      We keep the MySQL 5.7 backup-incompatible TRUNCATE TABLE
      only in MariaDB Server 10.2. In 10.3 and later releases,
      only the backup-friendly TRUNCATE will be available.
      30629e19
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · ae9d82c9
      Marko Mäkelä authored
      ae9d82c9
    • Marko Mäkelä's avatar
      MDEV-13564: Implement innodb_unsafe_truncate=ON for compatibility · 3448ceb0
      Marko Mäkelä authored
      While MariaDB Server 10.2 is not really guaranteed to be compatible
      with Percona XtraBackup 2.4 (for example, the MySQL 5.7 undo log format
      change that could be present in XtraBackup, but was reverted from
      MariaDB in MDEV-12289), we do not want to disrupt users who have
      deployed xtrabackup and MariaDB Server 10.2 in their environments.
      
      With this change, MariaDB 10.2 will continue to use the backup-unsafe
      TRUNCATE TABLE code, so that neither the undo log nor the redo log
      formats will change in an incompatible way.
      
      Undo tablespace truncation will keep using the redo log only. Recovery
      or backup with old code will fail to shrink the undo tablespace files,
      but the contents will be recovered just fine.
      
      In the MariaDB Server 10.2 series only, we introduce the configuration
      parameter innodb_unsafe_truncate and make it ON by default. To allow
      MariaDB Backup (mariabackup) to work properly with TRUNCATE TABLE
      operations, use loose_innodb_unsafe_truncate=OFF.
      
      MariaDB Server 10.3.10 and later releases will always use the
      backup-safe TRUNCATE TABLE, and this parameter will not be
      added there.
      
      recv_recovery_rollback_active(): Skip row_mysql_drop_garbage_tables()
      unless innodb_unsafe_truncate=OFF. It is too unsafe to drop orphan
      tables if RENAME operations are not transactional within InnoDB.
      
      LOG_HEADER_FORMAT_10_3: Replaces LOG_HEADER_FORMAT_CURRENT.
      
      log_init(), log_group_file_header_flush(),
      srv_prepare_to_delete_redo_log_files(),
      innobase_start_or_create_for_mysql(): Choose the redo log format
      and subformat based on the value of innodb_unsafe_truncate.
      3448ceb0
    • Marko Mäkelä's avatar
      Merge 10.1 into 10.2 · 07815d95
      Marko Mäkelä authored
      07815d95
    • Marko Mäkelä's avatar
      940f0c78
  2. 10 Oct, 2018 5 commits
  3. 09 Oct, 2018 3 commits
  4. 08 Oct, 2018 6 commits
    • Andrei Elkin's avatar
      MDEV-17346 parallel slave start and stop races to workers disappeared · f517d8c7
      Andrei Elkin authored
      The bug appears as a slave SQL thread hanging in
      rpl_parallel_thread_pool::get_thread() while there are no slave worker
      threads to awake it.
      
      The reason of the hang is that at the parallel slave worker pool
      activation the being stared SQL thread could read the worker pool size
      concurrently with pool deactivation. At reading the SQL thread did not
      employ necessary protection from a race.
      
      Fixed with making the SQL thread at the pool activation first
      to grab the same lock as potential deactivator also does prior
      to access the pool size.
      f517d8c7
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-16980 Wrongly set tablename len while opening the · e9d9ca8c
      Thirunarayanan Balathandayuthapani authored
      			table for purge thread
      
      Problem:
      =======
      	Purge tries to fetch mdl lock for the whole table even though it tries
      to open one of the partition. But table name length was wrongly set to indicate
      the partition name too.
      
      Solution:
      ========
      - Table name length should identify the table name only not the partition name.
      e9d9ca8c
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-16980 Wrongly set tablename len while opening the · 7d4beb72
      Thirunarayanan Balathandayuthapani authored
      		table for purge thread
      
      Problem:
      =======
      	Purge tries to fetch mdl lock for the whole table even though it tries
      to open one of the partition. But table name length was wrongly set to indicate
      the partition name too.
      
      Solution:
      ========
      - Table name length should identify the table name only not the partition name.
      7d4beb72
    • Igor Babaev's avatar
      MDEV-17381 Wrong query result with LATERAL DERIVED optimization · 85953617
      Igor Babaev authored
                and join_cache_level=6
      
      This bug was fixed by the patch for mdev-17382 applied to 5.5.
      85953617
    • Igor Babaev's avatar
      MDEV-17382 Hash join algorithm should not be used to join materialized · e2535dcc
      Igor Babaev authored
                 derived table / view by equality
      
      Now rows of a materialized derived table are always put into a
      temporary table before join operation. If BNLH is used to join this
      table with the result of a partial join then both operands of the
      join are actually put into main memory. In most cases this is not
      efficient.
      We could avoid this by sending the rows of the derived table directly
      to the join operation. However this kind of data flow is not supported
      yet.
      Fixed by not allowing usage of hash join algorithm to join a materialized
      derived table if it's joined by an equality predicate of the form
      f=e where f is a field of the derived table.
      
      Change for the test case in 10.3: splitting must be turned off to preserve
      the explain.
      e2535dcc
    • Igor Babaev's avatar
      MDEV-17382 Hash join algorithm should not be used to join materialized · 1ebe841f
      Igor Babaev authored
                 derived table / view by equality
      
      Now rows of a materialized derived table are always put into a
      temporary table before join operation. If BNLH is used to join this
      table with the result of a partial join then both operands of the
      join are actually put into main memory. In most cases this is not
      efficient.
      We could avoid this by sending the rows of the derived table directly
      to the join operation. However this kind of data flow is not supported
      yet.
      Fixed by not allowing usage of hash join algorithm to join a materialized
      derived table if it's joined by an equality predicate of the form
      f=e where f is a field of the derived table.
      1ebe841f
  5. 07 Oct, 2018 1 commit
    • Igor Babaev's avatar
      MDEV-17382 Hash join algorithm should not be used to join materialized · 1eca4957
      Igor Babaev authored
                 derived table / view by equality
      
      Now rows of a materialized derived table are always put into a
      temporary table before join operation. If BNLH is used to join this
      table with the result of a partial join then both operands of the
      join are actually put into main memory. In most cases this is not
      efficient.
      We could avoid this by sending the rows of the derived table directly
      to the join operation. However this kind of data flow is not supported
      yet.
      Fixed by not allowing usage of hash join algorithm to join a materialized
      derived table if it's joined by an equality predicate of the form
      f=e where f is a field of the derived table.
      1eca4957
  6. 06 Oct, 2018 1 commit
  7. 05 Oct, 2018 11 commits
  8. 04 Oct, 2018 8 commits