- 25 Aug, 2015 2 commits
-
-
Jan Lindström authored
Added MTR suppressions for database corruption that is intentionally caused in test.
-
Sergey Vojtovich authored
Restored self-initialization version of UNINIT_VAR() for all gcc versions. Fixed UNINIT_VAR() usage: it is supposed to be used along with declaration.
-
- 22 Aug, 2015 1 commit
-
-
Elena Stepanova authored
-
- 21 Aug, 2015 3 commits
-
-
Alexander Barkov authored
-
Monty authored
- Added mem_root to all calls to new Item - Added private method operator new(size_t size) to Item to ensure that we always use a mem_root when creating an item. This saves use once call to current_thd per Item creation
-
Sergey Vojtovich authored
Added mandatory thd parameter to Item (and all derivative classes) constructor. Added thd parameter to all routines that may create items. Also removed "current_thd" from Item::Item. This reduced number of pthread_getspecific() calls from 290 to 177 per OLTP RO transaction.
-
- 18 Aug, 2015 4 commits
-
-
Monty authored
-
Monty authored
- UNINIT_VAR() was required for 4.8.3 on openSUSE 13.2
-
Monty authored
Ensure that fields declared with NOT NULL doesn't have DEFAULT values if not specified and if not timestamp or auto_increment In original code, sometimes one got an automatic DEFAULT value in some cases, in other cases not. For example: create table t1 (a int primary key) - No default create table t2 (a int, primary key(a)) - DEFAULT 0 create table t1 SELECT .... - Default for all fields, even if they where defined as NOT NULL ALTER TABLE ... MODIFY could sometimes add an unexpected DEFAULT value. The patch is quite big because we had some many test cases that used CREATE ... SELECT or CREATE ... (...PRIMARY KEY(xxx)) which doesn't have an automatic DEFAULT anymore. Other things: - Removed warnings from InnoDB when waiting from semaphore (got this when testing things with --big)
-
Monty authored
Issue was two fold (both in MyISAM and Aria) - optimize and repair failed if there was an old .TMM file around. As optimized and repair are protected against multiple execution, I decided to change so that we just truncate the file if it exists. - I had missed to check for error condition if creation of the temporary index file failed. This caused the strange behaviour that it looked as if optimized would have worked once.
-
- 17 Aug, 2015 1 commit
-
-
Alexander Barkov authored
MDEV-7649 wrong result when comparing utf8 column with an invalid literal This is a preparatory patch for: MDEV-8433 Make field<'broken-string' use indexes
-
- 14 Aug, 2015 5 commits
-
-
Alexander Barkov authored
This is a pre-requisite patch for: - MDEV-8433 Make field<'broken-string' use indexes - MDEV-8625 Bad result set with ignorable characters when using a prefix key - MDEV-8626 Bad result set with contractions when using a prefix key
-
Jan Lindström authored
Analysis: Problem was that when a new tablespace is created a default encryption info is also created and stored to the tablespace. Later a new encryption information was created with correct key_id but that does not affect on IV. Fix: Push encryption mode and key_id to lower levels and create correct encryption info when a new tablespace is created. This fix does not contain test case because, currently incorrect encryption key causes page corruption and a lot of error messages to error log causing mtr to fail.
-
Jan Lindström authored
MDEV-8591: Database page corruption on disk or a failed space, Assertion failure in file buf0buf.cc line 2856 on querying a table using wrong default encryption key Improved error messaging to show based on original page before encryption is page maybe encrypted or just corrupted.
-
Alexander Barkov authored
-
Alexander Barkov authored
Fixing misleading comments in String_copiers::well_formed_copy().
-
- 13 Aug, 2015 2 commits
-
-
Alexander Barkov authored
-
Alexander Barkov authored
-
- 12 Aug, 2015 3 commits
-
-
Alexander Barkov authored
-
Alexander Barkov authored
methods in Item_bool_func descendants, which gives some advantages: - Removing the "bool inv" parameter, as its now available through "this" for Item_func_between and Item_func_in, and is not needed for the other Item_func_xxx. - Removing casts - Making a step to data types plugings
-
Alexander Barkov authored
Its initialization in Item_func_xxx::get_mm_tree() is redundant: the pointer to the current function is passed to get_mm_tree() anyway.
-
- 10 Aug, 2015 1 commit
-
-
Alexander Barkov authored
-
- 09 Aug, 2015 1 commit
-
-
Nirbhay Choubey authored
-
- 08 Aug, 2015 5 commits
-
-
Nirbhay Choubey authored
While sql_bin_log=1(0) is meant to control binary logging for the current session so that the updates to do(not) get logged into the binary log to be replicated to the async MariaDB slave. The same should not affect galera replication. That is, the updates should always get replicated to other galera nodes regardless of sql_bin_log's value. Fixed by making sure that the updates are written to binlog cache irrespective of sql_bin_log. Added test cases.
-
Jan Lindström authored
Analysis: Handler used table flag HA_REQUIRE_PRIMARY_KEY but a bug on sql_table.cc function mysql_prepare_create_table internally marked secondary key with NOT NULL colums as unique key and did not then fail on requirement that table should have primary key or unique key.
-
Jan Lindström authored
Analysis: Handler table flag HA_REQUIRE_PRIMARY_KEY alone is not enough to force primary or unique key, if table has at least one NOT NULL column and secondary key for that column. Fix: Add additional check that table really has primary key or unique key for InnoDB terms.
-
Jan Lindström authored
Removed extra line break.
-
Jan Lindström authored
MDEV-8409: Changing file-key-management-encryption-algorithm causes crash and no real info why Analysis: Both bugs has two different error cases. Firstly, at startup when server reads latest checkpoint but requested key_version, key management plugin or encryption algorithm or method is not found leading corrupted log entry. Secondly, similarly when reading system tablespace if requested key_version, key management plugin or encryption algorithm or method is not found leading buffer pool page corruption. Fix: Firsly, when reading checkpoint at startup check if the log record may be encrypted and if we find that it could be encrypted, print error message and do not start server. Secondly, if page is buffer pool seems corrupted but we find out that there is crypt_info, print additional error message before asserting.
-
- 07 Aug, 2015 1 commit
-
-
Sergei Petrunia authored
-
- 04 Aug, 2015 4 commits
-
-
Kristian Nielsen authored
-
Kristian Nielsen authored
-
Kristian Nielsen authored
-
Kristian Nielsen authored
This bug is essentially another variant of MDEV-7458. If a transaction conflict caused a deadlock kill of T2 in record_gtid() during commit, the code would do a rollback _before_ running rgi->unmark_start_commit(). This creates a race where following transactions could start too early (before T2 has completed its transaction retry). This in turn could lead to replication failure, if there was a conflict that caused eg. duplicate key error or similar. The fix is to remove these rollbacks (in Query_log_event::do_apply_event() and Xid_log_event::do_apply_event(). They seem out-of-place; code in log_event.cc generally does not roll back on error, this is handled higher up. In addition, because of the extreme difficulty of reproducing bugs like MDEV-7458 and MDEV-8302, this patch adds some extra precations to try to detect (in debug builds) or prevent (in release builds) similar bugs. ha_rollback_trans() will now call unmark_start_commit() if needed (and assert in debug build when a caller does rollback without unmark first). We also add an extra check for thd->killed() so that we avoid doing mark_start_commit() if we already have a pending deadlock kill. And we add a missing unmark_start_commit() call in the error case, found by the above assertion.
-
- 24 Jul, 2015 1 commit
-
-
Sergey Vojtovich authored
Attempting to kill query owned by different user now returns better error: "You are not owner of query N" instead of "You are not owner of thread N".
-
- 23 Jul, 2015 2 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
- 22 Jul, 2015 2 commits
-
-
Sergei Golubchik authored
-
Jan Lindström authored
Analysis: In fil_crypt_space_needs_rotation we first make sure that tablespace is found and then separately that it is normal tablespace. Thus, tablespace could be dropped between these two functions calls. Fix: If space is not found from fil_system return tablespace type ULINT_UNDEFINED and naturally do not continue rotating space.
-
- 21 Jul, 2015 1 commit
-
-
Jan Lindström authored
Analysis: There is race between drop table and encryption threads that could cause encryption thread to enter mutex that has been already released. Fix: When destroying crypt_data first enter the mutex and set crypt data unavailable, then release the memory and clean up the data. This should make the race more unprobable. Additionally, added big_test for create_or_replace as it could fail testcase timeout if you have slow I/O (tested that testcase passes with --mem).
-
- 20 Jul, 2015 1 commit
-
-
Sergei Golubchik authored
as a workaround until the bug is fixed don't run mroonga tests in --embedded mode by default
-