Commit graph

172353 commits

Author SHA1 Message Date
Otto Kekäläinen
b007dfb101 Typofix: preceeding -> preceding 2015-08-31 09:18:30 +03:00
Otto Kekäläinen
e87e26af7d Merge branch '10.1' of https://github.com/MariaDB/server into ok-debpkg 2015-08-31 09:07:09 +03:00
Otto Kekäläinen
6bd94cf542 Make galera-3 a Recommends instead of Depends in Debian packaging
Having galera-3 as a Depends stops installation of proceeding
on systems where package galera-3 is not available. The server
can run fine withouth galera enabled, therefore a more slack
relationship is more appropriate.
2015-08-30 22:59:27 +03:00
Alexander Barkov
44a99777bf MDEV-8698 Wrong result for SELECT..WHERE a BETWEEN 'a' AND 'c' COLLATE latin1_bin; 2015-08-29 23:08:15 +04:00
Alexander Barkov
787adc6166 MDEV-8680 Wrong result for SELECT..WHERE a IN ('a' COLLATE latin1_bin,'b') AND a='a'
The fix for MDEV-8688 fixed MDEV-8680 as well. Just adding a test case.
2015-08-29 21:41:37 +04:00
Alexander Barkov
f071a12498 MDEV-8688 Wrong result for
SELECT..WHERE varchar_column IN (1,2,3) AND varchar_column=' 1';
2015-08-29 19:26:30 +04:00
Alexander Barkov
09fb51255a Clean-up: removing duplicate code: removing
Item_func_in::compare_collation() and Item_func_between::compare_collation(),
and adding Item_func_opt_neg::compare_collation() instead.
2015-08-29 18:45:04 +04:00
Alexander Barkov
b4e56a5658 Moving common members of Item_func_in and Item_func_between to their
parent Item_func_opt_neg. A pre-requisite patch for a number of
upcoming equal field propagation related bug fixes.
2015-08-29 16:31:11 +04:00
Alexander Barkov
3ba2a958be MDEV-8694 Wrong result for SELECT..WHERE a NOT LIKE 'a ' AND a='a'
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.
2015-08-28 17:03:09 +04:00
Monty
3bca8db4f9 MDEV-6152: Remove calls to current_thd while creating Item
- 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
2015-08-27 22:29:11 +03:00
Monty
3cb578c001 MDEV-6152: Remove calls to current_thd while creating Item
- 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()
2015-08-27 22:21:08 +03:00
Otto Kekäläinen
a273f016a1 Fix spelling errors 2015-08-27 00:39:44 +03:00
Alexander Barkov
ba340d8c47 Making Item_field::can_be_substituted_to_equal_item() private. 2015-08-26 23:17:34 +04:00
Alexander Barkov
1b6b44b6b5 MDEV-8661 Wrong result for SELECT..WHERE a='a' AND a='a' COLLATE latin1_bin
MDEV-8679 Equal field propagation is not used for VARCHAR when it safely could
2015-08-26 22:32:01 +04:00
Jan Lindström
c0b7bf2625 MDEV-8683: Bunch of tests fail in buildbot on new InnoDB variables 2015-08-26 18:07:34 +03:00
Jan Lindström
3ed384baf0 Merge pull request #94 from ericherman/evict_table_metric
Evict table metric
2015-08-26 14:59:33 +03:00
Eric Herman
f66ef6a05d Add lru evict count for the idle loop (xtradb) 2015-08-26 11:50:47 +02:00
Eric Herman
b7abdcf5c7 Add lru evict count for the idle loop (innobase)
port of work by dveeden:
555ca34958
2015-08-26 11:49:21 +02:00
Eric Herman
df32920ba0 Add eviction count for table cache lru cleanup (xtradb) 2015-08-26 10:27:19 +02:00
Eric Herman
4f4373fe31 Add eviction count for table cache lru cleanup (innobase)
This is a port of dveeden's work:

e9d00e859e

(Mostly changes in linenumbers, a bit of whitespace fix-up.)
2015-08-26 10:24:03 +02:00
Elena Stepanova
cf154cc9d2 MDEV-8676 Some storage_engine tests fail on 10.1
- 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
2015-08-26 02:09:57 +03:00
Jan Lindström
871259f171 MDEV-8665: innodb.innodb_bug14147491 fails in buildbot on some debug builds
Added MTR suppressions for database corruption that is intentionally
caused in test.
2015-08-25 16:15:22 +03:00
Sergey Vojtovich
27444871a8 UNINIT_VAR() fixes
Restored self-initialization version of UNINIT_VAR() for all gcc versions.
Fixed UNINIT_VAR() usage: it is supposed to be used along with declaration.
2015-08-25 11:46:31 +04:00
Elena Stepanova
c18110bd52 Increase the version number 2015-08-23 00:57:57 +03:00
Alexander Barkov
98ba2bf424 Clean-up: moving compare_collation() from Item to Item_bool_func. 2015-08-21 17:08:55 +04:00
Monty
1bae0d9e56 Stage 2 of MDEV-6152:
- 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
2015-08-21 10:40:51 +04:00
Sergey Vojtovich
31e365efae MDEV-8010 - Avoid sql_alloc() in Items (Patch #1)
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.
2015-08-21 10:40:39 +04:00
Monty
4374da63f0 Merge /my/maria-10.1-default into 10.1 2015-08-18 11:27:00 +03:00
Monty
dfac82e44d Fixed failing tests and compiler warnings
- UNINIT_VAR() was required for 4.8.3 on openSUSE 13.2
2015-08-18 11:18:58 +03:00
Monty
6b20342651 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)
2015-08-18 11:18:57 +03:00
Monty
92fd658327 MDEV-8475 stale .TMM file causes MyiSAM and Aria engine to stop serving the 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.
2015-08-18 11:18:57 +03:00
Alexander Barkov
5fe8b747e9 Adding EXPLAIN SELECT tests for:
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
2015-08-17 15:53:43 +04:00
Alexander Barkov
78b80cb6ba Adding MY_CHARSET_HANDLER::native_to_mb().
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
2015-08-14 18:34:41 +04:00
Jan Lindström
bfb6ea0232 MDEV-8589: Non-default ENCRYPTION_KEY_ID is ignored upon reading a table
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.
2015-08-14 16:25:18 +03:00
Jan Lindström
a80753594a 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.
2015-08-14 15:49:56 +03:00
Alexander Barkov
7145ca477c Recording range_mrr_icp.result (forgotten in the patch for MDEV-8613) 2015-08-14 11:11:39 +04:00
Alexander Barkov
e99bc0d1e2 Removing unused String_copier::copy_fix.
Fixing misleading comments in String_copiers::well_formed_copy().
2015-08-14 09:23:03 +04:00
Alexander Barkov
0750b2df37 MDEV-8613 Full table scan for WHERE indexed_varchar_column <=> 'bad-character' 2015-08-13 16:41:02 +04:00
Alexander Barkov
60985e5375 MDEV-8610 "WHERE CONTAINS(indexed_geometry_column,1)" causes full table scan 2015-08-13 14:25:51 +04:00
Alexander Barkov
9d884fd3d3 MDEV-8599 "WHERE varchar_field LIKE temporal_const" does not use range optimizer 2015-08-12 17:28:45 +04:00
Alexander Barkov
6e091dc7ff Splitting a static function get_func_mm_tree() into virtual
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
2015-08-12 14:43:17 +04:00
Alexander Barkov
9a64262db2 Removing RANGE_OPT_PARA::cond
Its initialization in Item_func_xxx::get_mm_tree() is redundant:
the pointer to the current function is passed to get_mm_tree() anyway.
2015-08-12 10:52:12 +04:00
Alexander Barkov
86a3613d4e MDEV-8441 Bad SHOW CREATE TABLE output for a table with a virtual column 2015-08-10 11:46:41 +04:00
Nirbhay Choubey
840aefc6a3 MDEV-8590: Fix embedded build failure 2015-08-09 14:16:50 -04:00
Nirbhay Choubey
cd1a11ace3 MDEV-7205 : Galera cluster & sql_log_bin = off don't work
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.
2015-08-08 15:04:15 -04:00
Jan Lindström
46ad86f6a3 MDEV-8582: innodb_force_primary_key option does not force PK or unique key
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.
2015-08-08 19:32:40 +03:00
Jan Lindström
3307eaab68 MDEV-8582: innodb_force_primary_key option does not force PK or unique key
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.
2015-08-08 10:39:01 +03:00
Jan Lindström
05bcb088bf MDEV-8583: Empty lines in encryption logging
Removed extra line break.
2015-08-08 10:09:45 +03:00
Jan Lindström
18b0176a05 MDEV-8410: Changing file-key-management to example-key-management causes crash and no real error
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.
2015-08-08 09:56:07 +03:00
Sergei Petrunia
3025c42605 Make ANALYZE FORMAT=JSON show execution time for filesort element. 2015-08-07 17:41:35 +03:00