1. 10 Aug, 2022 1 commit
    • Addison G's avatar
      MDEV-29222 - Fix mysqld_safe script · 5d3bbc6d
      Addison G authored
      The mysqld_safe script was using bad grep options.
      
      The line that was fixed was likely meant to be 2 separate grep commands,
      piped into each other, with each one removing any lines that matched.
      
      The `-E` option was unneeded, as the command is not using regex.
      5d3bbc6d
  2. 05 Aug, 2022 2 commits
    • Marko Mäkelä's avatar
      MDEV-13542 fixup: Improve a recovery error message · c9803504
      Marko Mäkelä authored
      A message used to say "failed to read or decrypt"
      but the "or decrypt" part was removed in
      commit 0b47c126
      without adjusting rarely needed error message suppressions in some
      encryption tests.
      
      Let us improve the error message so that it mentions the file name,
      and adjust all error message suppressions in tests.
      
      Thanks to Oleksandr Byelkin for noticing one test failure.
      c9803504
    • Oleksandr Byelkin's avatar
      fix tests · 5dc86050
      Oleksandr Byelkin authored
      5dc86050
  3. 04 Aug, 2022 10 commits
  4. 03 Aug, 2022 10 commits
  5. 02 Aug, 2022 15 commits
  6. 01 Aug, 2022 2 commits
    • Aleksey Midenkov's avatar
      MDEV-28727 ALTER TABLE ALGORITHM=NOCOPY does not work after upgrade · 1ea5e402
      Aleksey Midenkov authored
      MDEV-20704 changed the rules of how (HA_BINARY_PACK_KEY |
      HA_VAR_LENGTH_KEY) flags are added. Older FRMs before that fix had
      these flags for DOUBLE index. After that fix when ALTER sees such old
      FRM it thinks it cannot do instant alter because of failed
      compare_keys_but_name(): it compares flags against tmp table created
      by ALTER.
      
      MDEV-20704 fix was actually not about DOUBLE type but about
      FIELDFLAG_BLOB which affected DOUBLE. So there is no direct knowledge
      that any other types were not affected.
      
      The proposed fix under CHECK TABLE checks if FRM has
      (HA_BINARY_PACK_KEY | HA_VAR_LENGTH_KEY) flags and was created prior
      MDEV-20704 and if so issues "needs upgrade". When mysqlcheck and
      mysql_upgrade see such status they issue ALTER TABLE FORCE and upgrade
      the table to the version of server.
      1ea5e402
    • Aleksey Midenkov's avatar
      MDEV-21540 Initialization of already inited long unique index on reorganize partition · 231feabd
      Aleksey Midenkov authored
      Handler for existing partition was already index-inited at the
      beginning of copy_partitions().
      
      In the case of REORGANIZE PARTITION we fill new partition by calling
      its ha_write_row() (handler is storage engine of new partition). From
      that we go through the below conditions:
      
          if (this->inited == RND)
            table->clone_handler_for_update();
          handler *h= table->update_handler ? table->update_handler : table->file;
      
      First, the above misses the meaning of this->inited check. Now it is
      new partition and this handler is not inited. So, we assign
      table->file which is ha_partition and is really not known to be inited
      or not. It is supposed (this == table->file), otherwise we are
      out of the logic for using update_handler. This patch adds DBUG_ASSERT
      for that.
      
      Second, we call check_duplicate_long_entries() for table->file and
      that calls ha_partition::index_init() which calls index_init() for
      each partition's handler. But the existing parititions' handlers was
      already inited in copy_partitions() and we fail on assertion.
      
      The fix implies that we don't need check_duplicate_long_entries()
      per-partition as we've already done check_duplicate_long_entries() for
      ha_partition. For REORGANIZE PARTITION that means existing row was
      already checked at previous INSERT/UPDATE commands, so no need to
      check it again (see NOTE in handler::ha_write_row()).
      
      The fix also optimizes ha_update_row() so
      check_duplicate_long_entries_update() is not called per-partition
      considering it was already called for ha_partition. Besides,
      per-partition duplicate check is not really usable.
      231feabd