1. 10 Jun, 2020 7 commits
    • Sujatha's avatar
      MDEV-22059: MSAN report at replicate_ignore_table_grant · 840fb495
      Sujatha authored
      Analysis:
      ========
      List of values provided for "replicate_ignore_table" and "replicate_do_table"
      are stored in HASH.  When an empty list is provided the HASH structure doesn't
      get initialized. Existing code treats empty element list as an error and tries
      to clean the uninitialized HASH. This results in above MSAN issue.
      
      Fix:
      ===
      The clean up should be initiated only when there is an error while parsing the
      'replicate_do_table' or 'replicate_ignore_table' list and the HASH is in
      initialized state. Otherwise for empty list it should simply return success.
      840fb495
    • Daniel Black's avatar
      cmake: merge_static_libs - correct duplicate assumptions (#1583) · 6e4e097b
      Daniel Black authored
      This corrects build failures on ppc64{,le} with the
      WITH_EMBEDDED_SERVER option enabled.
      
      MDEV-22641 added an unusual case in which the same object
      file in was included twice with a different function
      defination. The original cmake/merge_archives_unix.cmake
      did not tolerate such eventualities.
      
      So we move to the highest voted answer on Stack Overflow
      for the merging of static libraries.
      https://stackoverflow.com/questions/3821916/how-to-merge-two-ar-static-libraries-into-one
      
      Thin archives generated compile failures and the libtool
      mechanism would of been another dependency and using .la
      files that isn't part of a normal cmake output. The straight
      Apple mechanism of libtool with static archives also failed
      on Linux.
      
      This leaves the MRI script mechansim which was implemented
      in this change.
      6e4e097b
    • Marko Mäkelä's avatar
      MDEV-22110 preparation: Remove mtr_memo_contains macros · 17a7bafe
      Marko Mäkelä authored
      Let us invoke the debug member functions of mtr_t directly.
      
      mtr_t::memo_contains(): Change the parameter type to
      const rw_lock_t&. This function cannot be invoked on
      buf_block_t::lock.
      
      The function mtr_t::memo_contains_flagged() is intended to be invoked
      on buf_block_t* or rw_lock_t*, and it along with
      mtr_t::memo_contains_page_flagged() are the way to check whether
      a buffer pool page has been latched within a mini-transaction.
      17a7bafe
    • Marko Mäkelä's avatar
      MDEV-22110 preparation: Remove some unused function parameters · d6f8c484
      Marko Mäkelä authored
      xdes_get_state(), fseg_get_nth_frag_page_no(),
      fseg_find_free_frag_page_slot(), fseg_find_last_used_frag_page_slot(),
      fseg_get_n_frag_pages(), fseg_n_reserved_pages_low(),
      fseg_print_low(): Remove the unused parameter mtr, and add
      a const qualifier to the pointer to the buffer pool page frame.
      d6f8c484
    • Marko Mäkelä's avatar
      MDEV-15053: Adjust results for innodb_page_hash_locks=64 · 59762ac4
      Marko Mäkelä authored
      This should have been part of
      commit 70d4e55d.
      59762ac4
    • Marko Mäkelä's avatar
      Fix GCC -Wunused-function · e76ca24b
      Marko Mäkelä authored
      debug_sync_set_action(): Declare the dummy function inline,
      to silence a warning about declared-but-unused static function.
      This amends commit 3ccd6766.
      e76ca24b
    • Julius Goryavsky's avatar
  2. 09 Jun, 2020 7 commits
  3. 08 Jun, 2020 6 commits
  4. 07 Jun, 2020 8 commits
  5. 06 Jun, 2020 12 commits
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · c7a2fb1e
      Marko Mäkelä authored
      c7a2fb1e
    • Igor Babaev's avatar
      MDEV-22748 MariaDB crash on WITH RECURSIVE large query · e9dbbf11
      Igor Babaev authored
      This bug is the same as the bug MDEV-17024. The crashes caused by these
      bugs were due to premature cleanups of the unit specifying recursive CTEs
      that happened in some cases when there were several outer references the
      same recursive CTE.
      The problem of premature cleanups for recursive CTEs could be already
      resolved by the correction in TABLE_LIST::set_as_with_table() introduced
      in this patch. ALL other changes introduced by the patches for MDEV-17024
      and MDEV-22748 guarantee that this clean-ups are performed as soon as
      possible: when the select containing the last outer reference to a
      recursive CTE is being cleaned up the specification of the recursive CTE
      should be cleaned up as well.
      e9dbbf11
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · 4612cb88
      Marko Mäkelä authored
      4612cb88
    • Marko Mäkelä's avatar
      MDEV-22817: Skip the test in --embedded · be0c46eb
      Marko Mäkelä authored
      be0c46eb
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · b3e395a1
      Marko Mäkelä authored
      b3e395a1
    • Marko Mäkelä's avatar
      MDEV-22721 fixup for 32-bit GCC · e14ffd85
      Marko Mäkelä authored
      lock_check_trx_id_sanity(): Because the argument of UNIV_LIKELY
      or __builtin_expect() can be less than sizeof(trx_id_t) on 32-bit
      systems, it cannot reliably perform an implicit comparison to 0.
      e14ffd85
    • Marko Mäkelä's avatar
      MDEV-22817: Add a test case · 187b9c92
      Marko Mäkelä authored
      187b9c92
    • Marko Mäkelä's avatar
      Merge 10.1 into 10.2 · 0df01ccb
      Marko Mäkelä authored
      0df01ccb
    • Marko Mäkelä's avatar
      MDEV-22721: Fix GCC 5.3.1 -Wconversion · a08a8bc1
      Marko Mäkelä authored
      a08a8bc1
    • Alexander Barkov's avatar
      MDEV-20305 Data loss on DOUBLE and DECIMAL conversion to INT · 79cdd7e7
      Alexander Barkov authored
      Bit operators (~ ^ | & << >>) and the function BIT_COUNT()
      always called val_int() for their arguments.
      It worked correctly only for INT type arguments.
      
      In case of DECIMAL and DOUBLE arguments it did not work well:
      the argument values were truncated to the maximum SIGNED BIGINT value
      of 9223372036854775807.
      
      Fixing the code as follows:
      
      - If the argument if of an integer data type,
        it works using val_int() as before.
      
      - If the argument if of some other data type, it gets the argument value
        using val_decimal(), to avoid truncation, and then converts the result
        to ulonglong.
      
      Using Item_handled_func to switch between the two approaches easier.
      
      As an additional advantage, with Item_handled_func it will be easier
      to implement overloading in the future, so data type plugings will be able
      to define their own behavioir of bit operators and BIT_COUNT().
      
      Moving the code from the former val_int() implementations
      as methods to Longlong_null, to avoid code duplication in the
      INT and DECIMAL branches.
      79cdd7e7
    • Marko Mäkelä's avatar
      MDEV-22818 Server crash on corrupted ROW_FORMAT=COMPRESSED page · 1bd5b75c
      Marko Mäkelä authored
      page_zip_fields_decode(): Do not dereference index=NULL.
      Instead, return NULL early. The only caller does not care
      about the values of output parameters in that case.
      
      This bug was introduced in MySQL 5.7.6 by
      mysql/mysql-server@9eae0edb7a8e4004328e61157f5f3b39cebe1b2b
      and in MariaDB 10.2.2 by
      commit 2e814d47.
      
      Thanks to my son for pointing this out after investigating
      the output of a static analysis tool.
      1bd5b75c
    • Marko Mäkelä's avatar
      Merge 10.4 into 10.5 · a793ae5b
      Marko Mäkelä authored
      a793ae5b