1. 10 Jun, 2020 9 commits
    • Otto Kekäläinen's avatar
      MDEV-19933: Sync mariadb-common and update-alternatives based /etc/mysql/ · 680a1395
      Otto Kekäläinen authored
      Split the big my.cnf into multiple smaller files with the same filenames
      and contents as official Debian/Ubuntu packaging has.
      
      The config contents stays the same apart from following additions
      which the original MariaDB upstream configs had and probably needs
      to be kept:
      - lc-messages=en_US and skip-external-locking in server config
      
      Configs the original MariaDB upstream had that are seemingly
      unnecessary and thus removed:
      - port=3306 removed from the client config
      - log_warnings=2 removed from server config
      
      Also adopt update-alternatives system using
      mysql-common/configure-symlinks. This way it is aligned with
      downstream Debian/Ubuntu packaging.
      680a1395
    • Sujatha's avatar
      MDEV-22059: MSAN report at replicate_ignore_table_grant · 800eee42
      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.
      800eee42
    • Daniel Black's avatar
      cmake: merge_static_libs - correct duplicate assumptions (#1583) · dc068734
      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.
      dc068734
    • Vladislav Vaintroub's avatar
      MDEV-22841 ut_new_get_key_by_file is unnecessarily expensive · dd77f072
      Vladislav Vaintroub authored
      Change how lookup for the "auto" PSI_memory_keys is done.
      Lookup for filename hashes (integers), instead of C strings
      
      Generate these hashes at the compile time with constexpr,
      rather than at runtime.
      dd77f072
    • 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 10 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