summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-8671 Wrong result for SELECT..WHERE varchar_column=' 1' AND ↵Alexander Barkov2015-09-023-0/+44
| | | | (varchar_column XOR '1')
* After-merge fix.Kristian Nielsen2015-09-022-16/+16
|
* Merge MDEV-8725 into 10.1Kristian Nielsen2015-09-024-10/+76
|\
| * Fix a potential lost wakeup for binlog_commit_wait_usecKristian Nielsen2015-09-021-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a transaction T1 needs to wait for a transaction T2, T2's commit will skip the normal binlog_commit_wait_usec delay, in order not to needlessly stall throughput. This works by checking if T2 is already ready to commit. If so, it is woken up. If not, we set a flag in T2 so that when it gets ready to commit, it will do so immediately. But there was a potential race due to insufficient locking, if T2 gets ready to commit just at the point where T1 does the check. If the race hits, the wakeup (and early commit) of T2 might be lost. The race is only theoretical (from code inspection, no known test case), but seems best to fix it anyway, by properly locking LOCK_prepare_ordered around the check.
| * MDEV-8725: Assertion `!(thd->rgi_slave && thd-> ↵Kristian Nielsen2015-09-023-8/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rgi_slave->did_mark_start_commit)' failed in ha_rollback_trans The assertion is there to catch cases where we rollback while mark_start_commit() is active. This can allow following event groups to be replicated too early, causing conflicts. But in this case, we have an _explicit_ ROLLBACK event in the binlog, which should not assert. We fix this by delaying the mark_start_commit() in the explicit ROLLBACK case. It seems safest to delay this in ROLLBACK case anyway, and there should be no reason to try to optimise this corner case.
* | The fix for MDEV-8723 unintentionally broke vcol_supported_sql_funcs_myisamAlexander Barkov2015-09-026-108/+30
| | | | | | | | | | | | | | | | and vcol_supported_sql_funcs_innodb. Moving the test for using CHARSET(), COLLATION(), COERCIBILITY() in virtual column from vcol_supported_sql_funcs_xxx to vcol_blocked_sql_funcs_xxx, as these functions are not supported in virtual columns any longer. Discussed with Sanja on IRC.
* | MDEV-8723 Wrong result for SELECT..WHERE COLLATION(a)='binary' AND a='a'Alexander Barkov2015-09-024-13/+79
| |
* | MDEV-8695 Wrong result for SELECT..WHERE varchar_column='a' AND ↵Alexander Barkov2015-09-015-3/+165
| | | | | | | | CRC32(varchar_column)=3904355907
* | Fixed errors and bugs found by valgrind:Monty2015-09-0110-45/+97
| | | | | | | | | | | | | | | | | | | | | | | | - If run with valgrind, mysqltest will now wait longer when syncronizing slave with master - Ensure that we wait with cleanup() until slave thread has stopped. - Added signal_thd_deleted() to signal close_connections() that all THD's has been freed. - Check in handle_fatal_signal() that we don't use variables that has been freed. - Increased some timeouts when run with --valgrind Other things: - Fixed wrong test in one_thread_per_connection_end() if galera is used. - Removed not needed calls to THD_CHECK_SENTRY() when we are calling 'delete thd'.
* | MDEV-6152: Remove calls to current_thd while creating ItemMonty2015-09-0132-309/+396
| | | | | | | | | | Part 5: Removing calls to current_thd in net_read calls, creating fields, query_cache, acl and some other places where thd was available
* | MDEV-8722 The patch for MDEV-8688 disabled equal field propagation for ↵Alexander Barkov2015-09-016-27/+55
| | | | | | | | | | | | | | | | | | | | temporal column and BETWEEN and IN Item::cmp_context was inconsistently used in combination with cmp_type() and result_type() in different places of the code. Fixed to use cmp_type() in all places where cmp_context is involved, to avoid unexpected results for temporal data types (which have result_type()==STRING_RESULT and cmp_type==TIME_RESULT).
* | MDEV-8707 Wrong result forAlexander Barkov2015-08-319-27/+208
| | | | | | | | SELECT..WHERE varchar_column=DATE'2001-01-01' AND varchar_column='2001-01-01'
* | MDEV-8698 Wrong result for SELECT..WHERE a BETWEEN 'a' AND 'c' COLLATE ↵Alexander Barkov2015-08-293-0/+33
| | | | | | | | latin1_bin;
* | MDEV-8680 Wrong result for SELECT..WHERE a IN ('a' COLLATE latin1_bin,'b') ↵Alexander Barkov2015-08-292-0/+29
| | | | | | | | | | | | AND a='a' The fix for MDEV-8688 fixed MDEV-8680 as well. Just adding a test case.
* | MDEV-8688 Wrong result forAlexander Barkov2015-08-296-0/+108
| | | | | | | | SELECT..WHERE varchar_column IN (1,2,3) AND varchar_column=' 1';
* | Clean-up: removing duplicate code: removingAlexander Barkov2015-08-291-2/+1
| | | | | | | | | | Item_func_in::compare_collation() and Item_func_between::compare_collation(), and adding Item_func_opt_neg::compare_collation() instead.
* | Moving common members of Item_func_in and Item_func_between to theirAlexander Barkov2015-08-292-15/+23
| | | | | | | | | | parent Item_func_opt_neg. A pre-requisite patch for a number of upcoming equal field propagation related bug fixes.
* | MDEV-8694 Wrong result for SELECT..WHERE a NOT LIKE 'a ' AND a='a'Alexander Barkov2015-08-2820-36/+803
| | | | | | | | | | | | Note, the patch for MDEV-8661 unintentionally fixed MDEV-8694 as well, as a side effect. Adding a real clear fix: implementing Item_func_like::propagate_equal_fields() with comments.
* | MDEV-6152: Remove calls to current_thd while creating ItemMonty2015-08-2722-253/+296
| | | | | | | | | | | | | | | | | | | | | | | | | | - Part 4: Removing calls to sql_alloc() and sql_calloc() Other things: - Added current_thd in some places to make it clear that it's called (easier to remove later) - Move memory allocation from Item_func_case::fix_length_and_dec() to Item_func_case::fix_fields() - Added mem_root to some new calls - Fixed some wrong UNINIT_VAR() calls - Fixed a bug in generate_partition_syntax() in case of errors - Added mem_root to argument to new thread_info - Simplified my_parse_error() call in sql_yacc.yy
* | MDEV-6152: Remove calls to current_thd while creating ItemMonty2015-08-2750-753/+1103
| | | | | | | | | | | | | | | | - Part 3: Adding mem_root to push_back() and push_front() Other things: - Added THD as an argument to some partition functions. - Added memory overflow checking for XML tag's in read_xml()
* | Making Item_field::can_be_substituted_to_equal_item() private.Alexander Barkov2015-08-261-2/+2
| |
* | MDEV-8661 Wrong result for SELECT..WHERE a='a' AND a='a' COLLATE latin1_binAlexander Barkov2015-08-269-87/+198
| | | | | | | | MDEV-8679 Equal field propagation is not used for VARCHAR when it safely could
* | MDEV-8683: Bunch of tests fail in buildbot on new InnoDB variablesJan Lindström2015-08-266-0/+12
| |
* | Merge pull request #94 from ericherman/evict_table_metricJan Lindström2015-08-266-4/+40
|\ \ | | | | | | Evict table metric
| * | Add lru evict count for the idle loop (xtradb)Eric Herman2015-08-263-6/+15
| | |
| * | Add lru evict count for the idle loop (innobase)Eric Herman2015-08-263-6/+15
| | | | | | | | | | | | | | | port of work by dveeden: https://github.com/dveeden/mysql-server/commit/555ca34958a8ed191f34eeb2333e0d7c30e12fce
| * | Add eviction count for table cache lru cleanup (xtradb)Eric Herman2015-08-263-1/+10
| | |
| * | Add eviction count for table cache lru cleanup (innobase)Eric Herman2015-08-263-1/+10
|/ / | | | | | | | | | | | | | | This is a port of dveeden's work: https://github.com/dveeden/mysql-server/commit/e9d00e859e3854bf8f71873caa69c060e670350b (Mostly changes in linenumbers, a bit of whitespace fix-up.)
* | MDEV-8676 Some storage_engine tests fail on 10.1Elena Stepanova2015-08-268-12/+13
| | | | | | | | | | | | - foreign_keys: adjusted according to code changes; - type_spatial: adjusted according to code changes; - type_spatial_indexes (for MyISAM): disabled till MDEV-8675 is fixed
* | MDEV-8665: innodb.innodb_bug14147491 fails in buildbot on some debug buildsJan Lindström2015-08-252-0/+21
| | | | | | | | | | Added MTR suppressions for database corruption that is intentionally caused in test.
* | UNINIT_VAR() fixesSergey Vojtovich2015-08-254-12/+5
| | | | | | | | | | Restored self-initialization version of UNINIT_VAR() for all gcc versions. Fixed UNINIT_VAR() usage: it is supposed to be used along with declaration.
* | Increase the version numberElena Stepanova2015-08-231-1/+1
| |
* | Clean-up: moving compare_collation() from Item to Item_bool_func.Alexander Barkov2015-08-216-32/+43
| |
* | Stage 2 of MDEV-6152:Monty2015-08-2151-881/+1146
| | | | | | | | | | | | | | | | - 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
* | MDEV-8010 - Avoid sql_alloc() in Items (Patch #1)Sergey Vojtovich2015-08-2171-2470/+2720
| | | | | | | | | | | | | | 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.
* | Merge /my/maria-10.1-default into 10.1Monty2015-08-18204-6330/+6955
|\ \
| * | Fixed failing tests and compiler warningsMonty2015-08-1814-17/+44
| | | | | | | | | | | | - UNINIT_VAR() was required for 4.8.3 on openSUSE 13.2
| * | Ensure that fields declared with NOT NULL doesn't have DEFAULT values if not ↵Monty2015-08-18184-6305/+6776
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
| * | MDEV-8475 stale .TMM file causes MyiSAM and Aria engine to stop serving the ↵Monty2015-08-186-8/+135
| | | | | | | | | | | | | | | | | | | | | | | | table 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.
* | | Adding EXPLAIN SELECT tests for:Alexander Barkov2015-08-174-0/+218
| | | | | | | | | | | | | | | | | | 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
* | | Adding MY_CHARSET_HANDLER::native_to_mb().Alexander Barkov2015-08-1417-23/+102
| | | | | | | | | | | | | | | | | | | | | 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
* | | MDEV-8589: Non-default ENCRYPTION_KEY_ID is ignored upon reading a tableJan Lindström2015-08-1422-140/+154
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | MDEV-8591: Database page corruption on disk or a failed space, Assertion ↵Jan Lindström2015-08-144-99/+121
| | | | | | | | | | | | | | | | | | | | | 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.
* | | Recording range_mrr_icp.result (forgotten in the patch for MDEV-8613)Alexander Barkov2015-08-141-0/+12
| | |
* | | Removing unused String_copier::copy_fix.Alexander Barkov2015-08-142-35/+2
| | | | | | | | | | | | Fixing misleading comments in String_copiers::well_formed_copy().
* | | MDEV-8613 Full table scan for WHERE indexed_varchar_column <=> 'bad-character'Alexander Barkov2015-08-133-1/+22
| | |
* | | MDEV-8610 "WHERE CONTAINS(indexed_geometry_column,1)" causes full table scanAlexander Barkov2015-08-136-664/+729
| | |
* | | MDEV-8599 "WHERE varchar_field LIKE temporal_const" does not use range optimizerAlexander Barkov2015-08-125-170/+243
| | |
* | | Splitting a static function get_func_mm_tree() into virtualAlexander Barkov2015-08-122-260/+264
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | Removing RANGE_OPT_PARA::condAlexander Barkov2015-08-121-11/+1
| | | | | | | | | | | | | | | Its initialization in Item_func_xxx::get_mm_tree() is redundant: the pointer to the current function is passed to get_mm_tree() anyway.