1. 08 Jul, 2022 1 commit
  2. 29 Jun, 2022 5 commits
  3. 28 Jun, 2022 8 commits
  4. 27 Jun, 2022 20 commits
    • Alexander Barkov's avatar
    • Nayuta Yanagisawa's avatar
    • Marko Mäkelä's avatar
      MDEV-26979 heap-use-after-free or SIGSEGV when accessing INNODB_SYS_TABLESTATS during DDL · 1ae81607
      Marko Mäkelä authored
      i_s_dict_fill_sys_tablestats(): Read all fields of dict_table_t
      while holding dict_sys.latch.
      
      dict_sys_t::allow_eviction(): Remove.
      1ae81607
    • Marko Mäkelä's avatar
      Merge 10.5 into 10.6 · 20cf63fe
      Marko Mäkelä authored
      20cf63fe
    • Marko Mäkelä's avatar
      Merge 10.4 into 10.5 · 773f1dad
      Marko Mäkelä authored
      773f1dad
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · b922ae5f
      Marko Mäkelä authored
      b922ae5f
    • Marko Mäkelä's avatar
      MDEV-26577 InnoDB: Failing assertion: dict_tf2_is_valid(flags, flags2) during ADD COLUMN · f339ef3f
      Marko Mäkelä authored
      prepare_inplace_alter_table_dict(): If the table will not be rebuilt,
      preserve all of the original ROW_FORMAT, including the compressed
      page size flags related to ROW_FORMAT=COMPRESSED.
      f339ef3f
    • Marko Mäkelä's avatar
      MDEV-28389 fixup: Fix compiler warnings · a75ad735
      Marko Mäkelä authored
      hex_to_ascii(): Add #if around the definition to avoid
      clang -Wunused-function. Avoid GCC 5 -Wconversion with a cast.
      a75ad735
    • Marko Mäkelä's avatar
      MDEV-28950 Assertion `*err == DB_SUCCESS' failed in btr_page_split_and_insert · 39f45f6f
      Marko Mäkelä authored
      btr_root_raise_and_insert(), btr_lift_page_up(),
      rtr_page_split_and_insert(): Reset DB_FAIL from a failure to
      copy records on a ROW_FORMAT=COMPRESSED page to DB_SUCCESS
      before retrying.
      
      This fixes a regression that was introduced by
      commit 0b47c126 (MDEV-13542).
      
      btr_root_raise_and_insert(): Remove a redundant condition.
      btr_page_split_and_insert() will invoke btr_page_split_and_insert()
      if needed.
      39f45f6f
    • Alexander Barkov's avatar
      MDEV-28918 Implicit cast from INET6 UNSIGNED works differently on UPDATE vs ALTER · 0bed4d72
      Alexander Barkov authored
      Now INSERT, UPDATE, ALTER statements involving incompatible data type pairs, e.g.:
      
          UPDATE TABLE t1 SET col_inet6=col_int;
          INSERT INTO t1 (col_inet6) SELECT col_in FROM t2;
          ALTER TABLE t1 MODIFY col_inet6 INT;
      
      consistently return an error at the statement preparation time:
      
          ERROR HY000: Illegal parameter data types inet6 and int for operation 'SET'
      
      and abort the statement before starting interating rows.
      
      This error is the same with what is raised for queries like:
          SELECT col_inet6 FROM t1 UNION SELECT col_int FROM t2;
          SELECT COALESCE(col_inet6, col_int) FROM t1;
      
      Before this change the error was caught only during the execution time,
      when a Field_xxx::store_xxx() was called for the very firts row.
      The behavior was not consistent between various statements and could do different things:
      - abort the statement
      - set a column to the data type default value (e.g. '::' for INET6)
      - set a column to NULL
      
      A typical old error was:
      
          ERROR 22007: Incorrect inet6 value: '1' for column `test`.`t1`.`a` at row 1
      
      EXCEPTION:
      
      Note, there is an exception: a multi-row INSERT..VALUES, e.g.:
          INSERT INTO t1 (col_a,col_b) VALUES (a1,b1),(a2,b2);
      checks assignment compability at the preparation time for the very first row only:
          (col_a,col_b) vs (a1,b1)
      
      Other rows are still checked at the execution time and return the old warnings
      or errors in case of a failure. This is done because catching all rows at the
      preparation time would change behavior significantly. So it still works
      according to the STRICT_XXX_TABLES sql_mode flags and the table transaction ability.
      
      This is too late to change this behavior in 10.7.
      There is no a firm decision yet if a multi-row INSERT..VALUES
      behavior will change in later versions.
      0bed4d72
    • Marko Mäkelä's avatar
      Suppress a message that may be emitted on slow systems · 7d92c9d2
      Marko Mäkelä authored
      On FreeBSD, tests run on persistent storage, and no asynchronous I/O
      has been implemented. Warnings about 205-second waits on dict_sys.latch
      may occur.
      7d92c9d2
    • Marko Mäkelä's avatar
      Merge 10.5 into 10.6 · 87bd79b1
      Marko Mäkelä authored
      87bd79b1
    • Marko Mäkelä's avatar
      Merge 10.4 into 10.5 · ea847cbe
      Marko Mäkelä authored
      ea847cbe
    • Marko Mäkelä's avatar
      Fix GCC -Og -Wmaybe-uninitialized · 03174cab
      Marko Mäkelä authored
      03174cab
    • Marko Mäkelä's avatar
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · 01d75703
      Marko Mäkelä authored
      01d75703
    • Marko Mäkelä's avatar
      MDEV-28389: Simplify the InnoDB corrupted page output · c86b1389
      Marko Mäkelä authored
      buf_page_print(): Dump the buffer page 32 bytes (64 hexadecimal digits)
      per line. In this way, the limitation in mtr
      ("Data too long for column 'line'") will not be triggered.
      
      Also, do not bother decoding the page contents, because everything
      is present in the hexadecimal output.
      
      dict_index_find_on_id_low(): Merge to dict_index_get_if_in_cache_low().
      The direct call in buf_page_print() was prone to crashing, in case the
      table definition was concurrently evicted or dropped from the
      data dictionary cache.
      c86b1389
    • Hirokazu Hata's avatar
      MDEV-28854 Disallow INSERT DELAYED on Spider table · 2c1aaa66
      Hirokazu Hata authored
      Spider supports (or at least allows) INSERT DELAYED but the
      documentation does not specify spider as a storage engine that supports
      "INSERT DELAYED".
      Also, although not mentioned in the documentation, "INSERT DELAYED" is
      not intended to be executed inside a transaction, as can be seen from
      the list of supported storage engines.
      The current implementation allows executing a delayed insert on a
      remote transactional table and this breaks the consistency ensured by
      the transaction.
      
      We too remove "internal_delayed", one of the Spider table parameters.
      Documentation says,
      
      > Whether to transmit existence of delay to remote servers when
      > executing an INSERT DELAYED statement on local server.
      
      This table parameter is only used for "INSERT DELAYED".
      
      Reviewed by: Nayuta Yanagisawa
      2c1aaa66
    • Nayuta Yanagisawa's avatar
      MDEV-28829 Deprecate spider_semi_table_lock and spider_semi_table_lock_connection · 925999bb
      Nayuta Yanagisawa authored
      When the variable, spider_semi_table_lock, is 1, Spider sends
      LOCK TABLES before each SQL execution. The feature is for
      non-transactional remote tables and adds some overhead to query
      executions.
      
      We change the default value of the plugin variable to 0 and then
      deprecate the variable because it is rare to use non-transactional
      engines these days and the variable complicates the code.
      
      The variable, spider_semi_table_lock_connection, should be too
      deprecated because it is for tweaking the semi-table locking.
      925999bb
    • Nayuta Yanagisawa's avatar
      MDEV-28479 Deprecate Spider's high availability feature · 8e6c8967
      Nayuta Yanagisawa authored
      Deprecate the high availability feature of Spider as the feature is
      beyond the scope of the federated storage engine and it complicates
      the implementation of Spider.
      8e6c8967
  5. 24 Jun, 2022 2 commits
  6. 23 Jun, 2022 4 commits