1. 06 Feb, 2024 4 commits
  2. 05 Feb, 2024 2 commits
    • Brandon Nesterenko's avatar
      MDEV-32551: Fix engines/funcs.rpl_session_var · bde552ae
      Brandon Nesterenko authored
      MDEV-32551 changed rpl/t/rpl_session_var.test to show its
      semi-sync status, as it added a semi-sync version of the
      test (rpl_session_var2). The result was re-recorded in the
      rpl suite, but there is an engines/funcs counter-part result
      file that uses the same .test file which also needed to be
      re-recorded.
      bde552ae
    • Yuchen Pei's avatar
      MDEV-33242 Make Spider init queries compatible with non-default old_mode · 1031c884
      Yuchen Pei authored
      Add UTF8_IS_UTF8MB3 to the (session) old_mode in connections made with
      sql service to run init queries
      
      The connection is new and the global variable value takes effect
      rather than the session value from the caller of spider_db_init
      1031c884
  3. 01 Feb, 2024 1 commit
  4. 31 Jan, 2024 6 commits
  5. 30 Jan, 2024 2 commits
    • Oleksandr Byelkin's avatar
      workaround for MDEV-33218 · 908c9cf9
      Oleksandr Byelkin authored
      908c9cf9
    • Brandon Nesterenko's avatar
      MDEV-33327: rpl_seconds_behind_master_spike Sensitive to IO Thread Stop Position · c75905ca
      Brandon Nesterenko authored
      rpl.rpl_seconds_behind_master_spike uses the DEBUG_SYNC mechanism to
      count how many format descriptor events (FDEs) have been executed,
      to attempt to pause on a specific relay log FDE after executing
      transactions. However, depending on when the IO thread is stopped,
      it can send an extra FDE before sending the transactions, forcing
      the test to pause before executing any transactions, resulting in a
      table not existing, that is attempted to be read for COUNT.
      
      This patch fixes this by no longer counting FDEs, but rather by
      programmatically waiting until the SQL thread has executed the
      transaction and then automatically activating the DEBUG_SYNC point
      to trigger at the next relay log FDE.
      c75905ca
  6. 29 Jan, 2024 1 commit
  7. 27 Jan, 2024 3 commits
  8. 26 Jan, 2024 4 commits
    • Brandon Nesterenko's avatar
      MDEV-27850: rpl_seconds_behind_master_spike debug_sync fix · 112eb14f
      Brandon Nesterenko authored
      A debug_sync signal could remain for the SQL thread that should have begun
      a wait_for upon seeing a GTID event, but would instead see the old signal
      and continue on without waiting. This broke an "idle" condition in
      SHOW SLAVE STATUS
      which should have automatically negated Seconds_Behind_Master. Instead,
      because the SQL thread had already processed the GTID event, it set
      sql_thread_caught_up to false, and thereby calculated the value of
      Seconds_behind_master, when the test expected 0.
      
      This patch fixes this by resetting the debug_sync state before creating a
      new transaction which sends a GTID event to the replica
      112eb14f
    • Rucha Deodhar's avatar
      daca0c05
    • Vladislav Vaintroub's avatar
      update C/C · e96a0594
      Vladislav Vaintroub authored
      e96a0594
    • Marko Mäkelä's avatar
      MDEV-33317 [Warning] InnoDB: Could not free any blocks in the buffer pool! · 220c0fb4
      Marko Mäkelä authored
      Let us suppress this timing-sensitive warning globally.
      We added it in commit d34479dc (MDEV-33053)
      so that in case InnoDB hangs due to running out of buffer pool, there
      would be a warning about it. On a heavily loaded system that is running
      with a small buffer pool, these warnings may be occasionally issued
      while page writes are in progress.
      220c0fb4
  9. 25 Jan, 2024 4 commits
    • Vladislav Vaintroub's avatar
      MDEV-26579 fixup · b62f25c6
      Vladislav Vaintroub authored
      b62f25c6
    • Vladislav Vaintroub's avatar
      MDEV-26579 Support minor MSI in Windows installer. · 0f59810b
      Vladislav Vaintroub authored
      With this patch, 4-component MSI version can be used, e.g by setting
      TINY_VERSION variable in CMake, or by adding a string, e.g
      MYSQL_VERSION_EXTRA=-2
      which sets TINY_VERSION to 2, and also changes the package name.
      
      The 4-component MSI versions do not support MSI major upgrades, only minor
      ones, i.e do not reinstall components, just update existing ones based
      on versioning rules.
      
      To support these rules, add DefaultVersion for the files that won't
      otherwise be versioned - headers, static and import libraries,
      pdbs, text - xml, python and perl scripts Also silence WiX warning
      that MSI won't store hashes for those files anymore.
      0f59810b
    • Vladislav Vaintroub's avatar
      Remove bogus "perl not found" on Windows. · c9c4f15e
      Vladislav Vaintroub authored
      Testing exit code from popen(), comparing it with 1, and deciding that
      perl.exe is not there, is a) wrong conclusion, and b) uninteresting,
      because MTR always runs with perl, and with MTR_PERL set.
      
      Background:
      Recent change in 7af50e4d introduced
      exit code 1 from perl snippet, that broke Windows CI. Do not want
      to debug this ever again.
      c9c4f15e
    • Yuchen Pei's avatar
      MDEV-33191 spider: fix dbton_id when iterating over links · 1070575a
      Yuchen Pei authored
      There are two array fields in spider_share with similar names:
      
      share->use_sql_dbton_ids that maps from i to the i-th dbton used by
      share. Thus it should be used only when i iterates over all distinct
      dbtons used by share.
      
      share->sql_dbton_ids that maps from i to the dbton used by the i-th
      link of the share. Thus it should be used only when i iterates over
      all links of a share.
      
      We correct instances where share->sql_dbton_ids should be used instead
      of share->use_sql_dbton_ids.
      1070575a
  10. 24 Jan, 2024 3 commits
    • Alexander Barkov's avatar
      MDEV-32837 long unique does not work like unique key when using replace · 97fcafb9
      Alexander Barkov authored
      write_record() when performing REPLACE has an optimization:
      - if the unique violation happened in the last unique key, then do UPDATE
      - otherwise, do DELETE+INSERT
      
      This patch changes the way of detecting if this optimization
      can be applied if the table has long (hash based) unique
      (i.e. UNIQUE..USING HASH) constraints.
      
      Problem:
      
      The old condition did not take into account that
      TABLE_SHARE and TABLE see long uniques differently:
      - TABLE_SHARE sees as HA_KEY_ALG_LONG_HASH and HA_NOSAME
      - TABLE sees as usual non-unique indexes
      So the old condition could erroneously decide that the UPDATE optimization
      is possible when there are still some unique hash constraints in the table.
      
      Fix:
      
      - If the current key is a long unique, it now works as follows:
      
        UPDATE can be done if the current long unique is the last
        long unique, and there are no in-engine (normal) uniques.
      
      - For in-engine uniques nothing changes, it still works as before:
      
        If the current key is an in-engine (normal) unique:
        UPDATE can be done if it is the last normal unique.
      97fcafb9
    • Alexander Barkov's avatar
      MDEV-29095 REGEXP_REPLACE treats empty strings different than REPLACE in ORACLE mode · f738cc98
      Alexander Barkov authored
      Turning REGEXP_REPLACE into two schema-qualified functions:
      - mariadb_schema.regexp_replace()
      - oracle_schema.regexp_replace()
      
      Fixing oracle_schema.regexp_replace(subj,pattern,replacement) to treat
      NULL in "replacement" as an empty string.
      
      Adding new classes implementing oracle_schema.regexp_replace():
      - Item_func_regexp_replace_oracle
      - Create_func_regexp_replace_oracle
      
      Adding helper methods:
      - String *Item::val_str_null_to_empty(String *to)
      - String *Item::val_str_null_to_empty(String *to, bool null_to_empty)
      
      and reusing these methods in both Item_func_replace and
      Item_func_regexp_replace.
      f738cc98
    • Alexey Botchkov's avatar
      MDEV-31616 Problems with a stored function EMPTY() on upgrade to 10.6. · 9d88c5b8
      Alexey Botchkov authored
      The IDENT_sys doesn't include keywords, so the function with the
      keyword name can be created, but cannot be called.
      Moving keywords to new rules keyword_func_sp_var_and_label and
      keyword_func_sp_var_not_label so the functions with these
      names are allowed.
      9d88c5b8
  11. 23 Jan, 2024 10 commits