- 21 Mar, 2018 1 commit
-
-
Vicențiu Ciorbaru authored
-
- 20 Mar, 2018 9 commits
-
-
Thirunarayanan Balathandayuthapani authored
assert on UTF-8 columns Problem: ======= (1) Multi-byte character cases are not considered during prefix index cluster optimization check. It leads to fetch of improper results during read operation. (2) Strict assert in row_sel_field_store_in_mysql_format_func and it asserts for prefix index record to mysql conversion. Solution: ======== (1) Consider the case of multi-byte character during prefix index cluster optimization check. (2) Relax the assert in row_sel_field_store_in_mysql_format_func to allow prefix index record to mysql format conversion. The patch is taken from https://github.com/laurynas-biveinis/percona-server/commit/1eee538087ffcf121c37f844b447ba5480faf081
-
Jan Lindström authored
-
Philip Stoev authored
-
sjaakola authored
Refs: MW-245 - changed logic so that in non primary node it is possible to do SET + SHOW + SELECT from information and pfs schema, when dirty reads are not enabled - however, non table selects are not allowed (e.g. SELECT 1)
-
sjaakola authored
Refs MW-245 - logic was wrong in detecting if queries are allowed in non primary node. it allowed select with no table list to execute even if dirty reads was not specified
-
Philip Stoev authored
-
sjaakola authored
refs MW-245 - allowing USE <database> with dirty reads configuration - fix for logic of setting wsrep ready status
-
sjaakola authored
-
Varun Gupta authored
MDEV-12737: tokudb_mariadb.mdev6657 fails in buildbot with different plan, and outside with valgrind warnings Fixing the test by adding replace column for the rows column in the explain.
-
- 19 Mar, 2018 6 commits
-
-
Jacob Mathew authored
MDEV-10991: Server crashes in spider_udf_direct_sql_create_conn - tests in spider/oracle* suites crash the server The crash occurs due to code that is #ifdef'd out with HAVE_ORACLE_OCI that pertains to the use of Spider with an Oracle data tier. Enabling this code eliminates the crash. The reason that MariaDB needs to support Oracle storage at the data tier is to help customers migrate from Oracle. It is necessary to build Spider with the additional build flag -DHAVE_ORACLE_OCI, and install and start Oracle before running the Oracle test suite or any tests within it. Nevertheless, if Spider is built normally and Oracle has not been started, these tests should not cause the MariaDB server to crash. The bug fix replaces the crash with the following error: ERROR 12501 (HY000) at line 4: The connect info 'ORACLE' is invalid Author: Jacob Mathew. Reviewer: Kentoku Shiba.
-
Vicențiu Ciorbaru authored
-
Alexander Barkov authored
cmp_item_sort_string::store_value() did not cache the string returned from item->val_str(), whose result can point to various private members such as Item_char_typecast::tmp_value. - cmp_item_sort_string::store_value() remembered the pointer returned from item->val_str() poiting to tmp_value into cmp_item_string::value_res. - Later, cmp_item_real::store_value() was called, which called Item_str_func::val_real(), which called Item_char_typecast::val_str(&tmp) using a local stack variable "String tmp". Item_char_typecast::tmp_value was overwritten and become a link to "tmp": tmp_value.Ptr freed its own buffer and set to point to the buffer owned by "tmp". - On return from Item_str_func::val_real(), "String tmp" was destructed, but "tmp_value" still pointed to the buffer owned by "tmp", So tmp_value.Ptr became invalid. - Then cmp_item_sort_string() passed cmp_item_string::value_res to sortcmp(). At this point, value_res still pointed to an invalid value of Item_char_typecast::tmp_value. Fix: changing cmp_item_sort_string::store_value() to force copying to cmp_item_string::value if item->val_str(&value) returned a different pointer (instead of &value).
-
Jan Lindström authored
Fix test failure on galera_flush_local.
-
Jan Lindström authored
Fix test failure on galera_concurrent_ctas
-
Jan Lindström authored
Fortify wsrep_hton so that wsrep calls are not done to NULL-pointers.
-
- 18 Mar, 2018 2 commits
-
-
Vicențiu Ciorbaru authored
-
Vicențiu Ciorbaru authored
-
- 16 Mar, 2018 17 commits
-
-
Thirunarayanan Balathandayuthapani authored
- Fixed the asan failure of the unsupported_redo test case
-
Marko Mäkelä authored
lock_rec_trx_wait(): Merge to the only caller lock_prdt_rec_move(). lock_rec_reset_nth_bit(), lock_set_lock_and_trx_wait(), lock_reset_lock_and_trx_wait(): Define in lock0priv.h.
-
Marko Mäkelä authored
By definition, c_lock->trx->lock.wait_lock==c_lock cannot hold. That is, the owner transaction of a lock cannot be waiting for that particular lock. It must have been waiting for some other lock. Remove the dead code related to that. Also, test c_lock for NULLness only once.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Refactor lock_grant(). With innodb_lock_schedule_algorithm=VATS some callers were passing an incorrect parameter owns_trx_mutex to lock_grant(). lock_grant_after_reset(): Refactored from lock_grant(), without the call to lock_reset_lock_and_trx_wait(). lock_grant_have_trx_mutex(): A variant of lock_grant() where the caller already holds the lock->trx->mutex. The normal lock_grant() will acquire and release lock->trx->mutex. lock_grant(): Define as a wrapper that will acquire lock->trx->mutex.
-
Marko Mäkelä authored
lock_rec_queue_validate(): Restore some assertions. DeadlockChecker::select_victim(): Reduce the WSREP-related diff.
-
Marko Mäkelä authored
lock_table_create(): Move the WSREP parameter c_lock last, and make it NULL by default, to avoid the need for a wrapper function. lock_table_enqueue_waiting(): Move the WSREP parameter c_lock last.
-
Marko Mäkelä authored
This is a non-functional change.
-
Marko Mäkelä authored
Revert the dead code for MySQL 5.7 multi-master replication (GCS), also known as WL#6835: InnoDB: GCS Replication: Deterministic Deadlock Handling (High Prio Transactions in InnoDB). Also, make innodb_lock_schedule_algorithm=vats skip SPATIAL INDEX, because the code does not seem to be compatible with them. Add FIXME comments to some SPATIAL INDEX locking code. It looks like Galera write-set replication might not work with SPATIAL INDEX.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
The merge only covered 10.1 up to commit 4d248974. Actually merge the changes up to commit 0a534348. Also, remove the unused InnoDB field trx_t::abort_type.
-
Varun Gupta authored
To disallow equality propagation for DATETIME with non-zero YYYYMMDD part we were setting null_value to true. This caused issues when we were calculating selectivity for a condition as this returned IMPOSSIBLE WHERE. The issue is resolved by not setting null_value to true for DATETIME with non-zero YYYYMMDD.
-
Vicențiu Ciorbaru authored
-
Sergey Vojtovich authored
Eliminated last exit() call from libmysqld.
-
Thirunarayanan Balathandayuthapani authored
MDEV-14545 Backup fails due to MLOG_INDEX_LOAD record - Changed the unsupported_redo test case to avoid checkpoint - Inserting more rows in purge_secondary test case to display evict monitor.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Unlike commit a54abf01 claimed, the caller of THD::awake() may actually hold the InnoDB lock_sys->mutex. That commit introduced a deadlock of threads in the replication slave when running the test rpl.rpl_parallel_optimistic_nobinlog. lock_trx_handle_wait(): Expect the callers to acquire and release lock_sys->mutex and trx->mutex. innobase_kill_query(): Restore the logic for conditionally acquiring and releasing the mutexes. THD::awake() can be called from inside InnoDB while holding one or both mutexes, via thd_report_wait_for() and via wsrep_innobase_kill_one_trx().
-
- 15 Mar, 2018 5 commits
-
-
Galina Shalygina authored
the non-recursive CTE defined with UNION The problem appears as the columns of the non-recursive CTE weren't renamed. The renaming procedure was called for recursive CTEs only. To fix it in the procedure st_select_lex_unit::prepare With_element::rename_columns_of_derived_unit is called now for both CTEs: recursive and non-recursive.
-
Marko Mäkelä authored
ha_innobase::unlock_row(): Use a relaxed version of the trx_state_eq() debug assertion, because rr_unlock_row() may be invoked after an error has been already reported and the transaction has been rolled back.
-
Marko Mäkelä authored
By definition, c_lock->trx->lock.wait_lock==c_lock cannot hold. That is, the owner transaction of a lock cannot be waiting for that particular lock. It must have been waiting for some other lock. Remove the dead code related to that. Also, test c_lock for NULLness only once.
-
Marko Mäkelä authored
The caller of THD::awake() should never hold any InnoDB mutexes, so we can always acquire lock_sys->mutex and trx->mutex.
-
Jan Lindström authored
MDEV-13549 Fix and re-enable test galera.galera_var_slave_threads
-