1. 09 Aug, 2023 4 commits
  2. 08 Aug, 2023 7 commits
  3. 07 Aug, 2023 3 commits
  4. 06 Aug, 2023 1 commit
  5. 05 Aug, 2023 1 commit
  6. 04 Aug, 2023 8 commits
  7. 03 Aug, 2023 2 commits
    • Sergei Golubchik's avatar
      MDEV-31836 mysqldump against MYSQL server 8 creates invalid dump · 1ba5a020
      Sergei Golubchik authored
      `select * from information_schema.columns` can return columns in any
      order, but we need them ordered by the ordinal position
      1ba5a020
    • Oleg Smirnov's avatar
      MDEV-31743 Server crash in store_length, assertion failure in... · 8e8c020f
      Oleg Smirnov authored
      MDEV-31743 Server crash in store_length, assertion failure in Type_handler_string_result::sort_length
      
      After MDEV-21580 the truncation of SORT_FIELD::length
        set_if_smaller(sortorder->length, thd->variables.max_sort_length)
      
      became conditional:
        if (is_variable_sized())
          set_if_smaller(length, thd->variables.max_sort_length)
      
      To provide correct functioning of is_variable_sized() SORT_FIELD::type
      must be set properly. This commit adds the necessary initialization
      of SORT_FIELD::type to JOIN_TAB::remove_duplicates() as it is done
      in filesort's sortlength() function.
      
      DBUG_ASSERT is added to sortlength() just in case to prevent
      a possible uint32 overflow
      8e8c020f
  8. 02 Aug, 2023 4 commits
    • Marko Mäkelä's avatar
      MDEV-31827 InnoDB multi-batch recovery stops prematurely · a89527e1
      Marko Mäkelä authored
      recv_scan_log(): On recv_sys_t::PREMATURE_EOF, keep reading more log
      if recv_sys.lsn < recv_sys.scanned_lsn.
      
      recv_recovery_from_checkpoint_start(): Add a safety check to abort
      crash recovery if recv_sys.lsn is not recv_sys.scanned_lsn.
      
      This fixes a serious database corruption bug that was introduced by
      commit 2f9e2647 (MDEV-29911).
      a89527e1
    • Sergei Golubchik's avatar
      MDEV-31822 ALTER TABLE ENGINE=x started failing instead of producing warning... · 61acb436
      Sergei Golubchik authored
      MDEV-31822 ALTER TABLE ENGINE=x started failing instead of producing warning on unsupported TRANSACTIONAL=1
      
      make TRANSACTIONAL table option behave similar to other engine-defined
      table options. If the engine doesn't suport it:
      * if specified expicitly in CREATE or ALTER - it's ER_UNKNOWN_OPTION
      * an error or a warning depending on sql_mode IGNORE_BAD_TABLE_OPTIONS
      * in ALTER TABLE from the engine that suppors it to the engine that
        doesn't - silently preserved (no warning)
      * it is commented out in SHOW CREATE unless IGNORE_BAD_TABLE_OPTIONS
      61acb436
    • Sergei Golubchik's avatar
      MDEV-18114 Foreign Key Constraint actions don't affect Virtual Column · da09ae05
      Sergei Golubchik authored
      * invoke check_expression() for all vcol_info's in
        mysql_prepare_create_table() to check for FK CASCADE
      * also check for SET NULL and SET DEFAULT
      * to check against existing FKs when a vcol is added in ALTER TABLE,
        old FKs must be added to the new_key_list just like other indexes are
      * check columns recursively, if vcol1 references vcol2,
        flags of vcol2 must be taken into account
      * remove check_table_name_processor(), put that logic under
        check_vcol_func_processor() to avoid walking the tree twice
      da09ae05
    • Marko Mäkelä's avatar
      MDEV-31791: Recovery on memory-mapped log occasionally fails · 8760fe11
      Marko Mäkelä authored
      recv_ring::copy_if_needed(): If the record wraps around the
      memory-mapped ib_logfile0, do copy it also if len==0
      (the record consists only of a header, like FREE_PAGE and INIT_PAGE
      records do).
      
      recv_sys_t::parse(): Invoke recv_ring::copy_if_needed() for INIT_PAGE
      and FREE_PAGE records, so that if these records wrap around the
      memory-mapped ib_logfile0, they will be correctly copied to
      recv_sys.pages.
      
      Together with commit 0d175968 (MDEV-31354)
      this fixes occasional failures of the test innodb.recovery_memory.
      8760fe11
  9. 01 Aug, 2023 10 commits