1. 06 May, 2024 2 commits
  2. 05 May, 2024 17 commits
  3. 04 May, 2024 2 commits
  4. 03 May, 2024 6 commits
    • Vladislav Vaintroub's avatar
      MDEV-34063 tpool - integer overflow in multiplication. · 88f49da8
      Vladislav Vaintroub authored
      When calculating next wakeup timepoint for the timer thread, with large
      thread_pool_stall_limit values, 32bit int overflow can happen.
      Fixed by making one operand 8 byte large.
      
      Also fixed the type of tick_interval to be unsigned, so it does not
      go negative for very thread_pool_stall_limit.
      88f49da8
    • Vladislav Vaintroub's avatar
      b18259ec
    • Vladislav Vaintroub's avatar
      MDEV-33876 CMake, zlib - use names compatible with official FindZLIB.cmake · 029e2a5f
      Vladislav Vaintroub authored
      - ZLIB_LIBRARIES, not ZLIB_LIBRARY
      - ZLIB_INCLUDE_DIRS, not ZLIB_INCLUDE_DIR
      
      For building libmariadb, ZLIB_LIBRARY/ZLIB_INCLUDE_DIR are still defined
      This workaround will be removed later.
      029e2a5f
    • Marko Mäkelä's avatar
      MDEV-33817: AVX512BW and VPCLMULQDQ based CRC-32 · 9ec7819c
      Marko Mäkelä authored
      This is based on https://github.com/intel/intel-ipsec-mb/
      and has been tested both on x86 and x86-64, with code that
      was generated by several versions of GCC and clang.
      GCC 11 or clang 8 or later should be able to compile this,
      and so should recent versions of MSVC.
      
      Thanks to Intel Corporation for providing access to hardware,
      for answering my questions regarding the code, and for
      providing the coefficients for the CRC-32C computation.
      
      crc32_avx512(): Compute a reverse polynomial CRC-32 using
      precomputed tables and carry-less product, for up to 256 bytes
      of unaligned input per loop iteration.
      
      Reviewed by: Vladislav Vaintroub
      9ec7819c
    • Marko Mäkelä's avatar
      MDEV-33817 preparation: Restructuring and unit tests · 611cd6b9
      Marko Mäkelä authored
      In our unit test, let us rely on our own reference
      implementation using the reflected
      CRC-32 ISO 3309 and CRC-32C polynomials. Let us also
      test with various lengths.
      
      Let us refactor the CRC-32 and CRC-32C implementations
      so that no special compilation flags will be needed and
      that some function call indirection will be avoided.
      
      pmull_supported: Remove. We will have pointers to two separate
      functions crc32c_aarch64_pmull() and crc32c_aarch64().
      611cd6b9
    • Yuchen Pei's avatar
      MDEV-33538 make auxiliary spider plugins init depend on actual spider · b84d335d
      Yuchen Pei authored
      The two I_S plugins SPIDER_ALLOC_MEM and SPIDER_WRAPPER_PROTOCOL
      only makes sense if the main SPIDER plugin is installed. Further,
      SPIDER_ALLOC_MEM requires a mutex that requires SPIDER init to fill
      the table.
      
      We also update the spider init query to override
      --transaction_read_only=on so that it does not affect the spider init.
      
      Also fixed error handling in spider_db_init() so that failure in
      spider table init does not result in memory leak
      b84d335d
  5. 02 May, 2024 1 commit
    • Vladislav Vaintroub's avatar
      postfix a09ebe55 (PCRE-10.43) · 20f60fe7
      Vladislav Vaintroub authored
      - no need to switch off -fsanitize-address for MSVC anymore
      - option /WX is MSVC only
      - CMAKE_C_STANDARD C99 is already in pcre's own CMakeLists.txt
      20f60fe7
  6. 30 Apr, 2024 3 commits
    • Daniel Black's avatar
      MDEV-33631 Ubuntu/Debian MYSQL_SERVER_SUFFIX is version+suffix on MariaDB packaged versions · e63ed4e0
      Daniel Black authored
      The debian/rules removed sufficient version information from the
      downstream version, however the mariadb upstream has a +
      separator from the suffix.
      
      While we are at it, remove the Debian/Ubuntu revision -1.
      
      Other revisions used:
      * Debian unstable (inherited to both Debian and Ubuntu if package unchanged): 1:10.11.6-2
      * Ubuntu stable updates example: 1:10.11.6-0ubuntu0.23.10.2
      * Debian stable updates example: 1:10.11.4-1~deb12u1
      
      The result is compulation with:
          -DMYSQL_SERVER_SUFFIX="-1:10.4.34+maria~deb10" \
      
      Compared to Debian:
          -DMYSQL_SERVER_SUFFIX="-1~deb12u1" \
      
      The impact comes into play with SELECT VERSION():
          10.4.34-MariaDB-1:10.4.34+maria~deb10
      
      A more abbreviated form of the following is much more human/machine parsable:
          10.6.16-MariaDB~ubu2004
      
      Reviewer: Otto Kekäläinen
      e63ed4e0
    • Dimitri John Ledkov's avatar
      openssl: add a more specific DES support detection · bf77f979
      Dimitri John Ledkov authored
      Improve detection for DES support in OpenSSL, to allow compilation
      against system OpenSSL without DES.
      
      Note that MariaDB needs to be compiled against OpenSSL-like library
      that itself has DES support which cmake detected. Positive detection
      is indicated with CMake variable HAVE_des 1.
      Signed-off-by: default avatarDimitri John Ledkov <dimitri.ledkov@surgut.co.uk>
      bf77f979
    • Bernard Spil's avatar
      Fix typo · f9575495
      Bernard Spil authored
      There is no component `SuportFiles` in MariaDB server, yet a `SupportFiles` component exists.
      f9575495
  7. 29 Apr, 2024 6 commits
    • Rucha Deodhar's avatar
      MDEV-22141: JSON_REMOVE returns NULL on valid arguments · 9e6858a4
      Rucha Deodhar authored
      Analysis:
      When we scan json to get to a beginning according to the path, we end up
      scanning json even if we have exhausted it. When eventually returns error.
      
      Fix:
      Continue scanning json only if we have not exhausted it and return result
      accordingly.
      9e6858a4
    • Rucha Deodhar's avatar
      MDEV-32287: JSON_EXTRACT not returning multiple values for same path · 5ca64e65
      Rucha Deodhar authored
      Analysis:
      When scanning json and getting the exact path at each step, if a path
      is reached, we end up adding the item in the result and immediately get the
      next item which results in current path changing.
      Fix:
      Instead of immediately returning the item, count the occurences of the path
      in argument and append in the result as needed.
      5ca64e65
    • Rucha Deodhar's avatar
      MDEV-19487: JSON_TYPE doesnt detect the type of String Values · d7df63e1
      Rucha Deodhar authored
      (returns NULL) and for Date/DateTime returns "INTEGER"
      
      Analysis:
      When the first character of json is scanned it is number. Based on that
      integer is returned.
      Fix:
      Scan rest of the json before returning the final result to ensure json is
      valid in the first place in order to have a valid type.
      d7df63e1
    • Alexander Barkov's avatar
      MDEV-30646 View created via JSON_ARRAYAGG returns incorrect json object · c6e3fe29
      Alexander Barkov authored
      Backporting add782a1 from 10.6, this fixes the problem.
      c6e3fe29
    • Alexander Barkov's avatar
      MDEV-21058 CREATE TABLE with generated column and RLIKE results in sigabrt · dc25d600
      Alexander Barkov authored
      Regexp_processor_pcre::fix_owner() called Regexp_processor_pcre::compile(),
      which could fail on the regex syntax error in the pattern and put
      an error into the diagnostics area. However, the callers:
        - Item_func_regex::fix_length_and_dec()
        - Item_func_regexp_instr::fix_length_and_dec()
      still returned "false" in such cases, which made the code
      crash later inside Diagnostics_area::set_ok_status().
      
      Fix:
      
      - Change the return type of fix_onwer() from "void" to "bool"
        and return "true" whenever an error is put to the DA
        (e.g. on the syntax error in the pattern).
      - Fixing fix_length_and_dec() of the mentioned Item_func_xxx
        classes to return "true" if fix_onwer() returned "true".
      dc25d600
    • Yuchen Pei's avatar
      MDEV-30727 Check spider_hton_ptr in spider udfs · 267dd5a9
      Yuchen Pei authored
      We have to #undef my_error and find it from udfs when spider is not
      installed.
      267dd5a9
  8. 28 Apr, 2024 2 commits
  9. 27 Apr, 2024 1 commit
    • Alexander Barkov's avatar
      MDEV-33534 UBSAN: Negation of -X cannot be represented in type 'long long... · 3141a68b
      Alexander Barkov authored
      MDEV-33534 UBSAN: Negation of -X cannot be represented in type 'long long int'; cast to an unsigned type to negate this value to itself in my_double_round from sql/item_func.cc|
      
      The negation in this line:
        ulonglong abs_dec= dec_negative ? -dec : dec;
      did not take into account that 'dec' can be the smallest possible
      signed negative value -9223372036854775808. Its negation is
      an operation with an undefined behavior.
      
      Fixing the code to use Longlong_hybrid, which implements a safe
      method to get an absolute value.
      3141a68b