- 10 May, 2019 8 commits
-
-
Marko Mäkelä authored
row_purge_upd_exist_or_extern_func(): Check for node->vcol_op_failed() after row_purge_remove_sec_if_poss(), like row_purge_del_mark() did. This avoids us dereferencing the node->table=NULL pointer. The test case, submitted by Elena Stepanova, is not deterministic and does not repeat the bug on 10.2. With the added loop, for me, it reliably crashes 10.3 without the fix. I was unable to create a deterministic test case for either 10.2 or 10.3. Reviewed by Thirunarayanan Balathandayuthapani
-
Marko Mäkelä authored
-
Thirunarayanan Balathandayuthapani authored
buf_dblwr_process(): Remove the useless warning that a copy of a page in the doublewrite buffer is corrupted. We already report an error if a corrupted page cannot be recovered from the doublewrite buffer. Note: In MariaDB 10.1, the original bug reported in MDEV-13893 could still be easily repeatable. In MariaDB 10.2.24, MDEV-12699 should have reduced the probability considerably.
-
Marko Mäkelä authored
fts_get_table_name(): Add the parameter bool dict_locked=false.
-
Marko Mäkelä authored
fts_get_table_name(): Output to a caller-allocated buffer. fts_get_table_name_prefix(): Use the lower-overhead allocation ut_malloc() instead of mem_alloc(). This is based on mysql/mysql-server@d1584b9f38ff0bcf609d181db35f74108e022168 in MySQL 5.7.4.
-
Marko Mäkelä authored
fts_table_t::parent: Remove the redundant field. Refer to table->name.m_name instead. fts_update_sync_doc_id(), fts_update_next_doc_id(): Remove the redundant parameter table_name. fts_get_table_name_prefix(): Access the dict_table_t::name. FIXME: Ensure that this access is always covered by dict_sys->mutex.
-
Marko Mäkelä authored
fts_state_t, fts_slot_t::state: Remove. Replaced by fts_slot_t::running and fts_slot_t::table_id as follows. FTS_STATE_SUSPENDED: Removed (unused). FTS_STATE_EMPTY: Removed. table_id=0 will denote empty slots. FTS_STATE_RUNNING: Equivalent to running=true. FTS_STATE_LOADED, FTS_STATE_DONE: Equivalent to running=false. fts_slot_t::table: Remove. Tables will be identified by table_id. After opening a table, we will check fil_table_accessible() before accessing the data. fts_optimize_new_table(), fts_optimize_del_table(), fts_optimize_how_many(), fts_is_sync_needed(): Remove the parameter tables, and use the static variable fts_slots (which was introduced in MariaDB 10.2) instead.
-
Eugene Kosov authored
No functional change. Call my_timer_init() only once and then reuse it from InnoDB and perfschema storage engines. This patch speeds up empty test for me like this: ./mtr -mem innodb.kevg,xtradb 1.21s user 0.84s system 34% cpu 5.999 total ./mtr -mem innodb.kevg,xtradb 1.12s user 0.60s system 31% cpu 5.385 total
-
- 09 May, 2019 5 commits
-
-
Daniel Bartholomew authored
-
Vladislav Vaintroub authored
The crash happens when writing into log file. The reason is likely that the call to WriteFile() was missing a valid parameter for lpNumberOfBytesWritten. This seems only to happen on ancient version of Windows. Since the fix to MDEV-16430 in 141bc58a, null pointer was passed instead of valid pointer. The fix is to provide a valid lpNumberOfBytesWritten parameter.
-
Rasmus Johansson authored
-
Sergey Vojtovich authored
-
Sergey Vojtovich authored
A sequel to 9180e866 and 149b7547. ALTER TABLE ... ADD FOREIGN KEY may crash if parent table is updated concurrently. Block FK parent table updates even earlier, before intermediate child table is created. Use proper charset info for my_casedn_str() and don't update original identifiers so that lower_cast_table_names == 2 is honoured.
-
- 08 May, 2019 7 commits
-
-
Jan Lindström authored
-
Daniel Bartholomew authored
-
Marko Mäkelä authored
-
Andrea Kao authored
GitHub uses a library called Licensee to identify a project's license type. It shows this information in the status bar and via the API if it can unambiguously identify the license. This commit modifies a few of MariaDB's docs so that Licensee is able to recognize the repository's license type. It renames the README's "License" section to "Licensing" and renames COPYING.thirdparty to THIRDPARTY. These changes allow Licensee to bypass both files when it scans the repo for license files, which thus allows Licensee to successfully identify the license type of MariaDB as GPL 2.0. Signed-off-by: Andrea Kao <eirinikos@gmail.com>
-
Galina Shalygina authored
The bug occurs because Item_func_set_user var is allowed to be pushed into materialized derived table/view. To fix it excl_dep_on_table() as added to Item_func_set_user_var class to prevent pushdown.
-
Thirunarayanan Balathandayuthapani authored
Fix: ==== 1) Combined innodb_ft_result_cache_limit_32.test and innodb_ft_result_cache_limit_64.test test case in sys_vars suite. 2) Use word_size.inc for combinations of innodb_ft_result_cache_limit test case.
-
Marko Mäkelä authored
ReadView::copy_trx_ids(): Relax a debug check. It failed to account for TRX_STATE_PREPARED_RECOVERED, which was introduced in MDEV-15772. It was also reading trx->state twice and failed to tolerate TRX_STATE_COMMITTED_IN_MEMORY, which could be concurrently assigned in lock_trx_release_locks(), which is not holding trx_sys->mutex. This bug is specific to the MariaDB 10.2 series. The ReadView was introduced in MariaDB 10.2.2 by merging the code that had been introduced in MySQL 5.7.2. In MariaDB 10.3, ReadView::snapshot() would use the lock-free trx_sys.rw_trx_hash. MDEV-14638 moved the corresponding assertion to trx_sys_t::find(), where it was duly protected by trx->mutex, and later MDEV-14756 moved the check to rw_trx_hash_t::validate_element(). This check was correctly adjusted when MDEV-15772 was merged to 10.3.
-
- 07 May, 2019 5 commits
-
-
Elena Stepanova authored
-
Daniel Bartholomew authored
-
Sergei Golubchik authored
regression after 3db6de33 in RPMs continue creating the $datadir outside of mysql_install_db. RPMs put the socket in there, so it cannot be chmod 0700.
-
Jan Lindström authored
Test case was not stable. Fixed also galera_parallel_autoinc_manytrx as it has the same problem.
-
qingda2019 authored
The problem is in rtr_adjust_upper_level(), which allocates node_ptr from heap, and then passes the same heap to btr_cur_pessimistic_insert(). The documentation of btr_cur_pessimistic_insert() says that the heap can be emptied. If the heap is emptied and something else is allocated from the heap, the node_ptr can become corrupted.
-
- 06 May, 2019 7 commits
-
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Marko Mäkelä authored
This reverts commit 8dc670a5. The symbol sys_timer_info was not being exported correctly, which caused linking failures on some platforms.
-
Sergei Golubchik authored
regression after 3db6de33 in RPMs continue creating the $datadir outside of mysql_install_db. RPMs put the socket in there, so it cannot be chmod 0700.
-
Eugene Kosov authored
MONITOR_PENDING_LOG_WRITE MONITOR_PENDING_CHECKPOINT_WRITE MONITOR_LOG_IO: read values from log_t members instead of updating own monitor variables
-
Eugene Kosov authored
No functional change. Call my_timer_init() only once and then reuse it from InnoDB and perfschema storage engines. This patch speeds up empty test for me like this: ./mtr -mem innodb.kevg,xtradb 1.21s user 0.84s system 34% cpu 5.999 total ./mtr -mem innodb.kevg,xtradb 1.12s user 0.60s system 31% cpu 5.385 total
-
- 05 May, 2019 2 commits
-
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
- 04 May, 2019 5 commits
-
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Varun Gupta authored
Need to call split_sum_func if an aggregate function is part of order by or partition by clause so that we have the required fields inside the temporary table, as all the fields inside the partition by and order by clause of the window function needs to be there in the temp table used for window function computation.
-
Varun Gupta authored
The issue here is that for a window function in the ORDER BY clause, we were not creating an extra field in the temporary table for the window function (which is contained in an expression). So a call to split_sum_func is added to handle this case Also we need to update all items that contain a window function in the temp table during window function computation as filesort would need these values to be updated to calculate the ORDER BY clause of the select.
-
Varun Gupta authored
For degenerate joins we may have JOIN::table_list as NULL, so instead of using JOIN::top_join_tab_count use the function JOIN::exec_join_tab_cnt to get the number of tables joined at the top level.
-
- 03 May, 2019 1 commit
-
-
Marko Mäkelä authored
The accessor dtuple_get_nth_v_field() was defined differently between debug and release builds in MySQL 5.7.8 in mysql/mysql-server@c47e1751b742454de553937039bbf2bcbe3c6bc7 and a debug assertion to document or enforce the questionable assumption tuple->v_fields == &tuple->fields[tuple->n_fields] was missing. This was apparently no problem until MDEV-11369 introduced instant ADD COLUMN to MariaDB Server 10.3. With that work present, in one test case, trx_undo_report_insert_virtual() could in release builds fetch the wrong value for a virtual column. We replace many of the dtuple_t accessors with const-preserving inline functions, and fix missing or misleadingly applied const qualifiers accordingly.
-