- 13 Oct, 2021 12 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
innodb_max_dirty_pages_pct_update(), innodb_max_dirty_pages_pct_lwm_update(): Invoke buf_pool.page_cleaner_wakeup() in order to wake up buf_flush_page_cleaner. This allows the test innodb.page_cleaner to run without any occasional timeouts. The occasional hangs were introduced by commit 7b1252c0 (MDEV-24278).
-
Jan Lindström authored
Add wait_condition
-
Jan Lindström authored
10.5 version
-
Marko Mäkelä authored
The changes to galera.galear_var_replicate_myisam_on in commit d9b933be are omitted due to conflicts with commit 27d66d64.
-
Marko Mäkelä authored
The test galera.galera_var_replicate_myisam_on would trigger an assertion failure "mode() == m_local" in wsrep-lib/src/client_state.cpp after the merge of commit 3067ffc5 enabled it.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
In commit 1cb218c3 (MDEV-26450) we introduced the function log_write_and_flush(), which may compete with log_checkpoint() invoking log_write_flush_to_disk_low() from another thread. The assertion n_pending_flushes==1 is too strict. There is no possibility of a race condition here, because fil_flush() is protected by fil_system->mutex and the rest will be protected by log_sys->mutex. log_write_flush_to_disk_low(), log_write_and_flush(): Relax the assertions to test for a nonzero count.
-
Daniel Black authored
Debian stretch is supported until Jun 2022. MyRocks definitavely does require 1.1.3+. Mroonga has never been zstd enabled, though support for it exists in the codebase. While a 1.1.3+ version exists in stretch backports we don't support this. Fixes: b67210b1054118fe14b6346bdee3f9bbd3416870
-
- 12 Oct, 2021 21 commits
-
-
Sergei Krivonos authored
-
Eugene Kosov authored
-
Sergei Golubchik authored
If charset aggregation decides to convert arguments to some specific charset and some arguments are numbers, they'll be wrapped into a Item_func_conv_charset(), that changes result_type() to STRING_RESULT. Fix: don't convert numbers, sformat needs their numerical value only.
-
Sergei Golubchik authored
-
Vladislav Vaintroub authored
libfmt must be built before sql or sql_embedded target, since compilation of item_strfunc.cc depends on it. Previously, GenServerSource depended on libfmt,yet this GenServerSource is not a direct or indirect dependency of sql, if -DPLUGIN_PERFSCHEMA=NO is used in cmake configuration step.
-
Sergei Golubchik authored
1. it is against sql way, auto-detection should use metadata, not data, consider: create table t1 (qwe varchar(10)) as values ('qwe'),('qw'),('q'),('werty'); select sformat('{:*>5s}', qwe) from t1; this will auto-break on the third row. 2. using max_char_length() instead of length() fixes that, but there's a second big issue, fmt < 8.0 doesn't natively support unicode, so {:c} would only work for one-byte strings, for 'a', not for 'я' because of all that let's always format strings as strings. {:c} will only now work for numbers and still only in the ascii range.
-
Sergei Golubchik authored
libfmt 6.1 is in Ubuntu focal repositories. it's easy to compile with 6.1 by doing #define detail internal but 6.1 also produces different results in main.func_sformat and we want MariaDB to behave identically everywhere.
-
Sergei Golubchik authored
String inherits from Sql_alloc, so it's allocated on the thd's memroot, this cannot be done per row. Moved String[] allocation into the Item_func_sformat constructor (not fix_fields(), because we want it on the same memroot where the item is).
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
by printing a String as an std::string_view, not as a char*
-
Sergei Golubchik authored
* comment - use the standard style * no need to reimplement for with while * TODO comments for not implemented types * rename the error not to refer to the underlying library, it's the implementation detail * use res->length(0) to set length to 0, but preserve the already allocated buffer * rename main.sformat -> main.func_sformat * removed a duplicated part of the test
-
Alan Cueva authored
SFORMAT() SQL function that uses fmtlib (https://fmt.dev/) for python-like (also Rust, C++20, etc) string formatting Only fmtlib 7.0.0+ is supported, older fmtlib produces different results in the test. No native support for temporal and decimal values, * TIME_RESULT is handled as STRING_RESULT * DECIMAL_RESULT as REAL_RESULT
-
Oleksandr Byelkin authored
Explicitly devide two function of 0 length in the hash keys comparing.
-
Oleksandr Byelkin authored
No empty name roles exists (no sens to look for). The problem already present in our test cases.
-
Oleksandr Byelkin authored
Prohibit user variables without name
-
Oleksandr Byelkin authored
Get rid of locking "empty" plugin. This problem present in our tests in case of malformed frm-file, for example.
-
Oleksandr Byelkin authored
MDEV-26637: (explicit length) ASAN: main.metadata and user_variables.basic MTR failures after MDEV-26572 Use explicit length for hash record length
-
Marko Mäkelä authored
Before clang-10, asm goto was not supported, so we must use fetch_or().
-
Daniele Sciascia authored
Update wsrep-lib, and add MTR test case for MDEV-26707 Reviewed-by:
Jan Lindström <jan.lindstrom@mariadb.com>
-
- 11 Oct, 2021 7 commits
-
-
Otto Kekäläinen authored
- Add libconfig-inifiles-perl to mariadb-client depends as mytop uses it https://salsa.debian.org/mariadb-team/mariadb-10.5/-/commit/7a748da87a23eb874d0bddb64114a795e9d07e6d http://bugs.debian.org/875708 - Make libzstd dependency versioned as RocksDB need at least 1.3.3 https://salsa.debian.org/mariadb-team/mariadb-10.5/-/commit/da4eb54fc0c2ded0e10243fe1d81bf7e105a25c3 However, https://github.com/facebook/rocksdb/blob/master/INSTALL.md implies that zstandard 1.1.3 would suffice. Version 1.3.x is available from Debian Stretch-backports and Ubuntu Xenial onwards.
-
Alexander Barkov authored
Also fixes MDEV-24467 Memory not freed after failed INSERT DELAYED Description: In case of an error (e.g. data truncation) during mysql_insert() handling an INSERT DELAYED, the data type specific data in fields (e.g. Field_blob::value) is not taken over by the delayed writer thread. All fields in table_list->table are freed by free_root() immediately after mysql_insert(). To avoid a memory leak, we need to free the specific data before exiting mysql_insert() on error.
-
Alexander Barkov authored
The crash happened because my_isalnum() does not support character sets with mbminlen>1. The value of "ft_boolean_syntax" is converted to utf8 in do_string_check(). So calling my_isalnum() is combination with "default_charset_info" was wrong. Adding new parameters (size_t length, CHARSET_INFO *cs) to ft_boolean_check_syntax_string() and passing self->charset(thd) as the character set.
-
Alexander Barkov authored
The crash happened because Item_aes_crypt::val_str() did not set the character set of the result.
-
SergMariaDB authored
Co-authored-by:
FX Coudert <fxcoudert@gmail.com>
-
Aleksey Midenkov authored
Uninitialized ref_pointer_array[] because setup_fields() got empty fields list. mysql_multi_update() for some reason does that by substituting the fields list with empty total_list for the mysql_select() call (looks like wrong merge since total_list is not used anywhere else and is always empty). The fix would be to return back the original fields list. But this fails update_use_source.test case: --error ER_BAD_FIELD_ERROR update v1 set t1c1=2 order by 1; Actually not failing the above seems to be ok. The other fix would be to keep resolve_in_select_list false (and that keeps outer context from being resolved in Item_ref::fix_fields()). This fix is more consistent with how SELECT behaves: --error ER_SUBQUERY_NO_1_ROW select a from t1 where a= (select 2 from t1 having (a = 3)); So this patch implements this fix.
-
Aleksey Midenkov authored
There are two fill_record() functions (lines 8343 and 8618). First one is used when there are some explicit values, the second one is used for all implicit values. First one does update_default_fields(), the second one did not. Added update_default_fields() call to the implicit version of fill_record().
-