
[Commits] 5e63f616a7e: MDEV-17124: mariadb 10.1.34, views and prepared statements: ERROR 1615 (HY000): Prepared statement needs to be re-prepared
by Oleksandr Byelkin 13 Nov '18
by Oleksandr Byelkin 13 Nov '18
13 Nov '18
revision-id: 5e63f616a7ed511e6e69581f6659f60f1ec8633b (mariadb-10.1.37-9-g5e63f616a7e)
parent(s): 1368a63589d0b4900f7d7efb57444c4ea34e6c26
author: Oleksandr Byelkin
committer: Oleksandr Byelkin
timestamp: 2018-11-13 10:10:09 +0100
message:
MDEV-17124: mariadb 10.1.34, views and prepared statements: ERROR 1615 (HY000): Prepared statement needs to be re-prepared
The problem is that if table definition cache (TDC) is full of real tables which are in tables cache, view definition can not stay there so will me removed by its own underlying tables.
In situation above old mechanism of detection matching definition in PS and current version always require reprepare and so prevent executing the PS.
One work arount is to increase TDC, other - improve version check for views (which is done here).
Now in suspiciouse cases we check MD5 of the view to be sure that version really have chenged.
---
mysql-test/r/view.result | 28 ++++++++++++++++++++++++++++
mysql-test/t/view.test | 39 +++++++++++++++++++++++++++++++++++++++
sql/parse_file.cc | 17 +++++++++++++++++
sql/parse_file.h | 4 +++-
sql/sql_view.cc | 41 +++++++++++++++++++++++++++++++++++++++++
sql/sql_view.h | 1 +
sql/table.cc | 26 ++++++++++++++++++++++++++
sql/table.h | 8 +-------
8 files changed, 156 insertions(+), 8 deletions(-)
diff --git a/mysql-test/r/view.result b/mysql-test/r/view.result
index e8c96e49977..030d0f0c520 100644
--- a/mysql-test/r/view.result
+++ b/mysql-test/r/view.result
@@ -6259,5 +6259,33 @@ t1col1 t1col2 t1col3
drop view v1;
drop table t1,t2;
#
+# MDEV-17124: mariadb 10.1.34, views and prepared statements:
+# ERROR 1615 (HY000): Prepared statement needs to be re-prepared
+#
+set @tdc= @@table_definition_cache, @tc= @@table_open_cache;
+set global table_definition_cache= 400, table_open_cache= 400;
+create table tt (a int, primary key(a)) engine=MyISAM;
+create view v as select * from tt;
+insert into tt values(1),(2),(3),(4);
+prepare stmt from 'select * from tt';
+#fill table definition cache
+execute stmt;
+a
+1
+2
+3
+4
+prepare stmt from 'select * from v';
+execute stmt;
+a
+1
+2
+3
+4
+drop database db;
+drop view v;
+drop table tt;
+set global table_definition_cache= @tdc, table_open_cache= @tc;
+#
# End of 10.1 tests
#
diff --git a/mysql-test/t/view.test b/mysql-test/t/view.test
index 6ff226d738f..ee587181aa4 100644
--- a/mysql-test/t/view.test
+++ b/mysql-test/t/view.test
@@ -6080,6 +6080,45 @@ select * from v1;
drop view v1;
drop table t1,t2;
+--echo #
+--echo # MDEV-17124: mariadb 10.1.34, views and prepared statements:
+--echo # ERROR 1615 (HY000): Prepared statement needs to be re-prepared
+--echo #
+
+set @tdc= @@table_definition_cache, @tc= @@table_open_cache;
+set global table_definition_cache= 400, table_open_cache= 400;
+
+create table tt (a int, primary key(a)) engine=MyISAM;
+create view v as select * from tt;
+insert into tt values(1),(2),(3),(4);
+
+prepare stmt from 'select * from tt';
+--echo #fill table definition cache
+--disable_query_log
+--disable_result_log
+create database db;
+use db;
+--let $tables=401
+while ($tables)
+{
+ --eval create table t$tables (i int) engine=MyISAM
+ --eval select * from t$tables
+ --dec $tables
+}
+
+use test;
+
+--enable_query_log
+--enable_result_log
+execute stmt;
+prepare stmt from 'select * from v';
+execute stmt;
+
+# Cleanup
+drop database db;
+drop view v;
+drop table tt;
+set global table_definition_cache= @tdc, table_open_cache= @tc;
--echo #
--echo # End of 10.1 tests
--echo #
diff --git a/sql/parse_file.cc b/sql/parse_file.cc
index f3dab4f7b2f..6f188660407 100644
--- a/sql/parse_file.cc
+++ b/sql/parse_file.cc
@@ -145,6 +145,7 @@ write_parameter(IO_CACHE *file, uchar* base, File_option *parameter)
switch (parameter->type) {
case FILE_OPTIONS_STRING:
+ case FILE_OPTIONS_FIXSTRING:
{
LEX_STRING *val_s= (LEX_STRING *)(base + parameter->offset);
if (my_b_write(file, (const uchar *)val_s->str, val_s->length))
@@ -830,6 +831,22 @@ File_parser::parse(uchar* base, MEM_ROOT *mem_root,
}
ptr= eol+1;
break;
+ case FILE_OPTIONS_FIXSTRING:
+ {
+ /* string have to be allocated already and length set */
+ LEX_STRING *val= (LEX_STRING *)(base + parameter->offset);
+ DBUG_ASSERT(val->length != 0);
+ if (ptr[val->length] != '\n')
+ {
+ my_error(ER_FPARSER_ERROR_IN_PARAMETER, MYF(0),
+ parameter->name.str, line);
+ DBUG_RETURN(TRUE);
+ }
+ memcpy(val->str, ptr, val->length);
+ val->str[val->length]= '\0';
+ ptr+= (val->length + 1);
+ break;
+ }
case FILE_OPTIONS_TIMESTAMP:
{
/* string have to be allocated already */
diff --git a/sql/parse_file.h b/sql/parse_file.h
index 87917dbd71b..28f4070b437 100644
--- a/sql/parse_file.h
+++ b/sql/parse_file.h
@@ -36,8 +36,10 @@ enum file_opt_type {
allocated with length 20 (19+1) */
FILE_OPTIONS_STRLIST, /**< list of escaped strings
(List<LEX_STRING>) */
- FILE_OPTIONS_ULLLIST /**< list of ulonglong values
+ FILE_OPTIONS_ULLLIST, /**< list of ulonglong values
(List<ulonglong>) */
+
+ FILE_OPTIONS_FIXSTRING /**< fixed length String (LEX_STRING) */
};
struct File_option
diff --git a/sql/sql_view.cc b/sql/sql_view.cc
index 9a9309a133b..ee169de4c93 100644
--- a/sql/sql_view.cc
+++ b/sql/sql_view.cc
@@ -782,6 +782,16 @@ static File_option view_parameters[]=
FILE_OPTIONS_STRING}
};
+
+static File_option view_md5_parameters[]=
+{
+
+ {{ C_STRING_WITH_LEN("md5")}, 0, FILE_OPTIONS_FIXSTRING},
+ {{NullS, 0}, 0, FILE_OPTIONS_STRING}
+};
+
+
+
static LEX_STRING view_file_type[]= {{(char*) STRING_WITH_LEN("VIEW") }};
@@ -1125,7 +1135,38 @@ static int mysql_register_view(THD *thd, TABLE_LIST *view,
DBUG_RETURN(error);
}
+#define MD5_LEN 32
+/**
+ Check is TABLE_LEST and SHARE match
+ @param[in] view TABLE_LIST of the view
+ @param[in] share Share object of view
+
+ @return false on error or misspatch
+*/
+bool mariadb_view_version_check(TABLE_LIST *view, TABLE_SHARE *share)
+{
+ LEX_STRING md5;
+ char md5_buffer[MD5_LEN + 1];
+ md5.str= md5_buffer;
+ md5.length= MD5_LEN;
+
+ /*
+ Check that both were views (view->is_view() could not be checked
+ because it is not opened).
+ */
+ if (!share->is_view || view->md5.length != MD5_LEN)
+ return FALSE;
+
+ DBUG_ASSERT(share->view_def != NULL);
+ if (share->view_def->parse((uchar*)&md5, NULL,
+ view_md5_parameters,
+ 1,
+ &file_parser_dummy_hook))
+ return FALSE;
+ DBUG_ASSERT(md5.length == MD5_LEN);
+ return (strncmp(md5.str, view->md5.str, MD5_LEN) == 0);
+}
/**
read VIEW .frm and create structures
diff --git a/sql/sql_view.h b/sql/sql_view.h
index ce83dc656ad..1685169420d 100644
--- a/sql/sql_view.h
+++ b/sql/sql_view.h
@@ -37,6 +37,7 @@ bool mysql_create_view(THD *thd, TABLE_LIST *view,
bool mysql_make_view(THD *thd, TABLE_SHARE *share, TABLE_LIST *table,
bool open_view_no_parse);
+bool mariadb_view_version_check(TABLE_LIST *view, TABLE_SHARE *share);
bool mysql_drop_view(THD *thd, TABLE_LIST *view, enum_drop_mode drop_mode);
diff --git a/sql/table.cc b/sql/table.cc
index e1edcc0b407..a6fbce9f3dd 100644
--- a/sql/table.cc
+++ b/sql/table.cc
@@ -7495,6 +7495,32 @@ void TABLE_LIST::set_lock_type(THD *thd, enum thr_lock_type lock)
}
}
+
+bool TABLE_LIST::is_table_ref_id_equal(TABLE_SHARE *s)
+{
+ enum enum_table_ref_type tp= s->get_table_ref_type();
+ if (m_table_ref_type == tp)
+ {
+ bool res= m_table_ref_version == s->get_table_ref_version();
+
+ /*
+ If definition is different object with view we can check MD5 in frm
+ to check if the same view got into table definition cache again.
+ */
+ if (!res &&
+ tp == TABLE_REF_VIEW &&
+ mariadb_view_version_check(this, s))
+ {
+ // to avoid relatively expensive parsing of frm next time
+ set_table_ref_id(s);
+ return TRUE;
+ }
+ return res;
+ }
+ return FALSE;
+}
+
+
uint TABLE_SHARE::actual_n_key_parts(THD *thd)
{
return use_ext_keys &&
diff --git a/sql/table.h b/sql/table.h
index a7913844e9d..9e1a061e606 100644
--- a/sql/table.h
+++ b/sql/table.h
@@ -2271,13 +2271,7 @@ struct TABLE_LIST
@sa check_and_update_table_version()
*/
- inline
- bool is_table_ref_id_equal(TABLE_SHARE *s) const
- {
- return (m_table_ref_type == s->get_table_ref_type() &&
- m_table_ref_version == s->get_table_ref_version());
- }
-
+ bool is_table_ref_id_equal(TABLE_SHARE *s);
/**
Record the value of metadata version of the corresponding
table definition cache element in this parse tree node.
1
0

13 Nov '18
revision-id: 1368a63589d0b4900f7d7efb57444c4ea34e6c26 (mariadb-10.1.37-8-g1368a63589d)
parent(s): 59c82dde09984d10f16417c9c82cd759f81d770c
author: Oleksandr Byelkin
committer: Oleksandr Byelkin
timestamp: 2018-11-13 09:12:55 +0100
message:
Better declaration of the buffer size
---
sql/table.h | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/sql/table.h b/sql/table.h
index ca32234579f..a7913844e9d 100644
--- a/sql/table.h
+++ b/sql/table.h
@@ -32,6 +32,9 @@
#include "filesort_utils.h"
#include "parse_file.h"
+/* buffer for timestamp (19+1) */
+#define VIEW_TIME_STAMP_BUFFER_SIZE (PARSE_FILE_TIMESTAMPLENGTH + 1)
+
/* Structs that defines the TABLE */
class Item; /* Needed by ORDER */
@@ -2079,7 +2082,7 @@ struct TABLE_LIST
/* FRMTYPE_ERROR if any type is acceptable */
enum frm_type_enum required_type;
handlerton *db_type; /* table_type for handler */
- char timestamp_buffer[20]; /* buffer for timestamp (19+1) */
+ char timestamp_buffer[VIEW_TIME_STAMP_BUFFER_SIZE];
/*
This TABLE_LIST object is just placeholder for prelocking, it will be
used for implicit LOCK TABLES only and won't be used in real statement.
1
0

[Commits] a24dda9: MDEV-14576 Include full name of object in message about incorrect value for column.
by holyfoot@askmonty.org 12 Nov '18
by holyfoot@askmonty.org 12 Nov '18
12 Nov '18
revision-id: a24dda9abbffa6dfd28f28dd1e917c570a5ef0cf (mariadb-10.2.18-81-ga24dda9)
parent(s): 667d1786a96a40ee5074c9f1b493c7cf05a85cca
committer: Alexey Botchkov
timestamp: 2018-11-13 00:27:31 +0400
message:
MDEV-14576 Include full name of object in message about incorrect value for column.
Two test result changes.
---
mysql-test/r/create.result | 6 +++---
mysql-test/r/myisam_icp.result | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/mysql-test/r/create.result b/mysql-test/r/create.result
index 2159127..2ff4bac 100644
--- a/mysql-test/r/create.result
+++ b/mysql-test/r/create.result
@@ -1225,7 +1225,7 @@ INSERT INTO t3 VALUES (0);
SET sql_mode = TRADITIONAL;
ALTER TABLE t3 ADD INDEX(c1);
-ERROR 22007: Incorrect datetime value: '0000-00-00 00:00:00' for column 'c1' at row 1
+ERROR 22007: Incorrect datetime value: '0000-00-00 00:00:00' for column `test`.`t3`.`c1` at row 1
# -- Cleanup.
SET sql_mode = '';
@@ -1783,12 +1783,12 @@ NULL 0000-00-00 0000-00-00
drop table t1;
set @@session.sql_mode='STRICT_ALL_TABLES';
create table if not exists t1 (a int, b date, c date) select 1 as b, 2 as c;
-ERROR 22007: Incorrect date value: '1' for column 'b' at row 1
+ERROR 22007: Incorrect date value: '1' for column `test`.`t1`.`b` at row 1
select * from t1;
ERROR 42S02: Table 'test.t1' doesn't exist
create table if not exists t1 (a int, b date, c date)
replace select 1 as b, 2 as c;
-ERROR 22007: Incorrect date value: '1' for column 'b' at row 1
+ERROR 22007: Incorrect date value: '1' for column `test`.`t1`.`b` at row 1
select * from t1;
ERROR 42S02: Table 'test.t1' doesn't exist
create table if not exists t1 (a int, b date, c date)
diff --git a/mysql-test/r/myisam_icp.result b/mysql-test/r/myisam_icp.result
index 6a70521..2048205 100644
--- a/mysql-test/r/myisam_icp.result
+++ b/mysql-test/r/myisam_icp.result
@@ -849,7 +849,7 @@ DROP TABLE t1;
create table t1 (a int,b char(5),primary key (a), key (b(1)));
insert ignore into t1 values ('a','b');
Warnings:
-Warning 1366 Incorrect integer value: 'a' for column 'a' at row 1
+Warning 1366 Incorrect integer value: 'a' for column `test`.`t1`.`a` at row 1
select 1 from t1 where a and b >= 'aa';
1
drop table t1;
1
0

[Commits] 667d178: MDEV-14576 Include full name of object in message about incorrect value for column.
by holyfoot@askmonty.org 12 Nov '18
by holyfoot@askmonty.org 12 Nov '18
12 Nov '18
revision-id: 667d1786a96a40ee5074c9f1b493c7cf05a85cca (mariadb-10.2.18-80-g667d178)
parent(s): 59b87e75d04f0ed75256724c78f7fd7af2f96e9b
committer: Alexey Botchkov
timestamp: 2018-11-13 00:11:32 +0400
message:
MDEV-14576 Include full name of object in message about incorrect value for column.
The error message modified.
Then the TABLE_SHARE::error_table_name() implementation taken from 10.3,
to be used as a name of the table in this message.
---
sql/field.cc | 17 ++++++++++-------
sql/item.cc | 14 +++++++++++++-
sql/item.h | 1 +
sql/item_create.cc | 2 +-
sql/item_func.cc | 3 +++
sql/item_strfunc.cc | 6 +++---
sql/item_timefunc.cc | 8 ++++----
sql/share/errmsg-utf8.txt | 4 ++--
sql/sql_class.cc | 9 +++++++++
sql/sql_table.cc | 3 +++
sql/sql_time.cc | 34 +++++++++++++++++++---------------
sql/sql_time.h | 12 ++++++------
sql/table.h | 10 ++++++++++
13 files changed, 84 insertions(+), 39 deletions(-)
diff --git a/sql/field.cc b/sql/field.cc
index caa84dc..4cb6eb2 100644
--- a/sql/field.cc
+++ b/sql/field.cc
@@ -2079,7 +2079,7 @@ bool Field_num::get_date(MYSQL_TIME *ltime,ulonglong fuzzydate)
longlong nr= val_int();
bool neg= !(flags & UNSIGNED_FLAG) && nr < 0;
return int_to_datetime_with_warn(neg, neg ? -nr : nr, ltime, fuzzydate,
- field_name);
+ table->s, field_name);
}
@@ -3384,7 +3384,7 @@ bool Field_new_decimal::get_date(MYSQL_TIME *ltime, ulonglong fuzzydate)
{
my_decimal value;
return decimal_to_datetime_with_warn(val_decimal(&value),
- ltime, fuzzydate, field_name);
+ ltime, fuzzydate, table->s, field_name);
}
@@ -4855,7 +4855,7 @@ bool Field_real::get_date(MYSQL_TIME *ltime,ulonglong fuzzydate)
{
ASSERT_COLUMN_MARKED_FOR_READ;
double nr= val_real();
- return double_to_datetime_with_warn(nr, ltime, fuzzydate, field_name);
+ return double_to_datetime_with_warn(nr, ltime, fuzzydate, table->s, field_name);
}
@@ -6338,7 +6338,7 @@ bool Field_year::get_date(MYSQL_TIME *ltime,ulonglong fuzzydate)
if (tmp || field_length != 4)
tmp+= 1900;
return int_to_datetime_with_warn(false, tmp * 10000,
- ltime, fuzzydate, field_name);
+ ltime, fuzzydate, table->s, field_name);
}
@@ -8623,7 +8623,7 @@ int Field_geom::store(const char *from, uint length, CHARSET_INFO *cs)
my_error(ER_TRUNCATED_WRONG_VALUE_FOR_FIELD, MYF(0),
Geometry::ci_collection[geom_type]->m_name.str,
Geometry::ci_collection[wkb_type]->m_name.str,
- field_name,
+ table->s->db.str, table->s->error_table_name(), field_name,
(ulong) table->in_use->get_stmt_da()->
current_row_for_warning());
goto err_exit;
@@ -10787,7 +10787,8 @@ void Field::set_datetime_warning(Sql_condition::enum_warning_level level,
{
THD *thd= get_thd();
if (thd->really_abort_on_warning() && level >= Sql_condition::WARN_LEVEL_WARN)
- make_truncated_value_warning(thd, level, str, ts_type, field_name);
+ make_truncated_value_warning(thd, level, str, ts_type,
+ table->s, field_name);
else
set_warning(level, code, cuted_increment);
}
@@ -10800,7 +10801,9 @@ void Field::set_warning_truncated_wrong_value(const char *type_arg,
push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN,
ER_TRUNCATED_WRONG_VALUE_FOR_FIELD,
ER_THD(thd, ER_TRUNCATED_WRONG_VALUE_FOR_FIELD),
- type_arg, value, field_name,
+ type_arg, value,
+ table->s->db.str, table->s->error_table_name(),
+ field_name,
static_cast<ulong>(thd->get_stmt_da()->
current_row_for_warning()));
}
diff --git a/sql/item.cc b/sql/item.cc
index 9ac1ed3..ad7806f 100644
--- a/sql/item.cc
+++ b/sql/item.cc
@@ -500,6 +500,15 @@ Item::Item(THD *thd):
}
+const TABLE_SHARE *Item::field_table_or_null()
+{
+ if (real_item()->type() != Item::FIELD_ITEM)
+ return NULL;
+
+ return ((Item_field *) this)->field->table->s;
+}
+
+
/**
Constructor used by Item_field, Item_ref & aggregate (sum)
functions.
@@ -1358,6 +1367,7 @@ bool Item::get_date(MYSQL_TIME *ltime,ulonglong fuzzydate)
}
if (null_value || int_to_datetime_with_warn(neg, neg ? -value : value,
ltime, fuzzydate,
+ field_table_or_null(),
field_name_or_null()))
goto err;
return null_value= false;
@@ -1366,6 +1376,7 @@ bool Item::get_date(MYSQL_TIME *ltime,ulonglong fuzzydate)
{
double value= val_real();
if (null_value || double_to_datetime_with_warn(value, ltime, fuzzydate,
+ field_table_or_null(),
field_name_or_null()))
goto err;
return null_value= false;
@@ -1375,6 +1386,7 @@ bool Item::get_date(MYSQL_TIME *ltime,ulonglong fuzzydate)
my_decimal value, *res;
if (!(res= val_decimal(&value)) ||
decimal_to_datetime_with_warn(res, ltime, fuzzydate,
+ field_table_or_null(),
field_name_or_null()))
goto err;
return null_value= false;
@@ -3630,7 +3642,7 @@ void Item_param::set_time(MYSQL_TIME *tm, timestamp_type time_type,
{
ErrConvTime str(&value.time);
make_truncated_value_warning(current_thd, Sql_condition::WARN_LEVEL_WARN,
- &str, time_type, 0);
+ &str, time_type, 0, 0);
set_zero_time(&value.time, time_type);
}
maybe_null= 0;
diff --git a/sql/item.h b/sql/item.h
index 3a64ea1..82a5524 100644
--- a/sql/item.h
+++ b/sql/item.h
@@ -1182,6 +1182,7 @@ class Item: public Value_source,
virtual const char *full_name() const { return name ? name : "???"; }
const char *field_name_or_null()
{ return real_item()->type() == Item::FIELD_ITEM ? name : NULL; }
+ const TABLE_SHARE *field_table_or_null();
/*
*result* family of methods is analog of *val* family (see above) but
diff --git a/sql/item_create.cc b/sql/item_create.cc
index b6430ec..3218d4d 100644
--- a/sql/item_create.cc
+++ b/sql/item_create.cc
@@ -7299,7 +7299,7 @@ Item *create_temporal_literal(THD *thd,
ErrConvString err(str, length, cs);
make_truncated_value_warning(thd,
Sql_condition::time_warn_level(status.warnings),
- &err, ltime.time_type, 0);
+ &err, ltime.time_type, 0, 0);
}
return item;
}
diff --git a/sql/item_func.cc b/sql/item_func.cc
index dcf3a6f..512c8fc 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -1023,6 +1023,7 @@ bool Item_func_hybrid_field_type::get_date(MYSQL_TIME *ltime,
my_decimal value, *res;
if (!(res= decimal_op_with_null_check(&value)) ||
decimal_to_datetime_with_warn(res, ltime, fuzzydate,
+ field_table_or_null(),
field_name_or_null()))
goto err;
break;
@@ -1033,6 +1034,7 @@ bool Item_func_hybrid_field_type::get_date(MYSQL_TIME *ltime,
bool neg= !unsigned_flag && value < 0;
if (null_value || int_to_datetime_with_warn(neg, neg ? -value : value,
ltime, fuzzydate,
+ field_table_or_null(),
field_name_or_null()))
goto err;
break;
@@ -1041,6 +1043,7 @@ bool Item_func_hybrid_field_type::get_date(MYSQL_TIME *ltime,
{
double value= real_op();
if (null_value || double_to_datetime_with_warn(value, ltime, fuzzydate,
+ field_table_or_null(),
field_name_or_null()))
goto err;
break;
diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc
index 57a1e7e..76f3a98 100644
--- a/sql/item_strfunc.cc
+++ b/sql/item_strfunc.cc
@@ -5097,7 +5097,7 @@ bool Item_dyncol_get::get_date(MYSQL_TIME *ltime, ulonglong fuzzy_date)
bool neg = llval < 0;
if (int_to_datetime_with_warn(neg, (ulonglong)(neg ? -llval :
llval),
- ltime, fuzzy_date, 0 /* TODO */))
+ ltime, fuzzy_date, 0, 0 /* TODO */))
goto null;
return 0;
}
@@ -5106,12 +5106,12 @@ bool Item_dyncol_get::get_date(MYSQL_TIME *ltime, ulonglong fuzzy_date)
/* fall through */
case DYN_COL_DOUBLE:
if (double_to_datetime_with_warn(val.x.double_value, ltime, fuzzy_date,
- 0 /* TODO */))
+ 0, 0 /* TODO */))
goto null;
return 0;
case DYN_COL_DECIMAL:
if (decimal_to_datetime_with_warn((my_decimal*)&val.x.decimal.value, ltime,
- fuzzy_date, 0 /* TODO */))
+ fuzzy_date, 0, 0 /* TODO */))
goto null;
return 0;
case DYN_COL_STRING:
diff --git a/sql/item_timefunc.cc b/sql/item_timefunc.cc
index dc5a089..82dbca5 100644
--- a/sql/item_timefunc.cc
+++ b/sql/item_timefunc.cc
@@ -430,7 +430,7 @@ static bool extract_date_time(DATE_TIME_FORMAT *format,
make_truncated_value_warning(current_thd,
Sql_condition::WARN_LEVEL_WARN,
val_begin, length,
- cached_timestamp_type, NullS);
+ cached_timestamp_type, 0, NullS);
break;
}
} while (++val != val_end);
@@ -1866,13 +1866,13 @@ bool Item_func_sec_to_time::get_date(MYSQL_TIME *ltime, ulonglong fuzzy_date)
{
ErrConvInteger err2(sec, unsigned_flag);
make_truncated_value_warning(current_thd, Sql_condition::WARN_LEVEL_WARN,
- &err2, MYSQL_TIMESTAMP_TIME, NullS);
+ &err2, MYSQL_TIMESTAMP_TIME, 0, NullS);
}
else
{
ErrConvString err2(err);
make_truncated_value_warning(current_thd, Sql_condition::WARN_LEVEL_WARN,
- &err2, MYSQL_TIMESTAMP_TIME, NullS);
+ &err2, MYSQL_TIMESTAMP_TIME, 0, NullS);
}
return 0;
}
@@ -2894,7 +2894,7 @@ bool Item_func_maketime::get_date(MYSQL_TIME *ltime, ulonglong fuzzy_date)
int len = (int)(ptr - buf) + sprintf(ptr, ":%02u:%02u", (uint)minute, (uint)second);
make_truncated_value_warning(current_thd, Sql_condition::WARN_LEVEL_WARN,
buf, len, MYSQL_TIMESTAMP_TIME,
- NullS);
+ 0, NullS);
}
return (null_value= 0);
diff --git a/sql/share/errmsg-utf8.txt b/sql/share/errmsg-utf8.txt
index 0bb1974..8e54fa1 100644
--- a/sql/share/errmsg-utf8.txt
+++ b/sql/share/errmsg-utf8.txt
@@ -5449,8 +5449,8 @@ ER_DIVISION_BY_ZERO 22012
ger "Division durch 0"
hindi "0 से विभाजन"
ER_TRUNCATED_WRONG_VALUE_FOR_FIELD 22007
- eng "Incorrect %-.32s value: '%-.128s' for column '%.192s' at row %lu"
- ger "Falscher %-.32s-Wert: '%-.128s' für Feld '%.192s' in Zeile %lu"
+ eng "Incorrect %-.32s value: '%-.128s' for column `%.192s`.`%.192s`.`%.192s` at row %lu"
+ ger "Falscher %-.32s-Wert: '%-.128s' für Feld '`%.192s`.`%.192s`.`%.192s` in Zeile %lu"
ER_ILLEGAL_VALUE_FOR_TYPE 22007
eng "Illegal %s '%-.192s' value found during parsing"
ger "Nicht zulässiger %s-Wert '%-.192s' beim Parsen gefunden"
diff --git a/sql/sql_class.cc b/sql/sql_class.cc
index 71d5b80..8f8607d 100644
--- a/sql/sql_class.cc
+++ b/sql/sql_class.cc
@@ -3009,6 +3009,10 @@ int select_export::send_data(List<Item> &items)
error_pos= copier.most_important_error_pos();
if (error_pos)
{
+ /*
+ TODO:
+ add new error message that will show user this printable_buff
+
char printable_buff[32];
convert_to_printable(printable_buff, sizeof(printable_buff),
error_pos, res->ptr() + res->length() - error_pos,
@@ -3018,6 +3022,11 @@ int select_export::send_data(List<Item> &items)
ER_THD(thd, ER_TRUNCATED_WRONG_VALUE_FOR_FIELD),
"string", printable_buff,
item->name, static_cast<long>(row_count));
+ */
+ push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN,
+ ER_TRUNCATED_WRONG_VALUE_FOR_FIELD,
+ ER_THD(thd, WARN_DATA_TRUNCATED),
+ item->name, static_cast<long>(row_count));
}
else if (copier.source_end_pos() < res->ptr() + res->length())
{
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index 02780e7..1d8ea36 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -9546,6 +9546,8 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name,
goto err_new_table_cleanup;
}
}
+ new_table->s->orig_table_name= table->s->table_name.str;
+
/*
Note: In case of MERGE table, we do not attach children. We do not
copy data for MERGE tables. Only the children have data.
@@ -9809,6 +9811,7 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name,
thd->abort_on_warning= true;
make_truncated_value_warning(thd, Sql_condition::WARN_LEVEL_WARN,
f_val, strlength(f_val), t_type,
+ new_table->s,
alter_ctx.datetime_field->field_name);
thd->abort_on_warning= save_abort_on_warning;
}
diff --git a/sql/sql_time.cc b/sql/sql_time.cc
index cdb9f4e..aaa6dab 100644
--- a/sql/sql_time.cc
+++ b/sql/sql_time.cc
@@ -223,7 +223,7 @@ check_date_with_warn(const MYSQL_TIME *ltime, ulonglong fuzzy_date,
{
ErrConvTime str(ltime);
make_truncated_value_warning(current_thd, Sql_condition::WARN_LEVEL_WARN,
- &str, ts_type, 0);
+ &str, ts_type, 0, 0);
return true;
}
return false;
@@ -240,7 +240,7 @@ adjust_time_range_with_warn(MYSQL_TIME *ltime, uint dec)
return true;
if (warnings)
make_truncated_value_warning(current_thd, Sql_condition::WARN_LEVEL_WARN,
- &str, MYSQL_TIMESTAMP_TIME, NullS);
+ &str, MYSQL_TIMESTAMP_TIME, 0, NullS);
return false;
}
@@ -329,7 +329,7 @@ str_to_datetime_with_warn(CHARSET_INFO *cs,
ret_val ? Sql_condition::WARN_LEVEL_WARN :
Sql_condition::time_warn_level(status.warnings),
str, length, flags & TIME_TIME_ONLY ?
- MYSQL_TIMESTAMP_TIME : l_time->time_type, NullS);
+ MYSQL_TIMESTAMP_TIME : l_time->time_type, 0, NullS);
DBUG_EXECUTE_IF("str_to_datetime_warn",
push_warning(thd, Sql_condition::WARN_LEVEL_NOTE,
ER_YES, str););
@@ -353,7 +353,7 @@ str_to_datetime_with_warn(CHARSET_INFO *cs,
static bool number_to_time_with_warn(bool neg, ulonglong nr, ulong sec_part,
MYSQL_TIME *ltime, ulonglong fuzzydate,
const ErrConv *str,
- const char *field_name)
+ const TABLE_SHARE *s, const char *field_name)
{
int was_cut;
longlong res;
@@ -387,14 +387,15 @@ static bool number_to_time_with_warn(bool neg, ulonglong nr, ulong sec_part,
Sql_condition::WARN_LEVEL_WARN, str,
res < 0 ? MYSQL_TIMESTAMP_ERROR
: mysql_type_to_time_type(f_type),
- field_name);
+ s, field_name);
}
return res < 0;
}
bool double_to_datetime_with_warn(double value, MYSQL_TIME *ltime,
- ulonglong fuzzydate, const char *field_name)
+ ulonglong fuzzydate,
+ const TABLE_SHARE *s, const char *field_name)
{
const ErrConvDouble str(value);
bool neg= value < 0;
@@ -408,28 +409,30 @@ bool double_to_datetime_with_warn(double value, MYSQL_TIME *ltime,
longlong nr= static_cast<ulonglong>(floor(value));
uint sec_part= static_cast<ulong>((value - floor(value))*TIME_SECOND_PART_FACTOR);
return number_to_time_with_warn(neg, nr, sec_part, ltime, fuzzydate, &str,
- field_name);
+ s, field_name);
}
bool decimal_to_datetime_with_warn(const my_decimal *value, MYSQL_TIME *ltime,
- ulonglong fuzzydate, const char *field_name)
+ ulonglong fuzzydate,
+ const TABLE_SHARE *s, const char *field_name)
{
const ErrConvDecimal str(value);
ulonglong nr;
ulong sec_part;
bool neg= my_decimal2seconds(value, &nr, &sec_part);
return number_to_time_with_warn(neg, nr, sec_part, ltime, fuzzydate, &str,
- field_name);
+ s, field_name);
}
bool int_to_datetime_with_warn(bool neg, ulonglong value, MYSQL_TIME *ltime,
- ulonglong fuzzydate, const char *field_name)
+ ulonglong fuzzydate,
+ const TABLE_SHARE *s, const char *field_name)
{
const ErrConvInteger str(neg ? - (longlong) value : (longlong) value, !neg);
return number_to_time_with_warn(neg, value, 0, ltime,
- fuzzydate, &str, field_name);
+ fuzzydate, &str, s, field_name);
}
@@ -856,7 +859,7 @@ void make_truncated_value_warning(THD *thd,
Sql_condition::enum_warning_level level,
const ErrConv *sval,
timestamp_type time_type,
- const char *field_name)
+ const TABLE_SHARE *s, const char *field_name)
{
char warn_buff[MYSQL_ERRMSG_SIZE];
const char *type_str;
@@ -877,7 +880,8 @@ void make_truncated_value_warning(THD *thd,
if (field_name)
cs->cset->snprintf(cs, warn_buff, sizeof(warn_buff),
ER_THD(thd, ER_TRUNCATED_WRONG_VALUE_FOR_FIELD),
- type_str, sval->ptr(), field_name,
+ type_str, sval->ptr(),
+ s->db.str, s->error_table_name(), field_name,
(ulong) thd->get_stmt_da()->current_row_for_warning());
else
{
@@ -1205,7 +1209,7 @@ make_date_with_warn(MYSQL_TIME *ltime, ulonglong fuzzy_date,
/* e.g. negative time */
ErrConvTime str(ltime);
make_truncated_value_warning(current_thd, Sql_condition::WARN_LEVEL_WARN,
- &str, ts_type, 0);
+ &str, ts_type, 0, 0);
return true;
}
if ((ltime->time_type= ts_type) == MYSQL_TIMESTAMP_DATE)
@@ -1369,7 +1373,7 @@ time_to_datetime_with_warn(THD *thd,
{
ErrConvTime str(from);
make_truncated_value_warning(thd, Sql_condition::WARN_LEVEL_WARN,
- &str, MYSQL_TIMESTAMP_DATETIME, 0);
+ &str, MYSQL_TIMESTAMP_DATETIME, 0, 0);
return true;
}
return false;
diff --git a/sql/sql_time.h b/sql/sql_time.h
index d560edc..260e6e3 100644
--- a/sql/sql_time.h
+++ b/sql/sql_time.h
@@ -44,13 +44,13 @@ bool str_to_datetime_with_warn(CHARSET_INFO *cs, const char *str,
ulonglong flags);
bool double_to_datetime_with_warn(double value, MYSQL_TIME *ltime,
ulonglong fuzzydate,
- const char *name);
+ const TABLE_SHARE *s, const char *name);
bool decimal_to_datetime_with_warn(const my_decimal *value, MYSQL_TIME *ltime,
ulonglong fuzzydate,
- const char *name);
+ const TABLE_SHARE *s, const char *name);
bool int_to_datetime_with_warn(bool neg, ulonglong value, MYSQL_TIME *ltime,
ulonglong fuzzydate,
- const char *name);
+ const TABLE_SHARE *s, const char *name);
bool time_to_datetime(THD *thd, const MYSQL_TIME *tm, MYSQL_TIME *dt);
bool time_to_datetime_with_warn(THD *thd,
@@ -120,15 +120,15 @@ void make_truncated_value_warning(THD *thd,
Sql_condition::enum_warning_level level,
const ErrConv *str_val,
timestamp_type time_type,
- const char *field_name);
+ const TABLE_SHARE *s, const char *field_name);
static inline void make_truncated_value_warning(THD *thd,
Sql_condition::enum_warning_level level, const char *str_val,
uint str_length, timestamp_type time_type,
- const char *field_name)
+ const TABLE_SHARE *s, const char *field_name)
{
const ErrConvString str(str_val, str_length, &my_charset_bin);
- make_truncated_value_warning(thd, level, &str, time_type, field_name);
+ make_truncated_value_warning(thd, level, &str, time_type, s, field_name);
}
extern DATE_TIME_FORMAT *date_time_format_make(timestamp_type format_type,
diff --git a/sql/table.h b/sql/table.h
index 4cd5c3b..b8bd0c8 100644
--- a/sql/table.h
+++ b/sql/table.h
@@ -625,6 +625,16 @@ struct TABLE_SHARE
LEX_STRING normalized_path; /* unpack_filename(path) */
LEX_STRING connect_string;
+ const char* orig_table_name; /* Original table name for this tmp table */
+ const char* error_table_name() const /* Get table name for error messages */
+ {
+ return tmp_table ? (
+ orig_table_name ?
+ orig_table_name :
+ "(temporary)") :
+ table_name.str;
+ }
+
/*
Set of keys in use, implemented as a Bitmap.
Excludes keys disabled by ALTER TABLE ... DISABLE KEYS.
1
0

[Commits] 9c46adbb7e0: MDEV-17229: Encryption threads ignore innodb_default_encryption_key_id
by jan 12 Nov '18
by jan 12 Nov '18
12 Nov '18
revision-id: 9c46adbb7e093029c56dddd5dbbef407db4e8160 (mariadb-10.1.37-7-g9c46adbb7e0)
parent(s): ef40018535b71f0a4387fa6c1cc22e9991dfc0db
author: Jan Lindström
committer: Jan Lindström
timestamp: 2018-11-12 12:05:42 +0200
message:
MDEV-17229: Encryption threads ignore innodb_default_encryption_key_id
Background
MariaDB identifies encryption keys using a positive 32-bit integer.
This makes it easier to identify the key you want to use for particular
tables, through the ENCRYPTION_KEY_ID table option. You can set the default
key using the innodb_default_encryption_key_id system variable. If no
value is set system default (1) is used.
Syntax
SET [GLOBAL|SESSION] innodb-default-encryption-key-id=<key_id>;
Used default encryption key_id can't be set to value that does not exists
on encryption plugin. e.g.
SET GLOBAL innodb_default_encryption_key_id = 999;
ERROR 42000: Variable 'innodb_default_encryption_key_id' can't be set to the value of '999'
SHOW WARNINGS;
Level Code Message
Warning 1210 InnoDB: innodb_default_encryption_key_id=999 not available in encryption plugin
Error 1231 Variable 'innodb_default_encryption_key_id' can't be set to the value of '999'
If variable is set on configuration file (my.cnf or similar) server will refuse to start if used
key_id is not found from encryption plugin. This can be seen on server error log e.g.
[ERROR] InnoDB: cannot use encryption as default encryption key_id 999 not found from encryption plugin.
[ERROR] Plugin 'InnoDB' init function returned error.
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
If user creates a table that is not encrypted e.g:
create table t1(a int) encrypted=no;
and default encryption key_id is not same as system default (1), a warning
is issued and system default is used.
SET GLOBAL innodb-default-encryption-key-id=10;
CREATE TABLE t2 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB ENCRYPTED=NO;
Warnings:
Warning 140 InnoDB: Ignored ENCRYPTION_KEY_ID 10 when encryption is disabled
Currently set default encryption key_id does not effect tables that
are created using specific encryption key_id e.g.
create table t1(a int) encrypted=yes encryption_key_id=4;
Instead specified key_id (in above case 4) is used. Tables using encryption but no
specific encryption key_id e.g.
create table t1(a int) encrypted=yes;
will use currently set default encryption key_id for that session or
if no key_id defined the set global encryption key_id or system default.
Tables using default table options e.g
create table t1(a int);
will use currently set global encryption key_id when encryption threads
does key rotation from unencrypted to encrypted state.
Changes
innodb-checksum-algorithm
innodb-compressed-blob
innodb-encryption-alter
innodb-redo-badkey
innodb-redo-nokeys
These test require small changes as now we do not allow default key_id
that is not found from encryption plugin and tables using no encryption
produce warning when nondefault encryption key_id is used.
fil0fil.cc::fil_crypt_start_encrypting_space()
Use global default encryption key_id when creating encryption meta data.
ha_innodb.cc::innodb_default_encryption_key_id_validate()
New function to validate that used key_id is found from encryption plugin.
ha_innodb.cc::thd_default_encryption_key_id()
New accessessor function for default encryption key_id.
ha_innodb.cc::innobase_init()
Do not allow server startup using encryption key_id that is not found
from encryption plugin.
---
.../encryption/r/innodb-checksum-algorithm.result | 2 +-
.../encryption/r/innodb-compressed-blob.result | 2 +
.../encryption/r/innodb-encryption-alter.result | 31 +++++-----
.../r/innodb_encryption_default_key.result | 39 +++++++++++++
.../encryption/t/innodb-checksum-algorithm.test | 6 +-
.../encryption/t/innodb-encryption-alter.test | 9 +--
.../suite/encryption/t/innodb-redo-badkey.opt | 2 +-
.../suite/encryption/t/innodb-redo-badkey.test | 2 +-
.../suite/encryption/t/innodb-redo-nokeys.opt | 2 +-
.../suite/encryption/t/innodb-redo-nokeys.test | 2 +-
.../encryption/t/innodb_encryption_default_key.opt | 2 +
.../t/innodb_encryption_default_key.test | 66 +++++++++++++++++++++
storage/innobase/fil/fil0crypt.cc | 5 +-
storage/innobase/handler/ha_innodb.cc | 67 +++++++++++++++++++++-
storage/innobase/include/ha_prototypes.h | 5 ++
storage/xtradb/fil/fil0crypt.cc | 5 +-
storage/xtradb/handler/ha_innodb.cc | 67 +++++++++++++++++++++-
storage/xtradb/include/ha_prototypes.h | 5 ++
18 files changed, 285 insertions(+), 34 deletions(-)
diff --git a/mysql-test/suite/encryption/r/innodb-checksum-algorithm.result b/mysql-test/suite/encryption/r/innodb-checksum-algorithm.result
index a853f3869a9..b3deac98e3c 100644
--- a/mysql-test/suite/encryption/r/innodb-checksum-algorithm.result
+++ b/mysql-test/suite/encryption/r/innodb-checksum-algorithm.result
@@ -10,7 +10,7 @@ SET GLOBAL innodb_encrypt_tables = ON;
SET GLOBAL innodb_encryption_threads = 4;
call mtr.add_suppression("InnoDB: innodb_checksum_algorithm is set to \"strict_(crc32|none|innodb)\" but the page \\[page id: space=[0-9]+, page number=[0-9]+\\] contains a valid checksum \"(innodb|none|crc32)\"");
SET GLOBAL innodb_checksum_algorithm = innodb;
-SET GLOBAL innodb_default_encryption_key_id=4;
+SET GLOBAL innodb_default_encryption_key_id=1;
SET GLOBAL innodb_checksum_algorithm=crc32;
create table tce_crc32(a serial, b blob, index(b(10))) engine=innodb
ROW_FORMAT=COMPRESSED encrypted=yes;
diff --git a/mysql-test/suite/encryption/r/innodb-compressed-blob.result b/mysql-test/suite/encryption/r/innodb-compressed-blob.result
index ce73b80820f..a6f4856fdbb 100644
--- a/mysql-test/suite/encryption/r/innodb-compressed-blob.result
+++ b/mysql-test/suite/encryption/r/innodb-compressed-blob.result
@@ -7,6 +7,8 @@ set GLOBAL innodb_default_encryption_key_id=4;
create table t1(a int not null primary key, b blob, index(b(10))) engine=innodb row_format=compressed;
create table t2(a int not null primary key, b blob, index(b(10))) engine=innodb row_format=compressed encrypted=yes;
create table t3(a int not null primary key, b blob, index(b(10))) engine=innodb row_format=compressed encrypted=no;
+Warnings:
+Warning 140 InnoDB: Ignored ENCRYPTION_KEY_ID 4 when encryption is disabled
insert into t1 values (1, repeat('secret',6000));
insert into t2 values (1, repeat('secret',6000));
insert into t3 values (1, repeat('secret',6000));
diff --git a/mysql-test/suite/encryption/r/innodb-encryption-alter.result b/mysql-test/suite/encryption/r/innodb-encryption-alter.result
index 5245d1da7d0..381f14c9e9e 100644
--- a/mysql-test/suite/encryption/r/innodb-encryption-alter.result
+++ b/mysql-test/suite/encryption/r/innodb-encryption-alter.result
@@ -7,20 +7,25 @@ Warnings:
Warning 140 InnoDB: Ignored ENCRYPTION_KEY_ID 4 when encryption is disabled
DROP TABLE t1;
set innodb_default_encryption_key_id = 99;
+ERROR 42000: Variable 'innodb_default_encryption_key_id' can't be set to the value of '99'
CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB;
-ERROR HY000: Can't create table `test`.`t1` (errno: 140 "Wrong create options")
-SHOW WARNINGS;
-Level Code Message
-Warning 140 InnoDB: ENCRYPTION_KEY_ID 99 not available
-Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options")
-Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `pk` int(11) NOT NULL AUTO_INCREMENT,
+ `c` varchar(256) DEFAULT NULL,
+ PRIMARY KEY (`pk`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+DROP TABLE t1;
CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB ENCRYPTED=YES;
-ERROR HY000: Can't create table `test`.`t1` (errno: 140 "Wrong create options")
-SHOW WARNINGS;
-Level Code Message
-Warning 140 InnoDB: ENCRYPTION_KEY_ID 99 not available
-Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options")
-Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `pk` int(11) NOT NULL AUTO_INCREMENT,
+ `c` varchar(256) DEFAULT NULL,
+ PRIMARY KEY (`pk`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 `ENCRYPTED`=YES
+DROP TABLE t1;
set innodb_default_encryption_key_id = 4;
CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB ENCRYPTED=YES;
SHOW CREATE TABLE t1;
@@ -40,8 +45,6 @@ t1 CREATE TABLE `t1` (
PRIMARY KEY (`pk`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 `ENCRYPTION_KEY_ID`=4
CREATE TABLE t2 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB ENCRYPTED=NO ENCRYPTION_KEY_ID=1;
-Warnings:
-Warning 140 InnoDB: Ignored ENCRYPTION_KEY_ID 1 when encryption is disabled
ALTER TABLE t1 ENCRYPTION_KEY_ID=99;
ERROR HY000: Table storage engine 'InnoDB' does not support the create option 'ENCRYPTION_KEY_ID'
SHOW WARNINGS;
diff --git a/mysql-test/suite/encryption/r/innodb_encryption_default_key.result b/mysql-test/suite/encryption/r/innodb_encryption_default_key.result
new file mode 100644
index 00000000000..13754df0d8b
--- /dev/null
+++ b/mysql-test/suite/encryption/r/innodb_encryption_default_key.result
@@ -0,0 +1,39 @@
+call mtr.add_suppression("InnoDB: cannot use encryption as default encryption key_id 999 not found from encryption plugin.");
+call mtr.add_suppression("Plugin 'InnoDB' init function returned error.");
+call mtr.add_suppression("Plugin 'InnoDB' registration as a STORAGE ENGINE failed.");
+SET GLOBAL innodb_file_format = `Barracuda`;
+SET GLOBAL innodb_file_per_table = ON;
+create table t1 (a int not null primary key) engine=InnoDB;
+create table t2 (a int not null primary key) encrypted=yes engine=InnoDB;
+SET GLOBAL innodb_default_encryption_key_id = 999;
+ERROR 42000: Variable 'innodb_default_encryption_key_id' can't be set to the value of '999'
+SHOW WARNINGS;
+Level Code Message
+Warning 1210 InnoDB: innodb_default_encryption_key_id=999 not available in encryption plugin
+Error 1231 Variable 'innodb_default_encryption_key_id' can't be set to the value of '999'
+SET GLOBAL innodb_default_encryption_key_id = 4;
+SET GLOBAL innodb_encryption_threads = 4;
+SET GLOBAL innodb_encrypt_tables = ON;
+SET SESSION innodb_default_encryption_key_id = 2;
+create table t3 (a int not null primary key) engine=InnoDB;
+create table t4 (a int not null primary key) encrypted=yes engine=InnoDB;
+SET SESSION innodb_default_encryption_key_id = 10;
+create table t5 (a int not null primary key) engine=InnoDB;
+create table t6 (a int not null primary key) encrypted=yes engine=InnoDB;
+SELECT NAME,CURRENT_KEY_ID,MIN_KEY_VERSION FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0 ORDER BY NAME;
+NAME CURRENT_KEY_ID MIN_KEY_VERSION
+SELECT NAME,CURRENT_KEY_ID,MIN_KEY_VERSION FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION <> 0 ORDER BY NAME;
+NAME CURRENT_KEY_ID MIN_KEY_VERSION
+./ibdata1 4 1
+mysql/innodb_index_stats 4 1
+mysql/innodb_table_stats 4 1
+test/t1 4 1
+test/t2 1 1
+test/t3 2 1
+test/t4 2 1
+test/t5 10 1
+test/t6 10 1
+# Success!
+DROP TABLE t1, t2, t3, t4, t5, t6;
+# Restart mysqld --innodb_default_encryption_key_id=999
+# Restart mysqld --innodb_default_encryption_key_id=1
diff --git a/mysql-test/suite/encryption/t/innodb-checksum-algorithm.test b/mysql-test/suite/encryption/t/innodb-checksum-algorithm.test
index d0caed05006..21ff07b5837 100644
--- a/mysql-test/suite/encryption/t/innodb-checksum-algorithm.test
+++ b/mysql-test/suite/encryption/t/innodb-checksum-algorithm.test
@@ -16,7 +16,11 @@ SET GLOBAL innodb_encryption_threads = 4;
call mtr.add_suppression("InnoDB: innodb_checksum_algorithm is set to \"strict_(crc32|none|innodb)\" but the page \\[page id: space=[0-9]+, page number=[0-9]+\\] contains a valid checksum \"(innodb|none|crc32)\"");
SET GLOBAL innodb_checksum_algorithm = innodb;
-SET GLOBAL innodb_default_encryption_key_id=4;
+#
+# Need to use default encryption key_id as below creating tables
+# with encrypted=no where nondefault key_id is not allowed.
+#
+SET GLOBAL innodb_default_encryption_key_id=1;
let MYSQLD_DATADIR =`SELECT @@datadir`;
diff --git a/mysql-test/suite/encryption/t/innodb-encryption-alter.test b/mysql-test/suite/encryption/t/innodb-encryption-alter.test
index 9465226dd96..d79bdecfc1a 100644
--- a/mysql-test/suite/encryption/t/innodb-encryption-alter.test
+++ b/mysql-test/suite/encryption/t/innodb-encryption-alter.test
@@ -19,13 +19,14 @@ SET GLOBAL innodb_encryption_threads = 4;
CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB ENCRYPTED=NO ENCRYPTION_KEY_ID=4;
DROP TABLE t1;
+--error ER_WRONG_VALUE_FOR_VAR
set innodb_default_encryption_key_id = 99;
---error 1005
CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB;
-SHOW WARNINGS;
---error 1005
+SHOW CREATE TABLE t1;
+DROP TABLE t1;
CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB ENCRYPTED=YES;
-SHOW WARNINGS;
+SHOW CREATE TABLE t1;
+DROP TABLE t1;
set innodb_default_encryption_key_id = 4;
CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB ENCRYPTED=YES;
SHOW CREATE TABLE t1;
diff --git a/mysql-test/suite/encryption/t/innodb-redo-badkey.opt b/mysql-test/suite/encryption/t/innodb-redo-badkey.opt
index 343128e8803..2b07bbb4b73 100644
--- a/mysql-test/suite/encryption/t/innodb-redo-badkey.opt
+++ b/mysql-test/suite/encryption/t/innodb-redo-badkey.opt
@@ -1,5 +1,5 @@
--innodb-change-buffering=all
---innodb-encrypt-tables=on
+--innodb-encrypt-tables=off
--innodb-tablespaces-encryption
--innodb-encryption-threads=2
--innodb-default-encryption-key-id=4
diff --git a/mysql-test/suite/encryption/t/innodb-redo-badkey.test b/mysql-test/suite/encryption/t/innodb-redo-badkey.test
index 69de4f0f921..75e765ca941 100644
--- a/mysql-test/suite/encryption/t/innodb-redo-badkey.test
+++ b/mysql-test/suite/encryption/t/innodb-redo-badkey.test
@@ -16,7 +16,7 @@ call mtr.add_suppression("InnoDB: Plugin initialization aborted ");
call mtr.add_suppression("InnoDB: ############### CORRUPT LOG RECORD FOUND ##################");
--echo # Restart mysqld --file-key-management-filename=keys2.txt
--- let $restart_parameters=--file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys2.txt
+-- let $restart_parameters=--file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys2.txt --innodb-default-encryption-key-id=20 --innodb-encrypt-tables=ON
-- source include/restart_mysqld.inc
--echo # Wait max 10 min for key encryption threads to encrypt all spaces
diff --git a/mysql-test/suite/encryption/t/innodb-redo-nokeys.opt b/mysql-test/suite/encryption/t/innodb-redo-nokeys.opt
index 21afc19fc5d..b72e464c480 100644
--- a/mysql-test/suite/encryption/t/innodb-redo-nokeys.opt
+++ b/mysql-test/suite/encryption/t/innodb-redo-nokeys.opt
@@ -1,3 +1,3 @@
--innodb-change-buffering=none
--innodb-encrypt-tables=on
---innodb-default-encryption-key-id=20
+--innodb-default-encryption-key-id=1
diff --git a/mysql-test/suite/encryption/t/innodb-redo-nokeys.test b/mysql-test/suite/encryption/t/innodb-redo-nokeys.test
index 68d831fcd17..5882b9de5c5 100644
--- a/mysql-test/suite/encryption/t/innodb-redo-nokeys.test
+++ b/mysql-test/suite/encryption/t/innodb-redo-nokeys.test
@@ -12,7 +12,7 @@ call mtr.add_suppression("Plugin 'InnoDB' registration as a STORAGE ENGINE faile
call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\] in file '.*test.t[1234]\\.ibd' cannot be decrypted\\.");
--echo # Restart mysqld --file-key-management-filename=keys2.txt
--- let $restart_parameters=--file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys2.txt
+-- let $restart_parameters=--file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys2.txt --innodb-default-encryption-key-id=20
-- source include/restart_mysqld.inc
--disable_warnings
diff --git a/mysql-test/suite/encryption/t/innodb_encryption_default_key.opt b/mysql-test/suite/encryption/t/innodb_encryption_default_key.opt
new file mode 100644
index 00000000000..5a60c7ba21c
--- /dev/null
+++ b/mysql-test/suite/encryption/t/innodb_encryption_default_key.opt
@@ -0,0 +1,2 @@
+--innodb-tablespaces-encryption
+--innodb-encrypt-tables=OFF
diff --git a/mysql-test/suite/encryption/t/innodb_encryption_default_key.test b/mysql-test/suite/encryption/t/innodb_encryption_default_key.test
new file mode 100644
index 00000000000..61a9f973d20
--- /dev/null
+++ b/mysql-test/suite/encryption/t/innodb_encryption_default_key.test
@@ -0,0 +1,66 @@
+-- source include/have_innodb.inc
+-- source include/have_file_key_management_plugin.inc
+-- source include/not_embedded.inc
+
+call mtr.add_suppression("InnoDB: cannot use encryption as default encryption key_id 999 not found from encryption plugin.");
+call mtr.add_suppression("Plugin 'InnoDB' init function returned error.");
+call mtr.add_suppression("Plugin 'InnoDB' registration as a STORAGE ENGINE failed.");
+
+--disable_query_log
+let $innodb_file_format_orig = `SELECT @@innodb_file_format`;
+let $innodb_file_per_table_orig = `SELECT @@innodb_file_per_table`;
+--enable_query_log
+
+--disable_warnings
+SET GLOBAL innodb_file_format = `Barracuda`;
+SET GLOBAL innodb_file_per_table = ON;
+--enable_warnings
+
+create table t1 (a int not null primary key) engine=InnoDB;
+create table t2 (a int not null primary key) encrypted=yes engine=InnoDB;
+
+# Do not allow setting default key to key_id that is not found
+--error ER_WRONG_VALUE_FOR_VAR
+SET GLOBAL innodb_default_encryption_key_id = 999;
+SHOW WARNINGS;
+
+SET GLOBAL innodb_default_encryption_key_id = 4;
+SET GLOBAL innodb_encryption_threads = 4;
+SET GLOBAL innodb_encrypt_tables = ON;
+
+--connect (con11,localhost,root,,test)
+SET SESSION innodb_default_encryption_key_id = 2;
+create table t3 (a int not null primary key) engine=InnoDB;
+create table t4 (a int not null primary key) encrypted=yes engine=InnoDB;
+--disconnect con11
+
+--connect (con12,localhost,root,,test)
+SET SESSION innodb_default_encryption_key_id = 10;
+create table t5 (a int not null primary key) engine=InnoDB;
+create table t6 (a int not null primary key) encrypted=yes engine=InnoDB;
+--disconnect con12
+
+--connection default
+--let $tables_count= `select count(*) from information_schema.tables where engine = 'InnoDB'`
+--let $wait_condition=SELECT COUNT(*) = $tables_count + 1 FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION <> 0 AND ROTATING_OR_FLUSHING = 0;
+--source include/wait_condition.inc
+
+SELECT NAME,CURRENT_KEY_ID,MIN_KEY_VERSION FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0 ORDER BY NAME;
+SELECT NAME,CURRENT_KEY_ID,MIN_KEY_VERSION FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION <> 0 ORDER BY NAME;
+
+--echo # Success!
+
+DROP TABLE t1, t2, t3, t4, t5, t6;
+
+#
+# Try to restart server with key_id that is not found from encryption plugin
+#
+--echo # Restart mysqld --innodb_default_encryption_key_id=999
+-- let $restart_parameters=--innodb_default_encryption_key_id=999
+--error 1
+-- source include/restart_mysqld.inc
+
+--echo # Restart mysqld --innodb_default_encryption_key_id=1
+-- let $restart_parameters=--innodb_default_encryption_key_id=1
+--error 1
+-- source include/restart_mysqld.inc
diff --git a/storage/innobase/fil/fil0crypt.cc b/storage/innobase/fil/fil0crypt.cc
index 7859fe67d40..c618a520b40 100644
--- a/storage/innobase/fil/fil0crypt.cc
+++ b/storage/innobase/fil/fil0crypt.cc
@@ -1063,8 +1063,9 @@ fil_crypt_start_encrypting_space(
* risk of finding encrypted pages without having
* crypt data in page 0 */
- /* 1 - create crypt data */
- crypt_data = fil_space_create_crypt_data(FIL_ENCRYPTION_DEFAULT, FIL_DEFAULT_ENCRYPTION_KEY);
+ /* 1 - create crypt data using default encryption key_id */
+ crypt_data = fil_space_create_crypt_data(FIL_ENCRYPTION_DEFAULT,
+ thd_default_encryption_key_id());
if (crypt_data == NULL) {
mutex_exit(&fil_crypt_threads_mutex);
diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc
index b3a830e47c3..0d9beb452d9 100644
--- a/storage/innobase/handler/ha_innodb.cc
+++ b/storage/innobase/handler/ha_innodb.cc
@@ -685,11 +685,61 @@ static int mysql_tmpfile_path(const char *path, const char *prefix)
static void innodb_remember_check_sysvar_funcs();
mysql_var_check_func check_sysvar_enum;
+/** Validate passed-in "value" is a valid encryption key_id
+found from encryption plugin.
+This function is registered as a callback with MySQL.
+@param[in,out] thd thread handle
+@param[in] var pointer to system variable
+@param[out] save immediate result for validate
+@param[in] value incoming string
+@return 0 for valid key_id */
+static
+int
+innodb_default_encryption_key_id_validate(
+ THD* thd,
+ struct st_mysql_sys_var* var,
+ void* save,
+ struct st_mysql_value* value)
+{
+ long long key_id_buf;
+ uint key_id;
+
+ if (value->val_int(value, &key_id_buf)) {
+ /* The value is NULL. That is invalid. */
+ return(1);
+ }
+
+ *reinterpret_cast<uint*>(save) = key_id = static_cast<uint>(key_id_buf);
+
+ /* Default encryption key_id must be found from encryption
+ plugin keys. */
+ if (key_id != FIL_DEFAULT_ENCRYPTION_KEY
+ && !encryption_key_id_exists(key_id)) {
+ push_warning_printf(
+ thd, Sql_condition::WARN_LEVEL_WARN,
+ ER_WRONG_ARGUMENTS,
+ "InnoDB: innodb_default_encryption_key_id=%u not available in encryption plugin",
+ key_id);
+ return (1);
+ }
+
+ return(0);
+}
+
static MYSQL_THDVAR_UINT(default_encryption_key_id, PLUGIN_VAR_RQCMDARG,
"Default encryption key id used for table encryption.",
- NULL, NULL,
+ innodb_default_encryption_key_id_validate,
+ NULL,
FIL_DEFAULT_ENCRYPTION_KEY, 1, UINT_MAX32, 0);
+/** Get global default encryption key_id
+@return key_id */
+UNIV_INTERN
+uint thd_default_encryption_key_id(void)
+{
+ return(THDVAR(NULL, default_encryption_key_id));
+}
+
/**
Structure for CREATE TABLE options (table options).
It needs to be called ha_table_option_struct.
@@ -3428,6 +3478,7 @@ innobase_init(
char *default_path;
uint format_id;
ulong num_pll_degree;
+ uint key_id = FIL_DEFAULT_ENCRYPTION_KEY;
DBUG_ENTER("innobase_init");
handlerton *innobase_hton= (handlerton*) p;
@@ -3592,6 +3643,16 @@ innobase_init(
goto error;
}
+ key_id = THDVAR(NULL, default_encryption_key_id);
+ if (key_id != FIL_DEFAULT_ENCRYPTION_KEY
+ && !encryption_key_id_exists(key_id)) {
+ sql_print_error("InnoDB: cannot use encryption as "
+ " default encryption key_id %u"
+ " not found from encryption plugin.",
+ key_id);
+ goto error;
+ }
+
os_innodb_umask = (ulint) my_umask;
/* First calculate the default path for innodb_data_home_dir etc.,
@@ -11947,8 +12008,8 @@ ha_innobase::check_table_options(
}
/* Ignore nondefault key_id if encryption is set off */
- if (encrypt == FIL_ENCRYPTION_OFF &&
- options->encryption_key_id != THDVAR(thd, default_encryption_key_id)) {
+ if (encrypt == FIL_ENCRYPTION_OFF
+ && options->encryption_key_id != FIL_DEFAULT_ENCRYPTION_KEY) {
push_warning_printf(
thd, Sql_condition::WARN_LEVEL_WARN,
HA_WRONG_CREATE_OPTION,
diff --git a/storage/innobase/include/ha_prototypes.h b/storage/innobase/include/ha_prototypes.h
index be423c8bd01..06610dcc94b 100644
--- a/storage/innobase/include/ha_prototypes.h
+++ b/storage/innobase/include/ha_prototypes.h
@@ -348,6 +348,11 @@ thd_supports_xa(
THD* thd); /*!< in: thread handle, or NULL to query
the global innodb_supports_xa */
+/** Get global default encryption key_id
+@return key_id */
+UNIV_INTERN
+uint thd_default_encryption_key_id(void);
+
/** Get status of innodb_tmpdir.
@param[in] thd thread handle, or NULL to query
the global innodb_tmpdir.
diff --git a/storage/xtradb/fil/fil0crypt.cc b/storage/xtradb/fil/fil0crypt.cc
index 7859fe67d40..c618a520b40 100644
--- a/storage/xtradb/fil/fil0crypt.cc
+++ b/storage/xtradb/fil/fil0crypt.cc
@@ -1063,8 +1063,9 @@ fil_crypt_start_encrypting_space(
* risk of finding encrypted pages without having
* crypt data in page 0 */
- /* 1 - create crypt data */
- crypt_data = fil_space_create_crypt_data(FIL_ENCRYPTION_DEFAULT, FIL_DEFAULT_ENCRYPTION_KEY);
+ /* 1 - create crypt data using default encryption key_id */
+ crypt_data = fil_space_create_crypt_data(FIL_ENCRYPTION_DEFAULT,
+ thd_default_encryption_key_id());
if (crypt_data == NULL) {
mutex_exit(&fil_crypt_threads_mutex);
diff --git a/storage/xtradb/handler/ha_innodb.cc b/storage/xtradb/handler/ha_innodb.cc
index 05066512db9..704e3478195 100644
--- a/storage/xtradb/handler/ha_innodb.cc
+++ b/storage/xtradb/handler/ha_innodb.cc
@@ -686,11 +686,61 @@ ib_cb_t innodb_api_cb[] = {
static void innodb_remember_check_sysvar_funcs();
mysql_var_check_func check_sysvar_enum;
+/** Validate passed-in "value" is a valid encryption key_id
+found from encryption plugin.
+This function is registered as a callback with MySQL.
+@param[in,out] thd thread handle
+@param[in] var pointer to system variable
+@param[out] save immediate result for validate
+@param[in] value incoming string
+@return 0 for valid key_id */
+static
+int
+innodb_default_encryption_key_id_validate(
+ THD* thd,
+ struct st_mysql_sys_var* var,
+ void* save,
+ struct st_mysql_value* value)
+{
+ long long key_id_buf;
+ uint key_id;
+
+ if (value->val_int(value, &key_id_buf)) {
+ /* The value is NULL. That is invalid. */
+ return(1);
+ }
+
+ *reinterpret_cast<uint*>(save) = key_id = static_cast<uint>(key_id_buf);
+
+ /* Default encryption key_id must be found from encryption
+ plugin keys. */
+ if (key_id != FIL_DEFAULT_ENCRYPTION_KEY
+ && !encryption_key_id_exists(key_id)) {
+ push_warning_printf(
+ thd, Sql_condition::WARN_LEVEL_WARN,
+ ER_WRONG_ARGUMENTS,
+ "InnoDB: innodb_default_encryption_key_id=%u not available in encryption plugin",
+ key_id);
+ return (1);
+ }
+
+ return(0);
+}
+
static MYSQL_THDVAR_UINT(default_encryption_key_id, PLUGIN_VAR_RQCMDARG,
"Default encryption key id used for table encryption.",
- NULL, NULL,
+ innodb_default_encryption_key_id_validate,
+ NULL,
FIL_DEFAULT_ENCRYPTION_KEY, 1, UINT_MAX32, 0);
+/** Get global default encryption key_id
+@return key_id */
+UNIV_INTERN
+uint thd_default_encryption_key_id(void)
+{
+ return(THDVAR(NULL, default_encryption_key_id));
+}
+
/**
Structure for CREATE TABLE options (table options).
It needs to be called ha_table_option_struct.
@@ -3839,6 +3889,7 @@ innobase_init(
char *default_path;
uint format_id;
ulong num_pll_degree;
+ uint key_id = FIL_DEFAULT_ENCRYPTION_KEY;
DBUG_ENTER("innobase_init");
handlerton *innobase_hton= (handlerton*) p;
@@ -4042,6 +4093,16 @@ innobase_init(
goto error;
}
+ key_id = THDVAR(NULL, default_encryption_key_id);
+ if (key_id != FIL_DEFAULT_ENCRYPTION_KEY
+ && !encryption_key_id_exists(key_id)) {
+ sql_print_error("InnoDB: cannot use encryption as "
+ " default encryption key_id %u"
+ " not found from encryption plugin.",
+ key_id);
+ goto error;
+ }
+
os_innodb_umask = (ulint) my_umask;
/* First calculate the default path for innodb_data_home_dir etc.,
@@ -12514,8 +12575,8 @@ ha_innobase::check_table_options(
}
/* Ignore nondefault key_id if encryption is set off */
- if (encrypt == FIL_ENCRYPTION_OFF &&
- options->encryption_key_id != THDVAR(thd, default_encryption_key_id)) {
+ if (encrypt == FIL_ENCRYPTION_OFF
+ && options->encryption_key_id != FIL_DEFAULT_ENCRYPTION_KEY) {
push_warning_printf(
thd, Sql_condition::WARN_LEVEL_WARN,
HA_WRONG_CREATE_OPTION,
diff --git a/storage/xtradb/include/ha_prototypes.h b/storage/xtradb/include/ha_prototypes.h
index 3f3c4f28ced..ef91484817a 100644
--- a/storage/xtradb/include/ha_prototypes.h
+++ b/storage/xtradb/include/ha_prototypes.h
@@ -366,6 +366,11 @@ thd_supports_xa(
THD* thd); /*!< in: thread handle, or NULL to query
the global innodb_supports_xa */
+/** Get global default encryption key_id
+@return key_id */
+UNIV_INTERN
+uint thd_default_encryption_key_id(void);
+
/** Get status of innodb_tmpdir.
@param[in] thd thread handle, or NULL to query
the global innodb_tmpdir.
1
0

[Commits] b290ef8: MDEV-17454 JSON_VALID( '{"a":1]' ) evaluates to 1.
by holyfoot@askmonty.org 11 Nov '18
by holyfoot@askmonty.org 11 Nov '18
11 Nov '18
revision-id: b290ef8c76e2d7dfbae7a85766694a6fd4648eac (mariadb-10.2.18-73-gb290ef8)
parent(s): a12b8ac8e9636f8258bcb17a0845b9317d870fd9
committer: Alexey Botchkov
timestamp: 2018-11-12 01:50:07 +0400
message:
MDEV-17454 JSON_VALID( '{"a":1]' ) evaluates to 1.
Produce syntax error when '{...]'.
---
mysql-test/r/func_json.result | 6 ++++++
mysql-test/t/func_json.test | 6 ++++++
strings/json_lib.c | 2 +-
3 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/mysql-test/r/func_json.result b/mysql-test/r/func_json.result
index 90458bc..74798b1 100644
--- a/mysql-test/r/func_json.result
+++ b/mysql-test/r/func_json.result
@@ -824,3 +824,9 @@ t2 CREATE TABLE `t2` (
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1, t2;
SET sql_mode=default;
+#
+# MDEV-17454 JSON_VALID( '{"a":1]' ) evaluates to 1
+#
+select JSON_VALID( '{"a":1]' );
+JSON_VALID( '{"a":1]' )
+0
diff --git a/mysql-test/t/func_json.test b/mysql-test/t/func_json.test
index d266641..43bd198 100644
--- a/mysql-test/t/func_json.test
+++ b/mysql-test/t/func_json.test
@@ -481,3 +481,9 @@ SHOW CREATE TABLE t2;
DROP TABLE t1, t2;
SET sql_mode=default;
+--echo #
+--echo # MDEV-17454 JSON_VALID( '{"a":1]' ) evaluates to 1
+--echo #
+
+select JSON_VALID( '{"a":1]' );
+
diff --git a/strings/json_lib.c b/strings/json_lib.c
index 4f12cbb..394517a 100644
--- a/strings/json_lib.c
+++ b/strings/json_lib.c
@@ -774,7 +774,7 @@ static json_state_handler json_actions[NR_JSON_STATES][NR_C_CLASSES]=
syntax_error, syntax_error, syntax_error, syntax_error, syntax_error,
syntax_error, syntax_error, syntax_error, not_json_chr, bad_chr},
{/*OBJ_CONT*/
- unexpected_eos, syntax_error, end_object, syntax_error, end_array,
+ unexpected_eos, syntax_error, end_object, syntax_error, syntax_error,
syntax_error, next_key, syntax_error, syntax_error, syntax_error,
syntax_error, syntax_error, syntax_error, not_json_chr, bad_chr},
{/*ARRAY_CONT*/
1
0
revision-id: 5f46670bd09babbee75a24ac82eb4ade0706da66 (mariadb-10.3.6-96-g5f46670)
parent(s): 8d5a11122c32f4d9eb87536886c6e893377bdd07 3ea7de9a78a1410a9b79362774247e9e44b201b3
author: Igor Babaev
committer: Igor Babaev
timestamp: 2018-11-10 14:52:57 -0800
message:
Merge branch '10.4' into 10.4-mdev16188
.gitignore | 2 +-
.travis.yml | 4 +-
CMakeLists.txt | 34 +-
CREDITS | 4 +-
README.md | 16 +-
VERSION | 2 +-
client/CMakeLists.txt | 1 +
client/client_priv.h | 2 +-
client/mysql.cc | 23 +-
client/mysql_upgrade.c | 8 +-
client/mysqladmin.cc | 17 +-
client/mysqlbinlog.cc | 18 +-
client/mysqlcheck.c | 13 +-
client/mysqldump.c | 22 +-
client/mysqlimport.c | 18 +-
client/mysqlshow.c | 19 +-
client/mysqlslap.c | 19 +-
client/mysqltest.cc | 45 +-
cmake/CPackRPM.cmake | 34 +-
cmake/FindZSTD.cmake | 18 -
cmake/Findzstd.cmake | 25 +
cmake/cpack_rpm.cmake | 6 +
cmake/create_initial_db.cmake | 76 +
cmake/create_initial_db.cmake.in | 84 -
cmake/dtrace.cmake | 4 +
cmake/for_clients.cmake | 3 -
cmake/install_macros.cmake | 48 +-
cmake/libutils.cmake | 62 +-
cmake/make_dist.cmake.in | 2 +-
cmake/merge_archives_unix.cmake | 56 +
cmake/merge_archives_unix.cmake.in | 63 -
cmake/mysql_add_executable.cmake | 3 +
cmake/os/Windows.cmake | 24 +-
cmake/package_name.cmake | 5 +-
cmake/plugin.cmake | 7 +-
cmake/ssl.cmake | 4 +-
cmake/submodules.cmake | 6 +
cmake/systemd.cmake | 10 +-
cmake/zlib.cmake | 18 +-
config.h.cmake | 8 +-
configure.cmake | 11 +-
debian/additions/innotop/changelog.innotop | 2 +-
debian/additions/innotop/innotop | 14 +-
debian/additions/innotop/innotop.1 | 6 +-
debian/autobake-deb.sh | 2 +-
debian/mariadb-plugin-tokudb.install | 2 +-
debian/rules | 1 +
extra/mariabackup/backup_copy.cc | 91 +-
extra/mariabackup/backup_mysql.cc | 71 +-
extra/mariabackup/crc/crc-intel-pclmul.c | 2 +-
extra/mariabackup/datasink.c | 3 +
extra/mariabackup/encryption_plugin.cc | 50 +-
extra/mariabackup/fil_cur.cc | 104 +-
extra/mariabackup/fil_cur.h | 5 +-
extra/mariabackup/innobackupex.cc | 4 +-
extra/mariabackup/wsrep.cc | 3 +-
extra/mariabackup/xtrabackup.cc | 744 +-
extra/my_print_defaults.c | 29 +-
extra/perror.c | 8 +
extra/resolveip.c | 17 +-
extra/yassl/CMakeLists.txt | 3 -
include/big_endian.h | 2 +-
include/byte_order_generic.h | 2 +-
include/byte_order_generic_x86.h | 2 +-
include/byte_order_generic_x86_64.h | 2 +-
include/json_lib.h | 6 +
include/little_endian.h | 2 +-
include/m_ctype.h | 37 +-
include/m_string.h | 2 +-
include/my_bit.h | 10 +-
include/my_cpu.h | 2 +-
include/my_global.h | 16 +-
include/my_pthread.h | 2 +-
include/my_service_manager.h | 2 +
include/my_sys.h | 1 +
include/my_time.h | 31 +-
include/myisamchk.h | 3 +-
include/mysql/plugin_auth.h | 46 +-
include/mysql/plugin_auth.h.pp | 4 +
include/mysql/plugin_password_validation.h | 4 +-
include/mysql/plugin_password_validation.h.pp | 4 +-
include/mysql/psi/mysql_socket.h | 4 +-
include/mysql/service_kill_statement.h | 4 +-
include/mysql/service_wsrep.h | 3 +
include/mysql_embed.h | 1 -
include/service_versions.h | 2 +-
include/sql_common.h | 4 +-
include/ssl_compat.h | 4 +-
include/violite.h | 22 +-
include/wsrep.h | 18 +-
libmariadb | 2 +-
libmysqld/CMakeLists.txt | 5 +-
man/CMakeLists.txt | 7 +-
man/mariabackup.1 | 16 +
man/mbstream.1 | 16 +
man/my_print_defaults.1 | 7 +-
man/mysql_embedded.1 | 1 +
man/mysql_ldb.1 | 16 +
man/tokuft_logdump.1 | 16 -
man/tokuft_logprint.1 | 16 +
man/wsrep_sst_mariabackup.1 | 16 +
man/wsrep_sst_rsync.1 | 4 +-
man/wsrep_sst_rsync_wan.1 | 16 +
mysql-test/collections/10.0-compatible.list | 595 +
mysql-test/dgcov.pl | 2 +-
mysql-test/include/check-testcase.test | 12 +
mysql-test/include/ctype_mdev13118.inc | 15 +
mysql-test/include/diff_tables.inc | 2 +-
mysql-test/include/have_32bit.inc | 9 +
mysql-test/include/have_64bit.inc | 9 +
mysql-test/include/maria_empty_logs.inc | 12 +
mysql-test/include/maria_verify_recovery.inc | 12 +
mysql-test/include/mtr_check.sql | 1 -
mysql-test/include/mtr_warnings.sql | 2 +-
mysql-test/include/search_pattern_in_file.inc | 16 +-
mysql-test/include/system_db_struct.inc | 1 -
mysql-test/lib/My/Config.pm | 6 +-
mysql-test/lib/My/ConfigFactory.pm | 21 -
mysql-test/lib/My/Platform.pm | 2 +
mysql-test/lib/v1/mysql-test-run.pl | 2 +-
mysql-test/main/1st.result | 1 -
mysql-test/main/alter_table.result | 53 +
mysql-test/main/alter_table.test | 50 +
mysql-test/main/alter_user.result | 35 +-
mysql-test/main/alter_user.test | 8 +-
.../main/auto_increment_ranges_innodb.result | 14 +
mysql-test/main/auto_increment_ranges_innodb.test | 13 +
mysql-test/main/bootstrap.result | 9 +-
mysql-test/main/bootstrap.test | 27 +-
mysql-test/main/brackets.result | 24 +
mysql-test/main/brackets.test | 18 +
mysql-test/main/case.result | 27 +
mysql-test/main/case.test | 22 +
mysql-test/main/cast.result | 2 +-
mysql-test/main/connect.result | 19 +-
mysql-test/main/connect.test | 19 +-
mysql-test/main/constraints.result | 37 +
mysql-test/main/constraints.test | 25 +
mysql-test/main/contributors.result | 4 +-
mysql-test/main/create_drop_user.result | 24 +-
mysql-test/main/create_drop_user.test | 8 +-
mysql-test/main/create_or_replace.result | 23 +-
mysql-test/main/create_or_replace.test | 29 +-
mysql-test/main/create_user.result | 24 +-
mysql-test/main/cte_nonrecursive.result | 147 +
mysql-test/main/cte_nonrecursive.test | 111 +
mysql-test/main/cte_recursive.result | 303 +-
mysql-test/main/cte_recursive.test | 176 +-
mysql-test/main/ctype_binary.result | 23 +
mysql-test/main/ctype_binary.test | 3 +
mysql-test/main/ctype_eucjpms.result | 23 +
mysql-test/main/ctype_eucjpms.test | 2 +
mysql-test/main/ctype_euckr.result | 29 +
mysql-test/main/ctype_euckr.test | 10 +
mysql-test/main/ctype_gbk.result | 23 +
mysql-test/main/ctype_gbk.test | 3 +
mysql-test/main/ctype_latin1.result | 32 +
mysql-test/main/ctype_latin1.test | 15 +
mysql-test/main/ctype_uca.result | 21 +
mysql-test/main/ctype_uca.test | 18 +
mysql-test/main/ctype_ucs.result | 23 +
mysql-test/main/ctype_ucs.test | 4 +
mysql-test/main/ctype_ujis.result | 23 +
mysql-test/main/ctype_ujis.test | 4 +
mysql-test/main/ctype_upgrade.result | 2 -
mysql-test/main/ctype_utf16.result | 23 +
mysql-test/main/ctype_utf16.test | 5 +
mysql-test/main/ctype_utf16le.result | 29 +
mysql-test/main/ctype_utf16le.test | 13 +
mysql-test/main/ctype_utf32.result | 23 +
mysql-test/main/ctype_utf32.test | 8 +
mysql-test/main/ctype_utf8.result | 23 +
mysql-test/main/ctype_utf8.test | 7 +
mysql-test/main/ctype_utf8mb4.result | 23 +
mysql-test/main/ctype_utf8mb4.test | 8 +
mysql-test/main/date_formats.result | 2 +-
mysql-test/main/delayed.result | 3 +-
mysql-test/main/derived.result | 33 +
mysql-test/main/derived.test | 21 +
mysql-test/main/derived_cond_pushdown.result | 12269 +++----
mysql-test/main/derived_cond_pushdown.test | 3378 +-
mysql-test/main/derived_opt.result | 38 +-
mysql-test/main/derived_opt.test | 43 +
mysql-test/main/derived_split_innodb.result | 101 +
mysql-test/main/derived_split_innodb.test | 96 +
mysql-test/main/drop.test | 20 +-
mysql-test/main/dyncol.result | 4 +-
mysql-test/main/failed_auth_3909.result | 8 +-
mysql-test/main/failed_auth_3909.test | 8 +-
mysql-test/main/failed_auth_unixsocket.result | 11 +-
mysql-test/main/failed_auth_unixsocket.test | 20 +-
mysql-test/main/flush.result | 23 +
mysql-test/main/flush.test | 31 +
mysql-test/main/func_concat.result | 20 +
mysql-test/main/func_concat.test | 22 +
mysql-test/main/func_hybrid_type.result | 190 +
mysql-test/main/func_hybrid_type.test | 105 +
mysql-test/main/func_in.result | 2 +-
mysql-test/main/func_isnull.result | 20 +
mysql-test/main/func_isnull.test | 16 +
mysql-test/main/func_json.result | 50 +
mysql-test/main/func_json.test | 44 +
mysql-test/main/func_like.result | 117 +
mysql-test/main/func_like.test | 50 +
mysql-test/main/func_sapdb.result | 6 +-
mysql-test/main/func_time.result | 2691 +-
mysql-test/main/func_time.test | 933 +
mysql-test/main/gis-precise.result | 3 +
mysql-test/main/gis-precise.test | 4 +
mysql-test/main/gis.result | 16 +
mysql-test/main/gis.test | 15 +
mysql-test/main/grant.result | 42 +-
mysql-test/main/grant.test | 25 +
mysql-test/main/grant2.result | 89 +-
mysql-test/main/grant2.test | 62 +-
mysql-test/main/grant4.result | 16 +-
mysql-test/main/grant5.result | 81 +
mysql-test/main/grant5.test | 60 +
mysql-test/main/grant_lowercase.result | 6 -
mysql-test/main/grant_lowercase.test | 4 -
mysql-test/main/group_min_max.result | 45 +
mysql-test/main/group_min_max.test | 44 +
mysql-test/main/help.result | 8 +-
mysql-test/main/help.test | 8 +-
mysql-test/main/in_subq_cond_pushdown.result | 32 +
mysql-test/main/in_subq_cond_pushdown.test | 39 +
mysql-test/main/index_merge_myisam.result | 50 +
mysql-test/main/index_merge_myisam.test | 35 +
mysql-test/main/information_schema-big.result | 2 +
mysql-test/main/information_schema.result | 3 +-
.../main/information_schema_all_engines.result | 10 +-
mysql-test/main/init_file_set_password-7656.result | 6 +-
mysql-test/main/init_file_set_password-7656.test | 2 +-
mysql-test/main/innodb_mrr_cpk.result | 2 +-
mysql-test/main/invisible_field_debug.result | 5 +
mysql-test/main/invisible_field_debug.test | 6 +
mysql-test/main/join.result | 42 +
mysql-test/main/join.test | 54 +
mysql-test/main/join_cache.result | 33 +
mysql-test/main/join_cache.test | 32 +-
mysql-test/main/join_nested_jcl6.result | 2 +-
mysql-test/main/join_outer.result | 118 +
mysql-test/main/join_outer.test | 108 +
mysql-test/main/join_outer_jcl6.result | 118 +
mysql-test/main/lock.result | 4 +-
mysql-test/main/lock.test | 4 +-
mysql-test/main/lock_multi.result | 17 +-
mysql-test/main/lock_multi.test | 18 +-
mysql-test/main/log_tables_upgrade.result | 1 -
mysql-test/main/lowercase_fs_off.result | 68 +
mysql-test/main/lowercase_fs_off.test | 15 +
mysql-test/main/multi_update.result | 4 +-
mysql-test/main/myisam.result | 2 +-
mysql-test/main/myisam_recover.result | 4 +-
mysql-test/main/mysql.result | 2 -
mysql-test/main/mysql.test | 5 +-
mysql-test/main/mysql_not_windows.result | 2 +
mysql-test/main/mysql_not_windows.test | 7 +
mysql-test/main/mysql_protocols.result | 5 +-
mysql-test/main/mysql_upgrade-6984.result | 1 -
mysql-test/main/mysql_upgrade.result | 10 -
mysql-test/main/mysql_upgrade_no_innodb.result | 1 -
mysql-test/main/mysql_upgrade_noengine.result | 3 -
mysql-test/main/mysql_upgrade_ssl.result | 1 -
mysql-test/main/mysql_upgrade_view.result | 3 -
mysql-test/main/mysqlbinlog_row_compressed.result | 16 +-
mysql-test/main/mysqlbinlog_row_minimal.result | 16 +-
mysql-test/main/mysqlcheck.result | 5 -
mysql-test/main/mysqld--help,win.rdiff | 45 +-
mysql-test/main/mysqld--help.result | 11 +
mysql-test/main/mysqldump-max.result | 4 +-
mysql-test/main/mysqldump-max.test | 2 +
mysql-test/main/mysqldump-utf8mb4.result | 86 +
mysql-test/main/mysqldump-utf8mb4.test | 49 +
mysql-test/main/mysqldump.result | 82 +-
mysql-test/main/mysqldump.test | 4 +-
mysql-test/main/mysqldump_restore.result | 20 -
.../main/no_password_column-mdev-11170.result | 2 +-
mysql-test/main/null.result | 16 +-
mysql-test/main/openssl_1.result | 6 +-
mysql-test/main/openssl_1.test | 3 +
mysql-test/main/opt_tvc.result | 95 +-
mysql-test/main/opt_tvc.test | 42 +-
mysql-test/main/order_by_zerolength-4285.result | 20 +
mysql-test/main/order_by_zerolength-4285.test | 14 +
mysql-test/main/parser.result | 21 +
mysql-test/main/parser.test | 17 +
mysql-test/main/partition_error.result | 9 +
mysql-test/main/partition_error.test | 18 +
mysql-test/main/partition_explicit_prune.result | 19 +
mysql-test/main/partition_explicit_prune.test | 19 +
mysql-test/main/partition_pruning.result | 33 +
mysql-test/main/partition_pruning.test | 31 +
mysql-test/main/plugin.result | 45 +
mysql-test/main/plugin.test | 40 +
mysql-test/main/plugin_auth.result | 2 +-
mysql-test/main/plugin_auth_qa.result | 32 +-
mysql-test/main/plugin_auth_qa_1.result | 42 +-
mysql-test/main/plugin_auth_qa_1.test | 2 +-
mysql-test/main/plugin_auth_qa_2.result | 22 +-
mysql-test/main/plugin_innodb.result | 2 +-
mysql-test/main/plugin_innodb.test | 2 +-
mysql-test/main/ps.result | 67 +-
mysql-test/main/ps.test | 54 +-
mysql-test/main/query_cache.result | 12 +-
mysql-test/main/query_cache_innodb.result | 2 +-
mysql-test/main/range.result | 73 +-
mysql-test/main/range.test | 57 +-
mysql-test/main/range_debug.result | 24 +
mysql-test/main/range_debug.test | 30 +
mysql-test/main/range_mrr_icp.result | 73 +-
mysql-test/main/rename.result | 4 +
mysql-test/main/rename.test | 7 +
mysql-test/main/repair.result | 2 +-
mysql-test/main/select.result | 32 +-
mysql-test/main/select_jcl6.result | 32 +-
mysql-test/main/select_pkeycache.result | 32 +-
mysql-test/main/selectivity.result | 48 +-
mysql-test/main/selectivity.test | 36 +
mysql-test/main/selectivity_innodb.result | 48 +-
mysql-test/main/session_tracker_last_gtid.result | 6 +
mysql-test/main/set_password.result | 8 +-
mysql-test/main/shm-master.opt | 1 -
mysql-test/main/shm.result | 2170 --
mysql-test/main/shm.test | 47 -
mysql-test/main/show_create_user.result | 4 +-
mysql-test/main/show_create_user.test | 2 +-
.../main/show_grants_with_plugin-7985.result | 4 +-
mysql-test/main/sp-destruct.test | 28 +-
mysql-test/main/sp-security.result | 36 +-
mysql-test/main/sp-security.test | 23 +-
mysql-test/main/sp.result | 17 +
mysql-test/main/sp.test | 21 +
mysql-test/main/sp_notembedded.result | 4 +-
mysql-test/main/sp_notembedded.test | 2 +-
mysql-test/main/sql_safe_updates.opt | 1 +
mysql-test/main/sql_safe_updates.result | 3 +
mysql-test/main/sql_safe_updates.test | 4 +
mysql-test/main/stat_tables.result | 89 +
mysql-test/main/stat_tables.test | 83 +-
mysql-test/main/stat_tables_innodb.result | 89 +
mysql-test/main/str_to_datetime_457.result | 6 +-
mysql-test/main/subselect.result | 22 +-
mysql-test/main/subselect.test | 22 +-
mysql-test/main/subselect_extra_no_semijoin.result | 22 +
mysql-test/main/subselect_extra_no_semijoin.test | 31 +-
mysql-test/main/subselect_mat.result | 99 +-
mysql-test/main/subselect_mat_cost_bugs.result | 2 +-
mysql-test/main/subselect_no_exists_to_in.result | 22 +-
mysql-test/main/subselect_no_mat.result | 22 +-
mysql-test/main/subselect_no_opts.result | 22 +-
mysql-test/main/subselect_no_scache.result | 22 +-
mysql-test/main/subselect_no_semijoin.result | 22 +-
mysql-test/main/subselect_sj2_mat.result | 51 +
mysql-test/main/subselect_sj2_mat.test | 49 +
mysql-test/main/subselect_sj_mat.result | 99 +-
mysql-test/main/subselect_sj_mat.test | 79 +
mysql-test/main/system_mysql_db.result | 50 +-
mysql-test/main/system_mysql_db_fix40123.result | 49 +-
mysql-test/main/system_mysql_db_fix50030.result | 49 +-
mysql-test/main/system_mysql_db_fix50117.result | 49 +-
mysql-test/main/system_mysql_db_refs.result | 16 +-
mysql-test/main/system_mysql_db_refs.test | 11 -
mysql-test/main/table_value_constr.result | 92 +
mysql-test/main/table_value_constr.test | 48 +
mysql-test/main/temp_table.result | 24 +
mysql-test/main/temp_table.test | 26 +
mysql-test/main/timezone2.result | 23 +
mysql-test/main/timezone2.test | 19 +
mysql-test/main/type_date.result | 38 +-
mysql-test/main/type_date.test | 31 +
mysql-test/main/type_datetime.result | 76 +-
mysql-test/main/type_datetime.test | 39 +-
mysql-test/main/type_decimal.result | 14 +
mysql-test/main/type_decimal.test | 11 +
mysql-test/main/type_float.result | 40 +
mysql-test/main/type_float.test | 30 +
mysql-test/main/type_newdecimal.result | 44 +-
mysql-test/main/type_newdecimal.test | 45 +-
mysql-test/main/type_temporal_innodb.result | 36 +-
mysql-test/main/type_time.result | 120 +-
mysql-test/main/type_time.test | 70 +
mysql-test/main/type_timestamp.result | 19 +-
mysql-test/main/type_timestamp.test | 22 +
mysql-test/main/type_year.result | 24 +-
mysql-test/main/type_year.test | 22 +-
mysql-test/main/union.result | 16 +
mysql-test/main/union.test | 15 +
mysql-test/main/win.result | 417 +-
mysql-test/main/win.test | 59 +-
mysql-test/main/win_big.result | 12 -
mysql-test/main/win_first_last_value.result | 20 +-
mysql-test/main/win_lead_lag.result | 11 +
mysql-test/main/win_lead_lag.test | 13 +
mysql-test/main/win_percent_cume.result | 72 +-
mysql-test/main/win_percent_cume.test | 6 +-
mysql-test/main/win_percentile.result | 78 +-
mysql-test/main/win_percentile.test | 19 +
mysql-test/main/win_rank.result | 81 +-
mysql-test/main/win_rank.test | 17 +-
mysql-test/main/win_std.test | 4 +
mysql-test/mysql-test-run.pl | 206 +-
mysql-test/suite.pm | 6 +-
mysql-test/suite/binlog/include/binlog.test | 1 -
.../suite/binlog/include/check_binlog_size.inc | 31 +
.../r/binlog_flush_binlogs_delete_domain.result | 12 +
.../suite/binlog/r/binlog_tmp_table_row.result | 7 +
.../t/binlog_flush_binlogs_delete_domain.test | 19 +
.../suite/binlog/t/binlog_tmp_table_row.test | 30 +
.../suite/binlog_encryption/rpl_corruption.result | 4 -
.../suite/binlog_encryption/rpl_loadfile.result | 4 -
.../rpl_mixed_binlog_max_cache_size.result | 28 -
.../binlog_encryption/rpl_special_charset.result | 4 -
.../rpl_stm_relay_ign_space.result | 4 -
.../rpl_switch_stm_row_mixed.result | 2 +-
mysql-test/suite/binlog_encryption/rpl_sync.result | 8 -
.../suite/binlog_encryption/rpl_typeconv.result | 44 +
mysql-test/suite/compat/oracle/r/events.result | 16 +
.../suite/compat/oracle/r/func_concat.result | 69 +
.../compat/oracle/r/sp-package-mysqldump.result | 2 +-
.../compat/oracle/r/table_value_constr.result | 84 +
mysql-test/suite/compat/oracle/t/events.test | 29 +
mysql-test/suite/compat/oracle/t/func_concat.test | 36 +
.../compat/oracle/t/sp-package-mysqldump.test | 1 +
.../suite/compat/oracle/t/table_value_constr.test | 44 +
.../suite/encryption/r/debug_key_management.result | 9 +
.../encryption/r/innodb-encryption-alter.result | 37 +
.../r/innodb_encrypt_log_corruption.result | 4 +-
.../suite/encryption/t/debug_key_management.test | 18 +-
.../encryption/t/innodb-encryption-alter.test | 24 +
mysql-test/suite/funcs_1/r/innodb_func_view.result | 84 +-
.../suite/funcs_1/r/is_check_constraints.result | 144 +
mysql-test/suite/funcs_1/r/is_columns_is.result | 10 +
.../suite/funcs_1/r/is_columns_is_embedded.result | 10 +
mysql-test/suite/funcs_1/r/is_columns_mysql.result | 48 +-
.../funcs_1/r/is_columns_mysql_embedded.result | 40 -
.../suite/funcs_1/r/is_key_column_usage.result | 2 -
.../funcs_1/r/is_key_column_usage_embedded.result | 2 -
.../suite/funcs_1/r/is_routines_embedded.result | 12 +-
mysql-test/suite/funcs_1/r/is_statistics.result | 2 -
.../suite/funcs_1/r/is_statistics_mysql.result | 2 -
.../funcs_1/r/is_statistics_mysql_embedded.result | 4 -
.../suite/funcs_1/r/is_table_constraints.result | 1 -
.../funcs_1/r/is_table_constraints_mysql.result | 1 -
.../r/is_table_constraints_mysql_embedded.result | 2 -
mysql-test/suite/funcs_1/r/is_tables_is.result | 50 +
.../suite/funcs_1/r/is_tables_is_embedded.result | 50 +
mysql-test/suite/funcs_1/r/is_tables_mysql.result | 57 +-
.../funcs_1/r/is_tables_mysql_embedded.result | 114 +-
.../suite/funcs_1/r/is_user_privileges.result | 66 +-
mysql-test/suite/funcs_1/r/memory_func_view.result | 84 +-
mysql-test/suite/funcs_1/r/myisam_func_view.result | 84 +-
.../suite/funcs_1/t/is_check_constraints.test | 69 +
mysql-test/suite/galera/disabled.def | 27 +-
.../suite/galera/include/reset_query_cache.inc | 11 +
mysql-test/suite/galera/r/MW-286.result | 6 +-
mysql-test/suite/galera/r/MW-336.result | 131 +-
mysql-test/suite/galera/r/MW-44.result | 32 +-
mysql-test/suite/galera/r/galera#505.result | 8 +
.../r/galera_bf_background_statistics.result | 33 +
.../galera/r/galera_binlog_stmt_autoinc.result | 147 +
mysql-test/suite/galera/r/galera_defaults.result | 68 -
.../suite/galera/r/galera_drop_database.result | 17 +
mysql-test/suite/galera/r/galera_enum.result | 37 +-
.../r/galera_ist_innodb_flush_logs,debug.rdiff | 103 +
.../galera/r/galera_ist_innodb_flush_logs.result | 96 -
.../galera/r/galera_ist_mysqldump,debug.rdiff | 106 +
.../suite/galera/r/galera_ist_mysqldump.result | 109 +-
.../suite/galera/r/galera_ist_rsync,debug.rdiff | 114 +
mysql-test/suite/galera/r/galera_ist_rsync.result | 108 -
.../galera/r/galera_ist_xtrabackup-v2,debug.rdiff | 103 +
.../suite/galera/r/galera_ist_xtrabackup-v2.result | 96 -
mysql-test/suite/galera/r/galera_kill_ddl.result | 1 +
.../suite/galera/r/galera_kill_largechanges.result | 1 +
.../suite/galera/r/galera_kill_smallchanges.result | 1 +
.../suite/galera/r/galera_pc_ignore_sb.result | 7 +-
.../galera/r/galera_sst_mysqldump_with_key.result | 215 +-
.../suite/galera/r/galera_sst_rsync2,debug.rdiff | 114 +
mysql-test/suite/galera/r/galera_sst_rsync2.result | 288 +
.../galera/r/galera_sst_rsync_data_dir,debug.rdiff | 114 +
.../galera/r/galera_sst_rsync_data_dir.result | 288 +
.../r/galera_sst_xtrabackup-v2_data_dir.result | 262 +
.../suite/galera/r/galera_suspend_slave.result | 2 +
.../suite/galera/r/galera_toi_truncate.result | 2 +
.../galera/r/galera_unicode_identifiers.result | 6 +-
.../suite/galera/r/galera_var_desync_on.result | 2 -
.../suite/galera/r/galera_var_node_address.result | 2 +-
.../suite/galera/r/galera_var_slave_threads.result | 67 +-
mysql-test/suite/galera/r/galera_wan.result | 6 +-
mysql-test/suite/galera/r/mysql-wsrep#332.result | 111 +
mysql-test/suite/galera/r/query_cache.result | 47 +-
mysql-test/suite/galera/r/versioning_trx_id.result | 52 +
mysql-test/suite/galera/suite.pm | 2 +
mysql-test/suite/galera/t/MW-286.test | 6 +-
mysql-test/suite/galera/t/MW-328A.test | 1 +
mysql-test/suite/galera/t/MW-328B.test | 1 +
mysql-test/suite/galera/t/MW-328C.test | 1 +
mysql-test/suite/galera/t/MW-336.test | 65 +-
mysql-test/suite/galera/t/MW-44-master.opt | 1 +
mysql-test/suite/galera/t/MW-44.test | 25 +-
mysql-test/suite/galera/t/galera#505.test | 26 +
.../galera/t/galera_bf_background_statistics.opt | 1 +
.../galera/t/galera_bf_background_statistics.test | 49 +
.../suite/galera/t/galera_binlog_stmt_autoinc.test | 230 +
mysql-test/suite/galera/t/galera_defaults.test | 13 +-
.../suite/galera/t/galera_drop_database.test | 65 +
mysql-test/suite/galera/t/galera_enum.test | 18 +-
.../suite/galera/t/galera_ist_mysqldump.test | 2 +
.../suite/galera/t/galera_ist_xtrabackup-v2.test | 5 +
mysql-test/suite/galera/t/galera_kill_ddl.test | 2 +
.../suite/galera/t/galera_kill_largechanges.test | 2 +
.../suite/galera/t/galera_kill_smallchanges.test | 2 +
mysql-test/suite/galera/t/galera_pc_ignore_sb.test | 21 +-
.../galera/t/galera_sst_mysqldump_with_key.test | 7 +-
mysql-test/suite/galera/t/galera_sst_rsync2.cnf | 15 +
mysql-test/suite/galera/t/galera_sst_rsync2.test | 12 +
.../suite/galera/t/galera_sst_rsync_data_dir.cnf | 11 +
.../suite/galera/t/galera_sst_rsync_data_dir.test | 16 +
.../galera/t/galera_sst_xtrabackup-v2_data_dir.cnf | 16 +
.../t/galera_sst_xtrabackup-v2_data_dir.test | 23 +
.../suite/galera/t/galera_suspend_slave.test | 3 +
mysql-test/suite/galera/t/galera_toi_truncate.test | 16 +-
.../suite/galera/t/galera_unicode_identifiers.test | 12 +-
.../suite/galera/t/galera_var_desync_on.test | 7 +-
.../suite/galera/t/galera_var_node_address.test | 8 +-
.../suite/galera/t/galera_var_slave_threads.test | 10 +
mysql-test/suite/galera/t/galera_wan.test | 14 +-
mysql-test/suite/galera/t/mysql-wsrep#332.test | 113 +
mysql-test/suite/galera/t/query_cache.test | 123 +-
mysql-test/suite/galera/t/versioning_trx_id.cnf | 1 +
mysql-test/suite/galera/t/versioning_trx_id.test | 28 +
.../r/galera_certification_double_failure.result | 2 +-
.../suite/galera_3nodes/r/galera_pc_weight.result | 31 +-
.../suite/galera_3nodes/t/galera_pc_weight.test | 55 +-
mysql-test/suite/gcol/r/gcol_bug20746926.result | 8 +-
.../suite/gcol/r/gcol_partition_innodb.result | 17 +
.../suite/gcol/r/innodb_virtual_debug_purge.result | 6 +-
.../suite/gcol/r/innodb_virtual_index.result | 32 +
.../suite/gcol/r/innodb_virtual_rebuild.result | 16 +-
mysql-test/suite/gcol/t/gcol_partition_innodb.test | 20 +
.../suite/gcol/t/innodb_virtual_debug_purge.test | 6 -
mysql-test/suite/gcol/t/innodb_virtual_index.test | 31 +
.../suite/gcol/t/innodb_virtual_rebuild.test | 5 +-
mysql-test/suite/heap/heap_btree.result | 4 +
mysql-test/suite/heap/heap_btree.test | 9 +
mysql-test/suite/innodb/include/alter_nocopy.inc | 33 -
.../suite/innodb/include/alter_nocopy_fail.inc | 51 -
mysql-test/suite/innodb/include/alter_not_null.inc | 94 -
.../include/have_undo_tablespaces.combinations | 2 +
.../suite/innodb/include/have_undo_tablespaces.inc | 4 +
.../innodb/include/innodb_binlog.combinations | 3 +
mysql-test/suite/innodb/include/innodb_binlog.inc | 3 +
.../suite/innodb/include/innodb_wl6501_crash.inc | 416 -
.../innodb/include/innodb_wl6501_crash_temp.inc | 98 -
.../suite/innodb/r/alter_algorithm,COPY.rdiff | 92 -
.../suite/innodb/r/alter_algorithm,INPLACE.rdiff | 128 +-
.../suite/innodb/r/alter_algorithm,INSTANT.rdiff | 124 +-
.../suite/innodb/r/alter_algorithm,NOCOPY.rdiff | 145 +
mysql-test/suite/innodb/r/alter_algorithm.result | 103 +-
.../suite/innodb/r/alter_inplace_perfschema.result | 20 +
mysql-test/suite/innodb/r/alter_instant,COPY.rdiff | 61 -
.../suite/innodb/r/alter_instant,INPLACE.rdiff | 11 -
.../suite/innodb/r/alter_instant,INSTANT.rdiff | 11 -
mysql-test/suite/innodb/r/alter_instant.result | 50 -
mysql-test/suite/innodb/r/alter_kill.result | 2 +
mysql-test/suite/innodb/r/alter_table.result | 15 +
.../innodb/r/auto_increment_dup,skip-log-bin.rdiff | 51 +
.../suite/innodb/r/auto_increment_dup.result | 22 +-
.../r/default_row_format_compatibility.result | 2 +-
mysql-test/suite/innodb/r/foreign-keys.result | 73 +
mysql-test/suite/innodb/r/foreign_key.result | 76 +-
.../suite/innodb/r/innodb-alter-debug.result | 18 +-
mysql-test/suite/innodb/r/innodb-alter.result | 142 +-
mysql-test/suite/innodb/r/innodb-index,debug.rdiff | 10 +
mysql-test/suite/innodb/r/innodb-lock.result | 47 +-
.../innodb/r/innodb-page_compression_bzip2.result | 8 +-
.../innodb/r/innodb-page_compression_lz4.result | 7 +-
.../innodb/r/innodb-page_compression_lzma.result | 8 +-
.../innodb/r/innodb-page_compression_lzo.result | 8 +-
.../innodb/r/innodb-page_compression_tables.result | 8 +-
.../innodb/r/innodb-page_compression_zip.result | 7 +-
mysql-test/suite/innodb/r/innodb-wl5522.result | 264 +-
mysql-test/suite/innodb/r/innodb_mysql.result | 2 +-
mysql-test/suite/innodb/r/instant_alter.result | 245 +-
.../suite/innodb/r/instant_alter_crash.result | 62 +-
.../suite/innodb/r/instant_alter_debug.result | 83 +-
.../suite/innodb/r/instant_alter_limit.result | 35 +
.../suite/innodb/r/instant_alter_rollback.result | 108 +-
mysql-test/suite/innodb/r/instant_drop.result | 190 +
mysql-test/suite/innodb/r/log_corruption.result | 2 +-
mysql-test/suite/innodb/r/log_file_size.result | 2 +-
.../suite/innodb/r/row_format_redundant.result | 2 +-
mysql-test/suite/innodb/r/system_tables.result | 2 +-
.../suite/innodb/r/table_flags,32k,debug.rdiff | 132 +
.../suite/innodb/r/table_flags,32k,release.rdiff | 20 +
mysql-test/suite/innodb/r/table_flags,32k.rdiff | 20 -
.../suite/innodb/r/table_flags,64k,debug.rdiff | 132 +
.../suite/innodb/r/table_flags,64k,release.rdiff | 20 +
mysql-test/suite/innodb/r/table_flags,64k.rdiff | 20 -
mysql-test/suite/innodb/r/table_flags,debug.rdiff | 122 +
mysql-test/suite/innodb/r/temporary_table.result | 13 +
mysql-test/suite/innodb/r/truncate.result | 8 +
mysql-test/suite/innodb/r/truncate_crash.result | 14 +
mysql-test/suite/innodb/r/truncate_debug.result | 88 -
mysql-test/suite/innodb/r/truncate_foreign.result | 58 +
mysql-test/suite/innodb/r/truncate_inject.result | 114 -
mysql-test/suite/innodb/r/truncate_missing.result | 17 +
.../suite/innodb/r/truncate_purge_debug.result | 29 -
mysql-test/suite/innodb/r/truncate_restart.result | 12 -
mysql-test/suite/innodb/r/undo_truncate.result | 60 +
.../suite/innodb/r/undo_truncate_recover.result | 15 +
mysql-test/suite/innodb/t/alter_algorithm.test | 129 +-
.../suite/innodb/t/alter_inplace_perfschema.opt | 2 +
.../suite/innodb/t/alter_inplace_perfschema.test | 40 +
mysql-test/suite/innodb/t/alter_instant.test | 45 -
mysql-test/suite/innodb/t/alter_kill.test | 9 +-
mysql-test/suite/innodb/t/alter_not_null.test | 94 +-
mysql-test/suite/innodb/t/alter_table.test | 12 +
mysql-test/suite/innodb/t/auto_increment_dup.test | 40 +-
mysql-test/suite/innodb/t/foreign-keys.test | 87 +
mysql-test/suite/innodb/t/foreign_key.test | 112 +-
mysql-test/suite/innodb/t/innodb-alter-debug.test | 25 +-
mysql-test/suite/innodb/t/innodb-alter.test | 105 +-
mysql-test/suite/innodb/t/innodb-index.test | 4 +
mysql-test/suite/innodb/t/innodb-lock.test | 74 +-
.../innodb/t/innodb-page_compression_bzip2.test | 15 +-
.../innodb/t/innodb-page_compression_lz4.test | 14 +-
.../innodb/t/innodb-page_compression_lzma.test | 15 +-
.../innodb/t/innodb-page_compression_lzo.test | 15 +-
.../innodb/t/innodb-page_compression_tables.test | 8 +-
.../innodb/t/innodb-page_compression_zip.test | 14 +-
mysql-test/suite/innodb/t/innodb-wl5522.test | 254 +-
.../t/innodb_default_row_format.combinations | 2 +
mysql-test/suite/innodb/t/instant_alter.test | 78 +
mysql-test/suite/innodb/t/instant_alter_crash.test | 70 +-
mysql-test/suite/innodb/t/instant_alter_debug.test | 99 +-
mysql-test/suite/innodb/t/instant_alter_limit.test | 42 +
.../suite/innodb/t/instant_alter_rollback.test | 80 +-
mysql-test/suite/innodb/t/instant_drop.test | 98 +
mysql-test/suite/innodb/t/log_file_size.test | 2 +-
mysql-test/suite/innodb/t/system_tables.test | 2 +-
mysql-test/suite/innodb/t/table_flags.test | 5 +-
mysql-test/suite/innodb/t/temporary_table.test | 17 +
mysql-test/suite/innodb/t/truncate.test | 17 +
mysql-test/suite/innodb/t/truncate_crash.test | 23 +
mysql-test/suite/innodb/t/truncate_debug.test | 128 -
mysql-test/suite/innodb/t/truncate_foreign.test | 68 +
mysql-test/suite/innodb/t/truncate_inject.test | 97 -
mysql-test/suite/innodb/t/truncate_missing.test | 22 +
mysql-test/suite/innodb/t/truncate_purge_debug.opt | 3 -
.../suite/innodb/t/truncate_purge_debug.test | 49 -
mysql-test/suite/innodb/t/truncate_restart.test | 16 -
mysql-test/suite/innodb/t/undo_truncate.test | 122 +
.../suite/innodb/t/undo_truncate_recover.test | 50 +
.../suite/innodb_fts/r/crash_recovery.result | 1 +
.../suite/innodb_fts/r/fts_kill_query.result | 9 +
mysql-test/suite/innodb_fts/r/sync_ddl.result | 105 +
mysql-test/suite/innodb_fts/r/truncate.result | 31 -
mysql-test/suite/innodb_fts/t/crash_recovery.test | 1 +
mysql-test/suite/innodb_fts/t/fts_kill_query.test | 30 +
.../innodb_fts/t/innodb_fts_multiple_index.test | 2 +-
mysql-test/suite/innodb_fts/t/sync_ddl.test | 177 +
mysql-test/suite/innodb_fts/t/truncate.opt | 1 -
mysql-test/suite/innodb_fts/t/truncate.test | 50 -
.../suite/innodb_gis/r/alter_spatial_index.result | 2 +-
.../suite/innodb_gis/r/create_spatial_index.result | 2 +-
.../innodb_gis/r/rtree_concurrent_srch.result | 4 +-
.../suite/innodb_gis/t/alter_spatial_index.test | 3 +-
.../suite/innodb_gis/t/create_spatial_index.test | 2 +-
.../suite/innodb_gis/t/rtree_concurrent_srch.test | 2 +-
.../include/have_undo_tablespaces.combinations | 2 -
.../innodb_undo/include/have_undo_tablespaces.inc | 4 -
.../suite/innodb_undo/include/truncate_recover.inc | 8 -
mysql-test/suite/innodb_undo/r/truncate.result | 11 -
.../innodb_undo/r/truncate_multi_client.result | 51 -
.../suite/innodb_undo/r/truncate_recover.result | 15 -
mysql-test/suite/innodb_undo/t/truncate.test | 72 -
.../suite/innodb_undo/t/truncate_multi_client.test | 77 -
.../suite/innodb_undo/t/truncate_recover.test | 50 -
.../innodb_zip/include/innodb_wl6501_scale.inc | 110 -
.../suite/innodb_zip/r/index_large_prefix.result | 2 +-
mysql-test/suite/innodb_zip/r/restart.result | 24 +-
mysql-test/suite/innodb_zip/r/wl6501_1.result | 1202 -
.../suite/innodb_zip/r/wl6501_crash_3.result | 462 -
.../suite/innodb_zip/r/wl6501_crash_4.result | 519 -
.../suite/innodb_zip/r/wl6501_crash_5.result | 462 -
.../suite/innodb_zip/r/wl6501_scale_1.result | 336 -
mysql-test/suite/innodb_zip/t/wl6501_1.test | 451 -
mysql-test/suite/innodb_zip/t/wl6501_crash_3.test | 25 -
mysql-test/suite/innodb_zip/t/wl6501_crash_4.test | 27 -
mysql-test/suite/innodb_zip/t/wl6501_crash_5.test | 25 -
mysql-test/suite/innodb_zip/t/wl6501_scale_1.test | 37 -
mysql-test/suite/maria/concurrent.result | 33 +
mysql-test/suite/maria/concurrent.test | 28 +
mysql-test/suite/maria/create.result | 33 +
mysql-test/suite/maria/create.test | 42 +
mysql-test/suite/maria/disabled.def | 13 +
mysql-test/suite/maria/fulltext2.result | 86 +
mysql-test/suite/maria/fulltext2.test | 77 +
mysql-test/suite/maria/maria-recover.result | 2 +-
mysql-test/suite/maria/maria-recover.test | 12 +
mysql-test/suite/maria/maria-ucs2.result | 2 +-
mysql-test/suite/maria/maria.result | 12 +-
mysql-test/suite/maria/maria.test | 10 +
mysql-test/suite/maria/maria3.result | 2 +-
mysql-test/suite/maria/system_tables.result | 13 +
mysql-test/suite/maria/system_tables.test | 27 +
.../suite/mariabackup/absolute_ibdata_paths.opt | 2 +-
.../suite/mariabackup/create_during_backup.result | 10 +
.../suite/mariabackup/create_during_backup.test | 26 +
...create_with_data_directory_during_backup.result | 10 +
.../create_with_data_directory_during_backup.test | 24 +
mysql-test/suite/mariabackup/disabled.def | 1 -
.../mariabackup/drop_table_during_backup.result | 13 +
.../mariabackup/drop_table_during_backup.test | 24 +
.../incremental_ddl_during_backup.result | 22 +
.../mariabackup/incremental_ddl_during_backup.test | 52 +
.../mariabackup/innodb_log_optimize_ddl.result | 37 +
.../suite/mariabackup/innodb_log_optimize_ddl.test | 47 +
.../suite/mariabackup/mlog_index_load.result | 15 +
mysql-test/suite/mariabackup/mlog_index_load.test | 27 +
.../nolock_ddl_during_backup_end.result | 2 +
.../mariabackup/nolock_ddl_during_backup_end.test | 14 +
.../recreate_table_during_backup.result | 23 +
.../mariabackup/recreate_table_during_backup.test | 37 +
.../suite/mariabackup/rename_during_backup.result | 53 +
.../suite/mariabackup/rename_during_backup.test | 86 +
.../mariabackup/rename_during_mdl_lock.result | 10 +-
.../suite/mariabackup/rename_during_mdl_lock.test | 20 +-
mysql-test/suite/mariabackup/skip_innodb.opt | 1 +
mysql-test/suite/mariabackup/skip_innodb.result | 10 +
mysql-test/suite/mariabackup/skip_innodb.test | 12 +
mysql-test/suite/mariabackup/suite.opt | 2 +-
.../mariabackup/truncate_during_backup.result | 4 +
.../suite/mariabackup/truncate_during_backup.test | 18 +
mysql-test/suite/mariabackup/undo_space_id.opt | 1 +
.../suite/mariabackup/unsupported_redo.result | 2 +-
mysql-test/suite/mariabackup/unsupported_redo.test | 35 +-
.../suite/mariabackup/xb_aws_key_management.result | 2 +
.../multi_source/gtid_ignore_duplicates.result | 8 +-
.../suite/multi_source/gtid_ignore_duplicates.test | 8 +-
.../suite/parts/r/partition_recover_myisam.result | 12 +-
mysql-test/suite/parts/r/rpl_partition.result | 12 +
mysql-test/suite/parts/r/show_create.result | 8 +
mysql-test/suite/parts/r/truncate_locked.result | 7 +
mysql-test/suite/parts/r/update_and_cache.result | 7 +
mysql-test/suite/parts/t/show_create.test | 11 +
mysql-test/suite/parts/t/truncate_locked.test | 10 +
mysql-test/suite/parts/t/update_and_cache.test | 12 +
mysql-test/suite/perfschema/r/bad_option_1.result | 1 +
mysql-test/suite/perfschema/r/bad_option_2.result | 1 +
mysql-test/suite/perfschema/r/bad_option_3.result | 1 +
mysql-test/suite/perfschema/r/bad_option_4.result | 1 +
mysql-test/suite/perfschema/r/bad_option_5.result | 1 +
.../suite/perfschema/r/privilege_table_io.result | 2 -
mysql-test/suite/perfschema/t/bad_option_1.test | 5 +
mysql-test/suite/perfschema/t/bad_option_2.test | 5 +
mysql-test/suite/perfschema/t/bad_option_3.test | 5 +
mysql-test/suite/perfschema/t/bad_option_4.test | 5 +
mysql-test/suite/perfschema/t/bad_option_5.test | 5 +
.../suite/perfschema/t/privilege_table_io.test | 1 -
mysql-test/suite/plugins/r/audit_null_debug.result | 4 +
mysql-test/suite/plugins/r/auth_ed25519.result | 25 +-
.../suite/plugins/r/simple_password_check.result | 5 +-
mysql-test/suite/plugins/t/audit_null_debug.test | 4 +-
mysql-test/suite/plugins/t/auth_ed25519.test | 9 +
.../suite/plugins/t/simple_password_check.test | 6 +-
mysql-test/suite/rpl/include/check_type.inc | 8 +
mysql-test/suite/rpl/include/rpl_foreign_key.test | 60 -
.../rpl/include/rpl_lower_case_table_names.test | 141 +
mysql-test/suite/rpl/include/rpl_mixed_dml.inc | 1 -
mysql-test/suite/rpl/include/rpl_row_001.test | 4 +-
mysql-test/suite/rpl/include/type_conversions.test | 91 +
mysql-test/suite/rpl/r/rpl_15919.result | 19 +
mysql-test/suite/rpl/r/rpl_auto_increment.result | 16 -
.../rpl/r/rpl_auto_increment_update_failure.result | 112 -
mysql-test/suite/rpl/r/rpl_binlog_index.result | 4 -
mysql-test/suite/rpl/r/rpl_checksum_cache.result | 24 -
.../suite/rpl/r/rpl_conditional_comments.result | 12 -
mysql-test/suite/rpl/r/rpl_corruption.result | 4 -
mysql-test/suite/rpl/r/rpl_create_drop_user.result | 44 +-
mysql-test/suite/rpl/r/rpl_current_user.result | 78 -
mysql-test/suite/rpl/r/rpl_do_grant.result | 1 +
.../suite/rpl/r/rpl_foreign_key_innodb.result | 3 +-
mysql-test/suite/rpl/r/rpl_gtid_ignored.result | 2 +-
mysql-test/suite/rpl/r/rpl_gtid_mdev4484.result | 2 +-
mysql-test/suite/rpl/r/rpl_gtid_stop_start.result | 2 +-
mysql-test/suite/rpl/r/rpl_innodb_bug28430.result | 12 +
mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result | 15 +-
mysql-test/suite/rpl/r/rpl_insert_ignore.result | 8 -
.../rpl/r/rpl_lcase_tblnames_rewrite_db.result | 38 +
mysql-test/suite/rpl/r/rpl_loaddata.result | 4 -
mysql-test/suite/rpl/r/rpl_loadfile.result | 4 -
.../suite/rpl/r/rpl_lost_events_on_rotate.result | 4 -
mysql-test/suite/rpl/r/rpl_mdev10863.result | 2 +-
mysql-test/suite/rpl/r/rpl_mdev12179.result | 12 +-
.../rpl/r/rpl_mixed_binlog_max_cache_size.result | 28 -
.../rpl/r/rpl_mixed_implicit_commit_binlog.result | 4 -
.../rpl/r/rpl_nondeterministic_functions.result | 4 -
mysql-test/suite/rpl/r/rpl_not_null_innodb.result | 16 -
mysql-test/suite/rpl/r/rpl_not_null_myisam.result | 16 -
mysql-test/suite/rpl/r/rpl_old_master.result | 3 +
.../suite/rpl/r/rpl_parallel_optimistic.result | 8 +
mysql-test/suite/rpl/r/rpl_reset_slave_fail.result | 4 -
mysql-test/suite/rpl/r/rpl_row_001.result | 4 +-
.../suite/rpl/r/rpl_row_basic_2myisam.result | 32 -
.../suite/rpl/r/rpl_row_basic_3innodb.result | 32 -
mysql-test/suite/rpl/r/rpl_row_find_row.result | 4 -
mysql-test/suite/rpl/r/rpl_row_img_blobs.result | 2016 --
mysql-test/suite/rpl/r/rpl_row_img_eng_min.result | 1152 -
.../suite/rpl/r/rpl_row_img_eng_noblob.result | 1152 -
.../rpl/r/rpl_row_implicit_commit_binlog.result | 4 -
.../suite/rpl/r/rpl_row_lcase_tblnames.result | 60 +
.../suite/rpl/r/rpl_row_loaddata_concurrent.result | 4 -
mysql-test/suite/rpl/r/rpl_row_merge_engine.result | 16 -
.../suite/rpl/r/rpl_row_rec_comp_innodb.result | 12 -
.../suite/rpl/r/rpl_row_rec_comp_myisam.result | 16 -
mysql-test/suite/rpl/r/rpl_row_spatial.result | 16 +
mysql-test/suite/rpl/r/rpl_row_tbl_metadata.result | 44 -
mysql-test/suite/rpl/r/rpl_row_utf16.result | 4 -
.../rpl/r/rpl_semi_sync_master_shutdown.result | 33 +
mysql-test/suite/rpl/r/rpl_set_null_innodb.result | 16 -
mysql-test/suite/rpl/r/rpl_set_null_myisam.result | 16 -
mysql-test/suite/rpl/r/rpl_slave_load_in.result | 8 -
mysql-test/suite/rpl/r/rpl_special_charset.result | 4 -
mysql-test/suite/rpl/r/rpl_stm_000001.result | 7 +-
.../rpl/r/rpl_stm_binlog_max_cache_size.result | 28 -
.../rpl/r/rpl_stm_implicit_commit_binlog.result | 4 -
.../suite/rpl/r/rpl_stm_lcase_tblnames.result | 57 +
.../suite/rpl/r/rpl_stm_loaddata_concurrent.result | 4 -
.../suite/rpl/r/rpl_stm_relay_ign_space.result | 4 -
.../suite/rpl/r/rpl_stm_user_variables.result | 4 -
mysql-test/suite/rpl/r/rpl_stop_slave.result | 8 -
.../suite/rpl/r/rpl_switch_stm_row_mixed.result | 2 +-
mysql-test/suite/rpl/r/rpl_sync.result | 8 -
.../suite/rpl/r/rpl_temp_table_mix_row.result | 4 -
mysql-test/suite/rpl/r/rpl_test_framework.result | 126 -
mysql-test/suite/rpl/r/rpl_trigger.result | 8 -
mysql-test/suite/rpl/r/rpl_truncate_2myisam.result | 16 -
mysql-test/suite/rpl/r/rpl_truncate_3innodb.result | 16 -
mysql-test/suite/rpl/r/rpl_typeconv.result | 44 +
mysql-test/suite/rpl/r/rpl_typeconv_innodb.result | 4 -
.../suite/rpl/r/rpl_unsafe_statements.result | 24 -
mysql-test/suite/rpl/r/rpl_variables.result | 20 -
mysql-test/suite/rpl/r/rpl_variables_stm.result | 20 -
mysql-test/suite/rpl/t/rpl_15919-slave.opt | 1 +
mysql-test/suite/rpl/t/rpl_15919.test | 18 +
mysql-test/suite/rpl/t/rpl_create_drop_user.test | 18 +-
mysql-test/suite/rpl/t/rpl_do_grant.test | 1 +
mysql-test/suite/rpl/t/rpl_drop_db.test | 8 +-
mysql-test/suite/rpl/t/rpl_foreign_key_innodb.test | 62 +-
mysql-test/suite/rpl/t/rpl_gtid_ignored.test | 2 +-
mysql-test/suite/rpl/t/rpl_gtid_mdev4484.test | 2 +-
mysql-test/suite/rpl/t/rpl_gtid_stop_start.test | 2 +-
.../rpl/t/rpl_lcase_tblnames_rewrite_db-slave.opt | 1 +
.../suite/rpl/t/rpl_lcase_tblnames_rewrite_db.test | 60 +
mysql-test/suite/rpl/t/rpl_mdev10863.test | 2 +-
mysql-test/suite/rpl/t/rpl_mdev12179.test | 4 +-
mysql-test/suite/rpl/t/rpl_mdev382.test | 1 +
mysql-test/suite/rpl/t/rpl_old_master.test | 8 +
.../suite/rpl/t/rpl_parallel_optimistic.test | 24 +
.../rpl/t/rpl_parallel_optimistic_nobinlog.cnf | 1 +
.../suite/rpl/t/rpl_row_lcase_tblnames-slave.opt | 1 +
mysql-test/suite/rpl/t/rpl_row_lcase_tblnames.test | 12 +
mysql-test/suite/rpl/t/rpl_row_spatial.test | 17 +
.../suite/rpl/t/rpl_semi_sync_master_shutdown.test | 60 +
mysql-test/suite/rpl/t/rpl_stm_000001.test | 5 +-
.../suite/rpl/t/rpl_stm_lcase_tblnames-slave.opt | 1 +
mysql-test/suite/rpl/t/rpl_stm_lcase_tblnames.test | 12 +
.../suite/sql_sequence/auto_increment.result | 30 +
mysql-test/suite/sql_sequence/auto_increment.test | 30 +
mysql-test/suite/sql_sequence/create.result | 9 +
mysql-test/suite/sql_sequence/create.test | 11 +
mysql-test/suite/sql_sequence/next.result | 15 +
mysql-test/suite/sql_sequence/next.test | 11 +
.../sys_vars/r/delayed_insert_limit_func.result | 4 +-
.../r/innodb_ft_result_cache_limit_32.result | 7 +
.../r/innodb_ft_result_cache_limit_64.result | 5 +
.../innodb_ft_result_cache_limit_basic,32bit.rdiff | 13 +
.../r/innodb_ft_result_cache_limit_basic.result | 7 +-
.../r/innodb_log_optimize_ddl_basic.result | 39 +
.../r/shared_memory_base_name_basic.result | 21 -
.../suite/sys_vars/r/shared_memory_basic.result | 21 -
.../r/sql_low_priority_updates_func.result | 4 +-
.../suite/sys_vars/r/sysvars_innodb,32bit.rdiff | 118 +-
mysql-test/suite/sys_vars/r/sysvars_innodb.result | 16 +-
.../sys_vars/r/sysvars_server_embedded.result | 30 +-
.../sys_vars/r/sysvars_server_notembedded.result | 30 +-
.../suite/sys_vars/r/thread_pool_size_high.result | 1 +
.../sys_vars/r/wsrep_start_position_basic.result | 10 +-
.../sys_vars/t/delayed_insert_limit_func.test | 20 +-
.../t/innodb_ft_result_cache_limit_32.test | 9 +
.../t/innodb_ft_result_cache_limit_64.test | 9 +
.../t/innodb_ft_result_cache_limit_basic.test | 5 +-
.../sys_vars/t/innodb_log_optimize_ddl_basic.test | 65 +
.../sys_vars/t/shared_memory_base_name_basic.test | 25 -
.../suite/sys_vars/t/shared_memory_basic.test | 20 -
.../sys_vars/t/sql_low_priority_updates_func.test | 4 +-
.../suite/sys_vars/t/thread_pool_size_high.test | 1 +
.../sys_vars/t/wsrep_start_position_basic.test | 6 +-
mysql-test/suite/vcol/r/index.result | 10 +
mysql-test/suite/vcol/r/races.result | 16 +
mysql-test/suite/vcol/r/wrong_arena.result | 28 +-
mysql-test/suite/vcol/t/index.test | 16 +
mysql-test/suite/vcol/t/races.test | 22 +
mysql-test/suite/versioning/innodb.combinations | 5 +
mysql-test/suite/versioning/innodb.inc | 1 +
mysql-test/suite/versioning/r/alter.result | 2 +-
mysql-test/suite/versioning/r/online.result | 134 +-
mysql-test/suite/versioning/r/partition.result | 8 +-
mysql-test/suite/versioning/r/truncate.result | 6 +
mysql-test/suite/versioning/r/trx_id.result | 3 +
.../trx_id_versioning_attribute_persistence.result | 86 -
mysql-test/suite/versioning/t/online.test | 148 +-
mysql-test/suite/versioning/t/truncate.test | 10 +
mysql-test/suite/versioning/t/trx_id.test | 2 +
.../t/trx_id_versioning_attribute_persistence.test | 87 -
.../suite/wsrep/include/check_galera_version.inc | 20 +-
mysql-test/suite/wsrep/r/variables.result | 4 +
mysql-test/suite/wsrep/t/variables.test | 11 +-
mysql-test/unstable-tests | 479 +-
mysql-test/valgrind.supp | 13 +
mysys/CMakeLists.txt | 1 +
mysys/mf_iocache.c | 20 +-
mysys/mf_iocache2.c | 4 +-
mysys/my_alloc.c | 14 +-
mysys/my_pread.c | 26 +-
mysys/my_rename.c | 5 +-
mysys/my_static.c | 2 +-
mysys/ptr_cmp.c | 7 +
mysys_ssl/openssl.c | 3 +-
pcre/CMakeLists.txt | 63 +-
pcre/pcre_grep_test.sh | 13 +
pcre/pcre_test.bat | 9 +
pcre/pcre_test.sh | 11 +
plugin/auth_ed25519/ed25519-t.c | 2 +-
plugin/auth_ed25519/server_ed25519.c | 47 +-
plugin/auth_examples/dialog_examples.c | 6 +-
plugin/auth_examples/qa_auth_interface.c | 3 +-
plugin/auth_examples/qa_auth_server.c | 3 +-
plugin/auth_examples/test_plugin.c | 6 +-
.../auth_gssapi/mysql-test/auth_gssapi/basic.test | 1 +
plugin/auth_gssapi/sspi_server.cc | 9 +-
plugin/auth_pam/auth_pam_common.c | 3 +-
plugin/auth_pam/mapper/pam_user_map.c | 6 +-
plugin/auth_socket/auth_socket.c | 3 +-
plugin/aws_key_management/CMakeLists.txt | 8 +-
.../aws_key_management_plugin.cc | 29 +-
.../cracklib_password_check.c | 3 +-
plugin/handler_socket/CMakeLists.txt | 9 +-
.../simple_password_check/simple_password_check.c | 4 +-
plugin/user_variables/user_variables.cc | 2 +-
scripts/CMakeLists.txt | 2 +
scripts/fill_help_tables.sql | 2 +
scripts/galera_new_cluster.sh | 7 +-
scripts/galera_recovery.sh | 3 +-
scripts/mysql_install_db.sh | 9 +-
scripts/mysql_system_tables.sql | 71 +-
scripts/mysql_system_tables_fix.sql | 147 +-
scripts/mysqld_multi.sh | 21 +-
scripts/wsrep_sst_common.sh | 32 +-
scripts/wsrep_sst_mariabackup.sh | 32 +-
scripts/wsrep_sst_rsync.sh | 153 +-
scripts/wsrep_sst_xtrabackup-v2.sh | 51 +-
sql-common/client.c | 321 +-
sql-common/my_time.c | 420 +-
sql/CMakeLists.txt | 37 +-
sql/compat56.cc | 3 +
sql/contributors.h | 4 +-
sql/event_data_objects.cc | 12 +-
sql/event_parse_data.cc | 8 +-
sql/events.cc | 22 +-
sql/field.cc | 329 +-
sql/field.h | 111 +-
sql/field_conv.cc | 4 +-
sql/filesort.cc | 6 +-
sql/gcalc_slicescan.cc | 11 +
sql/gcalc_slicescan.h | 7 +
sql/gcalc_tools.cc | 11 +
sql/gcalc_tools.h | 1 +
sql/ha_partition.cc | 157 +-
sql/ha_partition.h | 11 +-
sql/handle_connections_win.cc | 555 +
sql/handle_connections_win.h | 20 +
sql/handler.cc | 51 +-
sql/handler.h | 64 +-
sql/init.h | 2 +-
sql/item.cc | 422 +-
sql/item.h | 317 +-
sql/item_cmpfunc.cc | 121 +-
sql/item_cmpfunc.h | 51 +-
sql/item_create.cc | 21 +-
sql/item_func.cc | 79 +-
sql/item_func.h | 130 +-
sql/item_jsonfunc.cc | 47 +-
sql/item_jsonfunc.h | 2 +-
sql/item_row.h | 2 +-
sql/item_strfunc.cc | 136 +-
sql/item_strfunc.h | 12 +-
sql/item_subselect.cc | 9 +-
sql/item_subselect.h | 6 +-
sql/item_sum.cc | 28 +-
sql/item_sum.h | 20 +-
sql/item_timefunc.cc | 427 +-
sql/item_timefunc.h | 283 +-
sql/item_vers.cc | 7 +-
sql/item_vers.h | 2 +-
sql/item_windowfunc.cc | 21 +-
sql/item_windowfunc.h | 9 +-
sql/key.cc | 3 +-
sql/lock.cc | 16 -
sql/lock.h | 1 -
sql/log.cc | 21 +-
sql/log_event.cc | 60 +-
sql/multi_range_read.cc | 13 +
sql/my_decimal.h | 4 +-
sql/mysql_install_db.cc | 88 +-
sql/mysqld.cc | 901 +-
sql/mysqld.h | 10 +-
sql/net_serv.cc | 2 +-
sql/opt_range.cc | 66 +-
sql/opt_range.h | 5 +-
sql/opt_range_mrr.cc | 54 +-
sql/opt_split.cc | 12 +-
sql/opt_subselect.cc | 119 +-
sql/partition_info.h | 5 +-
sql/procedure.h | 4 +-
sql/protocol.cc | 8 +-
sql/rpl_gtid.cc | 72 +-
sql/rpl_gtid.h | 2 +-
sql/rpl_parallel.cc | 32 +-
sql/rpl_rli.cc | 79 +
sql/rpl_rli.h | 11 +
sql/rpl_utility.cc | 34 +-
sql/semisync_master_ack_receiver.cc | 3 +-
sql/semisync_slave.cc | 3 +-
sql/share/CMakeLists.txt | 12 +-
sql/share/errmsg-utf8.txt | 4 +-
sql/slave.cc | 13 +
sql/sql_acl.cc | 1452 +-
sql/sql_admin.cc | 9 +
sql/sql_alter.cc | 19 +-
sql/sql_alter.h | 2 +-
sql/sql_base.cc | 203 +-
sql/sql_base.h | 6 +-
sql/sql_basic_types.h | 83 +
sql/sql_class.cc | 15 +-
sql/sql_class.h | 42 +-
sql/sql_const.h | 2 +-
sql/sql_cte.cc | 36 +-
sql/sql_cte.h | 19 +-
sql/sql_delete.cc | 17 +-
sql/sql_derived.cc | 5 +-
sql/sql_error.h | 73 +-
sql/sql_get_diagnostics.cc | 2 +-
sql/sql_get_diagnostics.h | 2 +-
sql/sql_insert.cc | 3 +-
sql/sql_lex.cc | 26 +-
sql/sql_lex.h | 11 +-
sql/sql_list.h | 5 +-
sql/sql_parse.cc | 47 +-
sql/sql_partition.cc | 20 +-
sql/sql_partition.h | 4 +
sql/sql_partition_admin.cc | 4 +-
sql/sql_plist.h | 7 +-
sql/sql_plugin.cc | 74 +-
sql/sql_plugin_services.ic | 3 +-
sql/sql_prepare.cc | 29 +-
sql/sql_reload.cc | 14 +-
sql/sql_select.cc | 296 +-
sql/sql_select.h | 8 +-
sql/sql_sequence.cc | 5 +-
sql/sql_show.cc | 56 +-
sql/sql_statistics.cc | 38 +-
sql/sql_statistics.h | 34 +-
sql/sql_string.cc | 23 +-
sql/sql_string.h | 1 +
sql/sql_table.cc | 132 +-
sql/sql_time.cc | 222 +-
sql/sql_time.h | 50 +-
sql/sql_trigger.cc | 26 +-
sql/sql_truncate.cc | 7 +-
sql/sql_tvc.cc | 19 +-
sql/sql_tvc.h | 2 +
sql/sql_type.cc | 756 +-
sql/sql_type.h | 954 +-
sql/sql_type_int.h | 82 +
sql/sql_union.cc | 36 +-
sql/sql_update.cc | 4 +-
sql/sql_view.cc | 12 +-
sql/sql_window.cc | 36 +-
sql/sql_window.h | 6 +-
sql/sql_yacc.yy | 153 +-
sql/sql_yacc_ora.yy | 130 +-
sql/structs.h | 7 +-
sql/sys_vars.cc | 27 +-
sql/sys_vars.ic | 4 +-
sql/table.cc | 73 +-
sql/table.h | 28 +-
sql/table_cache.cc | 19 +-
sql/temporary_tables.cc | 30 +
sql/threadpool_win.cc | 94 +-
sql/tztime.cc | 2 +-
sql/wsrep_applier.cc | 1 +
sql/wsrep_binlog.cc | 52 +-
sql/wsrep_dummy.cc | 3 +
sql/wsrep_hton.cc | 9 +-
sql/wsrep_mysqld.cc | 326 +-
sql/wsrep_mysqld.h | 4 +-
sql/wsrep_sst.cc | 121 +-
sql/wsrep_sst.h | 1 +
sql/wsrep_var.cc | 11 +-
sql/wsrep_xid.cc | 5 +-
storage/cassandra/CMakeLists.txt | 1 -
storage/connect/CMakeLists.txt | 19 +-
storage/connect/connect.cc | 2 +-
storage/connect/filamdbf.cpp | 4 +-
storage/connect/filamtxt.cpp | 4 +-
storage/connect/filamvct.cpp | 11 +-
storage/connect/global.h | 4 +-
storage/connect/ha_connect.cc | 124 +-
storage/connect/ha_connect.h | 6 +-
storage/connect/inihandl.cpp | 2 +-
storage/connect/javaconn.cpp | 43 +-
storage/connect/javaconn.h | 1 +
storage/connect/jdbconn.cpp | 38 +-
storage/connect/jmgoconn.cpp | 6 +-
storage/connect/jsonudf.cpp | 2 +-
storage/connect/mysql-test/connect/disabled.def | 23 +-
storage/connect/mysql-test/connect/r/jdbc.result | 4 +-
.../mysql-test/connect/r/json_java_2.result | 1 -
.../mysql-test/connect/r/json_java_3.result | 1 -
.../mysql-test/connect/r/mongo_java_2.result | 1 -
.../mysql-test/connect/r/mongo_java_3.result | 1 -
.../connect/mysql-test/connect/r/mysql_exec.result | 6 +
.../mysql-test/connect/r/odbc_postgresql.result | 18 +-
storage/connect/mysql-test/connect/r/xml2.result | 31 -
.../connect/mysql-test/connect/r/xml2_mult.result | 8 +-
.../connect/mysql-test/connect/r/xml_mult.result | 8 +-
.../connect/mysql-test/connect/t/json_java_2.test | 2 +
.../connect/mysql-test/connect/t/json_java_3.test | 2 +
.../connect/mysql-test/connect/t/mongo_java_2.test | 2 +
.../connect/mysql-test/connect/t/mongo_java_3.test | 2 +
storage/connect/mysql-test/connect/t/xml2.test | 36 +-
storage/connect/odbconn.cpp | 10 +-
storage/connect/tabext.cpp | 6 +
storage/connect/tabjdbc.cpp | 9 +-
storage/connect/tabjmg.cpp | 11 +-
storage/connect/tabmysql.cpp | 11 +-
storage/connect/tabodbc.cpp | 13 +-
storage/connect/tabpivot.cpp | 166 +-
storage/connect/tabutil.cpp | 2 +-
storage/connect/tabxml.cpp | 2 +-
storage/heap/hp_create.c | 22 +-
storage/innobase/CMakeLists.txt | 2 -
storage/innobase/btr/btr0btr.cc | 282 +-
storage/innobase/btr/btr0bulk.cc | 242 +-
storage/innobase/btr/btr0cur.cc | 625 +-
storage/innobase/btr/btr0pcur.cc | 11 +-
storage/innobase/btr/btr0sea.cc | 12 +-
storage/innobase/buf/buf0buddy.cc | 2 +-
storage/innobase/buf/buf0buf.cc | 62 +-
storage/innobase/buf/buf0dblwr.cc | 10 +-
storage/innobase/buf/buf0dump.cc | 6 +-
storage/innobase/buf/buf0flu.cc | 14 +-
storage/innobase/buf/buf0lru.cc | 31 +-
storage/innobase/buf/buf0rea.cc | 64 +-
storage/innobase/data/data0data.cc | 66 +-
storage/innobase/dict/dict0boot.cc | 10 +-
storage/innobase/dict/dict0crea.cc | 228 +-
storage/innobase/dict/dict0defrag_bg.cc | 47 +-
storage/innobase/dict/dict0dict.cc | 155 +-
storage/innobase/dict/dict0mem.cc | 356 +-
storage/innobase/dict/dict0stats.cc | 10 +-
storage/innobase/dict/dict0stats_bg.cc | 100 +-
storage/innobase/fil/fil0crypt.cc | 6 +-
storage/innobase/fil/fil0fil.cc | 371 +-
storage/innobase/fsp/fsp0fsp.cc | 65 +-
storage/innobase/fts/fts0ast.cc | 9 +-
storage/innobase/fts/fts0fts.cc | 94 +-
storage/innobase/fts/fts0opt.cc | 171 +-
storage/innobase/fts/fts0pars.cc | 16 +-
storage/innobase/fts/fts0pars.y | 16 +-
storage/innobase/fts/fts0que.cc | 23 +-
storage/innobase/fut/fut0lst.cc | 4 +-
storage/innobase/gis/gis0rtree.cc | 6 +-
storage/innobase/gis/gis0sea.cc | 7 +-
storage/innobase/handler/ha_innodb.cc | 919 +-
storage/innobase/handler/ha_innodb.h | 81 +-
storage/innobase/handler/handler0alter.cc | 2329 +-
storage/innobase/handler/i_s.cc | 8 +-
storage/innobase/ibuf/ibuf0ibuf.cc | 35 +-
storage/innobase/include/btr0btr.h | 25 +-
storage/innobase/include/btr0btr.ic | 4 +-
storage/innobase/include/btr0bulk.h | 67 +-
storage/innobase/include/btr0cur.h | 22 +-
storage/innobase/include/btr0pcur.h | 12 +
storage/innobase/include/btr0sea.h | 2 +-
storage/innobase/include/btr0types.h | 32 +-
storage/innobase/include/buf0buf.h | 114 +-
storage/innobase/include/buf0buf.ic | 26 +-
storage/innobase/include/buf0flu.h | 7 +-
storage/innobase/include/buf0lru.h | 6 +-
storage/innobase/include/buf0rea.h | 8 +-
storage/innobase/include/data0data.h | 32 +-
storage/innobase/include/data0type.h | 44 +
storage/innobase/include/db0err.h | 2 -
storage/innobase/include/dict0defrag_bg.h | 19 +
storage/innobase/include/dict0dict.h | 35 +-
storage/innobase/include/dict0dict.ic | 3 +-
storage/innobase/include/dict0mem.h | 279 +-
storage/innobase/include/dict0stats.h | 18 +-
storage/innobase/include/fil0fil.h | 117 +-
storage/innobase/include/fsp0fsp.h | 40 +-
storage/innobase/include/fsp0fsp.ic | 2 +-
storage/innobase/include/fts0ast.h | 5 +-
storage/innobase/include/fts0fts.h | 12 +-
storage/innobase/include/fts0priv.h | 11 +-
storage/innobase/include/fts0types.h | 4 +-
storage/innobase/include/fut0lst.h | 49 +-
storage/innobase/include/fut0lst.ic | 22 +-
storage/innobase/include/ha_prototypes.h | 3 +
storage/innobase/include/ibuf0ibuf.h | 12 +-
storage/innobase/include/ibuf0ibuf.ic | 2 +-
storage/innobase/include/lock0lock.h | 63 -
storage/innobase/include/lock0priv.h | 139 +-
storage/innobase/include/lock0priv.ic | 12 +-
storage/innobase/include/lock0types.h | 192 +-
storage/innobase/include/log0crypt.h | 19 +-
storage/innobase/include/log0log.h | 93 +-
storage/innobase/include/log0log.ic | 6 +-
storage/innobase/include/log0recv.h | 54 +-
storage/innobase/include/mtr0log.h | 20 +-
storage/innobase/include/mtr0mtr.h | 35 +-
storage/innobase/include/mtr0types.h | 8 +-
storage/innobase/include/os0file.h | 7 +-
storage/innobase/include/page0cur.h | 14 +
storage/innobase/include/page0cur.ic | 1 +
storage/innobase/include/page0page.h | 27 +-
storage/innobase/include/page0page.ic | 18 -
storage/innobase/include/page0size.h | 2 +-
storage/innobase/include/page0types.h | 12 -
storage/innobase/include/page0zip.h | 6 +-
storage/innobase/include/page0zip.ic | 2 +-
storage/innobase/include/rem0rec.h | 193 +-
storage/innobase/include/rem0rec.ic | 54 +-
storage/innobase/include/row0ftsort.h | 10 +
storage/innobase/include/row0ins.h | 10 -
storage/innobase/include/row0mysql.h | 62 +-
storage/innobase/include/row0row.h | 29 +-
storage/innobase/include/row0row.ic | 4 +-
storage/innobase/include/row0trunc.h | 427 -
storage/innobase/include/row0upd.h | 9 +-
storage/innobase/include/srv0srv.h | 25 +-
storage/innobase/include/sync0arr.ic | 3 +-
storage/innobase/include/trx0purge.h | 245 +-
storage/innobase/include/trx0rec.h | 9 +-
storage/innobase/include/trx0sys.h | 11 +-
storage/innobase/include/trx0trx.h | 30 +-
storage/innobase/include/trx0undo.h | 21 +-
storage/innobase/include/trx0undo.ic | 4 +-
storage/innobase/include/univ.i | 3 +-
storage/innobase/include/ut0counter.h | 119 +-
storage/innobase/include/ut0pool.h | 20 +-
storage/innobase/lock/lock0lock.cc | 158 +-
storage/innobase/log/log0crypt.cc | 147 +-
storage/innobase/log/log0log.cc | 74 +-
storage/innobase/log/log0recv.cc | 411 +-
storage/innobase/mtr/mtr0log.cc | 123 +-
storage/innobase/mtr/mtr0mtr.cc | 31 +-
storage/innobase/os/os0file.cc | 49 +-
storage/innobase/page/page0cur.cc | 39 +-
storage/innobase/page/page0page.cc | 42 +-
storage/innobase/page/page0zip.cc | 92 +-
storage/innobase/que/que0que.cc | 3 +-
storage/innobase/rem/rem0rec.cc | 556 +-
storage/innobase/row/row0ftsort.cc | 9 +-
storage/innobase/row/row0import.cc | 105 +-
storage/innobase/row/row0ins.cc | 127 +-
storage/innobase/row/row0log.cc | 120 +-
storage/innobase/row/row0merge.cc | 75 +-
storage/innobase/row/row0mysql.cc | 347 +-
storage/innobase/row/row0purge.cc | 51 +-
storage/innobase/row/row0quiesce.cc | 7 +-
storage/innobase/row/row0row.cc | 638 +-
storage/innobase/row/row0sel.cc | 29 +-
storage/innobase/row/row0trunc.cc | 3217 --
storage/innobase/row/row0uins.cc | 57 +-
storage/innobase/row/row0umod.cc | 117 +-
storage/innobase/row/row0undo.cc | 8 +-
storage/innobase/row/row0upd.cc | 129 +-
storage/innobase/row/row0vers.cc | 3 +
storage/innobase/srv/srv0srv.cc | 78 +-
storage/innobase/srv/srv0start.cc | 271 +-
storage/innobase/sync/sync0rw.cc | 107 +-
storage/innobase/trx/trx0purge.cc | 758 +-
storage/innobase/trx/trx0rec.cc | 191 +-
storage/innobase/trx/trx0roll.cc | 2 +-
storage/innobase/trx/trx0rseg.cc | 40 +-
storage/innobase/trx/trx0sys.cc | 7 +-
storage/innobase/trx/trx0trx.cc | 109 +-
storage/innobase/trx/trx0undo.cc | 86 +-
storage/innobase/ut/ut0new.cc | 1 -
storage/innobase/ut/ut0ut.cc | 2 -
storage/maria/CMakeLists.txt | 3 +-
storage/maria/ha_maria.cc | 91 +-
storage/maria/ma_blockrec.c | 21 +-
storage/maria/ma_check.c | 20 +-
storage/maria/ma_commit.c | 2 +-
storage/maria/ma_control_file.c | 4 +-
storage/maria/ma_control_file.h | 2 +-
storage/maria/ma_create.c | 22 +-
storage/maria/ma_ft_boolean_search.c | 2 +-
storage/maria/ma_info.c | 6 +-
storage/maria/ma_key_recover.c | 2 -
storage/maria/ma_locking.c | 3 +-
storage/maria/ma_norec.c | 4 +-
storage/maria/ma_open.c | 35 +-
storage/maria/ma_page.c | 3 +-
storage/maria/ma_recovery.c | 25 +-
storage/maria/ma_state.c | 25 +-
storage/maria/ma_test2.c | 5 +
storage/maria/ma_trnman.h | 36 +-
storage/maria/ma_write.c | 15 +-
storage/maria/maria_chk.c | 52 +-
storage/maria/maria_def.h | 5 +-
storage/maria/maria_read_log.c | 6 +-
storage/maria/trnman.c | 3 +
storage/maria/unittest/ma_test_all-t | 7 +-
storage/maria/unittest/ma_test_recovery.expected | 192 +-
storage/maria/unittest/ma_test_recovery.pl | 4 +-
storage/mroonga/CMakeLists.txt | 3 +-
storage/mroonga/ha_mroonga.cpp | 35 +-
storage/mroonga/ha_mroonga.hpp | 6 +-
storage/mroonga/lib/mrn_condition_converter.cpp | 4 +-
.../mroonga/lib/mrn_multiple_column_key_codec.cpp | 7 +-
storage/mroonga/mrn_table.hpp | 3 +
storage/mroonga/vendor/groonga/config.h.cmake | 1 +
storage/mroonga/vendor/groonga/lib/expr.c | 2 +-
.../mroonga/vendor/groonga/lib/ts/ts_expr_node.c | 2 +-
storage/myisam/ha_myisam.cc | 52 +-
storage/myisam/mi_check.c | 16 +-
storage/myisam/mi_locking.c | 6 +-
.../mysql-test/storage_engine/disabled.def | 1 +
storage/oqgraph/CMakeLists.txt | 1 -
storage/perfschema/unittest/pfs-t.cc | 5 +-
storage/rocksdb/CMakeLists.txt | 10 +-
storage/rocksdb/build_rocksdb.cmake | 42 +-
storage/rocksdb/event_listener.cc | 2 +-
storage/rocksdb/event_listener.h | 2 +-
storage/rocksdb/ha_rocksdb.cc | 1256 +-
storage/rocksdb/ha_rocksdb.h | 55 +-
storage/rocksdb/ha_rocksdb_proto.h | 9 +-
storage/rocksdb/logger.h | 2 +-
storage/rocksdb/mysql-test/rocksdb/combinations | 6 +
.../rocksdb/include/have_write_committed.inc | 3 +
.../mysql-test/rocksdb/r/2pc_group_commit.result | 30 +-
.../mysql-test/rocksdb/r/add_index_inplace.result | 24 +
.../r/add_index_inplace_sstfilewriter.result | 2 +-
.../mysql-test/rocksdb/r/autoinc_debug.result | 40 +-
.../mysql-test/rocksdb/r/autoinc_vars.result | 26 +
.../rocksdb/r/bloomfilter_bulk_load.result | 15 +
.../mysql-test/rocksdb/r/bulk_load_sk.result | 229 +
.../mysql-test/rocksdb/r/cardinality.result | 17 +-
.../rocksdb/mysql-test/rocksdb/r/collation.result | 20 +-
.../rocksdb/mysql-test/rocksdb/r/com_rpc_tx.result | 21 +
.../rocksdb/r/create_no_primary_key_table.result | 38 +
.../mysql-test/rocksdb/r/ddl_high_priority.result | 71 +-
.../mysql-test/rocksdb/r/deadlock_tracking.result | 57 +
.../rocksdb/mysql-test/rocksdb/r/drop_table.result | 19 +
.../mysql-test/rocksdb/r/explicit_snapshot.result | 265 +
.../mysql-test/rocksdb/r/i_s_deadlock.result | 55 +-
.../mysql-test/rocksdb/r/index_file_map.result | 3 +
.../rocksdb/r/index_merge_rocksdb2.result | 52 +-
.../mysql-test/rocksdb/r/information_schema.result | 1 +
.../rocksdb/mysql-test/rocksdb/r/issue255.result | 14 +-
storage/rocksdb/mysql-test/rocksdb/r/lock.result | 15 +
.../mysql-test/rocksdb/r/mariadb_port_fixes.result | 1 +
storage/rocksdb/mysql-test/rocksdb/r/misc.result | 2 -
.../rocksdb/mysql-test/rocksdb/r/mysqldump.result | 5 +-
.../r/percona_nonflushing_analyze_debug.result | 19 +
.../rocksdb/r/prefix_extractor_override.result | 7 +-
.../rocksdb/mysql-test/rocksdb/r/rocksdb.result | 24 +-
.../mysql-test/rocksdb/r/rocksdb_checksums.result | 27 +-
.../rocksdb/r/rocksdb_deadlock_detect_rc.result | 23 +-
.../rocksdb/r/rocksdb_deadlock_detect_rr.result | 23 +-
.../mysql-test/rocksdb/r/rocksdb_range2.result | 17 +
.../rocksdb/r/secondary_key_update_lock.result | 18 +
.../mysql-test/rocksdb/r/show_engine.result | 53 +
.../mysql-test/rocksdb/r/transaction.result | 17 +
.../mysql-test/rocksdb/r/trx_info_rpl.result | 2 +-
storage/rocksdb/mysql-test/rocksdb/r/update.result | 8 +
.../mysql-test/rocksdb/r/use_direct_reads.result | 18 +
.../mysql-test/rocksdb/r/validate_datadic.result | 5 +-
.../mysql-test/rocksdb/t/2pc_group_commit.test | 24 +-
.../mysql-test/rocksdb/t/add_index_inplace.test | 18 +
.../rocksdb/t/add_index_inplace_crash.test | 1 +
.../rocksdb/t/add_index_inplace_sstfilewriter.test | 2 +-
.../t/allow_to_start_after_corruption-master.opt | 1 +
.../mysql-test/rocksdb/t/autoinc_debug-master.opt | 2 +-
.../mysql-test/rocksdb/t/autoinc_debug.test | 17 +-
.../rocksdb/mysql-test/rocksdb/t/autoinc_vars.test | 33 +
.../mysql-test/rocksdb/t/bloomfilter5-master.opt | 4 +-
.../rocksdb/t/bloomfilter_bulk_load-master.opt | 2 +
.../rocksdb/t/bloomfilter_bulk_load.test | 35 +
.../mysql-test/rocksdb/t/bulk_load_errors.test | 7 +
.../rocksdb/mysql-test/rocksdb/t/bulk_load_sk.test | 119 +
.../rocksdb/mysql-test/rocksdb/t/cardinality.test | 21 +-
.../rocksdb/t/check_ignore_unknown_options.test | 6 +-
.../rocksdb/mysql-test/rocksdb/t/collation.test | 36 +-
.../rocksdb/mysql-test/rocksdb/t/com_rpc_tx.cnf | 4 +
.../rocksdb/mysql-test/rocksdb/t/com_rpc_tx.test | 87 +
.../t/create_no_primary_key_table-master.opt | 1 +
.../rocksdb/t/create_no_primary_key_table.test | 44 +
.../mysql-test/rocksdb/t/deadlock_tracking.test | 76 +-
storage/rocksdb/mysql-test/rocksdb/t/disabled.def | 12 +-
.../rocksdb/mysql-test/rocksdb/t/drop_table.test | 27 +
.../rocksdb/t/explicit_snapshot-master.opt | 1 +
.../mysql-test/rocksdb/t/explicit_snapshot.test | 263 +
.../rocksdb/mysql-test/rocksdb/t/i_s_deadlock.test | 14 +-
.../mysql-test/rocksdb/t/index_file_map.test | 3 +
.../rocksdb/t/index_merge_rocksdb2-master.opt | 2 +-
.../mysql-test/rocksdb/t/information_schema.test | 1 +
.../rocksdb/t/insert_optimized_config-master.opt | 8 -
.../rocksdb/t/insert_optimized_config.test | 10 +
storage/rocksdb/mysql-test/rocksdb/t/issue255.test | 16 +-
storage/rocksdb/mysql-test/rocksdb/t/lock.test | 22 +
.../t/percona_nonflushing_analyze_debug.test | 11 +
.../rocksdb/t/prefix_extractor_override.test | 14 +-
storage/rocksdb/mysql-test/rocksdb/t/rocksdb.test | 3 +-
.../mysql-test/rocksdb/t/rocksdb_checksums.test | 23 +-
.../rocksdb/t/rocksdb_deadlock_detect.inc | 35 +-
.../mysql-test/rocksdb/t/rocksdb_range2.test | 12 +
.../rocksdb/t/secondary_key_update_lock.test | 26 +
.../mysql-test/rocksdb/t/set_checkpoint.inc | 2 +-
.../rocksdb/mysql-test/rocksdb/t/show_engine.test | 13 +
.../rocksdb/mysql-test/rocksdb/t/transaction.test | 23 +
.../rocksdb/mysql-test/rocksdb/t/trx_info_rpl.test | 4 +-
storage/rocksdb/mysql-test/rocksdb/t/update.test | 10 +
.../mysql-test/rocksdb/t/use_direct_reads.test | 37 +
.../mysql-test/rocksdb/t/validate_datadic.test | 25 +-
.../rocksdb/mysql-test/rocksdb_rpl/combinations | 8 +-
.../r/rpl_missing_columns_sk_update.result | 62 +
.../rpl_mts_dependency_unique_key_conflicts.result | 44 +
.../rocksdb_rpl/r/rpl_rocksdb_snapshot.result | 4 +-
.../rocksdb/mysql-test/rocksdb_rpl/t/disabled.def | 2 +
.../t/rpl_gtid_crash_safe_wal_corrupt.inc | 2 +-
.../t/rpl_missing_columns_sk_update.cnf | 13 +
.../t/rpl_missing_columns_sk_update.test | 69 +
.../t/rpl_mts_dependency_unique_key_conflicts.test | 64 +
.../t/rpl_rocksdb_2pc_crash_recover.test | 1 +
.../rocksdb/mysql-test/rocksdb_stress/combinations | 5 +
.../r/rocksdb_block_cache_size_basic.result | 84 +-
.../r/rocksdb_bulk_load_allow_sk_basic.result | 100 +
...sdb_commit_time_batch_for_recovery_basic.result | 121 +
.../r/rocksdb_create_checkpoint_basic.result | 2 +-
...ksdb_debug_manual_compaction_delay_basic.result | 46 +
...ksdb_error_on_suboptimal_collation_basic.result | 7 +
.../rocksdb_manual_compaction_threads_basic.result | 93 +
.../r/rocksdb_max_manifest_file_size_basic.result | 2 +-
.../r/rocksdb_max_manual_compactions_basic.result | 57 +
.../r/rocksdb_max_row_locks_basic.result | 21 +
.../r/rocksdb_stats_recalc_rate_basic.result | 53 +
.../r/rocksdb_write_batch_max_bytes_basic.result | 4 +-
.../r/rocksdb_write_policy_basic.result | 15 +
.../t/rocksdb_block_cache_size_basic.test | 16 +-
.../t/rocksdb_bulk_load_allow_sk_basic.test | 18 +
...cksdb_commit_time_batch_for_recovery_basic.test | 20 +
.../t/rocksdb_create_checkpoint_basic.test | 2 +-
...ocksdb_debug_manual_compaction_delay_basic.test | 16 +
...ocksdb_error_on_suboptimal_collation_basic.test | 6 +
.../t/rocksdb_manual_compaction_threads_basic.test | 17 +
.../t/rocksdb_max_manual_compactions_basic.test | 17 +
.../t/rocksdb_max_row_locks_basic.test | 1 +
.../t/rocksdb_stats_recalc_rate_basic.test | 17 +
.../t/rocksdb_write_batch_max_bytes_basic.test | 4 +-
.../t/rocksdb_write_policy_basic.test | 17 +
.../rocksdb/mysql-test/storage_engine/disabled.def | 1 +
storage/rocksdb/properties_collector.cc | 63 +-
storage/rocksdb/properties_collector.h | 5 +-
storage/rocksdb/rdb_buff.h | 2 +-
storage/rocksdb/rdb_cf_manager.cc | 2 +-
storage/rocksdb/rdb_cf_manager.h | 2 +-
storage/rocksdb/rdb_cf_options.cc | 4 +-
storage/rocksdb/rdb_cf_options.h | 2 +-
storage/rocksdb/rdb_compact_filter.h | 2 +-
storage/rocksdb/rdb_comparator.h | 48 +-
storage/rocksdb/rdb_datadic.cc | 8 +-
storage/rocksdb/rdb_datadic.h | 7 +-
storage/rocksdb/rdb_i_s.cc | 169 +-
storage/rocksdb/rdb_i_s.h | 3 +-
storage/rocksdb/rdb_index_merge.cc | 7 +-
storage/rocksdb/rdb_index_merge.h | 2 +-
storage/rocksdb/rdb_io_watchdog.cc | 2 +-
storage/rocksdb/rdb_io_watchdog.h | 2 +-
storage/rocksdb/rdb_mutex_wrapper.cc | 2 +-
storage/rocksdb/rdb_mutex_wrapper.h | 2 +-
storage/rocksdb/rdb_perf_context.cc | 4 +-
storage/rocksdb/rdb_perf_context.h | 2 +-
storage/rocksdb/rdb_psi.cc | 17 +-
storage/rocksdb/rdb_psi.h | 10 +-
storage/rocksdb/rdb_sst_info.cc | 6 +-
storage/rocksdb/rdb_sst_info.h | 2 +-
storage/rocksdb/rdb_threads.cc | 2 +-
storage/rocksdb/rdb_threads.h | 33 +-
storage/rocksdb/rdb_utils.cc | 25 +-
storage/rocksdb/rdb_utils.h | 2 +-
storage/rocksdb/rocksdb | 2 +-
.../rocksdb/unittest/test_properties_collector.cc | 2 +-
storage/sphinx/ha_sphinx.cc | 2 +-
.../mysql-test/spider/include/direct_join_init.inc | 40 +
.../mysql-test/spider/include/init_child2_1.inc | 14 +
.../mysql-test/spider/include/init_master_1.inc | 4 +
.../mysql-test/spider/include/init_spider.inc | 54 +-
.../mysql-test/spider/r/auto_increment.result | 2 +-
.../spider/mysql-test/spider/r/direct_join.result | 92 +
.../mysql-test/spider/r/show_system_tables.result | 37 +
.../mysql-test/spider/r/spider_fixes_part.result | 49 +
.../spider/mysql-test/spider/r/timestamp.result | 101 +-
.../spider/mysql-test/spider/t/direct_join.test | 146 +
.../mysql-test/spider/t/show_system_tables.test | 26 +
.../mysql-test/spider/t/spider_fixes_part.test | 110 +
storage/spider/mysql-test/spider/t/timestamp.test | 85 +-
.../spider/mysql-test/spider/t/timestamp_init.inc | 29 +-
storage/spider/scripts/install_spider.sql | 65 +
storage/spider/spd_db_include.h | 1 +
storage/spider/spd_db_mysql.cc | 18 +-
storage/spider/spd_direct_sql.cc | 2 +-
storage/spider/spd_group_by_handler.cc | 36 +
storage/spider/spd_sys_table.cc | 6 +-
storage/spider/spd_table.cc | 23 +-
storage/tokudb/CMakeLists.txt | 13 +-
storage/tokudb/PerconaFT/CMakeLists.txt | 8 +-
.../PerconaFT/cmake_modules/TokuMergeLibs.cmake | 16 +-
.../cmake_modules/TokuSetupCompiler.cmake | 11 +-
.../tokudb/PerconaFT/ft/cachetable/cachetable.cc | 21 +-
.../tokudb/PerconaFT/ft/cachetable/cachetable.h | 8 +-
.../tokudb/PerconaFT/ft/ft-cachetable-wrappers.cc | 3 -
storage/tokudb/PerconaFT/ft/ft-test-helpers.cc | 3 -
storage/tokudb/PerconaFT/ft/ft.h | 3 +
storage/tokudb/PerconaFT/ft/node.cc | 2 +
.../PerconaFT/ft/serialize/block_allocator.cc | 2 +-
.../tokudb/PerconaFT/ft/tests/cachetable-4357.cc | 4 -
.../tokudb/PerconaFT/ft/tests/cachetable-4365.cc | 4 -
.../tokudb/PerconaFT/ft/tests/cachetable-5097.cc | 6 +-
.../tokudb/PerconaFT/ft/tests/cachetable-5978-2.cc | 7 +-
.../tokudb/PerconaFT/ft/tests/cachetable-5978.cc | 13 +-
.../PerconaFT/ft/tests/cachetable-all-write.cc | 5 +-
.../ft/tests/cachetable-checkpoint-pending.cc | 8 +-
.../ft/tests/cachetable-checkpoint-pinned-nodes.cc | 6 +-
.../ft/tests/cachetable-cleaner-checkpoint.cc | 5 +-
.../ft/tests/cachetable-cleaner-checkpoint2.cc | 5 +-
.../cachetable-cleaner-thread-attrs-accumulate.cc | 8 +-
.../cachetable-cleaner-thread-everything-pinned.cc | 5 +-
...etable-cleaner-thread-nothing-needs-flushing.cc | 5 +-
.../cachetable-cleaner-thread-same-fullhash.cc | 7 +-
.../ft/tests/cachetable-cleaner-thread-simple.cc | 7 +-
.../ft/tests/cachetable-clock-eviction.cc | 9 +-
.../ft/tests/cachetable-clock-eviction2.cc | 9 +-
.../ft/tests/cachetable-clock-eviction3.cc | 9 +-
.../ft/tests/cachetable-clock-eviction4.cc | 9 +-
.../ft/tests/cachetable-clone-checkpoint.cc | 5 +-
.../cachetable-clone-partial-fetch-pinned-node.cc | 7 +-
.../ft/tests/cachetable-clone-partial-fetch.cc | 7 +-
.../ft/tests/cachetable-clone-pin-nonblocking.cc | 7 +-
.../ft/tests/cachetable-clone-unpin-remove.cc | 5 +-
.../ft/tests/cachetable-eviction-close-test.cc | 4 -
.../ft/tests/cachetable-eviction-close-test2.cc | 4 -
.../ft/tests/cachetable-eviction-getandpin-test.cc | 14 +-
.../tests/cachetable-eviction-getandpin-test2.cc | 12 +-
.../ft/tests/cachetable-fetch-inducing-evictor.cc | 15 +-
.../ft/tests/cachetable-flush-during-cleaner.cc | 3 +-
.../ft/tests/cachetable-getandpin-test.cc | 8 +-
.../cachetable-kibbutz_and_flush_cachefile.cc | 3 +-
.../PerconaFT/ft/tests/cachetable-partial-fetch.cc | 18 +-
.../ft/tests/cachetable-pin-checkpoint.cc | 6 -
.../cachetable-pin-nonblocking-checkpoint-clean.cc | 9 +-
.../ft/tests/cachetable-prefetch-close-test.cc | 2 -
.../ft/tests/cachetable-prefetch-getandpin-test.cc | 12 +-
.../ft/tests/cachetable-put-checkpoint.cc | 9 -
.../PerconaFT/ft/tests/cachetable-simple-clone.cc | 7 +-
.../PerconaFT/ft/tests/cachetable-simple-clone2.cc | 5 +-
.../PerconaFT/ft/tests/cachetable-simple-close.cc | 20 +-
.../ft/tests/cachetable-simple-maybe-get-pin.cc | 3 +-
.../ft/tests/cachetable-simple-pin-cheap.cc | 9 +-
.../ft/tests/cachetable-simple-pin-dep-nodes.cc | 8 +-
.../cachetable-simple-pin-nonblocking-cheap.cc | 19 +-
.../ft/tests/cachetable-simple-pin-nonblocking.cc | 13 +-
.../PerconaFT/ft/tests/cachetable-simple-pin.cc | 11 +-
.../ft/tests/cachetable-simple-put-dep-nodes.cc | 6 +-
.../cachetable-simple-read-pin-nonblocking.cc | 13 +-
.../ft/tests/cachetable-simple-read-pin.cc | 13 +-
.../cachetable-simple-unpin-remove-checkpoint.cc | 7 +-
.../PerconaFT/ft/tests/cachetable-simple-verify.cc | 5 +-
.../tokudb/PerconaFT/ft/tests/cachetable-test.cc | 22 +-
.../ft/tests/cachetable-unpin-and-remove-test.cc | 4 +-
.../cachetable-unpin-remove-and-checkpoint.cc | 6 +-
.../PerconaFT/ft/tests/cachetable-unpin-test.cc | 2 -
storage/tokudb/PerconaFT/ft/tests/test-TDB2-pe.cc | 178 +
storage/tokudb/PerconaFT/ft/tests/test-TDB89.cc | 208 +
storage/tokudb/PerconaFT/ft/txn/rollback-apply.cc | 2 +
storage/tokudb/PerconaFT/ft/txn/rollback.cc | 2 +-
storage/tokudb/PerconaFT/ftcxx/malloc_utils.cpp | 2 +-
storage/tokudb/PerconaFT/ftcxx/malloc_utils.hpp | 2 +-
storage/tokudb/PerconaFT/portability/toku_assert.h | 2 +-
storage/tokudb/PerconaFT/portability/toku_crash.cc | 2 +-
.../tokudb/PerconaFT/portability/toku_debug_sync.h | 3 +-
.../PerconaFT/portability/toku_instr_mysql.cc | 6 +-
.../PerconaFT/portability/toku_instrumentation.h | 6 +-
.../tokudb/PerconaFT/portability/toku_race_tools.h | 2 +-
storage/tokudb/PerconaFT/src/tests/get_last_key.cc | 32 +-
storage/tokudb/PerconaFT/src/ydb.cc | 3 +
storage/tokudb/PerconaFT/src/ydb_lib.cc | 2 +-
storage/tokudb/PerconaFT/util/dmt.cc | 4 +-
storage/tokudb/PerconaFT/util/minicron.cc | 3 +-
storage/tokudb/PerconaFT/util/scoped_malloc.cc | 2 +-
.../util/tests/minicron-change-period-data-race.cc | 66 +
storage/tokudb/ha_tokudb.cc | 337 +-
storage/tokudb/ha_tokudb.h | 94 +-
storage/tokudb/ha_tokudb_admin.cc | 8 +-
storage/tokudb/ha_tokudb_alter_55.cc | 4 +
storage/tokudb/ha_tokudb_alter_56.cc | 265 +-
storage/tokudb/ha_tokudb_alter_common.cc | 6 +-
storage/tokudb/ha_tokudb_update.cc | 96 +-
storage/tokudb/hatoku_cmp.cc | 33 +-
storage/tokudb/hatoku_cmp.h | 14 +-
storage/tokudb/hatoku_defines.h | 65 +-
storage/tokudb/hatoku_hton.cc | 183 +-
storage/tokudb/hatoku_hton.h | 25 +-
storage/tokudb/mysql-test/rpl/disabled.def | 1 +
.../mysql-test/rpl/r/rpl_mixed_replace_into.result | 23 +
.../mysql-test/rpl/r/rpl_not_null_tokudb.result | 16 -
.../rpl/r/rpl_parallel_tokudb_delete_pk.result | 13 -
...pl_parallel_tokudb_update_pk_uc0_lookup0.result | 13 -
.../rpl/r/rpl_parallel_tokudb_write_pk.result | 6 -
.../mysql-test/rpl/r/rpl_row_basic_3tokudb.result | 32 -
.../rpl/r/rpl_row_rec_comp_tokudb.result | 12 -
.../mysql-test/rpl/r/rpl_row_replace_into.result | 23 +
.../mysql-test/rpl/r/rpl_set_null_tokudb.result | 16 -
.../mysql-test/rpl/r/rpl_stmt_replace_into.result | 23 +
.../mysql-test/rpl/r/rpl_tokudb_mixed_dml.result | 15 +-
.../mysql-test/rpl/r/rpl_truncate_3tokudb.result | 16 -
.../mysql-test/rpl/r/rpl_typeconv_tokudb.result | 4 -
.../mysql-test/rpl/r/rpl_xa_interleave.result | 78 +
.../mysql-test/rpl/r/tokudb_innodb_xa_crash.result | 8 -
.../mysql-test/rpl/t/rpl_mixed_replace_into.test | 25 +
.../mysql-test/rpl/t/rpl_row_replace_into.test | 25 +
.../mysql-test/rpl/t/rpl_stmt_replace_into.test | 25 +
.../tokudb/mysql-test/rpl/t/rpl_xa_interleave.test | 103 +
.../tokudb/include/fast_update_gen_footer.inc | 2 +
.../include/fast_update_gen_footer_silent.inc | 9 +
.../tokudb/include/fast_update_gen_header.inc | 6 +
.../mysql-test/tokudb/include/fast_update_int.inc | 48 +
.../tokudb/include/fast_upsert_gen_header.inc | 6 +
.../mysql-test/tokudb/include/fast_upsert_int.inc | 19 +
.../tokudb/mysql-test/tokudb/include/have_mrr.inc | 0
.../tokudb/include/setup_fast_update_upsert.inc | 8 +
.../tokudb/r/change_column_bin_descriptor.result | 4 -
.../tokudb/r/change_column_bin_rename.result | 64 -
.../tokudb/r/change_column_blob_data.result | 72 -
.../tokudb/r/change_column_char_descriptor.result | 4 -
.../tokudb/r/change_column_char_rename.result | 64 -
.../mysql-test/tokudb/r/change_column_int.result | 120 -
.../tokudb/r/change_column_int_descriptor.result | 4 -
.../tokudb/r/change_column_int_rename.result | 40 -
.../tokudb/r/change_column_text_data.result | 72 -
.../r/change_column_varbin_descriptor.result | 4 -
.../r/change_column_varchar_descriptor.result | 4 -
.../tokudb/mysql-test/tokudb/r/compressions.result | 11 +
.../tokudb/r/fast_update_binlog_mixed.result | 225 +-
.../tokudb/r/fast_update_binlog_row.result | 19 +-
.../tokudb/r/fast_update_binlog_statement.result | 222 +-
.../mysql-test/tokudb/r/fast_update_blobs.result | 18253 +---------
.../r/fast_update_blobs_fixed_varchar.result | 33026 ------------------
.../tokudb/r/fast_update_blobs_with_varchar.result | 32771 +-----------------
.../mysql-test/tokudb/r/fast_update_char.result | 60 +-
.../tokudb/r/fast_update_deadlock.result | 19 +-
.../tokudb/r/fast_update_decr_floor.result | 314 +-
.../r/fast_update_disable_slow_update.result | 7 -
.../mysql-test/tokudb/r/fast_update_error.result | 12 +-
.../mysql-test/tokudb/r/fast_update_int.result | 562 +-
.../tokudb/r/fast_update_int_bounds.result | 52 +-
.../mysql-test/tokudb/r/fast_update_key.result | 54 +-
.../mysql-test/tokudb/r/fast_update_sqlmode.result | 21 +-
.../tokudb/r/fast_update_uint_bounds.result | 36 +-
.../mysql-test/tokudb/r/fast_update_varchar.result | 13575 +-------
.../mysql-test/tokudb/r/fast_upsert_bin_pad.result | Bin 659 -> 738 bytes
.../mysql-test/tokudb/r/fast_upsert_char.result | 24 +-
.../tokudb/r/fast_upsert_deadlock.result | 19 +-
.../mysql-test/tokudb/r/fast_upsert_int.result | 428 +-
.../mysql-test/tokudb/r/fast_upsert_key.result | 43 +-
.../mysql-test/tokudb/r/fast_upsert_sqlmode.result | 23 +-
.../mysql-test/tokudb/r/fast_upsert_values.result | 18 +-
.../tokudb/mysql-test/tokudb/r/tokudb_mrr.result | 334 +
.../mysql-test/tokudb/r/type_datetime.result | 10 +-
storage/tokudb/mysql-test/tokudb/suite.pm | 6 +
.../tokudb/mysql-test/tokudb/t/compressions.test | 68 +
storage/tokudb/mysql-test/tokudb/t/disabled.def | 24 -
.../tokudb/t/fast_update_binlog_mixed-master.opt | 2 +
.../tokudb/t/fast_update_binlog_mixed.test | 15 +-
.../tokudb/t/fast_update_binlog_row-master.opt | 2 +
.../tokudb/t/fast_update_binlog_row.test | 19 +-
.../t/fast_update_binlog_statement-master.opt | 2 +
.../tokudb/t/fast_update_binlog_statement.test | 15 +-
.../mysql-test/tokudb/t/fast_update_blobs.py | 57 -
.../mysql-test/tokudb/t/fast_update_blobs.test | 18575 +----------
.../tokudb/t/fast_update_blobs_fixed_varchar.py | 63 -
.../tokudb/t/fast_update_blobs_fixed_varchar.test | 33287 -------------------
.../tokudb/t/fast_update_blobs_with_varchar.py | 62 -
.../tokudb/t/fast_update_blobs_with_varchar.test | 33115 +-----------------
.../mysql-test/tokudb/t/fast_update_char.test | 66 +-
.../mysql-test/tokudb/t/fast_update_deadlock.test | 21 +-
.../mysql-test/tokudb/t/fast_update_decr_floor.py | 58 -
.../tokudb/t/fast_update_decr_floor.test | 409 +-
.../tokudb/t/fast_update_disable_slow_update.test | 17 -
.../mysql-test/tokudb/t/fast_update_error.test | 16 +-
.../tokudb/mysql-test/tokudb/t/fast_update_int.py | 77 -
.../mysql-test/tokudb/t/fast_update_int.test | 682 +-
.../tokudb/t/fast_update_int_bounds.test | 55 +-
.../mysql-test/tokudb/t/fast_update_key.test | 63 +-
.../mysql-test/tokudb/t/fast_update_sqlmode.test | 25 +-
.../tokudb/t/fast_update_uint_bounds.test | 42 +-
.../mysql-test/tokudb/t/fast_update_varchar.py | 63 -
.../mysql-test/tokudb/t/fast_update_varchar.test | 7390 +---
.../mysql-test/tokudb/t/fast_upsert_bin_pad.test | 19 +-
.../mysql-test/tokudb/t/fast_upsert_char.test | 27 +-
.../mysql-test/tokudb/t/fast_upsert_deadlock.test | 22 +-
.../tokudb/mysql-test/tokudb/t/fast_upsert_int.py | 50 -
.../mysql-test/tokudb/t/fast_upsert_int.test | 486 +-
.../mysql-test/tokudb/t/fast_upsert_key.test | 46 +-
.../mysql-test/tokudb/t/fast_upsert_sqlmode.test | 27 +-
.../mysql-test/tokudb/t/fast_upsert_values.test | 21 +-
storage/tokudb/mysql-test/tokudb/t/tokudb_mrr.test | 73 +
.../tokudb_alter_table/r/hcad_all_add.result | 1736 -
.../tokudb_alter_table/r/hcad_all_add2.result | 1736 -
.../tokudb_alter_table/r/hcad_all_add3.result | 1736 -
.../tokudb_alter_table/r/hcad_all_blob_add.result | 1736 -
.../tokudb_alter_table/r/hcad_all_blob_drop.result | 160 -
.../tokudb_alter_table/r/hcad_all_drop.result | 1232 -
.../tokudb_alter_table/r/hcad_all_fixed_add.result | 1736 -
.../r/hcad_all_fixed_drop.result | 160 -
.../tokudb_alter_table/r/hcad_all_var_add.result | 1736 -
.../tokudb_alter_table/r/hcad_all_var_drop.result | 160 -
.../tokudb_alter_table/r/hcad_clustering.result | 32 -
.../tokudb_alter_table/r/hcad_clustering2.result | 32 -
.../r/hcad_diff_num_offset_bytes.result | 84 -
.../tokudb_alter_table/r/hcad_fixedblob_add.result | 1736 -
.../r/hcad_fixedblob_add2.result | 1736 -
.../r/hcad_fixedblob_drop.result | 560 -
.../tokudb_alter_table/r/hcad_fixedvar_add.result | 1736 -
.../tokudb_alter_table/r/hcad_fixedvar_add2.result | 1736 -
.../tokudb_alter_table/r/hcad_fixedvar_drop.result | 560 -
.../tokudb_alter_table/r/hcad_null_bits.result | 68 -
.../mysql-test/tokudb_alter_table/r/hcad_pk.result | 32 -
.../tokudb_alter_table/r/hcad_pk2.result | 32 -
.../tokudb_alter_table/r/hcad_varblob_add.result | 1736 -
.../tokudb_alter_table/r/hcad_varblob_add2.result | 1736 -
.../tokudb_alter_table/r/hcad_varblob_drop.result | 560 -
.../tokudb_alter_table/r/other_alter2.result | 72 -
.../tokudb/mysql-test/tokudb_bugs/r/PS-3773.result | 8 +
.../tokudb_bugs/r/alter_part_tokudb_bug_155.result | 4 -
.../r/alter_table_comment_rebuild_data.result | 177 +
.../tokudb/mysql-test/tokudb_bugs/r/db743.result | 4 -
.../mysql-test/tokudb_bugs/r/mdev5932.result | 4 -
.../tokudb_bugs/r/rpl_mixed_replace_into.result | 23 -
.../tokudb_bugs/r/rpl_row_replace_into.result | 23 -
.../tokudb_bugs/r/rpl_stmt_replace_into.result | 23 -
.../tokudb/mysql-test/tokudb_bugs/t/PS-3773.test | 26 +
.../t/alter_table_comment_rebuild_data.test | 188 +
.../tokudb_bugs/t/rpl_mixed_replace_into.test | 25 -
.../tokudb_bugs/t/rpl_row_replace_into.test | 25 -
.../tokudb_bugs/t/rpl_stmt_replace_into.test | 25 -
storage/tokudb/tokudb_debug.h | 5 -
storage/tokudb/tokudb_dir_cmd.h | 6 +-
storage/tokudb/tokudb_information_schema.cc | 74 +-
storage/tokudb/tokudb_sysvars.cc | 120 +-
storage/tokudb/tokudb_sysvars.h | 16 +-
storage/tokudb/tokudb_thread.h | 26 +-
storage/tokudb/tokudb_update_fun.cc | 230 +-
strings/ctype-bin.c | 8 +-
strings/ctype-euc_kr.c | 4 +-
strings/ctype-mb.c | 100 +-
strings/ctype-simple.c | 26 +-
strings/ctype-uca.c | 1560 +-
strings/ctype-uca.ic | 839 +
strings/ctype-ucs2.c | 223 +-
strings/ctype-ucs2.h | 32 +
strings/ctype-ujis.c | 8 +-
strings/ctype-unidata.h | 31 +
strings/ctype-utf16.h | 80 +
strings/ctype-utf32.h | 33 +
strings/ctype-utf8.c | 430 +-
strings/ctype-utf8.h | 190 +
strings/decimal.c | 35 +-
strings/json_lib.c | 23 +
strings/strcoll.ic | 267 +-
support-files/mariadb.service.in | 1 -
support-files/mariadb@.service.in | 1 -
support-files/mysql.server.sh | 31 +-
support-files/mysqld_multi.server.sh | 19 +-
support-files/rpm/plugin-postin.sh | 3 +
support-files/rpm/server-posttrans.sh | 11 +
support-files/rpm/server-postun.sh | 9 +-
tests/mysql_client_fw.c | 12 -
tests/mysql_client_test.c | 15 +
unittest/sql/mf_iocache-t.cc | 88 +-
vio/CMakeLists.txt | 2 +-
vio/vio.c | 61 +-
vio/vio_priv.h | 8 -
vio/viopipe.c | 1 -
vio/vioshm.c | 217 -
vio/viosocket.c | 14 +-
vio/viossl.c | 12 +-
win/packaging/CMakeLists.txt | 95 +-
win/packaging/CPackWixConfig.cmake | 2 +-
win/packaging/CPackZIPConfig.cmake | 11 +
win/packaging/CPackZIPDebugInfoConfig.cmake | 6 +
win/packaging/ca/CMakeLists.txt | 7 +-
win/packaging/create_msi.cmake | 411 +
win/packaging/create_msi.cmake.in | 437 -
win/packaging/extra.wxs.in | 16 +-
win/packaging/heidisql.cmake | 10 +-
win/packaging/mysql_server.wxs.in | 2 +-
win/upgrade_wizard/CMakeLists.txt | 21 +-
zlib/CMakeLists.txt | 156 +-
zlib/ChangeLog | 666 +-
zlib/FAQ | 267 +-
zlib/INDEX | 41 +-
zlib/README | 94 +-
zlib/README.MySQL | 16 -
zlib/adler32.c | 113 +-
zlib/algorithm.txt | 209 -
zlib/amiga/Makefile.pup | 69 +
zlib/amiga/Makefile.sas | 68 +
zlib/compress.c | 45 +-
zlib/crc32.c | 149 +-
zlib/crc32.h | 2 +-
zlib/deflate.c | 1269 +-
zlib/deflate.h | 78 +-
zlib/gzclose.c | 25 +
zlib/gzguts.h | 218 +
zlib/gzio.c | 1031 -
zlib/gzlib.c | 637 +
zlib/gzread.c | 654 +
zlib/gzwrite.c | 665 +
zlib/infback.c | 107 +-
zlib/inffast.c | 159 +-
zlib/inffast.h | 4 +-
zlib/inffixed.h | 6 +-
zlib/inflate.c | 507 +-
zlib/inflate.h | 38 +-
zlib/inftrees.c | 109 +-
zlib/inftrees.h | 27 +-
zlib/make_vms.com | 867 +
zlib/msdos/Makefile.bor | 115 +
zlib/msdos/Makefile.dj2 | 104 +
zlib/msdos/Makefile.emx | 69 +
zlib/msdos/Makefile.msc | 112 +
zlib/msdos/Makefile.tc | 100 +
zlib/nintendods/README | 5 +
zlib/old/Makefile.emx | 69 +
zlib/old/Makefile.riscos | 151 +
zlib/old/README | 3 +
zlib/old/descrip.mms | 48 +
zlib/old/os2/Makefile.os2 | 136 +
zlib/old/os2/zlib.def | 51 +
zlib/old/visual-basic.txt | 160 +
zlib/os400/README400 | 48 +
zlib/os400/bndsrc | 119 +
zlib/os400/make.sh | 366 +
zlib/os400/zlib.inc | 527 +
zlib/qnx/package.qpg | 141 +
zlib/test/example.c | 602 +
zlib/test/infcover.c | 671 +
zlib/test/minigzip.c | 651 +
zlib/treebuild.xml | 116 +
zlib/trees.c | 246 +-
zlib/trees.h | 4 +-
zlib/uncompr.c | 100 +-
zlib/watcom/watcom_f.mak | 43 +
zlib/watcom/watcom_l.mak | 43 +
zlib/win32/DLL_FAQ.txt | 397 +
zlib/win32/Makefile.bor | 110 +
zlib/win32/Makefile.gcc | 182 +
zlib/win32/Makefile.msc | 163 +
zlib/win32/README-WIN32.txt | 103 +
zlib/win32/VisualC.txt | 3 +
zlib/win32/zlib.def | 94 +
zlib/win32/zlib1.rc | 40 +
zlib/zconf.h | 336 -
zlib/zconf.h.cmakein | 536 +
zlib/zconf.h.in | 534 +
zlib/zlib.3 | 122 +-
zlib/zlib.h | 1639 +-
zlib/zlib.pc.cmakein | 13 +
zlib/zlib.pc.in | 13 +
zlib/zlib2ansi | 152 +
zlib/zutil.c | 101 +-
zlib/zutil.h | 192 +-
1899 files changed, 76236 insertions(+), 268338 deletions(-)
diff --cc sql/sql_select.cc
index 616fea0,7ae4e7a..8f55497
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@@ -7310,15 -7388,12 +7404,20 @@@ best_access_path(JOIN *join
tmp+= (s->records - rnd_records)/(double) TIME_FOR_COMPARE;
}
}
+
+ double best_records= rnd_records;
- tmp += s->startup_cost;
+ /* Splitting technique cannot be used with join cache */
+ if (s->table->is_splittable())
+ tmp+= s->table->get_materialization_cost();
+ else
+ tmp+= s->startup_cost;
+
+ filter= s->table->best_filter_for_current_join_order(MAX_KEY,
+ rnd_records,
+ record_count);
+ if (filter && (filter->get_filter_gain(record_count*rnd_records) < tmp))
+ tmp= tmp - filter->get_filter_gain(record_count*rnd_records);
+
/*
We estimate the cost of evaluating WHERE clause for found records
as record_count * rnd_records / TIME_FOR_COMPARE. This cost plus
diff --cc sql/table.h
index 14bc928,2b3fe1c..3c782c3
--- a/sql/table.h
+++ b/sql/table.h
@@@ -1492,23 -1491,9 +1494,24 @@@ public
bool is_splittable() { return spl_opt_info != NULL; }
void set_spl_opt_info(SplM_opt_info *spl_info);
void deny_splitting();
+ double get_materialization_cost(); // Now used only if is_splittable()==true
void add_splitting_info_for_key_field(struct KEY_FIELD *key_field);
+
+ /**
+ Range filter info
+ */
+ /* Minimum possible #T value to apply filter*/
+ uint best_filter_count;
+ uint range_filter_cost_info_elements;
+ Range_filter_cost_info *range_filter_cost_info;
+ Range_filter_cost_info
+ *best_filter_for_current_join_order(uint ref_key_no,
+ double record_count,
+ double records);
+ void sort_range_filter_cost_info_array();
+ void prune_range_filters();
+ void select_usable_range_filters(THD *thd);
/**
System Versioning support
*/
1
0
revision-id: c8e4d0ccf0cc69e99342933bf8eee28764b13612 (mariadb-10.3.6-96-gc8e4d0c)
parent(s): 8d5a11122c32f4d9eb87536886c6e893377bdd07 3ea7de9a78a1410a9b79362774247e9e44b201b3
author: Igor Babaev
committer: Igor Babaev
timestamp: 2018-11-10 10:34:38 -0800
message:
Merge branch '10.4' into 10.4-mdev16188
.gitignore | 2 +-
.travis.yml | 4 +-
CMakeLists.txt | 34 +-
CREDITS | 4 +-
README.md | 16 +-
VERSION | 2 +-
client/CMakeLists.txt | 1 +
client/client_priv.h | 2 +-
client/mysql.cc | 23 +-
client/mysql_upgrade.c | 8 +-
client/mysqladmin.cc | 17 +-
client/mysqlbinlog.cc | 18 +-
client/mysqlcheck.c | 13 +-
client/mysqldump.c | 22 +-
client/mysqlimport.c | 18 +-
client/mysqlshow.c | 19 +-
client/mysqlslap.c | 19 +-
client/mysqltest.cc | 45 +-
cmake/CPackRPM.cmake | 34 +-
cmake/FindZSTD.cmake | 18 -
cmake/Findzstd.cmake | 25 +
cmake/cpack_rpm.cmake | 6 +
cmake/create_initial_db.cmake | 76 +
cmake/create_initial_db.cmake.in | 84 -
cmake/dtrace.cmake | 4 +
cmake/for_clients.cmake | 3 -
cmake/install_macros.cmake | 48 +-
cmake/libutils.cmake | 62 +-
cmake/make_dist.cmake.in | 2 +-
cmake/merge_archives_unix.cmake | 56 +
cmake/merge_archives_unix.cmake.in | 63 -
cmake/mysql_add_executable.cmake | 3 +
cmake/os/Windows.cmake | 24 +-
cmake/package_name.cmake | 5 +-
cmake/plugin.cmake | 7 +-
cmake/ssl.cmake | 4 +-
cmake/submodules.cmake | 6 +
cmake/systemd.cmake | 10 +-
cmake/zlib.cmake | 18 +-
config.h.cmake | 8 +-
configure.cmake | 11 +-
debian/additions/innotop/changelog.innotop | 2 +-
debian/additions/innotop/innotop | 14 +-
debian/additions/innotop/innotop.1 | 6 +-
debian/autobake-deb.sh | 2 +-
debian/mariadb-plugin-tokudb.install | 2 +-
debian/rules | 1 +
extra/mariabackup/backup_copy.cc | 91 +-
extra/mariabackup/backup_mysql.cc | 71 +-
extra/mariabackup/crc/crc-intel-pclmul.c | 2 +-
extra/mariabackup/datasink.c | 3 +
extra/mariabackup/encryption_plugin.cc | 50 +-
extra/mariabackup/fil_cur.cc | 104 +-
extra/mariabackup/fil_cur.h | 5 +-
extra/mariabackup/innobackupex.cc | 4 +-
extra/mariabackup/wsrep.cc | 3 +-
extra/mariabackup/xtrabackup.cc | 744 +-
extra/my_print_defaults.c | 29 +-
extra/perror.c | 8 +
extra/resolveip.c | 17 +-
extra/yassl/CMakeLists.txt | 3 -
include/big_endian.h | 2 +-
include/byte_order_generic.h | 2 +-
include/byte_order_generic_x86.h | 2 +-
include/byte_order_generic_x86_64.h | 2 +-
include/json_lib.h | 6 +
include/little_endian.h | 2 +-
include/m_ctype.h | 37 +-
include/m_string.h | 2 +-
include/my_bit.h | 10 +-
include/my_cpu.h | 2 +-
include/my_global.h | 16 +-
include/my_pthread.h | 2 +-
include/my_service_manager.h | 2 +
include/my_sys.h | 1 +
include/my_time.h | 31 +-
include/myisamchk.h | 3 +-
include/mysql/plugin_auth.h | 46 +-
include/mysql/plugin_auth.h.pp | 4 +
include/mysql/plugin_password_validation.h | 4 +-
include/mysql/plugin_password_validation.h.pp | 4 +-
include/mysql/psi/mysql_socket.h | 4 +-
include/mysql/service_kill_statement.h | 4 +-
include/mysql/service_wsrep.h | 3 +
include/mysql_embed.h | 1 -
include/service_versions.h | 2 +-
include/sql_common.h | 4 +-
include/ssl_compat.h | 4 +-
include/violite.h | 22 +-
include/wsrep.h | 18 +-
libmariadb | 2 +-
libmysqld/CMakeLists.txt | 5 +-
man/CMakeLists.txt | 7 +-
man/mariabackup.1 | 16 +
man/mbstream.1 | 16 +
man/my_print_defaults.1 | 7 +-
man/mysql_embedded.1 | 1 +
man/mysql_ldb.1 | 16 +
man/tokuft_logdump.1 | 16 -
man/tokuft_logprint.1 | 16 +
man/wsrep_sst_mariabackup.1 | 16 +
man/wsrep_sst_rsync.1 | 4 +-
man/wsrep_sst_rsync_wan.1 | 16 +
mysql-test/collections/10.0-compatible.list | 595 +
mysql-test/dgcov.pl | 2 +-
mysql-test/include/check-testcase.test | 12 +
mysql-test/include/ctype_mdev13118.inc | 15 +
mysql-test/include/diff_tables.inc | 2 +-
mysql-test/include/have_32bit.inc | 9 +
mysql-test/include/have_64bit.inc | 9 +
mysql-test/include/maria_empty_logs.inc | 12 +
mysql-test/include/maria_verify_recovery.inc | 12 +
mysql-test/include/mtr_check.sql | 1 -
mysql-test/include/mtr_warnings.sql | 2 +-
mysql-test/include/search_pattern_in_file.inc | 16 +-
mysql-test/include/system_db_struct.inc | 1 -
mysql-test/lib/My/Config.pm | 6 +-
mysql-test/lib/My/ConfigFactory.pm | 21 -
mysql-test/lib/My/Platform.pm | 2 +
mysql-test/lib/v1/mysql-test-run.pl | 2 +-
mysql-test/main/1st.result | 1 -
mysql-test/main/alter_table.result | 53 +
mysql-test/main/alter_table.test | 50 +
mysql-test/main/alter_user.result | 35 +-
mysql-test/main/alter_user.test | 8 +-
.../main/auto_increment_ranges_innodb.result | 14 +
mysql-test/main/auto_increment_ranges_innodb.test | 13 +
mysql-test/main/bootstrap.result | 9 +-
mysql-test/main/bootstrap.test | 27 +-
mysql-test/main/brackets.result | 24 +
mysql-test/main/brackets.test | 18 +
mysql-test/main/case.result | 27 +
mysql-test/main/case.test | 22 +
mysql-test/main/cast.result | 2 +-
mysql-test/main/connect.result | 19 +-
mysql-test/main/connect.test | 19 +-
mysql-test/main/constraints.result | 37 +
mysql-test/main/constraints.test | 25 +
mysql-test/main/contributors.result | 4 +-
mysql-test/main/create_drop_user.result | 24 +-
mysql-test/main/create_drop_user.test | 8 +-
mysql-test/main/create_or_replace.result | 23 +-
mysql-test/main/create_or_replace.test | 29 +-
mysql-test/main/create_user.result | 24 +-
mysql-test/main/cte_nonrecursive.result | 147 +
mysql-test/main/cte_nonrecursive.test | 111 +
mysql-test/main/cte_recursive.result | 303 +-
mysql-test/main/cte_recursive.test | 176 +-
mysql-test/main/ctype_binary.result | 23 +
mysql-test/main/ctype_binary.test | 3 +
mysql-test/main/ctype_eucjpms.result | 23 +
mysql-test/main/ctype_eucjpms.test | 2 +
mysql-test/main/ctype_euckr.result | 29 +
mysql-test/main/ctype_euckr.test | 10 +
mysql-test/main/ctype_gbk.result | 23 +
mysql-test/main/ctype_gbk.test | 3 +
mysql-test/main/ctype_latin1.result | 32 +
mysql-test/main/ctype_latin1.test | 15 +
mysql-test/main/ctype_uca.result | 21 +
mysql-test/main/ctype_uca.test | 18 +
mysql-test/main/ctype_ucs.result | 23 +
mysql-test/main/ctype_ucs.test | 4 +
mysql-test/main/ctype_ujis.result | 23 +
mysql-test/main/ctype_ujis.test | 4 +
mysql-test/main/ctype_upgrade.result | 2 -
mysql-test/main/ctype_utf16.result | 23 +
mysql-test/main/ctype_utf16.test | 5 +
mysql-test/main/ctype_utf16le.result | 29 +
mysql-test/main/ctype_utf16le.test | 13 +
mysql-test/main/ctype_utf32.result | 23 +
mysql-test/main/ctype_utf32.test | 8 +
mysql-test/main/ctype_utf8.result | 23 +
mysql-test/main/ctype_utf8.test | 7 +
mysql-test/main/ctype_utf8mb4.result | 23 +
mysql-test/main/ctype_utf8mb4.test | 8 +
mysql-test/main/date_formats.result | 2 +-
mysql-test/main/delayed.result | 3 +-
mysql-test/main/derived.result | 33 +
mysql-test/main/derived.test | 21 +
mysql-test/main/derived_cond_pushdown.result | 12269 +++----
mysql-test/main/derived_cond_pushdown.test | 3378 +-
mysql-test/main/derived_opt.result | 38 +-
mysql-test/main/derived_opt.test | 43 +
mysql-test/main/derived_split_innodb.result | 101 +
mysql-test/main/derived_split_innodb.test | 96 +
mysql-test/main/drop.test | 20 +-
mysql-test/main/dyncol.result | 4 +-
mysql-test/main/failed_auth_3909.result | 8 +-
mysql-test/main/failed_auth_3909.test | 8 +-
mysql-test/main/failed_auth_unixsocket.result | 11 +-
mysql-test/main/failed_auth_unixsocket.test | 20 +-
mysql-test/main/flush.result | 23 +
mysql-test/main/flush.test | 31 +
mysql-test/main/func_concat.result | 20 +
mysql-test/main/func_concat.test | 22 +
mysql-test/main/func_hybrid_type.result | 190 +
mysql-test/main/func_hybrid_type.test | 105 +
mysql-test/main/func_in.result | 2 +-
mysql-test/main/func_isnull.result | 20 +
mysql-test/main/func_isnull.test | 16 +
mysql-test/main/func_json.result | 50 +
mysql-test/main/func_json.test | 44 +
mysql-test/main/func_like.result | 117 +
mysql-test/main/func_like.test | 50 +
mysql-test/main/func_sapdb.result | 6 +-
mysql-test/main/func_time.result | 2691 +-
mysql-test/main/func_time.test | 933 +
mysql-test/main/gis-precise.result | 3 +
mysql-test/main/gis-precise.test | 4 +
mysql-test/main/gis.result | 16 +
mysql-test/main/gis.test | 15 +
mysql-test/main/grant.result | 42 +-
mysql-test/main/grant.test | 25 +
mysql-test/main/grant2.result | 89 +-
mysql-test/main/grant2.test | 62 +-
mysql-test/main/grant4.result | 16 +-
mysql-test/main/grant5.result | 81 +
mysql-test/main/grant5.test | 60 +
mysql-test/main/grant_lowercase.result | 6 -
mysql-test/main/grant_lowercase.test | 4 -
mysql-test/main/group_min_max.result | 45 +
mysql-test/main/group_min_max.test | 44 +
mysql-test/main/help.result | 8 +-
mysql-test/main/help.test | 8 +-
mysql-test/main/in_subq_cond_pushdown.result | 32 +
mysql-test/main/in_subq_cond_pushdown.test | 39 +
mysql-test/main/index_merge_myisam.result | 50 +
mysql-test/main/index_merge_myisam.test | 35 +
mysql-test/main/information_schema-big.result | 2 +
mysql-test/main/information_schema.result | 3 +-
.../main/information_schema_all_engines.result | 10 +-
mysql-test/main/init_file_set_password-7656.result | 6 +-
mysql-test/main/init_file_set_password-7656.test | 2 +-
mysql-test/main/innodb_mrr_cpk.result | 2 +-
mysql-test/main/invisible_field_debug.result | 5 +
mysql-test/main/invisible_field_debug.test | 6 +
mysql-test/main/join.result | 42 +
mysql-test/main/join.test | 54 +
mysql-test/main/join_cache.result | 33 +
mysql-test/main/join_cache.test | 32 +-
mysql-test/main/join_nested_jcl6.result | 2 +-
mysql-test/main/join_outer.result | 118 +
mysql-test/main/join_outer.test | 108 +
mysql-test/main/join_outer_jcl6.result | 118 +
mysql-test/main/lock.result | 4 +-
mysql-test/main/lock.test | 4 +-
mysql-test/main/lock_multi.result | 17 +-
mysql-test/main/lock_multi.test | 18 +-
mysql-test/main/log_tables_upgrade.result | 1 -
mysql-test/main/lowercase_fs_off.result | 68 +
mysql-test/main/lowercase_fs_off.test | 15 +
mysql-test/main/multi_update.result | 4 +-
mysql-test/main/myisam.result | 2 +-
mysql-test/main/myisam_recover.result | 4 +-
mysql-test/main/mysql.result | 2 -
mysql-test/main/mysql.test | 5 +-
mysql-test/main/mysql_not_windows.result | 2 +
mysql-test/main/mysql_not_windows.test | 7 +
mysql-test/main/mysql_protocols.result | 5 +-
mysql-test/main/mysql_upgrade-6984.result | 1 -
mysql-test/main/mysql_upgrade.result | 10 -
mysql-test/main/mysql_upgrade_no_innodb.result | 1 -
mysql-test/main/mysql_upgrade_noengine.result | 3 -
mysql-test/main/mysql_upgrade_ssl.result | 1 -
mysql-test/main/mysql_upgrade_view.result | 3 -
mysql-test/main/mysqlbinlog_row_compressed.result | 16 +-
mysql-test/main/mysqlbinlog_row_minimal.result | 16 +-
mysql-test/main/mysqlcheck.result | 5 -
mysql-test/main/mysqld--help,win.rdiff | 45 +-
mysql-test/main/mysqld--help.result | 11 +
mysql-test/main/mysqldump-max.result | 4 +-
mysql-test/main/mysqldump-max.test | 2 +
mysql-test/main/mysqldump-utf8mb4.result | 86 +
mysql-test/main/mysqldump-utf8mb4.test | 49 +
mysql-test/main/mysqldump.result | 82 +-
mysql-test/main/mysqldump.test | 4 +-
mysql-test/main/mysqldump_restore.result | 20 -
.../main/no_password_column-mdev-11170.result | 2 +-
mysql-test/main/null.result | 16 +-
mysql-test/main/openssl_1.result | 6 +-
mysql-test/main/openssl_1.test | 3 +
mysql-test/main/opt_tvc.result | 95 +-
mysql-test/main/opt_tvc.test | 42 +-
mysql-test/main/order_by_zerolength-4285.result | 20 +
mysql-test/main/order_by_zerolength-4285.test | 14 +
mysql-test/main/parser.result | 21 +
mysql-test/main/parser.test | 17 +
mysql-test/main/partition_error.result | 9 +
mysql-test/main/partition_error.test | 18 +
mysql-test/main/partition_explicit_prune.result | 19 +
mysql-test/main/partition_explicit_prune.test | 19 +
mysql-test/main/partition_pruning.result | 33 +
mysql-test/main/partition_pruning.test | 31 +
mysql-test/main/plugin.result | 45 +
mysql-test/main/plugin.test | 40 +
mysql-test/main/plugin_auth.result | 2 +-
mysql-test/main/plugin_auth_qa.result | 32 +-
mysql-test/main/plugin_auth_qa_1.result | 42 +-
mysql-test/main/plugin_auth_qa_1.test | 2 +-
mysql-test/main/plugin_auth_qa_2.result | 22 +-
mysql-test/main/plugin_innodb.result | 2 +-
mysql-test/main/plugin_innodb.test | 2 +-
mysql-test/main/ps.result | 67 +-
mysql-test/main/ps.test | 54 +-
mysql-test/main/query_cache.result | 12 +-
mysql-test/main/query_cache_innodb.result | 2 +-
mysql-test/main/range.result | 73 +-
mysql-test/main/range.test | 57 +-
mysql-test/main/range_debug.result | 24 +
mysql-test/main/range_debug.test | 30 +
mysql-test/main/range_mrr_icp.result | 73 +-
mysql-test/main/rename.result | 4 +
mysql-test/main/rename.test | 7 +
mysql-test/main/repair.result | 2 +-
mysql-test/main/select.result | 32 +-
mysql-test/main/select_jcl6.result | 32 +-
mysql-test/main/select_pkeycache.result | 32 +-
mysql-test/main/selectivity.result | 48 +-
mysql-test/main/selectivity.test | 36 +
mysql-test/main/selectivity_innodb.result | 48 +-
mysql-test/main/session_tracker_last_gtid.result | 6 +
mysql-test/main/set_password.result | 8 +-
mysql-test/main/shm-master.opt | 1 -
mysql-test/main/shm.result | 2170 --
mysql-test/main/shm.test | 47 -
mysql-test/main/show_create_user.result | 4 +-
mysql-test/main/show_create_user.test | 2 +-
.../main/show_grants_with_plugin-7985.result | 4 +-
mysql-test/main/sp-destruct.test | 28 +-
mysql-test/main/sp-security.result | 36 +-
mysql-test/main/sp-security.test | 23 +-
mysql-test/main/sp.result | 17 +
mysql-test/main/sp.test | 21 +
mysql-test/main/sp_notembedded.result | 4 +-
mysql-test/main/sp_notembedded.test | 2 +-
mysql-test/main/sql_safe_updates.opt | 1 +
mysql-test/main/sql_safe_updates.result | 3 +
mysql-test/main/sql_safe_updates.test | 4 +
mysql-test/main/stat_tables.result | 89 +
mysql-test/main/stat_tables.test | 83 +-
mysql-test/main/stat_tables_innodb.result | 89 +
mysql-test/main/str_to_datetime_457.result | 6 +-
mysql-test/main/subselect.result | 22 +-
mysql-test/main/subselect.test | 22 +-
mysql-test/main/subselect_extra_no_semijoin.result | 22 +
mysql-test/main/subselect_extra_no_semijoin.test | 31 +-
mysql-test/main/subselect_mat.result | 99 +-
mysql-test/main/subselect_mat_cost_bugs.result | 2 +-
mysql-test/main/subselect_no_exists_to_in.result | 22 +-
mysql-test/main/subselect_no_mat.result | 22 +-
mysql-test/main/subselect_no_opts.result | 22 +-
mysql-test/main/subselect_no_scache.result | 22 +-
mysql-test/main/subselect_no_semijoin.result | 22 +-
mysql-test/main/subselect_sj2_mat.result | 51 +
mysql-test/main/subselect_sj2_mat.test | 49 +
mysql-test/main/subselect_sj_mat.result | 99 +-
mysql-test/main/subselect_sj_mat.test | 79 +
mysql-test/main/system_mysql_db.result | 50 +-
mysql-test/main/system_mysql_db_fix40123.result | 49 +-
mysql-test/main/system_mysql_db_fix50030.result | 49 +-
mysql-test/main/system_mysql_db_fix50117.result | 49 +-
mysql-test/main/system_mysql_db_refs.result | 16 +-
mysql-test/main/system_mysql_db_refs.test | 11 -
mysql-test/main/table_value_constr.result | 92 +
mysql-test/main/table_value_constr.test | 48 +
mysql-test/main/temp_table.result | 24 +
mysql-test/main/temp_table.test | 26 +
mysql-test/main/timezone2.result | 23 +
mysql-test/main/timezone2.test | 19 +
mysql-test/main/type_date.result | 38 +-
mysql-test/main/type_date.test | 31 +
mysql-test/main/type_datetime.result | 76 +-
mysql-test/main/type_datetime.test | 39 +-
mysql-test/main/type_decimal.result | 14 +
mysql-test/main/type_decimal.test | 11 +
mysql-test/main/type_float.result | 40 +
mysql-test/main/type_float.test | 30 +
mysql-test/main/type_newdecimal.result | 44 +-
mysql-test/main/type_newdecimal.test | 45 +-
mysql-test/main/type_temporal_innodb.result | 36 +-
mysql-test/main/type_time.result | 120 +-
mysql-test/main/type_time.test | 70 +
mysql-test/main/type_timestamp.result | 19 +-
mysql-test/main/type_timestamp.test | 22 +
mysql-test/main/type_year.result | 24 +-
mysql-test/main/type_year.test | 22 +-
mysql-test/main/union.result | 16 +
mysql-test/main/union.test | 15 +
mysql-test/main/win.result | 417 +-
mysql-test/main/win.test | 59 +-
mysql-test/main/win_big.result | 12 -
mysql-test/main/win_first_last_value.result | 20 +-
mysql-test/main/win_lead_lag.result | 11 +
mysql-test/main/win_lead_lag.test | 13 +
mysql-test/main/win_percent_cume.result | 72 +-
mysql-test/main/win_percent_cume.test | 6 +-
mysql-test/main/win_percentile.result | 78 +-
mysql-test/main/win_percentile.test | 19 +
mysql-test/main/win_rank.result | 81 +-
mysql-test/main/win_rank.test | 17 +-
mysql-test/main/win_std.test | 4 +
mysql-test/mysql-test-run.pl | 206 +-
mysql-test/suite.pm | 6 +-
mysql-test/suite/binlog/include/binlog.test | 1 -
.../suite/binlog/include/check_binlog_size.inc | 31 +
.../r/binlog_flush_binlogs_delete_domain.result | 12 +
.../suite/binlog/r/binlog_tmp_table_row.result | 7 +
.../t/binlog_flush_binlogs_delete_domain.test | 19 +
.../suite/binlog/t/binlog_tmp_table_row.test | 30 +
.../suite/binlog_encryption/rpl_corruption.result | 4 -
.../suite/binlog_encryption/rpl_loadfile.result | 4 -
.../rpl_mixed_binlog_max_cache_size.result | 28 -
.../binlog_encryption/rpl_special_charset.result | 4 -
.../rpl_stm_relay_ign_space.result | 4 -
.../rpl_switch_stm_row_mixed.result | 2 +-
mysql-test/suite/binlog_encryption/rpl_sync.result | 8 -
.../suite/binlog_encryption/rpl_typeconv.result | 44 +
mysql-test/suite/compat/oracle/r/events.result | 16 +
.../suite/compat/oracle/r/func_concat.result | 69 +
.../compat/oracle/r/sp-package-mysqldump.result | 2 +-
.../compat/oracle/r/table_value_constr.result | 84 +
mysql-test/suite/compat/oracle/t/events.test | 29 +
mysql-test/suite/compat/oracle/t/func_concat.test | 36 +
.../compat/oracle/t/sp-package-mysqldump.test | 1 +
.../suite/compat/oracle/t/table_value_constr.test | 44 +
.../suite/encryption/r/debug_key_management.result | 9 +
.../encryption/r/innodb-encryption-alter.result | 37 +
.../r/innodb_encrypt_log_corruption.result | 4 +-
.../suite/encryption/t/debug_key_management.test | 18 +-
.../encryption/t/innodb-encryption-alter.test | 24 +
mysql-test/suite/funcs_1/r/innodb_func_view.result | 84 +-
.../suite/funcs_1/r/is_check_constraints.result | 144 +
mysql-test/suite/funcs_1/r/is_columns_is.result | 10 +
.../suite/funcs_1/r/is_columns_is_embedded.result | 10 +
mysql-test/suite/funcs_1/r/is_columns_mysql.result | 48 +-
.../funcs_1/r/is_columns_mysql_embedded.result | 40 -
.../suite/funcs_1/r/is_key_column_usage.result | 2 -
.../funcs_1/r/is_key_column_usage_embedded.result | 2 -
.../suite/funcs_1/r/is_routines_embedded.result | 12 +-
mysql-test/suite/funcs_1/r/is_statistics.result | 2 -
.../suite/funcs_1/r/is_statistics_mysql.result | 2 -
.../funcs_1/r/is_statistics_mysql_embedded.result | 4 -
.../suite/funcs_1/r/is_table_constraints.result | 1 -
.../funcs_1/r/is_table_constraints_mysql.result | 1 -
.../r/is_table_constraints_mysql_embedded.result | 2 -
mysql-test/suite/funcs_1/r/is_tables_is.result | 50 +
.../suite/funcs_1/r/is_tables_is_embedded.result | 50 +
mysql-test/suite/funcs_1/r/is_tables_mysql.result | 57 +-
.../funcs_1/r/is_tables_mysql_embedded.result | 114 +-
.../suite/funcs_1/r/is_user_privileges.result | 66 +-
mysql-test/suite/funcs_1/r/memory_func_view.result | 84 +-
mysql-test/suite/funcs_1/r/myisam_func_view.result | 84 +-
.../suite/funcs_1/t/is_check_constraints.test | 69 +
mysql-test/suite/galera/disabled.def | 27 +-
.../suite/galera/include/reset_query_cache.inc | 11 +
mysql-test/suite/galera/r/MW-286.result | 6 +-
mysql-test/suite/galera/r/MW-336.result | 131 +-
mysql-test/suite/galera/r/MW-44.result | 32 +-
mysql-test/suite/galera/r/galera#505.result | 8 +
.../r/galera_bf_background_statistics.result | 33 +
.../galera/r/galera_binlog_stmt_autoinc.result | 147 +
mysql-test/suite/galera/r/galera_defaults.result | 68 -
.../suite/galera/r/galera_drop_database.result | 17 +
mysql-test/suite/galera/r/galera_enum.result | 37 +-
.../r/galera_ist_innodb_flush_logs,debug.rdiff | 103 +
.../galera/r/galera_ist_innodb_flush_logs.result | 96 -
.../galera/r/galera_ist_mysqldump,debug.rdiff | 106 +
.../suite/galera/r/galera_ist_mysqldump.result | 109 +-
.../suite/galera/r/galera_ist_rsync,debug.rdiff | 114 +
mysql-test/suite/galera/r/galera_ist_rsync.result | 108 -
.../galera/r/galera_ist_xtrabackup-v2,debug.rdiff | 103 +
.../suite/galera/r/galera_ist_xtrabackup-v2.result | 96 -
mysql-test/suite/galera/r/galera_kill_ddl.result | 1 +
.../suite/galera/r/galera_kill_largechanges.result | 1 +
.../suite/galera/r/galera_kill_smallchanges.result | 1 +
.../suite/galera/r/galera_pc_ignore_sb.result | 7 +-
.../galera/r/galera_sst_mysqldump_with_key.result | 215 +-
.../suite/galera/r/galera_sst_rsync2,debug.rdiff | 114 +
mysql-test/suite/galera/r/galera_sst_rsync2.result | 288 +
.../galera/r/galera_sst_rsync_data_dir,debug.rdiff | 114 +
.../galera/r/galera_sst_rsync_data_dir.result | 288 +
.../r/galera_sst_xtrabackup-v2_data_dir.result | 262 +
.../suite/galera/r/galera_suspend_slave.result | 2 +
.../suite/galera/r/galera_toi_truncate.result | 2 +
.../galera/r/galera_unicode_identifiers.result | 6 +-
.../suite/galera/r/galera_var_desync_on.result | 2 -
.../suite/galera/r/galera_var_node_address.result | 2 +-
.../suite/galera/r/galera_var_slave_threads.result | 67 +-
mysql-test/suite/galera/r/galera_wan.result | 6 +-
mysql-test/suite/galera/r/mysql-wsrep#332.result | 111 +
mysql-test/suite/galera/r/query_cache.result | 47 +-
mysql-test/suite/galera/r/versioning_trx_id.result | 52 +
mysql-test/suite/galera/suite.pm | 2 +
mysql-test/suite/galera/t/MW-286.test | 6 +-
mysql-test/suite/galera/t/MW-328A.test | 1 +
mysql-test/suite/galera/t/MW-328B.test | 1 +
mysql-test/suite/galera/t/MW-328C.test | 1 +
mysql-test/suite/galera/t/MW-336.test | 65 +-
mysql-test/suite/galera/t/MW-44-master.opt | 1 +
mysql-test/suite/galera/t/MW-44.test | 25 +-
mysql-test/suite/galera/t/galera#505.test | 26 +
.../galera/t/galera_bf_background_statistics.opt | 1 +
.../galera/t/galera_bf_background_statistics.test | 49 +
.../suite/galera/t/galera_binlog_stmt_autoinc.test | 230 +
mysql-test/suite/galera/t/galera_defaults.test | 13 +-
.../suite/galera/t/galera_drop_database.test | 65 +
mysql-test/suite/galera/t/galera_enum.test | 18 +-
.../suite/galera/t/galera_ist_mysqldump.test | 2 +
.../suite/galera/t/galera_ist_xtrabackup-v2.test | 5 +
mysql-test/suite/galera/t/galera_kill_ddl.test | 2 +
.../suite/galera/t/galera_kill_largechanges.test | 2 +
.../suite/galera/t/galera_kill_smallchanges.test | 2 +
mysql-test/suite/galera/t/galera_pc_ignore_sb.test | 21 +-
.../galera/t/galera_sst_mysqldump_with_key.test | 7 +-
mysql-test/suite/galera/t/galera_sst_rsync2.cnf | 15 +
mysql-test/suite/galera/t/galera_sst_rsync2.test | 12 +
.../suite/galera/t/galera_sst_rsync_data_dir.cnf | 11 +
.../suite/galera/t/galera_sst_rsync_data_dir.test | 16 +
.../galera/t/galera_sst_xtrabackup-v2_data_dir.cnf | 16 +
.../t/galera_sst_xtrabackup-v2_data_dir.test | 23 +
.../suite/galera/t/galera_suspend_slave.test | 3 +
mysql-test/suite/galera/t/galera_toi_truncate.test | 16 +-
.../suite/galera/t/galera_unicode_identifiers.test | 12 +-
.../suite/galera/t/galera_var_desync_on.test | 7 +-
.../suite/galera/t/galera_var_node_address.test | 8 +-
.../suite/galera/t/galera_var_slave_threads.test | 10 +
mysql-test/suite/galera/t/galera_wan.test | 14 +-
mysql-test/suite/galera/t/mysql-wsrep#332.test | 113 +
mysql-test/suite/galera/t/query_cache.test | 123 +-
mysql-test/suite/galera/t/versioning_trx_id.cnf | 1 +
mysql-test/suite/galera/t/versioning_trx_id.test | 28 +
.../r/galera_certification_double_failure.result | 2 +-
.../suite/galera_3nodes/r/galera_pc_weight.result | 31 +-
.../suite/galera_3nodes/t/galera_pc_weight.test | 55 +-
mysql-test/suite/gcol/r/gcol_bug20746926.result | 8 +-
.../suite/gcol/r/gcol_partition_innodb.result | 17 +
.../suite/gcol/r/innodb_virtual_debug_purge.result | 6 +-
.../suite/gcol/r/innodb_virtual_index.result | 32 +
.../suite/gcol/r/innodb_virtual_rebuild.result | 16 +-
mysql-test/suite/gcol/t/gcol_partition_innodb.test | 20 +
.../suite/gcol/t/innodb_virtual_debug_purge.test | 6 -
mysql-test/suite/gcol/t/innodb_virtual_index.test | 31 +
.../suite/gcol/t/innodb_virtual_rebuild.test | 5 +-
mysql-test/suite/heap/heap_btree.result | 4 +
mysql-test/suite/heap/heap_btree.test | 9 +
mysql-test/suite/innodb/include/alter_nocopy.inc | 33 -
.../suite/innodb/include/alter_nocopy_fail.inc | 51 -
mysql-test/suite/innodb/include/alter_not_null.inc | 94 -
.../include/have_undo_tablespaces.combinations | 2 +
.../suite/innodb/include/have_undo_tablespaces.inc | 4 +
.../innodb/include/innodb_binlog.combinations | 3 +
mysql-test/suite/innodb/include/innodb_binlog.inc | 3 +
.../suite/innodb/include/innodb_wl6501_crash.inc | 416 -
.../innodb/include/innodb_wl6501_crash_temp.inc | 98 -
.../suite/innodb/r/alter_algorithm,COPY.rdiff | 92 -
.../suite/innodb/r/alter_algorithm,INPLACE.rdiff | 128 +-
.../suite/innodb/r/alter_algorithm,INSTANT.rdiff | 124 +-
.../suite/innodb/r/alter_algorithm,NOCOPY.rdiff | 145 +
mysql-test/suite/innodb/r/alter_algorithm.result | 103 +-
.../suite/innodb/r/alter_inplace_perfschema.result | 20 +
mysql-test/suite/innodb/r/alter_instant,COPY.rdiff | 61 -
.../suite/innodb/r/alter_instant,INPLACE.rdiff | 11 -
.../suite/innodb/r/alter_instant,INSTANT.rdiff | 11 -
mysql-test/suite/innodb/r/alter_instant.result | 50 -
mysql-test/suite/innodb/r/alter_kill.result | 2 +
mysql-test/suite/innodb/r/alter_table.result | 15 +
.../innodb/r/auto_increment_dup,skip-log-bin.rdiff | 51 +
.../suite/innodb/r/auto_increment_dup.result | 22 +-
.../r/default_row_format_compatibility.result | 2 +-
mysql-test/suite/innodb/r/foreign-keys.result | 73 +
mysql-test/suite/innodb/r/foreign_key.result | 76 +-
.../suite/innodb/r/innodb-alter-debug.result | 18 +-
mysql-test/suite/innodb/r/innodb-alter.result | 142 +-
mysql-test/suite/innodb/r/innodb-index,debug.rdiff | 10 +
mysql-test/suite/innodb/r/innodb-lock.result | 47 +-
.../innodb/r/innodb-page_compression_bzip2.result | 8 +-
.../innodb/r/innodb-page_compression_lz4.result | 7 +-
.../innodb/r/innodb-page_compression_lzma.result | 8 +-
.../innodb/r/innodb-page_compression_lzo.result | 8 +-
.../innodb/r/innodb-page_compression_tables.result | 8 +-
.../innodb/r/innodb-page_compression_zip.result | 7 +-
mysql-test/suite/innodb/r/innodb-wl5522.result | 264 +-
mysql-test/suite/innodb/r/innodb_mysql.result | 2 +-
mysql-test/suite/innodb/r/instant_alter.result | 245 +-
.../suite/innodb/r/instant_alter_crash.result | 62 +-
.../suite/innodb/r/instant_alter_debug.result | 83 +-
.../suite/innodb/r/instant_alter_limit.result | 35 +
.../suite/innodb/r/instant_alter_rollback.result | 108 +-
mysql-test/suite/innodb/r/instant_drop.result | 190 +
mysql-test/suite/innodb/r/log_corruption.result | 2 +-
mysql-test/suite/innodb/r/log_file_size.result | 2 +-
.../suite/innodb/r/row_format_redundant.result | 2 +-
mysql-test/suite/innodb/r/system_tables.result | 2 +-
.../suite/innodb/r/table_flags,32k,debug.rdiff | 132 +
.../suite/innodb/r/table_flags,32k,release.rdiff | 20 +
mysql-test/suite/innodb/r/table_flags,32k.rdiff | 20 -
.../suite/innodb/r/table_flags,64k,debug.rdiff | 132 +
.../suite/innodb/r/table_flags,64k,release.rdiff | 20 +
mysql-test/suite/innodb/r/table_flags,64k.rdiff | 20 -
mysql-test/suite/innodb/r/table_flags,debug.rdiff | 122 +
mysql-test/suite/innodb/r/temporary_table.result | 13 +
mysql-test/suite/innodb/r/truncate.result | 8 +
mysql-test/suite/innodb/r/truncate_crash.result | 14 +
mysql-test/suite/innodb/r/truncate_debug.result | 88 -
mysql-test/suite/innodb/r/truncate_foreign.result | 58 +
mysql-test/suite/innodb/r/truncate_inject.result | 114 -
mysql-test/suite/innodb/r/truncate_missing.result | 17 +
.../suite/innodb/r/truncate_purge_debug.result | 29 -
mysql-test/suite/innodb/r/truncate_restart.result | 12 -
mysql-test/suite/innodb/r/undo_truncate.result | 60 +
.../suite/innodb/r/undo_truncate_recover.result | 15 +
mysql-test/suite/innodb/t/alter_algorithm.test | 129 +-
.../suite/innodb/t/alter_inplace_perfschema.opt | 2 +
.../suite/innodb/t/alter_inplace_perfschema.test | 40 +
mysql-test/suite/innodb/t/alter_instant.test | 45 -
mysql-test/suite/innodb/t/alter_kill.test | 9 +-
mysql-test/suite/innodb/t/alter_not_null.test | 94 +-
mysql-test/suite/innodb/t/alter_table.test | 12 +
mysql-test/suite/innodb/t/auto_increment_dup.test | 40 +-
mysql-test/suite/innodb/t/foreign-keys.test | 87 +
mysql-test/suite/innodb/t/foreign_key.test | 112 +-
mysql-test/suite/innodb/t/innodb-alter-debug.test | 25 +-
mysql-test/suite/innodb/t/innodb-alter.test | 105 +-
mysql-test/suite/innodb/t/innodb-index.test | 4 +
mysql-test/suite/innodb/t/innodb-lock.test | 74 +-
.../innodb/t/innodb-page_compression_bzip2.test | 15 +-
.../innodb/t/innodb-page_compression_lz4.test | 14 +-
.../innodb/t/innodb-page_compression_lzma.test | 15 +-
.../innodb/t/innodb-page_compression_lzo.test | 15 +-
.../innodb/t/innodb-page_compression_tables.test | 8 +-
.../innodb/t/innodb-page_compression_zip.test | 14 +-
mysql-test/suite/innodb/t/innodb-wl5522.test | 254 +-
.../t/innodb_default_row_format.combinations | 2 +
mysql-test/suite/innodb/t/instant_alter.test | 78 +
mysql-test/suite/innodb/t/instant_alter_crash.test | 70 +-
mysql-test/suite/innodb/t/instant_alter_debug.test | 99 +-
mysql-test/suite/innodb/t/instant_alter_limit.test | 42 +
.../suite/innodb/t/instant_alter_rollback.test | 80 +-
mysql-test/suite/innodb/t/instant_drop.test | 98 +
mysql-test/suite/innodb/t/log_file_size.test | 2 +-
mysql-test/suite/innodb/t/system_tables.test | 2 +-
mysql-test/suite/innodb/t/table_flags.test | 5 +-
mysql-test/suite/innodb/t/temporary_table.test | 17 +
mysql-test/suite/innodb/t/truncate.test | 17 +
mysql-test/suite/innodb/t/truncate_crash.test | 23 +
mysql-test/suite/innodb/t/truncate_debug.test | 128 -
mysql-test/suite/innodb/t/truncate_foreign.test | 68 +
mysql-test/suite/innodb/t/truncate_inject.test | 97 -
mysql-test/suite/innodb/t/truncate_missing.test | 22 +
mysql-test/suite/innodb/t/truncate_purge_debug.opt | 3 -
.../suite/innodb/t/truncate_purge_debug.test | 49 -
mysql-test/suite/innodb/t/truncate_restart.test | 16 -
mysql-test/suite/innodb/t/undo_truncate.test | 122 +
.../suite/innodb/t/undo_truncate_recover.test | 50 +
.../suite/innodb_fts/r/crash_recovery.result | 1 +
.../suite/innodb_fts/r/fts_kill_query.result | 9 +
mysql-test/suite/innodb_fts/r/sync_ddl.result | 105 +
mysql-test/suite/innodb_fts/r/truncate.result | 31 -
mysql-test/suite/innodb_fts/t/crash_recovery.test | 1 +
mysql-test/suite/innodb_fts/t/fts_kill_query.test | 30 +
.../innodb_fts/t/innodb_fts_multiple_index.test | 2 +-
mysql-test/suite/innodb_fts/t/sync_ddl.test | 177 +
mysql-test/suite/innodb_fts/t/truncate.opt | 1 -
mysql-test/suite/innodb_fts/t/truncate.test | 50 -
.../suite/innodb_gis/r/alter_spatial_index.result | 2 +-
.../suite/innodb_gis/r/create_spatial_index.result | 2 +-
.../innodb_gis/r/rtree_concurrent_srch.result | 4 +-
.../suite/innodb_gis/t/alter_spatial_index.test | 3 +-
.../suite/innodb_gis/t/create_spatial_index.test | 2 +-
.../suite/innodb_gis/t/rtree_concurrent_srch.test | 2 +-
.../include/have_undo_tablespaces.combinations | 2 -
.../innodb_undo/include/have_undo_tablespaces.inc | 4 -
.../suite/innodb_undo/include/truncate_recover.inc | 8 -
mysql-test/suite/innodb_undo/r/truncate.result | 11 -
.../innodb_undo/r/truncate_multi_client.result | 51 -
.../suite/innodb_undo/r/truncate_recover.result | 15 -
mysql-test/suite/innodb_undo/t/truncate.test | 72 -
.../suite/innodb_undo/t/truncate_multi_client.test | 77 -
.../suite/innodb_undo/t/truncate_recover.test | 50 -
.../innodb_zip/include/innodb_wl6501_scale.inc | 110 -
.../suite/innodb_zip/r/index_large_prefix.result | 2 +-
mysql-test/suite/innodb_zip/r/restart.result | 24 +-
mysql-test/suite/innodb_zip/r/wl6501_1.result | 1202 -
.../suite/innodb_zip/r/wl6501_crash_3.result | 462 -
.../suite/innodb_zip/r/wl6501_crash_4.result | 519 -
.../suite/innodb_zip/r/wl6501_crash_5.result | 462 -
.../suite/innodb_zip/r/wl6501_scale_1.result | 336 -
mysql-test/suite/innodb_zip/t/wl6501_1.test | 451 -
mysql-test/suite/innodb_zip/t/wl6501_crash_3.test | 25 -
mysql-test/suite/innodb_zip/t/wl6501_crash_4.test | 27 -
mysql-test/suite/innodb_zip/t/wl6501_crash_5.test | 25 -
mysql-test/suite/innodb_zip/t/wl6501_scale_1.test | 37 -
mysql-test/suite/maria/concurrent.result | 33 +
mysql-test/suite/maria/concurrent.test | 28 +
mysql-test/suite/maria/create.result | 33 +
mysql-test/suite/maria/create.test | 42 +
mysql-test/suite/maria/disabled.def | 13 +
mysql-test/suite/maria/fulltext2.result | 86 +
mysql-test/suite/maria/fulltext2.test | 77 +
mysql-test/suite/maria/maria-recover.result | 2 +-
mysql-test/suite/maria/maria-recover.test | 12 +
mysql-test/suite/maria/maria-ucs2.result | 2 +-
mysql-test/suite/maria/maria.result | 12 +-
mysql-test/suite/maria/maria.test | 10 +
mysql-test/suite/maria/maria3.result | 2 +-
mysql-test/suite/maria/system_tables.result | 13 +
mysql-test/suite/maria/system_tables.test | 27 +
.../suite/mariabackup/absolute_ibdata_paths.opt | 2 +-
.../suite/mariabackup/create_during_backup.result | 10 +
.../suite/mariabackup/create_during_backup.test | 26 +
...create_with_data_directory_during_backup.result | 10 +
.../create_with_data_directory_during_backup.test | 24 +
mysql-test/suite/mariabackup/disabled.def | 1 -
.../mariabackup/drop_table_during_backup.result | 13 +
.../mariabackup/drop_table_during_backup.test | 24 +
.../incremental_ddl_during_backup.result | 22 +
.../mariabackup/incremental_ddl_during_backup.test | 52 +
.../mariabackup/innodb_log_optimize_ddl.result | 37 +
.../suite/mariabackup/innodb_log_optimize_ddl.test | 47 +
.../suite/mariabackup/mlog_index_load.result | 15 +
mysql-test/suite/mariabackup/mlog_index_load.test | 27 +
.../nolock_ddl_during_backup_end.result | 2 +
.../mariabackup/nolock_ddl_during_backup_end.test | 14 +
.../recreate_table_during_backup.result | 23 +
.../mariabackup/recreate_table_during_backup.test | 37 +
.../suite/mariabackup/rename_during_backup.result | 53 +
.../suite/mariabackup/rename_during_backup.test | 86 +
.../mariabackup/rename_during_mdl_lock.result | 10 +-
.../suite/mariabackup/rename_during_mdl_lock.test | 20 +-
mysql-test/suite/mariabackup/skip_innodb.opt | 1 +
mysql-test/suite/mariabackup/skip_innodb.result | 10 +
mysql-test/suite/mariabackup/skip_innodb.test | 12 +
mysql-test/suite/mariabackup/suite.opt | 2 +-
.../mariabackup/truncate_during_backup.result | 4 +
.../suite/mariabackup/truncate_during_backup.test | 18 +
mysql-test/suite/mariabackup/undo_space_id.opt | 1 +
.../suite/mariabackup/unsupported_redo.result | 2 +-
mysql-test/suite/mariabackup/unsupported_redo.test | 35 +-
.../suite/mariabackup/xb_aws_key_management.result | 2 +
.../multi_source/gtid_ignore_duplicates.result | 8 +-
.../suite/multi_source/gtid_ignore_duplicates.test | 8 +-
.../suite/parts/r/partition_recover_myisam.result | 12 +-
mysql-test/suite/parts/r/rpl_partition.result | 12 +
mysql-test/suite/parts/r/show_create.result | 8 +
mysql-test/suite/parts/r/truncate_locked.result | 7 +
mysql-test/suite/parts/r/update_and_cache.result | 7 +
mysql-test/suite/parts/t/show_create.test | 11 +
mysql-test/suite/parts/t/truncate_locked.test | 10 +
mysql-test/suite/parts/t/update_and_cache.test | 12 +
mysql-test/suite/perfschema/r/bad_option_1.result | 1 +
mysql-test/suite/perfschema/r/bad_option_2.result | 1 +
mysql-test/suite/perfschema/r/bad_option_3.result | 1 +
mysql-test/suite/perfschema/r/bad_option_4.result | 1 +
mysql-test/suite/perfschema/r/bad_option_5.result | 1 +
.../suite/perfschema/r/privilege_table_io.result | 2 -
mysql-test/suite/perfschema/t/bad_option_1.test | 5 +
mysql-test/suite/perfschema/t/bad_option_2.test | 5 +
mysql-test/suite/perfschema/t/bad_option_3.test | 5 +
mysql-test/suite/perfschema/t/bad_option_4.test | 5 +
mysql-test/suite/perfschema/t/bad_option_5.test | 5 +
.../suite/perfschema/t/privilege_table_io.test | 1 -
mysql-test/suite/plugins/r/audit_null_debug.result | 4 +
mysql-test/suite/plugins/r/auth_ed25519.result | 25 +-
.../suite/plugins/r/simple_password_check.result | 5 +-
mysql-test/suite/plugins/t/audit_null_debug.test | 4 +-
mysql-test/suite/plugins/t/auth_ed25519.test | 9 +
.../suite/plugins/t/simple_password_check.test | 6 +-
mysql-test/suite/rpl/include/check_type.inc | 8 +
mysql-test/suite/rpl/include/rpl_foreign_key.test | 60 -
.../rpl/include/rpl_lower_case_table_names.test | 141 +
mysql-test/suite/rpl/include/rpl_mixed_dml.inc | 1 -
mysql-test/suite/rpl/include/rpl_row_001.test | 4 +-
mysql-test/suite/rpl/include/type_conversions.test | 91 +
mysql-test/suite/rpl/r/rpl_15919.result | 19 +
mysql-test/suite/rpl/r/rpl_auto_increment.result | 16 -
.../rpl/r/rpl_auto_increment_update_failure.result | 112 -
mysql-test/suite/rpl/r/rpl_binlog_index.result | 4 -
mysql-test/suite/rpl/r/rpl_checksum_cache.result | 24 -
.../suite/rpl/r/rpl_conditional_comments.result | 12 -
mysql-test/suite/rpl/r/rpl_corruption.result | 4 -
mysql-test/suite/rpl/r/rpl_create_drop_user.result | 44 +-
mysql-test/suite/rpl/r/rpl_current_user.result | 78 -
mysql-test/suite/rpl/r/rpl_do_grant.result | 1 +
.../suite/rpl/r/rpl_foreign_key_innodb.result | 3 +-
mysql-test/suite/rpl/r/rpl_gtid_ignored.result | 2 +-
mysql-test/suite/rpl/r/rpl_gtid_mdev4484.result | 2 +-
mysql-test/suite/rpl/r/rpl_gtid_stop_start.result | 2 +-
mysql-test/suite/rpl/r/rpl_innodb_bug28430.result | 12 +
mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result | 15 +-
mysql-test/suite/rpl/r/rpl_insert_ignore.result | 8 -
.../rpl/r/rpl_lcase_tblnames_rewrite_db.result | 38 +
mysql-test/suite/rpl/r/rpl_loaddata.result | 4 -
mysql-test/suite/rpl/r/rpl_loadfile.result | 4 -
.../suite/rpl/r/rpl_lost_events_on_rotate.result | 4 -
mysql-test/suite/rpl/r/rpl_mdev10863.result | 2 +-
mysql-test/suite/rpl/r/rpl_mdev12179.result | 12 +-
.../rpl/r/rpl_mixed_binlog_max_cache_size.result | 28 -
.../rpl/r/rpl_mixed_implicit_commit_binlog.result | 4 -
.../rpl/r/rpl_nondeterministic_functions.result | 4 -
mysql-test/suite/rpl/r/rpl_not_null_innodb.result | 16 -
mysql-test/suite/rpl/r/rpl_not_null_myisam.result | 16 -
mysql-test/suite/rpl/r/rpl_old_master.result | 3 +
.../suite/rpl/r/rpl_parallel_optimistic.result | 8 +
mysql-test/suite/rpl/r/rpl_reset_slave_fail.result | 4 -
mysql-test/suite/rpl/r/rpl_row_001.result | 4 +-
.../suite/rpl/r/rpl_row_basic_2myisam.result | 32 -
.../suite/rpl/r/rpl_row_basic_3innodb.result | 32 -
mysql-test/suite/rpl/r/rpl_row_find_row.result | 4 -
mysql-test/suite/rpl/r/rpl_row_img_blobs.result | 2016 --
mysql-test/suite/rpl/r/rpl_row_img_eng_min.result | 1152 -
.../suite/rpl/r/rpl_row_img_eng_noblob.result | 1152 -
.../rpl/r/rpl_row_implicit_commit_binlog.result | 4 -
.../suite/rpl/r/rpl_row_lcase_tblnames.result | 60 +
.../suite/rpl/r/rpl_row_loaddata_concurrent.result | 4 -
mysql-test/suite/rpl/r/rpl_row_merge_engine.result | 16 -
.../suite/rpl/r/rpl_row_rec_comp_innodb.result | 12 -
.../suite/rpl/r/rpl_row_rec_comp_myisam.result | 16 -
mysql-test/suite/rpl/r/rpl_row_spatial.result | 16 +
mysql-test/suite/rpl/r/rpl_row_tbl_metadata.result | 44 -
mysql-test/suite/rpl/r/rpl_row_utf16.result | 4 -
.../rpl/r/rpl_semi_sync_master_shutdown.result | 33 +
mysql-test/suite/rpl/r/rpl_set_null_innodb.result | 16 -
mysql-test/suite/rpl/r/rpl_set_null_myisam.result | 16 -
mysql-test/suite/rpl/r/rpl_slave_load_in.result | 8 -
mysql-test/suite/rpl/r/rpl_special_charset.result | 4 -
mysql-test/suite/rpl/r/rpl_stm_000001.result | 7 +-
.../rpl/r/rpl_stm_binlog_max_cache_size.result | 28 -
.../rpl/r/rpl_stm_implicit_commit_binlog.result | 4 -
.../suite/rpl/r/rpl_stm_lcase_tblnames.result | 57 +
.../suite/rpl/r/rpl_stm_loaddata_concurrent.result | 4 -
.../suite/rpl/r/rpl_stm_relay_ign_space.result | 4 -
.../suite/rpl/r/rpl_stm_user_variables.result | 4 -
mysql-test/suite/rpl/r/rpl_stop_slave.result | 8 -
.../suite/rpl/r/rpl_switch_stm_row_mixed.result | 2 +-
mysql-test/suite/rpl/r/rpl_sync.result | 8 -
.../suite/rpl/r/rpl_temp_table_mix_row.result | 4 -
mysql-test/suite/rpl/r/rpl_test_framework.result | 126 -
mysql-test/suite/rpl/r/rpl_trigger.result | 8 -
mysql-test/suite/rpl/r/rpl_truncate_2myisam.result | 16 -
mysql-test/suite/rpl/r/rpl_truncate_3innodb.result | 16 -
mysql-test/suite/rpl/r/rpl_typeconv.result | 44 +
mysql-test/suite/rpl/r/rpl_typeconv_innodb.result | 4 -
.../suite/rpl/r/rpl_unsafe_statements.result | 24 -
mysql-test/suite/rpl/r/rpl_variables.result | 20 -
mysql-test/suite/rpl/r/rpl_variables_stm.result | 20 -
mysql-test/suite/rpl/t/rpl_15919-slave.opt | 1 +
mysql-test/suite/rpl/t/rpl_15919.test | 18 +
mysql-test/suite/rpl/t/rpl_create_drop_user.test | 18 +-
mysql-test/suite/rpl/t/rpl_do_grant.test | 1 +
mysql-test/suite/rpl/t/rpl_drop_db.test | 8 +-
mysql-test/suite/rpl/t/rpl_foreign_key_innodb.test | 62 +-
mysql-test/suite/rpl/t/rpl_gtid_ignored.test | 2 +-
mysql-test/suite/rpl/t/rpl_gtid_mdev4484.test | 2 +-
mysql-test/suite/rpl/t/rpl_gtid_stop_start.test | 2 +-
.../rpl/t/rpl_lcase_tblnames_rewrite_db-slave.opt | 1 +
.../suite/rpl/t/rpl_lcase_tblnames_rewrite_db.test | 60 +
mysql-test/suite/rpl/t/rpl_mdev10863.test | 2 +-
mysql-test/suite/rpl/t/rpl_mdev12179.test | 4 +-
mysql-test/suite/rpl/t/rpl_mdev382.test | 1 +
mysql-test/suite/rpl/t/rpl_old_master.test | 8 +
.../suite/rpl/t/rpl_parallel_optimistic.test | 24 +
.../rpl/t/rpl_parallel_optimistic_nobinlog.cnf | 1 +
.../suite/rpl/t/rpl_row_lcase_tblnames-slave.opt | 1 +
mysql-test/suite/rpl/t/rpl_row_lcase_tblnames.test | 12 +
mysql-test/suite/rpl/t/rpl_row_spatial.test | 17 +
.../suite/rpl/t/rpl_semi_sync_master_shutdown.test | 60 +
mysql-test/suite/rpl/t/rpl_stm_000001.test | 5 +-
.../suite/rpl/t/rpl_stm_lcase_tblnames-slave.opt | 1 +
mysql-test/suite/rpl/t/rpl_stm_lcase_tblnames.test | 12 +
.../suite/sql_sequence/auto_increment.result | 30 +
mysql-test/suite/sql_sequence/auto_increment.test | 30 +
mysql-test/suite/sql_sequence/create.result | 9 +
mysql-test/suite/sql_sequence/create.test | 11 +
mysql-test/suite/sql_sequence/next.result | 15 +
mysql-test/suite/sql_sequence/next.test | 11 +
.../sys_vars/r/delayed_insert_limit_func.result | 4 +-
.../r/innodb_ft_result_cache_limit_32.result | 7 +
.../r/innodb_ft_result_cache_limit_64.result | 5 +
.../innodb_ft_result_cache_limit_basic,32bit.rdiff | 13 +
.../r/innodb_ft_result_cache_limit_basic.result | 7 +-
.../r/innodb_log_optimize_ddl_basic.result | 39 +
.../r/shared_memory_base_name_basic.result | 21 -
.../suite/sys_vars/r/shared_memory_basic.result | 21 -
.../r/sql_low_priority_updates_func.result | 4 +-
.../suite/sys_vars/r/sysvars_innodb,32bit.rdiff | 118 +-
mysql-test/suite/sys_vars/r/sysvars_innodb.result | 16 +-
.../sys_vars/r/sysvars_server_embedded.result | 30 +-
.../sys_vars/r/sysvars_server_notembedded.result | 30 +-
.../suite/sys_vars/r/thread_pool_size_high.result | 1 +
.../sys_vars/r/wsrep_start_position_basic.result | 10 +-
.../sys_vars/t/delayed_insert_limit_func.test | 20 +-
.../t/innodb_ft_result_cache_limit_32.test | 9 +
.../t/innodb_ft_result_cache_limit_64.test | 9 +
.../t/innodb_ft_result_cache_limit_basic.test | 5 +-
.../sys_vars/t/innodb_log_optimize_ddl_basic.test | 65 +
.../sys_vars/t/shared_memory_base_name_basic.test | 25 -
.../suite/sys_vars/t/shared_memory_basic.test | 20 -
.../sys_vars/t/sql_low_priority_updates_func.test | 4 +-
.../suite/sys_vars/t/thread_pool_size_high.test | 1 +
.../sys_vars/t/wsrep_start_position_basic.test | 6 +-
mysql-test/suite/vcol/r/index.result | 10 +
mysql-test/suite/vcol/r/races.result | 16 +
mysql-test/suite/vcol/r/wrong_arena.result | 28 +-
mysql-test/suite/vcol/t/index.test | 16 +
mysql-test/suite/vcol/t/races.test | 22 +
mysql-test/suite/versioning/innodb.combinations | 5 +
mysql-test/suite/versioning/innodb.inc | 1 +
mysql-test/suite/versioning/r/alter.result | 2 +-
mysql-test/suite/versioning/r/online.result | 134 +-
mysql-test/suite/versioning/r/partition.result | 8 +-
mysql-test/suite/versioning/r/truncate.result | 6 +
mysql-test/suite/versioning/r/trx_id.result | 3 +
.../trx_id_versioning_attribute_persistence.result | 86 -
mysql-test/suite/versioning/t/online.test | 148 +-
mysql-test/suite/versioning/t/truncate.test | 10 +
mysql-test/suite/versioning/t/trx_id.test | 2 +
.../t/trx_id_versioning_attribute_persistence.test | 87 -
.../suite/wsrep/include/check_galera_version.inc | 20 +-
mysql-test/suite/wsrep/r/variables.result | 4 +
mysql-test/suite/wsrep/t/variables.test | 11 +-
mysql-test/unstable-tests | 479 +-
mysql-test/valgrind.supp | 13 +
mysys/CMakeLists.txt | 1 +
mysys/mf_iocache.c | 20 +-
mysys/mf_iocache2.c | 4 +-
mysys/my_alloc.c | 14 +-
mysys/my_pread.c | 26 +-
mysys/my_rename.c | 5 +-
mysys/my_static.c | 2 +-
mysys/ptr_cmp.c | 7 +
mysys_ssl/openssl.c | 3 +-
pcre/CMakeLists.txt | 63 +-
pcre/pcre_grep_test.sh | 13 +
pcre/pcre_test.bat | 9 +
pcre/pcre_test.sh | 11 +
plugin/auth_ed25519/ed25519-t.c | 2 +-
plugin/auth_ed25519/server_ed25519.c | 47 +-
plugin/auth_examples/dialog_examples.c | 6 +-
plugin/auth_examples/qa_auth_interface.c | 3 +-
plugin/auth_examples/qa_auth_server.c | 3 +-
plugin/auth_examples/test_plugin.c | 6 +-
.../auth_gssapi/mysql-test/auth_gssapi/basic.test | 1 +
plugin/auth_gssapi/sspi_server.cc | 9 +-
plugin/auth_pam/auth_pam_common.c | 3 +-
plugin/auth_pam/mapper/pam_user_map.c | 6 +-
plugin/auth_socket/auth_socket.c | 3 +-
plugin/aws_key_management/CMakeLists.txt | 8 +-
.../aws_key_management_plugin.cc | 29 +-
.../cracklib_password_check.c | 3 +-
plugin/handler_socket/CMakeLists.txt | 9 +-
.../simple_password_check/simple_password_check.c | 4 +-
plugin/user_variables/user_variables.cc | 2 +-
scripts/CMakeLists.txt | 2 +
scripts/fill_help_tables.sql | 2 +
scripts/galera_new_cluster.sh | 7 +-
scripts/galera_recovery.sh | 3 +-
scripts/mysql_install_db.sh | 9 +-
scripts/mysql_system_tables.sql | 71 +-
scripts/mysql_system_tables_fix.sql | 147 +-
scripts/mysqld_multi.sh | 21 +-
scripts/wsrep_sst_common.sh | 32 +-
scripts/wsrep_sst_mariabackup.sh | 32 +-
scripts/wsrep_sst_rsync.sh | 153 +-
scripts/wsrep_sst_xtrabackup-v2.sh | 51 +-
sql-common/client.c | 321 +-
sql-common/my_time.c | 420 +-
sql/CMakeLists.txt | 37 +-
sql/compat56.cc | 3 +
sql/contributors.h | 4 +-
sql/event_data_objects.cc | 12 +-
sql/event_parse_data.cc | 8 +-
sql/events.cc | 22 +-
sql/field.cc | 329 +-
sql/field.h | 111 +-
sql/field_conv.cc | 4 +-
sql/filesort.cc | 6 +-
sql/gcalc_slicescan.cc | 11 +
sql/gcalc_slicescan.h | 7 +
sql/gcalc_tools.cc | 11 +
sql/gcalc_tools.h | 1 +
sql/ha_partition.cc | 157 +-
sql/ha_partition.h | 11 +-
sql/handle_connections_win.cc | 555 +
sql/handle_connections_win.h | 20 +
sql/handler.cc | 51 +-
sql/handler.h | 64 +-
sql/init.h | 2 +-
sql/item.cc | 422 +-
sql/item.h | 317 +-
sql/item_cmpfunc.cc | 121 +-
sql/item_cmpfunc.h | 51 +-
sql/item_create.cc | 21 +-
sql/item_func.cc | 79 +-
sql/item_func.h | 130 +-
sql/item_jsonfunc.cc | 47 +-
sql/item_jsonfunc.h | 2 +-
sql/item_row.h | 2 +-
sql/item_strfunc.cc | 136 +-
sql/item_strfunc.h | 12 +-
sql/item_subselect.cc | 9 +-
sql/item_subselect.h | 6 +-
sql/item_sum.cc | 28 +-
sql/item_sum.h | 20 +-
sql/item_timefunc.cc | 427 +-
sql/item_timefunc.h | 283 +-
sql/item_vers.cc | 7 +-
sql/item_vers.h | 2 +-
sql/item_windowfunc.cc | 21 +-
sql/item_windowfunc.h | 9 +-
sql/key.cc | 3 +-
sql/lock.cc | 16 -
sql/lock.h | 1 -
sql/log.cc | 21 +-
sql/log_event.cc | 60 +-
sql/multi_range_read.cc | 13 +
sql/my_decimal.h | 4 +-
sql/mysql_install_db.cc | 88 +-
sql/mysqld.cc | 901 +-
sql/mysqld.h | 10 +-
sql/net_serv.cc | 2 +-
sql/opt_range.cc | 66 +-
sql/opt_range.h | 5 +-
sql/opt_range_mrr.cc | 54 +-
sql/opt_split.cc | 12 +-
sql/opt_subselect.cc | 119 +-
sql/partition_info.h | 5 +-
sql/procedure.h | 4 +-
sql/protocol.cc | 8 +-
sql/rpl_gtid.cc | 72 +-
sql/rpl_gtid.h | 2 +-
sql/rpl_parallel.cc | 32 +-
sql/rpl_rli.cc | 79 +
sql/rpl_rli.h | 11 +
sql/rpl_utility.cc | 34 +-
sql/semisync_master_ack_receiver.cc | 3 +-
sql/semisync_slave.cc | 3 +-
sql/share/CMakeLists.txt | 12 +-
sql/share/errmsg-utf8.txt | 4 +-
sql/slave.cc | 13 +
sql/sql_acl.cc | 1452 +-
sql/sql_admin.cc | 9 +
sql/sql_alter.cc | 19 +-
sql/sql_alter.h | 2 +-
sql/sql_base.cc | 203 +-
sql/sql_base.h | 6 +-
sql/sql_basic_types.h | 83 +
sql/sql_class.cc | 15 +-
sql/sql_class.h | 42 +-
sql/sql_const.h | 2 +-
sql/sql_cte.cc | 36 +-
sql/sql_cte.h | 19 +-
sql/sql_delete.cc | 17 +-
sql/sql_derived.cc | 5 +-
sql/sql_error.h | 73 +-
sql/sql_get_diagnostics.cc | 2 +-
sql/sql_get_diagnostics.h | 2 +-
sql/sql_insert.cc | 3 +-
sql/sql_lex.cc | 26 +-
sql/sql_lex.h | 11 +-
sql/sql_list.h | 5 +-
sql/sql_parse.cc | 47 +-
sql/sql_partition.cc | 20 +-
sql/sql_partition.h | 4 +
sql/sql_partition_admin.cc | 4 +-
sql/sql_plist.h | 7 +-
sql/sql_plugin.cc | 74 +-
sql/sql_plugin_services.ic | 3 +-
sql/sql_prepare.cc | 29 +-
sql/sql_reload.cc | 14 +-
sql/sql_select.cc | 297 +-
sql/sql_select.h | 8 +-
sql/sql_sequence.cc | 5 +-
sql/sql_show.cc | 56 +-
sql/sql_statistics.cc | 38 +-
sql/sql_statistics.h | 34 +-
sql/sql_string.cc | 23 +-
sql/sql_string.h | 1 +
sql/sql_table.cc | 132 +-
sql/sql_time.cc | 222 +-
sql/sql_time.h | 50 +-
sql/sql_trigger.cc | 26 +-
sql/sql_truncate.cc | 7 +-
sql/sql_tvc.cc | 19 +-
sql/sql_tvc.h | 2 +
sql/sql_type.cc | 756 +-
sql/sql_type.h | 954 +-
sql/sql_type_int.h | 82 +
sql/sql_union.cc | 36 +-
sql/sql_update.cc | 4 +-
sql/sql_view.cc | 12 +-
sql/sql_window.cc | 36 +-
sql/sql_window.h | 6 +-
sql/sql_yacc.yy | 153 +-
sql/sql_yacc_ora.yy | 130 +-
sql/structs.h | 7 +-
sql/sys_vars.cc | 27 +-
sql/sys_vars.ic | 4 +-
sql/table.cc | 73 +-
sql/table.h | 28 +-
sql/table_cache.cc | 19 +-
sql/temporary_tables.cc | 30 +
sql/threadpool_win.cc | 94 +-
sql/tztime.cc | 2 +-
sql/wsrep_applier.cc | 1 +
sql/wsrep_binlog.cc | 52 +-
sql/wsrep_dummy.cc | 3 +
sql/wsrep_hton.cc | 9 +-
sql/wsrep_mysqld.cc | 326 +-
sql/wsrep_mysqld.h | 4 +-
sql/wsrep_sst.cc | 121 +-
sql/wsrep_sst.h | 1 +
sql/wsrep_var.cc | 11 +-
sql/wsrep_xid.cc | 5 +-
storage/cassandra/CMakeLists.txt | 1 -
storage/connect/CMakeLists.txt | 19 +-
storage/connect/connect.cc | 2 +-
storage/connect/filamdbf.cpp | 4 +-
storage/connect/filamtxt.cpp | 4 +-
storage/connect/filamvct.cpp | 11 +-
storage/connect/global.h | 4 +-
storage/connect/ha_connect.cc | 124 +-
storage/connect/ha_connect.h | 6 +-
storage/connect/inihandl.cpp | 2 +-
storage/connect/javaconn.cpp | 43 +-
storage/connect/javaconn.h | 1 +
storage/connect/jdbconn.cpp | 38 +-
storage/connect/jmgoconn.cpp | 6 +-
storage/connect/jsonudf.cpp | 2 +-
storage/connect/mysql-test/connect/disabled.def | 23 +-
storage/connect/mysql-test/connect/r/jdbc.result | 4 +-
.../mysql-test/connect/r/json_java_2.result | 1 -
.../mysql-test/connect/r/json_java_3.result | 1 -
.../mysql-test/connect/r/mongo_java_2.result | 1 -
.../mysql-test/connect/r/mongo_java_3.result | 1 -
.../connect/mysql-test/connect/r/mysql_exec.result | 6 +
.../mysql-test/connect/r/odbc_postgresql.result | 18 +-
storage/connect/mysql-test/connect/r/xml2.result | 31 -
.../connect/mysql-test/connect/r/xml2_mult.result | 8 +-
.../connect/mysql-test/connect/r/xml_mult.result | 8 +-
.../connect/mysql-test/connect/t/json_java_2.test | 2 +
.../connect/mysql-test/connect/t/json_java_3.test | 2 +
.../connect/mysql-test/connect/t/mongo_java_2.test | 2 +
.../connect/mysql-test/connect/t/mongo_java_3.test | 2 +
storage/connect/mysql-test/connect/t/xml2.test | 36 +-
storage/connect/odbconn.cpp | 10 +-
storage/connect/tabext.cpp | 6 +
storage/connect/tabjdbc.cpp | 9 +-
storage/connect/tabjmg.cpp | 11 +-
storage/connect/tabmysql.cpp | 11 +-
storage/connect/tabodbc.cpp | 13 +-
storage/connect/tabpivot.cpp | 166 +-
storage/connect/tabutil.cpp | 2 +-
storage/connect/tabxml.cpp | 2 +-
storage/heap/hp_create.c | 22 +-
storage/innobase/CMakeLists.txt | 2 -
storage/innobase/btr/btr0btr.cc | 282 +-
storage/innobase/btr/btr0bulk.cc | 242 +-
storage/innobase/btr/btr0cur.cc | 625 +-
storage/innobase/btr/btr0pcur.cc | 11 +-
storage/innobase/btr/btr0sea.cc | 12 +-
storage/innobase/buf/buf0buddy.cc | 2 +-
storage/innobase/buf/buf0buf.cc | 62 +-
storage/innobase/buf/buf0dblwr.cc | 10 +-
storage/innobase/buf/buf0dump.cc | 6 +-
storage/innobase/buf/buf0flu.cc | 14 +-
storage/innobase/buf/buf0lru.cc | 31 +-
storage/innobase/buf/buf0rea.cc | 64 +-
storage/innobase/data/data0data.cc | 66 +-
storage/innobase/dict/dict0boot.cc | 10 +-
storage/innobase/dict/dict0crea.cc | 228 +-
storage/innobase/dict/dict0defrag_bg.cc | 47 +-
storage/innobase/dict/dict0dict.cc | 155 +-
storage/innobase/dict/dict0mem.cc | 356 +-
storage/innobase/dict/dict0stats.cc | 10 +-
storage/innobase/dict/dict0stats_bg.cc | 100 +-
storage/innobase/fil/fil0crypt.cc | 6 +-
storage/innobase/fil/fil0fil.cc | 371 +-
storage/innobase/fsp/fsp0fsp.cc | 65 +-
storage/innobase/fts/fts0ast.cc | 9 +-
storage/innobase/fts/fts0fts.cc | 94 +-
storage/innobase/fts/fts0opt.cc | 171 +-
storage/innobase/fts/fts0pars.cc | 16 +-
storage/innobase/fts/fts0pars.y | 16 +-
storage/innobase/fts/fts0que.cc | 23 +-
storage/innobase/fut/fut0lst.cc | 4 +-
storage/innobase/gis/gis0rtree.cc | 6 +-
storage/innobase/gis/gis0sea.cc | 7 +-
storage/innobase/handler/ha_innodb.cc | 919 +-
storage/innobase/handler/ha_innodb.h | 81 +-
storage/innobase/handler/handler0alter.cc | 2329 +-
storage/innobase/handler/i_s.cc | 8 +-
storage/innobase/ibuf/ibuf0ibuf.cc | 35 +-
storage/innobase/include/btr0btr.h | 25 +-
storage/innobase/include/btr0btr.ic | 4 +-
storage/innobase/include/btr0bulk.h | 67 +-
storage/innobase/include/btr0cur.h | 22 +-
storage/innobase/include/btr0pcur.h | 12 +
storage/innobase/include/btr0sea.h | 2 +-
storage/innobase/include/btr0types.h | 32 +-
storage/innobase/include/buf0buf.h | 114 +-
storage/innobase/include/buf0buf.ic | 26 +-
storage/innobase/include/buf0flu.h | 7 +-
storage/innobase/include/buf0lru.h | 6 +-
storage/innobase/include/buf0rea.h | 8 +-
storage/innobase/include/data0data.h | 32 +-
storage/innobase/include/data0type.h | 44 +
storage/innobase/include/db0err.h | 2 -
storage/innobase/include/dict0defrag_bg.h | 19 +
storage/innobase/include/dict0dict.h | 35 +-
storage/innobase/include/dict0dict.ic | 3 +-
storage/innobase/include/dict0mem.h | 279 +-
storage/innobase/include/dict0stats.h | 18 +-
storage/innobase/include/fil0fil.h | 117 +-
storage/innobase/include/fsp0fsp.h | 40 +-
storage/innobase/include/fsp0fsp.ic | 2 +-
storage/innobase/include/fts0ast.h | 5 +-
storage/innobase/include/fts0fts.h | 12 +-
storage/innobase/include/fts0priv.h | 11 +-
storage/innobase/include/fts0types.h | 4 +-
storage/innobase/include/fut0lst.h | 49 +-
storage/innobase/include/fut0lst.ic | 22 +-
storage/innobase/include/ha_prototypes.h | 3 +
storage/innobase/include/ibuf0ibuf.h | 12 +-
storage/innobase/include/ibuf0ibuf.ic | 2 +-
storage/innobase/include/lock0lock.h | 63 -
storage/innobase/include/lock0priv.h | 139 +-
storage/innobase/include/lock0priv.ic | 12 +-
storage/innobase/include/lock0types.h | 192 +-
storage/innobase/include/log0crypt.h | 19 +-
storage/innobase/include/log0log.h | 93 +-
storage/innobase/include/log0log.ic | 6 +-
storage/innobase/include/log0recv.h | 54 +-
storage/innobase/include/mtr0log.h | 20 +-
storage/innobase/include/mtr0mtr.h | 35 +-
storage/innobase/include/mtr0types.h | 8 +-
storage/innobase/include/os0file.h | 7 +-
storage/innobase/include/page0cur.h | 14 +
storage/innobase/include/page0cur.ic | 1 +
storage/innobase/include/page0page.h | 27 +-
storage/innobase/include/page0page.ic | 18 -
storage/innobase/include/page0size.h | 2 +-
storage/innobase/include/page0types.h | 12 -
storage/innobase/include/page0zip.h | 6 +-
storage/innobase/include/page0zip.ic | 2 +-
storage/innobase/include/rem0rec.h | 193 +-
storage/innobase/include/rem0rec.ic | 54 +-
storage/innobase/include/row0ftsort.h | 10 +
storage/innobase/include/row0ins.h | 10 -
storage/innobase/include/row0mysql.h | 62 +-
storage/innobase/include/row0row.h | 29 +-
storage/innobase/include/row0row.ic | 4 +-
storage/innobase/include/row0trunc.h | 427 -
storage/innobase/include/row0upd.h | 9 +-
storage/innobase/include/srv0srv.h | 25 +-
storage/innobase/include/sync0arr.ic | 3 +-
storage/innobase/include/trx0purge.h | 245 +-
storage/innobase/include/trx0rec.h | 9 +-
storage/innobase/include/trx0sys.h | 11 +-
storage/innobase/include/trx0trx.h | 30 +-
storage/innobase/include/trx0undo.h | 21 +-
storage/innobase/include/trx0undo.ic | 4 +-
storage/innobase/include/univ.i | 3 +-
storage/innobase/include/ut0counter.h | 119 +-
storage/innobase/include/ut0pool.h | 20 +-
storage/innobase/lock/lock0lock.cc | 158 +-
storage/innobase/log/log0crypt.cc | 147 +-
storage/innobase/log/log0log.cc | 74 +-
storage/innobase/log/log0recv.cc | 411 +-
storage/innobase/mtr/mtr0log.cc | 123 +-
storage/innobase/mtr/mtr0mtr.cc | 31 +-
storage/innobase/os/os0file.cc | 49 +-
storage/innobase/page/page0cur.cc | 39 +-
storage/innobase/page/page0page.cc | 42 +-
storage/innobase/page/page0zip.cc | 92 +-
storage/innobase/que/que0que.cc | 3 +-
storage/innobase/rem/rem0rec.cc | 556 +-
storage/innobase/row/row0ftsort.cc | 9 +-
storage/innobase/row/row0import.cc | 105 +-
storage/innobase/row/row0ins.cc | 127 +-
storage/innobase/row/row0log.cc | 120 +-
storage/innobase/row/row0merge.cc | 75 +-
storage/innobase/row/row0mysql.cc | 347 +-
storage/innobase/row/row0purge.cc | 51 +-
storage/innobase/row/row0quiesce.cc | 7 +-
storage/innobase/row/row0row.cc | 638 +-
storage/innobase/row/row0sel.cc | 29 +-
storage/innobase/row/row0trunc.cc | 3217 --
storage/innobase/row/row0uins.cc | 57 +-
storage/innobase/row/row0umod.cc | 117 +-
storage/innobase/row/row0undo.cc | 8 +-
storage/innobase/row/row0upd.cc | 129 +-
storage/innobase/row/row0vers.cc | 3 +
storage/innobase/srv/srv0srv.cc | 78 +-
storage/innobase/srv/srv0start.cc | 271 +-
storage/innobase/sync/sync0rw.cc | 107 +-
storage/innobase/trx/trx0purge.cc | 758 +-
storage/innobase/trx/trx0rec.cc | 191 +-
storage/innobase/trx/trx0roll.cc | 2 +-
storage/innobase/trx/trx0rseg.cc | 40 +-
storage/innobase/trx/trx0sys.cc | 7 +-
storage/innobase/trx/trx0trx.cc | 109 +-
storage/innobase/trx/trx0undo.cc | 86 +-
storage/innobase/ut/ut0new.cc | 1 -
storage/innobase/ut/ut0ut.cc | 2 -
storage/maria/CMakeLists.txt | 3 +-
storage/maria/ha_maria.cc | 91 +-
storage/maria/ma_blockrec.c | 21 +-
storage/maria/ma_check.c | 20 +-
storage/maria/ma_commit.c | 2 +-
storage/maria/ma_control_file.c | 4 +-
storage/maria/ma_control_file.h | 2 +-
storage/maria/ma_create.c | 22 +-
storage/maria/ma_ft_boolean_search.c | 2 +-
storage/maria/ma_info.c | 6 +-
storage/maria/ma_key_recover.c | 2 -
storage/maria/ma_locking.c | 3 +-
storage/maria/ma_norec.c | 4 +-
storage/maria/ma_open.c | 35 +-
storage/maria/ma_page.c | 3 +-
storage/maria/ma_recovery.c | 25 +-
storage/maria/ma_state.c | 25 +-
storage/maria/ma_test2.c | 5 +
storage/maria/ma_trnman.h | 36 +-
storage/maria/ma_write.c | 15 +-
storage/maria/maria_chk.c | 52 +-
storage/maria/maria_def.h | 5 +-
storage/maria/maria_read_log.c | 6 +-
storage/maria/trnman.c | 3 +
storage/maria/unittest/ma_test_all-t | 7 +-
storage/maria/unittest/ma_test_recovery.expected | 192 +-
storage/maria/unittest/ma_test_recovery.pl | 4 +-
storage/mroonga/CMakeLists.txt | 3 +-
storage/mroonga/ha_mroonga.cpp | 35 +-
storage/mroonga/ha_mroonga.hpp | 6 +-
storage/mroonga/lib/mrn_condition_converter.cpp | 4 +-
.../mroonga/lib/mrn_multiple_column_key_codec.cpp | 7 +-
storage/mroonga/mrn_table.hpp | 3 +
storage/mroonga/vendor/groonga/config.h.cmake | 1 +
storage/mroonga/vendor/groonga/lib/expr.c | 2 +-
.../mroonga/vendor/groonga/lib/ts/ts_expr_node.c | 2 +-
storage/myisam/ha_myisam.cc | 52 +-
storage/myisam/mi_check.c | 16 +-
storage/myisam/mi_locking.c | 6 +-
.../mysql-test/storage_engine/disabled.def | 1 +
storage/oqgraph/CMakeLists.txt | 1 -
storage/perfschema/unittest/pfs-t.cc | 5 +-
storage/rocksdb/CMakeLists.txt | 10 +-
storage/rocksdb/build_rocksdb.cmake | 42 +-
storage/rocksdb/event_listener.cc | 2 +-
storage/rocksdb/event_listener.h | 2 +-
storage/rocksdb/ha_rocksdb.cc | 1256 +-
storage/rocksdb/ha_rocksdb.h | 55 +-
storage/rocksdb/ha_rocksdb_proto.h | 9 +-
storage/rocksdb/logger.h | 2 +-
storage/rocksdb/mysql-test/rocksdb/combinations | 6 +
.../rocksdb/include/have_write_committed.inc | 3 +
.../mysql-test/rocksdb/r/2pc_group_commit.result | 30 +-
.../mysql-test/rocksdb/r/add_index_inplace.result | 24 +
.../r/add_index_inplace_sstfilewriter.result | 2 +-
.../mysql-test/rocksdb/r/autoinc_debug.result | 40 +-
.../mysql-test/rocksdb/r/autoinc_vars.result | 26 +
.../rocksdb/r/bloomfilter_bulk_load.result | 15 +
.../mysql-test/rocksdb/r/bulk_load_sk.result | 229 +
.../mysql-test/rocksdb/r/cardinality.result | 17 +-
.../rocksdb/mysql-test/rocksdb/r/collation.result | 20 +-
.../rocksdb/mysql-test/rocksdb/r/com_rpc_tx.result | 21 +
.../rocksdb/r/create_no_primary_key_table.result | 38 +
.../mysql-test/rocksdb/r/ddl_high_priority.result | 71 +-
.../mysql-test/rocksdb/r/deadlock_tracking.result | 57 +
.../rocksdb/mysql-test/rocksdb/r/drop_table.result | 19 +
.../mysql-test/rocksdb/r/explicit_snapshot.result | 265 +
.../mysql-test/rocksdb/r/i_s_deadlock.result | 55 +-
.../mysql-test/rocksdb/r/index_file_map.result | 3 +
.../rocksdb/r/index_merge_rocksdb2.result | 52 +-
.../mysql-test/rocksdb/r/information_schema.result | 1 +
.../rocksdb/mysql-test/rocksdb/r/issue255.result | 14 +-
storage/rocksdb/mysql-test/rocksdb/r/lock.result | 15 +
.../mysql-test/rocksdb/r/mariadb_port_fixes.result | 1 +
storage/rocksdb/mysql-test/rocksdb/r/misc.result | 2 -
.../rocksdb/mysql-test/rocksdb/r/mysqldump.result | 5 +-
.../r/percona_nonflushing_analyze_debug.result | 19 +
.../rocksdb/r/prefix_extractor_override.result | 7 +-
.../rocksdb/mysql-test/rocksdb/r/rocksdb.result | 24 +-
.../mysql-test/rocksdb/r/rocksdb_checksums.result | 27 +-
.../rocksdb/r/rocksdb_deadlock_detect_rc.result | 23 +-
.../rocksdb/r/rocksdb_deadlock_detect_rr.result | 23 +-
.../mysql-test/rocksdb/r/rocksdb_range2.result | 17 +
.../rocksdb/r/secondary_key_update_lock.result | 18 +
.../mysql-test/rocksdb/r/show_engine.result | 53 +
.../mysql-test/rocksdb/r/transaction.result | 17 +
.../mysql-test/rocksdb/r/trx_info_rpl.result | 2 +-
storage/rocksdb/mysql-test/rocksdb/r/update.result | 8 +
.../mysql-test/rocksdb/r/use_direct_reads.result | 18 +
.../mysql-test/rocksdb/r/validate_datadic.result | 5 +-
.../mysql-test/rocksdb/t/2pc_group_commit.test | 24 +-
.../mysql-test/rocksdb/t/add_index_inplace.test | 18 +
.../rocksdb/t/add_index_inplace_crash.test | 1 +
.../rocksdb/t/add_index_inplace_sstfilewriter.test | 2 +-
.../t/allow_to_start_after_corruption-master.opt | 1 +
.../mysql-test/rocksdb/t/autoinc_debug-master.opt | 2 +-
.../mysql-test/rocksdb/t/autoinc_debug.test | 17 +-
.../rocksdb/mysql-test/rocksdb/t/autoinc_vars.test | 33 +
.../mysql-test/rocksdb/t/bloomfilter5-master.opt | 4 +-
.../rocksdb/t/bloomfilter_bulk_load-master.opt | 2 +
.../rocksdb/t/bloomfilter_bulk_load.test | 35 +
.../mysql-test/rocksdb/t/bulk_load_errors.test | 7 +
.../rocksdb/mysql-test/rocksdb/t/bulk_load_sk.test | 119 +
.../rocksdb/mysql-test/rocksdb/t/cardinality.test | 21 +-
.../rocksdb/t/check_ignore_unknown_options.test | 6 +-
.../rocksdb/mysql-test/rocksdb/t/collation.test | 36 +-
.../rocksdb/mysql-test/rocksdb/t/com_rpc_tx.cnf | 4 +
.../rocksdb/mysql-test/rocksdb/t/com_rpc_tx.test | 87 +
.../t/create_no_primary_key_table-master.opt | 1 +
.../rocksdb/t/create_no_primary_key_table.test | 44 +
.../mysql-test/rocksdb/t/deadlock_tracking.test | 76 +-
storage/rocksdb/mysql-test/rocksdb/t/disabled.def | 12 +-
.../rocksdb/mysql-test/rocksdb/t/drop_table.test | 27 +
.../rocksdb/t/explicit_snapshot-master.opt | 1 +
.../mysql-test/rocksdb/t/explicit_snapshot.test | 263 +
.../rocksdb/mysql-test/rocksdb/t/i_s_deadlock.test | 14 +-
.../mysql-test/rocksdb/t/index_file_map.test | 3 +
.../rocksdb/t/index_merge_rocksdb2-master.opt | 2 +-
.../mysql-test/rocksdb/t/information_schema.test | 1 +
.../rocksdb/t/insert_optimized_config-master.opt | 8 -
.../rocksdb/t/insert_optimized_config.test | 10 +
storage/rocksdb/mysql-test/rocksdb/t/issue255.test | 16 +-
storage/rocksdb/mysql-test/rocksdb/t/lock.test | 22 +
.../t/percona_nonflushing_analyze_debug.test | 11 +
.../rocksdb/t/prefix_extractor_override.test | 14 +-
storage/rocksdb/mysql-test/rocksdb/t/rocksdb.test | 3 +-
.../mysql-test/rocksdb/t/rocksdb_checksums.test | 23 +-
.../rocksdb/t/rocksdb_deadlock_detect.inc | 35 +-
.../mysql-test/rocksdb/t/rocksdb_range2.test | 12 +
.../rocksdb/t/secondary_key_update_lock.test | 26 +
.../mysql-test/rocksdb/t/set_checkpoint.inc | 2 +-
.../rocksdb/mysql-test/rocksdb/t/show_engine.test | 13 +
.../rocksdb/mysql-test/rocksdb/t/transaction.test | 23 +
.../rocksdb/mysql-test/rocksdb/t/trx_info_rpl.test | 4 +-
storage/rocksdb/mysql-test/rocksdb/t/update.test | 10 +
.../mysql-test/rocksdb/t/use_direct_reads.test | 37 +
.../mysql-test/rocksdb/t/validate_datadic.test | 25 +-
.../rocksdb/mysql-test/rocksdb_rpl/combinations | 8 +-
.../r/rpl_missing_columns_sk_update.result | 62 +
.../rpl_mts_dependency_unique_key_conflicts.result | 44 +
.../rocksdb_rpl/r/rpl_rocksdb_snapshot.result | 4 +-
.../rocksdb/mysql-test/rocksdb_rpl/t/disabled.def | 2 +
.../t/rpl_gtid_crash_safe_wal_corrupt.inc | 2 +-
.../t/rpl_missing_columns_sk_update.cnf | 13 +
.../t/rpl_missing_columns_sk_update.test | 69 +
.../t/rpl_mts_dependency_unique_key_conflicts.test | 64 +
.../t/rpl_rocksdb_2pc_crash_recover.test | 1 +
.../rocksdb/mysql-test/rocksdb_stress/combinations | 5 +
.../r/rocksdb_block_cache_size_basic.result | 84 +-
.../r/rocksdb_bulk_load_allow_sk_basic.result | 100 +
...sdb_commit_time_batch_for_recovery_basic.result | 121 +
.../r/rocksdb_create_checkpoint_basic.result | 2 +-
...ksdb_debug_manual_compaction_delay_basic.result | 46 +
...ksdb_error_on_suboptimal_collation_basic.result | 7 +
.../rocksdb_manual_compaction_threads_basic.result | 93 +
.../r/rocksdb_max_manifest_file_size_basic.result | 2 +-
.../r/rocksdb_max_manual_compactions_basic.result | 57 +
.../r/rocksdb_max_row_locks_basic.result | 21 +
.../r/rocksdb_stats_recalc_rate_basic.result | 53 +
.../r/rocksdb_write_batch_max_bytes_basic.result | 4 +-
.../r/rocksdb_write_policy_basic.result | 15 +
.../t/rocksdb_block_cache_size_basic.test | 16 +-
.../t/rocksdb_bulk_load_allow_sk_basic.test | 18 +
...cksdb_commit_time_batch_for_recovery_basic.test | 20 +
.../t/rocksdb_create_checkpoint_basic.test | 2 +-
...ocksdb_debug_manual_compaction_delay_basic.test | 16 +
...ocksdb_error_on_suboptimal_collation_basic.test | 6 +
.../t/rocksdb_manual_compaction_threads_basic.test | 17 +
.../t/rocksdb_max_manual_compactions_basic.test | 17 +
.../t/rocksdb_max_row_locks_basic.test | 1 +
.../t/rocksdb_stats_recalc_rate_basic.test | 17 +
.../t/rocksdb_write_batch_max_bytes_basic.test | 4 +-
.../t/rocksdb_write_policy_basic.test | 17 +
.../rocksdb/mysql-test/storage_engine/disabled.def | 1 +
storage/rocksdb/properties_collector.cc | 63 +-
storage/rocksdb/properties_collector.h | 5 +-
storage/rocksdb/rdb_buff.h | 2 +-
storage/rocksdb/rdb_cf_manager.cc | 2 +-
storage/rocksdb/rdb_cf_manager.h | 2 +-
storage/rocksdb/rdb_cf_options.cc | 4 +-
storage/rocksdb/rdb_cf_options.h | 2 +-
storage/rocksdb/rdb_compact_filter.h | 2 +-
storage/rocksdb/rdb_comparator.h | 48 +-
storage/rocksdb/rdb_datadic.cc | 8 +-
storage/rocksdb/rdb_datadic.h | 7 +-
storage/rocksdb/rdb_i_s.cc | 169 +-
storage/rocksdb/rdb_i_s.h | 3 +-
storage/rocksdb/rdb_index_merge.cc | 7 +-
storage/rocksdb/rdb_index_merge.h | 2 +-
storage/rocksdb/rdb_io_watchdog.cc | 2 +-
storage/rocksdb/rdb_io_watchdog.h | 2 +-
storage/rocksdb/rdb_mutex_wrapper.cc | 2 +-
storage/rocksdb/rdb_mutex_wrapper.h | 2 +-
storage/rocksdb/rdb_perf_context.cc | 4 +-
storage/rocksdb/rdb_perf_context.h | 2 +-
storage/rocksdb/rdb_psi.cc | 17 +-
storage/rocksdb/rdb_psi.h | 10 +-
storage/rocksdb/rdb_sst_info.cc | 6 +-
storage/rocksdb/rdb_sst_info.h | 2 +-
storage/rocksdb/rdb_threads.cc | 2 +-
storage/rocksdb/rdb_threads.h | 33 +-
storage/rocksdb/rdb_utils.cc | 25 +-
storage/rocksdb/rdb_utils.h | 2 +-
storage/rocksdb/rocksdb | 2 +-
.../rocksdb/unittest/test_properties_collector.cc | 2 +-
storage/sphinx/ha_sphinx.cc | 2 +-
.../mysql-test/spider/include/direct_join_init.inc | 40 +
.../mysql-test/spider/include/init_child2_1.inc | 14 +
.../mysql-test/spider/include/init_master_1.inc | 4 +
.../mysql-test/spider/include/init_spider.inc | 54 +-
.../mysql-test/spider/r/auto_increment.result | 2 +-
.../spider/mysql-test/spider/r/direct_join.result | 92 +
.../mysql-test/spider/r/show_system_tables.result | 37 +
.../mysql-test/spider/r/spider_fixes_part.result | 49 +
.../spider/mysql-test/spider/r/timestamp.result | 101 +-
.../spider/mysql-test/spider/t/direct_join.test | 146 +
.../mysql-test/spider/t/show_system_tables.test | 26 +
.../mysql-test/spider/t/spider_fixes_part.test | 110 +
storage/spider/mysql-test/spider/t/timestamp.test | 85 +-
.../spider/mysql-test/spider/t/timestamp_init.inc | 29 +-
storage/spider/scripts/install_spider.sql | 65 +
storage/spider/spd_db_include.h | 1 +
storage/spider/spd_db_mysql.cc | 18 +-
storage/spider/spd_direct_sql.cc | 2 +-
storage/spider/spd_group_by_handler.cc | 36 +
storage/spider/spd_sys_table.cc | 6 +-
storage/spider/spd_table.cc | 23 +-
storage/tokudb/CMakeLists.txt | 13 +-
storage/tokudb/PerconaFT/CMakeLists.txt | 8 +-
.../PerconaFT/cmake_modules/TokuMergeLibs.cmake | 16 +-
.../cmake_modules/TokuSetupCompiler.cmake | 11 +-
.../tokudb/PerconaFT/ft/cachetable/cachetable.cc | 21 +-
.../tokudb/PerconaFT/ft/cachetable/cachetable.h | 8 +-
.../tokudb/PerconaFT/ft/ft-cachetable-wrappers.cc | 3 -
storage/tokudb/PerconaFT/ft/ft-test-helpers.cc | 3 -
storage/tokudb/PerconaFT/ft/ft.h | 3 +
storage/tokudb/PerconaFT/ft/node.cc | 2 +
.../PerconaFT/ft/serialize/block_allocator.cc | 2 +-
.../tokudb/PerconaFT/ft/tests/cachetable-4357.cc | 4 -
.../tokudb/PerconaFT/ft/tests/cachetable-4365.cc | 4 -
.../tokudb/PerconaFT/ft/tests/cachetable-5097.cc | 6 +-
.../tokudb/PerconaFT/ft/tests/cachetable-5978-2.cc | 7 +-
.../tokudb/PerconaFT/ft/tests/cachetable-5978.cc | 13 +-
.../PerconaFT/ft/tests/cachetable-all-write.cc | 5 +-
.../ft/tests/cachetable-checkpoint-pending.cc | 8 +-
.../ft/tests/cachetable-checkpoint-pinned-nodes.cc | 6 +-
.../ft/tests/cachetable-cleaner-checkpoint.cc | 5 +-
.../ft/tests/cachetable-cleaner-checkpoint2.cc | 5 +-
.../cachetable-cleaner-thread-attrs-accumulate.cc | 8 +-
.../cachetable-cleaner-thread-everything-pinned.cc | 5 +-
...etable-cleaner-thread-nothing-needs-flushing.cc | 5 +-
.../cachetable-cleaner-thread-same-fullhash.cc | 7 +-
.../ft/tests/cachetable-cleaner-thread-simple.cc | 7 +-
.../ft/tests/cachetable-clock-eviction.cc | 9 +-
.../ft/tests/cachetable-clock-eviction2.cc | 9 +-
.../ft/tests/cachetable-clock-eviction3.cc | 9 +-
.../ft/tests/cachetable-clock-eviction4.cc | 9 +-
.../ft/tests/cachetable-clone-checkpoint.cc | 5 +-
.../cachetable-clone-partial-fetch-pinned-node.cc | 7 +-
.../ft/tests/cachetable-clone-partial-fetch.cc | 7 +-
.../ft/tests/cachetable-clone-pin-nonblocking.cc | 7 +-
.../ft/tests/cachetable-clone-unpin-remove.cc | 5 +-
.../ft/tests/cachetable-eviction-close-test.cc | 4 -
.../ft/tests/cachetable-eviction-close-test2.cc | 4 -
.../ft/tests/cachetable-eviction-getandpin-test.cc | 14 +-
.../tests/cachetable-eviction-getandpin-test2.cc | 12 +-
.../ft/tests/cachetable-fetch-inducing-evictor.cc | 15 +-
.../ft/tests/cachetable-flush-during-cleaner.cc | 3 +-
.../ft/tests/cachetable-getandpin-test.cc | 8 +-
.../cachetable-kibbutz_and_flush_cachefile.cc | 3 +-
.../PerconaFT/ft/tests/cachetable-partial-fetch.cc | 18 +-
.../ft/tests/cachetable-pin-checkpoint.cc | 6 -
.../cachetable-pin-nonblocking-checkpoint-clean.cc | 9 +-
.../ft/tests/cachetable-prefetch-close-test.cc | 2 -
.../ft/tests/cachetable-prefetch-getandpin-test.cc | 12 +-
.../ft/tests/cachetable-put-checkpoint.cc | 9 -
.../PerconaFT/ft/tests/cachetable-simple-clone.cc | 7 +-
.../PerconaFT/ft/tests/cachetable-simple-clone2.cc | 5 +-
.../PerconaFT/ft/tests/cachetable-simple-close.cc | 20 +-
.../ft/tests/cachetable-simple-maybe-get-pin.cc | 3 +-
.../ft/tests/cachetable-simple-pin-cheap.cc | 9 +-
.../ft/tests/cachetable-simple-pin-dep-nodes.cc | 8 +-
.../cachetable-simple-pin-nonblocking-cheap.cc | 19 +-
.../ft/tests/cachetable-simple-pin-nonblocking.cc | 13 +-
.../PerconaFT/ft/tests/cachetable-simple-pin.cc | 11 +-
.../ft/tests/cachetable-simple-put-dep-nodes.cc | 6 +-
.../cachetable-simple-read-pin-nonblocking.cc | 13 +-
.../ft/tests/cachetable-simple-read-pin.cc | 13 +-
.../cachetable-simple-unpin-remove-checkpoint.cc | 7 +-
.../PerconaFT/ft/tests/cachetable-simple-verify.cc | 5 +-
.../tokudb/PerconaFT/ft/tests/cachetable-test.cc | 22 +-
.../ft/tests/cachetable-unpin-and-remove-test.cc | 4 +-
.../cachetable-unpin-remove-and-checkpoint.cc | 6 +-
.../PerconaFT/ft/tests/cachetable-unpin-test.cc | 2 -
storage/tokudb/PerconaFT/ft/tests/test-TDB2-pe.cc | 178 +
storage/tokudb/PerconaFT/ft/tests/test-TDB89.cc | 208 +
storage/tokudb/PerconaFT/ft/txn/rollback-apply.cc | 2 +
storage/tokudb/PerconaFT/ft/txn/rollback.cc | 2 +-
storage/tokudb/PerconaFT/ftcxx/malloc_utils.cpp | 2 +-
storage/tokudb/PerconaFT/ftcxx/malloc_utils.hpp | 2 +-
storage/tokudb/PerconaFT/portability/toku_assert.h | 2 +-
storage/tokudb/PerconaFT/portability/toku_crash.cc | 2 +-
.../tokudb/PerconaFT/portability/toku_debug_sync.h | 3 +-
.../PerconaFT/portability/toku_instr_mysql.cc | 6 +-
.../PerconaFT/portability/toku_instrumentation.h | 6 +-
.../tokudb/PerconaFT/portability/toku_race_tools.h | 2 +-
storage/tokudb/PerconaFT/src/tests/get_last_key.cc | 32 +-
storage/tokudb/PerconaFT/src/ydb.cc | 3 +
storage/tokudb/PerconaFT/src/ydb_lib.cc | 2 +-
storage/tokudb/PerconaFT/util/dmt.cc | 4 +-
storage/tokudb/PerconaFT/util/minicron.cc | 3 +-
storage/tokudb/PerconaFT/util/scoped_malloc.cc | 2 +-
.../util/tests/minicron-change-period-data-race.cc | 66 +
storage/tokudb/ha_tokudb.cc | 337 +-
storage/tokudb/ha_tokudb.h | 94 +-
storage/tokudb/ha_tokudb_admin.cc | 8 +-
storage/tokudb/ha_tokudb_alter_55.cc | 4 +
storage/tokudb/ha_tokudb_alter_56.cc | 265 +-
storage/tokudb/ha_tokudb_alter_common.cc | 6 +-
storage/tokudb/ha_tokudb_update.cc | 96 +-
storage/tokudb/hatoku_cmp.cc | 33 +-
storage/tokudb/hatoku_cmp.h | 14 +-
storage/tokudb/hatoku_defines.h | 65 +-
storage/tokudb/hatoku_hton.cc | 183 +-
storage/tokudb/hatoku_hton.h | 25 +-
storage/tokudb/mysql-test/rpl/disabled.def | 1 +
.../mysql-test/rpl/r/rpl_mixed_replace_into.result | 23 +
.../mysql-test/rpl/r/rpl_not_null_tokudb.result | 16 -
.../rpl/r/rpl_parallel_tokudb_delete_pk.result | 13 -
...pl_parallel_tokudb_update_pk_uc0_lookup0.result | 13 -
.../rpl/r/rpl_parallel_tokudb_write_pk.result | 6 -
.../mysql-test/rpl/r/rpl_row_basic_3tokudb.result | 32 -
.../rpl/r/rpl_row_rec_comp_tokudb.result | 12 -
.../mysql-test/rpl/r/rpl_row_replace_into.result | 23 +
.../mysql-test/rpl/r/rpl_set_null_tokudb.result | 16 -
.../mysql-test/rpl/r/rpl_stmt_replace_into.result | 23 +
.../mysql-test/rpl/r/rpl_tokudb_mixed_dml.result | 15 +-
.../mysql-test/rpl/r/rpl_truncate_3tokudb.result | 16 -
.../mysql-test/rpl/r/rpl_typeconv_tokudb.result | 4 -
.../mysql-test/rpl/r/rpl_xa_interleave.result | 78 +
.../mysql-test/rpl/r/tokudb_innodb_xa_crash.result | 8 -
.../mysql-test/rpl/t/rpl_mixed_replace_into.test | 25 +
.../mysql-test/rpl/t/rpl_row_replace_into.test | 25 +
.../mysql-test/rpl/t/rpl_stmt_replace_into.test | 25 +
.../tokudb/mysql-test/rpl/t/rpl_xa_interleave.test | 103 +
.../tokudb/include/fast_update_gen_footer.inc | 2 +
.../include/fast_update_gen_footer_silent.inc | 9 +
.../tokudb/include/fast_update_gen_header.inc | 6 +
.../mysql-test/tokudb/include/fast_update_int.inc | 48 +
.../tokudb/include/fast_upsert_gen_header.inc | 6 +
.../mysql-test/tokudb/include/fast_upsert_int.inc | 19 +
.../tokudb/mysql-test/tokudb/include/have_mrr.inc | 0
.../tokudb/include/setup_fast_update_upsert.inc | 8 +
.../tokudb/r/change_column_bin_descriptor.result | 4 -
.../tokudb/r/change_column_bin_rename.result | 64 -
.../tokudb/r/change_column_blob_data.result | 72 -
.../tokudb/r/change_column_char_descriptor.result | 4 -
.../tokudb/r/change_column_char_rename.result | 64 -
.../mysql-test/tokudb/r/change_column_int.result | 120 -
.../tokudb/r/change_column_int_descriptor.result | 4 -
.../tokudb/r/change_column_int_rename.result | 40 -
.../tokudb/r/change_column_text_data.result | 72 -
.../r/change_column_varbin_descriptor.result | 4 -
.../r/change_column_varchar_descriptor.result | 4 -
.../tokudb/mysql-test/tokudb/r/compressions.result | 11 +
.../tokudb/r/fast_update_binlog_mixed.result | 225 +-
.../tokudb/r/fast_update_binlog_row.result | 19 +-
.../tokudb/r/fast_update_binlog_statement.result | 222 +-
.../mysql-test/tokudb/r/fast_update_blobs.result | 18253 +---------
.../r/fast_update_blobs_fixed_varchar.result | 33026 ------------------
.../tokudb/r/fast_update_blobs_with_varchar.result | 32771 +-----------------
.../mysql-test/tokudb/r/fast_update_char.result | 60 +-
.../tokudb/r/fast_update_deadlock.result | 19 +-
.../tokudb/r/fast_update_decr_floor.result | 314 +-
.../r/fast_update_disable_slow_update.result | 7 -
.../mysql-test/tokudb/r/fast_update_error.result | 12 +-
.../mysql-test/tokudb/r/fast_update_int.result | 562 +-
.../tokudb/r/fast_update_int_bounds.result | 52 +-
.../mysql-test/tokudb/r/fast_update_key.result | 54 +-
.../mysql-test/tokudb/r/fast_update_sqlmode.result | 21 +-
.../tokudb/r/fast_update_uint_bounds.result | 36 +-
.../mysql-test/tokudb/r/fast_update_varchar.result | 13575 +-------
.../mysql-test/tokudb/r/fast_upsert_bin_pad.result | Bin 659 -> 738 bytes
.../mysql-test/tokudb/r/fast_upsert_char.result | 24 +-
.../tokudb/r/fast_upsert_deadlock.result | 19 +-
.../mysql-test/tokudb/r/fast_upsert_int.result | 428 +-
.../mysql-test/tokudb/r/fast_upsert_key.result | 43 +-
.../mysql-test/tokudb/r/fast_upsert_sqlmode.result | 23 +-
.../mysql-test/tokudb/r/fast_upsert_values.result | 18 +-
.../tokudb/mysql-test/tokudb/r/tokudb_mrr.result | 334 +
.../mysql-test/tokudb/r/type_datetime.result | 10 +-
storage/tokudb/mysql-test/tokudb/suite.pm | 6 +
.../tokudb/mysql-test/tokudb/t/compressions.test | 68 +
storage/tokudb/mysql-test/tokudb/t/disabled.def | 24 -
.../tokudb/t/fast_update_binlog_mixed-master.opt | 2 +
.../tokudb/t/fast_update_binlog_mixed.test | 15 +-
.../tokudb/t/fast_update_binlog_row-master.opt | 2 +
.../tokudb/t/fast_update_binlog_row.test | 19 +-
.../t/fast_update_binlog_statement-master.opt | 2 +
.../tokudb/t/fast_update_binlog_statement.test | 15 +-
.../mysql-test/tokudb/t/fast_update_blobs.py | 57 -
.../mysql-test/tokudb/t/fast_update_blobs.test | 18575 +----------
.../tokudb/t/fast_update_blobs_fixed_varchar.py | 63 -
.../tokudb/t/fast_update_blobs_fixed_varchar.test | 33287 -------------------
.../tokudb/t/fast_update_blobs_with_varchar.py | 62 -
.../tokudb/t/fast_update_blobs_with_varchar.test | 33115 +-----------------
.../mysql-test/tokudb/t/fast_update_char.test | 66 +-
.../mysql-test/tokudb/t/fast_update_deadlock.test | 21 +-
.../mysql-test/tokudb/t/fast_update_decr_floor.py | 58 -
.../tokudb/t/fast_update_decr_floor.test | 409 +-
.../tokudb/t/fast_update_disable_slow_update.test | 17 -
.../mysql-test/tokudb/t/fast_update_error.test | 16 +-
.../tokudb/mysql-test/tokudb/t/fast_update_int.py | 77 -
.../mysql-test/tokudb/t/fast_update_int.test | 682 +-
.../tokudb/t/fast_update_int_bounds.test | 55 +-
.../mysql-test/tokudb/t/fast_update_key.test | 63 +-
.../mysql-test/tokudb/t/fast_update_sqlmode.test | 25 +-
.../tokudb/t/fast_update_uint_bounds.test | 42 +-
.../mysql-test/tokudb/t/fast_update_varchar.py | 63 -
.../mysql-test/tokudb/t/fast_update_varchar.test | 7390 +---
.../mysql-test/tokudb/t/fast_upsert_bin_pad.test | 19 +-
.../mysql-test/tokudb/t/fast_upsert_char.test | 27 +-
.../mysql-test/tokudb/t/fast_upsert_deadlock.test | 22 +-
.../tokudb/mysql-test/tokudb/t/fast_upsert_int.py | 50 -
.../mysql-test/tokudb/t/fast_upsert_int.test | 486 +-
.../mysql-test/tokudb/t/fast_upsert_key.test | 46 +-
.../mysql-test/tokudb/t/fast_upsert_sqlmode.test | 27 +-
.../mysql-test/tokudb/t/fast_upsert_values.test | 21 +-
storage/tokudb/mysql-test/tokudb/t/tokudb_mrr.test | 73 +
.../tokudb_alter_table/r/hcad_all_add.result | 1736 -
.../tokudb_alter_table/r/hcad_all_add2.result | 1736 -
.../tokudb_alter_table/r/hcad_all_add3.result | 1736 -
.../tokudb_alter_table/r/hcad_all_blob_add.result | 1736 -
.../tokudb_alter_table/r/hcad_all_blob_drop.result | 160 -
.../tokudb_alter_table/r/hcad_all_drop.result | 1232 -
.../tokudb_alter_table/r/hcad_all_fixed_add.result | 1736 -
.../r/hcad_all_fixed_drop.result | 160 -
.../tokudb_alter_table/r/hcad_all_var_add.result | 1736 -
.../tokudb_alter_table/r/hcad_all_var_drop.result | 160 -
.../tokudb_alter_table/r/hcad_clustering.result | 32 -
.../tokudb_alter_table/r/hcad_clustering2.result | 32 -
.../r/hcad_diff_num_offset_bytes.result | 84 -
.../tokudb_alter_table/r/hcad_fixedblob_add.result | 1736 -
.../r/hcad_fixedblob_add2.result | 1736 -
.../r/hcad_fixedblob_drop.result | 560 -
.../tokudb_alter_table/r/hcad_fixedvar_add.result | 1736 -
.../tokudb_alter_table/r/hcad_fixedvar_add2.result | 1736 -
.../tokudb_alter_table/r/hcad_fixedvar_drop.result | 560 -
.../tokudb_alter_table/r/hcad_null_bits.result | 68 -
.../mysql-test/tokudb_alter_table/r/hcad_pk.result | 32 -
.../tokudb_alter_table/r/hcad_pk2.result | 32 -
.../tokudb_alter_table/r/hcad_varblob_add.result | 1736 -
.../tokudb_alter_table/r/hcad_varblob_add2.result | 1736 -
.../tokudb_alter_table/r/hcad_varblob_drop.result | 560 -
.../tokudb_alter_table/r/other_alter2.result | 72 -
.../tokudb/mysql-test/tokudb_bugs/r/PS-3773.result | 8 +
.../tokudb_bugs/r/alter_part_tokudb_bug_155.result | 4 -
.../r/alter_table_comment_rebuild_data.result | 177 +
.../tokudb/mysql-test/tokudb_bugs/r/db743.result | 4 -
.../mysql-test/tokudb_bugs/r/mdev5932.result | 4 -
.../tokudb_bugs/r/rpl_mixed_replace_into.result | 23 -
.../tokudb_bugs/r/rpl_row_replace_into.result | 23 -
.../tokudb_bugs/r/rpl_stmt_replace_into.result | 23 -
.../tokudb/mysql-test/tokudb_bugs/t/PS-3773.test | 26 +
.../t/alter_table_comment_rebuild_data.test | 188 +
.../tokudb_bugs/t/rpl_mixed_replace_into.test | 25 -
.../tokudb_bugs/t/rpl_row_replace_into.test | 25 -
.../tokudb_bugs/t/rpl_stmt_replace_into.test | 25 -
storage/tokudb/tokudb_debug.h | 5 -
storage/tokudb/tokudb_dir_cmd.h | 6 +-
storage/tokudb/tokudb_information_schema.cc | 74 +-
storage/tokudb/tokudb_sysvars.cc | 120 +-
storage/tokudb/tokudb_sysvars.h | 16 +-
storage/tokudb/tokudb_thread.h | 26 +-
storage/tokudb/tokudb_update_fun.cc | 230 +-
strings/ctype-bin.c | 8 +-
strings/ctype-euc_kr.c | 4 +-
strings/ctype-mb.c | 100 +-
strings/ctype-simple.c | 26 +-
strings/ctype-uca.c | 1560 +-
strings/ctype-uca.ic | 839 +
strings/ctype-ucs2.c | 223 +-
strings/ctype-ucs2.h | 32 +
strings/ctype-ujis.c | 8 +-
strings/ctype-unidata.h | 31 +
strings/ctype-utf16.h | 80 +
strings/ctype-utf32.h | 33 +
strings/ctype-utf8.c | 430 +-
strings/ctype-utf8.h | 190 +
strings/decimal.c | 35 +-
strings/json_lib.c | 23 +
strings/strcoll.ic | 267 +-
support-files/mariadb.service.in | 1 -
support-files/mariadb@.service.in | 1 -
support-files/mysql.server.sh | 31 +-
support-files/mysqld_multi.server.sh | 19 +-
support-files/rpm/plugin-postin.sh | 3 +
support-files/rpm/server-posttrans.sh | 11 +
support-files/rpm/server-postun.sh | 9 +-
tests/mysql_client_fw.c | 12 -
tests/mysql_client_test.c | 15 +
unittest/sql/mf_iocache-t.cc | 88 +-
vio/CMakeLists.txt | 2 +-
vio/vio.c | 61 +-
vio/vio_priv.h | 8 -
vio/viopipe.c | 1 -
vio/vioshm.c | 217 -
vio/viosocket.c | 14 +-
vio/viossl.c | 12 +-
win/packaging/CMakeLists.txt | 95 +-
win/packaging/CPackWixConfig.cmake | 2 +-
win/packaging/CPackZIPConfig.cmake | 11 +
win/packaging/CPackZIPDebugInfoConfig.cmake | 6 +
win/packaging/ca/CMakeLists.txt | 7 +-
win/packaging/create_msi.cmake | 411 +
win/packaging/create_msi.cmake.in | 437 -
win/packaging/extra.wxs.in | 16 +-
win/packaging/heidisql.cmake | 10 +-
win/packaging/mysql_server.wxs.in | 2 +-
win/upgrade_wizard/CMakeLists.txt | 21 +-
zlib/CMakeLists.txt | 156 +-
zlib/ChangeLog | 666 +-
zlib/FAQ | 267 +-
zlib/INDEX | 41 +-
zlib/README | 94 +-
zlib/README.MySQL | 16 -
zlib/adler32.c | 113 +-
zlib/algorithm.txt | 209 -
zlib/amiga/Makefile.pup | 69 +
zlib/amiga/Makefile.sas | 68 +
zlib/compress.c | 45 +-
zlib/crc32.c | 149 +-
zlib/crc32.h | 2 +-
zlib/deflate.c | 1269 +-
zlib/deflate.h | 78 +-
zlib/gzclose.c | 25 +
zlib/gzguts.h | 218 +
zlib/gzio.c | 1031 -
zlib/gzlib.c | 637 +
zlib/gzread.c | 654 +
zlib/gzwrite.c | 665 +
zlib/infback.c | 107 +-
zlib/inffast.c | 159 +-
zlib/inffast.h | 4 +-
zlib/inffixed.h | 6 +-
zlib/inflate.c | 507 +-
zlib/inflate.h | 38 +-
zlib/inftrees.c | 109 +-
zlib/inftrees.h | 27 +-
zlib/make_vms.com | 867 +
zlib/msdos/Makefile.bor | 115 +
zlib/msdos/Makefile.dj2 | 104 +
zlib/msdos/Makefile.emx | 69 +
zlib/msdos/Makefile.msc | 112 +
zlib/msdos/Makefile.tc | 100 +
zlib/nintendods/README | 5 +
zlib/old/Makefile.emx | 69 +
zlib/old/Makefile.riscos | 151 +
zlib/old/README | 3 +
zlib/old/descrip.mms | 48 +
zlib/old/os2/Makefile.os2 | 136 +
zlib/old/os2/zlib.def | 51 +
zlib/old/visual-basic.txt | 160 +
zlib/os400/README400 | 48 +
zlib/os400/bndsrc | 119 +
zlib/os400/make.sh | 366 +
zlib/os400/zlib.inc | 527 +
zlib/qnx/package.qpg | 141 +
zlib/test/example.c | 602 +
zlib/test/infcover.c | 671 +
zlib/test/minigzip.c | 651 +
zlib/treebuild.xml | 116 +
zlib/trees.c | 246 +-
zlib/trees.h | 4 +-
zlib/uncompr.c | 100 +-
zlib/watcom/watcom_f.mak | 43 +
zlib/watcom/watcom_l.mak | 43 +
zlib/win32/DLL_FAQ.txt | 397 +
zlib/win32/Makefile.bor | 110 +
zlib/win32/Makefile.gcc | 182 +
zlib/win32/Makefile.msc | 163 +
zlib/win32/README-WIN32.txt | 103 +
zlib/win32/VisualC.txt | 3 +
zlib/win32/zlib.def | 94 +
zlib/win32/zlib1.rc | 40 +
zlib/zconf.h | 336 -
zlib/zconf.h.cmakein | 536 +
zlib/zconf.h.in | 534 +
zlib/zlib.3 | 122 +-
zlib/zlib.h | 1639 +-
zlib/zlib.pc.cmakein | 13 +
zlib/zlib.pc.in | 13 +
zlib/zlib2ansi | 152 +
zlib/zutil.c | 101 +-
zlib/zutil.h | 192 +-
1899 files changed, 76236 insertions(+), 268339 deletions(-)
diff --cc sql/sql_select.cc
index 616fea0,7ae4e7a..7eb8ed8
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@@ -7310,15 -7388,12 +7404,19 @@@ best_access_path(JOIN *join
tmp+= (s->records - rnd_records)/(double) TIME_FOR_COMPARE;
}
}
- double best_records= rnd_records;
- tmp += s->startup_cost;
+
+ /* Splitting technique cannot be used with join cache */
+ if (s->table->is_splittable())
+ tmp+= s->table->get_materialization_cost();
+ else
+ tmp+= s->startup_cost;
+
+ filter= s->table->best_filter_for_current_join_order(MAX_KEY,
+ rnd_records,
+ record_count);
+ if (filter && (filter->get_filter_gain(record_count*rnd_records) < tmp))
+ tmp= tmp - filter->get_filter_gain(record_count*rnd_records);
+
/*
We estimate the cost of evaluating WHERE clause for found records
as record_count * rnd_records / TIME_FOR_COMPARE. This cost plus
diff --cc sql/table.h
index 14bc928,2b3fe1c..3c782c3
--- a/sql/table.h
+++ b/sql/table.h
@@@ -1492,23 -1491,9 +1494,24 @@@ public
bool is_splittable() { return spl_opt_info != NULL; }
void set_spl_opt_info(SplM_opt_info *spl_info);
void deny_splitting();
+ double get_materialization_cost(); // Now used only if is_splittable()==true
void add_splitting_info_for_key_field(struct KEY_FIELD *key_field);
+
+ /**
+ Range filter info
+ */
+ /* Minimum possible #T value to apply filter*/
+ uint best_filter_count;
+ uint range_filter_cost_info_elements;
+ Range_filter_cost_info *range_filter_cost_info;
+ Range_filter_cost_info
+ *best_filter_for_current_join_order(uint ref_key_no,
+ double record_count,
+ double records);
+ void sort_range_filter_cost_info_array();
+ void prune_range_filters();
+ void select_usable_range_filters(THD *thd);
/**
System Versioning support
*/
1
0

[Commits] 5cfb043: MDEV-16174 Assertion `0' failed in Type_handler_string_result::make_sort_key(uchar*, Item*, const SORT_FIELD_ATTR*, Sort_param*)
by holyfoot@askmonty.org 09 Nov '18
by holyfoot@askmonty.org 09 Nov '18
09 Nov '18
revision-id: 5cfb043d2919439fccfa350edd9a3fdb4aaf229b (mariadb-10.2.18-71-g5cfb043)
parent(s): f5bcf788e76c2cb5da5ddecdb6ff9b2f766b1a49
committer: Alexey Botchkov
timestamp: 2018-11-09 22:55:34 +0400
message:
MDEV-16174 Assertion `0' failed in Type_handler_string_result::make_sort_key(uchar*, Item*, const SORT_FIELD_ATTR*, Sort_param*)
maybe_null should be always set to TRUE in
Item_func_json_array_append::fix_length_and_dec()
---
mysql-test/r/func_json.result | 14 ++++++++++++++
mysql-test/t/func_json.test | 13 +++++++++++++
sql/item_jsonfunc.cc | 1 +
3 files changed, 28 insertions(+)
diff --git a/mysql-test/r/func_json.result b/mysql-test/r/func_json.result
index c828b26..90458bc 100644
--- a/mysql-test/r/func_json.result
+++ b/mysql-test/r/func_json.result
@@ -810,3 +810,17 @@ SET @`json` := NULL, @`value` := NULL;
SELECT JSON_MERGE('[1]', '[]');
JSON_MERGE('[1]', '[]')
[1]
+#
+# MDEV-16174 Assertion `0' failed in Type_handler_string_result::
+# make_sort_key(uchar*, Item*, const SORT_FIELD_ATTR*, Sort_param*)
+#
+SET sql_mode='';
+CREATE TABLE t1 (fld varchar(16) NOT NULL);
+CREATE TABLE t2 SELECT JSON_ARRAY_INSERT(fld, '$.[0]', '0') FROM t1;
+SHOW CREATE TABLE t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `JSON_ARRAY_INSERT(fld, '$.[0]', '0')` varchar(25) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+DROP TABLE t1, t2;
+SET sql_mode=default;
diff --git a/mysql-test/t/func_json.test b/mysql-test/t/func_json.test
index 1dc1641..d266641 100644
--- a/mysql-test/t/func_json.test
+++ b/mysql-test/t/func_json.test
@@ -468,3 +468,16 @@ SET @`json` := NULL, @`value` := NULL;
--echo #
SELECT JSON_MERGE('[1]', '[]');
+
+--echo #
+--echo # MDEV-16174 Assertion `0' failed in Type_handler_string_result::
+--echo # make_sort_key(uchar*, Item*, const SORT_FIELD_ATTR*, Sort_param*)
+--echo #
+
+SET sql_mode='';
+CREATE TABLE t1 (fld varchar(16) NOT NULL);
+CREATE TABLE t2 SELECT JSON_ARRAY_INSERT(fld, '$.[0]', '0') FROM t1;
+SHOW CREATE TABLE t2;
+DROP TABLE t1, t2;
+SET sql_mode=default;
+
diff --git a/sql/item_jsonfunc.cc b/sql/item_jsonfunc.cc
index 6072605..27bc97f 100644
--- a/sql/item_jsonfunc.cc
+++ b/sql/item_jsonfunc.cc
@@ -1562,6 +1562,7 @@ bool Item_func_json_array_append::fix_length_and_dec()
}
fix_char_length_ulonglong(char_length);
+ maybe_null= 1;
return FALSE;
}
1
0

[Commits] 54ce7155476: MDEV-12575: Server crash in AGGR_OP::put_record or in JOIN_CACHE::free or Invalid write in JOIN::make_aggr_tables_info
by varunraiko1803@gmail.com 09 Nov '18
by varunraiko1803@gmail.com 09 Nov '18
09 Nov '18
revision-id: 54ce715547686bba1970b37ef590cbe05c4e950d (mariadb-10.2.18-71-g54ce7155476)
parent(s): f5bcf788e76c2cb5da5ddecdb6ff9b2f766b1a49
author: Varun Gupta
committer: Varun Gupta
timestamp: 2018-11-09 19:53:40 +0530
message:
MDEV-12575: Server crash in AGGR_OP::put_record or in JOIN_CACHE::free or Invalid write in JOIN::make_aggr_tables_info
During the optimize state of a query, we come know that the result set
would atmost contain one row, then for such a query we don't need
to compute GROUP BY, ORDER BY and DISTINCT.
---
mysql-test/r/distinct.result | 20 ++++++++++++++
mysql-test/r/group_by.result | 10 +++++++
mysql-test/r/win.result | 62 ++++++++++++++++++++++++++++++++++++++++++++
mysql-test/t/distinct.test | 18 +++++++++++++
mysql-test/t/group_by.test | 12 +++++++++
mysql-test/t/win.test | 56 +++++++++++++++++++++++++++++++++++++++
sql/sql_select.cc | 12 +++++++++
7 files changed, 190 insertions(+)
diff --git a/mysql-test/r/distinct.result b/mysql-test/r/distinct.result
index e1bbf5adb79..850ce9a1965 100644
--- a/mysql-test/r/distinct.result
+++ b/mysql-test/r/distinct.result
@@ -1049,4 +1049,24 @@ b1+'0' b2+'0' b3+'0' b4+'0' b5+'0' b6 +'0'
1 0 0 1 0 1
0 1 0 0 1 0
DROP TABLE t1;
+#
+# MDEV-12575: Server crash in AGGR_OP::put_record or in JOIN_CACHE::free
+# or Invalid write in JOIN::make_aggr_tables_info
+#
+CREATE TABLE t1 (pk INT PRIMARY KEY);
+INSERT INTO t1 VALUES (1),(2);
+explain
+( SELECT DISTINCT 1 FROM t1 ORDER BY BENCHMARK(1, MIN(pk)) )
+UNION
+( SELECT DISTINCT 1 FROM t1 ORDER BY BENCHMARK(1, MIN(pk)) );
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 index NULL PRIMARY 4 NULL 2 Using index; Using temporary
+2 UNION t1 index NULL PRIMARY 4 NULL 2 Using index; Using temporary
+NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL
+( SELECT DISTINCT 1 FROM t1 ORDER BY BENCHMARK(1, MIN(pk)) )
+UNION
+( SELECT DISTINCT 1 FROM t1 ORDER BY BENCHMARK(1, MIN(pk)) );
+1
+1
+drop table t1;
End of 5.5 tests
diff --git a/mysql-test/r/group_by.result b/mysql-test/r/group_by.result
index 9fee03877c5..9da6fa5ae8f 100644
--- a/mysql-test/r/group_by.result
+++ b/mysql-test/r/group_by.result
@@ -2832,3 +2832,13 @@ select distinct 1 from t1 group by a,b with rollup limit 1;
1
1
drop table t1;
+CREATE TABLE t1 ( pk int, i1 int, v1 varchar(1));
+explain
+SELECT 1 FROM t1
+GROUP BY REPEAT((BINARY pk), v1), AES_DECRYPT((@A := i1), 20852) WITH ROLLUP HAVING LOAD_FILE('a') ;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible HAVING
+SELECT 1 FROM t1
+GROUP BY REPEAT((BINARY pk), v1), AES_DECRYPT((@A := i1), 20852) WITH ROLLUP HAVING LOAD_FILE('a') ;
+1
+drop table t1;
diff --git a/mysql-test/r/win.result b/mysql-test/r/win.result
index 790b264fc09..c539ac4f252 100644
--- a/mysql-test/r/win.result
+++ b/mysql-test/r/win.result
@@ -3361,3 +3361,65 @@ Esben Tuning 31 68.7500
Kaolin Tuning 88 68.7500
Tatiana Tuning 83 68.7500
drop table t1;
+#
+# MDEV-12575: Server crash in AGGR_OP::put_record or in JOIN_CACHE::free
+# or Invalid write in JOIN::make_aggr_tables_info
+#
+SELECT DISTINCT BIT_OR(100) OVER () FROM dual
+GROUP BY LEFT('2018-08-24', 100) order by 1+2;
+BIT_OR(100) OVER ()
+100
+CREATE TABLE t1 (i INT);
+INSERT INTO t1 VALUES (1),(2);
+SELECT * FROM (
+SELECT
+ROW_NUMBER() OVER(), i, sum(i)
+FROM t1
+WHERE 1=0
+limit 0
+) AS sq;
+ROW_NUMBER() OVER() i sum(i)
+SELECT * FROM (
+SELECT
+ROW_NUMBER() OVER(), i, sum(i)
+FROM t1
+WHERE 1=0
+GROUP BY i
+) AS sq;
+ROW_NUMBER() OVER() i sum(i)
+drop table t1;
+create table t1 (a int);
+explain
+select distinct 1, row_number() over (order by 1) from t1 where a=0 group by a with rollup;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
+select distinct 1, row_number() over (order by 1) from t1 where a=0 group by a with rollup;
+1 row_number() over (order by 1)
+drop table t1;
+explain
+SELECT DISTINCT BIT_OR(100) OVER () FROM dual
+GROUP BY LEFT('2018-08-24', 100) WITH ROLLUP
+HAVING @A := 'qwerty';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible HAVING
+SELECT DISTINCT BIT_OR(100) OVER () FROM dual
+GROUP BY LEFT('2018-08-24', 100) WITH ROLLUP
+HAVING @A := 'qwerty';
+BIT_OR(100) OVER ()
+explain
+SELECT DISTINCT BIT_OR(100) OVER () FROM dual
+GROUP BY LEFT('2018-08-24', 100)
+HAVING @A := 'qwerty';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible HAVING
+SELECT DISTINCT BIT_OR(100) OVER () FROM dual
+GROUP BY LEFT('2018-08-24', 100)
+HAVING @A := 'qwerty';
+BIT_OR(100) OVER ()
+create table t1 (a int);
+explain
+SELECT DISTINCT BIT_OR(100) OVER () FROM t1
+GROUP BY LEFT('2018-08-24', 100) having 1=1 limit 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Zero limit
+drop table t1;
diff --git a/mysql-test/t/distinct.test b/mysql-test/t/distinct.test
index c11f8b501bc..d41340c29fd 100644
--- a/mysql-test/t/distinct.test
+++ b/mysql-test/t/distinct.test
@@ -798,4 +798,22 @@ CREATE TABLE t1 (b1 BIT, b2 BIT, b3 BIT, b4 BIT , b5 BIT, b6 BIT);
INSERT INTO t1 VALUES (1,0,0,1,0,1),(0,1,0,0,1,0);
SELECT DISTINCT b1+'0', b2+'0', b3+'0', b4+'0', b5+'0', b6 +'0' FROM t1;
DROP TABLE t1;
+
+--echo #
+--echo # MDEV-12575: Server crash in AGGR_OP::put_record or in JOIN_CACHE::free
+--echo # or Invalid write in JOIN::make_aggr_tables_info
+--echo #
+
+CREATE TABLE t1 (pk INT PRIMARY KEY);
+INSERT INTO t1 VALUES (1),(2);
+explain
+( SELECT DISTINCT 1 FROM t1 ORDER BY BENCHMARK(1, MIN(pk)) )
+UNION
+( SELECT DISTINCT 1 FROM t1 ORDER BY BENCHMARK(1, MIN(pk)) );
+
+( SELECT DISTINCT 1 FROM t1 ORDER BY BENCHMARK(1, MIN(pk)) )
+UNION
+( SELECT DISTINCT 1 FROM t1 ORDER BY BENCHMARK(1, MIN(pk)) );
+drop table t1;
+
--echo End of 5.5 tests
diff --git a/mysql-test/t/group_by.test b/mysql-test/t/group_by.test
index 275939df5c5..61be676bb11 100644
--- a/mysql-test/t/group_by.test
+++ b/mysql-test/t/group_by.test
@@ -1948,3 +1948,15 @@ insert into t1 values(-126,7),(1,1),(0,0),(-1,1),(351,65534);
select distinct 1 from t1 group by a,b with rollup limit 1;
drop table t1;
+#
+# MDEV-12575: Server crash in AGGR_OP::put_record or in JOIN_CACHE::free
+# or Invalid write in JOIN::make_aggr_tables_info
+#
+
+CREATE TABLE t1 ( pk int, i1 int, v1 varchar(1));
+explain
+SELECT 1 FROM t1
+GROUP BY REPEAT((BINARY pk), v1), AES_DECRYPT((@A := i1), 20852) WITH ROLLUP HAVING LOAD_FILE('a') ;
+SELECT 1 FROM t1
+GROUP BY REPEAT((BINARY pk), v1), AES_DECRYPT((@A := i1), 20852) WITH ROLLUP HAVING LOAD_FILE('a') ;
+drop table t1;
diff --git a/mysql-test/t/win.test b/mysql-test/t/win.test
index e9c8ee05773..7dda2b6215f 100644
--- a/mysql-test/t/win.test
+++ b/mysql-test/t/win.test
@@ -2119,3 +2119,59 @@ SELECT name, test, score,
FROM t1
ORDER BY test, name;
drop table t1;
+
+--echo #
+--echo # MDEV-12575: Server crash in AGGR_OP::put_record or in JOIN_CACHE::free
+--echo # or Invalid write in JOIN::make_aggr_tables_info
+--echo #
+
+SELECT DISTINCT BIT_OR(100) OVER () FROM dual
+GROUP BY LEFT('2018-08-24', 100) order by 1+2;
+
+CREATE TABLE t1 (i INT);
+INSERT INTO t1 VALUES (1),(2);
+
+SELECT * FROM (
+ SELECT
+ ROW_NUMBER() OVER(), i, sum(i)
+ FROM t1
+ WHERE 1=0
+ limit 0
+) AS sq;
+
+SELECT * FROM (
+ SELECT
+ ROW_NUMBER() OVER(), i, sum(i)
+ FROM t1
+ WHERE 1=0
+ GROUP BY i
+) AS sq;
+drop table t1;
+
+create table t1 (a int);
+explain
+select distinct 1, row_number() over (order by 1) from t1 where a=0 group by a with rollup;
+select distinct 1, row_number() over (order by 1) from t1 where a=0 group by a with rollup;
+drop table t1;
+
+explain
+SELECT DISTINCT BIT_OR(100) OVER () FROM dual
+GROUP BY LEFT('2018-08-24', 100) WITH ROLLUP
+HAVING @A := 'qwerty';
+SELECT DISTINCT BIT_OR(100) OVER () FROM dual
+GROUP BY LEFT('2018-08-24', 100) WITH ROLLUP
+HAVING @A := 'qwerty';
+
+explain
+SELECT DISTINCT BIT_OR(100) OVER () FROM dual
+GROUP BY LEFT('2018-08-24', 100)
+HAVING @A := 'qwerty';
+SELECT DISTINCT BIT_OR(100) OVER () FROM dual
+GROUP BY LEFT('2018-08-24', 100)
+HAVING @A := 'qwerty';
+
+create table t1 (a int);
+explain
+SELECT DISTINCT BIT_OR(100) OVER () FROM t1
+GROUP BY LEFT('2018-08-24', 100) having 1=1 limit 0;
+drop table t1;
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index 0cdecf1bf2e..db3ed8a1aa9 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -2245,6 +2245,18 @@ JOIN::optimize_inner()
if (!tables_list || !table_count)
{
choose_tableless_subquery_plan();
+
+ /* The output has atmost one row */
+ if (group_list)
+ {
+ group_list= NULL;
+ group_optimized_away= 1;
+ rollup.state= ROLLUP::STATE_NONE;
+ }
+ order= NULL;
+ simple_order= TRUE;
+ select_distinct= FALSE;
+
if (select_lex->have_window_funcs())
{
if (!(join_tab= (JOIN_TAB*) thd->alloc(sizeof(JOIN_TAB))))
1
0