- 05 May, 2024 5 commits
-
-
Sergei Golubchik authored
the test waits for the event to get stuck on MASTER_DELAY, but on a slow/overloaded slave the event might pass MASTER_DELAY before the test starts waiting. Wait for the event to get stuck on the LOCK TABLES (after MASTER_DELAY), the event cannot avoid that,
-
Sergei Golubchik authored
and put master-slave.inc *last* in the series of includes
-
Sergei Golubchik authored
--- func_file_io.result +++ func_file_io.reject @@ -134,7 +134,7 @@ Variable_name Value Performance_schema_accounts_lost 0 Performance_schema_cond_classes_lost 0 -Performance_schema_cond_instances_lost 0 +Performance_schema_cond_instances_lost 5 Performance_schema_digest_lost 0 Performance_schema_file_classes_lost 0 Performance_schema_file_handles_lost 0
-
Nikita Malyavin authored
When HA_DUPLICATE_POS is not supported, the row to replace was navigated by ha_index_read_idx_map, which uses only hash to navigate. Suchwise, given a hash collision it may choose an incorrect row. handler::position would be correct and very convenient to use here. dup_ref is already set by handler independently of the engine capabilities, when an extra lookup is made (for long unique or something else, for example WITHOUT OVERLAPS) such error will be indicated by file->lookup_errkey != -1.
-
Alexander Barkov authored
In strict mode a timestamp(0) column could be directly assigned from another timestamp(N>0) column with the value '1970-01-01 00:00:00.1' (at time zone '+00:00'), or with any other value '1970-01-01 00:00:00.XXXXXX' with non-zero microsecond value XXXXXX. This assignment happened silently without warnings or errors. It worked as follows: - The value {tv_sec=0, tv_usec=100000}, which is '1970-01-01 00:00:00.1' was rounded to {tv_sec=0, tv_usec=0}, which is '1970-01-01 00:00:00.0' - Then {tv_sec=0, tv_usec=0} was silently re-interpreted as zero datetime. After the fix this assignment always raises a warning, which in case of the strict mode is escalated to an error. The problem in this scenario is that '1970-01-01 00:00:00' cannot be stored, because its timeval value {tv_sec=0, tv_usec=0} is reserved for zero datetimes. Thus the warning should be raised no matter if sql_mode allows or disallows zero dates.
-
- 04 May, 2024 2 commits
-
-
Alexander Barkov authored
Field_timestampf::val_native() checked only the first four bytes to detect zero dates. That was not enough. Fixing the code to check all packed_length() bytes to detect zero dates.
-
Alexander Barkov authored
The code in Field_timestamp::save_in_field() did not catch zero datetime and stored it to the other field like a usual value using store_timestamp_dec(), which knows nothing about zero date and treats {tv_sec=0, tv_usec=0} as a normal timeval value corresponding to '1970-01-01 00:00:00 +00:00'. Fixing the code to catch the special combination (ts==0 && sec_pat==0) and store it using store_time_dec() with a zero datetime passed as an argument.
-
- 03 May, 2024 6 commits
-
-
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.
-
Vladislav Vaintroub authored
-
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.
-
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
-
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().
-
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
-
- 02 May, 2024 1 commit
-
-
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
-
- 30 Apr, 2024 3 commits
-
-
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
-
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: Dimitri John Ledkov <dimitri.ledkov@surgut.co.uk>
-
Bernard Spil authored
There is no component `SuportFiles` in MariaDB server, yet a `SupportFiles` component exists.
-
- 29 Apr, 2024 6 commits
-
-
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.
-
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.
-
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.
-
Alexander Barkov authored
Backporting add782a1 from 10.6, this fixes the problem.
-
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".
-
Yuchen Pei authored
We have to #undef my_error and find it from udfs when spider is not installed.
-
- 28 Apr, 2024 2 commits
-
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
pcre2 - fix CMAKE_C_FLAGS for MSVC for external project by Vladislav Vaintroub <vvaintroub@gmail.com>
-
- 27 Apr, 2024 1 commit
-
-
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.
-
- 26 Apr, 2024 1 commit
-
-
Hugo Wen authored
Previously, when running mysqlbinlog without providing a binlog file, it would print the entire help text, which was very verbose and made it difficult to identify the actual issue. Now change the behavior to print a more concise error message instead: "ERROR: Please provide the log file(s). Run with '--help' for usage instructions." This makes the error output more user-friendly and easier to understand, especially when running the tool in scripts or automated processes. All new code of the whole pull request, including one or several files that are either new files or modified ones, are contributed under the BSD-new license. I am contributing on behalf of my employer Amazon Web Services, Inc.
-
- 25 Apr, 2024 5 commits
-
-
Jan Lindström authored
Based on logs we might start SST before donor has reached Primary state. Because this test shutdowns all nodes we need to make sure when we start nodes that previous nodes have reached Primary state and joined the cluster. Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
-
Marko Mäkelä authored
mtr_t::commit_shrink(): Do not assert that some previously clean pages will be flagged as modified by this mini-transaction. It could be the case that there had been no recent write-back of any of the undo tablespace pages that we are modifying when truncating the tablespace. It suffices to assert that some pages were modified again: ut_ad(m_modifications). This fixes up commit f5fddae3
-
Kristian Nielsen authored
The test could fail with a duplicate key error because switching to non-GTID mode could start at the wrong old-style position. The position could be wrong when the previous GTID connect was stopped before receiving the fake GTID list event which gives the old-style position corresponding to the GTID connected position. Work-around by injecting an extra event and syncing the slave before switching to non-GTID mode. Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
-
Marko Mäkelä authored
Starting with GCC 10, let us enable _GLIBCXX_DEBUG as well as _GLIBCXX_ASSERTIONS which have an impact on the GNU libstdc++. On GCC 8, we observed a compilation failure related to some missing type conversion. Even though clang on GNU/Linux would default to using libstdc++ and enabling the debugging seems to work with clang-18, we will not enable this on clang, in case it would lead to compilation errors. For the clang libc++ before clang-15 there was _LIBCPP_DEBUG, but according to llvm/llvm-project@f3966eaf869b7bdd9113ab9d5b78469eb0f5f028 and llvm/llvm-project@13ea1343231fa4ae12fe9fba4c789728465783d7 and llvm/llvm-project@ff573a42cd1f1d05508f165dc3e645a0ec17edb5 it looks like that for proper results, a specially built debug version of libc++ would have to be used in order to enable equivalent checks. This should help catch bugs like the one that commit 455a15fd fixed. Reviewed by: Sergei Golubchik
-
Marko Mäkelä authored
While commit 75b7cd68 was a significant improvement, we occasionally got test failures of debug builds. One of the affected tests is innodb.innodb-64k-crash.
-
- 24 Apr, 2024 3 commits
-
-
Sergei Golubchik authored
MDL wait consists of short 1 second waits (this is not configurable) repeated until lock_wait_timeout is reached. The stage is changed to Waiting and back every second. To have predictable result in the test the query should filter all sequences of X, "Waiting for MDL", X, leaving just X.
-
Sergei Golubchik authored
it allocates 1GB of memory, it causes failures in CI
-
Sergei Golubchik authored
like other galera tests do
-
- 23 Apr, 2024 3 commits
-
-
Meng-Hsiu Chiang authored
`FindZLIB` module uses variable `ZLIB_ROOT`[1] to look for libraries. By setting the variable, `FindZLIB` is able to search the libraries that installed in a non-system path (/workspace/mylib for example). And when using `z` in `LINK_LIBRARIES()` CMake tries to lookup the library in system path by default. It doesn't work if the library isn't installed in the path, and use ${ZLIB_LIBRARY} which set by FindZLIB solve the issue. All new code of the whole pull request, including one or several files that are either new files or modified ones, are contributed under the BSD-new license. I am contributing on behalf of my employer Amazon Web Services. [1]: https://cmake.org/cmake/help/latest/module/FindZLIB.html#hints
-
Sergei Golubchik authored
followup for 061adae9
-
Alexander Barkov authored
This problem was earlier fixed by the patch for MDEV 33344. Adding a test case only.
-
- 22 Apr, 2024 2 commits
-
-
Alexander Barkov authored
There is a convention that Item::val_int() and Item::val_real() return SQL NULL doing effectively what this code does: null_value= true; return 0; // Always return 0 for SQL NULL This is done to optimize boolean value evaluation: if Item::val_int() or Item::val_real() returned 1 - that always means TRUE and never can means SQL NULL. This convention helps to avoid unnecessary testing Item::null_value after getting a non-zero return value. Item_func_min_max did not follow this convention. It could return a non-zero value together with null_value==true. This made evaluate_join_record() erroneously misinterpret SQL NULL as TRUE in this call: select_cond_result= MY_TEST(select_cond->val_int()); Fixing Item_func_min_max to follow the convention.
-
Markus Staab authored
-