[Commits] 10807fe95db: MDEV-16217: Assertion `!table || (!table->read_set || bitmap_is_set(table->read_set, field_index))' failed in Field_num::get_date
by Oleksandr Byelkin 13 Nov '18
by Oleksandr Byelkin 13 Nov '18
13 Nov '18
revision-id: 10807fe95db791b6e1ac0f14e945de080f24d108 (mariadb-10.2.18-65-g10807fe95db)
parent(s): 89f948c766721a26e110bc9da0ca5ebc20f65112
author: Oleksandr Byelkin
committer: Oleksandr Byelkin
timestamp: 2018-11-13 11:15:20 +0100
message:
MDEV-16217: Assertion `!table || (!table->read_set || bitmap_is_set(table->read_set, field_index))' failed in Field_num::get_date
- clean up DEFAULT() to work only with default value and correctly print
itself.
- fix of DBUG_ASSERT about fields read/write
- fix of field marking for write based really on the thd->mark_used_columns flag
---
mysql-test/r/func_default.result | 10 ++++++-
mysql-test/r/func_time.result | 57 ++++++++++++++++++++++++++++++++++++++++
mysql-test/t/func_default.test | 5 ++++
mysql-test/t/func_time.test | 32 ++++++++++++++++++++++
sql/field.cc | 17 ++++++++++--
sql/field.h | 1 +
sql/item.cc | 25 ++++++++++++++++--
sql/item.h | 5 ++++
8 files changed, 147 insertions(+), 5 deletions(-)
diff --git a/mysql-test/r/func_default.result b/mysql-test/r/func_default.result
index 535be10da86..9699f0795e3 100644
--- a/mysql-test/r/func_default.result
+++ b/mysql-test/r/func_default.result
@@ -8,13 +8,21 @@ explain extended select default(str), default(strnull), default(intg), default(r
id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE t1 system NULL NULL NULL NULL 1 100.00
Warnings:
-Note 1003 select default('') AS `default(str)`,default('') AS `default(strnull)`,default(0) AS `default(intg)`,default(0) AS `default(rel)` from dual
+Note 1003 select default(`test`.`t1`.`str`) AS `default(str)`,default(`test`.`t1`.`strnull`) AS `default(strnull)`,default(`test`.`t1`.`intg`) AS `default(intg)`,default(`test`.`t1`.`rel`) AS `default(rel)` from dual
select * from t1 where str <> default(str);
str strnull intg rel
0 0
explain select * from t1 where str <> default(str);
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 system NULL NULL NULL NULL 1
+create view v1 as select default(str), default(strnull), default(intg), default(rel) from t1;
+select * from v1;
+default(str) default(strnull) default(intg) default(rel)
+def NULL 10 3.14
+show create view v1;
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select default(`t1`.`str`) AS `default(str)`,default(`t1`.`strnull`) AS `default(strnull)`,default(`t1`.`intg`) AS `default(intg)`,default(`t1`.`rel`) AS `default(rel)` from `t1` latin1 latin1_swedish_ci
+drop view v1;
drop table t1;
CREATE TABLE t1 (id int(11), s varchar(20));
INSERT INTO t1 VALUES (1, 'one'), (2, 'two'), (3, 'three');
diff --git a/mysql-test/r/func_time.result b/mysql-test/r/func_time.result
index 5ca9cf5228f..16acf3fcbea 100644
--- a/mysql-test/r/func_time.result
+++ b/mysql-test/r/func_time.result
@@ -3423,3 +3423,60 @@ DROP TABLE t1,t2;
#
# End of 10.1 tests
#
+#
+# MDEV-16217: Assertion `!table || (!table->read_set ||
+# bitmap_is_set(table->read_set, field_index))'
+# failed in Field_num::get_date
+#
+CREATE TABLE t1 (pk int default 0, a1 date);
+INSERT INTO t1 VALUES (1,'1900-01-01'),(2,NULL),(3,NULL),(4,NULL);
+CREATE VIEW v1 AS
+SELECT t1.pk AS pk, t1.a1 AS a1 FROM t1;
+SELECT a1 BETWEEN (('2018-08-24')) AND (DEFAULT(pk)) FROM v1;
+a1 BETWEEN (('2018-08-24')) AND (DEFAULT(pk))
+0
+NULL
+NULL
+NULL
+SELECT a1 BETWEEN (('2018-08-24')) AND (~ DEFAULT(pk)) FROM v1;
+a1 BETWEEN (('2018-08-24')) AND (~ DEFAULT(pk))
+0
+NULL
+NULL
+NULL
+Warnings:
+Warning 1292 Incorrect datetime value: '18446744073709551615'
+CREATE TABLE t2 (pk int default 1, a1 date);
+INSERT INTO t2 VALUES (4,NULL);
+CREATE view v2 as SELECT default(t1.pk), default(t2.pk), t1.pk from t1,t2;
+select * from v2;
+default(t1.pk) default(t2.pk) pk
+0 1 1
+0 1 2
+0 1 3
+0 1 4
+show create view v2;
+View Create View character_set_client collation_connection
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select default(`t1`.`pk`) AS `default(t1.pk)`,default(`t2`.`pk`) AS `default(t2.pk)`,`t1`.`pk` AS `pk` from (`t1` join `t2`) latin1 latin1_swedish_ci
+CREATE view v3 as SELECT default(pk) from t2;
+select * from v3;
+default(pk)
+1
+explain extended select * from v3;
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 SIMPLE t2 system NULL NULL NULL NULL 1 100.00
+Warnings:
+Note 1003 select default(`test`.`t2`.`pk`) AS `default(pk)` from dual
+explain extended select default(pk) from t2;
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 SIMPLE t2 system NULL NULL NULL NULL 1 100.00
+Warnings:
+Note 1003 select default(`test`.`t2`.`pk`) AS `default(pk)` from dual
+show create view v3;
+View Create View character_set_client collation_connection
+v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select default(`t2`.`pk`) AS `default(pk)` from `t2` latin1 latin1_swedish_ci
+DROP VIEW v1,v2,v3;
+DROP TABLE t1,t2;
+#
+# End of 10.2 tests
+#
diff --git a/mysql-test/t/func_default.test b/mysql-test/t/func_default.test
index fbd73990297..332bfca021f 100644
--- a/mysql-test/t/func_default.test
+++ b/mysql-test/t/func_default.test
@@ -11,6 +11,11 @@ explain extended select default(str), default(strnull), default(intg), default(r
select * from t1 where str <> default(str);
explain select * from t1 where str <> default(str);
+create view v1 as select default(str), default(strnull), default(intg), default(rel) from t1;
+select * from v1;
+show create view v1;
+drop view v1;
+
#TODO: uncomment when bug will be fixed
#create table t2 select default(str), default(strnull), default(intg), default(rel) from t1;
#show create table from t1;
diff --git a/mysql-test/t/func_time.test b/mysql-test/t/func_time.test
index 73f91bb90a0..d391e5f5059 100644
--- a/mysql-test/t/func_time.test
+++ b/mysql-test/t/func_time.test
@@ -1910,3 +1910,35 @@ DROP TABLE t1,t2;
--echo #
--echo # End of 10.1 tests
--echo #
+
+--echo #
+--echo # MDEV-16217: Assertion `!table || (!table->read_set ||
+--echo # bitmap_is_set(table->read_set, field_index))'
+--echo # failed in Field_num::get_date
+--echo #
+CREATE TABLE t1 (pk int default 0, a1 date);
+INSERT INTO t1 VALUES (1,'1900-01-01'),(2,NULL),(3,NULL),(4,NULL);
+
+CREATE VIEW v1 AS
+SELECT t1.pk AS pk, t1.a1 AS a1 FROM t1;
+
+SELECT a1 BETWEEN (('2018-08-24')) AND (DEFAULT(pk)) FROM v1;
+SELECT a1 BETWEEN (('2018-08-24')) AND (~ DEFAULT(pk)) FROM v1;
+
+CREATE TABLE t2 (pk int default 1, a1 date);
+INSERT INTO t2 VALUES (4,NULL);
+CREATE view v2 as SELECT default(t1.pk), default(t2.pk), t1.pk from t1,t2;
+select * from v2;
+show create view v2;
+CREATE view v3 as SELECT default(pk) from t2;
+select * from v3;
+explain extended select * from v3;
+explain extended select default(pk) from t2;
+show create view v3;
+
+DROP VIEW v1,v2,v3;
+DROP TABLE t1,t2;
+
+--echo #
+--echo # End of 10.2 tests
+--echo #
diff --git a/sql/field.cc b/sql/field.cc
index caa84dc9932..6cd8940a893 100644
--- a/sql/field.cc
+++ b/sql/field.cc
@@ -70,8 +70,21 @@ const char field_separator=',';
#define BLOB_PACK_LENGTH_TO_MAX_LENGH(arg) \
((ulong) ((1LL << MY_MIN(arg, 4) * 8) - 1))
-#define ASSERT_COLUMN_MARKED_FOR_READ DBUG_ASSERT(!table || (!table->read_set || bitmap_is_set(table->read_set, field_index)))
-#define ASSERT_COLUMN_MARKED_FOR_WRITE_OR_COMPUTED DBUG_ASSERT(is_stat_field || !table || (!table->write_set || bitmap_is_set(table->write_set, field_index) || (table->vcol_set && bitmap_is_set(table->vcol_set, field_index))))
+// Column marked for read or the field set to read out or record[0] or [1]
+#define ASSERT_COLUMN_MARKED_FOR_READ \
+ DBUG_ASSERT(!table || \
+ (!table->read_set || \
+ bitmap_is_set(table->read_set, field_index) || \
+ (!(ptr >= table->record[0] && \
+ ptr < table->record[0] + table->s->reclength))))
+
+#define ASSERT_COLUMN_MARKED_FOR_WRITE_OR_COMPUTED \
+ DBUG_ASSERT(is_stat_field || !table || \
+ (!table->write_set || \
+ bitmap_is_set(table->write_set, field_index) || \
+ (!(ptr >= table->record[0] && \
+ ptr < table->record[0] + table->s->reclength))) || \
+ (table->vcol_set && bitmap_is_set(table->vcol_set, field_index)))
#define FLAGSTR(S,F) ((S) & (F) ? #F " " : "")
diff --git a/sql/field.h b/sql/field.h
index 22c276478b6..55c3ed4c4bd 100644
--- a/sql/field.h
+++ b/sql/field.h
@@ -630,6 +630,7 @@ class Virtual_column_info: public Sql_alloc
bool utf8; /* Already in utf8 */
Item *expr;
LEX_STRING name; /* Name of constraint */
+ /* see VCOL_* (VCOL_FIELD_REF, ...) */
uint flags;
Virtual_column_info()
diff --git a/sql/item.cc b/sql/item.cc
index 2adec33491b..6828a74f9ff 100644
--- a/sql/item.cc
+++ b/sql/item.cc
@@ -8792,8 +8792,19 @@ bool Item_default_value::fix_fields(THD *thd, Item **items)
fixed= 1;
return FALSE;
}
+
+ /*
+ DEFAULT() do not need table field so should not ask handler to bring
+ field value (mark column for read)
+ */
+ enum_mark_columns save_mark_used_columns= thd->mark_used_columns;
+ thd->mark_used_columns= MARK_COLUMNS_NONE;
if (!arg->fixed && arg->fix_fields(thd, &arg))
+ {
+ thd->mark_used_columns= save_mark_used_columns;
goto error;
+ }
+ thd->mark_used_columns= save_mark_used_columns;
real_arg= arg->real_item();
@@ -8813,15 +8824,19 @@ bool Item_default_value::fix_fields(THD *thd, Item **items)
goto error;
memcpy((void *)def_field, (void *)field_arg->field,
field_arg->field->size_of());
- IF_DBUG(def_field->is_stat_field=1,); // a hack to fool ASSERT_COLUMN_MARKED_FOR_WRITE_OR_COMPUTED
+ // If non-constant default value expression
if (def_field->default_value && def_field->default_value->flags)
{
uchar *newptr= (uchar*) thd->alloc(1+def_field->pack_length());
if (!newptr)
goto error;
+ /*
+ Even if DEFAULT() do not read tables fields, the default value
+ expression can do it.
+ */
fix_session_vcol_expr_for_read(thd, def_field, def_field->default_value);
if (thd->mark_used_columns != MARK_COLUMNS_NONE)
- def_field->default_value->expr->walk(&Item::register_field_in_read_map, 1, 0);
+ def_field->default_value->expr->update_used_tables();
def_field->move_field(newptr+1, def_field->maybe_null() ? newptr : 0, 1);
}
else
@@ -8845,6 +8860,12 @@ void Item_default_value::print(String *str, enum_query_type query_type)
return;
}
str->append(STRING_WITH_LEN("default("));
+ /*
+ We take DEFAULT from a field so do not need it value in case of const
+ tables but its name so we set QT_NO_DATA_EXPANSION (as we print for
+ table definition, also we do not need table and database name)
+ */
+ query_type= (enum_query_type) (query_type | QT_NO_DATA_EXPANSION);
arg->print(str, query_type);
str->append(')');
}
diff --git a/sql/item.h b/sql/item.h
index 8d02d981d38..e7bf9285131 100644
--- a/sql/item.h
+++ b/sql/item.h
@@ -5229,6 +5229,11 @@ class Item_default_value : public Item_field
return false;
}
table_map used_tables() const;
+ virtual void update_used_tables()
+ {
+ if (field && field->default_value)
+ field->default_value->expr->update_used_tables();
+ }
Field *get_tmp_table_field() { return 0; }
Item *get_tmp_table_item(THD *thd) { return this; }
Item_field *field_for_view_update() { return 0; }
1
0
revision-id: 988d6d30a5ac41f00e54a72f0ba08301afab4fe7 (mariadb-10.2.18-66-g988d6d30a5a)
parent(s): 031efde365c674dbdbaada95aa6d42a4274db438
author: Oleksandr Byelkin
committer: Oleksandr Byelkin
timestamp: 2018-11-13 11:15:01 +0100
message:
postreview
---
sql/item.h | 2 +-
sql/sql_base.cc | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/sql/item.h b/sql/item.h
index 5866f328f38..e7bf9285131 100644
--- a/sql/item.h
+++ b/sql/item.h
@@ -5232,7 +5232,7 @@ class Item_default_value : public Item_field
virtual void update_used_tables()
{
if (field && field->default_value)
- field->default_value->expr->walk(&Item::register_field_in_read_map, 1, 0);
+ field->default_value->expr->update_used_tables();
}
Field *get_tmp_table_field() { return 0; }
Item *get_tmp_table_item(THD *thd) { return this; }
diff --git a/sql/sql_base.cc b/sql/sql_base.cc
index 0deb5ec1362..c282db42fdd 100644
--- a/sql/sql_base.cc
+++ b/sql/sql_base.cc
@@ -5737,7 +5737,7 @@ find_field_in_table_ref(THD *thd, TABLE_LIST *table_list,
TABLE *table= field_to_set->table;
if (thd->mark_used_columns == MARK_COLUMNS_READ)
bitmap_set_bit(table->read_set, field_to_set->field_index);
- else if (thd->mark_used_columns == MARK_COLUMNS_WRITE)
+ else
bitmap_set_bit(table->write_set, field_to_set->field_index);
}
}
1
0
[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