- 15 Nov, 2017 2 commits
-
-
Oleksandr Byelkin authored
Fix of nondebuging version issue
-
Marko Mäkelä authored
-
- 14 Nov, 2017 2 commits
-
-
Igor Babaev authored
than the query itself ACL checks were not properly supported for tables used in CTE specifications. This patch fixes the problem.
-
Alexey Botchkov authored
Check for the empty 'coordinates' array.
-
- 13 Nov, 2017 4 commits
-
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
- 12 Nov, 2017 1 commit
-
-
Marko Mäkelä authored
-
- 11 Nov, 2017 1 commit
-
-
Alexey Botchkov authored
Character bigger than 0x60 wasn't handled properly inside a numeric constant.
-
- 10 Nov, 2017 4 commits
-
-
Igor Babaev authored
This patch effectively blocks the optimization that uses multiple equalities for ORDER BY to remove tmp table in the case when the first table happens to be the result of materialization of a semi-join nest. Currently there is no code at the execution level that would support the optimization in this case.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
rec_get_offsets_func(): Relax a bogus debug assertion. It would fail when we are operating on a copied prefix of a node pointer record.
-
Marko Mäkelä authored
row_log_table_apply_op(): Remove references to dict_table_t::n_vcols. Virtual column information is no longer being written to the log. row_log_t: Remove the unused fields n_old_col, n_old_vcol.
-
- 09 Nov, 2017 8 commits
-
-
Marko Mäkelä authored
When MySQL 5.7 introduced indexed virtual columns, it introduced several bugs into the online table-rebuilding ALTER, that is, the row_log_table_apply() family of functions. The online_log format that was introduced for online table-rebuilding ALTER in MySQL 5.6 should be sufficient. Ideally, any indexed virtual column values would be evaluated based on the log records in the temporary file. There is no need to log virtual column values. (For ADD INDEX, that is row_log_apply(), we always must log the values of the keys, no matter if the columns are virtual.) Because omitting the virtual column values removes any chance of row_log_table_apply() working with indexed virtual columns, we will for now refuse LOCK=NONE in table-rebuilding ALTER operations when indexes on virtual columns exist. This restriction would be lifted in MDEV-14341. innobase_indexed_virtual_exist(): New predicate, to determine if indexed virtual columns exist in a table definition. ha_innobase::check_if_supported_inplace_alter(): Refuse online rebuild if indexed virtual columns exist. rec_get_converted_size_temp_v(), rec_convert_dtuple_to_temp_v(): Remove. row_log_table_delete(), row_log_table_update(, row_log_table_insert(): Remove parameters for virtual columns. trx_undo_read_v_rows(): Remove the col_map parameter. row_log_table_apply(): Do not deal with virtual columns.
-
Sergei Petrunia authored
-
Monty authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
MDEV-14333 Mariabackup --apply-log-only crashes if incomplete transactions with update_undo logs are present trx_undo_free_prepared(): Relax the assertion for mariabackup --apply-log-only.
-
Alexander Barkov authored
-
Alexander Barkov authored
-
Oleksandr Byelkin authored
MDEV-14164: Unknown column error when adding aggregate to function in oracle style procedure FOR loop Make differentiation between pullout for merge and pulout of outer field during exists2in transformation. In last case the field was outer and so we can safely start from name resolution context of the SELECT where it was pulled. Old behavior lead to inconsistence between list of tables and outer name resolution context (which skips one SELECT for merge purposes) which creates problem vor name resolution.
-
- 08 Nov, 2017 3 commits
-
-
Marko Mäkelä authored
-
Alexander Barkov authored
There was a problem in the recent patch for MDEV-10817: get_date() must "return true" on null_value rather than "return 0" (forgot to fix Item_sum_hybrid::get_date() after copying and pasting from Item_sum_hybrid::val_str()).
-
Marko Mäkelä authored
-
- 07 Nov, 2017 7 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
FlushObserver::flush(): Never discard unwritten changes. We do not want to risk corrupting the system tablespace or .ibd files that are not part of a table-rebuilding ALTER.
-
Marko Mäkelä authored
Ever since MDEV-10813 cleaned up InnoDB use of atomic memory operations and made buf_block_fix() an atomic operation, some conditions around buf_block_fix() have been unnecessary.
-
Alexander Barkov authored
-
Vesa Pentti authored
-
Alexander Barkov authored
-
Alexander Barkov authored
This problem was earlier fixed by the patch for MDEV-8910. Adding tests only.
-
- 06 Nov, 2017 8 commits
-
-
Vladislav Vaintroub authored
-
Marko Mäkelä authored
-
Igor Babaev authored
The bug was fixed by the patch for the bug mdev-13780.
-
Vladislav Vaintroub authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
With a big buffer pool that contains many data pages, DISCARD TABLESPACE took a long time, because it would scan the entire buffer pool to remove any pages that belong to the tablespace. With a large buffer pool, this would take a lot of time, especially when the table-to-discard is empty. The minimum amount of work that DISCARD TABLESPACE must do is to remove the pages of the to-be-discarded table from the buf_pool->flush_list because any writes to the data file must be prevented before the file is deleted. If DISCARD TABLESPACE does not evict the pages from the buffer pool, then IMPORT TABLESPACE must do it, because we must prevent pre-DISCARD, not-yet-evicted pages from being mistaken for pages of the imported tablespace. It would not be a useful fix to simply move the buffer pool scan to the IMPORT TABLESPACE step. What we can do is to actively evict those pages that could be mistaken for imported pages. In this way, when importing a small table into a big buffer pool, the import should still run relatively fast. Import is bypassing the buffer pool when reading pages for the adjustment phase. In the adjustment phase, if a page exists in the buffer pool, we could replace it with the page from the imported file. Unfortunately I did not get this to work properly, so instead we will simply evict any matching page from the buffer pool. buf_page_get_gen(): Implement BUF_EVICT_IF_IN_POOL, a new mode where the requested page will be evicted if it is found. There must be no unwritten changes for the page. buf_remove_t: Remove. Instead, use trx!=NULL to signify that a write to file is desired, and use a separate parameter bool drop_ahi. buf_LRU_flush_or_remove_pages(), fil_delete_tablespace(): Replace buf_remove_t. buf_LRU_remove_pages(), buf_LRU_remove_all_pages(): Remove. PageConverter::m_mtr: A dummy mini-transaction buffer PageConverter::PageConverter(): Complete the member initialization list. PageConverter::operator()(): Evict any 'shadow' pages from the buffer pool so that pre-existing (garbage) pages cannot be mistaken for pages that exist in the being-imported file. row_discard_tablespace(): Remove a bogus comment that seems to refer to IMPORT TABLESPACE, not DISCARD TABLESPACE.
-
Marko Mäkelä authored
buf_flush_or_remove_pages(), buf_flush_dirty_pages(): Remove the redundant parameter flush=(trx!=NULL).
-
Vesa Pentti authored
String comparison with utf8_bin collation is case sensitive. Hence "DELIMITER" did not match with "delimiter". The delimiter command matching now uses my_charset_latin1.
-