- 02 Dec, 2019 8 commits
-
-
Aleksey Midenkov authored
-
Aleksey Midenkov authored
-
Aleksey Midenkov authored
Don't do skip_setup_conds() unless all errors are checked. Fixes following errors: ER_PERIOD_NOT_FOUND ER_VERS_QUERY_IN_PARTITION ER_VERS_ENGINE_UNSUPPORTED ER_VERS_NOT_VERSIONED
-
Aleksey Midenkov authored
Don't do skip_setup_conds() unless all errors are checked. Fixes following errors: ER_PERIOD_NOT_FOUND ER_VERS_QUERY_IN_PARTITION ER_VERS_ENGINE_UNSUPPORTED ER_VERS_NOT_VERSIONED
-
Aleksey Midenkov authored
MDEV-21011 Table corruption reported for versioned partitioned table after DELETE: "Found a misplaced row" LIMIT history partitions cannot be checked by existing algorithm of check_misplaced_rows() because working history partition is incremented each time another one is filled. The existing algorithm gets record and tries to decide partition id for it by get_partition_id(). For LIMIT history it will just get first non-filled partition. To fix such partitions it is required to do REBUILD instead of REPAIR.
-
Aleksey Midenkov authored
When view is merged by DT_MERGE_FOR_INSERT it is then skipped from processing and doesn't update WHERE clause with vers_setup_conds(). Note that view itself cannot work in vers_setup_conds() because it doesn't have row_start, row_end fields. Thus it is required to descend down to material TABLE_LIST through calls of mysql_derived_prepare() and run vers_setup_conds() from there. Luckily, all views (views of views, views of views of views, etc.) are linked in one list through next_global pointer, so we can skip all views of views and get straight to non-view TABLE_LIST by checking its merge_underlying_list property for zero value (it is assigned by DT_MERGE_FOR_INSERT for merged derived tables). We have to do that only for UPDATE and DELETE. Other DML commands don't use WHERE clause. MDEV-21146 Assertion `m_lock_type == 2' in handler::ha_drop_table upon LOAD DATA LOAD DATA does not use WHERE and the above call of vers_setup_conds() is not needed. unit->prepare() led to wrongly locked temporary table.
-
Aleksey Midenkov authored
"write set" for replication finally got its correct place (mark_columns_per_binlog_row_image()). When done generally in mark_columns_needed_for_update() it affects optimization algorithm. used_key_is_modified, query_plan.using_io_buffer are wrongly set and that leads to wrong prepare_for_keyread() which limits read_set.
-
Aleksey Midenkov authored
Turn read cache off for update and multi-update for versioned table. no_cache is reinited on each TABLE open because it is applicable for specific algorithms. As a side fix vers_insert_history_row() honors vers_write setting. Aria with row_format=fixed uses IO_CACHE of type READ_CACHE for sequential read in update loop. When history row is inserted inside this loop the cache misses it and fails with error. TODO: Currently maria_extra() does not support SEQ_READ_APPEND. Probably it might be possible to use this type of cache.
-
- 30 Nov, 2019 1 commit
-
-
Alexander Barkov authored
-
- 29 Nov, 2019 10 commits
-
-
Kentoku authored
Get count from last_used_con->info Contributed by willhan at Tencent Games Reviewed by Monty
-
Kentoku authored
Get count from last_used_con->info Contributed by willhan at Tencent Games
-
Marko Mäkelä authored
page_zip_compress(), page_zip_decompress_low(), page_zip_reorganize(): Make use of memcpy_aligned() and memset_aligned(), so that some operations can be translated more efficiently. No difference was observed for AMD64 on GCC 9.2.1. But, such hints could enable more efficient code on less common instruction set architectures, such as 32-bit ARM, POWER or MIPS.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Both variants of the InnoDB page directory are aligned to the entry size (16 bits). Inform the compiler about it.
-
Sergei Golubchik authored
generalize the replacement
-
Sergei Golubchik authored
This reverts commit 0d345ec2. Upgrades from 8.0 don't work yet, one has to dump/restore manually to get the metadata out of the data dictionary.
-
Marko Mäkelä authored
dict_table_t::init_instant(): Remove bool replace_dropped=true. The template parameter was unnecessarily added in commit a044e326.
-
Jan Lindström authored
-
Tony Reix authored
Patch `36a2a185` introduced `wsrep_server_incoming_address()` in `10.4`. Since AIX `/usr/include/netinet/ip.h` header defines `ip_len` as `ip_ff.ip_flen` and `size_t const ip_len` is preprocessed as `size_t const ip_ff.ip_vhltl.ip_x.ip_xlen`, to prevent the define from overwriting code in MariaDB, rename the variable name to `ip_len_mdb`. This patch is done by Tony Reix <tony.reix@atos.net>. This patch was submitted under MCA. Closes #1307
-
- 28 Nov, 2019 13 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
warning C4390: ';': empty controlled statement found; is this the intent?
-
Sergei Golubchik authored
mariadb packages conflict with mysql-8.0
-
Sergei Golubchik authored
Obsoletes: cannot contain (x86-64) anymore Python shebang must be specific
-
Marko Mäkelä authored
buf_flush_write_block_low(): Assert that the FIL_PAGE_LSN is set and is not less than buf_page_t::oldest_modification.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Before commit c0f47a4a (MDEV-12026) introduced the innodb_checksum_algorithm=full_crc32 format, it was impossible to tell if InnoDB data files contained garbage in the FIL_PAGE_TYPE header field (and possibly other fields). This is because before commit 3926673c in MySQL 5.1.48, InnoDB would write uninitialized data to some fields, and because there was no way to tell with which InnoDB version a data file was created. If fil_space_t::full_crc32() holds, the data file cannot contain uninitialized garbage or invalid FIL_PAGE_TYPE, and thus fil_block_check_type() should not be invoked to correct anything.
-
Sergei Golubchik authored
generalize the replacement
-
Vladislav Vaintroub authored
mariadb-conv does not need to be linked with the client library it does not talk to the server
-
Alexander Barkov authored
The original patch was made by Takashi Sasaki <tsasaki609@gmail.com>.
-
Alexander E. Patrakov authored
The log file is opened as root since commit bb7a70c9, so there is no need to chown it.
-
Vladislav Vaintroub authored
Use my_thread_var::stack_ends_here inside lf_pinbox_real_free() for address where thread stack ends. Remove LF_PINS::stack_ends_here. It is not safe to assume that mysys_var that was used during pin allocation, remains correct during free. E.g with binlog group commit in Innodb, that frees pins for multiple Innodb transactions, it does not work correctly.
-
Marko Mäkelä authored
fil_addr_t: Use exactly sized data types. flst_read_addr(): Remove the unused parameter mtr. page_offset(): Return uint16_t.
-
- 27 Nov, 2019 5 commits
-
-
Vladislav Vaintroub authored
Prior to this fix, when matching addresses using mask, extra bits could be used for comparison, e.g to match with "a.b.c.d/24" , 27 bits were compared rather than 24. The patch fixes the calculation.
-
Vladislav Vaintroub authored
# Conflicts: # win/packaging/extra.wxs.in
-
Vladislav Vaintroub authored
- It is not enough to have and DeleteSymlinks actions because within the same installation some exes executables can be both added and removed, which needs both adding and removing some symlinks. Instead of CreateSymlinks, there is now FixSymlinks function, which goes through the list, and adds or removes the symlinks as needed. - Implemented rollback for symlink custom action. - Generate list of symlinks in C++ file, using CMake, rather than storing lists as MSI properties.
-
Marko Mäkelä authored
As part of commit 3c09f148 trx_undo_commit_cleanup() was always invoked with noredo=true. The impact of this should be that some undo log pages may not be correctly freed if the server is killed and crash recovery will be performed. Similarly, if mariabackup --backup is being executed concurrently with user transaction commits, it could happen that some undo log pages in the backup will never be marked as free for reuse. It seems that this bug should not have any user-visible impact other than some undo pages being wasted.
-
Marko Mäkelä authored
-
- 26 Nov, 2019 3 commits
-
-
Igor Babaev authored
If a joined table is accessed by a full text index then now no range rowid filter can be used when accessing the records of this table. This bug was fixed by the patch for mdev-20056. This commit adds only a test case with a query using a full text index and a range condition for another index.
-
Marko Mäkelä authored
Revert part of commit 6cedb671 because it turns out to be theoretically impossible to parse a ROW_FORMAT=COMPACT or ROW_FORMAT=DYNAMIC metadata record where the variable-length fields in the PRIMARY KEY have been written as nonempty strings.
-
Monty authored
- Replace "class Repeat_count" with function call. There is no reason for this class to exists. More complex and more code than doing a function! In addition the code didn't match what the val() function was doing. Other things: - Fixed compiler failure in print_cached_tables_callback()
-