- 17 Aug, 2018 1 commit
-
-
Igor Babaev authored
This patch introduces support for the system variable eq_range_index_dive_limit that existed in MySQL starting from 5.6. The variable sets a limit for index dives into equality ranges. Index dives are performed by optimizer to estimate the number of rows in range scans. Index dives usually provide good estimate but they are pretty expensive. To estimate the number of rows in equality ranges statistical data on indexes can be employed. Its usage gives not so good estimates but it's cheap. So if the number of equality dives required by an index scan exceeds the set limit no dives for equality ranges are performed by the optimizer for this index. As the new system variable is introduced in a stable version the default value for it is set to a special value meaning there is no limit for the number of index dives performed by the optimizer. The patch partially uses the MySQL code for WL 5957 'Statistics-based Range optimization for many ranges'.
-
- 16 Aug, 2018 8 commits
-
-
Marko Mäkelä authored
The MySQL 5.7 TRUNCATE TABLE is inherently incompatible with hot backup, because it is creating and deleting a separate log file, and it is not writing redo log for all changes of the InnoDB data dictionary tables. Refuse to create a corrupted backup if the unsafe form of TRUNCATE was executed. Note: Undo log tablespace truncation cannot be detected easily. Also it is incompatible with backup, for similar reasons. xtrabackup_backup_func(): "Subscribe to" the log events before the first invocation of xtrabackup_copy_logfile(). recv_parse_or_apply_log_rec_body(): If the function pointer log_truncate is set, invoke it to report MLOG_TRUNCATE.
-
Marko Mäkelä authored
Remove the logic for skipping the test if a log checkpoint occurred, and the logic for tolerating failures. Thanks to MDEV-16791, MLOG_INDEX_LOAD is supposed to always work.
-
Vladislav Vaintroub authored
-
Marko Mäkelä authored
Amend commit b853b4fd that was reverted in commit 29150e23. recv_parse_log_recs(): Do check for corrupted redo log or file system before checking for len==0, but only read *ptr if it is not past the end of the buffer (end_ptr). recv_parse_log_rec(): Report incorrect redo log type in a consistent way with recv_parse_or_apply_log_rec_body(). This is a follow-up to commit f30c5af4.
-
Marko Mäkelä authored
The Pool poisoning that was introduced in MDEV-15030 introduced race conditions in AddressSanitizer builds, because concurrent poisoning and unpoisoning were not prevented by any synchronization primitive. Pool::get(): Protect the unpoisoning by m_lock_strategy. Pool::mem_free(): Protect the poisoning by m_lock_strategy. Pool::putl(): Renamed from put(), because now the caller is responsible for invoking m_lock_strategy.
-
Marko Mäkelä authored
If trx_free() and trx_create_low() were called while a call to trx_reference() was pending, we could get a reference to a wrong transaction object. trx_reference(): Return NULL if the trx->id no longer matches. lock_trx_release_locks(): Assign trx->id = 0, so that trx_reference() will not return a reference to this object. trx_cleanup_at_db_startup(): Assign trx->id = 0. assert_trx_is_free(): Assert !trx->n_ref. Assert trx->id == 0, now that it will be cleared as part of a transaction commit.
-
Marko Mäkelä authored
Also, replace reverse iteration with forward iteration. lock_table_has(): Remove a redundant condition.
-
Marko Mäkelä authored
Allocate trx->lock.rec_pool and trx->lock.table_pool directly from trx_t. Remove unnecessary use of std::vector. In order to do this, move some definitions from lock0priv.h to lock0types.h, so that ib_lock_t will not be an opaque type.
-
- 15 Aug, 2018 1 commit
-
-
Vladislav Vaintroub authored
-
- 14 Aug, 2018 2 commits
-
-
Daniel Bartholomew authored
-
Vladislav Vaintroub authored
-
- 13 Aug, 2018 3 commits
-
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
aws_key_management needs current directory to be datadir during initalization, it scans current directory for encrypted keys. Fix is to ensure, that plugin initialization in mariabackup happens after the call to my_setwd(mysql_real_data_home).
-
Sergei Petrunia authored
Fix a race condition in the test.
-
- 12 Aug, 2018 1 commit
-
-
Sergei Petrunia authored
The test causes simulated server crashes with DBUG_SUICIDE();. It also relies on transactions that were committed right before the crash to be visible after the crash (that is, it requires durability). Run the test with transaction durability enabled: set rocksdb-flush-log-at-trx-commit=1.
-
- 10 Aug, 2018 4 commits
-
-
Otto Kekäläinen authored
The package libmariadbclient18 contains the dialog.so plugin, which also the new libmariadb3 ships. As they both use the exact same path the latter must be marked as a with Breaks and Replaces relations ship. Note: This fix is conservative hack for stable releases 10.2 and 10.3. In 10.4, the development release at the time, we will clean up how the libmariadb3 packaging and it's -compat packages are done to match that what is done in downstream Debian official.
-
Marko Mäkelä authored
recv_parse_log_recs(): Do not check for corruption before checking for end-of-log-buffer. For some reason, adding the check to the logical-looking place would cause intermittent recovery failures in the tests innodb.innodb-index and innodb_gis.rtree_compress2.
-
Marko Mäkelä authored
recv_parse_log_recs(): Check for corruption before checking for end-of-log-buffer. mlog_parse_initial_log_record(), page_cur_parse_delete_rec(): Flag corruption for out-of-bounds values, and let the caller dump the corrupted redo log extract.
-
Marko Mäkelä authored
If recv_sys_justify_left_parsing_buf() has been invoked, it is possible that recv_previous_parsed_rec_offset is after the current offset. In this case, we must not dump any bytes before the current record.
-
- 09 Aug, 2018 5 commits
-
-
Marko Mäkelä authored
If the LOG_BLOCK_HDR_DATA_LEN field is corrupted, scanning the log records could fail in strange ways. It is better to validate the field as part of validating each log block.
-
Marko Mäkelä authored
Display the log record type in hexadecimal, not binary.
-
Sergei Golubchik authored
-
Sergei Golubchik authored
warning: suggest a space before ‘;’ or explicit braces around empty body in ‘for’ statement
-
Sergei Golubchik authored
update the test to the new (correct) result
-
- 07 Aug, 2018 2 commits
-
-
Sergei Golubchik authored
make mysqld_multi to use same rules for my.cnf directories that all other tools are using (see my_default.c).
-
Sergei Golubchik authored
-
- 06 Aug, 2018 2 commits
-
-
Olivier Bertrand authored
filamtxt.cpp: DOSFAM::RenameTempFile: Change sprintf to snprintf. filamvct.cpp: VECFAM::RenameTempFile: Change sprintf to snprintf. javaconn.cpp: Add JAVAConn::GetUTFString function. Use it instead of env->GetStringUTFChars. Fix wrong identation. javaconn.h: Add GetUTFString declaration. jdbconn.cpp: Use GetUTFString function instead of env->GetStringUTFChars. jmgoconn.cpp: Use GetUTFString function instead of env->GetStringUTFChars. Fix wrong identation. jsonudf.cpp: change 139 to BMX line 4631. tabjmg.cpp: Add ReleaseStringUTF. Fix wrong identation. tabpivot.cpp: Fix wrong identation. tabutil.cpp: TDBPRX::GetSubTable: Change sprintf to snprintf. modified: storage/connect/filamtxt.cpp modified: storage/connect/filamvct.cpp modified: storage/connect/javaconn.cpp modified: storage/connect/javaconn.h modified: storage/connect/jdbconn.cpp modified: storage/connect/jmgoconn.cpp modified: storage/connect/jsonudf.cpp modified: storage/connect/tabjmg.cpp modified: storage/connect/tabpivot.cpp modified: storage/connect/tabutil.cpp - Fix MDEV-16895 CONNECT engine's get_error_message can cause buffer overflow and server crash with long queries ha_connect_cc: Update version. get_error_message: Remove charset conversion. modified: storage/connect/ha_connect.cc - Fix a server crash on inserting bigint to a JDBC table JDBConn::SetUUID: Suppress check on ctyp that causes a server crash because ctyp can be negative and this triggers an DEBUG_ASSERT on return. modified: storage/connect/jdbconn.cpp - Update jdbc.result mysql-test/connect/r/jdbc.result: Recorded to reflect a message change. modified: storage/connect/mysql-test/connect/r/jdbc.result
-
Alexey Botchkov authored
The charset of temporary storage (Item_func_json_insert::tmp_js) was not properly set.
-
- 05 Aug, 2018 1 commit
-
-
Alexey Botchkov authored
Item_func_json_value::val_str() produced string of wrong charset.
-
- 03 Aug, 2018 10 commits
-
-
Oleksandr Byelkin authored
-
Marko Mäkelä authored
rw_lock_get_debug_info(): Remove. This function is inherently unsafe to use, because the copied pointers can become stale between rw_lock_debug_mutex_exit() and the dereferencing of the pointer in the caller.
-
Oleksandr Byelkin authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Oleksandr Byelkin authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-