1. 05 Sep, 2024 6 commits
  2. 04 Sep, 2024 1 commit
    • Daniel Black's avatar
      MDEV-34864 SHOW INDEX FROM - SEQ_IN_INDEX to ULong · d1dc7067
      Daniel Black authored
      MySQL-Connector-Net casts SEQ_IN_INDEX to uint and will
      raise an exception if the type is a System.Int64.
      
      As we don't support a huge number of multi-columns in
      an index reducing to a uint is sufficient to represent
      all values and maintain compatibility with MySQL-Connector-Net.
      
      This matches the type (uint) returned by MySQL-8.3 and 8.0.
      
      Reviewer: Alexander Barkov <bar@mariadb.com>
      d1dc7067
  3. 01 Sep, 2024 8 commits
  4. 30 Aug, 2024 2 commits
  5. 29 Aug, 2024 4 commits
  6. 28 Aug, 2024 2 commits
  7. 27 Aug, 2024 2 commits
  8. 26 Aug, 2024 6 commits
  9. 21 Aug, 2024 3 commits
    • Monty's avatar
      MDEV-34043 Drastically slower query performance between CentOS (2sec) and Rocky (48sec) · 1f040ae0
      Monty authored
      One cause of the slowdown is because the ftruncate call can be much
      slower on some systems.  ftruncate() is called by Aria for internal
      temporary tables, tables created by the optimizer, when the upper level
      asks Aria to delete the previous result set. This is needed when some
      content from previous tables changes.
      
      I have now changed Aria so that for internal temporary tables we don't
      call ftruncate() anymore for maria_delete_all_rows().
      
      I also had to update the Aria repair code to use the logical datafile
      size and not the on-disk datafile size, which may contain data from a
      previous result set.  The repair code is called to create indexes for
      the internal temporary table after it is filled.
      I also replaced a call to mysql_file_size() with a pwrite() in
      _ma_bitmap_create_first().
      
      Reviewer: Sergei Petrunia <sergey@mariadb.com>
      Tester: Dave Gosselin <dave.gosselin@mariadb.com>
      1f040ae0
    • Oleksandr Byelkin's avatar
      fix MDEV-34771 & MDEV-34776 · eadf0f63
      Oleksandr Byelkin authored
      removed duplicated methods
      eadf0f63
    • Oleksandr Byelkin's avatar
  10. 20 Aug, 2024 1 commit
  11. 19 Aug, 2024 5 commits
    • Oleksandr Byelkin's avatar
      MDEV-34776 Assertion failure in Item_string::do_build_clone · ae02999c
      Oleksandr Byelkin authored
      Added missed methods to Item_string child.
      ae02999c
    • Oleksandr Byelkin's avatar
      MDEV-34771 Types mismatch when cloning items causes debug assertion · fccfdc28
      Oleksandr Byelkin authored
      Missing methods added to Item_bin_string
      fccfdc28
    • Monty's avatar
      Sort result from table_statistics and index_statistics · db8ab4ac
      Monty authored
      This is needed as the order of rows are not deterministic,
      especially in future versions of table statistics.
      db8ab4ac
    • Monty's avatar
      Revert "mtr: remove not_valgrind_build" · e51d55a6
      Monty authored
      The original code is correct.
      
      valgrind and asan binaries should be built with a specialiced version of
      mem_root that makes it easier to find memory overwrites.
      This is what the BUILD scripts is doing.
      
      The specialiced mem_root code allocates a new block for every allocation
      which is visiable for any test that depenmds on the default original malloc
      size and usage.
      e51d55a6
    • Dmitry Shulga's avatar
      MDEV-34718: Trigger doesn't work correctly with bulk update · ba5482ff
      Dmitry Shulga authored
      Running an UPDATE statement in PS mode and having positional
      parameter(s) bound with an array of actual values (that is
      prepared to be run in bulk mode) results in incorrect behaviour
      in presence of on update trigger that also executes an UPDATE
      statement. The same is true for handling a DELETE statement in
      presence of on delete trigger. Typically, the visible effect of
      such incorrect behaviour is expressed in a wrong number of
      updated/deleted rows of a target table. Additionally, in case UPDATE
      statement, a number of modified rows and a state message returned
      by a statement contains wrong information about a number of modified rows.
      
      The reason for incorrect number of updated/deleted rows is that
      a data structure used for binding positional argument with its
      actual values is stored in THD (this is thd->bulk_param) and reused
      on processing every INSERT/UPDATE/DELETE statement. It leads to
      consuming actual values bound with top-level UPDATE/DELETE statement
      by other DML statements used by triggers' body.
      
      To fix the issue, reset the thd->bulk_param temporary to the value
      nullptr before invoking triggers and restore its value on finishing
      its execution.
      
      The second part of the problem relating with wrong value of affected
      rows reported by Connector/C API is caused by the fact that diagnostics
      area is reused by an original DML statement and a statement invoked
      by a trigger. This fact should be take into account on finalizing a
      state of diagnostics area on completion running of a statement.
      
      Important remark: in case the macros DBUG_OFF is on, call of the method
        Diagnostics_area::reset_diagnostics_area()
      results in reset of the data members
        m_affected_rows, m_statement_warn_count.
      Values of these data members of the class Diagnostics_area are used on
      sending OK and EOF messages. In case DML statement is executed in PS bulk
      mode such resetting results in sending wrong result values to a client
      for affected rows in case the DML statement fires a triggers. So, reset
      these data members only in case the current statement being processed
      is not run in bulk mode.
      ba5482ff