- 01 Jun, 2020 12 commits
-
-
Vladislav Vaintroub authored
exporting data from the server needs MYSQL_PLUGIN_IMPORT.
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
-
Varun Gupta authored
For character sets and collation where character to weight mapping > 1, there we need to make sure while creating a sort key, a temporary buffer is created to store the value of the item by val_str function and then copy that value back to the sort buffer. In this case when using a priority queue Sort_param::tmp_buffer was not allocated. Minor refactoring: Changed Sort_param::tmp_buffer from char* to String
-
Kentoku authored
MENT-458 MTR Big test "spider/bugfix.sql_mode_mariadb & myself" are both failing on Azure MTR pipeline Support the dash number of MariaDB versions by Spider's tests
-
Kentoku authored
Support the dash number of MariaDB versions by Spider's install sequence
-
Alexander Barkov authored
-
Alexander Barkov authored
Item_sum_sp did not override val_native(). So the reported script crashed in the default implementation in Item::val_native() on DBUG_ASSERT(). Implementing a correct Item_sum_sp::val_native().
-
mysqlonarm authored
Existing implementation used my_checksum (from mysys) for calculating table checksum and binlog checksum. This implementation was optimized for powerpc only and lacked SIMD implementation for x86 (using clmul) and ARM (using ACLE) instead used zlib-crc32. mariabackup had its own copy of the crc32 implementation using hardware optimized implementation only for x86 and lagged hardware based implementation for powerpc and ARM. Patch helps unifies all such calls and help aggregate all of them using an unified interface my_checksum(). Said unification also enables hardware optimized calls for all architecture viz. x86, ARM, POWERPC. Default always fallback to zlib crc32. Thanks to Daniel Black for reviewing, fixing and testing PowerPC changes. Thanks to Marko and Daniel for early code feedback.
-
Alexander Barkov authored
-
Alexander Barkov authored
Disallowing EXTRACT(xxx FROM inet6arg) as fix time. Adding a new method Type_handler::can_return_extract_source().
-
- 31 May, 2020 2 commits
-
-
Elena Stepanova authored
-
Marko Mäkelä authored
-
- 30 May, 2020 4 commits
-
-
Alexander Barkov authored
The opt_for_user subrule was incorrectly scanned before sp_create_assignment_lex(), so the user name and the host were created on a wrong memory root. - Reoganizing the grammar to make sure that sp_create_assignment_lex() is called immediately after PASSWORD_SYM is scanned, so all attributes are then allocated on its memory root. - Moving the semantic code as methods to LEX, so the grammar looks as simple as possible. - Changing text_or_password to be of the data type USER_AUTH*. As a side effect, the LEX::definer member is now not used when processing the SET PASSWORD statement. Everything is done using Bison's stack. The bug sas introduced by this commit: commit bf5a144e
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Sergey Vojtovich authored
Less error prone, stricter type control.
-
- 29 May, 2020 20 commits
-
-
Monty authored
This couldn't cause any bugs as ptr was zero terminated, but still better to have the length correct.
-
Monty authored
This change also affects information_schema.tables The create table option "transactional=0 | 1" is now always shown for storage engines that supports both transactional/crash safe tables and non transactional tables. Before this patch the transactional=... option was only shown if the user specified transactional=... in the CREATE TABLE or ALTER TABLE statement. The reason for the change was to be able to make it easy to know if an Aria table is transactional or not.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
A crash was observed where dict_acquire_mdl_shared<trylock=false> would invoke memcpy() with an apparently uninitialized tbl_len. dict_table_t::parse_name(): Remove an unnecessary tbl_len-- operation. (This should be mostly non-functional cleanup.) dict_acquire_mdl_shared(): If the second dict_table_t::parse_name() returns false, terminate the loop just like we would do on the first invocation.
-
Oleksandr Byelkin authored
MDEV-22746: Assertion `(&(&pagecache->cache_lock)->m_mutex)->count > 0 && pthread_equal(pthread_self(), (&(&pagecache->cache_lock)->m_mutex)->thread)' failed in dec_counter_for_resize_op Removed second attempt to decrease counter
-
Aleksey Midenkov authored
(The table already existed in the storage engine) Wrong algorithm of closing partitions on error doesn't close last partition.
-
Kentoku SHIBA authored
-
Kentoku SHIBA authored
-
Julius Goryavsky authored
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
-
Marko Mäkelä authored
commit d09aec7a (MDEV-19940) caused a regression. We made wait_lock_get_heap_no() return uint16_t instead of ulint, and we mostly replaced the previous magic value ULINT_UNDEFINED with 0. But, we failed to adjust some assertions. Furthermore, 0 is a valid although rare value for record locks. (Record locks can be temporarily stored on page infimum in some operations that involve multiple leaf pages.) Let us use 0xFFFF as the magic value. Valid heap numbers are limited to less than 9362 = innodb_page_size/(5+1+1) when using a minimal 1-byte PRIMARY KEY and a secondary index on a NULL or '' column.
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
when checking for free port, use the same logic (IPv6 socket address / dual socket), like the server would. Previous solution for testing whether port is free was trying to bind IPv4 socket on INADDR_ANY. This not work now on some reason, that attempt succeeds, even if there is an existing IPv6-dual socket listening on 0.0.0.0:3306
-
Vladislav Vaintroub authored
It works, but irritates people who look into the log and see traces of 32bit custom action server.
-
Vladislav Vaintroub authored
-
Marko Mäkelä authored
In the merge 9e6e4355 we replaced direct use of std::atomic with a wrapper class, so that dict_index_t::lock will support the default assignment operator. As part of that change, one occurrence of std::memory_order_release was accidentally replaced with std::memory_order_relaxed. Thanks to Sergey Vojtovich for noticing this.
-
Aleksey Midenkov authored
Wrong condition for corner values.
-
Aleksey Midenkov authored
Respect system fields in NO_ZERO_DATE mode. This is the subject for refactoring in MDEV-19597 Conflict resolution from 7d5223310789f967106d86ce193ef31b315ecff0
-
Alexander Barkov authored
The constructor of Lex_ident_sys returns LEX_CSTRING(NULL,0) if character set conversion goes wrong, and raises the "wrong character string" error in the diagnostics area. The code in sql_yacc.yy did not check Lex_ident_sys::ptr against NULL, so the execution entered functions that did not expect NULL (and crashed). Fixing the code to do MYSQL_YYABORT if Lex_ident_sys::ptr is NULL after constructing.
-
- 28 May, 2020 2 commits
-
-
Aleksey Midenkov authored
Respect system fields in NO_ZERO_DATE mode. This is the subject for refactoring in MDEV-19597
-
Aleksey Midenkov authored
UPDATE gets access to history records because versioning conditions are not set for VIEW. This leads to endless loop of inserting history records when clustered index is rebuilt and ha_rnd_next() returns newly inserted history record. Return back original behavior of failing on write-locked table in historical query. 35b679b9 assumed that SELECT_LEX::lock_type influences anything, but actually at this point table is already locked. Original bug report was tempesta-tech/mariadb#102
-