Commit graph

179526 commits

Author SHA1 Message Date
Vladislav Vaintroub
4ec88ea9c3 Fix a warning on Win64 2017-10-23 22:01:19 +00:00
Vladislav Vaintroub
4330505629 Do not use File::Which, it is not always available. 2017-10-23 14:17:50 +00:00
Alexander Barkov
e7637ec061 A cleanup for MDEV-12007 Allow ROW variables as a cursor FETCH target
Using "this" instead of "thd->sphead" in sp_rcontext::set_variable_row_field()
2017-10-23 15:24:02 +04:00
Vladislav Vaintroub
72407e544e MDEV-13496 Use "mariabackup" rather than "xtrabackup" in console output 2017-10-23 10:37:28 +00:00
Vladislav Vaintroub
125ce6f82f MDEV-14102 restore --remove-original options for mariabackup 2017-10-23 10:30:17 +00:00
Sergei Petrunia
6cfbffad5b Code cleanup 2017-10-23 10:04:55 +00:00
Sergei Petrunia
9d47c4cfdb Merge branch '10.2' of github.com:MariaDB/server into bb-10.2-mariarocks 2017-10-23 09:47:10 +00:00
Sergei Petrunia
d577b1a9c2 MDEV-11934: MariaRocks: Group Commit with binlog
Fix a failure in rocksdb_rpl.rpl_rocksdb_2pc_crash_recover test.
Don't do XA with binlog if @@rocksdb_enable_2pc=OFF.
2017-10-23 09:45:47 +00:00
Aleksey Midenkov
1355fadb59 MDEV-13720 Server crashes in SEQUENCE::write_lock for temporary tables
This happens when doing NEXT VALUE for a temporary table
Fixed by giving ER_NOT_SEQUENCE when trying to use normal temporary table with
sequence functions

Signed-off-by: Monty <monty@mariadb.org>
2017-10-22 20:30:57 +03:00
Aleksey Midenkov
eea07f5f58 MDEV-13721 Assertion is_lock_owner() failed in mysql_rm_table_no_locks
This happened when trying to do delete a sequence hidden by a temporary
table.
Fixed by ignoring non-sequence temporary tables when trying to drop
sequences.

Signed-off-by: Monty <monty@mariadb.org>
2017-10-22 20:23:09 +03:00
Monty
a3b4f575b9 Reset table->record[1] early for sequences to fix comparision of innodb row
Added also suppression of openssl warnings from valgrind
2017-10-22 20:23:09 +03:00
Aleksey Midenkov
7204f66c6a MDEV-13711 Assertion failure on CREATE TABLE .. LIKE <sequence>
Fixes two issues:
- Update assert in open_and_process_tables to handle sequences
- Removed not needed and conflicting mdl_context.release_transactional_locks
  in sql_sequence.cc. The MDL lock is released at end of
  mysql_execute_command().

Signed-off-by: Monty <monty@mariadb.org>
2017-10-22 20:23:09 +03:00
Aleksey Midenkov
7447b4ce37 MDEV-13714 Value of SEQUENCE table option is ignored upon creation
CREATE TABLE ... sequence=0 and sequence=DEFAULT created sequence tables
when they should not.

Signed-off-by: Monty <monty@mariadb.org>
2017-10-22 20:23:09 +03:00
Aleksey Midenkov
f64cff9206 MDEV-13715 Server crashes in ha_partition::engine_name
This happened when trying to PARTITION a SEQUENCE table
Problem was that wrong function was used to get engine name

Signed-off-by: Monty <monty@mariadb.org>
2017-10-22 20:20:32 +03:00
Sergei Golubchik
2aa51f528f Various compier warnings
gcc 5.4 and 7.1, Debug and Release builds
2017-10-22 14:51:45 +02:00
Sergei Golubchik
9d2e2d7533 Merge branch '10.0' into 10.1 2017-10-22 13:03:41 +02:00
Alexander Barkov
edfdf0d0a3 A cleanup for MDEV-13415 Wrap the code in sp.cc into a class Sp_handler
Fixing mysql_execute_command() and store_schema_proc() not to use
stored object type codes TYPE_ENUM_PROCEDURE and TYPE_ENUM_FUNCTION.
Using pointers to Sp_handler instead, to make the code symmetric across
existing (function,procedure) and future (e.g package) SP object types.
2017-10-20 18:44:28 +04:00
Sergei Petrunia
4995091c33 Temporarily disable rocksdb.rpl_ddl_high_priority test 2017-10-20 14:15:37 +00:00
Sergei Petrunia
7c42b091b7 Make rocksdb.index_merge_rocksdb2 test stable 2017-10-20 13:36:55 +03:00
Sergey Vojtovich
3722372ae5 MDEV-11549 - Twin include
Removed duplicate include.
2017-10-20 13:56:49 +04:00
Michael Widenius
211f9eea60 MDEV-14092 NEXTVAL fails on slave
The problem was that the code in replication didn't distinguish between a
setval() failing because the stored sequence number was bigger than the
current (should have been ignored) and a failure from the storage engine.
2017-10-19 13:25:02 +03:00
Alexander Barkov
e156db85a7 sp_rcontext::sp cleanup
- Renaming sp_rcontext::sp to sp_rcontext:m_sp for consistency
  with other sp_rcontext_members, and for consistency with the
  same purpose member Item_sp_variable::m_sp.

- Passing a "const sp_head*" pointer to sp_rcontext::sp_rcontext()
  and to sp_rcontext::create().
  Initializing sp_rcontext::m_sp right in the constructor
  instead of having a separate initialization after "new sp_rcontext"
  or sp_rcontext::create().

- Adding the "const" qualifier to sp_rcontext::m_sp and Item_sp_variable::m_sp
2017-10-19 12:57:00 +04:00
Alexander Barkov
f5e09b5f8f Moving a piece of open_and_process_routine() into a new function sp_acquire_routine()
Reason:
- avoid huge functions
- sp_acquire_routine() will be reused for Oracle-style packages soon
2017-10-19 11:48:34 +04:00
Sergei Golubchik
607d8f9e97 MDEV-14081 ALTER TABLE CHANGE COLUMN Corrupts Index Leading to Crashes in 10.2
remove remnants of 10.0 bugfix, incorrectly merged into 10.2

Using col_names[i] was obviously, wrong, must've been col_names[ifield->col_no].
incorrect column name resulted in innodb having index unique_id2(id1),
while the server thought it's unique_id2(id4).
But col_names[ifield->col_no] is wrong too, because `table` has non-renamed
columns, so the correct column name is always dict_table_get_col_name(table, ifield->col_no)
2017-10-18 22:15:27 +02:00
Sergei Golubchik
e6df6031f6 MDEV-13969 sst mysqldump and xtrabackup-v2 handle WSREP_SST_OPT_CONF incorrectly
$WSREP_SST_OPT_CONF already includes --defaults-extra-file= prefix.
2017-10-18 22:15:27 +02:00
Sergei Golubchik
4c2c057d40 MDEV-13968 sst fails with "WSREP_SST_OPT_PORT: readonly variable" 2017-10-18 22:15:26 +02:00
Sergei Golubchik
30faf331b8 MDEV-13836 mariadb_config & mysql_config output differ
allow to build with the default port number 3306.
Now -DMYSQL_TCP_PORT=# sets the default port name and
-DMYSQL_TCP_PORT_DEFAULT=# sets the magic port=0 behavior,
if it's MYSQL_TCP_PORT_DEFAULT=0 it's enabled, otherwise - disabled.
2017-10-18 22:15:26 +02:00
Sergei Golubchik
a75884e701 MDEV-13836 mariadb_config & mysql_config output differ
Use mariadb_config, for C/C config variables
2017-10-18 22:15:26 +02:00
Marko Mäkelä
2eb3c5e542 MDEV-13918 Race condition between INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS and ALTER/DROP/TRUNCATE TABLE
i_s_sys_tables_fill_table_stats(): Acquire dict_operation_lock
S-latch before acquiring dict_sys->mutex, to prevent the table
from being removed from the data dictionary cache and from
being freed while i_s_dict_fill_sys_tablestats() is accessing
the table handle.
2017-10-18 21:19:33 +03:00
Michael Widenius
98cc7a8eef Fixed compiler warnings 2017-10-18 17:10:49 +03:00
Sergei Golubchik
da4503e956 Merge branch '5.5' into 10.0 2017-10-18 15:14:39 +02:00
Alexander Barkov
30e7d6709f Merge remote-tracking branch 'origin/10.2' into bb-10.2-ext 2017-10-18 14:11:55 +04:00
Marko Mäkelä
3294f6c30d MDEV-14085 Merge new release of InnoDB MySQL 5.7.20 to 10.2 2017-10-18 11:57:38 +03:00
Marko Mäkelä
59d3ba0b5d Adjust the instrumentation and test 2017-10-18 11:53:45 +03:00
Darshan M N
7c9651a371 BUG#25479538 ASSERT:SIZE == SPACE->SIZE DURING BUF_READ_AHEAD_RANDOM
Issue
=====
The original issue was that the size of a fil_per_table tablespace was calculated
incorrectly during truncate in the presence of an fts index. This incorrect calculation
was fixed as part of BUG#25053705 along with a testcase to reproduce the bug. The
assert that was added as part of it to reproduce the bug was wrong and resulted in
this bug.

Fix
===
Although the assert was removed earlier in a seperate commit as it was blocking the
ntest, this patch replaces the other parts of the code that were added to reproduce
the bug and replaces it with code that tries to reproduce the bug in a different way.

The new code basically tries to tweak conditions so as to simulate the random read
where a page that doesn't exist is tried to be read.

RB: 15890
Reviewed-by: Jimmy Yang <Jimmy.Yang@oracle.com>
Reviewed-by: Satya Bodapati <satya.bodapati@oracle.com>
2017-10-18 11:53:34 +03:00
Marko Mäkelä
babbf8c6fc fts_query_free(): Fix a potential assertion failure
The ownership of the field query->intersection usually transfers
to query->doc_ids. In some error scenario, it could be possible
that fts_query_free() would be invoked with query->intersection!=NULL.
Let us handle that case, instead of intentionally crashing the server.
2017-10-18 10:22:10 +03:00
Marko Mäkelä
30e89acd95 Import, adapt and extend a test from Oracle 2017-10-18 10:06:48 +03:00
Daniel Bartholomew
fb5fe497e5 bump the VERSION 2017-10-18 02:36:55 -04:00
Marko Mäkelä
3bc094d32a Remove dead code for pushing down LIMIT to InnoDB FULLTEXT INDEX queries
MySQL 5.7 added code to push down the LIMIT to fulltext search
in InnoDB:

commit 2cd0ebf97e1b265e2282d7ceb5d8dfb663ffc48f
Author: Thirunarayanan Balathandayuthapani <thirunarayanan.balathandayuth@oracle.com>
Date:   Fri May 27 13:49:28 2016 +0530

    Bug #22709692   FTS QUERY EXCEEDS RESULT CACHE LIMIT

The code was disabled when MySQL 5.7.9 was merged to MariaDB 10.2.2.

We shall remove the disabled code and unnecessary variables.
2017-10-18 09:07:53 +03:00
Marko Mäkelä
9817479563 Add a test of LIMIT with FULLTEXT INDEX
In MariaDB, InnoDB fulltext search does not currently
truncate results based on LIMIT. In MySQL 5.7, it does.
2017-10-18 08:25:04 +03:00
Marko Mäkelä
dfd010ef90 MDEV-14086 Setting innodb_buffer_pool_load_now or innodb_buffer_load_abort will crash if innodb_read_only
When MySQL 5.6.10 introduced innodb_read_only mode, it skipped the
creation of the InnoDB buffer pool dump/restore subsystem in that mode.
Attempts to set the variable innodb_buf_pool_dump_now would have
no effect in innodb_read_only mode, but the corresponding condition
was forgotten in from the other two update functions.

MySQL 5.7.20 would fix the innodb_buffer_pool_load_now,
but not innodb_buffer_pool_load_abort. Let us fix both in MariaDB.
2017-10-18 06:35:11 +03:00
Olivier Bertrand
74ffcbc135 - Typo (from 10.1) Modified: storage/connect/value.cpp 2017-10-17 21:50:17 +02:00
Vicențiu Ciorbaru
4090ef820e Fix check_role_is_granted for embedded 2017-10-17 15:33:19 +03:00
Sergei Petrunia
cd7fa0fd62 MDEV-11934: MariaRocks: Group Commit with binlog
Port the previous patch:
- Implement MariaDB's Group Commit API. This is a first
   attempt which lacks the expected performance.

To newer MariaDB (which includes newer MyRocks)
2017-10-17 12:04:53 +03:00
Sergei Golubchik
b000e16956 Bug#26361149 MYSQL SERVER CRASHES AT: COL IN(IFNULL(CONST, COL), NAME_CONST('NAME', NULL))
based on:

commit f7316aa0c9
Author: Ajo Robert <ajo.robert@oracle.com>
Date:   Thu Aug 24 17:03:21 2017 +0530

    Bug#26361149  MYSQL SERVER CRASHES AT: COL IN(IFNULL(CONST,
                           COL), NAME_CONST('NAME', NULL))

    Backport of Bug#19143243 fix.

    NAME_CONST item can return NULL_ITEM type in case of incorrect arguments.
    NULL_ITEM has special processing in Item_func_in function.
    In Item_func_in::fix_length_and_dec an array of possible comparators is
    created. Since NAME_CONST function has NULL_ITEM type, corresponding
    array element is empty. Then NAME_CONST is wrapped to ITEM_CACHE.
    ITEM_CACHE can not return proper type(NULL_ITEM) in Item_func_in::val_int(),
    so the NULL_ITEM is attempted compared with an empty comparator.
    The fix is to disable the caching of Item_name_const item.
2017-10-17 11:04:09 +02:00
Sergei Golubchik
df5f25fa7a Merge branch 'mysql/5.5' into 5.5 2017-10-17 10:18:17 +02:00
Marko Mäkelä
a63102226e MDEV-14082 Enforcing innodb_open_files leads to fil_system->mutex problem
fil_mutex_enter_and_prepare_for_io(): Reacquire fil_system->mutex after
failing to close a file and before retrying.
2017-10-17 10:58:46 +03:00
Sergei Golubchik
b036b6b594 MDEV-13937 Aria engine: Internal Error 160 after partition handling
Partition wasn't setting HA_OPTION_PACK_RECORD on ALTER TABLE
if the row format was PAGE.

(so one bit in the null bitmap was reserved for a deleted bit -
see make_empty_rec - and all actual null bits were one off)
2017-10-17 07:37:39 +02:00
Sergei Golubchik
19a702a85c MDEV-14056 DROP TEMPORARY TABLE IF EXISTS causes error 1290 with read_only option
if it's a DROP TABLE, we cannot detect whether a table is
temporary by looking in thd->temporary_tables - because the
table might simply not exist at all.
2017-10-17 07:37:39 +02:00
Sergei Golubchik
421716391b MDEV-13912 Can't refer the same column twice in one ALTER TABLE
backport ce6c0e584e

MDEV-8960: Can't refer the same column twice in one ALTER TABLE

Problem was that if column was created in alter table when
it was refered again it was not tried to find from list
of current columns.

mysql_prepare_alter_table:
  There is two cases
    (1) If alter table adds a new column and then later alter
        changes the field definition, there was no check from
	list of new columns, instead an incorrect error was given.
    (2) If alter table adds a new column and then later alter
        changes the default, there was no check from list of
	new columns, instead an incorrect error was given.
2017-10-17 07:37:39 +02:00