[Commits] f7943bd: MDEV-21683 Server crashes in get_quick_keys with not_null_range_scan
by IgorBabaev 11 Feb '20
by IgorBabaev 11 Feb '20
11 Feb '20
revision-id: f7943bde6a9df2025d811731d4ca439d0694de12 (mariadb-10.5.0-172-gf7943bd)
parent(s): f79f537f9facb5a050697ad3dbf6e4a617c3c128
author: Igor Babaev
committer: Igor Babaev
timestamp: 2020-02-10 21:19:28 -0800
message:
MDEV-21683 Server crashes in get_quick_keys with not_null_range_scan
ANding of the range built from inferred NOT NULL conditions and the range
built from other conditions used in WHERE/ON clauses may produce an
IMPOSSIBLE range. The code of MDEV-15777 did not take into account this
possibility.
---
mysql-test/main/range.result | 20 +++++++++++++++++++-
mysql-test/main/range.test | 24 +++++++++++++++++++++++-
mysql-test/main/range_mrr_icp.result | 20 +++++++++++++++++++-
sql/opt_range.cc | 8 +++++---
4 files changed, 66 insertions(+), 6 deletions(-)
diff --git a/mysql-test/main/range.result b/mysql-test/main/range.result
index 7f03a7c..eb7f995 100644
--- a/mysql-test/main/range.result
+++ b/mysql-test/main/range.result
@@ -3116,7 +3116,6 @@ drop table t1,ten,t2;
#
# MDEV-15777: Use inferred IS NOT NULL predicates in the range optimizer
#
-set @save_optimizer_switch= @@optimizer_switch;
set @@optimizer_switch='not_null_range_scan=on';
create table ten(a int);
insert into ten values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
@@ -3404,6 +3403,25 @@ drop table t1,t2;
drop table ten,one_k;
set @@optimizer_switch= @save_optimizer_switch;
#
+# MDEV-21683: ANDing of the range from inferred NOT NULL condition and
+# the range from other conditions produces IMPOSSIBLE range
+#
+SET @save_optimizer_switch= @@optimizer_switch;
+CREATE TABLE t1 (a INT, KEY(a));
+INSERT INTO t1 VALUES (8),(9);
+CREATE TABLE t2 (pk INT, b INT, PRIMARY KEY(pk));
+INSERT INTO t2 VALUES (1,1),(2,2);
+SET optimizer_switch = 'not_null_range_scan=on';
+EXPLAIN EXTENDED SELECT * FROM t1 LEFT JOIN t2 ON a = pk WHERE b >= 0 AND pk IS NULL;
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
+Warnings:
+Note 1003 select NULL AS `a`,0 AS `pk`,NULL AS `b` from `test`.`t1` join `test`.`t2` where 0
+SELECT * FROM t1 LEFT JOIN t2 ON a = pk WHERE b >= 0 AND pk IS NULL;
+a pk b
+DROP TABLE t1, t2;
+SET @@optimizer_switch= @save_optimizer_switch;
+#
# End of 10.5 tests
#
set global innodb_stats_persistent= @innodb_stats_persistent_save;
diff --git a/mysql-test/main/range.test b/mysql-test/main/range.test
index ce2d2e7..11212fb 100644
--- a/mysql-test/main/range.test
+++ b/mysql-test/main/range.test
@@ -2106,7 +2106,6 @@ drop table t1,ten,t2;
--echo # MDEV-15777: Use inferred IS NOT NULL predicates in the range optimizer
--echo #
-set @save_optimizer_switch= @@optimizer_switch;
set @@optimizer_switch='not_null_range_scan=on';
create table ten(a int);
insert into ten values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
@@ -2281,6 +2280,29 @@ drop table ten,one_k;
set @@optimizer_switch= @save_optimizer_switch;
--echo #
+--echo # MDEV-21683: ANDing of the range from inferred NOT NULL condition and
+--echo # the range from other conditions produces IMPOSSIBLE range
+--echo #
+
+SET @save_optimizer_switch= @@optimizer_switch;
+
+CREATE TABLE t1 (a INT, KEY(a));
+INSERT INTO t1 VALUES (8),(9);
+
+CREATE TABLE t2 (pk INT, b INT, PRIMARY KEY(pk));
+INSERT INTO t2 VALUES (1,1),(2,2);
+
+SET optimizer_switch = 'not_null_range_scan=on';
+let $q=
+SELECT * FROM t1 LEFT JOIN t2 ON a = pk WHERE b >= 0 AND pk IS NULL;
+eval EXPLAIN EXTENDED $q;
+eval $q;
+
+DROP TABLE t1, t2;
+
+SET @@optimizer_switch= @save_optimizer_switch;
+
+--echo #
--echo # End of 10.5 tests
--echo #
diff --git a/mysql-test/main/range_mrr_icp.result b/mysql-test/main/range_mrr_icp.result
index b698ec9..baec486 100644
--- a/mysql-test/main/range_mrr_icp.result
+++ b/mysql-test/main/range_mrr_icp.result
@@ -3113,7 +3113,6 @@ drop table t1,ten,t2;
#
# MDEV-15777: Use inferred IS NOT NULL predicates in the range optimizer
#
-set @save_optimizer_switch= @@optimizer_switch;
set @@optimizer_switch='not_null_range_scan=on';
create table ten(a int);
insert into ten values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
@@ -3401,6 +3400,25 @@ drop table t1,t2;
drop table ten,one_k;
set @@optimizer_switch= @save_optimizer_switch;
#
+# MDEV-21683: ANDing of the range from inferred NOT NULL condition and
+# the range from other conditions produces IMPOSSIBLE range
+#
+SET @save_optimizer_switch= @@optimizer_switch;
+CREATE TABLE t1 (a INT, KEY(a));
+INSERT INTO t1 VALUES (8),(9);
+CREATE TABLE t2 (pk INT, b INT, PRIMARY KEY(pk));
+INSERT INTO t2 VALUES (1,1),(2,2);
+SET optimizer_switch = 'not_null_range_scan=on';
+EXPLAIN EXTENDED SELECT * FROM t1 LEFT JOIN t2 ON a = pk WHERE b >= 0 AND pk IS NULL;
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
+Warnings:
+Note 1003 select NULL AS `a`,0 AS `pk`,NULL AS `b` from `test`.`t1` join `test`.`t2` where 0
+SELECT * FROM t1 LEFT JOIN t2 ON a = pk WHERE b >= 0 AND pk IS NULL;
+a pk b
+DROP TABLE t1, t2;
+SET @@optimizer_switch= @save_optimizer_switch;
+#
# End of 10.5 tests
#
set global innodb_stats_persistent= @innodb_stats_persistent_save;
diff --git a/sql/opt_range.cc b/sql/opt_range.cc
index e13065d..b4e2cfd 100644
--- a/sql/opt_range.cc
+++ b/sql/opt_range.cc
@@ -2838,12 +2838,15 @@ int SQL_SELECT::test_quick_select(THD *thd, key_map keys_to_use,
if (notnull_cond)
notnull_cond_tree= notnull_cond->get_mm_tree(¶m, ¬null_cond);
- if (cond)
+ if (cond || notnull_cond_tree)
{
{
Json_writer_array trace_range_summary(thd,
"setup_range_conditions");
- tree= cond->get_mm_tree(¶m, &cond);
+ if (cond)
+ tree= cond->get_mm_tree(¶m, &cond);
+ if (notnull_cond_tree)
+ tree= tree_and(¶m, tree, notnull_cond_tree);
}
if (tree)
{
@@ -2865,7 +2868,6 @@ int SQL_SELECT::test_quick_select(THD *thd, key_map keys_to_use,
}
}
}
- tree= tree_and(¶m, tree, notnull_cond_tree);
/*
Try to construct a QUICK_GROUP_MIN_MAX_SELECT.
1
0
[Commits] f9595f6: Save I_S.rocksdb_perf_context_global increments after each run
by Sergei Petrunia 08 Feb '20
by Sergei Petrunia 08 Feb '20
08 Feb '20
revision-id: f9595f65bbd846210cedb52d9d1e74fdbc6329d5 ()
parent(s): fcfb0ca43d95da3c153e06c164151251c68c7953
author: Sergei Petrunia
committer: Sergei Petrunia
timestamp: 2020-02-08 23:54:31 +0300
message:
Save I_S.rocksdb_perf_context_global increments after each run
---
run-test.sh | 44 +++++++++++++++++++++++++-------------------
1 file changed, 25 insertions(+), 19 deletions(-)
diff --git a/run-test.sh b/run-test.sh
index f059e20..d61f421 100755
--- a/run-test.sh
+++ b/run-test.sh
@@ -95,7 +95,7 @@ else
fi
#exit 0;
-
+MYSQL_CMD="./$SERVER_DIR/client/mysql --defaults-file=./my-fbmysql-${SERVERNAME}.cnf -uroot"
server_attempts=0
@@ -104,7 +104,7 @@ while true ; do
sleep 5
client_attempts=0
while true ; do
- ./$SERVER_DIR/client/mysql --defaults-file=./my-fbmysql-${SERVERNAME}.cnf -uroot -e "create database sbtest"
+ $MYSQL_CMD -e "create database sbtest"
if [ $? -eq 0 ]; then
break
@@ -165,28 +165,21 @@ sysbench $SYSBENCH_ARGS prepare | tee $RESULT_DIR/sysbench-prepare.txt
if [[ $USE_4_CFS ]] ; then
echo "Splitting 4 tables into different CFs"
- ./$SERVER_DIR/client/mysql --defaults-file=./my-fbmysql-${SERVERNAME}.cnf \
- -uroot < make-4-cfs.sql
+ $MYSQL_CMD < make-4-cfs.sql
fi
if [[ $USE_2_CFS ]] ; then
echo "Splitting 2 tables into different CFs"
- ./$SERVER_DIR/client/mysql --defaults-file=./my-fbmysql-${SERVERNAME}.cnf \
- -uroot < make-2-cfs.sql
+ $MYSQL_CMD < make-2-cfs.sql
fi
sleep 3
-./$SERVER_DIR/client/mysql --defaults-file=./my-fbmysql-${SERVERNAME}.cnf \
- -uroot -e "show variables like 'rocksdb%'" > $RESULT_DIR/variables-rocksdb.txt
+$MYSQL_CMD -e "show variables like 'rocksdb%'" > $RESULT_DIR/variables-rocksdb.txt
-./$SERVER_DIR/client/mysql --defaults-file=./my-fbmysql-${SERVERNAME}.cnf \
- -uroot -e "show variables" > $RESULT_DIR/variables-all.txt
+$MYSQL_CMD -e "show variables" > $RESULT_DIR/variables-all.txt
-./$SERVER_DIR/client/mysql --defaults-file=./my-fbmysql-${SERVERNAME}.cnf \
- -uroot -e "select * from information_schema.GLOBAL_STATUS where variable_name like 'ROCKSDB%'" > $RESULT_DIR/status-before-test.txt
+$MYSQL_CMD -e "select * from information_schema.GLOBAL_STATUS where variable_name like 'ROCKSDB%'" > $RESULT_DIR/status-before-test.txt
-./$SERVER_DIR/client/mysql --defaults-file=./my-fbmysql-${SERVERNAME}.cnf \
- -uroot -e "create table test.rocksdb_vars as select * from information_schema.GLOBAL_STATUS where variable_name like 'ROCKSDB%'"
sleep 3
#############################################################################
@@ -204,17 +197,30 @@ for threads in 1 5 10 20 40 60 80 100; do
#echo "THREADS $threads $storage_engine"
+ $MYSQL_CMD -e "drop table if exists test.rocksdb_vars;"
+ $MYSQL_CMD -e "create table test.rocksdb_vars as select * from information_schema.GLOBAL_STATUS where variable_name like 'ROCKSDB%'"
+
+ $MYSQL_CMD -e "drop table if exists test.rocksdb_perf_context_global;"
+ $MYSQL_CMD -e "create table test.rocksdb_perf_context_global as select * from information_schema.rocksdb_perf_context_global \
+ where stat_type LIKE '%RANGELOCK%'"
+
SYSBENCH_ALL_ARGS="$SYSBENCH_ARGS --threads=$threads"
OUTFILE="${RESULT_DIR}/sysbench-run-${threads}.txt"
sysbench $SYSBENCH_ALL_ARGS run | tee $OUTFILE
+
+ $MYSQL_CMD -e \
+ "select A.VARIABLE_NAME, B.VARIABLE_VALUE - A.VARIABLE_VALUE \
+ from information_schema.GLOBAL_STATUS B, test.rocksdb_vars A \
+ where B.VARIABLE_NAME=A.VARIABLE_NAME AND B.VARIABLE_VALUE - A.VARIABLE_VALUE >0" > $RESULT_DIR/status-after-test-$threads.txt
+
+ $MYSQL_CMD -e \
+ "select A.STAT_TYPE, B.VALUE - A.VALUE \
+ from information_schema.rocksdb_perf_context_global B, test.rocksdb_perf_context_global A \
+ where B.STAT_TYPE=A.STAT_TYPE AND B.VALUE - A.VALUE >0" > $RESULT_DIR/perf_context-after-test-$threads.txt
+
done
-./$SERVER_DIR/client/mysql --defaults-file=./my-fbmysql-${SERVERNAME}.cnf \
- -uroot \
- -e "select A.VARIABLE_NAME, B.VARIABLE_VALUE - A.VARIABLE_VALUE \
- from information_schema.GLOBAL_STATUS B, test.rocksdb_vars A \
- where B.VARIABLE_NAME=A.VARIABLE_NAME AND B.VARIABLE_VALUE - A.VARIABLE_VALUE >0" > $RESULT_DIR/status-after-test.txt
1
0
08 Feb '20
revision-id: fcfb0ca43d95da3c153e06c164151251c68c7953 ()
parent(s): 078ed1c21b65fc4a8fab19f72c7d8cc3a68c27aa
author: Sergei Petrunia
committer: Sergei Petrunia
timestamp: 2020-02-08 20:47:12 +0300
message:
Make several attempts to start the server
also give it time before trying to connect
---
run-test.sh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/run-test.sh b/run-test.sh
index 5871a3a..f059e20 100755
--- a/run-test.sh
+++ b/run-test.sh
@@ -95,12 +95,13 @@ else
fi
#exit 0;
-./$SERVER_DIR/sql/mysqld --defaults-file=./my-fbmysql-${SERVERNAME}.cnf &
server_attempts=0
while true ; do
+ ./$SERVER_DIR/sql/mysqld --defaults-file=./my-fbmysql-${SERVERNAME}.cnf &
+ sleep 5
client_attempts=0
while true ; do
./$SERVER_DIR/client/mysql --defaults-file=./my-fbmysql-${SERVERNAME}.cnf -uroot -e "create database sbtest"
1
0
[Commits] 08ef3c3: MDEV-21614 Wrong query results with optimizer_switch="split_materialized=on"
by IgorBabaev 08 Feb '20
by IgorBabaev 08 Feb '20
08 Feb '20
revision-id: 08ef3c3ee2832db89f4d088ff407b794f31cfc50 (mariadb-10.3.18-153-g08ef3c3)
parent(s): bc43bf3e430c20bc2178e584215bd443054709d6
author: Igor Babaev
committer: Igor Babaev
timestamp: 2020-02-07 19:42:11 -0800
message:
MDEV-21614 Wrong query results with optimizer_switch="split_materialized=on"
Do not materialize a semi-join nest if it contains a materialized derived
table /view that potentially can be subject to the split optimization.
Splitting of materialization of such nest would help, but currently there
is no code to support this technique.
---
mysql-test/main/derived_cond_pushdown.result | 89 ++++++++++++++++++++++++++++
mysql-test/main/derived_cond_pushdown.test | 43 ++++++++++++++
sql/opt_split.cc | 11 +++-
3 files changed, 142 insertions(+), 1 deletion(-)
diff --git a/mysql-test/main/derived_cond_pushdown.result b/mysql-test/main/derived_cond_pushdown.result
index 19c4ee8..1ae78ae 100644
--- a/mysql-test/main/derived_cond_pushdown.result
+++ b/mysql-test/main/derived_cond_pushdown.result
@@ -16829,4 +16829,93 @@ id username id userid logindate
2 user2 3 2 2017-06-19 12:17:02
set join_cache_level=default;
DROP TABLE t1,t2;
+#
+# MDEV-21614: potentially splittable materialized derived/view
+# within materialized semi-join
+#
+create table t1 (
+id int not null auto_increment primary key,
+a int not null
+) engine=myisam;
+create table t2 (
+id int not null auto_increment primary key,
+ro_id int not null,
+flag int not null, key (ro_id)
+) engine=myisam;
+insert into t1(a) select seq+100 from seq_1_to_20;
+insert into t2(ro_id,flag) select seq, 1 from seq_1_to_20;
+insert into t2(ro_id,flag) select seq, 0 from seq_1_to_20;
+create view v1 as
+select t1.* from t1 left join t2 on (t1.id = t2.ro_id AND t2.flag = 1)
+group by t1.id;
+select id, a from t1 where id in (select id from v1);
+id a
+1 101
+2 102
+3 103
+4 104
+5 105
+6 106
+7 107
+8 108
+9 109
+10 110
+11 111
+12 112
+13 113
+14 114
+15 115
+16 116
+17 117
+18 118
+19 119
+20 120
+explain extended select id, a from t1 where id in (select id from v1);
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 PRIMARY t1 ALL PRIMARY NULL NULL NULL 20 100.00
+1 PRIMARY <derived3> ref key0 key0 4 test.t1.id 2 100.00 FirstMatch(t1)
+3 LATERAL DERIVED t1 eq_ref PRIMARY PRIMARY 4 test.t1.id 1 100.00
+3 LATERAL DERIVED t2 ref ro_id ro_id 4 test.t1.id 1 100.00 Using where
+Warnings:
+Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,`test`.`t1`.`a` AS `a` from `test`.`t1` semi join (`test`.`v1`) where `v1`.`id` = `test`.`t1`.`id`
+select id, a from t1
+where id in (select id
+from (select t1.* from t1 left join t2
+on (t1.id = t2.ro_id AND t2.flag = 1)
+group by t1.id) dt);
+id a
+1 101
+2 102
+3 103
+4 104
+5 105
+6 106
+7 107
+8 108
+9 109
+10 110
+11 111
+12 112
+13 113
+14 114
+15 115
+16 116
+17 117
+18 118
+19 119
+20 120
+explain extended select id, a from t1
+where id in (select id
+from (select t1.* from t1 left join t2
+on (t1.id = t2.ro_id AND t2.flag = 1)
+group by t1.id) dt);
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 PRIMARY t1 ALL PRIMARY NULL NULL NULL 20 100.00
+1 PRIMARY <derived3> ref key0 key0 4 test.t1.id 2 100.00 FirstMatch(t1)
+3 LATERAL DERIVED t1 eq_ref PRIMARY PRIMARY 4 test.t1.id 1 100.00
+3 LATERAL DERIVED t2 ref ro_id ro_id 4 test.t1.id 1 100.00 Using where
+Warnings:
+Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,`test`.`t1`.`a` AS `a` from `test`.`t1` semi join ((/* select#3 */ select `test`.`t1`.`id` AS `id`,`test`.`t1`.`a` AS `a` from `test`.`t1` left join `test`.`t2` on(`test`.`t2`.`ro_id` = `test`.`t1`.`id` and `test`.`t2`.`flag` = 1) where `test`.`t1`.`id` = `test`.`t1`.`id` group by `test`.`t1`.`id`) `dt`) where `dt`.`id` = `test`.`t1`.`id`
+drop view v1;
+drop table t1,t2;
# End of 10.3 tests
diff --git a/mysql-test/main/derived_cond_pushdown.test b/mysql-test/main/derived_cond_pushdown.test
index e3a7306..525122e 100644
--- a/mysql-test/main/derived_cond_pushdown.test
+++ b/mysql-test/main/derived_cond_pushdown.test
@@ -1,3 +1,4 @@
+--source include/have_sequence.inc
--source include/default_optimizer_switch.inc
let $no_pushdown= set statement optimizer_switch='condition_pushdown_for_derived=off' for;
set @@join_buffer_size=256*1024;
@@ -3328,4 +3329,46 @@ set join_cache_level=default;
DROP TABLE t1,t2;
+
+--echo #
+--echo # MDEV-21614: potentially splittable materialized derived/view
+--echo # within materialized semi-join
+--echo #
+
+create table t1 (
+ id int not null auto_increment primary key,
+ a int not null
+) engine=myisam;
+
+create table t2 (
+ id int not null auto_increment primary key,
+ ro_id int not null,
+ flag int not null, key (ro_id)
+) engine=myisam;
+
+insert into t1(a) select seq+100 from seq_1_to_20;
+insert into t2(ro_id,flag) select seq, 1 from seq_1_to_20;
+insert into t2(ro_id,flag) select seq, 0 from seq_1_to_20;
+
+create view v1 as
+select t1.* from t1 left join t2 on (t1.id = t2.ro_id AND t2.flag = 1)
+ group by t1.id;
+
+let $q1=
+select id, a from t1 where id in (select id from v1);
+eval $q1;
+eval explain extended $q1;
+
+let $q2=
+select id, a from t1
+ where id in (select id
+ from (select t1.* from t1 left join t2
+ on (t1.id = t2.ro_id AND t2.flag = 1)
+ group by t1.id) dt);
+eval $q2;
+eval explain extended $q2;
+
+drop view v1;
+drop table t1,t2;
+
--echo # End of 10.3 tests
diff --git a/sql/opt_split.cc b/sql/opt_split.cc
index cfac0c9..6f8248c 100644
--- a/sql/opt_split.cc
+++ b/sql/opt_split.cc
@@ -307,7 +307,7 @@ struct SplM_field_ext_info: public SplM_field_info
8. P contains some references on the columns of the joined tables C
occurred also in the select list of this join
9. There are defined some keys usable for ref access of fields from C
- with available statistics.
+ with available statistics.
@retval
true if the answer is positive
@@ -477,6 +477,15 @@ bool JOIN::check_for_splittable_materialized()
/* Attach this info to the table T */
derived->table->set_spl_opt_info(spl_opt_info);
+ /*
+ If this is specification of a materialized derived table T that is
+ potentially splittable and is used in the from list of the right operand
+ of an IN predicand transformed to a semi-join then the embedding semi-join
+ nest is not allowed to be materialized.
+ */
+ if (derived && derived->is_materialized_derived() &&
+ derived->embedding && derived->embedding->sj_subq_pred)
+ derived->embedding->sj_subq_pred->types_allow_materialization= FALSE;
return true;
}
1
0
[Commits] b3ded21922f: ha_partition: add comments, comment out unused member variables
by Sergei Petrunia 04 Feb '20
by Sergei Petrunia 04 Feb '20
04 Feb '20
revision-id: b3ded21922fc684c3c1aeb4ad57161bc2fec5859 (mariadb-10.3.21-38-gb3ded21922f)
parent(s): b0fa30808622fe12d474a70af1838906e60b9897
author: Sergei Petrunia
committer: Sergei Petrunia
timestamp: 2020-02-05 00:54:16 +0300
message:
ha_partition: add comments, comment out unused member variables
---
sql/ha_partition.cc | 2 +-
sql/ha_partition.h | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++--
2 files changed, 90 insertions(+), 3 deletions(-)
diff --git a/sql/ha_partition.cc b/sql/ha_partition.cc
index a7942f493d7..130c7f7e4d5 100644
--- a/sql/ha_partition.cc
+++ b/sql/ha_partition.cc
@@ -6235,7 +6235,7 @@ static range_seq_t partition_multi_range_key_init(void *init_params,
ha_partition *partition= hld->partition;
uint i= hld->part_id;
DBUG_ENTER("partition_multi_range_key_init");
- partition->m_mrr_range_init_flags= flags;
+ // not used: partition->m_mrr_range_init_flags= flags;
hld->partition_part_key_multi_range= partition->m_part_mrr_range_first[i];
DBUG_RETURN(init_params);
}
diff --git a/sql/ha_partition.h b/sql/ha_partition.h
index 1085eca72cc..fc6c8c4d570 100644
--- a/sql/ha_partition.h
+++ b/sql/ha_partition.h
@@ -184,17 +184,61 @@ class Partition_share : public Handler_share
bool is_subpart);
};
+
+/*
+ List of ranges to be scanned by ha_partition's MRR implementation
+
+ This object is
+ - A KEY_MULTI_RANGE structure (the MRR range)
+ - Storage for the range endpoints that the KEY_MULTI_RANGE has pointers to
+ - list of such ranges (connected through the "next" pointer).
+*/
+
typedef struct st_partition_key_multi_range
{
+ /*
+ Number of the range. The ranges are numbered in the order RANGE_SEQ_IF has
+ emitted them, starting from 1. The numbering in used by ordered MRR scans.
+ */
uint id;
uchar *key[2];
+ /*
+ Sizes of allocated memory in key[]. These may be larger then the actual
+ values as this structure is reused across MRR scans
+ */
uint length[2];
+
+ /*
+ The range.
+ key_multi_range.ptr is a pointer to the this PARTITION_KEY_MULTI_RANGE
+ object
+ */
KEY_MULTI_RANGE key_multi_range;
+
+ // Range id from the SQL layer
range_id_t ptr;
+
+ // The next element in the list of MRR ranges.
st_partition_key_multi_range *next;
} PARTITION_KEY_MULTI_RANGE;
+/*
+ List of ranges to be scanned in a certain [sub]partition.
+
+ The idea is that there's a list of ranges to be scanned in the table
+ (formed by PARTITION_KEY_MULTI_RANGE structures),
+ and for each [sub]partition, we only need to scan a subset of that list.
+
+ PKMR1 --> PKMR2 --> PKMR3 -->... // list of PARTITION_KEY_MULTI_RANGE
+ ^ ^
+ | |
+ PPKMR1 ----------> PPKMR2 -->... // list of PARTITION_PART_KEY_MULTI_RANGE
+
+ This way, per-partition lists of PARTITION_PART_KEY_MULTI_RANGE have pointers
+ to the elements of the global list of PARTITION_KEY_MULTI_RANGE.
+*/
+
typedef struct st_partition_part_key_multi_range
{
PARTITION_KEY_MULTI_RANGE *partition_key_multi_range;
@@ -203,10 +247,23 @@ typedef struct st_partition_part_key_multi_range
class ha_partition;
+
+/*
+ The structure holding information about range sequence to be used with one
+ partition.
+ (pointer to this is used as seq_init_param for RANGE_SEQ_IF structure when
+ invoking MRR for an individual partition)
+*/
+
typedef struct st_partition_part_key_multi_range_hld
{
+ /* Owner object */
ha_partition *partition;
+
+ // id of the the partition this structure is for
uint32 part_id;
+
+ // Current range we're iterating through.
PARTITION_PART_KEY_MULTI_RANGE *partition_part_key_multi_range;
} PARTITION_PART_KEY_MULTI_RANGE_HLD;
@@ -810,21 +867,51 @@ class ha_partition :public handler
uint m_mrr_new_full_buffer_size;
MY_BITMAP m_mrr_used_partitions;
uint *m_stock_range_seq;
- uint m_current_range_seq;
+ // not used: uint m_current_range_seq;
+
+ // Value of mrr_mode passed to ha_partition::multi_range_read_init
uint m_mrr_mode;
+
+ // Value of n_ranges passed to ha_partition::multi_range_read_init
uint m_mrr_n_ranges;
+
+ /*
+ Ordered MRR mode: m_range_info[N] has the range_id of the last record that
+ we've got from partition N.
+ */
range_id_t *m_range_info;
+
+ // TRUE <=> This ha_partition::multi_range_read_next() call is the first one
bool m_multi_range_read_first;
- uint m_mrr_range_init_flags;
+ // not used: uint m_mrr_range_init_flags;
+
+ /* Number of elements in the list pointed by m_mrr_range_first. Not used */
uint m_mrr_range_length;
+
+ // Linked list of ranges to scan
PARTITION_KEY_MULTI_RANGE *m_mrr_range_first;
PARTITION_KEY_MULTI_RANGE *m_mrr_range_current;
+
+ /*
+ For each partition: number of ranges MRR scan will scan in the partition
+ */
uint *m_part_mrr_range_length;
+
+ /*
+ For each partition: List of ranges to scan in this partition.
+ */
PARTITION_PART_KEY_MULTI_RANGE **m_part_mrr_range_first;
PARTITION_PART_KEY_MULTI_RANGE **m_part_mrr_range_current;
PARTITION_PART_KEY_MULTI_RANGE_HLD *m_partition_part_key_multi_range_hld;
+
+ /*
+ Sequence of ranges to be scanned (TODO: why not stores this in
+ handler::mrr_{iter,funcs}?)
+ */
range_seq_t m_seq;
RANGE_SEQ_IF *m_seq_if;
+
+ // Range iterator structure to be supplied to partitions
RANGE_SEQ_IF m_part_seq_if;
virtual int multi_range_key_create_key(
1
0
[Commits] b356da6: Merge branch '10.2' of github.com:MariaDB/server into 10.2
by IgorBabaev 24 Jan '20
by IgorBabaev 24 Jan '20
24 Jan '20
revision-id: b356da61aa891a314e0d60df31ae2febf545a612 (mariadb-10.2.14-73-gb356da6)
parent(s): f3dda8e2002dc2ad630c07bda0d8c00be7269907 683a49889c312e0c39fc34d61577efcb11560d29
author: Igor Babaev
committer: Igor Babaev
timestamp: 2020-01-23 22:52:47 -0800
message:
Merge branch '10.2' of github.com:MariaDB/server into 10.2
.clang-format | 117 +
.gitattributes | 1 +
.gitignore | 14 +-
BUILD/FINISH.sh | 2 +-
BUILD/SETUP.sh | 23 +-
BUILD/autorun.sh | 2 +-
BUILD/check-cpu | 2 +-
BUILD/cleanup | 2 +-
BUILD/cmake_configure.sh | 2 +-
BUILD/compile-alpha | 2 +-
BUILD/compile-amd64-debug-max | 2 +-
BUILD/compile-amd64-gcov | 2 +-
BUILD/compile-amd64-gprof | 2 +-
BUILD/compile-amd64-max | 2 +-
BUILD/compile-amd64-valgrind-max | 2 +-
BUILD/compile-bintar | 2 +-
BUILD/compile-darwin-mwcc | 2 +-
BUILD/compile-dist | 2 +-
BUILD/compile-hpux11-parisc2-aCC | 2 +-
BUILD/compile-ia64-debug-max | 2 +-
BUILD/compile-innodb | 2 +-
BUILD/compile-irix-mips64-mipspro | 2 +-
BUILD/compile-pentium | 2 +-
BUILD/compile-pentium-cybozu | 2 +-
BUILD/compile-pentium-debug | 2 +-
BUILD/compile-pentium-debug-max | 2 +-
BUILD/compile-pentium-debug-max-no-embedded | 2 +-
BUILD/compile-pentium-debug-openssl | 2 +-
BUILD/compile-pentium-debug-yassl | 2 +-
BUILD/compile-pentium-gcov | 2 +-
BUILD/compile-pentium-gprof | 2 +-
BUILD/compile-pentium-icc | 2 +-
BUILD/compile-pentium-icc-valgrind-max | 4 +-
BUILD/compile-pentium-icc-yassl | 2 +-
BUILD/compile-pentium-max | 2 +-
BUILD/compile-pentium-valgrind-max | 4 +-
BUILD/compile-pentium64-asan-max | 4 +-
BUILD/compile-pentium64-debug | 2 +-
BUILD/compile-pentium64-debug-max | 2 +-
BUILD/compile-pentium64-gcov | 2 +-
BUILD/compile-pentium64-gprof | 2 +-
BUILD/compile-pentium64-max | 2 +-
BUILD/compile-pentium64-valgrind-max | 4 +-
BUILD/compile-pentium64-wsrep | 2 +-
BUILD/compile-ppc | 2 +-
BUILD/compile-ppc-debug | 2 +-
BUILD/compile-ppc-debug-max | 2 +-
BUILD/compile-ppc-max | 2 +-
BUILD/compile-solaris-amd64-debug | 2 +-
BUILD/compile-solaris-amd64-forte | 2 +-
BUILD/compile-solaris-sparc | 2 +-
BUILD/compile-solaris-sparc-forte | 4 +-
BUILD/util.sh | 2 +-
CMakeLists.txt | 49 +-
COPYING | 4 +-
COPYING.thirdparty | 1692 -
CREDITS | 4 +-
Docs/README-wsrep | 37 +-
README.md | 29 +-
THIRDPARTY | 1692 +
VERSION | 2 +-
appveyor.yml | 4 +-
client/CMakeLists.txt | 9 +-
client/client_priv.h | 2 +-
client/completion_hash.cc | 2 +-
client/completion_hash.h | 2 +-
client/echo.c | 2 +-
client/my_readline.h | 2 +-
client/mysql.cc | 21 +-
client/mysql_plugin.c | 10 +-
client/mysql_upgrade.c | 2 +-
client/mysqladmin.cc | 7 +-
client/mysqlbinlog.cc | 60 +-
client/mysqlcheck.c | 11 +-
client/mysqldump.c | 89 +-
client/mysqlimport.c | 22 +-
client/mysqlshow.c | 4 +-
client/mysqlslap.c | 6 +-
client/mysqltest.cc | 316 +-
client/readline.cc | 2 +-
client/sql_string.cc.dontuse | 2 +-
client/sql_string.h.dontuse | 2 +-
cmake/CPackRPM.cmake | 32 -
cmake/Internal/CPack/CPackRPM.cmake | 68 +
cmake/abi_check.cmake | 2 +-
cmake/bison.cmake | 2 +-
cmake/build_configurations/mysql_release.cmake | 12 +-
cmake/build_depends.cmake | 44 +
cmake/character_sets.cmake | 2 +-
cmake/check_compiler_flag.cmake | 3 +-
cmake/compile_flags.cmake | 2 +-
cmake/configure.pl | 2 +-
cmake/cpack_rpm.cmake | 84 +-
cmake/cpack_source_ignore_files.cmake | 22 +-
cmake/cpu_info.cmake | 2 +-
cmake/create_initial_db.cmake.in | 2 +-
cmake/do_abi_check.cmake | 2 +-
cmake/dtrace.cmake | 6 +-
cmake/dtrace_prelink.cmake | 2 +-
cmake/info_bin.cmake | 2 +-
cmake/info_macros.cmake.in | 2 +-
cmake/info_src.cmake | 2 +-
cmake/install_layout.cmake | 35 +-
cmake/install_macros.cmake | 34 +-
cmake/libutils.cmake | 14 +-
cmake/maintainer.cmake | 11 +-
cmake/make_dist.cmake.in | 2 +-
cmake/mariadb_connector_c.cmake | 14 +-
cmake/merge_archives_unix.cmake.in | 2 +-
cmake/misc.cmake | 6 +
cmake/mysql_add_executable.cmake | 5 +-
cmake/mysql_version.cmake | 27 +-
cmake/os/AIX.cmake | 2 +-
cmake/os/Cygwin.cmake | 2 +-
cmake/os/Darwin.cmake | 2 +-
cmake/os/FreeBSD.cmake | 2 +-
cmake/os/HP-UX.cmake | 2 +-
cmake/os/Linux.cmake | 8 +-
cmake/os/OS400.cmake | 2 +-
cmake/os/SunOS.cmake | 2 +-
cmake/os/Windows.cmake | 17 +-
cmake/os/WindowsCache.cmake | 2 +-
cmake/package_name.cmake | 5 +-
cmake/plugin.cmake | 14 +-
cmake/readline.cmake | 4 +-
cmake/sign.cmake.in | 22 +-
cmake/ssl.cmake | 11 +-
cmake/stack_direction.c | 2 +-
cmake/submodules.cmake | 18 +-
cmake/systemd.cmake | 24 +-
cmake/tags.cmake | 2 +-
cmake/versioninfo.rc.in | 2 +-
cmake/wsrep.cmake | 4 +-
cmake/zlib.cmake | 23 +-
config.h.cmake | 18 +-
configure.cmake | 26 +-
dbug/CMakeLists.txt | 2 +-
dbug/dbug.c | 152 +-
dbug/dbug_add_tags.pl | 2 +-
dbug/tests.c | 8 +
debian/additions/debian-start | 2 +-
debian/additions/innotop/innotop | 6 +-
debian/additions/innotop/innotop.1 | 2 +-
debian/additions/my.cnf | 2 -
debian/autobake-deb.sh | 40 +-
debian/control | 12 +-
debian/copyright | 2 +-
debian/libmariadb3.install | 1 +
debian/mariadb-plugin-mroonga.prerm | 2 +-
debian/mariadb-plugin-tokudb.install | 1 +
debian/mariadb-server-10.2.install | 5 +
debian/mariadb-server-10.2.postinst | 29 +-
debian/mariadb-server-10.2.triggers | 2 +
...pts__mysql_create_system_tables__no_test.dpatch | 8 +-
...41_scripts__mysql_install_db.sh__no_test.dpatch | 21 +-
debian/po/ca.po | 4 +-
debian/po/cs.po | 4 +-
debian/po/da.po | 4 +-
debian/po/es.po | 4 +-
debian/po/pt_BR.po | 4 +-
debian/po/tr.po | 4 +-
debian/rules | 6 +-
extra/CMakeLists.txt | 5 +-
extra/charset2html.c | 2 +-
extra/comp_err.c | 2 +-
extra/innochecksum.cc | 134 +-
extra/mariabackup/CMakeLists.txt | 30 +-
extra/mariabackup/backup_copy.cc | 606 +-
extra/mariabackup/backup_mysql.cc | 265 +-
extra/mariabackup/backup_mysql.h | 3 +-
extra/mariabackup/backup_wsrep.h | 2 +-
extra/mariabackup/changed_page_bitmap.cc | 33 +-
extra/mariabackup/changed_page_bitmap.h | 2 +-
extra/mariabackup/common.h | 73 +-
extra/mariabackup/crc/CMakeLists.txt | 2 +-
extra/mariabackup/crc/config.h.cmake | 2 +-
extra/mariabackup/crc/crc-intel-pclmul.c | 4 +-
extra/mariabackup/crc/crc-intel-pclmul.h | 2 +-
extra/mariabackup/crc/crc_glue.c | 2 +-
extra/mariabackup/crc/crc_glue.h | 2 +-
extra/mariabackup/datasink.c | 137 -
extra/mariabackup/datasink.cc | 137 +
extra/mariabackup/datasink.h | 2 +-
extra/mariabackup/ds_archive.c | 280 -
extra/mariabackup/ds_archive.cc | 280 +
extra/mariabackup/ds_archive.h | 2 +-
extra/mariabackup/ds_buffer.c | 189 -
extra/mariabackup/ds_buffer.cc | 189 +
extra/mariabackup/ds_buffer.h | 2 +-
extra/mariabackup/ds_compress.c | 462 -
extra/mariabackup/ds_compress.cc | 463 +
extra/mariabackup/ds_compress.h | 2 +-
extra/mariabackup/ds_local.cc | 3 +-
extra/mariabackup/ds_local.h | 2 +-
extra/mariabackup/ds_stdout.c | 121 -
extra/mariabackup/ds_stdout.cc | 121 +
extra/mariabackup/ds_stdout.h | 2 +-
extra/mariabackup/ds_tmpfile.c | 247 -
extra/mariabackup/ds_tmpfile.cc | 243 +
extra/mariabackup/ds_tmpfile.h | 2 +-
extra/mariabackup/ds_xbstream.c | 223 -
extra/mariabackup/ds_xbstream.cc | 223 +
extra/mariabackup/ds_xbstream.h | 2 +-
extra/mariabackup/encryption_plugin.cc | 61 +-
extra/mariabackup/fil_cur.cc | 247 +-
extra/mariabackup/fil_cur.h | 7 +-
extra/mariabackup/innobackupex.cc | 8 +-
extra/mariabackup/innobackupex.h | 2 +-
extra/mariabackup/read_filt.cc | 2 +-
extra/mariabackup/read_filt.h | 2 +-
extra/mariabackup/write_filt.cc | 13 +-
extra/mariabackup/write_filt.h | 2 +-
extra/mariabackup/wsrep.cc | 14 +-
extra/mariabackup/xb0xb.h | 2 +-
extra/mariabackup/xb_regex.h | 2 +-
extra/mariabackup/xbcloud.cc | 2 +-
extra/mariabackup/xbstream.c | 564 -
extra/mariabackup/xbstream.cc | 563 +
extra/mariabackup/xbstream.h | 4 +-
extra/mariabackup/xbstream_read.c | 228 -
extra/mariabackup/xbstream_read.cc | 228 +
extra/mariabackup/xbstream_write.c | 294 -
extra/mariabackup/xbstream_write.cc | 294 +
extra/mariabackup/xtrabackup.cc | 1810 +-
extra/mariabackup/xtrabackup.h | 25 +-
extra/my_print_defaults.c | 2 +-
extra/mysql_waitpid.c | 2 +-
extra/perror.c | 2 +-
extra/readline/CMakeLists.txt | 2 +-
extra/readline/COPYING | 4 +-
extra/readline/ansi_stdlib.h | 2 +-
extra/readline/bind.c | 2 +-
extra/readline/callback.c | 2 +-
extra/readline/chardefs.h | 2 +-
extra/readline/compat.c | 2 +-
extra/readline/complete.c | 2 +-
extra/readline/configure.in | 2 +-
extra/readline/display.c | 2 +-
extra/readline/emacs_keymap.c | 2 +-
extra/readline/funmap.c | 2 +-
extra/readline/histexpand.c | 2 +-
extra/readline/histfile.c | 2 +-
extra/readline/histlib.h | 2 +-
extra/readline/history.c | 2 +-
extra/readline/history.h | 2 +-
extra/readline/histsearch.c | 2 +-
extra/readline/input.c | 2 +-
extra/readline/isearch.c | 2 +-
extra/readline/keymaps.c | 2 +-
extra/readline/keymaps.h | 2 +-
extra/readline/kill.c | 2 +-
extra/readline/macro.c | 2 +-
extra/readline/mbutil.c | 2 +-
extra/readline/misc.c | 2 +-
extra/readline/nls.c | 2 +-
extra/readline/parens.c | 2 +-
extra/readline/posixdir.h | 2 +-
extra/readline/posixjmp.h | 2 +-
extra/readline/posixstat.h | 2 +-
extra/readline/readline.c | 2 +-
extra/readline/readline.h | 2 +-
extra/readline/rlconf.h | 2 +-
extra/readline/rldefs.h | 2 +-
extra/readline/rlmbutil.h | 2 +-
extra/readline/rlprivate.h | 2 +-
extra/readline/rlshell.h | 2 +-
extra/readline/rlstdc.h | 2 +-
extra/readline/rltty.c | 2 +-
extra/readline/rltty.h | 2 +-
extra/readline/rltypedefs.h | 2 +-
extra/readline/rlwinsize.h | 2 +-
extra/readline/savestring.c | 2 +-
extra/readline/search.c | 2 +-
extra/readline/shell.c | 2 +-
extra/readline/signals.c | 2 +-
extra/readline/tcap.h | 2 +-
extra/readline/terminal.c | 2 +-
extra/readline/text.c | 2 +-
extra/readline/tilde.c | 2 +-
extra/readline/tilde.h | 2 +-
extra/readline/undo.c | 2 +-
extra/readline/util.c | 2 +-
extra/readline/vi_keymap.c | 2 +-
extra/readline/vi_mode.c | 2 +-
extra/readline/xmalloc.c | 2 +-
extra/readline/xmalloc.h | 2 +-
extra/replace.c | 2 +-
extra/resolve_stack_dump.c | 2 +-
extra/resolveip.c | 2 +-
extra/yassl/CMakeLists.txt | 2 +-
extra/yassl/COPYING | 4 +-
extra/yassl/examples/client/client.cpp | 2 +-
extra/yassl/examples/echoclient/echoclient.cpp | 2 +-
extra/yassl/examples/echoserver/echoserver.cpp | 2 +-
extra/yassl/examples/server/server.cpp | 2 +-
extra/yassl/include/buffer.hpp | 2 +-
extra/yassl/include/cert_wrapper.hpp | 2 +-
extra/yassl/include/crypto_wrapper.hpp | 2 +-
extra/yassl/include/factory.hpp | 2 +-
extra/yassl/include/handshake.hpp | 2 +-
extra/yassl/include/lock.hpp | 2 +-
extra/yassl/include/log.hpp | 2 +-
extra/yassl/include/openssl/crypto.h | 2 +-
extra/yassl/include/openssl/des.h | 2 +-
extra/yassl/include/openssl/des_old.h | 2 +-
extra/yassl/include/openssl/engine.h | 2 +-
extra/yassl/include/openssl/err.h | 2 +-
extra/yassl/include/openssl/evp.h | 2 +-
.../yassl/include/openssl/generate_prefix_files.pl | 2 +-
extra/yassl/include/openssl/hmac.h | 2 +-
extra/yassl/include/openssl/lhash.h | 2 +-
extra/yassl/include/openssl/md4.h | 2 +-
extra/yassl/include/openssl/md5.h | 2 +-
extra/yassl/include/openssl/objects.h | 2 +-
extra/yassl/include/openssl/opensslv.h | 2 +-
extra/yassl/include/openssl/pem.h | 2 +-
extra/yassl/include/openssl/pkcs12.h | 2 +-
extra/yassl/include/openssl/prefix_crypto.h | 2 +-
extra/yassl/include/openssl/prefix_ssl.h | 2 +-
extra/yassl/include/openssl/rand.h | 2 +-
extra/yassl/include/openssl/rsa.h | 2 +-
extra/yassl/include/openssl/sha.h | 2 +-
extra/yassl/include/openssl/ssl.h | 2 +-
extra/yassl/include/openssl/transport_types.h | 2 +-
extra/yassl/include/openssl/x509.h | 2 +-
extra/yassl/include/openssl/x509v3.h | 2 +-
extra/yassl/include/socket_wrapper.hpp | 2 +-
extra/yassl/include/timer.hpp | 2 +-
extra/yassl/include/yassl.hpp | 2 +-
extra/yassl/include/yassl_error.hpp | 2 +-
extra/yassl/include/yassl_imp.hpp | 2 +-
extra/yassl/include/yassl_int.hpp | 2 +-
extra/yassl/include/yassl_types.hpp | 2 +-
extra/yassl/src/buffer.cpp | 2 +-
extra/yassl/src/cert_wrapper.cpp | 2 +-
extra/yassl/src/crypto_wrapper.cpp | 2 +-
extra/yassl/src/handshake.cpp | 2 +-
extra/yassl/src/lock.cpp | 2 +-
extra/yassl/src/log.cpp | 2 +-
extra/yassl/src/make.bat | 2 +-
extra/yassl/src/socket_wrapper.cpp | 2 +-
extra/yassl/src/ssl.cpp | 2 +-
extra/yassl/src/timer.cpp | 2 +-
extra/yassl/src/yassl.cpp | 2 +-
extra/yassl/src/yassl_error.cpp | 2 +-
extra/yassl/src/yassl_imp.cpp | 2 +-
extra/yassl/src/yassl_int.cpp | 2 +-
extra/yassl/taocrypt/CMakeLists.txt | 2 +-
extra/yassl/taocrypt/COPYING | 4 +-
extra/yassl/taocrypt/benchmark/benchmark.cpp | 2 +-
extra/yassl/taocrypt/benchmark/make.bat | 2 +-
extra/yassl/taocrypt/include/aes.hpp | 2 +-
extra/yassl/taocrypt/include/algebra.hpp | 2 +-
extra/yassl/taocrypt/include/arc4.hpp | 2 +-
extra/yassl/taocrypt/include/asn.hpp | 2 +-
extra/yassl/taocrypt/include/block.hpp | 2 +-
extra/yassl/taocrypt/include/blowfish.hpp | 2 +-
extra/yassl/taocrypt/include/coding.hpp | 2 +-
extra/yassl/taocrypt/include/des.hpp | 2 +-
extra/yassl/taocrypt/include/dh.hpp | 2 +-
extra/yassl/taocrypt/include/dsa.hpp | 2 +-
extra/yassl/taocrypt/include/error.hpp | 2 +-
extra/yassl/taocrypt/include/file.hpp | 2 +-
extra/yassl/taocrypt/include/hash.hpp | 2 +-
extra/yassl/taocrypt/include/hc128.hpp | 2 +-
extra/yassl/taocrypt/include/hmac.hpp | 2 +-
extra/yassl/taocrypt/include/integer.hpp | 2 +-
extra/yassl/taocrypt/include/kernelc.hpp | 2 +-
extra/yassl/taocrypt/include/md2.hpp | 2 +-
extra/yassl/taocrypt/include/md4.hpp | 2 +-
extra/yassl/taocrypt/include/md5.hpp | 2 +-
extra/yassl/taocrypt/include/misc.hpp | 2 +-
extra/yassl/taocrypt/include/modarith.hpp | 2 +-
extra/yassl/taocrypt/include/modes.hpp | 2 +-
extra/yassl/taocrypt/include/pwdbased.hpp | 2 +-
extra/yassl/taocrypt/include/rabbit.hpp | 2 +-
extra/yassl/taocrypt/include/random.hpp | 2 +-
extra/yassl/taocrypt/include/ripemd.hpp | 2 +-
extra/yassl/taocrypt/include/rsa.hpp | 2 +-
extra/yassl/taocrypt/include/runtime.hpp | 2 +-
extra/yassl/taocrypt/include/sha.hpp | 2 +-
extra/yassl/taocrypt/include/twofish.hpp | 2 +-
extra/yassl/taocrypt/include/type_traits.hpp | 2 +-
extra/yassl/taocrypt/include/types.hpp | 2 +-
extra/yassl/taocrypt/mySTL/algorithm.hpp | 2 +-
extra/yassl/taocrypt/mySTL/helpers.hpp | 2 +-
extra/yassl/taocrypt/mySTL/list.hpp | 2 +-
extra/yassl/taocrypt/mySTL/memory.hpp | 2 +-
extra/yassl/taocrypt/mySTL/memory_array.hpp | 2 +-
extra/yassl/taocrypt/mySTL/pair.hpp | 2 +-
extra/yassl/taocrypt/mySTL/stdexcept.hpp | 2 +-
extra/yassl/taocrypt/mySTL/vector.hpp | 2 +-
extra/yassl/taocrypt/src/aes.cpp | 2 +-
extra/yassl/taocrypt/src/aestables.cpp | 2 +-
extra/yassl/taocrypt/src/algebra.cpp | 2 +-
extra/yassl/taocrypt/src/arc4.cpp | 2 +-
extra/yassl/taocrypt/src/asn.cpp | 2 +-
extra/yassl/taocrypt/src/bftables.cpp | 2 +-
extra/yassl/taocrypt/src/blowfish.cpp | 2 +-
extra/yassl/taocrypt/src/coding.cpp | 2 +-
extra/yassl/taocrypt/src/des.cpp | 4 +-
extra/yassl/taocrypt/src/dh.cpp | 2 +-
extra/yassl/taocrypt/src/dsa.cpp | 2 +-
extra/yassl/taocrypt/src/file.cpp | 2 +-
extra/yassl/taocrypt/src/hash.cpp | 2 +-
extra/yassl/taocrypt/src/hc128.cpp | 2 +-
extra/yassl/taocrypt/src/integer.cpp | 2 +-
extra/yassl/taocrypt/src/make.bat | 2 +-
extra/yassl/taocrypt/src/md2.cpp | 2 +-
extra/yassl/taocrypt/src/md4.cpp | 2 +-
extra/yassl/taocrypt/src/md5.cpp | 2 +-
extra/yassl/taocrypt/src/misc.cpp | 2 +-
extra/yassl/taocrypt/src/rabbit.cpp | 2 +-
extra/yassl/taocrypt/src/random.cpp | 2 +-
extra/yassl/taocrypt/src/ripemd.cpp | 2 +-
extra/yassl/taocrypt/src/rsa.cpp | 2 +-
extra/yassl/taocrypt/src/sha.cpp | 2 +-
extra/yassl/taocrypt/src/tftables.cpp | 2 +-
extra/yassl/taocrypt/src/twofish.cpp | 2 +-
extra/yassl/taocrypt/test/make.bat | 2 +-
extra/yassl/taocrypt/test/memory.cpp | 2 +-
extra/yassl/taocrypt/test/test.cpp | 2 +-
extra/yassl/testsuite/make.bat | 2 +-
extra/yassl/testsuite/test.hpp | 2 +-
extra/yassl/testsuite/testsuite.cpp | 2 +-
include/CMakeLists.txt | 2 +-
include/atomic/gcc_builtins.h | 2 +-
include/atomic/generic-msvc.h | 2 +-
include/atomic/solaris.h | 2 +-
include/atomic/x86-gcc.h | 2 +-
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/decimal.h | 2 +-
include/errmsg.h | 2 +-
include/ft_global.h | 2 +-
include/handler_ername.h | 2 +-
include/hash.h | 4 +-
include/heap.h | 4 +-
include/intrusive_list.h | 188 +
include/json_lib.h | 6 +
include/keycache.h | 2 +-
include/lf.h | 2 +-
include/little_endian.h | 2 +-
include/m_ctype.h | 30 +-
include/m_string.h | 2 +-
include/maria.h | 5 +-
include/my_alarm.h | 2 +-
include/my_alloc.h | 2 +-
include/my_atomic.h | 4 +-
include/my_attribute.h | 2 +-
include/my_base.h | 3 +-
include/my_bit.h | 12 +-
include/my_bitmap.h | 2 +-
include/my_byteorder.h | 2 +-
include/my_check_opt.h | 2 +-
include/my_compare.h | 2 +-
include/my_compiler.h | 2 +-
include/my_cpu.h | 2 +-
include/my_crypt.h | 2 +-
include/my_dbug.h | 2 +-
include/my_decimal_limits.h | 2 +-
include/my_default.h | 2 +-
include/my_dir.h | 2 +-
include/my_getopt.h | 2 +-
include/my_global.h | 30 +-
include/my_handler_errors.h | 2 +-
include/my_libwrap.h | 2 +-
include/my_list.h | 2 +-
include/my_md5.h | 2 +-
include/my_net.h | 2 +-
include/my_nosys.h | 2 +-
include/my_pthread.h | 8 +-
include/my_rdtsc.h | 2 +-
include/my_rnd.h | 2 +-
include/my_service_manager.h | 4 +-
include/my_stacktrace.h | 2 +-
include/my_sys.h | 8 +-
include/my_time.h | 4 +-
include/my_tree.h | 4 +-
include/my_uctype.h | 2 +-
include/my_user.h | 2 +-
include/my_valgrind.h | 25 +-
include/my_xml.h | 2 +-
include/myisam.h | 2 +-
include/myisamchk.h | 2 +-
include/myisammrg.h | 2 +-
include/myisampack.h | 2 +-
include/mysql.h | 4 +-
include/mysql.h.pp | 2 +-
include/mysql/auth_dialog_client.h | 2 +-
include/mysql/client_plugin.h | 28 +-
include/mysql/plugin.h | 2 +-
include/mysql/plugin_audit.h | 2 +-
include/mysql/plugin_auth.h | 2 +-
include/mysql/plugin_auth_common.h | 2 +-
include/mysql/plugin_encryption.h | 2 +-
include/mysql/plugin_ftparser.h | 2 +-
include/mysql/plugin_password_validation.h | 2 +-
include/mysql/psi/mysql_file.h | 15 +-
include/mysql/psi/mysql_idle.h | 15 +-
include/mysql/psi/mysql_socket.h | 30 +-
include/mysql/psi/mysql_stage.h | 15 +-
include/mysql/psi/mysql_statement.h | 15 +-
include/mysql/psi/mysql_table.h | 15 +-
include/mysql/psi/mysql_thread.h | 15 +-
include/mysql/psi/psi.h | 15 +-
include/mysql/psi/psi_abi_v0.h | 15 +-
include/mysql/psi/psi_abi_v1.h | 15 +-
include/mysql/psi/psi_abi_v2.h | 15 +-
include/mysql/psi/psi_base.h | 2 +-
include/mysql/psi/psi_memory.h | 2 +-
include/mysql/service_base64.h | 2 +-
include/mysql/service_debug_sync.h | 2 +-
include/mysql/service_encryption.h | 2 +-
include/mysql/service_encryption_scheme.h | 2 +-
include/mysql/service_kill_statement.h | 6 +-
include/mysql/service_logger.h | 2 +-
include/mysql/service_md5.h | 2 +-
include/mysql/service_my_crypt.h | 2 +-
include/mysql/service_my_print_error.h | 2 +-
include/mysql/service_my_snprintf.h | 2 +-
include/mysql/service_progress_report.h | 2 +-
include/mysql/service_sha1.h | 2 +-
include/mysql/service_sha2.h | 2 +-
include/mysql/service_thd_alloc.h | 2 +-
include/mysql/service_thd_autoinc.h | 2 +-
include/mysql/service_thd_error_context.h | 2 +-
include/mysql/service_thd_rnd.h | 2 +-
include/mysql/service_thd_specifics.h | 2 +-
include/mysql/service_thd_timezone.h | 2 +-
include/mysql/service_thd_wait.h | 2 +-
include/mysql/service_wsrep.h | 22 +-
include/mysql/services.h | 2 +-
include/mysql_async.h | 2 +-
include/mysql_com.h | 3 +-
include/mysql_com_server.h | 2 +-
include/mysql_embed.h | 2 +-
include/mysql_time.h | 2 +-
include/mysys_err.h | 2 +-
include/password.h | 2 +-
include/probes_mysql.d.base | 2 +-
include/probes_mysql.h | 2 +-
include/rijndael.h | 2 +-
include/service_versions.h | 4 +-
include/sql_common.h | 6 +-
include/ssl_compat.h | 6 +-
include/sslopt-case.h | 4 +-
include/sslopt-longopts.h | 2 +-
include/sslopt-vars.h | 2 +-
include/t_ctype.h | 2 +-
include/thr_alarm.h | 2 +-
include/thr_lock.h | 2 +-
include/thr_timer.h | 2 +-
include/thread_pool_priv.h | 4 +-
include/typelib.h | 2 +-
include/violite.h | 4 +-
include/waiting_threads.h | 2 +-
include/welcome_copyright_notice.h | 2 +-
include/wqueue.h | 2 +-
include/wsrep.h | 22 +-
libmariadb | 2 +-
libmysqld/CMakeLists.txt | 5 +-
libmysqld/client_settings.h | 2 +-
libmysqld/emb_qcache.cc | 2 +-
libmysqld/emb_qcache.h | 2 +-
libmysqld/embedded_priv.h | 2 +-
libmysqld/examples/CMakeLists.txt | 4 +-
libmysqld/examples/builder-sample/emb_sample.bpr | 2 +-
libmysqld/examples/builder-sample/emb_sample.cpp | 2 +-
libmysqld/examples/builder-sample/emb_samples.cpp | 2 +-
libmysqld/examples/builder-sample/emb_samples.h | 2 +-
libmysqld/examples/test-run | 2 +-
libmysqld/lib_sql.cc | 17 +-
libmysqld/libmysql.c | 2 +-
libmysqld/libmysqld.c | 2 +-
libservices/CMakeLists.txt | 2 +-
libservices/base64_service.c | 2 +-
libservices/debug_sync_service.c | 2 +-
libservices/encryption_scheme_service.c | 2 +-
libservices/encryption_service.c | 2 +-
libservices/kill_statement_service.c | 2 +-
libservices/logger_service.c | 2 +-
libservices/my_md5_service.c | 2 +-
libservices/my_print_error_service.c | 2 +-
libservices/my_sha1_service.c | 2 +-
libservices/my_sha2_service.c | 2 +-
libservices/my_snprintf_service.c | 2 +-
libservices/progress_report_service.c | 2 +-
libservices/thd_alloc_service.c | 2 +-
libservices/thd_autoinc_service.c | 2 +-
libservices/thd_error_context_service.c | 2 +-
libservices/thd_rnd_service.c | 2 +-
libservices/thd_specifics_service.c | 2 +-
libservices/thd_timezone_service.c | 2 +-
libservices/thd_wait_service.c | 2 +-
libservices/wsrep_service.c | 2 +-
man/CMakeLists.txt | 9 +-
man/comp_err.1 | 2 +-
man/innochecksum.1 | 2 +-
man/make_win_bin_dist.1 | 2 +-
man/mariabackup.1 | 16 +
man/mbstream.1 | 16 +
man/msql2mysql.1 | 2 +-
man/my_print_defaults.1 | 2 +-
man/my_safe_process.1 | 2 +-
man/myisam_ftdump.1 | 2 +-
man/myisamchk.1 | 2 +-
man/myisamlog.1 | 2 +-
man/myisampack.1 | 2 +-
man/mysql-stress-test.pl.1 | 2 +-
man/mysql-test-run.pl.1 | 8 +-
man/mysql.1 | 2 +-
man/mysql.server.1 | 2 +-
man/mysql_client_test.1 | 2 +-
man/mysql_config.1 | 2 +-
man/mysql_convert_table_format.1 | 2 +-
man/mysql_embedded.1 | 1 +
man/mysql_find_rows.1 | 2 +-
man/mysql_fix_extensions.1 | 2 +-
man/mysql_install_db.1 | 21 +-
man/mysql_ldb.1 | 16 +
man/mysql_plugin.1 | 2 +-
man/mysql_secure_installation.1 | 2 +-
man/mysql_setpermission.1 | 2 +-
man/mysql_tzinfo_to_sql.1 | 2 +-
man/mysql_upgrade.1 | 2 +-
man/mysql_waitpid.1 | 2 +-
man/mysqlaccess.1 | 2 +-
man/mysqladmin.1 | 2 +-
man/mysqlbinlog.1 | 2 +-
man/mysqlcheck.1 | 2 +-
man/mysqld.8 | 2 +-
man/mysqld_multi.1 | 2 +-
man/mysqld_safe.1 | 2 +-
man/mysqldump.1 | 2 +-
man/mysqldumpslow.1 | 26 +-
man/mysqlhotcopy.1 | 2 +-
man/mysqlimport.1 | 20 +-
man/mysqlshow.1 | 2 +-
man/mysqlslap.1 | 2 +-
man/mysqltest.1 | 2 +-
man/perror.1 | 2 +-
man/replace.1 | 2 +-
man/resolve_stack_dump.1 | 2 +-
man/resolveip.1 | 2 +-
man/tokuft_logdump.1 | 16 -
man/tokuft_logprint.1 | 16 +
man/tokuftdump.1 | 2 +-
man/wsrep_sst_mariabackup.1 | 16 +
man/wsrep_sst_rsync.1 | 4 +-
man/wsrep_sst_rsync_wan.1 | 16 +
mysql-test/CMakeLists.txt | 2 +-
mysql-test/README | 4 +-
mysql-test/collections/10.0-compatible.list | 594 +
mysql-test/dgcov.pl | 2 +-
mysql-test/disabled.def | 4 +-
mysql-test/extra/binlog_tests/binlog.test | 1 -
.../extra/binlog_tests/binlog_cache_stat.test | 7 +
mysql-test/extra/binlog_tests/binlog_index.inc | 4 +-
mysql-test/extra/binlog_tests/binlog_ioerr.inc | 3 +-
.../extra/binlog_tests/binlog_row_annotate.inc | 13 +-
.../extra/binlog_tests/ctype_ucs_binlog.test | 3 +-
mysql-test/extra/binlog_tests/drop_temp_table.test | 94 +-
.../extra/binlog_tests/mysqlbinlog_row_engine.inc | 8 +-
mysql-test/extra/rpl_tests/check_type.inc | 8 +
.../extra/rpl_tests/create_recursive_construct.inc | 2 +
mysql-test/extra/rpl_tests/rpl_blackhole.test | 2 +-
.../extra/rpl_tests/rpl_blackhole_basic.test | 97 +
mysql-test/extra/rpl_tests/rpl_checksum.inc | 12 +-
mysql-test/extra/rpl_tests/rpl_corruption.inc | 17 +-
.../rpl_tests/rpl_drop_create_temp_table.test | 4 +
mysql-test/extra/rpl_tests/rpl_foreign_key.test | 60 -
.../rpl_tests/rpl_implicit_commit_binlog.test | 430 +-
mysql-test/extra/rpl_tests/rpl_incident.inc | 6 +-
.../extra/rpl_tests/rpl_init_slave_errors.inc | 3 +-
.../rpl_tests/rpl_lower_case_table_names.test | 141 +
mysql-test/extra/rpl_tests/rpl_parallel.inc | 20 +-
mysql-test/extra/rpl_tests/rpl_row_001.test | 4 +-
.../extra/rpl_tests/rpl_stop_middle_group.test | 4 +-
mysql-test/extra/rpl_tests/type_conversions.test | 91 +
mysql-test/include/alter_table_mdev539.inc | 4 +-
mysql-test/include/autoinc_mdev15353.inc | 29 +
mysql-test/include/binlog_inject_error.inc | 4 +-
.../include/binlog_parallel_replication_marks.test | 11 +-
mysql-test/include/check-testcase.test | 5 +-
mysql-test/include/common-tests.inc | 10 +-
mysql-test/include/ctype_like_escape.inc | 6 +
mysql-test/include/ctype_mdev13118.inc | 15 +
mysql-test/include/ctype_utf8_ilseq.inc | 1 +
mysql-test/include/ctype_utf8mb4.inc | 3 +
mysql-test/include/default_charset.inc | 15 +
mysql-test/include/default_group_order.cnf | 11 +
mysql-test/include/default_my.cnf | 3 +-
mysql-test/include/default_mysqld.cnf | 3 +-
mysql-test/include/default_optimizer_switch.inc | 18 +
mysql-test/include/force_restart.inc | 14 +
mysql-test/include/galera_resume.inc | 9 +
mysql-test/include/galera_suspend.inc | 14 +
mysql-test/include/grant_cache.inc | 11 +-
mysql-test/include/have_32bit.inc | 9 +
mysql-test/include/have_64bit.inc | 9 +
.../include/have_aria_used_for_temp_tables.inc | 4 +
mysql-test/include/have_file_key_management.inc | 4 +
mysql-test/include/have_garbd.inc | 4 +
mysql-test/include/have_hostname_cache.inc | 6 +
mysql-test/include/have_mariabackup.inc | 4 +
mysql-test/include/have_openssl.inc | 7 +-
mysql-test/include/have_perfschema.inc | 2 +-
mysql-test/include/have_xtrabackup.inc | 4 +
mysql-test/include/index_merge1.inc | 52 +-
mysql-test/include/index_merge2.inc | 44 +-
mysql-test/include/index_merge_2sweeps.inc | 22 +-
mysql-test/include/index_merge_ror.inc | 13 +-
mysql-test/include/index_merge_ror_cpk.inc | 16 +-
.../include/innodb_encrypt_tables.combinations | 14 +
mysql-test/include/innodb_encrypt_tables.inc | 4 +
mysql-test/include/mix2.inc | 2 +-
mysql-test/include/mtr_check.sql | 2 +-
mysql-test/include/mtr_warnings.sql | 2 +-
mysql-test/include/restore_charset.inc | 13 +
mysql-test/include/search_pattern_in_file.inc | 16 +-
mysql-test/include/set_binlog_format_mixed.sql | 2 +-
mysql-test/include/set_binlog_format_row.sql | 2 +-
mysql-test/include/set_binlog_format_statement.sql | 2 +-
mysql-test/include/wait_condition_with_debug.inc | 69 +
mysql-test/include/wait_for_slave_param.inc | 2 +-
mysql-test/include/wait_until_connected_again.inc | 2 +-
mysql-test/lib/My/Config.pm | 32 +-
mysql-test/lib/My/ConfigFactory.pm | 10 +-
mysql-test/lib/My/CoreDump.pm | 2 +-
mysql-test/lib/My/File/Path.pm | 2 +-
mysql-test/lib/My/Find.pm | 2 +-
mysql-test/lib/My/Handles.pm | 14 +-
mysql-test/lib/My/Options.pm | 2 +-
mysql-test/lib/My/Platform.pm | 2 +-
mysql-test/lib/My/SafeProcess.pm | 8 +-
mysql-test/lib/My/SafeProcess/Base.pm | 2 +-
mysql-test/lib/My/SafeProcess/CMakeLists.txt | 12 +-
mysql-test/lib/My/SafeProcess/safe_kill_win.cc | 2 +-
mysql-test/lib/My/SafeProcess/safe_process.cc | 18 +-
mysql-test/lib/My/SafeProcess/safe_process_win.cc | 2 +-
.../lib/My/SafeProcess/wsrep_check_version.c | 123 +
mysql-test/lib/My/SysInfo.pm | 2 +-
mysql-test/lib/My/Test.pm | 2 +-
mysql-test/lib/generate-ssl-certs.sh | 39 +-
mysql-test/lib/mtr_cases.pm | 2 +-
mysql-test/lib/mtr_gprof.pl | 2 +-
mysql-test/lib/mtr_io.pl | 2 +-
mysql-test/lib/mtr_match.pm | 2 +-
mysql-test/lib/mtr_misc.pl | 2 +-
mysql-test/lib/mtr_process.pl | 2 +-
mysql-test/lib/mtr_report.pm | 28 +-
mysql-test/lib/mtr_results.pm | 2 +-
mysql-test/lib/mtr_stress.pl | 2 +-
mysql-test/lib/mtr_unique.pm | 2 +-
mysql-test/lib/t/Base.t | 2 +-
mysql-test/lib/t/Find.t | 2 +-
mysql-test/lib/t/Options.t | 2 +-
mysql-test/lib/t/Platform.t | 2 +-
mysql-test/lib/t/SafeProcess.t | 2 +-
mysql-test/lib/t/SafeProcessStress.pl | 2 +-
mysql-test/lib/t/copytree.t | 2 +-
mysql-test/lib/t/dummyd.pl | 2 +-
mysql-test/lib/t/rmtree.t | 2 +-
mysql-test/lib/t/testMyConfig.t | 2 +-
mysql-test/lib/t/testMyConfigFactory.t | 2 +-
mysql-test/lib/t/test_child.pl | 2 +-
mysql-test/lib/v1/My/Config.pm | 2 +-
mysql-test/lib/v1/mtr_cases.pl | 2 +-
mysql-test/lib/v1/mtr_gcov.pl | 2 +-
mysql-test/lib/v1/mtr_gprof.pl | 2 +-
mysql-test/lib/v1/mtr_im.pl | 2 +-
mysql-test/lib/v1/mtr_io.pl | 2 +-
mysql-test/lib/v1/mtr_match.pl | 2 +-
mysql-test/lib/v1/mtr_misc.pl | 2 +-
mysql-test/lib/v1/mtr_process.pl | 2 +-
mysql-test/lib/v1/mtr_report.pl | 2 +-
mysql-test/lib/v1/mtr_stress.pl | 2 +-
mysql-test/lib/v1/mtr_timer.pl | 2 +-
mysql-test/lib/v1/mtr_unique.pl | 2 +-
mysql-test/lib/v1/mysql-test-run.pl | 4 +-
mysql-test/mysql-stress-test.pl | 2 +-
mysql-test/mysql-test-run.pl | 767 +-
mysql-test/purify.supp | 2 +-
mysql-test/r/alter_table.result | 203 +-
mysql-test/r/alter_table_errors.result | 35 +
mysql-test/r/analyze_stmt.result | 7 +-
mysql-test/r/analyze_stmt_orderby.result | 2 +-
mysql-test/r/assign_key_cache-5405.result | 19 -
mysql-test/r/assign_key_cache.result | 13 +
mysql-test/r/assign_key_cache_debug.result | 19 +
mysql-test/r/auto_increment.result | 152 +
mysql-test/r/auto_increment_ranges_innodb.result | 14 +
mysql-test/r/bigint.result | 11 +
mysql-test/r/bootstrap.result | 3 +-
mysql-test/r/cache_temporal_4265.result | 3 +-
mysql-test/r/cast.result | 3 +-
mysql-test/r/charset_client_win.result | 2 +
mysql-test/r/check.result | 50 +
mysql-test/r/check_constraint.result | 89 +-
mysql-test/r/check_constraint_innodb.result | 9 +
mysql-test/r/compare.result | 20 +
mysql-test/r/compound.result | 1 +
mysql-test/r/compress.result | 9 +-
mysql-test/r/connect.result | 14 +-
mysql-test/r/connect_debug.result | 20 +
mysql-test/r/constraints.result | 113 +-
mysql-test/r/contributors.result | 4 +-
mysql-test/r/create.result | 12 +-
mysql-test/r/create_drop_binlog.result | 4 +
mysql-test/r/create_drop_event.result | 5 +
mysql-test/r/create_drop_role.result | 9 +
mysql-test/r/create_drop_server.result | 4 +-
mysql-test/r/create_or_replace.result | 43 +-
mysql-test/r/create_or_replace2.result | 4 +-
mysql-test/r/create_replace_tmp.result | 4 +
mysql-test/r/create_w_max_indexes_128.result | 256 +-
mysql-test/r/cte_nonrecursive.result | 229 +
mysql-test/r/cte_recursive.result | 447 +
mysql-test/r/cte_recursive_not_embedded.result | 23 +
mysql-test/r/ctype_big5.result | 140 +-
mysql-test/r/ctype_binary.result | 25 +-
mysql-test/r/ctype_cp1251.result | 2 +-
mysql-test/r/ctype_cp932_binlog_stm.result | 128 +-
mysql-test/r/ctype_create.result | 4 +
mysql-test/r/ctype_eucjpms.result | 151 +-
mysql-test/r/ctype_euckr.result | 181 +-
mysql-test/r/ctype_gb2312.result | 140 +-
mysql-test/r/ctype_gbk.result | 489 +-
mysql-test/r/ctype_latin1.result | 54 +-
mysql-test/r/ctype_latin1_de.result | 6 +-
mysql-test/r/ctype_many.result | 4 +-
mysql-test/r/ctype_recoding.result | 4 +-
mysql-test/r/ctype_sjis.result | 140 +-
mysql-test/r/ctype_tis620.result | 12 +
mysql-test/r/ctype_uca.result | 73 +-
mysql-test/r/ctype_uca_innodb.result | 31 +-
mysql-test/r/ctype_ucs.result | 40 +-
mysql-test/r/ctype_ujis.result | 169 +-
mysql-test/r/ctype_ujis_ucs2.result | 150 +-
mysql-test/r/ctype_utf16.result | 41 +-
mysql-test/r/ctype_utf16_uca.result | 6 +
mysql-test/r/ctype_utf16le.result | 45 +-
mysql-test/r/ctype_utf32.result | 53 +-
mysql-test/r/ctype_utf32_uca.result | 6 +
mysql-test/r/ctype_utf8.result | 132 +-
mysql-test/r/ctype_utf8_def_upgrade.result | 99 +
mysql-test/r/ctype_utf8mb4.result | 88 +-
mysql-test/r/ctype_utf8mb4_heap.result | 27 +-
mysql-test/r/ctype_utf8mb4_innodb.result | 29 +-
mysql-test/r/ctype_utf8mb4_myisam.result | 29 +-
mysql-test/r/ddl_i18n_koi8r.result | 84 +-
mysql-test/r/ddl_i18n_utf8.result | 84 +-
mysql-test/r/default.result | 36 +-
mysql-test/r/default_session.result | 28 +
mysql-test/r/delayed.result | 4 +-
mysql-test/r/derived.result | 44 +
mysql-test/r/derived_cond_pushdown.result | 1993 +-
mysql-test/r/derived_opt.result | 35 +-
mysql-test/r/derived_view.result | 471 +-
mysql-test/r/distinct.result | 30 +
mysql-test/r/drop_bad_db_type.result | 7 +-
mysql-test/r/dyncol.result | 6 +-
mysql-test/r/engine_error_in_alter-8453.result | 5 +-
mysql-test/r/error_simulation.result | 16 +-
mysql-test/r/events_1.result | 72 +-
mysql-test/r/events_2.result | 30 +
mysql-test/r/events_bugs.result | 61 +-
mysql-test/r/events_grant.result | 10 +
mysql-test/r/events_logs_tests.result | 5 +-
mysql-test/r/events_restart.result | 26 +-
mysql-test/r/events_trans.result | 9 +
mysql-test/r/explain_slowquerylog.result | 4 +
mysql-test/r/flush.result | 23 +
mysql-test/r/flush2.result | 15 +-
mysql-test/r/flush_read_lock.result | 2 +
mysql-test/r/foreign_key.result | 26 +
mysql-test/r/fulltext.result | 8 +-
mysql-test/r/func_compress.result | 5 +-
mysql-test/r/func_concat.result | 20 +
mysql-test/r/func_default.result | 10 +-
mysql-test/r/func_gconcat.result | 30 +-
mysql-test/r/func_group.result | 10 +-
mysql-test/r/func_group_innodb.result | 24 +
mysql-test/r/func_hybrid_type.result | 40 +-
mysql-test/r/func_isnull.result | 20 +
mysql-test/r/func_json.result | 189 +-
mysql-test/r/func_math.result | 146 +-
mysql-test/r/func_misc.result | 30 +
mysql-test/r/func_regexp_pcre.result | 18 +-
mysql-test/r/func_regexp_pcre_debug.result | 3 +-
mysql-test/r/func_set.result | 4 +-
mysql-test/r/func_str.result | 112 +-
mysql-test/r/func_time.result | 269 +-
mysql-test/r/func_weight_string.result | 3 +-
mysql-test/r/function_defaults.result | 52 +
mysql-test/r/gis-loaddata.result | 25 +
mysql-test/r/gis-precise.result | 7 +
mysql-test/r/gis.result | 56 +-
mysql-test/r/gis2.result | 38 -
mysql-test/r/gis_notembedded.result | 45 +
mysql-test/r/grant.result | 42 +-
mysql-test/r/grant2.result | 11 +-
mysql-test/r/grant4.result | 21 +
mysql-test/r/grant5.result | 7 +
mysql-test/r/grant_cache_no_prot.result | 9 +-
mysql-test/r/grant_cache_ps_prot.result | 9 +-
mysql-test/r/grant_not_windows.result | 8 +
mysql-test/r/greedy_optimizer.result | 8 +-
mysql-test/r/group_by.result | 33 +-
mysql-test/r/group_min_max.result | 49 +-
mysql-test/r/having.result | 17 +
mysql-test/r/host_cache_size_functionality.result | 7 +-
mysql-test/r/huge_frm-6224.result | 6 +
mysql-test/r/implicit_commit.result | 4 +-
mysql-test/r/index_merge_innodb.result | 78 +-
mysql-test/r/index_merge_myisam.result | 93 +-
mysql-test/r/information_schema-big.result | 8 +-
mysql-test/r/information_schema.result | 4 +-
mysql-test/r/information_schema_all_engines.result | 8 +-
mysql-test/r/information_schema_db.result | 79 +
mysql-test/r/information_schema_parameters.result | 4 +-
mysql-test/r/information_schema_prepare.result | 4 +
mysql-test/r/information_schema_stats.result | 3 +-
mysql-test/r/init_connection_query_cache.result | 3 +-
mysql-test/r/innodb_ext_key.result | 3 +
mysql-test/r/innodb_icp.result | 6 +-
mysql-test/r/innodb_mrr_cpk.result | 2 +-
mysql-test/r/insert.result | 32 +-
mysql-test/r/insert_debug.result | 29 +
mysql-test/r/insert_select.result | 9 +
mysql-test/r/join.result | 1754 +-
mysql-test/r/join_cache.result | 334 +-
mysql-test/r/join_nested.result | 33 +
mysql-test/r/join_nested_jcl6.result | 42 +-
mysql-test/r/join_outer.result | 229 +-
mysql-test/r/join_outer_innodb.result | 2 +-
mysql-test/r/join_outer_jcl6.result | 239 +-
mysql-test/r/kill.result | 16 +
mysql-test/r/limit.result | 16 +
mysql-test/r/loaddata.result | 111 +-
mysql-test/r/loadxml.result | 20 +
mysql-test/r/lock.result | 6 +-
mysql-test/r/lock_multi.result | 12 +-
mysql-test/r/lock_sync.result | 4 +
mysql-test/r/log_slow.result | 38 +
mysql-test/r/log_slow_debug.result | 138 +
mysql-test/r/log_state.result | 3 +-
mysql-test/r/log_tables.result | 9 +-
mysql-test/r/lowercase_fs_off.result | 63 +
mysql-test/r/lowercase_table.result | 4 +
mysql-test/r/lowercase_table_qcache.result | 3 +-
mysql-test/r/max_statement_time.result | 3 +
mysql-test/r/mdev13607.result | 30 +-
mysql-test/r/mdev375.result | 5 +-
mysql-test/r/mdev6830.result | 2 +
mysql-test/r/mdev_19276.result | 11 +
mysql-test/r/merge-big.result | 2 +-
mysql-test/r/merge.result | 8 +-
mysql-test/r/merge_debug.result | 2 +-
mysql-test/r/multi_update.result | 53 +-
mysql-test/r/multi_update2.result | 25 -
mysql-test/r/multi_update_big.result | 25 +
mysql-test/r/multi_update_debug.result | 16 +
mysql-test/r/multi_update_innodb.result | 57 +
mysql-test/r/myisam.result | 23 +
mysql-test/r/myisam_debug.result | 4 +-
mysql-test/r/myisam_icp.result | 2 +-
mysql-test/r/myisam_mrr.result | 1 +
mysql-test/r/myisam_recover.result | 3 +-
mysql-test/r/mysql.result | 32 +-
mysql-test/r/mysql_client_test.result | 10 +
mysql-test/r/mysql_not_windows.result | 2 +
mysql-test/r/mysql_tzinfo_to_sql_symlink.result | 104 +-
mysql-test/r/mysqlbinlog-innodb.result | 8 +-
mysql-test/r/mysqlbinlog.result | 56 +-
mysql-test/r/mysqlbinlog_row_big.result | 1 -
mysql-test/r/mysqlbinlog_row_compressed.result | 20 +-
mysql-test/r/mysqlbinlog_row_minimal.result | 135 +-
mysql-test/r/mysqlbinlog_stmt_compressed.result | 4 +-
mysql-test/r/mysqlcheck.result | 16 +-
mysql-test/r/mysqld--help.result | 10 +-
mysql-test/r/mysqldump-compat.result | 4 +
mysql-test/r/mysqldump.result | 137 +-
mysql-test/r/mysqlslap.result | 3 +
mysql-test/r/mysqltest_tracking_info.result | 31 +
mysql-test/r/named_pipe.result | 9 +-
mysql-test/r/olap.result | 78 +
mysql-test/r/openssl_1.result | 78 +-
mysql-test/r/order_by.result | 43 +
mysql-test/r/order_by_innodb.result | 27 +
mysql-test/r/order_by_zerolength-4285.result | 20 +
mysql-test/r/outfile_loaddata.result | 4 +-
mysql-test/r/partition.result | 102 +-
mysql-test/r/partition_alter.result | 6 +-
mysql-test/r/partition_debug_sync.result | 1 -
mysql-test/r/partition_explicit_prune.result | 19 +
mysql-test/r/partition_innodb.result | 88 +
mysql-test/r/partition_key_cache.result | 4 +-
mysql-test/r/partition_list.result | 210 +
mysql-test/r/plugin.result | 10 +
mysql-test/r/plugin_auth.result | 8 +-
mysql-test/r/plugin_not_embedded.result | 3 +
mysql-test/r/pool_of_threads.result | 12 +-
mysql-test/r/processlist.result | 7 +-
mysql-test/r/processlist_notembedded.result | 12 +
mysql-test/r/ps.result | 226 +-
mysql-test/r/ps_error.result | 73 +
mysql-test/r/ps_innodb.result | 64 +
mysql-test/r/query_cache.result | 11 +-
mysql-test/r/query_cache_debug.result | 14 +-
mysql-test/r/query_cache_innodb.result | 5 +-
mysql-test/r/query_cache_merge.result | 6 +-
mysql-test/r/query_cache_notembedded.result | 4 +-
mysql-test/r/query_cache_with_views.result | 6 +-
mysql-test/r/range.result | 52 +-
mysql-test/r/range_innodb.result | 43 +
mysql-test/r/range_interrupted-13751.result | 4 +-
mysql-test/r/range_mrr_icp.result | 52 +-
mysql-test/r/range_vs_index_merge.result | 2 +-
mysql-test/r/range_vs_index_merge_innodb.result | 2 +-
mysql-test/r/read_only.result | 16 +-
mysql-test/r/read_only_innodb.result | 8 -
mysql-test/r/rename.result | 70 +
mysql-test/r/reopen_temp_table.result | 53 +
mysql-test/r/repair.result | 4 +
mysql-test/r/repair_symlink-5543.result | 4 +-
mysql-test/r/reset_connection.result | 27 +
mysql-test/r/row-checksum-old.result | 16 +
mysql-test/r/row-checksum.result | 16 +
mysql-test/r/select.result | 7 +-
mysql-test/r/select_debug.result | 2 +
mysql-test/r/select_jcl6.result | 10 +-
mysql-test/r/select_pkeycache.result | 7 +-
mysql-test/r/selectivity.result | 362 +-
mysql-test/r/selectivity_innodb.result | 363 +-
mysql-test/r/session_tracker_last_gtid.result | 34 +
mysql-test/r/set_password.result | 181 +
mysql-test/r/set_password_plugin-9835.result | 160 -
mysql-test/r/set_statement.result | 10 +-
mysql-test/r/shm.result | 9 +-
mysql-test/r/show_check.result | 15 +-
mysql-test/r/show_explain.result | 178 +-
mysql-test/r/show_explain_non_select.result | 8 +-
mysql-test/r/show_explain_ps.result | 12 +-
mysql-test/r/show_grants_with_plugin-7985.result | 6 +-
mysql-test/r/slowlog_enospace-10508.result | 5 +-
mysql-test/r/sp-code.result | 3 +-
mysql-test/r/sp-error.result | 2 +-
mysql-test/r/sp-innodb.result | 34 +
mysql-test/r/sp-security.result | 29 +
mysql-test/r/sp-ucs2.result | 34 +-
mysql-test/r/sp-vars.result | 8 +-
mysql-test/r/sp.result | 134 +-
mysql-test/r/sp_notembedded.result | 6 +-
mysql-test/r/sp_trans.result | 2 +-
mysql-test/r/ssl-crl-revoked-crl.result | 1 -
mysql-test/r/ssl.result | 18 +-
mysql-test/r/ssl_cert_verify.result | 5 -
mysql-test/r/ssl_cipher.result | 63 +-
mysql-test/r/ssl_compress.result | 9 +-
mysql-test/r/ssl_crl.result | 24 +-
mysql-test/r/ssl_crl_clients-valid.result | 24 -
mysql-test/r/ssl_crl_clients.result | 6 +
mysql-test/r/ssl_crl_clients_valid.result | 16 -
mysql-test/r/ssl_crl_clrpath.result | 23 -
mysql-test/r/ssl_system_ca,bad.result | 1 +
mysql-test/r/ssl_system_ca.result | 2 +
mysql-test/r/ssl_verify_ip.result | 4 +
mysql-test/r/stat_tables-enospc.result | 6 +-
mysql-test/r/stat_tables.result | 310 +
mysql-test/r/stat_tables_innodb.result | 310 +
mysql-test/r/statistics.result | 38 +
mysql-test/r/statistics_close.result | 11 +
mysql-test/r/status2.result | 4 +-
mysql-test/r/strict.result | 184 +-
mysql-test/r/subselect-crash_15755.result | 317 +
mysql-test/r/subselect.result | 56 +-
mysql-test/r/subselect2.result | 24 +-
mysql-test/r/subselect3.result | 6 +-
mysql-test/r/subselect3_jcl6.result | 15 +-
mysql-test/r/subselect_cache.result | 2 +
mysql-test/r/subselect_exists2in.result | 12 +-
mysql-test/r/subselect_extra.result | 4 +-
mysql-test/r/subselect_extra_no_semijoin.result | 22 +
mysql-test/r/subselect_mat.result | 262 +-
mysql-test/r/subselect_mat_cost.result | 3 +-
mysql-test/r/subselect_mat_cost_bugs.result | 4 +-
mysql-test/r/subselect_no_exists_to_in.result | 62 +-
mysql-test/r/subselect_no_mat.result | 56 +-
mysql-test/r/subselect_no_opts.result | 56 +-
mysql-test/r/subselect_no_scache.result | 56 +-
mysql-test/r/subselect_no_semijoin.result | 111 +-
mysql-test/r/subselect_sj.result | 103 +-
mysql-test/r/subselect_sj2.result | 2 +-
mysql-test/r/subselect_sj2_jcl6.result | 6 +-
mysql-test/r/subselect_sj2_mat.result | 200 +-
mysql-test/r/subselect_sj_jcl6.result | 112 +-
mysql-test/r/subselect_sj_mat.result | 246 +-
mysql-test/r/subselect_sj_nonmerged.result | 6 +-
mysql-test/r/sum_distinct-big.result | 40 +-
mysql-test/r/system_mysql_db.result | 4 +-
mysql-test/r/system_mysql_db_fix40123.result | 4 +-
mysql-test/r/temp_table.result | 36 +
mysql-test/r/timezone2.result | 33 +
mysql-test/r/trigger.result | 45 +-
mysql-test/r/truncate-stale-6500.result | 3 +-
mysql-test/r/type_bit.result | 26 +
mysql-test/r/type_blob.result | 25 +
mysql-test/r/type_date.result | 80 +-
mysql-test/r/type_datetime.result | 141 +-
mysql-test/r/type_decimal.result | 49 +-
mysql-test/r/type_float.result | 42 +-
mysql-test/r/type_int.result | 50 +
mysql-test/r/type_json.result | 2 +-
mysql-test/r/type_newdecimal.result | 110 +-
mysql-test/r/type_num.result | 168 +-
mysql-test/r/type_time.result | 88 +-
mysql-test/r/type_timestamp.result | 4 +-
mysql-test/r/type_year.result | 18 +-
mysql-test/r/udf.result | 14 +
mysql-test/r/udf_query_cache.result | 3 +-
mysql-test/r/union.result | 61 +-
mysql-test/r/union_crash-714.result | 4 +-
mysql-test/r/uniques_crash-7912.result | 11 -
mysql-test/r/update.result | 13 +
mysql-test/r/update_innodb.result | 24 +
mysql-test/r/user_var-binlog.result | 2 +-
mysql-test/r/userstat-badlogin-4824.result | 3 +-
mysql-test/r/userstat.result | 12 +-
mysql-test/r/variables-notembedded.result | 17 +-
mysql-test/r/variables.result | 41 +-
mysql-test/r/view.result | 114 +-
mysql-test/r/view_alias.result | 10 +-
mysql-test/r/view_grant.result | 4 +
mysql-test/r/warnings.result | 68 +-
mysql-test/r/warnings_debug.result | 2 +
mysql-test/r/win.result | 797 +-
mysql-test/r/win_first_last_value.result | 20 +-
mysql-test/r/win_lead_lag.result | 11 +
mysql-test/r/win_percent_cume.result | 72 +-
mysql-test/r/win_rank.result | 81 +-
mysql-test/r/xtradb_mrr.result | 1 +
mysql-test/std_data/binlog_before_20574.bin | Bin 0 -> 1022 bytes
mysql-test/std_data/ca-cert-verify.pem | 20 -
mysql-test/std_data/cacert.pem | 110 +-
mysql-test/std_data/cakey.pem | 52 +-
mysql-test/std_data/checkDBI_DBD-mysql.pl | 2 +-
mysql-test/std_data/client-cert.crl | 12 +
mysql-test/std_data/client-cert.pem | 102 +-
mysql-test/std_data/client-key.pem | 38 +-
mysql-test/std_data/crl-ca-cert.pem | 63 -
mysql-test/std_data/crl-client-cert.pem | 62 -
mysql-test/std_data/crl-client-key.pem | 15 -
mysql-test/std_data/crl-client-revoked.crl | 10 -
mysql-test/std_data/crl-server-cert.pem | 62 -
mysql-test/std_data/crl-server-key.pem | 15 -
mysql-test/std_data/crldir/ed1f42db.r0 | 12 +
mysql-test/std_data/crldir/fc725416.r0 | 10 -
mysql-test/std_data/frm/mdev16518.frm | Bin 0 -> 8619 bytes
mysql-test/std_data/frm/t1.frm | Bin 0 -> 8584 bytes
mysql-test/std_data/ldml/latin1.xml | 2 +-
mysql-test/std_data/loaddata/mdev-15497.txt | 1 +
mysql-test/std_data/loaddata/mdev14628a.xml | 4 +
mysql-test/std_data/loaddata/mdev14628b.xml | 3 +
mysql-test/std_data/loaddata/nl.txt | 1 +
mysql-test/std_data/mdev17909#P#p20181029.MYD | Bin
mysql-test/std_data/mdev17909#P#p20181029.MYI | Bin 0 -> 1024 bytes
mysql-test/std_data/mdev17909#P#p20181128.MYD | Bin
mysql-test/std_data/mdev17909#P#p20181128.MYI | Bin 0 -> 1024 bytes
mysql-test/std_data/mdev17909.frm | Bin 0 -> 3284 bytes
mysql-test/std_data/mdev17909.par | Bin 0 -> 48 bytes
mysql-test/std_data/server-cert-verify-fail.pem | 19 -
mysql-test/std_data/server-cert-verify-pass.pem | 19 -
mysql-test/std_data/server-cert.crl | 12 +
mysql-test/std_data/server-cert.pem | 100 +-
mysql-test/std_data/server-key-verify-fail.pem | 27 -
mysql-test/std_data/server-key-verify-pass.pem | 27 -
mysql-test/std_data/server-key.pem | 38 +-
mysql-test/std_data/server-new-cert.pem | 81 +
mysql-test/std_data/server-new-key.pem | 27 +
mysql-test/std_data/server8k-cert.pem | 246 +-
mysql-test/std_data/server8k-key.pem | 194 +-
mysql-test/std_data/serversan-cert.pem | 98 +-
mysql-test/std_data/serversan-key.pem | 40 +-
.../maria100226_char_to_vchar_stored.MYD | Bin 0 -> 60 bytes
.../maria100226_char_to_vchar_stored.MYI | Bin 0 -> 1024 bytes
.../maria100226_char_to_vchar_stored.frm | Bin 0 -> 483 bytes
.../maria100226_char_to_vchar_virtual.MYD | Bin 0 -> 60 bytes
.../maria100226_char_to_vchar_virtual.MYI | Bin 0 -> 2048 bytes
.../maria100226_char_to_vchar_virtual.frm | Bin 0 -> 972 bytes
mysql-test/suite.pm | 36 +-
mysql-test/suite/archive/archive_eits.result | 24 +
mysql-test/suite/archive/archive_eits.test | 32 +
mysql-test/suite/archive/discover.result | 8 +
mysql-test/suite/archive/discover_5438.opt | 1 +
mysql-test/suite/archive/partition_archive.result | 4 +-
mysql-test/suite/archive/partition_archive.test | 3 +-
.../suite/binlog/include/check_binlog_size.inc | 31 +
.../suite/binlog/r/binlog_base64_flag.result | 21 +-
.../r/binlog_flush_binlogs_delete_domain.result | 12 +
mysql-test/suite/binlog/r/binlog_index.result | 3 +-
mysql-test/suite/binlog/r/binlog_innodb_stm.result | 17 +
.../binlog/r/binlog_invalid_read_in_rotate.result | 18 +
mysql-test/suite/binlog/r/binlog_ioerr.result | 3 +-
mysql-test/suite/binlog/r/binlog_mdev717.result | 2 +
.../suite/binlog/r/binlog_mixed_cache_stat.result | 6 +
.../suite/binlog/r/binlog_mysqlbinlog2.result | 504 +-
.../suite/binlog/r/binlog_mysqlbinlog_row.result | 2 +-
.../binlog/r/binlog_mysqlbinlog_row_frag.result | 24 +
.../binlog/r/binlog_mysqlbinlog_row_innodb.result | 8 +-
.../binlog/r/binlog_mysqlbinlog_row_myisam.result | 8 +-
.../binlog/r/binlog_mysqlbinlog_row_trans.result | 2 +-
.../binlog/r/binlog_mysqlbinlog_stop_never.result | 16 +
.../r/binlog_parallel_replication_marks_row.result | 2 -
.../suite/binlog/r/binlog_row_annotate.result | 12 +-
.../suite/binlog/r/binlog_row_cache_stat.result | 6 +
.../suite/binlog/r/binlog_row_ctype_ucs.result | 4 +-
.../suite/binlog/r/binlog_row_drop_tmp_tbl.result | 49 +-
.../binlog/r/binlog_row_mix_innodb_myisam.result | 2 -
.../binlog/r/binlog_row_mysqlbinlog_options.result | 4 +-
.../r/binlog_show_binlog_event_random_pos.result | 12 +
mysql-test/suite/binlog/r/binlog_sql_mode.result | 2 +
.../suite/binlog/r/binlog_stm_cache_stat.result | 6 +
.../suite/binlog/r/binlog_stm_ctype_ucs.result | 4 +-
.../suite/binlog/r/binlog_stm_drop_tmp_tbl.result | 45 +-
.../suite/binlog/r/binlog_tmp_table_row.result | 7 +
mysql-test/suite/binlog/r/binlog_unsafe.result | 2 +
.../suite/binlog/r/binlog_write_error.result | 51 +-
.../suite/binlog/r/flashback-largebinlog.result | 70 +
mysql-test/suite/binlog/r/flashback.result | 22 +-
mysql-test/suite/binlog/t/binlog_base64_flag.test | 22 +
.../t/binlog_flush_binlogs_delete_domain.test | 19 +
mysql-test/suite/binlog/t/binlog_innodb.opt | 1 +
mysql-test/suite/binlog/t/binlog_innodb_stm.test | 26 +
.../t/binlog_invalid_read_in_rotate.combinations | 5 +
.../binlog/t/binlog_invalid_read_in_rotate.test | 48 +
.../suite/binlog/t/binlog_max_extension.test | 18 +-
.../suite/binlog/t/binlog_mixed_cache_stat.opt | 1 +
mysql-test/suite/binlog/t/binlog_mysqlbinlog2.test | 49 +-
.../suite/binlog/t/binlog_mysqlbinlog_row.test | 2 +-
.../binlog/t/binlog_mysqlbinlog_row_frag.test | 46 +
.../binlog/t/binlog_mysqlbinlog_row_trans.test | 2 +-
.../binlog/t/binlog_mysqlbinlog_stop_never.test | 66 +
.../binlog/t/binlog_row_mysqlbinlog_options.test | 4 +-
...inlog_show_binlog_event_random_pos.combinations | 5 +
.../t/binlog_show_binlog_event_random_pos.test | 37 +
.../suite/binlog/t/binlog_tmp_table_row.test | 30 +
.../suite/binlog/t/binlog_variables_log_bin.test | 3 +-
.../suite/binlog/t/binlog_variables_relay_log.test | 3 +-
.../suite/binlog/t/flashback-largebinlog.test | 114 +
mysql-test/suite/binlog/t/flashback.test | 34 +-
.../suite/binlog_encryption/binlog_index.result | 3 +-
.../suite/binlog_encryption/binlog_ioerr.result | 3 +-
.../binlog_mdev_20574_old_binlog.result | 27 +
.../binlog_mdev_20574_old_binlog.test | 46 +
.../binlog_encryption/binlog_row_annotate.result | 15 +-
.../binlog_encryption/binlog_write_error.result | 51 +-
.../suite/binlog_encryption/encrypted_master.test | 1 +
.../suite/binlog_encryption/encrypted_slave.test | 1 +
.../suite/binlog_encryption/mysqlbinlog.result | 1 +
.../suite/binlog_encryption/mysqlbinlog.test | 3 +
.../suite/binlog_encryption/rpl_checksum.result | 11 +-
.../suite/binlog_encryption/rpl_corruption.result | 13 +-
.../suite/binlog_encryption/rpl_incident.result | 2 +
.../binlog_encryption/rpl_init_slave_errors.result | 3 +-
.../suite/binlog_encryption/rpl_parallel.result | 18 +-
.../rpl_parallel_ignored_errors.result | 50 +
.../rpl_parallel_ignored_errors.test | 1 +
.../suite/binlog_encryption/rpl_typeconv.result | 44 +
mysql-test/suite/binlog_encryption/testdata.opt | 1 -
mysql-test/suite/encryption/disabled.def | 2 -
mysql-test/suite/encryption/my.cnf | 1 +
.../r/compressed_import_tablespace.result | 39 +
.../encryption/r/corrupted_during_recovery.result | 19 +
.../suite/encryption/r/debug_key_management.result | 1 +
mysql-test/suite/encryption/r/file_creation.result | 26 +
mysql-test/suite/encryption/r/innochecksum.result | 2 +-
.../encryption/r/innodb-bad-key-change.result | 32 +-
.../encryption/r/innodb-bad-key-change2.result | 37 +-
.../encryption/r/innodb-bad-key-change3.result | 1 +
.../encryption/r/innodb-bad-key-change4.result | 12 +-
.../r/innodb-checksum-algorithm,32k.rdiff | 18 +-
.../r/innodb-checksum-algorithm,64k.rdiff | 18 +-
.../encryption/r/innodb-checksum-algorithm.result | 246 +-
.../encryption/r/innodb-compressed-blob.result | 7 +-
.../r/innodb-discard-import-change.result | 1 +
.../encryption/r/innodb-discard-import.result | 2 +
.../encryption/r/innodb-encryption-alter.result | 68 +-
.../encryption/r/innodb-encryption-disable.result | 6 +-
.../suite/encryption/r/innodb-force-corrupt.result | 12 +-
.../r/innodb-key-rotation-disable.result | 4 -
.../suite/encryption/r/innodb-missing-key.result | 8 +-
.../suite/encryption/r/innodb-redo-badkey.result | 7 +-
.../suite/encryption/r/innodb-redo-nokeys.result | 2 +-
.../suite/encryption/r/innodb-spatial-index.result | 2 +-
.../r/innodb_encrypt_key_rotation_age.result | 75 +
.../suite/encryption/r/innodb_encrypt_log.result | 2 +
.../r/innodb_encrypt_temporary_tables.result | 19 +
.../suite/encryption/r/innodb_encryption.result | 2 +
.../r/innodb_encryption_discard_import.result | 2 +
.../suite/encryption/r/innodb_lotoftables.result | 1221 -
mysql-test/suite/encryption/r/tempfiles.result | 3 +-
.../encryption/t/compressed_import_tablespace.opt | 3 +
.../encryption/t/compressed_import_tablespace.test | 46 +
.../encryption/t/corrupted_during_recovery.test | 65 +
mysql-test/suite/encryption/t/file_creation.opt | 1 +
mysql-test/suite/encryption/t/file_creation.test | 41 +
mysql-test/suite/encryption/t/innochecksum.test | 3 +-
.../suite/encryption/t/innodb-bad-key-change.test | 23 +-
.../suite/encryption/t/innodb-bad-key-change2.test | 28 +-
.../suite/encryption/t/innodb-bad-key-change4.test | 1 +
.../encryption/t/innodb-checksum-algorithm.test | 9 +-
.../suite/encryption/t/innodb-compressed-blob.test | 5 +-
.../suite/encryption/t/innodb-discard-import.test | 13 +-
.../encryption/t/innodb-encryption-alter.test | 64 +-
.../encryption/t/innodb-encryption-disable.test | 6 +-
.../suite/encryption/t/innodb-force-corrupt.test | 18 +-
.../encryption/t/innodb-key-rotation-disable.test | 5 -
.../suite/encryption/t/innodb-missing-key.test | 10 +-
.../suite/encryption/t/innodb-redo-badkey.test | 7 +-
.../suite/encryption/t/innodb-redo-nokeys.test | 2 +-
.../suite/encryption/t/innodb-spatial-index.test | 2 -
.../t/innodb_encrypt_key_rotation_age.opt | 2 +
.../t/innodb_encrypt_key_rotation_age.test | 82 +
.../encryption/t/innodb_encrypt_log_corruption.opt | 1 +
.../t/innodb_encrypt_temporary_tables.opt | 2 +
.../t/innodb_encrypt_temporary_tables.test | 23 +
.../suite/encryption/t/innodb_lotoftables.opt | 3 -
.../suite/encryption/t/innodb_lotoftables.test | 231 -
mysql-test/suite/encryption/t/tempfiles.test | 3 +-
.../funcs/r/in_number_boundary_error.result | 12 +-
.../r/in_number_decimal_boundary_error.result | 8 +-
.../suite/engines/iuds/r/insert_decimal.result | 12 +-
.../suite/engines/iuds/r/insert_number.result | 304 +-
mysql-test/suite/engines/iuds/r/insert_year.result | 16 +-
.../suite/engines/iuds/r/update_decimal.result | 4 +-
.../engines/iuds/r/update_delete_number.result | 17 +
mysql-test/suite/federated/have_federatedx.inc | 2 +-
mysql-test/suite/funcs_1/datadict/is_routines.inc | 2 +
mysql-test/suite/funcs_1/datadict/is_schemata.inc | 1 +
mysql-test/suite/funcs_1/datadict/is_tables.inc | 2 +
mysql-test/suite/funcs_1/datadict/is_triggers.inc | 6 +-
.../suite/funcs_1/datadict/processlist_priv.inc | 13 +
.../suite/funcs_1/datadict/processlist_val.inc | 7 +
mysql-test/suite/funcs_1/datadict/tables.inc | 2 +
mysql-test/suite/funcs_1/r/innodb_func_view.result | 72 +-
mysql-test/suite/funcs_1/r/is_basics_mixed.result | 2 +-
.../suite/funcs_1/r/is_check_constraints.result | 147 +
.../suite/funcs_1/r/is_columns_innodb.result | 4 +-
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 | 16 +-
.../funcs_1/r/is_columns_mysql_embedded.result | 8 +-
.../suite/funcs_1/r/is_engines_archive.result | 2 +-
mysql-test/suite/funcs_1/r/is_engines_csv.result | 2 +-
.../suite/funcs_1/r/is_engines_federated.result | 2 +-
.../suite/funcs_1/r/is_engines_myisam.result | 2 +-
.../suite/funcs_1/r/is_routines_embedded.result | 12 +
mysql-test/suite/funcs_1/r/is_tables_is.result | 46 +
.../suite/funcs_1/r/is_tables_is_embedded.result | 46 +
mysql-test/suite/funcs_1/r/is_tables_mysql.result | 2 +-
.../funcs_1/r/is_tables_mysql_embedded.result | 4 +-
mysql-test/suite/funcs_1/r/is_triggers.result | 3 +-
.../suite/funcs_1/r/is_triggers_embedded.result | 3 +-
mysql-test/suite/funcs_1/r/memory_func_view.result | 72 +-
mysql-test/suite/funcs_1/r/myisam_func_view.result | 72 +-
mysql-test/suite/funcs_1/r/storedproc.result | 6 +-
.../suite/funcs_1/storedproc/storedproc_07.inc | 1 +
.../suite/funcs_1/storedproc/storedproc_08.inc | 1 +
mysql-test/suite/funcs_1/t/innodb_trig_03e.test | 1 +
mysql-test/suite/funcs_1/t/is_basics_mixed.test | 5 +-
.../suite/funcs_1/t/is_check_constraints.test | 117 +
mysql-test/suite/funcs_1/t/is_columns.test | 1 +
mysql-test/suite/funcs_1/t/is_columns_innodb.test | 3 +-
mysql-test/suite/funcs_1/t/is_columns_memory.test | 1 +
mysql-test/suite/funcs_1/t/is_columns_myisam.test | 2 +
.../suite/funcs_1/t/is_schemata_is_mysql_test.test | 1 +
mysql-test/suite/funcs_1/t/memory_trig_03e.test | 1 +
mysql-test/suite/funcs_1/t/myisam_trig_03e.test | 1 +
mysql-test/suite/funcs_1/t/storedproc.test | 2 +
.../suite/funcs_2/charset/charset_master.test | 8 +-
mysql-test/suite/funcs_2/r/innodb_charset.result | 4 +-
mysql-test/suite/funcs_2/r/memory_charset.result | 4 +-
mysql-test/suite/funcs_2/r/myisam_charset.result | 4 +-
mysql-test/suite/galera/disabled.def | 52 +-
mysql-test/suite/galera/galera_2nodes.cnf | 11 +-
.../suite/galera/galera_2nodes_as_master_slave.cnf | 83 -
.../galera_2nodes_as_master_with_repl_filter.cnf | 87 -
mysql-test/suite/galera/galera_4nodes.cnf | 4 +
mysql-test/suite/galera/include/galera_resume.inc | 9 -
.../suite/galera/include/have_mariabackup.inc | 4 -
.../suite/galera/include/have_xtrabackup.inc | 4 -
.../suite/galera/include/reset_query_cache.inc | 11 +
mysql-test/suite/galera/r/GAL-419.result | 6 +
mysql-test/suite/galera/r/MW-284.result | 11 +-
mysql-test/suite/galera/r/MW-286.result | 6 +-
mysql-test/suite/galera/r/MW-328A.result | 25 +-
mysql-test/suite/galera/r/MW-328B.result | 2 +-
mysql-test/suite/galera/r/MW-328C.result | 23 -
mysql-test/suite/galera/r/MW-329.result | 6 +-
mysql-test/suite/galera/r/MW-336.result | 19 +-
mysql-test/suite/galera/r/MW-369.result | 49 +-
mysql-test/suite/galera/r/MW-388.result | 16 +-
mysql-test/suite/galera/r/MW-402.result | 8 +-
mysql-test/suite/galera/r/MW-416.result | 111 +
mysql-test/suite/galera/r/MW-44.result | 18 -
mysql-test/suite/galera/r/MW-86-wait1.result | 11 +-
mysql-test/suite/galera/r/MW-86-wait8.result | 11 +-
mysql-test/suite/galera/r/galera#500.result | 14 +
mysql-test/suite/galera/r/galera#505.result | 8 +
.../r/galera_FK_duplicate_client_insert.result | 380 +
.../suite/galera/r/galera_as_slave_ctas.result | 28 +
.../suite/galera/r/galera_as_slave_gtid.result | 7 +
.../galera/r/galera_as_slave_gtid_myisam.result | 29 +
.../galera/r/galera_autoinc_sst_mariabackup.result | 47 +
.../r/galera_bf_background_statistics.result | 33 +
.../galera/r/galera_binlog_stmt_autoinc.result | 161 +
mysql-test/suite/galera/r/galera_defaults.result | 70 +-
.../suite/galera/r/galera_drop_database.result | 23 +
.../suite/galera/r/galera_encrypt_tmp_files.result | 37 +
mysql-test/suite/galera/r/galera_enum.result | 37 +-
mysql-test/suite/galera/r/galera_events.result | 2 +
mysql-test/suite/galera/r/galera_events2.result | 123 +
.../galera/r/galera_forced_binlog_format.result | 6 +-
.../suite/galera/r/galera_gcache_recover.result | 7 +
.../r/galera_gcache_recover_full_gcache.result | 7 +
.../galera/r/galera_gcache_recover_manytrx.result | 29 +
.../suite/galera/r/galera_gcs_fc_limit.result | 27 +-
.../suite/galera/r/galera_gcs_fragment.result | 13 +-
mysql-test/suite/galera/r/galera_gtid.result | 10 +-
.../galera/r/galera_gtid_slave_sst_rsync.result | 1 +
.../r/galera_ist_innodb_flush_logs,debug.rdiff | 103 +
.../galera/r/galera_ist_innodb_flush_logs.result | 104 +-
.../galera/r/galera_ist_mariabackup,debug.rdiff | 114 +
.../suite/galera/r/galera_ist_mariabackup.result | 287 +
...a_ist_mariabackup_innodb_flush_logs,debug.rdiff | 114 +
...galera_ist_mariabackup_innodb_flush_logs.result | 96 +
.../galera/r/galera_ist_mysqldump,debug.rdiff | 117 +
.../suite/galera/r/galera_ist_mysqldump.result | 121 +-
.../galera/r/galera_ist_restart_joiner.result | 1 -
.../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 | 114 +
.../suite/galera/r/galera_ist_xtrabackup-v2.result | 122 +-
.../suite/galera/r/galera_kill_applier.result | 15 +-
mysql-test/suite/galera/r/galera_kill_ddl.result | 11 +-
.../suite/galera/r/galera_kill_largechanges.result | 18 +-
.../suite/galera/r/galera_kill_nochanges.result | 16 +-
.../suite/galera/r/galera_kill_smallchanges.result | 6 +-
mysql-test/suite/galera/r/galera_load_data.result | 46 +
mysql-test/suite/galera/r/galera_log_bin.result | 94 +-
.../suite/galera/r/galera_log_output_csv.result | 2 +
mysql-test/suite/galera/r/galera_many_rows.result | 28 +-
mysql-test/suite/galera/r/galera_mdl_race.result | 16 +-
.../r/galera_parallel_autoinc_largetrx.result | 8 +-
.../r/galera_parallel_autoinc_manytrx.result | 33 +-
mysql-test/suite/galera/r/galera_partition.result | 424 +
.../suite/galera/r/galera_pc_ignore_sb.result | 7 +-
.../galera/r/galera_performance_schema.result | 44 +
.../galera/r/galera_prepared_statement.result | 2 +-
.../galera/r/galera_query_cache_sync_wait.result | 24 +-
.../suite/galera/r/galera_rsu_drop_pk.result | 50 +-
.../suite/galera/r/galera_shutdown_nonprim.result | 9 +
.../galera/r/galera_sst_mariabackup,debug.rdiff | 4 +-
.../galera_sst_mariabackup_encrypt_with_key.result | 3 +
.../r/galera_sst_mariabackup_table_options.result | 997 +
.../r/galera_sst_mysqldump_with_key,debug.rdiff | 117 +
.../galera/r/galera_sst_mysqldump_with_key.result | 122 +-
.../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 +
.../galera_sst_xtrabackup-v2_data_dir,debug.rdiff | 103 +
.../r/galera_sst_xtrabackup-v2_data_dir.result | 262 +
.../suite/galera/r/galera_suspend_slave.result | 2 +
.../suite/galera/r/galera_toi_ddl_fk_insert.result | 31 +-
.../suite/galera/r/galera_toi_truncate.result | 2 +
.../galera/r/galera_unicode_identifiers.result | 6 +-
.../galera/r/galera_var_auto_inc_control_on.result | 31 +-
.../suite/galera/r/galera_var_desync_on.result | 2 -
.../suite/galera/r/galera_var_dirty_reads.result | 7 +-
.../galera/r/galera_var_gtid_domain_id.result | 5 +
.../suite/galera/r/galera_var_node_address.result | 21 +-
.../suite/galera/r/galera_var_notify_cmd.result | 19 +-
.../galera/r/galera_var_reject_queries.result | 6 +-
.../galera/r/galera_var_retry_autocommit.result | 84 +-
.../suite/galera/r/galera_var_slave_threads.result | 83 +-
mysql-test/suite/galera/r/galera_wan.result | 6 +-
.../suite/galera/r/galera_wsrep_new_cluster.result | 2 +-
mysql-test/suite/galera/r/mdev_10518.result | 5 +
mysql-test/suite/galera/r/mysql-wsrep#332.result | 139 +
mysql-test/suite/galera/r/partition.result | 18 +-
mysql-test/suite/galera/r/query_cache.result | 43 +-
mysql-test/suite/galera/suite.pm | 52 +-
mysql-test/suite/galera/t/GAL-419.test | 3 +
mysql-test/suite/galera/t/MW-284.test | 16 +-
mysql-test/suite/galera/t/MW-286.test | 6 +-
mysql-test/suite/galera/t/MW-313-master.opt | 1 -
mysql-test/suite/galera/t/MW-313.cnf | 12 +
mysql-test/suite/galera/t/MW-328-footer.inc | 2 +-
mysql-test/suite/galera/t/MW-328A.test | 42 +-
mysql-test/suite/galera/t/MW-328B.test | 2 +-
mysql-test/suite/galera/t/MW-328C.test | 36 -
mysql-test/suite/galera/t/MW-328D.test | 1 -
mysql-test/suite/galera/t/MW-328E.test | 1 -
mysql-test/suite/galera/t/MW-329-master.opt | 1 -
mysql-test/suite/galera/t/MW-329.cnf | 9 +
mysql-test/suite/galera/t/MW-329.test | 5 +
mysql-test/suite/galera/t/MW-336.cnf | 8 +
mysql-test/suite/galera/t/MW-336.test | 45 +-
mysql-test/suite/galera/t/MW-388.test | 18 +-
mysql-test/suite/galera/t/MW-416.test | 132 +
mysql-test/suite/galera/t/MW-44.test | 22 +-
mysql-test/suite/galera/t/MW-86-wait1-master.opt | 1 -
mysql-test/suite/galera/t/MW-86-wait1.test | 5 +-
mysql-test/suite/galera/t/MW-86-wait8-master.opt | 1 -
mysql-test/suite/galera/t/MW-86-wait8.cnf | 10 +
mysql-test/suite/galera/t/MW-86-wait8.test | 5 +-
.../suite/galera/t/enforce_storage_engine2.cnf | 13 +
.../suite/galera/t/enforce_storage_engine2.opt | 2 -
mysql-test/suite/galera/t/galera#500.test | 38 +
mysql-test/suite/galera/t/galera#505.test | 26 +
.../t/galera_FK_duplicate_client_insert.test | 161 +
.../t/galera_applier_ftwrl_table_alter-master.opt | 1 -
.../galera/t/galera_applier_ftwrl_table_alter.cnf | 14 +
mysql-test/suite/galera/t/galera_as_slave_ctas.cnf | 5 +
.../suite/galera/t/galera_as_slave_ctas.test | 75 +
.../suite/galera/t/galera_as_slave_gtid.test | 10 +
.../suite/galera/t/galera_as_slave_gtid_myisam.cnf | 6 +
.../galera/t/galera_as_slave_gtid_myisam.test | 65 +
.../galera/t/galera_autoinc_sst_mariabackup.cnf | 12 +
.../galera/t/galera_autoinc_sst_mariabackup.test | 91 +
.../galera/t/galera_autoinc_sst_xtrabackup.cnf | 1 +
.../galera/t/galera_bf_background_statistics.cnf | 9 +
.../galera/t/galera_bf_background_statistics.test | 49 +
.../galera/t/galera_binlog_checksum-master.opt | 1 -
.../suite/galera/t/galera_binlog_checksum.cnf | 13 +
.../t/galera_binlog_event_max_size_max-master.opt | 1 -
.../galera/t/galera_binlog_event_max_size_max.cnf | 9 +
.../t/galera_binlog_event_max_size_min-master.opt | 1 -
.../galera/t/galera_binlog_event_max_size_min.cnf | 9 +
.../suite/galera/t/galera_binlog_stmt_autoinc.test | 232 +
mysql-test/suite/galera/t/galera_defaults.test | 36 +-
.../suite/galera/t/galera_drop_database.test | 47 +
.../suite/galera/t/galera_encrypt_tmp_files.cnf | 8 +
.../suite/galera/t/galera_encrypt_tmp_files.test | 57 +
mysql-test/suite/galera/t/galera_enum.test | 18 +-
mysql-test/suite/galera/t/galera_events2.test | 148 +
mysql-test/suite/galera/t/galera_flush-master.opt | 1 -
mysql-test/suite/galera/t/galera_flush.cnf | 10 +
mysql-test/suite/galera/t/galera_flush_local.cnf | 12 +
mysql-test/suite/galera/t/galera_flush_local.opt | 3 -
.../galera/t/galera_forced_binlog_format.test | 6 +
.../galera/t/galera_gcache_recover_manytrx.test | 13 +-
mysql-test/suite/galera/t/galera_gcs_fc_limit.test | 30 +-
mysql-test/suite/galera/t/galera_gcs_fragment.test | 7 +
mysql-test/suite/galera/t/galera_gtid-master.opt | 1 -
mysql-test/suite/galera/t/galera_gtid.cnf | 10 +
mysql-test/suite/galera/t/galera_gtid.test | 8 +-
.../galera/t/galera_gtid_slave_sst_rsync.test | 3 +
.../galera/t/galera_ist_innodb_flush_logs.cnf | 1 +
.../galera/t/galera_ist_innodb_flush_logs.test | 1 +
.../suite/galera/t/galera_ist_mariabackup.cnf | 12 +
.../suite/galera/t/galera_ist_mariabackup.test | 16 +
.../t/galera_ist_mariabackup_innodb_flush_logs.cnf | 14 +
.../galera_ist_mariabackup_innodb_flush_logs.test | 13 +
.../suite/galera/t/galera_ist_mysqldump.test | 7 +
.../suite/galera/t/galera_ist_xtrabackup-v2.cnf | 2 +
.../suite/galera/t/galera_ist_xtrabackup-v2.test | 5 +
mysql-test/suite/galera/t/galera_kill_applier.test | 26 +-
mysql-test/suite/galera/t/galera_kill_ddl.test | 13 +-
.../suite/galera/t/galera_kill_largechanges.test | 17 +-
.../suite/galera/t/galera_kill_nochanges.test | 22 +-
.../suite/galera/t/galera_kill_smallchanges.test | 11 +-
mysql-test/suite/galera/t/galera_load_data.cnf | 10 +
mysql-test/suite/galera/t/galera_load_data.test | 81 +
.../suite/galera/t/galera_log_bin-master.opt | 1 -
mysql-test/suite/galera/t/galera_log_bin.cnf | 10 +
mysql-test/suite/galera/t/galera_log_bin.test | 21 +-
.../suite/galera/t/galera_log_output_csv.test | 2 +
mysql-test/suite/galera/t/galera_many_rows.cnf | 5 +
mysql-test/suite/galera/t/galera_many_rows.test | 19 +-
.../suite/galera/t/galera_many_tables_pk.test | 4 +-
mysql-test/suite/galera/t/galera_mdev_13787.cnf | 9 +
mysql-test/suite/galera/t/galera_mdev_13787.opt | 1 -
mysql-test/suite/galera/t/galera_mdl_race.test | 17 +-
.../galera/t/galera_parallel_autoinc_largetrx.test | 11 +-
.../galera/t/galera_parallel_autoinc_manytrx.test | 89 +-
mysql-test/suite/galera/t/galera_partition.cnf | 18 +
mysql-test/suite/galera/t/galera_partition.test | 450 +
mysql-test/suite/galera/t/galera_pc_ignore_sb.test | 27 +-
.../suite/galera/t/galera_performance_schema.test | 58 +
.../suite/galera/t/galera_query_cache-master.opt | 1 -
mysql-test/suite/galera/t/galera_query_cache.cnf | 10 +
.../t/galera_query_cache_sync_wait-master.opt | 1 -
.../galera/t/galera_query_cache_sync_wait.cnf | 10 +
.../galera/t/galera_query_cache_sync_wait.test | 13 +-
mysql-test/suite/galera/t/galera_rsu_drop_pk.test | 28 +-
.../suite/galera/t/galera_sbr_binlog-master.opt | 1 -
mysql-test/suite/galera/t/galera_sbr_binlog.cnf | 7 +
.../suite/galera/t/galera_shutdown_nonprim.test | 36 +
mysql-test/suite/galera/t/galera_ssl.cnf | 4 +-
.../suite/galera/t/galera_ssl_compression.cnf | 4 +-
mysql-test/suite/galera/t/galera_ssl_upgrade.cnf | 4 +-
mysql-test/suite/galera/t/galera_ssl_upgrade.test | 2 +-
.../suite/galera/t/galera_sst_mariabackup.test | 1 +
.../t/galera_sst_mariabackup_encrypt_with_key.cnf | 12 +
.../t/galera_sst_mariabackup_encrypt_with_key.test | 14 +
.../t/galera_sst_mariabackup_table_options.cnf | 18 +
.../t/galera_sst_mariabackup_table_options.test | 229 +
.../suite/galera/t/galera_sst_mysqldump.test | 1 +
.../galera/t/galera_sst_mysqldump_with_key.cnf | 4 -
.../galera/t/galera_sst_mysqldump_with_key.test | 21 +-
mysql-test/suite/galera/t/galera_sst_rsync.test | 1 +
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-options.cnf | 3 +-
.../suite/galera/t/galera_sst_xtrabackup-v2.cnf | 1 +
.../suite/galera/t/galera_sst_xtrabackup-v2.test | 1 +
.../galera/t/galera_sst_xtrabackup-v2_data_dir.cnf | 17 +
.../t/galera_sst_xtrabackup-v2_data_dir.test | 23 +
.../galera_sst_xtrabackup-v2_encrypt_with_key.cnf | 1 +
.../suite/galera/t/galera_suspend_slave.test | 3 +
.../suite/galera/t/galera_sync_wait_show.test | 2 +
.../suite/galera/t/galera_toi_ddl_fk_insert.test | 17 +-
mysql-test/suite/galera/t/galera_toi_truncate.test | 16 +-
mysql-test/suite/galera/t/galera_udf-master.opt | 2 -
mysql-test/suite/galera/t/galera_udf.cnf | 15 +
.../suite/galera/t/galera_unicode_identifiers.test | 12 +-
.../suite/galera/t/galera_v1_row_events-master.opt | 1 -
mysql-test/suite/galera/t/galera_v1_row_events.cnf | 13 +
.../galera/t/galera_var_auto_inc_control_on.cnf | 13 +
.../galera/t/galera_var_auto_inc_control_on.opt | 1 -
.../galera/t/galera_var_auto_inc_control_on.test | 29 +-
.../suite/galera/t/galera_var_desync_on.test | 7 +-
.../suite/galera/t/galera_var_dirty_reads.test | 10 +-
.../suite/galera/t/galera_var_gtid_domain_id.test | 7 +
.../suite/galera/t/galera_var_node_address.test | 18 +-
.../galera/t/galera_var_notify_cmd-master.opt | 1 -
.../suite/galera/t/galera_var_notify_cmd.cnf | 13 +
.../suite/galera/t/galera_var_notify_cmd.test | 10 +-
.../suite/galera/t/galera_var_reject_queries.test | 13 +-
.../galera/t/galera_var_retry_autocommit.test | 133 +-
.../suite/galera/t/galera_var_slave_threads.test | 50 +-
mysql-test/suite/galera/t/galera_var_sst_auth.cnf | 12 +
mysql-test/suite/galera/t/galera_var_sst_auth.opt | 1 -
mysql-test/suite/galera/t/galera_wan.test | 14 +-
.../galera/t/galera_wsrep_log_conficts-master.opt | 1 -
.../suite/galera/t/galera_wsrep_log_conficts.cnf | 12 +
.../galera/t/galera_wsrep_new_cluster-master.opt | 1 -
.../suite/galera/t/galera_wsrep_new_cluster.cnf | 10 +
mysql-test/suite/galera/t/mdev_10518.test | 7 +
.../suite/galera/t/mysql-wsrep#201-master.opt | 1 -
mysql-test/suite/galera/t/mysql-wsrep#201.cnf | 9 +
mysql-test/suite/galera/t/mysql-wsrep#332.test | 113 +
mysql-test/suite/galera/t/partition.test | 14 +-
mysql-test/suite/galera/t/query_cache.cnf | 9 +
mysql-test/suite/galera/t/query_cache.opt | 1 -
mysql-test/suite/galera/t/query_cache.test | 123 +-
mysql-test/suite/galera_3nodes/disabled.def | 1 -
mysql-test/suite/galera_3nodes/galera_2x3nodes.cnf | 13 +-
mysql-test/suite/galera_3nodes/galera_3nodes.cnf | 7 +-
.../suite/galera_3nodes/include/galera_suspend.inc | 14 -
.../suite/galera_3nodes/include/have_ipv6.inc | 15 -
mysql-test/suite/galera_3nodes/r/GAL-501.result | 3 +
.../r/galera_certification_double_failure.result | 2 +-
.../r/galera_evs_suspect_timeout.result | 30 +-
.../suite/galera_3nodes/r/galera_garbd.result | 12 +
.../r/galera_innobackupex_backup.result | 6 +
.../galera_3nodes/r/galera_ipv6_mariabackup.result | 22 +
.../r/galera_ipv6_mariabackup_section.result | 18 +
.../galera_3nodes/r/galera_ipv6_mysqldump.result | 21 +-
.../suite/galera_3nodes/r/galera_ipv6_rsync.result | 3 +
.../r/galera_ipv6_rsync_section.result | 14 +
.../r/galera_ipv6_xtrabackup-v2.result | 4 +
.../r/galera_ist_gcache_rollover.result | 1 +
.../galera_3nodes/r/galera_load_data_ist.result | 36 +
.../galera_3nodes/r/galera_pc_bootstrap.result | 11 +
.../suite/galera_3nodes/r/galera_pc_weight.result | 53 +-
.../r/galera_safe_to_bootstrap.result | 27 +
.../galera_3nodes/r/galera_var_dirty_reads2.result | 9 +
mysql-test/suite/galera_3nodes/suite.pm | 40 +-
mysql-test/suite/galera_3nodes/t/GAL-501.opt | 1 +
mysql-test/suite/galera_3nodes/t/GAL-501.test | 2 +-
.../t/galera_evs_suspect_timeout.test | 49 +-
mysql-test/suite/galera_3nodes/t/galera_garbd.test | 21 +-
.../galera_3nodes/t/galera_innobackupex_backup.cnf | 4 +
.../t/galera_innobackupex_backup.test | 28 +-
.../galera_3nodes/t/galera_ipv6_mariabackup.cnf | 29 +
.../galera_3nodes/t/galera_ipv6_mariabackup.opt | 1 +
.../galera_3nodes/t/galera_ipv6_mariabackup.test | 60 +
.../t/galera_ipv6_mariabackup_section.cnf | 39 +
.../t/galera_ipv6_mariabackup_section.opt | 1 +
.../t/galera_ipv6_mariabackup_section.test | 70 +
.../galera_3nodes/t/galera_ipv6_mysqldump.cnf | 10 +-
.../galera_3nodes/t/galera_ipv6_mysqldump.opt | 1 +
.../galera_3nodes/t/galera_ipv6_mysqldump.test | 43 +-
.../suite/galera_3nodes/t/galera_ipv6_rsync.cnf | 10 +-
.../suite/galera_3nodes/t/galera_ipv6_rsync.opt | 1 +
.../suite/galera_3nodes/t/galera_ipv6_rsync.test | 2 +-
.../galera_3nodes/t/galera_ipv6_rsync_section.cnf | 31 +
.../galera_3nodes/t/galera_ipv6_rsync_section.opt | 1 +
.../galera_3nodes/t/galera_ipv6_rsync_section.test | 32 +
.../galera_3nodes/t/galera_ipv6_xtrabackup-v2.cnf | 3 +
.../galera_3nodes/t/galera_ipv6_xtrabackup-v2.opt | 1 +
.../galera_3nodes/t/galera_ipv6_xtrabackup-v2.test | 6 +-
.../galera_3nodes/t/galera_ist_gcache_rollover.cnf | 6 +-
.../t/galera_ist_gcache_rollover.test | 1 +
.../suite/galera_3nodes/t/galera_load_data_ist.cnf | 4 +
.../galera_3nodes/t/galera_load_data_ist.test | 124 +
.../suite/galera_3nodes/t/galera_pc_weight.test | 55 +-
.../galera_3nodes/t/galera_safe_to_bootstrap.test | 32 +-
.../galera_3nodes/t/galera_var_dirty_reads2.test | 14 +
.../suite/gcol/inc/gcol_column_def_options.inc | 1 -
mysql-test/suite/gcol/inc/gcol_keys.inc | 1 -
mysql-test/suite/gcol/inc/gcol_select.inc | 37 +-
.../gcol/r/gcol_column_def_options_innodb.result | 10 +-
.../gcol/r/gcol_column_def_options_myisam.result | 10 +-
mysql-test/suite/gcol/r/gcol_ins_upd_innodb.result | 12 +-
mysql-test/suite/gcol/r/gcol_ins_upd_myisam.result | 12 +-
mysql-test/suite/gcol/r/gcol_keys_innodb.result | 2 +-
.../suite/gcol/r/gcol_partition_innodb.result | 17 +
.../suite/gcol/r/innodb_virtual_basic.result | 16 +-
.../suite/gcol/r/innodb_virtual_debug.result | 44 +-
.../suite/gcol/r/innodb_virtual_debug_purge.result | 100 +-
mysql-test/suite/gcol/r/innodb_virtual_fk.result | 4 +-
.../suite/gcol/r/innodb_virtual_fk_restart.result | 9 +
.../suite/gcol/r/innodb_virtual_index.result | 69 +-
.../suite/gcol/r/innodb_virtual_purge.result | 17 +
mysql-test/suite/gcol/t/gcol_partition_innodb.test | 20 +
mysql-test/suite/gcol/t/innodb_virtual_basic.test | 14 +-
mysql-test/suite/gcol/t/innodb_virtual_debug.test | 49 +-
.../suite/gcol/t/innodb_virtual_debug_purge.opt | 2 +
.../suite/gcol/t/innodb_virtual_debug_purge.test | 167 +-
mysql-test/suite/gcol/t/innodb_virtual_fk.test | 2 -
.../suite/gcol/t/innodb_virtual_fk_restart.test | 9 +
mysql-test/suite/gcol/t/innodb_virtual_index.test | 60 +-
mysql-test/suite/gcol/t/innodb_virtual_purge.test | 35 +
mysql-test/suite/handler/handler.inc | 2 +
mysql-test/suite/handler/ps.result | 9 +
mysql-test/suite/handler/ps.test | 13 +
mysql-test/suite/heap/heap_auto_increment.result | 149 +
mysql-test/suite/heap/heap_auto_increment.test | 32 +
mysql-test/suite/heap/heap_btree.result | 4 +
mysql-test/suite/heap/heap_btree.test | 9 +
mysql-test/suite/innodb/include/crc32.pl | 33 +
.../include/have_undo_tablespaces.combinations | 2 +
.../suite/innodb/include/have_undo_tablespaces.inc | 4 +
.../innodb/include/innodb-page-compression.inc | 2 +
.../innodb/include/innodb_binlog.combinations | 3 +
mysql-test/suite/innodb/include/innodb_binlog.inc | 3 +
.../include/innodb_bulk_create_index_debug.inc | 89 +-
.../suite/innodb/include/truncate_recover.inc | 8 +
.../suite/innodb/include/wait_all_purged.inc | 10 +-
mysql-test/suite/innodb/r/add_constraint.result | 2 +-
.../suite/innodb/r/alter_candidate_key.result | 114 +
mysql-test/suite/innodb/r/alter_copy.result | 13 +-
mysql-test/suite/innodb/r/alter_crash.result | 29 +-
.../suite/innodb/r/alter_foreign_crash.result | 26 +
.../suite/innodb/r/alter_inplace_perfschema.result | 21 +
mysql-test/suite/innodb/r/alter_kill.result | 58 +
mysql-test/suite/innodb/r/alter_large_dml.result | 49 +
.../suite/innodb/r/alter_missing_tablespace.result | 31 +-
.../suite/innodb/r/alter_partitioned_debug.result | 27 +
.../suite/innodb/r/alter_partitioned_xa.result | 18 +
.../suite/innodb/r/alter_rename_files.result | 20 +
mysql-test/suite/innodb/r/alter_table.result | 31 +
.../suite/innodb/r/alter_varchar_change.result | 470 +
mysql-test/suite/innodb/r/analyze_table.result | 25 +
.../suite/innodb/r/auto_increment_dup.result | 49 +-
mysql-test/suite/innodb/r/blob-crash.result | 149 +
mysql-test/suite/innodb/r/blob-update-debug.result | 4 +-
.../suite/innodb/r/check_ibd_filesize,32k.rdiff | 25 +
.../suite/innodb/r/check_ibd_filesize,4k.rdiff | 25 +
.../suite/innodb/r/check_ibd_filesize,64k.rdiff | 25 +
.../suite/innodb/r/check_ibd_filesize,8k.rdiff | 25 +
.../suite/innodb/r/check_ibd_filesize.result | 20 +
.../innodb/r/corrupted_during_recovery.result | 19 +
.../suite/innodb/r/create_isl_with_direct.result | 1 +
mysql-test/suite/innodb/r/create_select.result | 10 +
mysql-test/suite/innodb/r/data_types.result | 23 +-
.../r/default_row_format_compatibility.result | 2 +-
.../r/default_row_format_create,redundant.rdiff | 11 +
.../innodb/r/default_row_format_create.result | 22 +-
mysql-test/suite/innodb/r/doublewrite.result | 2 +-
.../suite/innodb/r/drop_table_background.result | 15 +
mysql-test/suite/innodb/r/foreign-keys.result | 169 +
mysql-test/suite/innodb/r/foreign_key.result | 222 +-
mysql-test/suite/innodb/r/ibuf_not_empty.result | 1 +
.../innodb/r/information_schema_grants.result | 304 +
mysql-test/suite/innodb/r/innochecksum.result | 5 -
mysql-test/suite/innodb/r/innodb-16k.result | 465 -
mysql-test/suite/innodb/r/innodb-32k-crash.result | 4 +
mysql-test/suite/innodb/r/innodb-32k.result | 120 -
mysql-test/suite/innodb/r/innodb-64k-crash.result | 328 +-
.../suite/innodb/r/innodb-alter-debug.result | 41 +-
.../suite/innodb/r/innodb-alter-nullable.result | 152 +-
.../suite/innodb/r/innodb-alter-tempfile.result | 15 +-
mysql-test/suite/innodb/r/innodb-alter.result | 183 +-
mysql-test/suite/innodb/r/innodb-autoinc.result | 258 +-
mysql-test/suite/innodb/r/innodb-blob.result | 2 +-
.../innodb/r/innodb-change-buffer-recovery.result | 36 +-
.../suite/innodb/r/innodb-fk-warnings.result | 20 +-
mysql-test/suite/innodb/r/innodb-fk.result | 4 +-
mysql-test/suite/innodb/r/innodb-index,debug.rdiff | 10 +
.../suite/innodb/r/innodb-index-online.result | 2 +-
mysql-test/suite/innodb/r/innodb-index.result | 81 +-
mysql-test/suite/innodb/r/innodb-lock.result | 47 +-
mysql-test/suite/innodb/r/innodb-mdev-7513.result | 1 -
mysql-test/suite/innodb/r/innodb-mdev7046.result | 4 +-
.../suite/innodb/r/innodb-online-alter-gis.result | 20 +-
.../r/innodb-page_compression_default.result | 1 -
.../innodb/r/innodb-page_compression_snappy.result | 1 -
mysql-test/suite/innodb/r/innodb-read-view.result | 222 +
.../suite/innodb/r/innodb-replace-debug.result | 4 +-
.../r/innodb-stats-initialize-failure.result | 3 +-
.../suite/innodb/r/innodb-system-table-view.result | 162 +
.../suite/innodb/r/innodb-table-online.result | 11 -
mysql-test/suite/innodb/r/innodb-truncate.result | 13 +
.../suite/innodb/r/innodb-update-insert.result | 4 +-
.../innodb/r/innodb-virtual-columns-debug.result | 18 +
.../suite/innodb/r/innodb-virtual-columns.result | 15 +
mysql-test/suite/innodb/r/innodb-wl5522-1.result | 2 +-
mysql-test/suite/innodb/r/innodb-wl5522.result | 280 +-
.../suite/innodb/r/innodb-wl5980-alter.result | 31 +
.../suite/innodb/r/innodb-wl5980-debug.result | 27 +
mysql-test/suite/innodb/r/innodb_28867993.result | 9 +
.../innodb/r/innodb_buffer_pool_dump_pct.result | 22 +
.../suite/innodb/r/innodb_bug11754376.result | 2 +
.../suite/innodb/r/innodb_bug14676111.result | 6 +-
.../suite/innodb/r/innodb_bug14704286.result | 65 -
.../suite/innodb/r/innodb_bug30113362.result | 119 +
mysql-test/suite/innodb/r/innodb_bug54044.result | 6 -
mysql-test/suite/innodb/r/innodb_bug56947.result | 2 +
mysql-test/suite/innodb/r/innodb_bug68148.result | 1 -
mysql-test/suite/innodb/r/innodb_bug84958.result | 87 +
.../innodb/r/innodb_bulk_create_index_debug.result | 229 +-
.../suite/innodb/r/innodb_corrupt_bit.result | 2 +-
.../suite/innodb/r/innodb_defragment_small.result | 21 +-
.../suite/innodb/r/innodb_force_recovery.result | 31 +-
.../innodb/r/innodb_max_recordsize_32k.result | 55 +-
.../innodb/r/innodb_max_recordsize_64k.result | 74 +-
mysql-test/suite/innodb/r/innodb_mysql.result | 43 +-
.../suite/innodb/r/innodb_query_cache.result | 39 +
.../innodb/r/innodb_skip_innodb_is_tables.result | 18 +-
.../suite/innodb/r/innodb_stats_persistent.result | 31 +-
.../innodb/r/innodb_sys_semaphore_waits.result | 3 +-
mysql-test/suite/innodb/r/innodb_wl6326.result | 371 +
mysql-test/suite/innodb/r/innodb_wl6326_big.result | 449 +
.../suite/innodb/r/innodb_zip_innochecksum.result | 91 -
.../suite/innodb/r/innodb_zip_innochecksum2.result | 160 -
.../suite/innodb/r/innodb_zip_innochecksum3.result | 227 -
.../r/leaf_page_corrupted_during_recovery.result | 20 +
mysql-test/suite/innodb/r/log_alter_table.result | 8 +-
mysql-test/suite/innodb/r/log_file_name.result | 11 +-
mysql-test/suite/innodb/r/log_file_size.result | 2 +-
.../r/max_record_size,16k,compact,innodb.rdiff | 80 +
.../r/max_record_size,16k,dynamic,innodb.rdiff | 224 +
.../r/max_record_size,16k,innodb,redundant.rdiff | 80 +
.../r/max_record_size,32k,compact,innodb.rdiff | 121 +
.../r/max_record_size,32k,dynamic,innodb.rdiff | 366 +
.../r/max_record_size,32k,innodb,redundant.rdiff | 121 +
.../r/max_record_size,4k,compact,innodb.rdiff | 62 +
.../r/max_record_size,4k,dynamic,innodb.rdiff | 128 +
.../r/max_record_size,4k,innodb,redundant.rdiff | 62 +
.../r/max_record_size,64k,compact,innodb.rdiff | 203 +
.../r/max_record_size,64k,dynamic,innodb.rdiff | 501 +
.../r/max_record_size,64k,innodb,redundant.rdiff | 121 +
.../r/max_record_size,8k,compact,innodb.rdiff | 35 +
.../r/max_record_size,8k,dynamic,innodb.rdiff | 134 +
mysql-test/suite/innodb/r/max_record_size.result | 47 +
.../suite/innodb/r/missing_tablespaces.result | 11 +
mysql-test/suite/innodb/r/monitor.result | 30 +-
.../suite/innodb/r/page_id_innochecksum.result | 6 +
mysql-test/suite/innodb/r/page_reorganize.result | 27 +
mysql-test/suite/innodb/r/purge.result | 121 +
mysql-test/suite/innodb/r/recovery_shutdown.result | 9 +-
.../innodb/r/redo_log_during_checkpoint.result | 6 +-
mysql-test/suite/innodb/r/rename_table.result | 6 +
.../suite/innodb/r/rename_table_debug.result | 13 +
mysql-test/suite/innodb/r/restart.result | 1 -
.../suite/innodb/r/row_format_redundant.result | 3 +-
.../innodb/r/row_size_error_log_warnings_3.result | 45 +
mysql-test/suite/innodb/r/stat_tables.result | 15 +
mysql-test/suite/innodb/r/stored_fk.result | 74 +
mysql-test/suite/innodb/r/strict_mode.result | 157 +-
.../suite/innodb/r/table_flags,32k,debug.rdiff | 134 +
.../suite/innodb/r/table_flags,32k,release.rdiff | 105 +
mysql-test/suite/innodb/r/table_flags,32k.rdiff | 105 -
.../suite/innodb/r/table_flags,4k,debug.rdiff | 133 +
.../suite/innodb/r/table_flags,4k,release.rdiff | 92 +
mysql-test/suite/innodb/r/table_flags,4k.rdiff | 92 -
.../suite/innodb/r/table_flags,64k,debug.rdiff | 134 +
.../suite/innodb/r/table_flags,64k,release.rdiff | 105 +
mysql-test/suite/innodb/r/table_flags,64k.rdiff | 105 -
.../suite/innodb/r/table_flags,8k,debug.rdiff | 133 +
.../suite/innodb/r/table_flags,8k,release.rdiff | 92 +
mysql-test/suite/innodb/r/table_flags,8k.rdiff | 92 -
mysql-test/suite/innodb/r/table_flags,debug.rdiff | 133 +
mysql-test/suite/innodb/r/table_flags.result | 5 +
mysql-test/suite/innodb/r/temporary_table.result | 25 +
.../innodb/r/temporary_table_optimization.result | 18 +-
mysql-test/suite/innodb/r/truncate.result | 41 +
mysql-test/suite/innodb/r/truncate_crash.result | 14 +
mysql-test/suite/innodb/r/truncate_foreign.result | 58 +
mysql-test/suite/innodb/r/truncate_inject.result | 28 +-
mysql-test/suite/innodb/r/truncate_missing.result | 17 +
mysql-test/suite/innodb/r/trx_id_future.result | 13 +
mysql-test/suite/innodb/r/undo_log.result | 4 +
mysql-test/suite/innodb/r/undo_truncate.result | 61 +
.../suite/innodb/r/undo_truncate_recover.result | 16 +
mysql-test/suite/innodb/r/xa_debug.result | 362 +
mysql-test/suite/innodb/t/add_constraint.test | 1 -
mysql-test/suite/innodb/t/alter_candidate_key.test | 72 +
mysql-test/suite/innodb/t/alter_copy.opt | 1 +
mysql-test/suite/innodb/t/alter_copy.test | 21 +-
mysql-test/suite/innodb/t/alter_crash.opt | 1 +
mysql-test/suite/innodb/t/alter_crash.test | 100 +-
mysql-test/suite/innodb/t/alter_foreign_crash.test | 37 +
.../suite/innodb/t/alter_inplace_perfschema.opt | 2 +
.../suite/innodb/t/alter_inplace_perfschema.test | 42 +
mysql-test/suite/innodb/t/alter_kill-master.opt | 1 +
mysql-test/suite/innodb/t/alter_kill.test | 153 +
mysql-test/suite/innodb/t/alter_large_dml.opt | 2 +
mysql-test/suite/innodb/t/alter_large_dml.test | 53 +
.../suite/innodb/t/alter_missing_tablespace.test | 29 +-
.../suite/innodb/t/alter_partitioned_debug.test | 34 +
.../suite/innodb/t/alter_partitioned_xa.test | 31 +
mysql-test/suite/innodb/t/alter_rename_files.test | 31 +
mysql-test/suite/innodb/t/alter_table.test | 37 +
.../suite/innodb/t/alter_varchar_change.test | 343 +
mysql-test/suite/innodb/t/analyze_table.test | 42 +
mysql-test/suite/innodb/t/auto_increment_dup.test | 36 +-
mysql-test/suite/innodb/t/blob-crash.test | 208 +
mysql-test/suite/innodb/t/blob-update-debug.test | 4 +-
mysql-test/suite/innodb/t/check_ibd_filesize.test | 53 +
.../suite/innodb/t/corrupted_during_recovery.opt | 2 +
.../suite/innodb/t/corrupted_during_recovery.test | 64 +
mysql-test/suite/innodb/t/create_select.test | 28 +
mysql-test/suite/innodb/t/data_types.test | 22 +-
.../suite/innodb/t/default_row_format_create.test | 20 +-
mysql-test/suite/innodb/t/doublewrite.test | 6 +-
.../suite/innodb/t/drop_table_background.opt | 1 +
.../suite/innodb/t/drop_table_background.test | 20 +-
mysql-test/suite/innodb/t/foreign-keys.test | 180 +
mysql-test/suite/innodb/t/foreign_key.test | 228 +-
mysql-test/suite/innodb/t/ibuf_not_empty.test | 56 +-
.../suite/innodb/t/information_schema_grants.opt | 33 +
.../suite/innodb/t/information_schema_grants.test | 311 +
mysql-test/suite/innodb/t/innochecksum.test | 32 -
mysql-test/suite/innodb/t/innodb-16k.test | 478 -
mysql-test/suite/innodb/t/innodb-32k-crash.test | 2 +
mysql-test/suite/innodb/t/innodb-32k.test | 135 -
mysql-test/suite/innodb/t/innodb-64k-crash.test | 85 +-
mysql-test/suite/innodb/t/innodb-alter-debug.test | 57 +-
.../suite/innodb/t/innodb-alter-nullable.test | 101 +-
mysql-test/suite/innodb/t/innodb-alter-table.test | 2 +
.../suite/innodb/t/innodb-alter-tempfile.test | 40 +-
mysql-test/suite/innodb/t/innodb-alter.test | 140 +-
mysql-test/suite/innodb/t/innodb-autoinc.test | 72 +-
mysql-test/suite/innodb/t/innodb-blob.test | 4 +-
.../t/innodb-change-buffer-recovery-master.opt | 1 -
.../innodb/t/innodb-change-buffer-recovery.test | 43 +-
.../suite/innodb/t/innodb-corrupted-table.test | 1 +
mysql-test/suite/innodb/t/innodb-fk-warnings.test | 18 -
mysql-test/suite/innodb/t/innodb-fk.test | 2 -
mysql-test/suite/innodb/t/innodb-fkcheck.test | 1 +
mysql-test/suite/innodb/t/innodb-get-fk.test | 5 +-
mysql-test/suite/innodb/t/innodb-index-debug.test | 2 +
mysql-test/suite/innodb/t/innodb-index-online.test | 1 -
mysql-test/suite/innodb/t/innodb-index.test | 86 +-
mysql-test/suite/innodb/t/innodb-lock.test | 74 +-
mysql-test/suite/innodb/t/innodb-mdev-7513.test | 1 -
mysql-test/suite/innodb/t/innodb-mdev7046.test | 20 +-
.../suite/innodb/t/innodb-online-alter-gis.test | 31 +
.../innodb/t/innodb-page_compression_default.test | 2 -
.../innodb/t/innodb-page_compression_snappy.test | 2 -
.../innodb/t/innodb-page_compression_tables.test | 4 -
.../innodb/t/innodb-page_compression_zip.test | 2 +
mysql-test/suite/innodb/t/innodb-read-view.test | 208 +
.../suite/innodb/t/innodb-replace-debug.test | 4 +-
.../innodb/t/innodb-stats-initialize-failure.test | 5 +-
.../suite/innodb/t/innodb-system-table-view.opt | 12 +
.../suite/innodb/t/innodb-system-table-view.test | 136 +
mysql-test/suite/innodb/t/innodb-table-online.test | 4 -
mysql-test/suite/innodb/t/innodb-truncate.test | 19 +
.../innodb/t/innodb-virtual-columns-debug.test | 27 +
.../suite/innodb/t/innodb-virtual-columns.test | 11 +
mysql-test/suite/innodb/t/innodb-wl5522-debug.test | 3 +-
mysql-test/suite/innodb/t/innodb-wl5522.test | 254 +-
mysql-test/suite/innodb/t/innodb-wl5980-debug.test | 51 +
mysql-test/suite/innodb/t/innodb.test | 2 +-
mysql-test/suite/innodb/t/innodb_28867993.test | 12 +
.../innodb/t/innodb_buffer_pool_dump_pct.test | 99 +
mysql-test/suite/innodb/t/innodb_bug11754376.test | 3 +-
mysql-test/suite/innodb/t/innodb_bug14704286.test | 95 -
mysql-test/suite/innodb/t/innodb_bug27216817.test | 28 -
mysql-test/suite/innodb/t/innodb_bug30113362.opt | 1 +
mysql-test/suite/innodb/t/innodb_bug30113362.test | 236 +
mysql-test/suite/innodb/t/innodb_bug54044.test | 10 -
mysql-test/suite/innodb/t/innodb_bug56947.test | 2 +
mysql-test/suite/innodb/t/innodb_bug68148.test | 2 -
mysql-test/suite/innodb/t/innodb_bug84958.test | 93 +
.../innodb/t/innodb_bulk_create_index_flush.opt | 1 +
mysql-test/suite/innodb/t/innodb_corrupt_bit.test | 2 +-
.../suite/innodb/t/innodb_defragment_small.test | 23 +-
.../suite/innodb/t/innodb_force_recovery.test | 24 +-
.../suite/innodb/t/innodb_max_recordsize_32k.test | 49 -
.../suite/innodb/t/innodb_max_recordsize_64k.test | 72 -
mysql-test/suite/innodb/t/innodb_mysql.test | 46 +-
mysql-test/suite/innodb/t/innodb_query_cache.test | 47 +
.../suite/innodb/t/innodb_stats_persistent.test | 30 +-
.../suite/innodb/t/innodb_sys_semaphore_waits.test | 3 +-
mysql-test/suite/innodb/t/innodb_wl6326.opt | 1 +
mysql-test/suite/innodb/t/innodb_wl6326.test | 506 +
mysql-test/suite/innodb/t/innodb_wl6326_big.test | 716 +
.../suite/innodb/t/innodb_zip_innochecksum.opt | 4 -
.../suite/innodb/t/innodb_zip_innochecksum.test | 239 -
.../suite/innodb/t/innodb_zip_innochecksum2.opt | 4 -
.../suite/innodb/t/innodb_zip_innochecksum2.test | 118 -
.../suite/innodb/t/innodb_zip_innochecksum3.opt | 2 -
.../suite/innodb/t/innodb_zip_innochecksum3.test | 406 -
.../t/leaf_page_corrupted_during_recovery.opt | 2 +
.../t/leaf_page_corrupted_during_recovery.test | 57 +
mysql-test/suite/innodb/t/log_alter_table.opt | 1 +
mysql-test/suite/innodb/t/log_alter_table.test | 8 +-
mysql-test/suite/innodb/t/log_file_name.test | 14 +-
mysql-test/suite/innodb/t/log_file_name_debug.test | 4 +-
mysql-test/suite/innodb/t/log_file_size.test | 4 +-
mysql-test/suite/innodb/t/max_record_size.test | 1422 +
mysql-test/suite/innodb/t/mdev-15707.test | 2 +
mysql-test/suite/innodb/t/missing_tablespaces.test | 36 +
mysql-test/suite/innodb/t/monitor.test | 18 +-
.../suite/innodb/t/page_id_innochecksum.test | 53 +
mysql-test/suite/innodb/t/page_reorganize.test | 56 +
mysql-test/suite/innodb/t/purge.test | 117 +
mysql-test/suite/innodb/t/recovery_shutdown.test | 24 +
.../suite/innodb/t/redo_log_during_checkpoint.test | 6 +-
mysql-test/suite/innodb/t/rename_table.test | 14 +
mysql-test/suite/innodb/t/rename_table_debug.opt | 1 +
mysql-test/suite/innodb/t/rename_table_debug.test | 22 +
mysql-test/suite/innodb/t/restart.test | 1 -
.../innodb/t/row_size_error_log_warnings_3.test | 32 +
mysql-test/suite/innodb/t/stat_tables.test | 17 +
mysql-test/suite/innodb/t/stored_fk.test | 94 +
mysql-test/suite/innodb/t/strict_mode.test | 157 +-
.../innodb/t/table_definition_cache_debug.test | 2 +
mysql-test/suite/innodb/t/table_flags.test | 10 +
mysql-test/suite/innodb/t/temporary_table.test | 29 +
.../innodb/t/temporary_table_optimization.test | 8 +-
mysql-test/suite/innodb/t/truncate.opt | 1 +
mysql-test/suite/innodb/t/truncate.test | 52 +
mysql-test/suite/innodb/t/truncate_crash.opt | 1 +
mysql-test/suite/innodb/t/truncate_crash.test | 23 +
mysql-test/suite/innodb/t/truncate_debug.opt | 1 +
mysql-test/suite/innodb/t/truncate_foreign.opt | 1 +
mysql-test/suite/innodb/t/truncate_foreign.test | 68 +
mysql-test/suite/innodb/t/truncate_inject.opt | 1 +
mysql-test/suite/innodb/t/truncate_inject.test | 28 +-
mysql-test/suite/innodb/t/truncate_missing.opt | 1 +
mysql-test/suite/innodb/t/truncate_missing.test | 22 +
mysql-test/suite/innodb/t/truncate_purge_debug.opt | 1 +
mysql-test/suite/innodb/t/truncate_restart.opt | 1 +
mysql-test/suite/innodb/t/trx_id_future.test | 58 +
mysql-test/suite/innodb/t/undo_log.test | 3 +
mysql-test/suite/innodb/t/undo_truncate.test | 128 +
.../suite/innodb/t/undo_truncate_recover.opt | 1 +
.../suite/innodb/t/undo_truncate_recover.test | 46 +
mysql-test/suite/innodb/t/update_time.test | 2 +
mysql-test/suite/innodb/t/xa_debug.test | 46 +
mysql-test/suite/innodb_fts/r/basic.result | 300 +
.../suite/innodb_fts/r/concurrent_insert.result | 24 +
.../suite/innodb_fts/r/crash_recovery.result | 45 +
mysql-test/suite/innodb_fts/r/create.result | 20 +-
.../suite/innodb_fts/r/fts_kill_query.result | 9 +
mysql-test/suite/innodb_fts/r/fulltext2.result | 30 +
mysql-test/suite/innodb_fts/r/fulltext3.result | 9 +
.../suite/innodb_fts/r/innodb-fts-basic.result | 259 -
.../suite/innodb_fts/r/innodb_ft_aux_table.result | 121 +
.../suite/innodb_fts/r/innodb_fts_misc.result | 33 +-
mysql-test/suite/innodb_fts/r/sync_block.result | 4 +-
mysql-test/suite/innodb_fts/r/sync_ddl.result | 117 +
mysql-test/suite/innodb_fts/r/truncate.result | 31 -
mysql-test/suite/innodb_fts/t/basic.test | 265 +
.../suite/innodb_fts/t/concurrent_insert.test | 32 +
mysql-test/suite/innodb_fts/t/crash_recovery.test | 56 +
mysql-test/suite/innodb_fts/t/create.test | 16 +
mysql-test/suite/innodb_fts/t/fts_kill_query.test | 30 +
mysql-test/suite/innodb_fts/t/fulltext2.test | 31 +-
mysql-test/suite/innodb_fts/t/fulltext3.test | 9 +
.../suite/innodb_fts/t/innodb-fts-basic.test | 228 -
.../suite/innodb_fts/t/innodb_ft_aux_table.opt | 6 +
.../suite/innodb_fts/t/innodb_ft_aux_table.test | 43 +
mysql-test/suite/innodb_fts/t/innodb_fts_misc.test | 33 +-
mysql-test/suite/innodb_fts/t/sync_block.test | 4 +-
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 -
mysql-test/suite/innodb_gis/r/1.result | 4 +-
.../suite/innodb_gis/r/create_spatial_index.result | 2 +-
mysql-test/suite/innodb_gis/r/gis.result | 4 +-
mysql-test/suite/innodb_gis/r/point_basic.result | 14 +-
.../suite/innodb_gis/r/rtree_add_index.result | 13 +
.../suite/innodb_gis/r/rtree_compress2.result | 2 +
.../innodb_gis/r/rtree_concurrent_srch.result | 4 +-
mysql-test/suite/innodb_gis/r/rtree_debug.result | 2 +-
.../suite/innodb_gis/t/create_spatial_index.test | 2 +-
mysql-test/suite/innodb_gis/t/point_basic.test | 6 -
mysql-test/suite/innodb_gis/t/rtree_add_index.test | 20 +
mysql-test/suite/innodb_gis/t/rtree_compress2.test | 2 +
.../suite/innodb_gis/t/rtree_concurrent_srch.test | 2 +-
mysql-test/suite/innodb_gis/t/rtree_debug.test | 2 +-
mysql-test/suite/innodb_gis/t/rtree_rollback1.test | 3 -
mysql-test/suite/innodb_gis/t/rtree_rollback2.test | 3 -
mysql-test/suite/innodb_gis/t/update_root.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 -
mysql-test/suite/innodb_zip/r/16k.result | 717 -
mysql-test/suite/innodb_zip/r/4k.result | 424 -
mysql-test/suite/innodb_zip/r/8k.result | 454 -
mysql-test/suite/innodb_zip/r/bug53591.result | 1 +
mysql-test/suite/innodb_zip/r/cmp_per_index.result | 31 +-
.../suite/innodb_zip/r/innochecksum_2.result | 2 +
mysql-test/suite/innodb_zip/r/page_size,4k.rdiff | 487 +
mysql-test/suite/innodb_zip/r/page_size,8k.rdiff | 425 +
mysql-test/suite/innodb_zip/r/page_size.result | 609 +
.../innodb_zip/r/prefix_index_liftedlimit.result | 1 +
mysql-test/suite/innodb_zip/r/restart.result | 32 +-
mysql-test/suite/innodb_zip/r/wl5522_zip.result | 15 +-
mysql-test/suite/innodb_zip/t/16k-master.opt | 3 -
mysql-test/suite/innodb_zip/t/16k.test | 721 -
mysql-test/suite/innodb_zip/t/4k-master.opt | 3 -
mysql-test/suite/innodb_zip/t/4k.test | 442 -
mysql-test/suite/innodb_zip/t/8k-master.opt | 3 -
mysql-test/suite/innodb_zip/t/8k.test | 470 -
mysql-test/suite/innodb_zip/t/bug53591.test | 2 +
mysql-test/suite/innodb_zip/t/cmp_per_index.test | 26 +-
mysql-test/suite/innodb_zip/t/innochecksum.test | 4 +
mysql-test/suite/innodb_zip/t/page_size.opt | 3 +
mysql-test/suite/innodb_zip/t/page_size.test | 881 +
.../innodb_zip/t/prefix_index_liftedlimit.test | 2 +
mysql-test/suite/innodb_zip/t/restart.opt | 1 +
.../suite/innodb_zip/t/wl5522_debug_zip.test | 3 +-
mysql-test/suite/innodb_zip/t/wl6501_1.opt | 1 +
mysql-test/suite/innodb_zip/t/wl6501_crash_3.opt | 1 +
mysql-test/suite/innodb_zip/t/wl6501_crash_4.opt | 1 +
mysql-test/suite/innodb_zip/t/wl6501_crash_5.opt | 1 +
mysql-test/suite/innodb_zip/t/wl6501_scale_1.opt | 1 +
mysql-test/suite/json/r/json_no_table.result | 4 +-
mysql-test/suite/maria/alter.result | 73 +
mysql-test/suite/maria/alter.test | 67 +-
mysql-test/suite/maria/aria_pack_mdev14183.result | 22 +
mysql-test/suite/maria/aria_pack_mdev14183.test | 23 +
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/fulltext2.result | 86 +
mysql-test/suite/maria/fulltext2.test | 77 +
mysql-test/suite/maria/icp.result | 4 +-
mysql-test/suite/maria/icp.test | 1 +
mysql-test/suite/maria/kill.result | 13 +
mysql-test/suite/maria/kill.test | 14 +
mysql-test/suite/maria/lock.result | 44 +
mysql-test/suite/maria/lock.test | 60 +
mysql-test/suite/maria/maria-autoinc.result | 120 +
mysql-test/suite/maria/maria-autoinc.test | 8 +
mysql-test/suite/maria/maria-big.test | 2 +-
mysql-test/suite/maria/maria-gis-recovery.test | 1 +
mysql-test/suite/maria/maria-no-logging.test | 1 +
mysql-test/suite/maria/maria-recover.test | 1 +
mysql-test/suite/maria/maria-recovery.result | 38 +
mysql-test/suite/maria/maria-recovery.test | 31 +
mysql-test/suite/maria/maria.result | 33 +
mysql-test/suite/maria/maria.test | 34 +
mysql-test/suite/maria/maria3.result | 43 +-
mysql-test/suite/maria/maria3.test | 5 +-
mysql-test/suite/maria/temporary.result | 23 +
mysql-test/suite/maria/temporary.test | 20 +
.../suite/mariabackup/absolute_ibdata_paths.opt | 3 +-
.../suite/mariabackup/absolute_ibdata_paths.test | 26 +-
.../suite/mariabackup/apply-log-only-incr.test | 4 +-
mysql-test/suite/mariabackup/backup_grants.result | 6 +
mysql-test/suite/mariabackup/backup_grants.test | 31 +
mysql-test/suite/mariabackup/backup_ssl.result | 9 +
mysql-test/suite/mariabackup/backup_ssl.test | 16 +
mysql-test/suite/mariabackup/big_innodb_log.result | 30 +
mysql-test/suite/mariabackup/big_innodb_log.test | 88 +
.../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 | 18 +
.../mariabackup/drop_table_during_backup.test | 33 +
.../mariabackup/encrypted_page_compressed.opt | 6 +
.../mariabackup/encrypted_page_compressed.result | 6 +
.../mariabackup/encrypted_page_compressed.test | 47 +
.../mariabackup/encrypted_page_corruption.opt | 6 +
.../mariabackup/encrypted_page_corruption.result | 7 +
.../mariabackup/encrypted_page_corruption.test | 69 +
.../suite/mariabackup/extra_lsndir_stream.result | 2 +
.../suite/mariabackup/extra_lsndir_stream.test | 7 +
mysql-test/suite/mariabackup/huge_lsn.opt | 4 +
.../include/have_file_key_management.inc | 4 -
.../suite/mariabackup/include/have_rocksdb.inc | 4 +
.../suite/mariabackup/incremental_backup.result | 4 +
.../suite/mariabackup/incremental_backup.test | 63 +-
.../incremental_ddl_before_backup.result | 32 +
.../mariabackup/incremental_ddl_before_backup.test | 50 +
.../incremental_ddl_during_backup.result | 22 +
.../mariabackup/incremental_ddl_during_backup.test | 52 +
.../suite/mariabackup/incremental_encrypted.result | 1 +
.../suite/mariabackup/incremental_encrypted.test | 1 +
.../suite/mariabackup/incremental_rocksdb.opt | 1 +
.../suite/mariabackup/incremental_rocksdb.result | 19 +
.../suite/mariabackup/incremental_rocksdb.test | 38 +
.../mariabackup/innodb_log_optimize_ddl.result | 37 +
.../suite/mariabackup/innodb_log_optimize_ddl.test | 47 +
.../mariabackup/innodb_redo_log_overwrite.opt | 1 +
.../mariabackup/innodb_redo_log_overwrite.result | 2 +
.../mariabackup/innodb_redo_log_overwrite.test | 20 +
.../suite/mariabackup/lock_ddl_per_table.opt | 1 +
.../suite/mariabackup/lock_ddl_per_table.test | 1 +
mysql-test/suite/mariabackup/mdev-14447.result | 1 +
mysql-test/suite/mariabackup/mdev-14447.test | 20 +-
mysql-test/suite/mariabackup/mdev-18438.result | 1 +
mysql-test/suite/mariabackup/mdev-18438.test | 11 +
mysql-test/suite/mariabackup/missing_ibd.result | 2 +-
mysql-test/suite/mariabackup/missing_ibd.test | 3 +-
.../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 +
.../mariabackup/page_compression_level.result | 14 +
.../suite/mariabackup/page_compression_level.test | 31 +
mysql-test/suite/mariabackup/partial.test | 18 +-
mysql-test/suite/mariabackup/partition_datadir.opt | 1 -
.../suite/mariabackup/partition_datadir.test | 1 +
mysql-test/suite/mariabackup/partition_partial.opt | 1 +
.../suite/mariabackup/partition_partial.result | 31 +
.../suite/mariabackup/partition_partial.test | 44 +
.../recreate_table_during_backup.result | 23 +
.../mariabackup/recreate_table_during_backup.test | 37 +
.../suite/mariabackup/rename_during_backup.result | 62 +
.../suite/mariabackup/rename_during_backup.test | 93 +
.../mariabackup/rename_during_mdl_lock.result | 11 +
.../suite/mariabackup/rename_during_mdl_lock.test | 21 +
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 +-
mysql-test/suite/mariabackup/suite.pm | 19 +-
.../suite/mariabackup/truncate_during_backup.opt | 1 +
.../mariabackup/truncate_during_backup.result | 4 +
.../suite/mariabackup/truncate_during_backup.test | 18 +
mysql-test/suite/mariabackup/undo_space_id.opt | 1 +
.../mariabackup/unencrypted_page_compressed.result | 8 +
.../mariabackup/unencrypted_page_compressed.test | 49 +
.../suite/mariabackup/unsupported_redo.result | 5 +-
mysql-test/suite/mariabackup/unsupported_redo.test | 36 +-
.../suite/mariabackup/xb_aws_key_management.result | 2 +
mysql-test/suite/mariabackup/xb_rocksdb.opt | 1 +
mysql-test/suite/mariabackup/xb_rocksdb.result | 22 +
mysql-test/suite/mariabackup/xb_rocksdb.test | 52 +
.../suite/mariabackup/xb_rocksdb_datadir.opt | 1 +
.../suite/mariabackup/xb_rocksdb_datadir.result | 9 +
.../suite/mariabackup/xb_rocksdb_datadir.test | 34 +
.../suite/mariabackup/xb_rocksdb_datadir_debug.opt | 1 +
.../mariabackup/xb_rocksdb_datadir_debug.result | 9 +
.../mariabackup/xb_rocksdb_datadir_debug.test | 13 +
mysql-test/suite/multi_source/mdev-8874.cnf | 25 +
mysql-test/suite/multi_source/mdev-8874.result | 126 +
mysql-test/suite/multi_source/mdev-8874.test | 141 +
.../suite/optimizer_unfixed_bugs/r/bug36981.result | 2 +
.../suite/optimizer_unfixed_bugs/r/bug40992.result | 2 +
.../suite/optimizer_unfixed_bugs/r/bug41996.result | 2 +
.../suite/optimizer_unfixed_bugs/r/bug42991.result | 2 +
.../suite/optimizer_unfixed_bugs/r/bug43249.result | 2 +
.../suite/optimizer_unfixed_bugs/r/bug43360.result | 2 +
.../suite/optimizer_unfixed_bugs/r/bug43448.result | 2 +
.../suite/optimizer_unfixed_bugs/r/bug43617.result | 2 +
.../suite/optimizer_unfixed_bugs/t/bug36981.test | 2 +
.../suite/optimizer_unfixed_bugs/t/bug40992.test | 2 +
.../suite/optimizer_unfixed_bugs/t/bug41996.test | 2 +
.../suite/optimizer_unfixed_bugs/t/bug42991.test | 2 +
.../suite/optimizer_unfixed_bugs/t/bug43249.test | 2 +
.../suite/optimizer_unfixed_bugs/t/bug43360.test | 2 +
.../suite/optimizer_unfixed_bugs/t/bug43448.test | 2 +
.../suite/optimizer_unfixed_bugs/t/bug43617.test | 3 +-
mysql-test/suite/parts/inc/part_alter_values.inc | 2 +-
mysql-test/suite/parts/inc/part_exch_qa_4.inc | 2 +
mysql-test/suite/parts/inc/part_exch_qa_8.inc | 2 +
mysql-test/suite/parts/inc/partition_crash_add.inc | 21 +-
.../suite/parts/inc/partition_crash_change.inc | 25 +-
.../suite/parts/inc/partition_crash_drop.inc | 19 +-
.../suite/parts/inc/partition_crash_exchange.inc | 19 +-
mysql-test/suite/parts/inc/partition_fail_add.inc | 21 +-
.../suite/parts/inc/partition_fail_change.inc | 25 +-
mysql-test/suite/parts/inc/partition_fail_drop.inc | 19 +-
.../suite/parts/inc/partition_fail_exchange.inc | 19 +-
mysql-test/suite/parts/inc/partition_mgm.inc | 1 +
.../parts/r/alter_data_directory_innodb.result | 68 +
.../suite/parts/r/partition_alter_innodb.result | 2 +-
.../suite/parts/r/partition_alter_maria.result | 2 +-
.../suite/parts/r/partition_alter_myisam.result | 2 +-
.../parts/r/partition_auto_increment_max.result | 7 +
.../parts/r/partition_basic_symlink_innodb.result | 3 +
mysql-test/suite/parts/r/partition_debug.result | 87 +-
.../suite/parts/r/partition_debug_innodb.result | 431 +-
.../suite/parts/r/partition_debug_myisam.result | 348 +-
.../parts/r/partition_debug_sync_innodb.result | 3 +
mysql-test/suite/parts/r/quoting.result | 93 -
.../parts/r/reorganize_partition_innodb.result | 156 +
mysql-test/suite/parts/r/show_create.result | 113 +
mysql-test/suite/parts/r/truncate_locked.result | 7 +
mysql-test/suite/parts/r/update_and_cache.result | 7 +
.../suite/parts/t/alter_data_directory_innodb.test | 46 +
.../parts/t/partition_auto_increment_max.test | 12 +
mysql-test/suite/parts/t/partition_debug.test | 7 +-
.../suite/parts/t/partition_debug_innodb.test | 7 +-
.../suite/parts/t/partition_debug_myisam.test | 4 -
mysql-test/suite/parts/t/quoting.test | 32 -
.../suite/parts/t/reorganize_partition_innodb.test | 103 +
mysql-test/suite/parts/t/show_create.test | 52 +
mysql-test/suite/parts/t/truncate_locked.test | 10 +
mysql-test/suite/parts/t/update_and_cache.test | 12 +
.../perfschema/include/hostcache_set_state.inc | 9 +-
.../suite/perfschema/include/stage_setup.inc | 4 +-
.../perfschema/r/dml_setup_instruments.result | 4 +-
.../r/hostcache_ipv4_addrinfo_again_allow.result | 15 +-
.../r/hostcache_ipv4_addrinfo_again_deny.result | 15 +-
.../r/hostcache_ipv4_addrinfo_bad_allow.result | 15 +-
.../r/hostcache_ipv4_addrinfo_bad_deny.result | 15 +-
.../r/hostcache_ipv4_addrinfo_good_allow.result | 15 +-
.../r/hostcache_ipv4_addrinfo_good_deny.result | 15 +-
.../r/hostcache_ipv4_addrinfo_noname_allow.result | 15 +-
.../r/hostcache_ipv4_addrinfo_noname_deny.result | 15 +-
.../perfschema/r/hostcache_ipv4_auth_plugin.result | 15 +-
.../perfschema/r/hostcache_ipv4_blocked.result | 15 +-
.../perfschema/r/hostcache_ipv4_format.result | 15 +-
.../perfschema/r/hostcache_ipv4_max_con.result | 15 +-
.../r/hostcache_ipv4_nameinfo_again_allow.result | 15 +-
.../r/hostcache_ipv4_nameinfo_again_deny.result | 15 +-
.../r/hostcache_ipv4_nameinfo_noname_allow.result | 15 +-
.../r/hostcache_ipv4_nameinfo_noname_deny.result | 15 +-
.../perfschema/r/hostcache_ipv4_passwd.result | 15 +-
.../suite/perfschema/r/hostcache_ipv4_ssl.result | 15 +-
.../r/hostcache_ipv6_addrinfo_again_allow.result | 15 +-
.../r/hostcache_ipv6_addrinfo_again_deny.result | 15 +-
.../r/hostcache_ipv6_addrinfo_bad_allow.result | 15 +-
.../r/hostcache_ipv6_addrinfo_bad_deny.result | 15 +-
.../r/hostcache_ipv6_addrinfo_good_allow.result | 15 +-
.../r/hostcache_ipv6_addrinfo_good_deny.result | 15 +-
.../r/hostcache_ipv6_addrinfo_noname_allow.result | 15 +-
.../r/hostcache_ipv6_addrinfo_noname_deny.result | 15 +-
.../perfschema/r/hostcache_ipv6_auth_plugin.result | 15 +-
.../perfschema/r/hostcache_ipv6_blocked.result | 15 +-
.../perfschema/r/hostcache_ipv6_max_con.result | 19 +-
.../r/hostcache_ipv6_nameinfo_again_allow.result | 15 +-
.../r/hostcache_ipv6_nameinfo_again_deny.result | 15 +-
.../r/hostcache_ipv6_nameinfo_noname_allow.result | 15 +-
.../r/hostcache_ipv6_nameinfo_noname_deny.result | 15 +-
.../perfschema/r/hostcache_ipv6_passwd.result | 15 +-
.../suite/perfschema/r/hostcache_ipv6_ssl.result | 15 +-
.../suite/perfschema/r/hostcache_peer_addr.result | 15 +-
mysql-test/suite/perfschema/r/misc.result | 16 +
mysql-test/suite/perfschema/r/partition.result | 10 +
.../suite/perfschema/r/pfs_upgrade_event.result | 2 +
mysql-test/suite/perfschema/r/query_cache.result | 3 +-
.../suite/perfschema/r/socket_connect.result | 13 -
.../suite/perfschema/r/stage_mdl_global.result | 1 -
.../suite/perfschema/t/ddl_esms_by_digest.test | 15 +-
.../suite/perfschema/t/dml_esms_by_digest.test | 15 +-
.../suite/perfschema/t/dml_setup_instruments.test | 5 +-
.../t/hostcache_ipv4_addrinfo_again_allow.test | 5 +-
.../t/hostcache_ipv4_addrinfo_again_deny.test | 4 +-
.../t/hostcache_ipv4_addrinfo_bad_allow.test | 4 +-
.../t/hostcache_ipv4_addrinfo_bad_deny.test | 4 +-
.../t/hostcache_ipv4_addrinfo_good_allow.test | 4 +-
.../t/hostcache_ipv4_addrinfo_good_deny.test | 4 +-
.../t/hostcache_ipv4_addrinfo_noname_allow.test | 4 +-
.../t/hostcache_ipv4_addrinfo_noname_deny.test | 4 +-
.../perfschema/t/hostcache_ipv4_auth_plugin.test | 4 +-
.../suite/perfschema/t/hostcache_ipv4_blocked.test | 4 +-
.../suite/perfschema/t/hostcache_ipv4_format.test | 4 +-
.../suite/perfschema/t/hostcache_ipv4_max_con.test | 4 +-
.../t/hostcache_ipv4_nameinfo_again_allow.test | 4 +-
.../t/hostcache_ipv4_nameinfo_again_deny.test | 4 +-
.../t/hostcache_ipv4_nameinfo_noname_allow.test | 4 +-
.../t/hostcache_ipv4_nameinfo_noname_deny.test | 4 +-
.../suite/perfschema/t/hostcache_ipv4_passwd.test | 4 +-
.../suite/perfschema/t/hostcache_ipv4_ssl.test | 4 +-
.../hostcache_ipv6_addrinfo_again_allow-master.opt | 1 +
.../t/hostcache_ipv6_addrinfo_again_allow.test | 4 +-
.../hostcache_ipv6_addrinfo_again_deny-master.opt | 1 +
.../t/hostcache_ipv6_addrinfo_again_deny.test | 4 +-
.../t/hostcache_ipv6_addrinfo_bad_allow-master.opt | 1 +
.../t/hostcache_ipv6_addrinfo_bad_allow.test | 4 +-
.../t/hostcache_ipv6_addrinfo_bad_deny-master.opt | 1 +
.../t/hostcache_ipv6_addrinfo_bad_deny.test | 4 +-
.../hostcache_ipv6_addrinfo_good_allow-master.opt | 1 +
.../t/hostcache_ipv6_addrinfo_good_allow.test | 4 +-
.../t/hostcache_ipv6_addrinfo_good_deny-master.opt | 1 +
.../t/hostcache_ipv6_addrinfo_good_deny.test | 4 +-
...hostcache_ipv6_addrinfo_noname_allow-master.opt | 1 +
.../t/hostcache_ipv6_addrinfo_noname_allow.test | 5 +-
.../hostcache_ipv6_addrinfo_noname_deny-master.opt | 1 +
.../t/hostcache_ipv6_addrinfo_noname_deny.test | 5 +-
.../t/hostcache_ipv6_auth_plugin-master.opt | 1 +
.../perfschema/t/hostcache_ipv6_auth_plugin.test | 4 +-
.../perfschema/t/hostcache_ipv6_blocked-master.opt | 1 +
.../suite/perfschema/t/hostcache_ipv6_blocked.test | 3 +-
.../perfschema/t/hostcache_ipv6_max_con-master.opt | 1 +
.../suite/perfschema/t/hostcache_ipv6_max_con.test | 8 +-
.../hostcache_ipv6_nameinfo_again_allow-master.opt | 1 +
.../t/hostcache_ipv6_nameinfo_again_allow.test | 4 +-
.../hostcache_ipv6_nameinfo_again_deny-master.opt | 1 +
.../t/hostcache_ipv6_nameinfo_again_deny.test | 4 +-
...hostcache_ipv6_nameinfo_noname_allow-master.opt | 1 +
.../t/hostcache_ipv6_nameinfo_noname_allow.test | 4 +-
.../hostcache_ipv6_nameinfo_noname_deny-master.opt | 1 +
.../t/hostcache_ipv6_nameinfo_noname_deny.test | 4 +-
.../perfschema/t/hostcache_ipv6_passwd-master.opt | 1 +
.../suite/perfschema/t/hostcache_ipv6_passwd.test | 4 +-
.../perfschema/t/hostcache_ipv6_ssl-master.opt | 1 +
.../suite/perfschema/t/hostcache_ipv6_ssl.test | 4 +-
.../suite/perfschema/t/hostcache_peer_addr.test | 4 +-
mysql-test/suite/perfschema/t/misc.test | 48 +
mysql-test/suite/perfschema/t/partition.test | 16 +
mysql-test/suite/perfschema/t/query_cache.test | 4 +-
mysql-test/suite/perfschema/t/socket_connect.test | 9 +-
mysql-test/suite/perfschema/t/stage_mdl_global.opt | 2 +
mysql-test/suite/perfschema_stress/README | 2 +-
mysql-test/suite/plugins/disabled.def | 0
mysql-test/suite/plugins/r/auth_ed25519.result | 4 +-
.../suite/plugins/r/feedback_plugin_install.result | 2 +-
.../suite/plugins/r/feedback_plugin_load.result | 4 +-
.../suite/plugins/r/feedback_plugin_send.result | 4 +-
mysql-test/suite/plugins/r/pam.result | 20 +
mysql-test/suite/plugins/r/processlist.result | 9 +
mysql-test/suite/plugins/r/qc_info.result | 2 +
mysql-test/suite/plugins/r/qc_info_priv.result | 3 +-
mysql-test/suite/plugins/r/server_audit.result | 55 +-
mysql-test/suite/plugins/r/sql_error_log.result | 4 +-
.../plugins/r/thread_pool_server_audit.result | 1 +
mysql-test/suite/plugins/t/audit_null.test | 2 +-
.../suite/plugins/t/feedback_plugin_load.test | 6 +-
mysql-test/suite/plugins/t/pam.test | 24 +-
mysql-test/suite/plugins/t/processlist.test | 20 +
mysql-test/suite/plugins/t/qc_info.test | 3 +
mysql-test/suite/plugins/t/qc_info_init.inc | 1 -
mysql-test/suite/plugins/t/qc_info_priv.test | 3 +-
mysql-test/suite/plugins/t/server_audit.test | 38 +
.../suite/plugins/t/thread_pool_server_audit.test | 2 +
mysql-test/suite/roles/acl_load_mutex-5170.result | 1 +
mysql-test/suite/roles/acl_load_mutex-5170.test | 1 +
mysql-test/suite/roles/acl_statistics.opt | 1 +
mysql-test/suite/roles/definer.test | 4 +-
mysql-test/suite/roles/flush_roles-17898.result | 40 +
mysql-test/suite/roles/flush_roles-17898.test | 36 +
mysql-test/suite/roles/grant_revoke_current.result | 1 +
mysql-test/suite/roles/grant_revoke_current.test | 2 +
.../suite/roles/set_default_role_ps-6960.result | 1 +
.../suite/roles/set_default_role_ps-6960.test | 2 +
.../suite/roles/show_create_database-10463.test | 3 +-
mysql-test/suite/rpl/disabled.def | 3 +-
mysql-test/suite/rpl/extension/checksum.pl | 2 +-
.../suite/rpl/include/rpl_mixed_check_user.inc | 4 +-
.../rpl/include/rpl_parallel_ignored_errors.inc | 112 +
mysql-test/suite/rpl/r/circular_serverid0.result | 2 +-
.../suite/rpl/r/create_or_replace_mix.result | 14 +
.../suite/rpl/r/create_or_replace_row.result | 10 +
.../suite/rpl/r/create_or_replace_statement.result | 14 +
mysql-test/suite/rpl/r/kill_race_condition.result | 24 +
mysql-test/suite/rpl/r/mdev_17588.result | 34 +
mysql-test/suite/rpl/r/rename.result | 36 +
mysql-test/suite/rpl/r/rpl_15867.result | 9 +
mysql-test/suite/rpl/r/rpl_15919.result | 19 +
mysql-test/suite/rpl/r/rpl_binlog_dup_entry.result | 29 +
.../suite/rpl/r/rpl_binlog_rollback_cleanup.result | 9 +
mysql-test/suite/rpl/r/rpl_blackhole.result | 9 +-
.../suite/rpl/r/rpl_blackhole_row_annotate.result | 446 +
mysql-test/suite/rpl/r/rpl_bug31076.result | 2 +-
mysql-test/suite/rpl/r/rpl_bug33931.result | 3 +-
mysql-test/suite/rpl/r/rpl_bug41902.result | 3 +
mysql-test/suite/rpl/r/rpl_checksum.result | 11 +-
mysql-test/suite/rpl/r/rpl_corruption.result | 13 +-
.../suite/rpl/r/rpl_create_drop_event.result | 4 +
.../suite/rpl/r/rpl_create_or_replace_fail.result | 20 +
mysql-test/suite/rpl/r/rpl_current_user.result | 2 +
mysql-test/suite/rpl/r/rpl_do_grant.result | 14 +-
.../rpl/r/rpl_domain_id_filter_io_crash.result | 2 +
.../rpl/r/rpl_domain_id_filter_master_crash.result | 1 -
mysql-test/suite/rpl/r/rpl_events.result | 6 +
.../suite/rpl/r/rpl_extra_col_master_innodb.result | 6 +-
.../suite/rpl/r/rpl_extra_col_master_myisam.result | 6 +-
.../suite/rpl/r/rpl_extra_col_slave_innodb.result | 12 +-
.../suite/rpl/r/rpl_extra_col_slave_myisam.result | 12 +-
.../suite/rpl/r/rpl_failed_drop_tbl_binlog.result | 32 +
.../suite/rpl/r/rpl_foreign_key_innodb.result | 3 +-
.../suite/rpl/r/rpl_gtid_delete_domain.result | 4 +-
.../rpl/r/rpl_gtid_excess_initial_delay.result | 23 +
mysql-test/suite/rpl/r/rpl_gtid_reconnect.result | 2 +-
mysql-test/suite/rpl/r/rpl_heartbeat_basic.result | 2 +
mysql-test/suite/rpl/r/rpl_heartbeat_debug.result | 4 +-
mysql-test/suite/rpl/r/rpl_idempotency.result | 17 +
mysql-test/suite/rpl/r/rpl_incident.result | 2 +
.../suite/rpl/r/rpl_init_slave_errors.result | 3 +-
mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result | 70 +-
mysql-test/suite/rpl/r/rpl_invoked_features.result | 4 +
mysql-test/suite/rpl/r/rpl_killed_ddl.result | 2 +
.../suite/rpl/r/rpl_known_bugs_detection.result | 26 -
.../rpl/r/rpl_lcase_tblnames_rewrite_db.result | 38 +
.../rpl/r/rpl_mariadb_slave_capability.result | 6 +-
mysql-test/suite/rpl/r/rpl_mdev_17614.result | 129 +
.../rpl/r/rpl_mixed_drop_create_temp_table.result | 31 +-
.../rpl/r/rpl_mixed_implicit_commit_binlog.result | 536 +-
mysql-test/suite/rpl/r/rpl_old_master.result | 3 +
mysql-test/suite/rpl/r/rpl_parallel.result | 18 +-
.../suite/rpl/r/rpl_parallel_ignored_errors.result | 50 +
.../suite/rpl/r/rpl_parallel_optimistic.result | 41 +-
mysql-test/suite/rpl/r/rpl_rewrt_db.result | 27 +-
mysql-test/suite/rpl/r/rpl_row_001.result | 4 +-
.../suite/rpl/r/rpl_row_basic_2myisam.result | 4 +-
.../suite/rpl/r/rpl_row_basic_3innodb.result | 4 +-
.../suite/rpl/r/rpl_row_big_table_id,32bit.rdiff | 31 +
mysql-test/suite/rpl/r/rpl_row_big_table_id.result | 48 +
mysql-test/suite/rpl/r/rpl_row_colSize.result | 10 +-
.../rpl/r/rpl_row_drop_create_temp_table.result | 27 -
.../suite/rpl/r/rpl_row_drop_temp_table.result | 38 +
.../suite/rpl/r/rpl_row_find_row_debug.result | 3 +-
.../rpl/r/rpl_row_implicit_commit_binlog.result | 530 +-
.../suite/rpl/r/rpl_row_lcase_tblnames.result | 60 +
mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result | 8 +-
mysql-test/suite/rpl/r/rpl_row_spatial.result | 16 +
.../suite/rpl/r/rpl_row_type_conv_err_msg.result | 164 +
.../rpl/r/rpl_semi_sync_gtid_reconnect.result | 40 +
.../suite/rpl/r/rpl_semi_sync_skip_repl.result | 16 +-
.../rpl/r/rpl_semi_sync_uninstall_plugin.result | 4 -
mysql-test/suite/rpl/r/rpl_set_statement.test | 0
.../suite/rpl/r/rpl_show_slave_running.result | 3 +-
.../rpl/r/rpl_slave_invalid_external_user.result | 15 +
.../rpl/r/rpl_slave_load_remove_tmpfile.result | 3 +-
mysql-test/suite/rpl/r/rpl_stm_000001.result | 4 +-
.../rpl/r/rpl_stm_drop_create_temp_table.result | 31 +-
.../rpl/r/rpl_stm_implicit_commit_binlog.result | 520 +-
.../suite/rpl/r/rpl_stm_lcase_tblnames.result | 57 +
.../suite/rpl/r/rpl_stm_stop_middle_group.result | 3 +-
mysql-test/suite/rpl/r/rpl_stop_slave.result | 4 +
.../rpl/r/rpl_sync_with_innodb_thd_conc.result | 18 +
.../suite/rpl/r/rpl_tmp_table_and_DDL.result | 4 +
mysql-test/suite/rpl/r/rpl_typeconv.result | 44 +
.../suite/rpl/r/rpl_unsafe_statements.result | 5 +
mysql-test/suite/rpl/r/rpl_user.result | 11 +
mysql-test/suite/rpl/r/rpl_view_debug.result | 2 +
mysql-test/suite/rpl/t/circular_serverid0.test | 3 +-
mysql-test/suite/rpl/t/create_or_replace.inc | 13 +
mysql-test/suite/rpl/t/kill_race_condition.test | 36 +
mysql-test/suite/rpl/t/mdev_17588-slave.opt | 1 +
mysql-test/suite/rpl/t/mdev_17588.test | 44 +
mysql-test/suite/rpl/t/rename.test | 33 +
mysql-test/suite/rpl/t/rpl_15867.test | 11 +
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_binlog_dup_entry.test | 72 +
.../suite/rpl/t/rpl_binlog_rollback_cleanup.test | 46 +
mysql-test/suite/rpl/t/rpl_blackhole.test | 77 +-
.../rpl/t/rpl_blackhole_row_annotate-master.opt | 1 +
.../rpl/t/rpl_blackhole_row_annotate-slave.opt | 1 +
.../suite/rpl/t/rpl_blackhole_row_annotate.test | 49 +
mysql-test/suite/rpl/t/rpl_bug33931.test | 3 +-
mysql-test/suite/rpl/t/rpl_bug41902.test | 5 +-
.../suite/rpl/t/rpl_create_or_replace_fail.test | 56 +
mysql-test/suite/rpl/t/rpl_do_grant.test | 8 +-
.../suite/rpl/t/rpl_domain_id_filter_io_crash.test | 3 +-
.../rpl/t/rpl_domain_id_filter_master_crash.test | 1 -
.../suite/rpl/t/rpl_failed_drop_tbl_binlog.test | 64 +
mysql-test/suite/rpl/t/rpl_foreign_key_innodb.test | 62 +-
.../rpl/t/rpl_get_master_version_and_clock.test | 6 +-
.../suite/rpl/t/rpl_gtid_excess_initial_delay.test | 58 +
mysql-test/suite/rpl/t/rpl_gtid_reconnect.test | 2 +-
mysql-test/suite/rpl/t/rpl_heartbeat_debug.test | 4 +-
mysql-test/suite/rpl/t/rpl_idempotency.test | 21 +
.../suite/rpl/t/rpl_known_bugs_detection.test | 39 -
.../rpl/t/rpl_lcase_tblnames_rewrite_db-slave.opt | 1 +
.../suite/rpl/t/rpl_lcase_tblnames_rewrite_db.test | 60 +
.../suite/rpl/t/rpl_mariadb_slave_capability.test | 8 +-
mysql-test/suite/rpl/t/rpl_mdev_17614.test | 121 +
mysql-test/suite/rpl/t/rpl_old_master.test | 8 +
.../suite/rpl/t/rpl_parallel_ignored_errors.test | 1 +
.../suite/rpl/t/rpl_parallel_optimistic.test | 80 +-
.../rpl/t/rpl_parallel_optimistic_nobinlog.cnf | 1 +
mysql-test/suite/rpl/t/rpl_rewrt_db-slave.opt | 2 +-
mysql-test/suite/rpl/t/rpl_rewrt_db.test | 19 +
mysql-test/suite/rpl/t/rpl_row_big_table_id.test | 58 +
.../suite/rpl/t/rpl_row_drop_temp_table.test | 54 +
mysql-test/suite/rpl/t/rpl_row_find_row_debug.test | 4 +-
mysql-test/suite/rpl/t/rpl_row_index_choice.test | 4 +-
.../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_mysqlbinlog.test | 3 +-
mysql-test/suite/rpl/t/rpl_row_spatial.test | 17 +
.../suite/rpl/t/rpl_row_type_conv_err_msg.test | 356 +
.../suite/rpl/t/rpl_semi_sync_gtid_reconnect.test | 75 +
.../suite/rpl/t/rpl_semi_sync_skip_repl.test | 29 +-
.../rpl/t/rpl_semi_sync_uninstall_plugin.test | 9 +-
mysql-test/suite/rpl/t/rpl_show_slave_running.test | 4 +-
.../rpl/t/rpl_slave_invalid_external_user.test | 42 +
.../suite/rpl/t/rpl_slave_load_remove_tmpfile.test | 4 +-
mysql-test/suite/rpl/t/rpl_stm_000001.test | 4 +-
.../suite/rpl/t/rpl_stm_lcase_tblnames-slave.opt | 1 +
mysql-test/suite/rpl/t/rpl_stm_lcase_tblnames.test | 12 +
mysql-test/suite/rpl/t/rpl_stop_slave.test | 12 +-
.../suite/rpl/t/rpl_sync_with_innodb_thd_conc.test | 41 +
mysql-test/suite/rpl/t/rpl_unsafe_statements.test | 2 +-
mysql-test/suite/rpl/t/rpl_user.test | 11 +
mysql-test/suite/rpl/t/rpl_view_debug.test | 3 +-
mysql-test/suite/storage_engine/type_bool.result | 4 +-
mysql-test/suite/storage_engine/vcol.result | 16 +-
mysql-test/suite/sys_vars/inc/sysvars_server.inc | 54 +-
mysql-test/suite/sys_vars/r/all_vars.result | 1 +
.../r/aria_pagecache_buffer_size_basic.result | 14 +-
.../sys_vars/r/aria_recover_options_basic.result | 1 +
.../sys_vars/r/binlog_cache_size_basic.result | 10 +-
.../sys_vars/r/binlog_stmt_cache_size_basic.result | 10 +-
.../sys_vars/r/character_set_client_basic.result | 22 +-
.../r/character_set_connection_basic.result | 25 +-
.../sys_vars/r/character_set_database_basic.result | 11 +-
.../sys_vars/r/character_set_results_basic.result | Bin 16480 -> 16498 bytes
.../sys_vars/r/character_set_server_basic.result | 23 +-
.../sys_vars/r/character_set_server_func.result | 5 +-
.../sys_vars/r/collation_connection_basic.result | 23 +-
.../sys_vars/r/collation_database_basic.result | 24 +-
.../sys_vars/r/collation_database_func.result | 5 +-
.../suite/sys_vars/r/collation_server_basic.result | 22 +-
mysql-test/suite/sys_vars/r/debug_dbug_func.result | 50 +-
.../sys_vars/r/delayed_insert_limit_func.result | 24 +-
.../suite/sys_vars/r/expire_logs_days_basic.result | 16 +-
.../suite/sys_vars/r/general_log_file_basic.result | 12 +-
.../suite/sys_vars/r/histogram_size_basic.result | 15 +-
.../r/innodb_adaptive_hash_index_basic.result | 25 +-
.../r/innodb_buffer_pool_size_basic.result | 2 -
.../r/innodb_change_buffering_debug_basic.result | 6 +
.../r/innodb_ft_result_cache_limit,32bit.rdiff | 11 +
.../sys_vars/r/innodb_ft_result_cache_limit.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 | 36 +
.../r/innodb_max_dirty_pages_pct_basic.result | 3 +
.../r/innodb_max_dirty_pages_pct_lwm_basic.result | 3 +
.../sys_vars/r/innodb_spin_wait_delay_basic.result | 16 +-
.../suite/sys_vars/r/join_buffer_size_basic.result | 24 +-
.../r/join_buffer_space_limit_basic.result | 14 +-
.../suite/sys_vars/r/join_cache_level_basic.result | 14 +-
.../sys_vars/r/log_slow_verbosity_basic.result | 10 +-
.../suite/sys_vars/r/long_query_time_basic.result | 32 +-
.../sys_vars/r/max_allowed_packet_basic.result | 9 -
.../sys_vars/r/max_allowed_packet_func.result | 12 +-
.../sys_vars/r/max_connect_errors_basic.result | 18 +-
.../suite/sys_vars/r/max_connections_basic.result | 21 +-
.../sys_vars/r/max_heap_table_size_basic.result | 35 +-
.../suite/sys_vars/r/max_seeks_for_key_func.result | 10 +-
mysql-test/suite/sys_vars/r/maximum_basic.result | 30 +
.../r/myisam_sort_buffer_size_basic.result | 38 +-
.../suite/sys_vars/r/optimizer_switch_basic.result | 10 +-
...ptimizer_use_condition_selectivity_basic.result | 37 -
mysql-test/suite/sys_vars/r/relay_log_basic.result | 10 +-
.../sys_vars/r/slow_query_log_file_basic.result | 6 +-
.../r/sql_low_priority_updates_func.result | 4 +-
.../suite/sys_vars/r/sync_binlog_basic.result | 17 -
mysql-test/suite/sys_vars/r/sysvars_aria.result | 44 +-
.../r/sysvars_innodb,32bit,xtradb.rdiff-disabled | 12 +-
.../suite/sys_vars/r/sysvars_innodb,32bit.rdiff | 301 +-
.../r/sysvars_innodb,xtradb.rdiff-disabled | 8 +-
mysql-test/suite/sys_vars/r/sysvars_innodb.result | 514 +-
.../sys_vars/r/sysvars_server_embedded,32bit.rdiff | 925 +-
.../sys_vars/r/sysvars_server_embedded.result | 1724 +-
.../r/sysvars_server_notembedded,32bit.rdiff | 956 +-
.../sys_vars/r/sysvars_server_notembedded.result | 1976 +-
mysql-test/suite/sys_vars/r/sysvars_wsrep.result | 14 +
.../sys_vars/r/table_definition_cache_basic.result | 31 +-
.../suite/sys_vars/r/table_open_cache_basic.result | 20 +-
.../suite/sys_vars/r/thread_pool_size_high.result | 1 +
.../sys_vars/r/tmp_disk_table_size_func.result | 2 +-
mysql-test/suite/sys_vars/r/userstat_basic.result | 7 +-
.../suite/sys_vars/r/wsrep_sst_method_basic.result | 4 +
.../sys_vars/r/wsrep_start_position_basic.result | 10 +-
.../t/aria_pagecache_buffer_size_basic.test | 6 +-
.../sys_vars/t/aria_recover_options_basic.test | 1 +
.../t/aria_used_for_temp_tables_basic.test | 1 +
.../suite/sys_vars/t/binlog_cache_size_basic.test | 55 +-
.../sys_vars/t/binlog_stmt_cache_size_basic.test | 54 +-
.../sys_vars/t/character_set_client_basic.test | 11 +-
.../sys_vars/t/character_set_connection_basic.test | 13 +-
.../sys_vars/t/character_set_database_basic.test | 7 +-
.../sys_vars/t/character_set_results_basic.test | 11 +-
.../sys_vars/t/character_set_server_basic.test | 11 +-
.../sys_vars/t/character_set_server_func.test | 4 +-
.../sys_vars/t/collation_connection_basic.test | 11 +-
.../suite/sys_vars/t/collation_database_basic.test | 15 +-
.../suite/sys_vars/t/collation_database_func.test | 2 -
.../suite/sys_vars/t/collation_server_basic.test | 10 +-
mysql-test/suite/sys_vars/t/debug_dbug_func.test | 36 +-
.../sys_vars/t/delayed_insert_limit_func.test | 42 +-
.../suite/sys_vars/t/expire_logs_days_basic.test | 7 +-
.../suite/sys_vars/t/general_log_file_basic.test | 4 +-
.../suite/sys_vars/t/histogram_size_basic.test | 6 +-
.../t/innodb_adaptive_hash_index_basic.test | 9 +-
.../sys_vars/t/innodb_buffer_pool_size_basic.test | 13 +-
.../t/innodb_change_buffering_debug_basic.test | 5 +-
.../sys_vars/t/innodb_ft_result_cache_limit.test | 9 +
.../t/innodb_ft_result_cache_limit_basic.test | 5 +-
.../sys_vars/t/innodb_log_optimize_ddl_basic.test | 62 +
.../t/innodb_max_dirty_pages_pct_basic.test | 6 +
.../t/innodb_max_dirty_pages_pct_lwm_basic.test | 6 +
.../sys_vars/t/innodb_read_io_threads_basic.opt | 1 +
.../sys_vars/t/innodb_write_io_threads_basic.opt | 1 +
.../suite/sys_vars/t/join_buffer_size_basic.test | 10 +-
.../sys_vars/t/join_buffer_space_limit_basic.test | 7 +-
.../suite/sys_vars/t/join_cache_level_basic.test | 7 +-
.../suite/sys_vars/t/log_slow_verbosity_basic.test | 4 +-
.../suite/sys_vars/t/long_query_time_basic.test | 25 +-
.../suite/sys_vars/t/max_allowed_packet_basic.test | 4 -
.../suite/sys_vars/t/max_allowed_packet_func.test | 4 +-
.../suite/sys_vars/t/max_connect_errors_basic.test | 10 +-
.../suite/sys_vars/t/max_connections_basic.test | 10 +-
.../suite/sys_vars/t/max_digest_length_basic.test | 2 +-
.../sys_vars/t/max_heap_table_size_basic.test | 25 +-
.../sys_vars/t/max_prepared_stmt_count_func.test | 2 +-
.../suite/sys_vars/t/max_seeks_for_key_func.test | 10 +-
.../suite/sys_vars/t/maximum_basic-master.opt | 2 +
mysql-test/suite/sys_vars/t/maximum_basic.test | 19 +
.../sys_vars/t/myisam_recover_options_basic.opt | 1 +
.../sys_vars/t/myisam_sort_buffer_size_basic.test | 31 +-
.../suite/sys_vars/t/optimizer_switch_basic.test | 7 +-
.../optimizer_use_condition_selectivity_basic.test | 32 -
.../suite/sys_vars/t/pfs_digests_size_basic.test | 2 +-
.../sys_vars/t/pfs_max_digest_length_basic.test | 2 +-
.../t/pfs_session_connect_attrs_size_basic.test | 2 +-
mysql-test/suite/sys_vars/t/relay_log_basic.test | 8 +
.../sys_vars/t/slow_query_log_file_basic.test | 2 +-
.../suite/sys_vars/t/sql_buffer_result_func.test | 10 +
.../sys_vars/t/sql_low_priority_updates_func.test | 4 +-
mysql-test/suite/sys_vars/t/sync_binlog_basic.test | 27 +-
mysql-test/suite/sys_vars/t/sysvars_aria.test | 3 +-
mysql-test/suite/sys_vars/t/sysvars_innodb.test | 7 +-
.../suite/sys_vars/t/sysvars_server_embedded.opt | 1 -
.../sys_vars/t/sysvars_server_notembedded.opt | 1 -
.../sys_vars/t/table_definition_cache_basic.test | 69 +-
.../suite/sys_vars/t/table_open_cache_basic.test | 23 +-
.../suite/sys_vars/t/thread_pool_size_high.test | 1 +
.../suite/sys_vars/t/thread_stack_basic.test | 10 +-
.../suite/sys_vars/t/tmp_disk_table_size_func.test | 3 +-
.../t/transaction_prealloc_size_bug27322.test | 9 +-
mysql-test/suite/sys_vars/t/userstat_basic.test | 5 +-
.../suite/sys_vars/t/wsrep_sst_method_basic.test | 5 +
.../sys_vars/t/wsrep_start_position_basic.test | 6 +-
mysql-test/suite/unit/suite.pm | 2 +-
mysql-test/suite/vcol/inc/vcol_keys.inc | 1 -
mysql-test/suite/vcol/inc/vcol_trigger_sp.inc | 2 +-
mysql-test/suite/vcol/r/binlog.result | 70 +
mysql-test/suite/vcol/r/index.result | 101 +
mysql-test/suite/vcol/r/partition.result | 10 +
mysql-test/suite/vcol/r/races.result | 16 +
mysql-test/suite/vcol/r/update.result | 22 +-
mysql-test/suite/vcol/r/update_binlog.result | 361 +
mysql-test/suite/vcol/r/upgrade.result | 16 +
mysql-test/suite/vcol/r/vcol_ins_upd_innodb.result | 20 +-
mysql-test/suite/vcol/r/vcol_ins_upd_myisam.result | 20 +-
mysql-test/suite/vcol/r/vcol_keys_innodb.result | 17 +-
mysql-test/suite/vcol/r/vcol_keys_myisam.result | 33 +
mysql-test/suite/vcol/r/vcol_misc.result | 82 +-
mysql-test/suite/vcol/r/vcol_select_myisam.result | 6 +-
mysql-test/suite/vcol/r/vcol_sql_mode.result | 534 +
.../suite/vcol/r/vcol_sql_mode_upgrade.result | 384 +
.../suite/vcol/r/vcol_trigger_sp_innodb.result | 2 +-
.../suite/vcol/r/vcol_trigger_sp_myisam.result | 2 +-
mysql-test/suite/vcol/t/binlog.test | 55 +
mysql-test/suite/vcol/t/cross_db.test | 3 +
mysql-test/suite/vcol/t/index.test | 97 +
mysql-test/suite/vcol/t/partition.test | 12 +
mysql-test/suite/vcol/t/races.test | 22 +
mysql-test/suite/vcol/t/update.test | 4 +-
mysql-test/suite/vcol/t/update_binlog.test | 14 +
mysql-test/suite/vcol/t/upgrade.test | 15 +
mysql-test/suite/vcol/t/vcol_keys_innodb.opt | 1 +
mysql-test/suite/vcol/t/vcol_keys_innodb.test | 18 +
mysql-test/suite/vcol/t/vcol_keys_myisam.test | 38 +
mysql-test/suite/vcol/t/vcol_misc.test | 83 +-
mysql-test/suite/vcol/t/vcol_select_innodb.test | 1 +
mysql-test/suite/vcol/t/vcol_select_myisam.test | 43 +-
mysql-test/suite/vcol/t/vcol_sql_mode.test | 349 +
mysql-test/suite/vcol/t/vcol_sql_mode_upgrade.test | 197 +
mysql-test/suite/vcol/t/wrong_arena.test | 2 +
mysql-test/suite/wsrep/disabled.def | 12 +
.../suite/wsrep/include/check_galera_version.inc | 20 +-
mysql-test/suite/wsrep/my.cnf | 4 +-
mysql-test/suite/wsrep/r/mdev_10186.result | 3 -
.../wsrep/r/mysql_tzinfo_to_sql_symlink.result | 82 +-
.../r/mysql_tzinfo_to_sql_symlink_skip.result | 74 +
mysql-test/suite/wsrep/r/variables.result | 104 +-
.../suite/wsrep/r/wsrep-recover-v25,binlogon.rdiff | 17 +
mysql-test/suite/wsrep/r/wsrep-recover-v25.result | 28 +
mysql-test/suite/wsrep/suite.pm | 20 +-
mysql-test/suite/wsrep/t/alter_table_innodb.cnf | 12 +
mysql-test/suite/wsrep/t/alter_table_innodb.opt | 1 -
mysql-test/suite/wsrep/t/binlog_format.opt | 2 +-
mysql-test/suite/wsrep/t/mdev_10186.cnf | 15 +
mysql-test/suite/wsrep/t/mdev_10186.opt | 1 -
mysql-test/suite/wsrep/t/mdev_10186.test | 2 -
.../suite/wsrep/t/mysql_tzinfo_to_sql_symlink.opt | 3 +
.../suite/wsrep/t/mysql_tzinfo_to_sql_symlink.test | 1 +
.../wsrep/t/mysql_tzinfo_to_sql_symlink_skip.opt | 3 +
.../wsrep/t/mysql_tzinfo_to_sql_symlink_skip.test | 41 +
mysql-test/suite/wsrep/t/pool_of_threads.opt | 2 +-
mysql-test/suite/wsrep/t/variables.test | 54 +-
mysql-test/suite/wsrep/t/wsrep-recover-step.inc | 41 +
mysql-test/suite/wsrep/t/wsrep-recover-v25.cnf | 7 +
.../suite/wsrep/t/wsrep-recover-v25.combinations | 4 +
mysql-test/suite/wsrep/t/wsrep-recover-v25.test | 119 +
mysql-test/t/alter_table.test | 130 +
mysql-test/t/alter_table_errors.test | 31 +
mysql-test/t/analyze.test | 2 +
mysql-test/t/analyze_format_json.test | 2 +
mysql-test/t/analyze_stmt.test | 10 +-
mysql-test/t/analyze_stmt_orderby.test | 1 +
mysql-test/t/analyze_stmt_privileges2.test | 6 +-
mysql-test/t/assign_key_cache-5405.test | 27 -
mysql-test/t/assign_key_cache.test | 13 +
mysql-test/t/assign_key_cache_debug.test | 27 +
mysql-test/t/auto_increment.test | 36 +
mysql-test/t/auto_increment_ranges_innodb.test | 13 +
mysql-test/t/bigint.test | 9 +
mysql-test/t/bootstrap.test | 23 +-
mysql-test/t/bug13633383.test | 3 +
mysql-test/t/cache_temporal_4265.test | 6 +-
mysql-test/t/cast.test | 3 +-
mysql-test/t/charset_client_win.test | 2 +
mysql-test/t/check.test | 45 +
mysql-test/t/check_constraint.test | 67 +-
mysql-test/t/check_constraint_innodb.test | 14 +
mysql-test/t/compare.test | 14 +
mysql-test/t/compound.test | 2 +
mysql-test/t/connect.test | 13 +-
mysql-test/t/connect_debug.test | 39 +
mysql-test/t/constraints.test | 79 +
mysql-test/t/create.test | 8 +-
mysql-test/t/create_drop_role.test | 11 +
mysql-test/t/create_or_replace.test | 54 +-
mysql-test/t/create_or_replace2.test | 4 +-
mysql-test/t/create_replace_tmp.test | 4 +
mysql-test/t/cte_nonrecursive.test | 190 +
mysql-test/t/cte_recursive.test | 322 +
mysql-test/t/cte_recursive_not_embedded.test | 42 +
mysql-test/t/ctype_binary.test | 3 +
mysql-test/t/ctype_create.test | 4 +
mysql-test/t/ctype_eucjpms.test | 2 +
mysql-test/t/ctype_euckr.test | 10 +
mysql-test/t/ctype_gbk.test | 3 +
mysql-test/t/ctype_latin1.test | 15 +
mysql-test/t/ctype_latin1_de.test | 5 +
mysql-test/t/ctype_uca.test | 18 +
mysql-test/t/ctype_ucs.test | 5 +
mysql-test/t/ctype_ujis.test | 10 +-
mysql-test/t/ctype_utf16.test | 8 +-
mysql-test/t/ctype_utf16_def-master.opt | 2 +-
mysql-test/t/ctype_utf16le.test | 13 +
mysql-test/t/ctype_utf32.test | 8 +
mysql-test/t/ctype_utf8.test | 9 +
mysql-test/t/ctype_utf8_def_upgrade.opt | 1 +
mysql-test/t/ctype_utf8_def_upgrade.test | 61 +
mysql-test/t/ctype_utf8mb4.test | 11 +
mysql-test/t/ddl_i18n_koi8r.test | 8 +-
mysql-test/t/ddl_i18n_utf8.test | 8 +-
mysql-test/t/default.test | 15 +-
mysql-test/t/default_session.test | 24 +
mysql-test/t/derived.test | 28 +
mysql-test/t/derived_cond_pushdown.test | 1183 +-
mysql-test/t/derived_opt.test | 38 +
mysql-test/t/derived_view.test | 303 +-
mysql-test/t/distinct.test | 27 +
mysql-test/t/drop_bad_db_type.test | 6 +-
mysql-test/t/dyncol.test | 8 +-
mysql-test/t/engine_error_in_alter-8453.test | 5 +-
mysql-test/t/error_simulation.test | 18 +-
mysql-test/t/events_1.test | 5 +-
mysql-test/t/events_2.test | 1 +
mysql-test/t/events_bugs.test | 5 +-
mysql-test/t/events_grant.test | 2 +
mysql-test/t/events_logs_tests.test | 5 +-
mysql-test/t/events_restart.test | 2 +
mysql-test/t/events_stress.test | 1 +
mysql-test/t/explain_json.test | 2 +
mysql-test/t/explain_slowquerylog.test | 6 +
mysql-test/t/flush.test | 31 +
mysql-test/t/flush2.test | 9 +-
mysql-test/t/foreign_key.test | 24 +
mysql-test/t/func_compress.test | 7 +-
mysql-test/t/func_concat.test | 22 +
mysql-test/t/func_default.test | 5 +
mysql-test/t/func_gconcat.test | 33 +-
mysql-test/t/func_group_innodb.test | 19 +
mysql-test/t/func_hybrid_type.test | 20 +
mysql-test/t/func_isnull.test | 17 +
mysql-test/t/func_json.test | 149 +-
mysql-test/t/func_math.test | 98 +-
mysql-test/t/func_misc.test | 30 +
mysql-test/t/func_regexp_pcre.test | 8 +-
mysql-test/t/func_regexp_pcre_debug.test | 3 +-
mysql-test/t/func_str.test | 84 +-
mysql-test/t/func_time.test | 123 +
mysql-test/t/func_weight_string.test | 4 +-
mysql-test/t/function_defaults.test | 48 +
mysql-test/t/gis-loaddata.test | 21 +
mysql-test/t/gis-precise.test | 10 +
mysql-test/t/gis.test | 63 +-
mysql-test/t/gis2.test | 45 -
mysql-test/t/gis_notembedded.test | 24 +
mysql-test/t/grant.opt | 1 +
mysql-test/t/grant.test | 36 +-
mysql-test/t/grant2.opt | 1 +
mysql-test/t/grant2.test | 7 +-
mysql-test/t/grant4.opt | 1 +
mysql-test/t/grant4.test | 31 +-
mysql-test/t/grant5.test | 10 +
mysql-test/t/grant_explain_non_select.test | 2 +
mysql-test/t/grant_not_windows.test | 14 +
mysql-test/t/greedy_optimizer.test | 7 +-
mysql-test/t/group_by.test | 31 +
mysql-test/t/group_min_max.test | 46 +
mysql-test/t/handlersocket.opt | 1 +
mysql-test/t/having.test | 17 +
mysql-test/t/host_cache_size_functionality.test | 7 +-
mysql-test/t/huge_frm-6224.test | 11 +-
mysql-test/t/index_intersect.test | 3 +
mysql-test/t/index_merge_innodb.test | 53 +-
mysql-test/t/index_merge_myisam.test | 31 +-
mysql-test/t/information_schema-big.test | 12 +-
mysql-test/t/information_schema.test | 7 +
mysql-test/t/information_schema_db.test | 44 +
mysql-test/t/information_schema_parameters.test | 4 +-
mysql-test/t/information_schema_prepare.test | 7 +
mysql-test/t/information_schema_routines.test | 2 +
mysql-test/t/information_schema_stats.test | 3 +-
mysql-test/t/init_connection_query_cache.test | 3 +-
mysql-test/t/innodb_ext_key.test | 4 +
mysql-test/t/innodb_icp.test | 1 +
mysql-test/t/insert.test | 2 +-
mysql-test/t/insert_debug-master.opt | 1 +
mysql-test/t/insert_debug.test | 54 +
mysql-test/t/insert_select.test | 10 +
mysql-test/t/join.test | 518 +
mysql-test/t/join_cache.test | 342 +-
mysql-test/t/join_nested.test | 34 +
mysql-test/t/join_nested_jcl6.test | 3 +-
mysql-test/t/join_outer.test | 204 +-
mysql-test/t/join_outer_innodb.test | 3 +-
mysql-test/t/join_outer_jcl6.test | 10 +-
mysql-test/t/kill.test | 21 +
mysql-test/t/kill_processlist-6619.test | 2 +
mysql-test/t/limit.test | 14 +
mysql-test/t/limit_rows_examined.test | 1 +
mysql-test/t/loaddata.test | 85 +
mysql-test/t/loadxml.test | 19 +
mysql-test/t/lock.test | 6 +-
mysql-test/t/lock_multi.test | 14 +-
mysql-test/t/log_slow.test | 42 +
mysql-test/t/log_slow_debug.test | 127 +
mysql-test/t/log_state.test | 4 +-
mysql-test/t/log_tables.test | 8 +-
mysql-test/t/lowercase_fs_off.test | 15 +
mysql-test/t/lowercase_table.test | 12 +
mysql-test/t/lowercase_table4.test | 2 +
mysql-test/t/lowercase_table_qcache.test | 3 +-
mysql-test/t/max_statement_time.test | 8 +
mysql-test/t/mdev13607.test | 1 +
mysql-test/t/mdev375.test | 5 +-
mysql-test/t/mdev6830.test | 4 +-
mysql-test/t/mdev_19276.test | 17 +
mysql-test/t/merge-big.test | 2 +-
mysql-test/t/merge.test | 21 +-
mysql-test/t/merge_debug.test | 2 +-
mysql-test/t/mrr_icp_extra.test | 5 +-
mysql-test/t/multi_update.test | 69 +-
mysql-test/t/multi_update2-master.opt | 1 -
mysql-test/t/multi_update2.test | 78 -
mysql-test/t/multi_update_big.opt | 1 +
mysql-test/t/multi_update_big.test | 78 +
mysql-test/t/multi_update_debug.test | 27 +
mysql-test/t/multi_update_innodb.test | 71 +
mysql-test/t/myisam.test | 21 +
mysql-test/t/myisam_debug.test | 4 +-
mysql-test/t/myisam_explain_non_select_all.test | 2 +
mysql-test/t/myisam_icp.test | 1 +
mysql-test/t/myisam_mrr.test | 1 +
mysql-test/t/myisam_recover.test | 4 +-
mysql-test/t/mysql.test | 49 +-
mysql-test/t/mysql_client_test.test | 15 +
mysql-test/t/mysql_client_test_nonblock.test | 3 +
mysql-test/t/mysql_comments.test | 6 +-
mysql-test/t/mysql_cp932.test | 42 +-
mysql-test/t/mysql_not_windows.test | 7 +
mysql-test/t/mysqlbinlog-innodb.test | 2 +
mysql-test/t/mysqlbinlog.test | 24 +-
mysql-test/t/mysqlbinlog_row_big.test | 2 +
mysql-test/t/mysqlbinlog_row_compressed.test | 2 +-
mysql-test/t/mysqlbinlog_row_minimal.test | 43 +-
mysql-test/t/mysqlbinlog_stmt_compressed.test | 2 +-
mysql-test/t/mysqlcheck.opt | 1 +
mysql-test/t/mysqlcheck.test | 20 +-
mysql-test/t/mysqld--help.test | 4 +-
mysql-test/t/mysqld_option_err.test | 2 +
mysql-test/t/mysqldump-compat.test | 13 +
mysql-test/t/mysqldump-max.test | 2 +
mysql-test/t/mysqldump-nl.test | 1 +
mysql-test/t/mysqldump.opt | 1 +
mysql-test/t/mysqldump.test | 269 +-
mysql-test/t/mysqlslap.test | 8 +
mysql-test/t/mysqltest_tracking_info.test | 25 +
mysql-test/t/olap.test | 62 +
mysql-test/t/old-mode.test | 3 +-
mysql-test/t/openssl_1.test | 99 +-
mysql-test/t/order_by.test | 30 +
mysql-test/t/order_by_innodb.test | 28 +
mysql-test/t/order_by_zerolength-4285.test | 14 +
mysql-test/t/partition.test | 64 +-
mysql-test/t/partition_alter.test | 2 -
mysql-test/t/partition_debug_sync.test | 3 -
mysql-test/t/partition_example.opt | 1 +
mysql-test/t/partition_explicit_prune.test | 19 +
mysql-test/t/partition_innodb.test | 75 +
mysql-test/t/partition_key_cache.test | 2 +-
mysql-test/t/partition_list.test | 41 +
mysql-test/t/partition_open_files_limit.test | 4 +
mysql-test/t/partition_pruning.test | 1 +
mysql-test/t/plugin.opt | 1 +
mysql-test/t/plugin.test | 11 +
mysql-test/t/plugin_auth.test | 10 +-
mysql-test/t/plugin_innodb.opt | 1 +
mysql-test/t/plugin_load.opt | 1 +
mysql-test/t/plugin_load_option.opt | 1 +
mysql-test/t/plugin_not_embedded.opt | 1 +
mysql-test/t/plugin_not_embedded.test | 9 +
mysql-test/t/pool_of_threads.test | 5 +-
mysql-test/t/processlist.test | 4 +-
mysql-test/t/processlist_notembedded.test | 34 +
mysql-test/t/ps-master.opt | 2 +-
mysql-test/t/ps.test | 263 +-
mysql-test/t/ps_error.test | 66 +
mysql-test/t/ps_innodb.test | 80 +
mysql-test/t/query_cache.test | 11 +-
mysql-test/t/query_cache_debug.test | 22 +-
mysql-test/t/query_cache_innodb.test | 4 +-
mysql-test/t/query_cache_merge.test | 8 +-
mysql-test/t/query_cache_notembedded.test | 6 +-
mysql-test/t/query_cache_ps_no_prot.test | 2 +
mysql-test/t/query_cache_with_views.test | 7 +-
mysql-test/t/range.test | 34 +
mysql-test/t/range_innodb.test | 43 +
mysql-test/t/range_interrupted-13751.test | 8 +-
mysql-test/t/range_mrr_icp.test | 2 +
mysql-test/t/range_vs_index_merge.test | 3 +
mysql-test/t/read_only.test | 23 +-
mysql-test/t/read_only_innodb.test | 9 -
mysql-test/t/rename.test | 53 +
mysql-test/t/reopen_temp_table.test | 40 +
mysql-test/t/repair.test | 8 +
mysql-test/t/repair_symlink-5543.test | 8 +-
mysql-test/t/reset_connection.test | 40 +
mysql-test/t/row-checksum.test | 17 +
mysql-test/t/schema.test | 1 +
mysql-test/t/select.test | 9 +-
mysql-test/t/select_debug.test | 2 +
mysql-test/t/select_jcl6.test | 1 -
mysql-test/t/selectivity.test | 233 +-
mysql-test/t/selectivity_innodb.test | 4 +
mysql-test/t/selectivity_no_engine.test | 1 +
mysql-test/t/session_tracker_last_gtid.test | 19 +
mysql-test/t/set_password.test | 147 +
mysql-test/t/set_password_plugin-9835.test | 131 -
mysql-test/t/set_statement.test | 6 +
mysql-test/t/show_bad_definer-5553.test | 2 +
mysql-test/t/show_check.test | 27 +-
mysql-test/t/show_explain.test | 182 +-
mysql-test/t/show_explain_non_select.test | 8 +-
mysql-test/t/show_explain_ps.test | 21 +-
mysql-test/t/show_grants_with_plugin-7985.test | 2 +-
mysql-test/t/slowlog_enospace-10508.test | 5 +-
mysql-test/t/sp-code.test | 3 +-
mysql-test/t/sp-error.test | 2 +
mysql-test/t/sp-innodb.test | 42 +
mysql-test/t/sp-security.test | 36 +-
mysql-test/t/sp-ucs2.test | 16 +-
mysql-test/t/sp.test | 157 +-
mysql-test/t/sp_notembedded.test | 2 +-
mysql-test/t/sp_trans.test | 2 +-
mysql-test/t/ssl-big.test | 1 +
mysql-test/t/ssl.test | 7 +-
mysql-test/t/ssl_7937.test | 13 +-
mysql-test/t/ssl_8k_key.test | 3 -
mysql-test/t/ssl_cert_verify.test | 43 -
mysql-test/t/ssl_cipher-master.opt | 1 -
mysql-test/t/ssl_cipher.test | 110 +-
mysql-test/t/ssl_compress.test | 1 +
mysql-test/t/ssl_crl-master.opt | 4 -
mysql-test/t/ssl_crl.combinations | 5 +
mysql-test/t/ssl_crl.test | 15 +-
mysql-test/t/ssl_crl_clients-master.opt | 4 -
mysql-test/t/ssl_crl_clients.test | 41 +-
mysql-test/t/ssl_crl_clients_valid-master.opt | 4 -
mysql-test/t/ssl_crl_clients_valid.test | 23 -
mysql-test/t/ssl_crl_clrpath-master.opt | 4 -
mysql-test/t/ssl_crl_clrpath.test | 16 -
mysql-test/t/ssl_system_ca.combinations | 11 +
mysql-test/t/ssl_system_ca.test | 20 +
mysql-test/t/ssl_verify_ip.opt | 3 +
mysql-test/t/ssl_verify_ip.test | 3 +
mysql-test/t/stat_tables-enospc.test | 8 +-
mysql-test/t/stat_tables.test | 264 +
mysql-test/t/statistics.test | 45 +
mysql-test/t/statistics_close.test | 18 +
mysql-test/t/status2.test | 4 +-
mysql-test/t/subselect-crash_15755.test | 60 +
mysql-test/t/subselect.test | 42 +-
mysql-test/t/subselect2.test | 23 +-
mysql-test/t/subselect3.inc | 1306 +
mysql-test/t/subselect3.test | 1316 +-
mysql-test/t/subselect3_jcl6.test | 15 +-
mysql-test/t/subselect4.test | 2 +
mysql-test/t/subselect_exists2in.test | 1 +
mysql-test/t/subselect_extra.test | 1 +
mysql-test/t/subselect_extra_no_semijoin.test | 31 +-
mysql-test/t/subselect_mat.test | 13 +
mysql-test/t/subselect_mat_cost.test | 6 +-
mysql-test/t/subselect_mat_cost_bugs.test | 1 +
mysql-test/t/subselect_no_semijoin.test | 23 +
mysql-test/t/subselect_sj.test | 111 +-
mysql-test/t/subselect_sj2.test | 4 +-
mysql-test/t/subselect_sj2_jcl6.test | 4 -
mysql-test/t/subselect_sj2_mat.test | 180 +
mysql-test/t/subselect_sj_jcl6.test | 8 +-
mysql-test/t/subselect_sj_mat.test | 210 +-
mysql-test/t/subselect_sj_nonmerged.test | 2 +
mysql-test/t/sum_distinct-big.test | 48 +-
mysql-test/t/table_options-5867.opt | 1 +
mysql-test/t/temp_table.test | 44 +
mysql-test/t/timezone2.test | 31 +
mysql-test/t/tmp_table_count-7586.test | 4 +
mysql-test/t/trigger-compat.test | 3 +-
mysql-test/t/trigger.test | 49 +-
mysql-test/t/trigger_notembedded.test | 3 +-
mysql-test/t/trigger_null-8605.test | 4 +
mysql-test/t/truncate-stale-6500.test | 3 +-
mysql-test/t/truncate_badse.opt | 1 +
mysql-test/t/type_bit.test | 34 +
mysql-test/t/type_blob.test | 23 +
mysql-test/t/type_date.test | 38 +
mysql-test/t/type_datetime.test | 100 +-
mysql-test/t/type_decimal.test | 42 +
mysql-test/t/type_float.test | 30 +
mysql-test/t/type_int.test | 45 +
mysql-test/t/type_newdecimal.test | 89 +-
mysql-test/t/type_time.test | 34 +
mysql-test/t/type_time_6065.test | 2 +
mysql-test/t/type_varchar.opt | 1 +
mysql-test/t/type_year.test | 20 +-
mysql-test/t/udf.test | 13 +
mysql-test/t/udf_query_cache.test | 4 +-
mysql-test/t/union.test | 57 +-
mysql-test/t/union_crash-714.test | 4 +-
mysql-test/t/uniques_crash-7912.test | 26 -
mysql-test/t/update.test | 19 +
mysql-test/t/update_innodb.test | 29 +
mysql-test/t/upgrade.opt | 1 +
mysql-test/t/upgrade.test | 2 +-
mysql-test/t/user_var-binlog.test | 1 +
mysql-test/t/userstat-badlogin-4824.test | 3 +-
mysql-test/t/userstat.opt | 1 +
mysql-test/t/userstat.test | 7 +-
mysql-test/t/variables-master.opt | 2 +-
mysql-test/t/variables-notembedded.test | 20 +-
mysql-test/t/variables.test | 23 +-
mysql-test/t/view.test | 48 +-
mysql-test/t/view_grant.test | 5 +
mysql-test/t/warnings_debug.test | 2 +
mysql-test/t/win.test | 384 +-
mysql-test/t/win_lead_lag.test | 13 +
mysql-test/t/win_percent_cume.test | 6 +-
mysql-test/t/win_rank.test | 17 +-
mysql-test/t/win_std.test | 4 +
mysql-test/t/xtradb_mrr.test | 3 +
mysql-test/unstable-tests | 1150 +-
mysql-test/valgrind.supp | 152 +-
mysys/CMakeLists.txt | 7 +-
mysys/array.c | 2 +-
mysys/base64.c | 2 +-
mysys/charset-def.c | 2 +-
mysys/charset.c | 220 +-
mysys/checksum.c | 2 +-
mysys/errors.c | 2 +-
mysys/file_logger.c | 2 +-
mysys/get_password.c | 2 +-
mysys/hash.c | 4 +-
mysys/lf_alloc-pin.c | 2 +-
mysys/lf_dynarray.c | 2 +-
mysys/lf_hash.c | 2 +-
mysys/list.c | 2 +-
mysys/mf_arr_appstr.c | 2 +-
mysys/mf_cache.c | 2 +-
mysys/mf_dirname.c | 2 +-
mysys/mf_fn_ext.c | 2 +-
mysys/mf_format.c | 2 +-
mysys/mf_getdate.c | 2 +-
mysys/mf_iocache.c | 22 +-
mysys/mf_iocache2.c | 67 +-
mysys/mf_keycache.c | 2 +-
mysys/mf_keycaches.c | 2 +-
mysys/mf_loadpath.c | 2 +-
mysys/mf_pack.c | 2 +-
mysys/mf_path.c | 2 +-
mysys/mf_qsort.c | 2 +-
mysys/mf_qsort2.c | 2 +-
mysys/mf_radix.c | 2 +-
mysys/mf_same.c | 2 +-
mysys/mf_sort.c | 2 +-
mysys/mf_soundex.c | 2 +-
mysys/mf_tempdir.c | 2 +-
mysys/mf_tempfile.c | 2 +-
mysys/mf_unixpath.c | 2 +-
mysys/mf_wcomp.c | 2 +-
mysys/mulalloc.c | 2 +-
mysys/my_access.c | 2 +-
mysys/my_addr_resolve.c | 2 +-
mysys/my_alarm.c | 2 +-
mysys/my_alloc.c | 8 +-
mysys/my_atomic.c | 2 +-
mysys/my_basename.c | 2 +-
mysys/my_bit.c | 2 +-
mysys/my_bitmap.c | 2 +-
mysys/my_chmod.c | 2 +-
mysys/my_chsize.c | 2 +-
mysys/my_compare.c | 2 +-
mysys/my_compress.c | 2 +-
mysys/my_conio.c | 2 +-
mysys/my_copy.c | 2 +-
mysys/my_create.c | 2 +-
mysys/my_default.c | 2 +-
mysys/my_delete.c | 63 +-
mysys/my_div.c | 2 +-
mysys/my_dlerror.c | 2 +-
mysys/my_error.c | 2 +-
mysys/my_file.c | 9 +-
mysys/my_fopen.c | 2 +-
mysys/my_fstream.c | 2 +-
mysys/my_gethwaddr.c | 2 +-
mysys/my_getncpus.c | 2 +-
mysys/my_getopt.c | 2 +-
mysys/my_getpagesize.c | 2 +-
mysys/my_getsystime.c | 2 +-
mysys/my_getwd.c | 2 +-
mysys/my_init.c | 2 +-
mysys/my_largepage.c | 2 +-
mysys/my_lib.c | 2 +-
mysys/my_libwrap.c | 2 +-
mysys/my_lock.c | 2 +-
mysys/my_lockmem.c | 2 +-
mysys/my_malloc.c | 3 +-
mysys/my_memmem.c | 2 +-
mysys/my_mess.c | 2 +-
mysys/my_mkdir.c | 2 +-
mysys/my_mmap.c | 2 +-
mysys/my_new.cc | 2 +-
mysys/my_once.c | 2 +-
mysys/my_open.c | 2 +-
mysys/my_port.c | 2 +-
mysys/my_pread.c | 30 +-
mysys/my_pthread.c | 2 +-
mysys/my_quick.c | 2 +-
mysys/my_rdtsc.c | 2 +-
mysys/my_read.c | 50 +-
mysys/my_redel.c | 2 +-
mysys/my_rename.c | 7 +-
mysys/my_rnd.c | 2 +-
mysys/my_safehash.c | 2 +-
mysys/my_safehash.h | 2 +-
mysys/my_seek.c | 2 +-
mysys/my_sleep.c | 2 +-
mysys/my_static.c | 2 +-
mysys/my_static.h | 2 +-
mysys/my_symlink.c | 4 +-
mysys/my_symlink2.c | 2 +-
mysys/my_sync.c | 2 +-
mysys/my_thr_init.c | 2 +-
mysys/my_timer_cycles.il | 2 +-
mysys/my_uuid.c | 2 +-
mysys/my_wincond.c | 2 +-
mysys/my_windac.c | 2 +-
mysys/my_winerr.c | 2 +-
mysys/my_winfile.c | 2 +-
mysys/my_winthread.c | 2 +-
mysys/my_write.c | 2 +-
mysys/mysys_priv.h | 2 +-
mysys/psi_noop.c | 2 +-
mysys/ptr_cmp.c | 9 +-
mysys/safemalloc.c | 4 +-
mysys/stacktrace.c | 2 +-
mysys/string.c | 2 +-
mysys/test_charset.c | 2 +-
mysys/test_dir.c | 2 +-
mysys/test_thr_mutex.c | 2 +-
mysys/test_xml.c | 2 +-
mysys/testhash.c | 2 +-
mysys/thr_alarm.c | 2 +-
mysys/thr_lock.c | 2 +-
mysys/thr_mutex.c | 2 +-
mysys/thr_rwlock.c | 2 +-
mysys/thr_timer.c | 2 +-
mysys/tree.c | 50 +-
mysys/typelib.c | 2 +-
mysys/waiting_threads.c | 2 +-
mysys/wqueue.c | 2 +-
mysys_ssl/CMakeLists.txt | 2 +-
mysys_ssl/my_crypt.cc | 7 +-
mysys_ssl/my_md5.cc | 2 +-
mysys_ssl/my_sha.ic | 2 +-
mysys_ssl/my_sha1.cc | 2 +-
mysys_ssl/my_sha224.cc | 2 +-
mysys_ssl/my_sha256.cc | 2 +-
mysys_ssl/my_sha384.cc | 2 +-
mysys_ssl/my_sha512.cc | 2 +-
mysys_ssl/yassl.cc | 2 +-
pcre/AUTHORS | 6 +-
pcre/ChangeLog | 96 +
pcre/INSTALL | 320 +-
pcre/LICENCE | 10 +-
pcre/NEWS | 16 +
pcre/NON-AUTOTOOLS-BUILD | 15 +-
pcre/configure.ac | 26 +-
pcre/doc/html/NON-AUTOTOOLS-BUILD.txt | 15 +-
pcre/pcre.h.in | 8 +-
pcre/pcre_compile.c | 20 +-
pcre/pcre_dfa_exec.c | 5 +-
pcre/pcre_exec.c | 10 +-
pcre/pcre_jit_compile.c | 409 +-
pcre/pcrecpp.cc | 64 +-
pcre/pcrecpp_unittest.cc | 34 +-
pcre/pcregrep.c | 59 +-
pcre/pcreposix.c | 6 +-
pcre/pcretest.c | 3 +-
pcre/testdata/testinput1 | 15 +
pcre/testdata/testinput2 | 11 +
pcre/testdata/testinput4 | 3 +
pcre/testdata/testinput5 | 6 +
pcre/testdata/testoutput1 | 24 +
pcre/testdata/testoutput2 | 20 +
pcre/testdata/testoutput4 | 4 +
pcre/testdata/testoutput5 | 8 +
plugin/audit_null/CMakeLists.txt | 2 +-
plugin/audit_null/audit_null.c | 2 +-
plugin/auth_dialog/CMakeLists.txt | 2 +-
plugin/auth_dialog/dialog.c | 2 +-
plugin/auth_ed25519/CMakeLists.txt | 6 +-
plugin/auth_ed25519/client_ed25519.c | 2 +-
plugin/auth_ed25519/common.h | 2 +-
plugin/auth_ed25519/ed25519-t.c | 2 +-
plugin/auth_ed25519/server_ed25519.c | 6 +-
plugin/auth_examples/CMakeLists.txt | 2 +-
plugin/auth_examples/auth_0x0100.c | 2 +-
plugin/auth_examples/clear_password_client.c | 2 +-
plugin/auth_examples/dialog_examples.c | 2 +-
plugin/auth_examples/qa_auth_client.c | 2 +-
plugin/auth_examples/qa_auth_interface.c | 2 +-
plugin/auth_examples/qa_auth_server.c | 2 +-
plugin/auth_examples/test_plugin.c | 2 +-
plugin/auth_gssapi/cmake/FindGSSAPI.cmake | 2 +-
plugin/auth_gssapi/gssapi_server.cc | 10 +-
.../auth_gssapi/mysql-test/auth_gssapi/basic.test | 1 +
plugin/auth_gssapi/sspi_server.cc | 11 +-
plugin/auth_pam/CMakeLists.txt | 11 +
plugin/auth_pam/auth_pam.c | 16 +-
plugin/auth_pam/mapper/pam_user_map.c | 6 +-
plugin/auth_pam/mapper/user_map.conf | 13 +
plugin/auth_pipe/auth_pipe.c | 2 +-
plugin/auth_socket/CMakeLists.txt | 2 +-
plugin/auth_socket/auth_socket.c | 2 +-
plugin/aws_key_management/CMakeLists.txt | 8 +-
.../aws_key_management_plugin.cc | 31 +-
.../cracklib_password_check.c | 2 +-
plugin/daemon_example/CMakeLists.txt | 2 +-
plugin/daemon_example/daemon_example.cc | 2 +-
.../debug_key_management_plugin.cc | 2 +-
plugin/disks/information_schema_disks.cc | 12 +-
.../mysql-test/disks/disks_notembedded.result | 22 +
.../disks/mysql-test/disks/disks_notembedded.test | 25 +
.../example_key_management_plugin.cc | 2 +-
plugin/feedback/feedback.cc | 2 +-
plugin/feedback/feedback.h | 2 +-
plugin/feedback/sender_thread.cc | 2 +-
plugin/feedback/url_base.cc | 2 +-
plugin/feedback/url_http.cc | 2 +-
plugin/feedback/utils.cc | 2 +-
.../file_key_management_plugin.cc | 2 +-
plugin/file_key_management/parser.cc | 2 +-
plugin/file_key_management/parser.h | 2 +-
plugin/fulltext/CMakeLists.txt | 2 +-
plugin/fulltext/plugin_example.c | 2 +-
plugin/metadata_lock_info/metadata_lock_info.cc | 2 +-
plugin/query_response_time/plugin.cc | 2 +-
plugin/semisync/CMakeLists.txt | 2 +-
plugin/semisync/semisync.cc | 2 +-
plugin/semisync/semisync.h | 2 +-
plugin/semisync/semisync_master.cc | 2 +-
plugin/semisync/semisync_master.h | 2 +-
plugin/semisync/semisync_master_plugin.cc | 2 +-
plugin/semisync/semisync_slave.cc | 2 +-
plugin/semisync/semisync_slave.h | 2 +-
plugin/semisync/semisync_slave_plugin.cc | 2 +-
plugin/server_audit/CMakeLists.txt | 2 +-
plugin/server_audit/COPYING | 4 +-
plugin/server_audit/plugin_audit_v4.h | 2 +-
plugin/server_audit/server_audit.c | 265 +-
.../simple_password_check/simple_password_check.c | 2 +-
plugin/sql_errlog/CMakeLists.txt | 2 +-
plugin/sql_errlog/sql_errlog.c | 2 +-
.../mysql-test/user_variables/basic.result | 2 +-
plugin/user_variables/user_variables.cc | 4 +-
plugin/win_auth_client/CMakeLists.txt | 2 +-
plugin/win_auth_client/common.cc | 6 +-
plugin/win_auth_client/common.h | 2 +-
plugin/win_auth_client/handshake.cc | 2 +-
plugin/win_auth_client/handshake.h | 2 +-
plugin/win_auth_client/handshake_client.cc | 2 +-
plugin/win_auth_client/log_client.cc | 2 +-
plugin/win_auth_client/plugin_client.cc | 2 +-
plugin/wsrep_info/mysql-test/wsrep_info/my.cnf | 3 +-
plugin/wsrep_info/mysql-test/wsrep_info/suite.pm | 23 +-
plugin/wsrep_info/plugin.cc | 2 +-
scripts/CMakeLists.txt | 24 +-
scripts/comp_sql.c | 2 +-
scripts/fill_help_tables.sql | 2 +-
scripts/galera_new_cluster.sh | 3 -
scripts/galera_recovery.sh | 5 +-
scripts/make_win_bin_dist | 2 +-
scripts/maria_add_gis_sp.sql.in | 6 +-
scripts/mariadb-service-convert | 2 +-
scripts/msql2mysql.sh | 2 +-
scripts/mysql_config.pl.in | 2 +-
scripts/mysql_config.sh | 2 +-
scripts/mysql_convert_table_format.sh | 2 +-
scripts/mysql_find_rows.sh | 2 +-
scripts/mysql_fix_extensions.sh | 2 +-
scripts/mysql_install_db.pl.in | 4 +-
scripts/mysql_install_db.sh | 78 +-
scripts/mysql_secure_installation.pl.in | 2 +-
scripts/mysql_secure_installation.sh | 2 +-
scripts/mysql_setpermission.sh | 2 +-
scripts/mysql_system_tables.sql | 10 +-
scripts/mysql_system_tables_data.sql | 7 +-
scripts/mysql_system_tables_fix.sql | 67 +-
scripts/mysql_test_data_timezone.sql | 2 +-
scripts/mysql_test_db.sql | 16 +
scripts/mysqlaccess.sh | 4 +-
scripts/mysqld_multi.sh | 38 +-
scripts/mysqld_safe.sh | 17 +-
scripts/mysqldumpslow.sh | 11 +-
scripts/mysqlhotcopy.sh | 2 +-
scripts/mytop.sh | 19 +-
scripts/wsrep_sst_common.sh | 136 +-
scripts/wsrep_sst_mariabackup.sh | 272 +-
scripts/wsrep_sst_mysqldump.sh | 15 +-
scripts/wsrep_sst_rsync.sh | 173 +-
scripts/wsrep_sst_xtrabackup-v2.sh | 95 +-
scripts/wsrep_sst_xtrabackup.sh | 17 +-
sql-bench/CMakeLists.txt | 2 +-
sql-bench/as3ap.sh | 2 +-
sql-bench/bench-count-distinct.sh | 2 +-
sql-bench/bench-init.pl.sh | 2 +-
sql-bench/compare-results.sh | 2 +-
sql-bench/copy-db.sh | 2 +-
sql-bench/crash-me.sh | 2 +-
sql-bench/run-all-tests.sh | 2 +-
sql-bench/server-cfg.sh | 2 +-
sql-bench/test-ATIS.sh | 2 +-
sql-bench/test-alter-table.sh | 2 +-
sql-bench/test-big-tables.sh | 2 +-
sql-bench/test-connect.sh | 2 +-
sql-bench/test-create.sh | 2 +-
sql-bench/test-insert.sh | 2 +-
sql-bench/test-select.sh | 2 +-
sql-bench/test-transactions.sh | 2 +-
sql-bench/test-wisconsin.sh | 2 +-
sql-common/client.c | 333 +-
sql-common/client_plugin.c | 12 +-
sql-common/conf_to_src.c | 2 +-
sql-common/errmsg.c | 2 +-
sql-common/my_time.c | 4 +-
sql-common/my_user.c | 2 +-
sql-common/pack.c | 2 +-
sql/CMakeLists.txt | 65 +-
sql/authors.h | 2 +-
sql/bounded_queue.h | 2 +-
sql/client_settings.h | 2 +-
sql/compat56.cc | 5 +-
sql/compat56.h | 2 +-
sql/contributors.h | 6 +-
sql/create_options.cc | 2 +-
sql/create_options.h | 2 +-
sql/custom_conf.h | 2 +-
sql/datadict.cc | 2 +-
sql/datadict.h | 2 +-
sql/debug_sync.cc | 8 +-
sql/debug_sync.h | 2 +-
sql/derror.cc | 77 +-
sql/derror.h | 2 +-
sql/des_key_file.cc | 2 +-
sql/des_key_file.h | 2 +-
sql/discover.cc | 2 +-
sql/discover.h | 2 +-
sql/encryption.cc | 17 +-
sql/event_data_objects.cc | 2 +-
sql/event_data_objects.h | 2 +-
sql/event_db_repository.cc | 2 +-
sql/event_db_repository.h | 2 +-
sql/event_parse_data.cc | 2 +-
sql/event_parse_data.h | 2 +-
sql/event_queue.cc | 2 +-
sql/event_queue.h | 2 +-
sql/event_scheduler.cc | 2 +-
sql/event_scheduler.h | 2 +-
sql/events.cc | 68 +-
sql/events.h | 2 +-
sql/field.cc | 436 +-
sql/field.h | 254 +-
sql/field_conv.cc | 4 +-
sql/filesort.cc | 3 +-
sql/filesort.h | 2 +-
sql/filesort_utils.cc | 2 +-
sql/filesort_utils.h | 2 +-
sql/gcalc_slicescan.cc | 15 +-
sql/gcalc_slicescan.h | 9 +-
sql/gcalc_tools.cc | 13 +-
sql/gcalc_tools.h | 3 +-
sql/gen_lex_hash.cc | 2 +-
sql/gen_lex_token.cc | 2 +-
sql/gen_win_tzname_data.ps1 | 11 +
sql/group_by_handler.cc | 2 +-
sql/group_by_handler.h | 2 +-
sql/gstream.cc | 2 +-
sql/gstream.h | 2 +-
sql/ha_partition.cc | 231 +-
sql/ha_partition.h | 17 +-
sql/handler.cc | 183 +-
sql/handler.h | 54 +-
sql/hash_filo.cc | 2 +-
sql/hash_filo.h | 2 +-
sql/hostname.cc | 2 +-
sql/hostname.h | 2 +-
sql/init.cc | 2 +-
sql/init.h | 2 +-
sql/innodb_priv.h | 2 +-
sql/item.cc | 563 +-
sql/item.h | 305 +-
sql/item_buff.cc | 2 +-
sql/item_cmpfunc.cc | 555 +-
sql/item_cmpfunc.h | 104 +-
sql/item_create.cc | 43 +-
sql/item_create.h | 2 +-
sql/item_func.cc | 188 +-
sql/item_func.h | 205 +-
sql/item_geofunc.cc | 11 +-
sql/item_geofunc.h | 74 +-
sql/item_inetfunc.cc | 2 +-
sql/item_inetfunc.h | 14 +-
sql/item_jsonfunc.cc | 522 +-
sql/item_jsonfunc.h | 54 +-
sql/item_row.cc | 3 +-
sql/item_row.h | 2 +-
sql/item_strfunc.cc | 384 +-
sql/item_strfunc.h | 186 +-
sql/item_subselect.cc | 102 +-
sql/item_subselect.h | 26 +-
sql/item_sum.cc | 164 +-
sql/item_sum.h | 41 +-
sql/item_timefunc.cc | 123 +-
sql/item_timefunc.h | 156 +-
sql/item_windowfunc.cc | 12 +-
sql/item_windowfunc.h | 23 +-
sql/item_xmlfunc.cc | 19 +-
sql/item_xmlfunc.h | 7 +-
sql/key.cc | 5 +-
sql/key.h | 2 +-
sql/keycaches.cc | 15 +-
sql/keycaches.h | 7 +-
sql/lex.h | 2 +-
sql/lex_symbol.h | 2 +-
sql/lock.cc | 18 +-
sql/lock.h | 3 +-
sql/log.cc | 100 +-
sql/log.h | 2 +-
sql/log_event.cc | 513 +-
sql/log_event.h | 31 +-
sql/log_event_old.cc | 45 +-
sql/log_event_old.h | 2 +-
sql/log_slow.h | 3 +-
sql/main.cc | 2 +-
sql/mdl.cc | 2 +-
sql/mdl.h | 12 +-
sql/mem_root_array.h | 2 +-
sql/message.h | 2 +-
sql/mf_iocache.cc | 2 +-
sql/mf_iocache_encr.cc | 6 +-
sql/multi_range_read.cc | 15 +-
sql/multi_range_read.h | 2 +-
sql/my_apc.cc | 2 +-
sql/my_apc.h | 2 +-
sql/my_decimal.cc | 2 +-
sql/my_decimal.h | 2 +-
sql/my_json_writer.cc | 9 +-
sql/my_json_writer.h | 3 +-
sql/mysql_install_db.cc | 76 +-
sql/mysql_upgrade_service.cc | 25 +-
sql/mysqld.cc | 188 +-
sql/mysqld.h | 19 +-
sql/mysqld_suffix.h | 2 +-
sql/net_serv.cc | 2 +-
sql/opt_index_cond_pushdown.cc | 2 +-
sql/opt_range.cc | 151 +-
sql/opt_range.h | 7 +-
sql/opt_range_mrr.cc | 56 +-
sql/opt_subselect.cc | 212 +-
sql/opt_subselect.h | 28 +-
sql/opt_sum.cc | 2 +-
sql/opt_table_elimination.cc | 2 +-
sql/parse_file.cc | 2 +-
sql/parse_file.h | 2 +-
sql/partition_element.h | 2 +-
sql/partition_info.cc | 36 +-
sql/partition_info.h | 3 +-
sql/password.c | 2 +-
sql/plistsort.c | 2 +-
sql/procedure.cc | 2 +-
sql/procedure.h | 2 +-
sql/protocol.cc | 21 +-
sql/protocol.h | 69 +-
sql/records.cc | 5 +-
sql/records.h | 2 +-
sql/repl_failsafe.cc | 2 +-
sql/repl_failsafe.h | 2 +-
sql/replication.h | 2 +-
sql/rpl_constants.h | 2 +-
sql/rpl_filter.cc | 2 +-
sql/rpl_filter.h | 2 +-
sql/rpl_gtid.cc | 80 +-
sql/rpl_gtid.h | 4 +-
sql/rpl_handler.cc | 2 +-
sql/rpl_handler.h | 2 +-
sql/rpl_injector.cc | 2 +-
sql/rpl_injector.h | 2 +-
sql/rpl_mi.cc | 13 +-
sql/rpl_mi.h | 2 +-
sql/rpl_parallel.cc | 48 +-
sql/rpl_record.cc | 11 +-
sql/rpl_record.h | 2 +-
sql/rpl_record_old.cc | 2 +-
sql/rpl_record_old.h | 2 +-
sql/rpl_reporting.cc | 2 +-
sql/rpl_reporting.h | 2 +-
sql/rpl_rli.cc | 81 +-
sql/rpl_rli.h | 13 +-
sql/rpl_tblmap.cc | 22 +-
sql/rpl_tblmap.h | 12 +-
sql/rpl_utility.cc | 83 +-
sql/rpl_utility.h | 2 +-
sql/scheduler.cc | 2 +-
sql/scheduler.h | 2 +-
sql/set_var.cc | 50 +-
sql/set_var.h | 14 +-
sql/share/CMakeLists.txt | 14 +-
sql/share/charsets/Index.xml | 2 +-
sql/share/charsets/armscii8.xml | 2 +-
sql/share/charsets/ascii.xml | 2 +-
sql/share/charsets/cp1250.xml | 2 +-
sql/share/charsets/cp1251.xml | 2 +-
sql/share/charsets/cp1256.xml | 2 +-
sql/share/charsets/cp1257.xml | 2 +-
sql/share/charsets/cp850.xml | 2 +-
sql/share/charsets/cp852.xml | 2 +-
sql/share/charsets/cp866.xml | 2 +-
sql/share/charsets/dec8.xml | 2 +-
sql/share/charsets/geostd8.xml | 2 +-
sql/share/charsets/greek.xml | 2 +-
sql/share/charsets/hebrew.xml | 2 +-
sql/share/charsets/hp8.xml | 2 +-
sql/share/charsets/keybcs2.xml | 2 +-
sql/share/charsets/koi8r.xml | 2 +-
sql/share/charsets/koi8u.xml | 2 +-
sql/share/charsets/languages.html | 2 +-
sql/share/charsets/latin1.xml | 2 +-
sql/share/charsets/latin2.xml | 2 +-
sql/share/charsets/latin5.xml | 2 +-
sql/share/charsets/latin7.xml | 2 +-
sql/share/charsets/macce.xml | 2 +-
sql/share/charsets/macroman.xml | 2 +-
sql/share/charsets/swe7.xml | 2 +-
sql/share/errmsg-utf8.txt | 43 +-
sql/signal_handler.cc | 48 +-
sql/slave.cc | 83 +-
sql/slave.h | 2 +-
sql/sp.cc | 4 +-
sql/sp.h | 2 +-
sql/sp_cache.cc | 4 +-
sql/sp_cache.h | 2 +-
sql/sp_head.cc | 85 +-
sql/sp_head.h | 19 +-
sql/sp_pcontext.cc | 2 +-
sql/sp_pcontext.h | 2 +-
sql/sp_rcontext.cc | 8 +-
sql/sp_rcontext.h | 2 +-
sql/spatial.cc | 14 +-
sql/spatial.h | 2 +-
sql/sql_acl.cc | 441 +-
sql/sql_acl.h | 4 +-
sql/sql_admin.cc | 56 +-
sql/sql_admin.h | 2 +-
sql/sql_alter.cc | 49 +-
sql/sql_alter.h | 9 +-
sql/sql_analyse.cc | 6 +-
sql/sql_analyse.h | 7 +-
sql/sql_analyze_stmt.cc | 12 +-
sql/sql_analyze_stmt.h | 2 +-
sql/sql_array.h | 12 +-
sql/sql_audit.cc | 18 +-
sql/sql_audit.h | 25 +-
sql/sql_base.cc | 531 +-
sql/sql_base.h | 31 +-
sql/sql_basic_types.h | 2 +-
sql/sql_binlog.cc | 93 +-
sql/sql_binlog.h | 2 +-
sql/sql_bitmap.h | 2 +-
sql/sql_bootstrap.cc | 2 +-
sql/sql_bootstrap.h | 2 +-
sql/sql_builtin.cc.in | 2 +-
sql/sql_cache.cc | 2 +-
sql/sql_cache.h | 2 +-
sql/sql_callback.h | 2 +-
sql/sql_class.cc | 319 +-
sql/sql_class.h | 194 +-
sql/sql_client.cc | 2 +-
sql/sql_cmd.h | 43 +-
sql/sql_connect.cc | 11 +-
sql/sql_connect.h | 2 +-
sql/sql_const.h | 22 +-
sql/sql_crypt.cc | 2 +-
sql/sql_crypt.h | 2 +-
sql/sql_cte.cc | 56 +-
sql/sql_cte.h | 19 +-
sql/sql_cursor.cc | 2 +-
sql/sql_cursor.h | 2 +-
sql/sql_db.cc | 39 +-
sql/sql_db.h | 7 +-
sql/sql_delete.cc | 19 +-
sql/sql_delete.h | 2 +-
sql/sql_derived.cc | 39 +-
sql/sql_derived.h | 3 +-
sql/sql_digest.cc | 2 +-
sql/sql_digest.h | 2 +-
sql/sql_digest_stream.h | 2 +-
sql/sql_do.cc | 2 +-
sql/sql_do.h | 2 +-
sql/sql_error.cc | 2 +-
sql/sql_error.h | 9 +-
sql/sql_explain.cc | 18 +-
sql/sql_explain.h | 3 +-
sql/sql_expression_cache.cc | 2 +-
sql/sql_expression_cache.h | 2 +-
sql/sql_get_diagnostics.cc | 2 +-
sql/sql_get_diagnostics.h | 2 +-
sql/sql_handler.cc | 14 +-
sql/sql_handler.h | 2 +-
sql/sql_help.cc | 2 +-
sql/sql_help.h | 2 +-
sql/sql_hset.h | 2 +-
sql/sql_insert.cc | 198 +-
sql/sql_insert.h | 2 +-
sql/sql_join_cache.cc | 5 +-
sql/sql_join_cache.h | 2 +-
sql/sql_lex.cc | 55 +-
sql/sql_lex.h | 156 +-
sql/sql_lifo_buffer.h | 2 +-
sql/sql_list.cc | 2 +-
sql/sql_list.h | 30 +-
sql/sql_load.cc | 454 +-
sql/sql_load.h | 2 +-
sql/sql_locale.cc | 2 +-
sql/sql_locale.h | 2 +-
sql/sql_manager.cc | 2 +-
sql/sql_manager.h | 2 +-
sql/sql_mode.cc | 34 +
sql/sql_mode.h | 162 +
sql/sql_parse.cc | 1005 +-
sql/sql_parse.h | 3 +-
sql/sql_partition.cc | 90 +-
sql/sql_partition.h | 6 +-
sql/sql_partition_admin.cc | 9 +-
sql/sql_partition_admin.h | 2 +-
sql/sql_plist.h | 9 +-
sql/sql_plugin.cc | 34 +-
sql/sql_plugin.h | 3 +-
sql/sql_plugin_compat.h | 2 +-
sql/sql_plugin_services.ic | 9 +-
sql/sql_prepare.cc | 113 +-
sql/sql_prepare.h | 2 +-
sql/sql_priv.h | 10 +-
sql/sql_profile.cc | 2 +-
sql/sql_profile.h | 2 +-
sql/sql_reload.cc | 15 +-
sql/sql_reload.h | 2 +-
sql/sql_rename.cc | 4 +-
sql/sql_rename.h | 2 +-
sql/sql_repl.cc | 101 +-
sql/sql_repl.h | 2 +-
sql/sql_select.cc | 750 +-
sql/sql_select.h | 25 +-
sql/sql_servers.cc | 2 +-
sql/sql_servers.h | 2 +-
sql/sql_show.cc | 262 +-
sql/sql_show.h | 2 +-
sql/sql_signal.cc | 2 +-
sql/sql_signal.h | 2 +-
sql/sql_sort.h | 2 +-
sql/sql_state.c | 2 +-
sql/sql_statistics.cc | 297 +-
sql/sql_statistics.h | 38 +-
sql/sql_string.cc | 57 +-
sql/sql_string.h | 26 +-
sql/sql_table.cc | 996 +-
sql/sql_table.h | 2 +-
sql/sql_tablespace.cc | 2 +-
sql/sql_tablespace.h | 2 +-
sql/sql_test.cc | 2 +-
sql/sql_test.h | 2 +-
sql/sql_time.cc | 48 +-
sql/sql_time.h | 14 +-
sql/sql_trigger.cc | 34 +-
sql/sql_trigger.h | 4 +-
sql/sql_truncate.cc | 23 +-
sql/sql_truncate.h | 2 +-
sql/sql_type.cc | 2 +-
sql/sql_type.h | 2 +-
sql/sql_type_int.h | 72 +
sql/sql_udf.cc | 2 +-
sql/sql_udf.h | 2 +-
sql/sql_union.cc | 114 +-
sql/sql_union.h | 2 +-
sql/sql_update.cc | 256 +-
sql/sql_update.h | 2 +-
sql/sql_view.cc | 47 +-
sql/sql_view.h | 2 +-
sql/sql_window.cc | 62 +-
sql/sql_window.h | 4 +-
sql/sql_yacc.yy | 304 +-
sql/strfunc.cc | 2 +-
sql/strfunc.h | 2 +-
sql/structs.h | 38 +-
sql/sys_vars.cc | 155 +-
sql/sys_vars.ic | 139 +-
sql/sys_vars_shared.h | 3 +-
sql/table.cc | 453 +-
sql/table.h | 108 +-
sql/table_cache.cc | 19 +-
sql/table_cache.h | 2 +-
sql/temporary_tables.cc | 221 +-
sql/thr_malloc.cc | 2 +-
sql/thr_malloc.h | 2 +-
sql/threadpool.h | 2 +-
sql/threadpool_common.cc | 5 +-
sql/threadpool_generic.cc | 4 +-
sql/threadpool_win.cc | 3 +-
sql/transaction.cc | 2 +-
sql/transaction.h | 2 +-
sql/tzfile.h | 2 +-
sql/tztime.cc | 79 +-
sql/tztime.h | 2 +-
sql/udf_example.c | 2 +-
sql/uniques.cc | 2 +-
sql/uniques.h | 12 +-
sql/unireg.cc | 5 +-
sql/unireg.h | 4 +-
sql/win_tzname_data.h | 136 +
sql/winservice.c | 4 +-
sql/winservice.h | 2 +-
sql/wsrep_applier.cc | 10 +-
sql/wsrep_applier.h | 2 +-
sql/wsrep_binlog.cc | 55 +-
sql/wsrep_binlog.h | 2 +-
sql/wsrep_check_opts.cc | 2 +-
sql/wsrep_dummy.cc | 26 +-
sql/wsrep_hton.cc | 113 +-
sql/wsrep_mysqld.cc | 530 +-
sql/wsrep_mysqld.h | 51 +-
sql/wsrep_mysqld_c.h | 30 +
sql/wsrep_notify.cc | 2 +-
sql/wsrep_priv.h | 4 +-
sql/wsrep_sst.cc | 558 +-
sql/wsrep_sst.h | 4 +-
sql/wsrep_thd.cc | 156 +-
sql/wsrep_thd.h | 4 +-
sql/wsrep_utils.cc | 2 +-
sql/wsrep_utils.h | 5 +-
sql/wsrep_var.cc | 43 +-
sql/wsrep_var.h | 2 +-
sql/wsrep_xid.cc | 41 +-
sql/wsrep_xid.h | 4 +-
storage/archive/CMakeLists.txt | 2 +-
storage/archive/archive_reader.c | 2 +-
storage/archive/archive_test.c | 2 +-
storage/archive/ha_archive.cc | 66 +-
storage/archive/ha_archive.h | 5 +-
storage/blackhole/CMakeLists.txt | 2 +-
storage/blackhole/ha_blackhole.cc | 32 +-
storage/blackhole/ha_blackhole.h | 2 +-
storage/cassandra/ha_cassandra.cc | 2 +-
storage/cassandra/ha_cassandra.h | 2 +-
storage/connect/CMakeLists.txt | 111 +-
storage/connect/array.cpp | 131 +-
storage/connect/block.h | 4 +-
storage/connect/connect.cc | 74 +-
storage/connect/connect.h | 4 +-
storage/connect/csort.cpp | 22 +-
storage/connect/domdoc.cpp | 4 +-
storage/connect/filamdbf.cpp | 4 +-
storage/connect/filamtxt.cpp | 6 +-
storage/connect/filamvct.cpp | 33 +-
storage/connect/global.h | 11 +-
storage/connect/ha_connect.cc | 900 +-
storage/connect/ha_connect.h | 15 +-
storage/connect/inihandl.cpp | 2 +-
storage/connect/javaconn.cpp | 43 +-
storage/connect/javaconn.h | 1 +
storage/connect/jdbconn.cpp | 49 +-
storage/connect/jmgoconn.cpp | 11 +-
storage/connect/jsonudf.cpp | 75 +-
storage/connect/jsonudf.h | 5 +
storage/connect/libdoc.cpp | 2 +-
storage/connect/mini-global.h | 33 +
storage/connect/mycat.cc | 284 +-
storage/connect/mycat.h | 10 +-
storage/connect/myconn.cpp | 12 +-
storage/connect/mysql-test/connect/disabled.def | 2 +
storage/connect/mysql-test/connect/r/dir.result | 2 +-
storage/connect/mysql-test/connect/r/grant.result | 175 +-
storage/connect/mysql-test/connect/r/grant2.result | 258 +-
.../connect/mysql-test/connect/r/ini_grant.result | 26 +-
storage/connect/mysql-test/connect/r/jdbc.result | 15 +-
.../mysql-test/connect/r/jdbc_oracle.result | 18 +-
.../mysql-test/connect/r/jdbc_postgresql.result | 8 +
.../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/mysql_grant.result | 24 +-
.../mysql-test/connect/r/odbc_postgresql.result | 18 +-
.../connect/mysql-test/connect/r/part_table.result | 4 +-
storage/connect/mysql-test/connect/r/xml.result | 2 +-
storage/connect/mysql-test/connect/r/xml2.result | 33 +-
.../connect/mysql-test/connect/r/xml2_grant.result | 30 +-
.../connect/mysql-test/connect/r/xml2_mult.result | 8 +-
.../connect/mysql-test/connect/r/xml_grant.result | 30 +-
.../connect/mysql-test/connect/r/xml_mult.result | 8 +-
storage/connect/mysql-test/connect/t/grant.inc | 30 +-
storage/connect/mysql-test/connect/t/grant.test | 25 +-
storage/connect/mysql-test/connect/t/grant2.test | 260 +-
.../connect/mysql-test/connect/t/ini_grant.result | 89 +
.../connect/mysql-test/connect/t/ini_grant.test | 26 +-
.../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 +
.../connect/mysql-test/connect/t/mysql_grant.test | 24 +-
.../connect/mysql-test/connect/t/part_table.test | 2 +-
storage/connect/mysql-test/connect/t/xml2.test | 36 +-
storage/connect/odbconn.cpp | 12 +-
storage/connect/osutil.h | 4 +
storage/connect/plgdbsem.h | 35 +-
storage/connect/plugutil.cpp | 64 +-
storage/connect/reldef.cpp | 528 +-
storage/connect/reldef.h | 9 +-
storage/connect/rest.def | 4 +
storage/connect/restget.cpp | 90 +
storage/connect/tabcmg.cpp | 23 +-
storage/connect/tabdos.cpp | 65 +-
storage/connect/tabdos.h | 1 -
storage/connect/tabext.cpp | 51 +-
storage/connect/tabext.h | 5 +-
storage/connect/tabfix.cpp | 2 +-
storage/connect/tabfmt.cpp | 20 +-
storage/connect/tabfmt.h | 2 +-
storage/connect/tabjdbc.cpp | 102 +-
storage/connect/tabjmg.cpp | 11 +-
storage/connect/tabjson.cpp | 1921 +-
storage/connect/tabjson.h | 7 +-
storage/connect/tabmysql.cpp | 20 +-
storage/connect/tabodbc.cpp | 336 +-
storage/connect/tabpivot.cpp | 166 +-
storage/connect/tabrest.cpp | 281 +
storage/connect/tabrest.h | 50 +
storage/connect/tabtbl.cpp | 4 +-
storage/connect/tabutil.cpp | 18 +-
storage/connect/tabutil.h | 3 +-
storage/connect/tabvct.cpp | 9 +-
storage/connect/tabxml.cpp | 298 +-
storage/connect/tabxml.h | 6 +-
storage/connect/user_connect.cc | 10 +-
storage/connect/user_connect.h | 2 +-
storage/connect/valblk.cpp | 8 +-
storage/connect/value.cpp | 678 +-
storage/connect/value.h | 16 +-
storage/connect/xindex.cpp | 32 +-
storage/connect/xtable.h | 5 +-
storage/csv/CMakeLists.txt | 2 +-
storage/csv/ha_tina.cc | 4 +-
storage/csv/ha_tina.h | 2 +-
storage/csv/transparent_file.cc | 2 +-
storage/csv/transparent_file.h | 2 +-
storage/example/CMakeLists.txt | 2 +-
storage/example/ha_example.cc | 2 +-
storage/example/ha_example.h | 2 +-
storage/federated/CMakeLists.txt | 2 +-
storage/federated/ha_federated.cc | 4 +-
storage/federated/ha_federated.h | 3 +-
storage/federatedx/ha_federatedx.cc | 2 +-
storage/federatedx/ha_federatedx.h | 1 -
storage/heap/CMakeLists.txt | 2 +-
storage/heap/_check.c | 29 +-
storage/heap/_rectest.c | 2 +-
storage/heap/ha_heap.cc | 6 +-
storage/heap/ha_heap.h | 2 +-
storage/heap/heapdef.h | 2 +-
storage/heap/hp_block.c | 2 +-
storage/heap/hp_clear.c | 2 +-
storage/heap/hp_close.c | 8 +-
storage/heap/hp_create.c | 24 +-
storage/heap/hp_delete.c | 2 +-
storage/heap/hp_extra.c | 2 +-
storage/heap/hp_hash.c | 6 +-
storage/heap/hp_info.c | 2 +-
storage/heap/hp_open.c | 2 +-
storage/heap/hp_panic.c | 2 +-
storage/heap/hp_rename.c | 2 +-
storage/heap/hp_rfirst.c | 2 +-
storage/heap/hp_rkey.c | 2 +-
storage/heap/hp_rlast.c | 2 +-
storage/heap/hp_rnext.c | 2 +-
storage/heap/hp_rprev.c | 2 +-
storage/heap/hp_rrnd.c | 2 +-
storage/heap/hp_rsame.c | 2 +-
storage/heap/hp_scan.c | 6 +-
storage/heap/hp_static.c | 2 +-
storage/heap/hp_test1.c | 2 +-
storage/heap/hp_test2.c | 2 +-
storage/heap/hp_update.c | 2 +-
storage/heap/hp_write.c | 2 +-
storage/innobase/.clang-format | 11 +
storage/innobase/CMakeLists.txt | 17 +-
storage/innobase/btr/btr0btr.cc | 732 +-
storage/innobase/btr/btr0bulk.cc | 300 +-
storage/innobase/btr/btr0cur.cc | 710 +-
storage/innobase/btr/btr0defragment.cc | 93 +-
storage/innobase/btr/btr0pcur.cc | 47 +-
storage/innobase/btr/btr0scrub.cc | 17 +-
storage/innobase/btr/btr0sea.cc | 84 +-
storage/innobase/buf/buf0buddy.cc | 24 +-
storage/innobase/buf/buf0buf.cc | 1303 +-
storage/innobase/buf/buf0checksum.cc | 89 +-
storage/innobase/buf/buf0dblwr.cc | 78 +-
storage/innobase/buf/buf0dump.cc | 12 +-
storage/innobase/buf/buf0flu.cc | 48 +-
storage/innobase/buf/buf0lru.cc | 152 +-
storage/innobase/buf/buf0mtflu.cc | 2 +-
storage/innobase/buf/buf0rea.cc | 82 +-
storage/innobase/bzip2.cmake | 2 +-
storage/innobase/compile-innodb | 2 +-
storage/innobase/data/data0data.cc | 22 +-
storage/innobase/data/data0type.cc | 4 +-
storage/innobase/dict/dict0boot.cc | 43 +-
storage/innobase/dict/dict0crea.cc | 367 +-
storage/innobase/dict/dict0defrag_bg.cc | 71 +-
storage/innobase/dict/dict0dict.cc | 811 +-
storage/innobase/dict/dict0load.cc | 204 +-
storage/innobase/dict/dict0mem.cc | 52 +-
storage/innobase/dict/dict0stats.cc | 211 +-
storage/innobase/dict/dict0stats_bg.cc | 114 +-
storage/innobase/eval/eval0eval.cc | 298 +-
storage/innobase/eval/eval0proc.cc | 2 +-
storage/innobase/fil/fil0crypt.cc | 537 +-
storage/innobase/fil/fil0fil.cc | 1172 +-
storage/innobase/fil/fil0pagecompress.cc | 590 +-
storage/innobase/fsp/fsp0file.cc | 14 +-
storage/innobase/fsp/fsp0fsp.cc | 197 +-
storage/innobase/fsp/fsp0space.cc | 18 +-
storage/innobase/fsp/fsp0sysspace.cc | 19 +-
storage/innobase/fts/Makefile.query | 20 +-
storage/innobase/fts/fts0ast.cc | 13 +-
storage/innobase/fts/fts0blex.cc | 1115 +-
storage/innobase/fts/fts0blex.l | 2 +-
storage/innobase/fts/fts0config.cc | 10 +-
storage/innobase/fts/fts0fts.cc | 376 +-
storage/innobase/fts/fts0opt.cc | 627 +-
storage/innobase/fts/fts0pars.cc | 16 +-
storage/innobase/fts/fts0pars.y | 18 +-
storage/innobase/fts/fts0plugin.cc | 2 +-
storage/innobase/fts/fts0que.cc | 28 +-
storage/innobase/fts/fts0sql.cc | 109 +-
storage/innobase/fts/fts0tlex.cc | 1112 +-
storage/innobase/fts/fts0tlex.l | 2 +-
storage/innobase/fts/make_parser.sh | 2 +-
storage/innobase/fut/fut0lst.cc | 2 +-
storage/innobase/gis/gis0geo.cc | 82 +-
storage/innobase/gis/gis0rtree.cc | 148 +-
storage/innobase/gis/gis0sea.cc | 60 +-
storage/innobase/ha/ha0ha.cc | 2 +-
storage/innobase/ha/ha0storage.cc | 3 +-
storage/innobase/ha/hash0hash.cc | 2 +-
storage/innobase/handler/ha_innodb.cc | 3119 +-
storage/innobase/handler/ha_innodb.h | 161 +-
storage/innobase/handler/ha_xtradb.h | 2 +-
storage/innobase/handler/handler0alter.cc | 1204 +-
storage/innobase/handler/i_s.cc | 421 +-
storage/innobase/handler/i_s.h | 8 +-
storage/innobase/ibuf/ibuf0ibuf.cc | 331 +-
storage/innobase/include/btr0btr.h | 201 +-
storage/innobase/include/btr0btr.ic | 69 +-
storage/innobase/include/btr0bulk.h | 65 +-
storage/innobase/include/btr0cur.h | 71 +-
storage/innobase/include/btr0cur.ic | 20 +-
storage/innobase/include/btr0defragment.h | 2 +-
storage/innobase/include/btr0pcur.h | 44 +-
storage/innobase/include/btr0pcur.ic | 64 +-
storage/innobase/include/btr0scrub.h | 6 -
storage/innobase/include/btr0sea.h | 21 +-
storage/innobase/include/btr0sea.ic | 2 +-
storage/innobase/include/btr0types.h | 7 +-
storage/innobase/include/buf0buddy.h | 3 +-
storage/innobase/include/buf0buddy.ic | 2 +-
storage/innobase/include/buf0buf.h | 254 +-
storage/innobase/include/buf0buf.ic | 93 +-
storage/innobase/include/buf0checksum.h | 36 +-
storage/innobase/include/buf0dblwr.h | 3 +-
storage/innobase/include/buf0dump.h | 2 +-
storage/innobase/include/buf0flu.h | 20 +-
storage/innobase/include/buf0flu.ic | 2 +-
storage/innobase/include/buf0lru.h | 47 +-
storage/innobase/include/buf0mtflu.h | 2 +-
storage/innobase/include/buf0rea.h | 12 +-
storage/innobase/include/buf0types.h | 79 +-
storage/innobase/include/data0data.h | 185 +-
storage/innobase/include/data0data.ic | 188 +-
storage/innobase/include/data0type.h | 6 +-
storage/innobase/include/data0type.ic | 4 +-
storage/innobase/include/data0types.h | 2 +-
storage/innobase/include/db0err.h | 7 +-
storage/innobase/include/dict0boot.h | 5 +-
storage/innobase/include/dict0boot.ic | 2 +-
storage/innobase/include/dict0crea.h | 34 +-
storage/innobase/include/dict0crea.ic | 26 +-
storage/innobase/include/dict0defrag_bg.h | 24 +-
storage/innobase/include/dict0dict.h | 176 +-
storage/innobase/include/dict0dict.ic | 143 +-
storage/innobase/include/dict0load.h | 20 +-
storage/innobase/include/dict0mem.h | 225 +-
storage/innobase/include/dict0mem.ic | 2 +-
storage/innobase/include/dict0pagecompress.h | 2 +-
storage/innobase/include/dict0pagecompress.ic | 2 +-
storage/innobase/include/dict0priv.h | 4 +-
storage/innobase/include/dict0priv.ic | 4 +-
storage/innobase/include/dict0stats.h | 39 +-
storage/innobase/include/dict0stats.ic | 3 +-
storage/innobase/include/dict0stats_bg.h | 4 +-
storage/innobase/include/dict0types.h | 19 +-
storage/innobase/include/dyn0buf.h | 108 +-
storage/innobase/include/dyn0types.h | 2 +-
storage/innobase/include/eval0eval.h | 3 +-
storage/innobase/include/eval0eval.ic | 2 +-
storage/innobase/include/eval0proc.h | 3 +-
storage/innobase/include/eval0proc.ic | 2 +-
storage/innobase/include/fil0crypt.h | 23 +-
storage/innobase/include/fil0crypt.ic | 2 +-
storage/innobase/include/fil0fil.h | 304 +-
storage/innobase/include/fil0fil.ic | 4 +-
storage/innobase/include/fil0pagecompress.h | 60 +-
storage/innobase/include/fsp0file.h | 26 +-
storage/innobase/include/fsp0fsp.h | 83 +-
storage/innobase/include/fsp0fsp.ic | 4 +-
storage/innobase/include/fsp0pagecompress.h | 2 +-
storage/innobase/include/fsp0pagecompress.ic | 72 +-
storage/innobase/include/fsp0space.h | 4 +-
storage/innobase/include/fsp0sysspace.h | 3 +-
storage/innobase/include/fsp0types.h | 14 +-
storage/innobase/include/fts0ast.h | 8 +-
storage/innobase/include/fts0blex.h | 465 +-
storage/innobase/include/fts0fts.h | 113 +-
storage/innobase/include/fts0opt.h | 5 +-
storage/innobase/include/fts0plugin.h | 4 +-
storage/innobase/include/fts0priv.h | 157 +-
storage/innobase/include/fts0priv.ic | 2 +-
storage/innobase/include/fts0tlex.h | 465 +-
storage/innobase/include/fts0tokenize.h | 2 +-
storage/innobase/include/fts0types.h | 12 +-
storage/innobase/include/fts0types.ic | 31 +-
storage/innobase/include/fts0vlc.ic | 2 +-
storage/innobase/include/fut0fut.h | 4 +-
storage/innobase/include/fut0fut.ic | 2 +-
storage/innobase/include/fut0lst.h | 4 +-
storage/innobase/include/fut0lst.ic | 2 +-
storage/innobase/include/gis0geo.h | 18 +-
storage/innobase/include/gis0rtree.h | 42 +-
storage/innobase/include/gis0rtree.ic | 4 +-
storage/innobase/include/gis0type.h | 13 +-
storage/innobase/include/ha0ha.h | 4 +-
storage/innobase/include/ha0ha.ic | 10 +-
storage/innobase/include/ha0storage.h | 2 +-
storage/innobase/include/ha0storage.ic | 4 +-
storage/innobase/include/ha_prototypes.h | 14 +-
storage/innobase/include/handler0alter.h | 17 +-
storage/innobase/include/hash0hash.h | 3 +-
storage/innobase/include/hash0hash.ic | 2 +-
storage/innobase/include/ib0mutex.h | 8 +-
storage/innobase/include/ibuf0ibuf.h | 31 +-
storage/innobase/include/ibuf0ibuf.ic | 4 +-
storage/innobase/include/ibuf0types.h | 2 +-
storage/innobase/include/lock0iter.h | 3 +-
storage/innobase/include/lock0lock.h | 105 +-
storage/innobase/include/lock0lock.ic | 2 +-
storage/innobase/include/lock0prdt.h | 3 +-
storage/innobase/include/lock0priv.h | 145 +-
storage/innobase/include/lock0priv.ic | 16 +-
storage/innobase/include/lock0types.h | 199 +-
storage/innobase/include/log0crypt.h | 10 +-
storage/innobase/include/log0log.h | 73 +-
storage/innobase/include/log0log.ic | 6 +-
storage/innobase/include/log0recv.h | 109 +-
storage/innobase/include/log0types.h | 2 +-
storage/innobase/include/mach0data.h | 5 +-
storage/innobase/include/mach0data.ic | 2 +-
storage/innobase/include/mem0mem.h | 204 +-
storage/innobase/include/mem0mem.ic | 109 +-
storage/innobase/include/mtr0log.h | 3 +-
storage/innobase/include/mtr0log.ic | 2 +-
storage/innobase/include/mtr0mtr.h | 287 +-
storage/innobase/include/mtr0mtr.ic | 73 +-
storage/innobase/include/mtr0types.h | 25 +-
storage/innobase/include/os0api.h | 2 +-
storage/innobase/include/os0event.h | 2 +-
storage/innobase/include/os0file.h | 11 +-
storage/innobase/include/os0file.ic | 24 +-
storage/innobase/include/os0once.h | 3 +-
storage/innobase/include/os0proc.h | 10 +-
storage/innobase/include/os0thread.h | 2 +-
storage/innobase/include/page0cur.h | 35 +-
storage/innobase/include/page0cur.ic | 6 +-
storage/innobase/include/page0page.h | 112 +-
storage/innobase/include/page0page.ic | 137 +-
storage/innobase/include/page0size.h | 3 +-
storage/innobase/include/page0types.h | 7 +-
storage/innobase/include/page0zip.h | 43 +-
storage/innobase/include/page0zip.ic | 5 +-
storage/innobase/include/pars0grm.h | 158 +-
storage/innobase/include/pars0opt.h | 4 +-
storage/innobase/include/pars0pars.h | 44 +-
storage/innobase/include/pars0sym.h | 8 +-
storage/innobase/include/pars0types.h | 2 +-
storage/innobase/include/que0que.h | 42 +-
storage/innobase/include/que0que.ic | 2 +-
storage/innobase/include/que0types.h | 43 +-
storage/innobase/include/read0read.h | 11 +-
storage/innobase/include/read0types.h | 5 +-
storage/innobase/include/rem0cmp.h | 76 +-
storage/innobase/include/rem0cmp.ic | 42 +-
storage/innobase/include/rem0rec.h | 142 +-
storage/innobase/include/rem0rec.ic | 137 +-
storage/innobase/include/rem0types.h | 6 +-
storage/innobase/include/row0ext.h | 5 +-
storage/innobase/include/row0ext.ic | 2 +-
storage/innobase/include/row0ftsort.h | 22 +-
storage/innobase/include/row0import.h | 24 +-
storage/innobase/include/row0ins.h | 40 +-
storage/innobase/include/row0log.h | 14 +-
storage/innobase/include/row0log.ic | 2 +-
storage/innobase/include/row0merge.h | 21 +-
storage/innobase/include/row0mysql.h | 166 +-
storage/innobase/include/row0purge.h | 129 +-
storage/innobase/include/row0quiesce.h | 3 +-
storage/innobase/include/row0row.h | 31 +-
storage/innobase/include/row0row.ic | 10 +-
storage/innobase/include/row0sel.h | 14 +-
storage/innobase/include/row0sel.ic | 2 +-
storage/innobase/include/row0trunc.h | 13 +-
storage/innobase/include/row0types.h | 97 +-
storage/innobase/include/row0uins.h | 4 +-
storage/innobase/include/row0umod.h | 4 +-
storage/innobase/include/row0undo.h | 6 +-
storage/innobase/include/row0upd.h | 25 +-
storage/innobase/include/row0upd.ic | 4 +-
storage/innobase/include/row0vers.h | 57 +-
storage/innobase/include/span.h | 145 +
storage/innobase/include/srv0conc.h | 2 +-
storage/innobase/include/srv0mon.h | 14 +-
storage/innobase/include/srv0mon.ic | 2 +-
storage/innobase/include/srv0srv.h | 81 +-
storage/innobase/include/srv0start.h | 3 +-
storage/innobase/include/sync0arr.h | 3 +-
storage/innobase/include/sync0arr.ic | 2 +-
storage/innobase/include/sync0debug.h | 3 +-
storage/innobase/include/sync0policy.h | 4 +-
storage/innobase/include/sync0policy.ic | 2 +-
storage/innobase/include/sync0rw.h | 26 +-
storage/innobase/include/sync0rw.ic | 5 +-
storage/innobase/include/sync0sync.h | 3 +-
storage/innobase/include/sync0types.h | 4 +-
storage/innobase/include/trx0i_s.h | 9 +-
storage/innobase/include/trx0purge.h | 54 +-
storage/innobase/include/trx0purge.ic | 2 +-
storage/innobase/include/trx0rec.h | 22 +-
storage/innobase/include/trx0rec.ic | 7 +-
storage/innobase/include/trx0roll.h | 10 +-
storage/innobase/include/trx0roll.ic | 2 +-
storage/innobase/include/trx0rseg.h | 11 +-
storage/innobase/include/trx0rseg.ic | 2 +-
storage/innobase/include/trx0sys.h | 62 +-
storage/innobase/include/trx0sys.ic | 96 +-
storage/innobase/include/trx0trx.h | 215 +-
storage/innobase/include/trx0trx.ic | 52 +-
storage/innobase/include/trx0types.h | 13 +-
storage/innobase/include/trx0undo.h | 25 +-
storage/innobase/include/trx0undo.ic | 6 +-
storage/innobase/include/trx0xa.h | 2 +-
storage/innobase/include/univ.i | 25 +-
storage/innobase/include/ut0byte.h | 2 +-
storage/innobase/include/ut0byte.ic | 2 +-
storage/innobase/include/ut0counter.h | 53 +-
storage/innobase/include/ut0crc32.h | 10 +-
storage/innobase/include/ut0dbg.h | 10 +-
storage/innobase/include/ut0list.h | 2 +-
storage/innobase/include/ut0list.ic | 2 +-
storage/innobase/include/ut0lst.h | 132 +-
storage/innobase/include/ut0mem.h | 27 +-
storage/innobase/include/ut0mem.ic | 2 +-
storage/innobase/include/ut0mutex.h | 6 +-
storage/innobase/include/ut0new.h | 7 +-
storage/innobase/include/ut0pool.h | 22 +-
storage/innobase/include/ut0rbt.h | 3 +-
storage/innobase/include/ut0rnd.h | 86 +-
storage/innobase/include/ut0rnd.ic | 96 +-
storage/innobase/include/ut0sort.h | 4 +-
storage/innobase/include/ut0stage.h | 4 +-
storage/innobase/include/ut0timer.h | 102 -
storage/innobase/include/ut0timer.ic | 113 -
storage/innobase/include/ut0ut.h | 83 +-
storage/innobase/include/ut0ut.ic | 2 +-
storage/innobase/include/ut0vec.h | 3 +-
storage/innobase/include/ut0vec.ic | 4 +-
storage/innobase/include/ut0wqueue.h | 46 +-
storage/innobase/innodb.cmake | 23 +-
storage/innobase/lock/lock0iter.cc | 3 +-
storage/innobase/lock/lock0lock.cc | 982 +-
storage/innobase/lock/lock0prdt.cc | 11 +-
storage/innobase/lock/lock0wait.cc | 68 +-
storage/innobase/log/log0crypt.cc | 96 +-
storage/innobase/log/log0log.cc | 281 +-
storage/innobase/log/log0recv.cc | 1349 +-
storage/innobase/lz4.cmake | 2 +-
storage/innobase/lzma.cmake | 2 +-
storage/innobase/lzo.cmake | 2 +-
storage/innobase/mach/mach0data.cc | 2 +-
storage/innobase/mem/mem0mem.cc | 30 +-
storage/innobase/mtr/mtr0log.cc | 8 +-
storage/innobase/mtr/mtr0mtr.cc | 745 +-
storage/innobase/os/os0event.cc | 56 +-
storage/innobase/os/os0file.cc | 408 +-
storage/innobase/os/os0proc.cc | 54 +-
storage/innobase/os/os0thread.cc | 21 +-
storage/innobase/page/page0cur.cc | 148 +-
storage/innobase/page/page0page.cc | 187 +-
storage/innobase/page/page0zip.cc | 350 +-
storage/innobase/pars/lexyy.cc | 1525 +-
storage/innobase/pars/make_bison.sh | 2 +-
storage/innobase/pars/make_flex.sh | 9 +-
storage/innobase/pars/pars0grm.cc | 2116 +-
storage/innobase/pars/pars0grm.y | 120 +-
storage/innobase/pars/pars0lex.l | 91 +-
storage/innobase/pars/pars0opt.cc | 3 +-
storage/innobase/pars/pars0pars.cc | 165 +-
storage/innobase/pars/pars0sym.cc | 2 +-
storage/innobase/que/que0que.cc | 13 +-
storage/innobase/read/read0read.cc | 23 +-
storage/innobase/rem/rem0cmp.cc | 127 +-
storage/innobase/rem/rem0rec.cc | 157 +-
storage/innobase/row/row0ext.cc | 2 +-
storage/innobase/row/row0ftsort.cc | 89 +-
storage/innobase/row/row0import.cc | 522 +-
storage/innobase/row/row0ins.cc | 470 +-
storage/innobase/row/row0log.cc | 253 +-
storage/innobase/row/row0merge.cc | 430 +-
storage/innobase/row/row0mysql.cc | 768 +-
storage/innobase/row/row0purge.cc | 354 +-
storage/innobase/row/row0quiesce.cc | 5 +-
storage/innobase/row/row0row.cc | 71 +-
storage/innobase/row/row0sel.cc | 360 +-
storage/innobase/row/row0trunc.cc | 160 +-
storage/innobase/row/row0uins.cc | 95 +-
storage/innobase/row/row0umod.cc | 51 +-
storage/innobase/row/row0undo.cc | 11 +-
storage/innobase/row/row0upd.cc | 153 +-
storage/innobase/row/row0vers.cc | 279 +-
storage/innobase/snappy.cmake | 2 +-
storage/innobase/srv/srv0conc.cc | 6 +-
storage/innobase/srv/srv0mon.cc | 32 +-
storage/innobase/srv/srv0srv.cc | 238 +-
storage/innobase/srv/srv0start.cc | 402 +-
storage/innobase/sync/sync0arr.cc | 18 +-
storage/innobase/sync/sync0debug.cc | 7 +-
storage/innobase/sync/sync0rw.cc | 173 +-
storage/innobase/sync/sync0sync.cc | 3 +-
storage/innobase/trx/trx0i_s.cc | 110 +-
storage/innobase/trx/trx0purge.cc | 296 +-
storage/innobase/trx/trx0rec.cc | 197 +-
storage/innobase/trx/trx0roll.cc | 43 +-
storage/innobase/trx/trx0rseg.cc | 56 +-
storage/innobase/trx/trx0sys.cc | 65 +-
storage/innobase/trx/trx0trx.cc | 380 +-
storage/innobase/trx/trx0undo.cc | 130 +-
storage/innobase/ut/ut0crc32.cc | 86 +-
storage/innobase/ut/ut0dbg.cc | 7 +-
storage/innobase/ut/ut0list.cc | 2 +-
storage/innobase/ut/ut0mem.cc | 52 +-
storage/innobase/ut/ut0new.cc | 7 +-
storage/innobase/ut/ut0rbt.cc | 7 +-
storage/innobase/ut/ut0rnd.cc | 9 +-
storage/innobase/ut/ut0timer.cc | 92 -
storage/innobase/ut/ut0ut.cc | 155 +-
storage/innobase/ut/ut0vec.cc | 2 +-
storage/innobase/ut/ut0wqueue.cc | 54 +-
storage/maria/CMakeLists.txt | 2 +-
storage/maria/ft_maria.c | 2 +-
storage/maria/ha_maria.cc | 182 +-
storage/maria/ha_maria.h | 3 +-
storage/maria/lockman.c | 2 +-
storage/maria/lockman.h | 2 +-
storage/maria/ma_bitmap.c | 2 +-
storage/maria/ma_blockrec.c | 31 +-
storage/maria/ma_blockrec.h | 2 +-
storage/maria/ma_cache.c | 2 +-
storage/maria/ma_changed.c | 2 +-
storage/maria/ma_check.c | 11 +-
storage/maria/ma_check_standalone.h | 2 +-
storage/maria/ma_checkpoint.c | 4 +-
storage/maria/ma_checkpoint.h | 2 +-
storage/maria/ma_checksum.c | 2 +-
storage/maria/ma_close.c | 26 +-
storage/maria/ma_commit.c | 19 +-
storage/maria/ma_commit.h | 2 +-
storage/maria/ma_control_file.c | 4 +-
storage/maria/ma_control_file.h | 2 +-
storage/maria/ma_create.c | 2 +-
storage/maria/ma_crypt.c | 2 +-
storage/maria/ma_crypt.h | 2 +-
storage/maria/ma_dbug.c | 2 +-
storage/maria/ma_delete.c | 4 +-
storage/maria/ma_delete_all.c | 9 +-
storage/maria/ma_delete_table.c | 2 +-
storage/maria/ma_dynrec.c | 2 +-
storage/maria/ma_extra.c | 9 +-
storage/maria/ma_ft_boolean_search.c | 4 +-
storage/maria/ma_ft_eval.c | 2 +-
storage/maria/ma_ft_eval.h | 2 +-
storage/maria/ma_ft_nlq_search.c | 4 +-
storage/maria/ma_ft_parser.c | 2 +-
storage/maria/ma_ft_stem.c | 2 +-
storage/maria/ma_ft_test1.c | 2 +-
storage/maria/ma_ft_test1.h | 2 +-
storage/maria/ma_ft_update.c | 2 +-
storage/maria/ma_ftdefs.h | 2 +-
storage/maria/ma_fulltext.h | 2 +-
storage/maria/ma_info.c | 8 +-
storage/maria/ma_init.c | 2 +-
storage/maria/ma_key.c | 6 +-
storage/maria/ma_key_recover.c | 4 +-
storage/maria/ma_key_recover.h | 2 +-
storage/maria/ma_keycache.c | 2 +-
storage/maria/ma_locking.c | 2 +-
storage/maria/ma_loghandler.c | 244 +-
storage/maria/ma_loghandler.h | 2 +-
storage/maria/ma_loghandler_lsn.h | 2 +-
storage/maria/ma_norec.c | 6 +-
storage/maria/ma_open.c | 33 +-
storage/maria/ma_packrec.c | 11 +-
storage/maria/ma_page.c | 2 +-
storage/maria/ma_pagecache.c | 5 +-
storage/maria/ma_pagecache.h | 2 +-
storage/maria/ma_pagecaches.c | 2 +-
storage/maria/ma_pagecrc.c | 2 +-
storage/maria/ma_panic.c | 2 +-
storage/maria/ma_preload.c | 2 +-
storage/maria/ma_range.c | 2 +-
storage/maria/ma_recovery.c | 72 +-
storage/maria/ma_recovery.h | 2 +-
storage/maria/ma_recovery_util.c | 14 +-
storage/maria/ma_recovery_util.h | 2 +-
storage/maria/ma_rename.c | 2 +-
storage/maria/ma_rfirst.c | 2 +-
storage/maria/ma_rkey.c | 2 +-
storage/maria/ma_rlast.c | 2 +-
storage/maria/ma_rnext.c | 2 +-
storage/maria/ma_rnext_same.c | 2 +-
storage/maria/ma_rprev.c | 2 +-
storage/maria/ma_rrnd.c | 2 +-
storage/maria/ma_rsame.c | 2 +-
storage/maria/ma_rsamepos.c | 2 +-
storage/maria/ma_rt_index.c | 2 +-
storage/maria/ma_rt_index.h | 2 +-
storage/maria/ma_rt_key.c | 2 +-
storage/maria/ma_rt_key.h | 2 +-
storage/maria/ma_rt_mbr.c | 2 +-
storage/maria/ma_rt_mbr.h | 2 +-
storage/maria/ma_rt_split.c | 2 +-
storage/maria/ma_rt_test.c | 2 +-
storage/maria/ma_scan.c | 2 +-
storage/maria/ma_search.c | 2 +-
storage/maria/ma_servicethread.c | 2 +-
storage/maria/ma_servicethread.h | 2 +-
storage/maria/ma_sort.c | 2 +-
storage/maria/ma_sp_defs.h | 2 +-
storage/maria/ma_sp_key.c | 4 +-
storage/maria/ma_sp_test.c | 2 +-
storage/maria/ma_state.c | 58 +-
storage/maria/ma_state.h | 4 +-
storage/maria/ma_static.c | 2 +-
storage/maria/ma_statrec.c | 2 +-
storage/maria/ma_test1.c | 2 +-
storage/maria/ma_test2.c | 2 +-
storage/maria/ma_test3.c | 4 +-
storage/maria/ma_trnman.h | 65 +
storage/maria/ma_unique.c | 2 +-
storage/maria/ma_update.c | 2 +-
storage/maria/ma_write.c | 37 +-
storage/maria/maria_chk.c | 14 +-
storage/maria/maria_def.h | 31 +-
storage/maria/maria_dump_log.c | 2 +-
storage/maria/maria_ftdump.c | 2 +-
storage/maria/maria_pack.c | 18 +-
storage/maria/maria_read_log.c | 2 +-
storage/maria/tablockman.c | 2 +-
storage/maria/tablockman.h | 2 +-
storage/maria/trnman.c | 3 +-
storage/maria/trnman.h | 5 +-
storage/maria/trnman_public.h | 2 +-
storage/maria/unittest/CMakeLists.txt | 2 +-
storage/maria/unittest/lockman-t.c | 2 +-
storage/maria/unittest/lockman1-t.c | 2 +-
storage/maria/unittest/lockman2-t.c | 2 +-
storage/maria/unittest/ma_control_file-t.c | 2 +-
storage/maria/unittest/ma_loghandler_examples.c | 2 +-
storage/maria/unittest/ma_maria_log_cleanup.c | 2 +-
storage/maria/unittest/ma_pagecache_consist.c | 2 +-
storage/maria/unittest/ma_pagecache_rwconsist.c | 2 +-
storage/maria/unittest/ma_pagecache_rwconsist2.c | 2 +-
storage/maria/unittest/ma_pagecache_single.c | 2 +-
storage/maria/unittest/ma_test_loghandler-t.c | 2 +-
.../unittest/ma_test_loghandler_first_lsn-t.c | 2 +-
.../maria/unittest/ma_test_loghandler_max_lsn-t.c | 2 +-
.../unittest/ma_test_loghandler_multigroup-t.c | 2 +-
.../unittest/ma_test_loghandler_multithread-t.c | 2 +-
.../maria/unittest/ma_test_loghandler_noflush-t.c | 2 +-
.../maria/unittest/ma_test_loghandler_nologs-t.c | 2 +-
.../unittest/ma_test_loghandler_pagecache-t.c | 2 +-
.../maria/unittest/ma_test_loghandler_purge-t.c | 2 +-
storage/maria/unittest/sequence_storage.c | 2 +-
storage/maria/unittest/sequence_storage.h | 2 +-
storage/maria/unittest/test_file.c | 2 +-
storage/maria/unittest/test_file.h | 2 +-
storage/maria/unittest/trnman-t.c | 2 +-
storage/mroonga/CMakeLists.txt | 4 +-
storage/mroonga/COPYING | 4 +-
.../mroonga/build/cmake_modules/ReadFileList.cmake | 2 +-
storage/mroonga/config.sh.in | 2 +-
storage/mroonga/data/install.sql.in | 6 +-
storage/mroonga/ha_mroonga.cpp | 51 +-
storage/mroonga/ha_mroonga.hpp | 196 +-
.../mroonga/lib/mrn_auto_increment_value_lock.cpp | 2 +-
.../mroonga/lib/mrn_auto_increment_value_lock.hpp | 2 +-
storage/mroonga/lib/mrn_column_name.cpp | 2 +-
storage/mroonga/lib/mrn_column_name.hpp | 2 +-
storage/mroonga/lib/mrn_condition_converter.cpp | 2 +-
storage/mroonga/lib/mrn_condition_converter.hpp | 2 +-
storage/mroonga/lib/mrn_context_pool.cpp | 4 +-
storage/mroonga/lib/mrn_context_pool.hpp | 2 +-
storage/mroonga/lib/mrn_count_skip_checker.cpp | 2 +-
storage/mroonga/lib/mrn_count_skip_checker.hpp | 2 +-
storage/mroonga/lib/mrn_current_thread.hpp | 2 +-
storage/mroonga/lib/mrn_database.cpp | 2 +-
storage/mroonga/lib/mrn_database.hpp | 2 +-
storage/mroonga/lib/mrn_database_manager.cpp | 2 +-
storage/mroonga/lib/mrn_database_manager.hpp | 2 +-
storage/mroonga/lib/mrn_database_repairer.cpp | 2 +-
storage/mroonga/lib/mrn_database_repairer.hpp | 2 +-
storage/mroonga/lib/mrn_debug_column_access.cpp | 2 +-
storage/mroonga/lib/mrn_debug_column_access.hpp | 2 +-
storage/mroonga/lib/mrn_encoding.cpp | 2 +-
storage/mroonga/lib/mrn_encoding.hpp | 2 +-
storage/mroonga/lib/mrn_external_lock.cpp | 2 +-
storage/mroonga/lib/mrn_external_lock.hpp | 2 +-
storage/mroonga/lib/mrn_field_normalizer.cpp | 2 +-
storage/mroonga/lib/mrn_field_normalizer.hpp | 2 +-
storage/mroonga/lib/mrn_grn.hpp | 2 +-
storage/mroonga/lib/mrn_index_column_name.cpp | 2 +-
storage/mroonga/lib/mrn_index_column_name.hpp | 2 +-
storage/mroonga/lib/mrn_index_table_name.cpp | 2 +-
storage/mroonga/lib/mrn_index_table_name.hpp | 2 +-
storage/mroonga/lib/mrn_lock.cpp | 2 +-
storage/mroonga/lib/mrn_lock.hpp | 2 +-
.../lib/mrn_match_escalation_threshold_scope.cpp | 2 +-
.../lib/mrn_match_escalation_threshold_scope.hpp | 2 +-
.../mroonga/lib/mrn_multiple_column_key_codec.cpp | 6 +-
.../mroonga/lib/mrn_multiple_column_key_codec.hpp | 2 +-
storage/mroonga/lib/mrn_mysqlservices.cpp | 2 +-
storage/mroonga/lib/mrn_operation.cpp | 2 +-
storage/mroonga/lib/mrn_operation.hpp | 2 +-
storage/mroonga/lib/mrn_operations.cpp | 2 +-
storage/mroonga/lib/mrn_operations.hpp | 2 +-
storage/mroonga/lib/mrn_parameters_parser.cpp | 2 +-
storage/mroonga/lib/mrn_parameters_parser.hpp | 2 +-
storage/mroonga/lib/mrn_path_mapper.cpp | 2 +-
storage/mroonga/lib/mrn_path_mapper.hpp | 2 +-
storage/mroonga/lib/mrn_query_parser.cpp | 2 +-
storage/mroonga/lib/mrn_query_parser.hpp | 2 +-
storage/mroonga/lib/mrn_smart_bitmap.cpp | 2 +-
storage/mroonga/lib/mrn_smart_bitmap.hpp | 2 +-
storage/mroonga/lib/mrn_smart_grn_obj.cpp | 2 +-
storage/mroonga/lib/mrn_smart_grn_obj.hpp | 2 +-
.../mroonga/lib/mrn_table_fields_offset_mover.cpp | 2 +-
.../mroonga/lib/mrn_table_fields_offset_mover.hpp | 2 +-
storage/mroonga/lib/mrn_time_converter.cpp | 2 +-
storage/mroonga/lib/mrn_time_converter.hpp | 2 +-
storage/mroonga/lib/mrn_value_decoder.cpp | 2 +-
storage/mroonga/lib/mrn_value_decoder.hpp | 2 +-
storage/mroonga/lib/mrn_windows.hpp | 2 +-
storage/mroonga/mrn_constants.hpp | 2 +-
storage/mroonga/mrn_err.h | 2 +-
storage/mroonga/mrn_macro.hpp | 2 +-
storage/mroonga/mrn_mysql.h | 2 +-
storage/mroonga/mrn_mysql_compat.h | 2 +-
storage/mroonga/mrn_table.cpp | 2 +-
storage/mroonga/mrn_table.hpp | 2 +-
storage/mroonga/mrn_variables.hpp | 2 +-
storage/mroonga/mrn_version.h.in | 2 +-
.../mroonga/include/mroonga/check_64bit.inc | 2 +-
.../mroonga/include/mroonga/check_freebsd.inc | 2 +-
.../include/mroonga/check_ha_mroonga_so.inc | 2 +-
.../include/mroonga/check_libgroonga_embedded.inc | 2 +-
.../mroonga/check_libgroonga_support_lz4.inc | 2 +-
.../mroonga/check_libgroonga_support_zlib.inc | 2 +-
.../mroonga/check_libgroonga_support_zstd.inc | 2 +-
.../mroonga/include/mroonga/check_mariadb.inc | 2 +-
.../mroonga/include/mroonga/check_osx.inc | 2 +-
.../mroonga/include/mroonga/check_solaris.inc | 2 +-
.../include/mroonga/check_strict_sql_mode.inc | 2 +-
.../mroonga/include/mroonga/check_version.inc | 2 +-
.../mroonga/include/mroonga/check_windows.inc | 2 +-
.../include/mroonga/have_fractional_seconds.inc | 2 +-
.../mroonga/include/mroonga/have_freebsd.inc | 2 +-
.../mroonga/have_groonga_plugin_register.inc | 2 +-
.../mroonga/include/mroonga/have_mariadb.inc | 2 +-
.../include/mroonga/have_mariadb_10_2_or_later.inc | 2 +-
.../mroonga/include/mroonga/have_mroonga.inc | 2 +-
.../include/mroonga/have_mroonga_deinit.inc | 8 +-
.../include/mroonga/have_mroonga_helper.inc | 2 +-
.../mroonga/include/mroonga/have_mysql.inc | 2 +-
.../include/mroonga/have_mysql_5_7_or_later.inc | 2 +-
.../include/mroonga/have_signed_64bit_time_t.inc | 2 +-
.../mroonga/include/mroonga/have_solaris.inc | 2 +-
.../include/mroonga/have_strict_sql_mode.inc | 2 +-
.../mroonga/include/mroonga/have_version_10_0.inc | 2 +-
.../include/mroonga/have_version_10_0_or_later.inc | 2 +-
.../mroonga/include/mroonga/have_version_5_5.inc | 2 +-
.../mroonga/include/mroonga/have_version_5_6.inc | 2 +-
.../include/mroonga/have_version_5_6_or_later.inc | 2 +-
.../mroonga/include/mroonga/have_version_5_7.inc | 2 +-
.../include/mroonga/have_version_5_7_or_later.inc | 2 +-
.../include/mroonga/load_mroonga_functions.inc | 2 +-
.../mroonga/include/mroonga/skip_freebsd.inc | 2 +-
.../include/mroonga/skip_mariadb_10_0_or_later.inc | 2 +-
.../mroonga/include/mroonga/skip_mariadb_10_1.inc | 2 +-
.../mroonga/skip_mariadb_10_1_or_earlier.inc | 2 +-
.../include/mroonga/skip_mariadb_10_2_or_later.inc | 2 +-
.../mroonga/include/mroonga/skip_mariadb_5_5.inc | 2 +-
.../mroonga/include/mroonga/skip_mysql_5_5.inc | 2 +-
.../mroonga/include/mroonga/skip_mysql_5_7.inc | 2 +-
.../include/mroonga/skip_mysql_5_7_or_later.inc | 2 +-
.../mroonga/include/mroonga/skip_osx.inc | 2 +-
.../include/mroonga/skip_signed_64bit_time_t.inc | 2 +-
.../mroonga/include/mroonga/skip_solaris.inc | 2 +-
.../include/mroonga/skip_strict_sql_mode.inc | 2 +-
.../include/mroonga/support_libgroonga_lz4.inc | 2 +-
.../include/mroonga/support_libgroonga_zlib.inc | 2 +-
.../include/mroonga/support_libgroonga_zstd.inc | 2 +-
.../include/mroonga/unload_mroonga_functions.inc | 2 +-
.../include/mroonga/unsupport_libgroonga_lz4.inc | 2 +-
.../include/mroonga/unsupport_libgroonga_zlib.inc | 2 +-
.../include/mroonga/unsupport_libgroonga_zstd.inc | 2 +-
...etime_64bit_strict_sql_mode_out_of_range.result | 2 +-
.../r/column_generated_stored_add_column.result | 3 +-
.../storage/t/alter_table_add_column_after.test | 2 +-
.../storage/t/alter_table_add_column_first.test | 2 +-
.../t/alter_table_add_column_flags_comment.test | 2 +-
.../t/alter_table_add_column_flags_parameter.test | 2 +-
...lter_table_add_column_groonga_type_comment.test | 2 +-
...er_table_add_column_groonga_type_parameter.test | 2 +-
.../t/alter_table_add_column_multibyte_cp932.test | 2 +-
.../t/alter_table_add_column_multibyte_utf8.test | 2 +-
.../storage/t/alter_table_add_column_multiple.test | 2 +-
.../storage/t/alter_table_add_column_plain.test | 2 +-
.../t/alter_table_add_column_type_comment.test | 2 +-
...e_add_index_token_filters_one_token_filter.test | 2 +-
.../t/alter_table_add_index_unique_duplicated.test | 2 +-
...dd_index_unique_multiple_column_duplicated.test | 2 +-
...er_table_add_key_multiple_column_with_data.test | 2 +-
.../storage/t/alter_table_add_primary_key.test | 2 +-
...able_change_column_comment_not_for_mroonga.test | 2 +-
.../t/alter_table_change_column_have_index.test | 2 +-
.../t/alter_table_change_column_rename_after.test | 2 +-
.../t/alter_table_change_column_rename_first.test | 2 +-
.../alter_table_change_column_rename_multiple.test | 2 +-
.../alter_table_change_column_rename_no_order.test | 2 +-
.../t/alter_table_change_engine_decimal.test | 2 +-
.../alter_table_change_engine_fulltext_index.test | 2 +-
.../storage/t/alter_table_change_token_filter.test | 2 +-
.../alter_table_disable_keys_create_fulltext.test | 2 +-
.../t/alter_table_disable_keys_fulltext_table.test | 2 +-
.../t/alter_table_disable_keys_fulltext_ujis.test | 2 +-
.../t/alter_table_disable_keys_fulltext_utf8.test | 2 +-
.../alter_table_disable_keys_multiple_column.test | 2 +-
.../storage/t/alter_table_disable_keys_normal.test | 2 +-
.../t/alter_table_disable_keys_primary.test | 2 +-
.../t/alter_table_disable_keys_truncate.test | 2 +-
.../t/alter_table_disable_keys_updating.test | 2 +-
.../t/alter_table_drop_column_multiple.test | 2 +-
.../storage/t/alter_table_drop_column_one.test | 2 +-
...r_table_drop_key_multiple_column_with_data.test | 2 +-
.../storage/t/alter_table_drop_primary_key.test | 2 +-
.../t/alter_table_enable_keys_fulltext.test | 2 +-
.../t/alter_table_enable_keys_fulltext_table.test | 2 +-
.../t/alter_table_enable_keys_fulltext_ujis.test | 2 +-
.../t/alter_table_enable_keys_fulltext_utf8.test | 2 +-
.../t/alter_table_enable_keys_multiple_column.test | 2 +-
.../storage/t/alter_table_enable_keys_normal.test | 2 +-
.../storage/t/alter_table_enable_keys_primary.test | 2 +-
.../t/alter_table_fulltext_add_no_primary_key.test | 2 +-
.../storage/t/alter_table_fulltext_add_normal.test | 2 +-
.../storage/t/alter_table_fulltext_add_table.test | 2 +-
.../storage/t/alter_table_fulltext_drop_table.test | 2 +-
.../storage/t/alter_table_modify_column_after.test | 2 +-
.../storage/t/alter_table_modify_column_first.test | 2 +-
.../t/alter_table_modify_column_no_order.test | 2 +-
...ter_table_recreate_anonymous_index_at_once.test | 2 +-
.../storage/t/alter_table_rename_table.test | 2 +-
.../mroonga/storage/t/alter_table_spatial.test | 2 +-
.../storage/t/auto_increment_TODO_SPLIT_ME.test | 2 +-
.../storage/t/auto_increment_table_param.test | 2 +-
.../mroonga/storage/t/auto_increment_text.test | 2 +-
.../mroonga/storage/t/binlog_TODO_SPLIT_ME.test | 2 +-
.../mroonga/storage/t/check_table_broken.test | 2 +-
.../mroonga/storage/t/check_table_not_broken.test | 2 +-
.../t/collation_utf8_general_ci_french.test | 2 +-
.../t/collation_utf8_unicode_520_ci_french.test | 2 +-
.../t/collation_utf8_unicode_520_ci_japanese.test | 2 +-
.../t/collation_utf8_unicode_ci_french.test | 2 +-
.../t/collation_utf8_unicode_ci_japanese.test | 2 +-
.../t/column_comment_index_not_for_mroonga.test | 2 +-
.../t/column_comment_normal_not_for_mroonga.test | 2 +-
.../mroonga/storage/t/column_date_with_index.test | 2 +-
.../storage/t/column_date_without_index.test | 2 +-
.../mroonga/storage/t/column_date_zero_date.test | 2 +-
.../storage/t/column_datetime_32bit_2038.test | 2 +-
.../t/column_datetime_32bit_before_unix_epoch.test | 2 +-
.../storage/t/column_datetime_32bit_max.test | 2 +-
.../t/column_datetime_32bit_out_of_range.test | 2 +-
.../storage/t/column_datetime_64bit_2038.test | 2 +-
.../t/column_datetime_64bit_before_unix_epoch.test | 2 +-
.../storage/t/column_datetime_64bit_max.test | 2 +-
...atetime_64bit_strict_sql_mode_out_of_range.test | 2 +-
...mn_datetime_64bit_version_5_5_out_of_range.test | 2 +-
...me_64bit_version_5_6_or_later_out_of_range.test | 2 +-
...umn_datetime_fractional_seconds_with_index.test | 2 +-
..._datetime_fractional_seconds_without_index.test | 2 +-
.../column_datetime_freebsd_before_unix_epoch.test | 2 +-
...n_datetime_mariadb_10_2_or_later_zero_date.test | 2 +-
...etime_mariadb_10_2_or_later_zero_month_day.test | 2 +-
...lumn_datetime_mysql_5_7_or_later_zero_date.test | 2 +-
...datetime_mysql_5_7_or_later_zero_month_day.test | 2 +-
.../mroonga/storage/t/column_datetime_null.test | 2 +-
.../storage/t/column_datetime_with_index.test | 2 +-
.../storage/t/column_datetime_without_index.test | 2 +-
.../storage/t/column_datetime_zero_date.test | 2 +-
.../storage/t/column_datetime_zero_month_day.test | 2 +-
...lumn_decimal_fractional_seconds_with_index.test | 2 +-
...n_decimal_fractional_seconds_without_index.test | 2 +-
.../storage/t/column_decimal_with_index.test | 2 +-
.../storage/t/column_decimal_without_index.test | 2 +-
.../storage/t/column_enum_less_with_index.test | 2 +-
.../storage/t/column_enum_many_with_index.test | 2 +-
.../t/column_generated_stored_add_column.test | 7 +-
.../storage/t/column_generated_stored_delete.test | 2 +-
.../t/column_generated_stored_drop_column.test | 2 +-
.../storage/t/column_generated_stored_insert.test | 2 +-
.../storage/t/column_generated_stored_reindex.test | 2 +-
.../storage/t/column_generated_stored_update.test | 2 +-
.../t/column_generated_virtual_add_column.test | 2 +-
.../storage/t/column_generated_virtual_delete.test | 2 +-
.../t/column_generated_virtual_drop_column.test | 2 +-
.../storage/t/column_generated_virtual_insert.test | 2 +-
...ed_virtual_mariadb_10_2_or_later_add_index.test | 2 +-
...iadb_10_2_or_later_create_table_with_index.test | 2 +-
...rated_virtual_mysql_5_7_or_later_add_index.test | 2 +-
.../storage/t/column_generated_virtual_update.test | 2 +-
.../mroonga/storage/t/column_groonga__id__id.test | 2 +-
.../storage/t/column_groonga__id_invalid_id.test | 2 +-
.../column_groonga_index_fulltext_other_table.test | 2 +-
..._groonga_index_fulltext_vector_other_table.test | 2 +-
.../t/column_groonga_index_int_other_table.test | 2 +-
.../storage/t/column_groonga_scalar_reference.test | 2 +-
.../t/column_groonga_scalar_support_lz4.test | 2 +-
.../t/column_groonga_scalar_support_zlib.test | 2 +-
.../t/column_groonga_scalar_support_zstd.test | 2 +-
.../t/column_groonga_scalar_unsupport_lz4.test | 2 +-
.../t/column_groonga_scalar_unsupport_zlib.test | 2 +-
.../t/column_groonga_scalar_unsupport_zstd.test | 2 +-
...roonga_scalar_with_not_for_mroonga_comment.test | 2 +-
...lumn_groonga_vector_order_by_with_function.test | 2 +-
.../storage/t/column_groonga_vector_reference.test | 2 +-
.../t/column_int_with_index_zero_value.test | 2 +-
.../mroonga/storage/t/column_json_insert.test | 2 +-
.../mroonga/storage/t/column_multibyte_cp932.test | 2 +-
.../mroonga/storage/t/column_multibyte_utf8.test | 2 +-
.../storage/t/column_set_16_with_index.test | 2 +-
.../storage/t/column_set_24_with_index.test | 2 +-
.../storage/t/column_set_32_with_index.test | 2 +-
.../storage/t/column_set_64_with_index.test | 2 +-
.../mroonga/storage/t/column_set_8_with_index.test | 2 +-
.../storage/t/column_signed_bigint_with_index.test | 2 +-
.../storage/t/column_signed_int_with_index.test | 2 +-
.../t/column_signed_mediumint_with_index.test | 2 +-
.../t/column_signed_smallint_with_index.test | 2 +-
.../t/column_signed_tinyint_with_index.test | 2 +-
.../column_time_fractional_seconds_with_index.test | 2 +-
.../mroonga/storage/t/column_time_with_index.test | 2 +-
...mn_timestamp_fractional_seconds_with_index.test | 2 +-
.../storage/t/column_timestamp_with_index.test | 2 +-
.../storage/t/column_tinyint_without_index.test | 2 +-
.../t/column_unsigned_bigint_with_index.test | 2 +-
.../t/column_unsigned_bigint_without_index.test | 2 +-
.../storage/t/column_unsigned_int_with_index.test | 2 +-
.../t/column_unsigned_mediumint_with_index.test | 2 +-
.../t/column_unsigned_smallint_with_index.test | 2 +-
.../t/column_unsigned_tinyint_with_index.test | 2 +-
.../mroonga/storage/t/column_year_with_index.test | 2 +-
.../storage/t/column_year_without_index.test | 2 +-
.../mysql-test/mroonga/storage/t/count_star.test | 2 +-
.../storage/t/create_database_name_slash.test | 2 +-
.../storage/t/create_table_TODO_SPLIT_ME.test | 2 +-
.../t/create_table_column_flags_comment.test | 2 +-
.../t/create_table_column_flags_parameter.test | 2 +-
.../create_table_column_groonga_type_comment.test | 2 +-
...eate_table_column_groonga_type_nonexistent.test | 2 +-
...create_table_column_groonga_type_parameter.test | 2 +-
.../t/create_table_column_type_comment.test | 2 +-
.../t/create_table_column_type_nonexistent.test | 2 +-
.../storage/t/create_table_comment_normal.test | 2 +-
.../storage/t/create_table_default_tokenizer.test | 2 +-
.../t/create_table_index_flags_comment.test | 2 +-
.../t/create_table_index_flags_index_medium.test | 2 +-
.../t/create_table_index_flags_index_small.test | 2 +-
.../storage/t/create_table_index_flags_none.test | 2 +-
.../t/create_table_index_flags_parameter.test | 2 +-
.../t/create_table_index_index_flags_none.test | 2 +-
..._index_flags_with_position_and_with_weight.test | 2 +-
.../t/create_table_index_normalizer_comment.test | 2 +-
..._table_index_normalizer_fulltext_index_bin.test | 2 +-
.../t/create_table_index_normalizer_index_bin.test | 2 +-
...lizer_no_utf8_charset_with_utf8_normalizer.test | 2 +-
.../t/create_table_index_normalizer_none.test | 2 +-
.../t/create_table_index_normalizer_parameter.test | 2 +-
.../t/create_table_index_parser_comment.test | 2 +-
.../t/create_table_index_parser_default.test | 2 +-
.../storage/t/create_table_index_parser_off.test | 2 +-
...index_token_filters_multiple_token_filters.test | 2 +-
...table_index_token_filters_one_token_filter.test | 2 +-
...create_table_index_token_filters_parameter.test | 2 +-
.../t/create_table_index_tokenizer_comment.test | 2 +-
.../t/create_table_index_tokenizer_default.test | 2 +-
.../t/create_table_index_tokenizer_off.test | 2 +-
.../t/create_table_index_tokenizer_parameter.test | 2 +-
.../t/create_table_table_normalizer_default.test | 2 +-
.../t/create_table_table_normalizer_hash.test | 2 +-
...table_token_filters_multiple_token_filters.test | 2 +-
...table_table_token_filters_one_token_filter.test | 2 +-
...create_table_table_token_filters_stop_word.test | 2 +-
.../mroonga/storage/t/delete_fulltext_column.test | 2 +-
.../storage/t/delete_index_btree_many_records.test | 2 +-
.../storage/t/delete_index_hash_id_no_unique.test | 2 +-
.../storage/t/delete_index_hash_id_unique.test | 2 +-
.../mroonga/storage/t/delete_normal_column.test | 2 +-
.../mroonga/storage/t/delete_unsigned_bigint.test | 2 +-
.../storage/t/drop_database_TODO_SPLIT_ME.test | 2 +-
.../mroonga/storage/t/drop_database_no_table.test | 2 +-
.../storage/t/drop_table_TODO_SPLIT_ME.test | 2 +-
.../mysql-test/mroonga/storage/t/flush_logs.test | 2 +-
.../mroonga/storage/t/foreign_key_alter_add.test | 2 +-
.../mroonga/storage/t/foreign_key_alter_drop.test | 2 +-
.../mroonga/storage/t/foreign_key_create.test | 2 +-
.../storage/t/foreign_key_delete_existent.test | 2 +-
.../storage/t/foreign_key_delete_nonexistent.test | 2 +-
.../storage/t/foreign_key_insert_existent.test | 2 +-
.../storage/t/foreign_key_insert_nonexistent.test | 2 +-
.../mroonga/storage/t/foreign_key_rename.test | 2 +-
.../storage/t/foreign_key_update_existent.test | 2 +-
.../storage/t/foreign_key_update_nonexistent.test | 2 +-
.../t/fulltext_boolean_mode_empty_query.test | 2 +-
.../storage/t/fulltext_boolean_mode_escape.test | 2 +-
.../t/fulltext_boolean_mode_leading_not.test | 2 +-
.../t/fulltext_boolean_mode_pragma_all.test | 2 +-
..._pragma_default_operator_minus_no_operator.test | 2 +-
...mode_pragma_default_operator_minus_with_or.test | 2 +-
...de_pragma_default_operator_minus_with_plus.test | 2 +-
...ode_pragma_default_operator_or_no_operator.test | 2 +-
...mode_pragma_default_operator_or_with_minus.test | 2 +-
..._mode_pragma_default_operator_or_with_plus.test | 2 +-
...e_pragma_default_operator_plus_no_operator.test | 2 +-
...pragma_default_operator_plus_with_astarisk.test | 2 +-
...de_pragma_default_operator_plus_with_minus.test | 2 +-
..._mode_pragma_default_operator_plus_with_or.test | 2 +-
...boolean_mode_pragma_syntax_script_operator.test | 2 +-
...boolean_mode_pragma_syntax_script_selector.test | 2 +-
...ltext_boolean_mode_pragma_weight_full_spec.test | 2 +-
...ltext_boolean_mode_pragma_weight_no_weight.test | 2 +-
...xt_boolean_mode_pragma_weight_omit_section.test | 2 +-
...an_mode_pragma_weight_ten_or_more_sections.test | 2 +-
..._mode_pragma_weight_three_or_more_sections.test | 2 +-
.../fulltext_boolean_mode_syntax_error_error.test | 2 +-
...xt_boolean_mode_syntax_error_error_and_log.test | 2 +-
.../fulltext_boolean_mode_syntax_error_ignore.test | 2 +-
...t_boolean_mode_syntax_error_ignore_and_log.test | 2 +-
.../mroonga/storage/t/fulltext_charset_ascii.test | 2 +-
.../mroonga/storage/t/fulltext_charset_cp932.test | 2 +-
.../storage/t/fulltext_charset_eucjpms.test | 2 +-
.../storage/t/fulltext_charset_japanese.test | 2 +-
.../storage/t/fulltext_charset_utf8mb4.test | 2 +-
.../mroonga/storage/t/fulltext_empty_query.test | 2 +-
.../mroonga/storage/t/fulltext_found_rows.test | 2 +-
.../storage/t/fulltext_groonga_varchar_vector.test | 2 +-
.../mroonga/storage/t/fulltext_index_recreate.test | 2 +-
.../mroonga/storage/t/fulltext_insert_select.test | 2 +-
.../mroonga/storage/t/fulltext_insert_values.test | 2 +-
.../t/fulltext_multiple_column_index_delete.test | 2 +-
.../t/fulltext_multiple_column_index_insert.test | 2 +-
.../t/fulltext_multiple_column_index_recreate.test | 2 +-
.../t/fulltext_multiple_column_index_update.test | 2 +-
.../mroonga/storage/t/fulltext_multiple_index.test | 2 +-
.../mroonga/storage/t/fulltext_no_primary_key.test | 2 +-
.../storage/t/fulltext_not_match_against.test | 2 +-
.../mysql-test/mroonga/storage/t/fulltext_or.test | 2 +-
...ltext_order_boolean_mode_different_against.test | 2 +-
...ulltext_order_boolean_mode_different_match.test | 2 +-
.../t/fulltext_order_boolean_mode_no_where.test | 2 +-
...text_order_boolean_mode_same_match_against.test | 2 +-
.../fulltext_order_natural_language_mode_asc.test | 2 +-
.../fulltext_order_natural_language_mode_desc.test | 2 +-
...er_natural_language_mode_different_against.test | 2 +-
...rder_natural_language_mode_different_match.test | 2 +-
...ltext_order_natural_language_mode_no_where.test | 2 +-
...r_natural_language_mode_same_match_against.test | 2 +-
.../mroonga/storage/t/fulltext_two_inner_join.test | 2 +-
.../t/fulltext_version_10_0_no_such_key.test | 2 +-
.../t/fulltext_version_5_5_no_such_key.test | 2 +-
.../t/fulltext_version_5_6_no_such_key.test | 2 +-
.../storage/t/function_command_auto-escape.test | 2 +-
.../mroonga/storage/t/function_command_select.test | 2 +-
.../t/function_command_special-database-name.test | 2 +-
.../t/function_escape_error_query_is_missing.test | 2 +-
.../function_escape_error_query_is_not_string.test | 2 +-
...cape_error_target_characters_is_not_string.test | 2 +-
.../storage/t/function_escape_query_all.test | 2 +-
.../storage/t/function_escape_query_custom.test | 2 +-
.../storage/t/function_escape_query_join.test | 2 +-
.../t/function_escape_query_match_against.test | 2 +-
.../storage/t/function_escape_query_named.test | 2 +-
.../storage/t/function_escape_query_nested.test | 2 +-
.../storage/t/function_escape_script_decimal.test | 2 +-
.../storage/t/function_escape_script_integer.test | 2 +-
.../storage/t/function_escape_script_real.test | 2 +-
.../storage/t/function_escape_script_string.test | 2 +-
.../t/function_highlight_html_dynamic_keyword.test | 2 +-
.../t/function_highlight_html_japanese.test | 2 +-
.../function_highlight_html_multiple_keywords.test | 2 +-
.../t/function_highlight_html_normalizer.test | 2 +-
.../storage/t/function_highlight_html_query.test | 2 +-
.../t/function_highlight_html_query_pragma.test | 2 +-
.../storage/t/function_highlight_html_record.test | 2 +-
.../storage/t/function_last_insert_grn_id.test | 2 +-
.../t/function_last_insert_id_reference.test | 2 +-
.../storage/t/function_last_insert_id_set.test | 2 +-
.../storage/t/function_normalize_default.test | 2 +-
.../storage/t/function_normalize_normalizer.test | 2 +-
.../storage/t/function_normalize_record.test | 2 +-
.../storage/t/function_query_expand_multiple.test | 2 +-
.../storage/t/function_query_expand_no_index.test | 2 +-
.../storage/t/function_query_expand_one.test | 2 +-
.../storage/t/function_query_expand_pragma.test | 2 +-
.../mroonga/storage/t/function_snippet_ascii.test | 2 +-
.../mroonga/storage/t/function_snippet_cp932.test | 2 +-
.../storage/t/function_snippet_eucjpms.test | 2 +-
.../t/function_snippet_html_dynamic_keyword.test | 2 +-
.../storage/t/function_snippet_html_japanese.test | 2 +-
.../t/function_snippet_html_multiple_keywords.test | 2 +-
.../t/function_snippet_html_multiple_snippets.test | 2 +-
.../storage/t/function_snippet_html_query.test | 2 +-
.../t/function_snippet_html_query_pragma.test | 2 +-
.../storage/t/function_snippet_html_record.test | 2 +-
...nction_snippet_invalid_nonexistent_charset.test | 2 +-
...nction_snippet_invalid_unsupported_charset.test | 2 +-
.../storage/t/function_snippet_japanese.test | 2 +-
.../storage/t/geometry_bulk_insert_null.test | 2 +-
.../mroonga/storage/t/geometry_contains.test | 2 +-
.../geometry_strict_sql_mode_bulk_insert_null.test | 2 +-
.../t/geometry_strict_sql_mode_contains.test | 2 +-
.../storage/t/index_btree_equal_datetime.test | 2 +-
.../mroonga/storage/t/index_btree_equal_time.test | 2 +-
.../storage/t/index_btree_equal_timestamp.test | 2 +-
.../t/index_btree_normal_column_insert.test | 2 +-
.../mroonga/storage/t/index_hash_id_normal.test | 2 +-
.../mroonga/storage/t/index_hash_id_primary.test | 2 +-
.../mroonga/storage/t/index_hash_id_unique.test | 2 +-
.../storage/t/index_hash_normal_column_insert.test | 2 +-
.../t/index_hash_strict_sql_mode_id_primary.test | 2 +-
.../storage/t/index_multiple_column_delete.test | 2 +-
.../t/index_multiple_column_nullable_smallint.test | 2 +-
...x_multiple_column_nullable_unsigned_bigint.test | 2 +-
...ndex_multiple_column_nullable_unsigned_int.test | 2 +-
...multiple_column_nullable_unsigned_smallint.test | 2 +-
.../t/index_multiple_column_nullable_varchar.test | 2 +-
...ltiple_column_order_by_where_equal_asc_asc.test | 2 +-
...iple_column_order_by_where_equal_desc_desc.test | 2 +-
.../t/index_multiple_column_primary_delete.test | 2 +-
.../index_multiple_column_primary_select_int.test | 2 +-
...iple_column_primary_strict_sql_mode_update.test | 2 +-
.../t/index_multiple_column_primary_update.test | 2 +-
...ultiple_column_range_all_used_greater_than.test | 2 +-
...olumn_range_all_used_greater_than_or_equal.test | 2 +-
...x_multiple_column_range_all_used_less_than.test | 2 +-
...e_column_range_all_used_less_than_or_equal.test | 2 +-
...ge_partially_used_have_prefix_greater_than.test | 2 +-
...lly_used_have_prefix_greater_than_or_equal.test | 2 +-
...range_partially_used_have_prefix_less_than.test | 2 +-
...tially_used_have_prefix_less_than_or_equal.test | 2 +-
...ange_partially_used_no_prefix_greater_than.test | 2 +-
...ially_used_no_prefix_greater_than_or_equal.test | 2 +-
...n_range_partially_used_no_prefix_less_than.test | 2 +-
...artially_used_no_prefix_less_than_or_equal.test | 2 +-
.../storage/t/index_multiple_column_recreate.test | 2 +-
.../storage/t/index_multiple_column_replace.test | 2 +-
.../t/index_multiple_column_select_double.test | 2 +-
.../t/index_multiple_column_select_float.test | 2 +-
.../t/index_multiple_column_select_int.test | 2 +-
.../t/index_multiple_column_select_max.test | 2 +-
.../t/index_multiple_column_select_min.test | 2 +-
.../t/index_multiple_column_select_string.test | 2 +-
.../t/index_multiple_column_select_varchar.test | 2 +-
...ex_multiple_column_unique_date_32bit_equal.test | 2 +-
...ex_multiple_column_unique_date_64bit_equal.test | 2 +-
...dex_multiple_column_unique_date_index_read.test | 2 +-
...ultiple_column_unique_date_order_32bit_asc.test | 2 +-
...ltiple_column_unique_date_order_32bit_desc.test | 2 +-
...ultiple_column_unique_date_order_64bit_asc.test | 2 +-
...ltiple_column_unique_date_order_64bit_desc.test | 2 +-
...index_multiple_column_unique_date_reinsert.test | 2 +-
...multiple_column_unique_datetime_index_read.test | 2 +-
...atetime_insert_delete_insert_invalid_value.test | 2 +-
..._multiple_column_unique_datetime_order_asc.test | 2 +-
...multiple_column_unique_datetime_order_desc.test | 2 +-
...x_multiple_column_unique_datetime_reinsert.test | 2 +-
.../t/index_multiple_column_unique_decimal.test | 2 +-
...dex_multiple_column_unique_time_index_read.test | 2 +-
...ndex_multiple_column_unique_time_order_asc.test | 2 +-
...dex_multiple_column_unique_time_order_desc.test | 2 +-
...index_multiple_column_unique_time_reinsert.test | 2 +-
...ultiple_column_unique_timestamp_index_read.test | 2 +-
...multiple_column_unique_timestamp_order_asc.test | 2 +-
...ultiple_column_unique_timestamp_order_desc.test | 2 +-
..._multiple_column_unique_timestamp_reinsert.test | 2 +-
.../t/index_multiple_column_unique_varchar.test | 2 +-
...ex_multiple_column_unique_year_32bit_equal.test | 2 +-
...ex_multiple_column_unique_year_64bit_equal.test | 2 +-
...dex_multiple_column_unique_year_index_read.test | 2 +-
...ultiple_column_unique_year_order_32bit_asc.test | 2 +-
...ltiple_column_unique_year_order_32bit_desc.test | 2 +-
...ultiple_column_unique_year_order_64bit_asc.test | 2 +-
...ltiple_column_unique_year_order_64bit_desc.test | 2 +-
...index_multiple_column_unique_year_reinsert.test | 2 +-
.../t/index_multiple_column_update_int.test | 2 +-
.../t/index_multiple_column_update_string.test | 2 +-
.../storage/t/index_primary_char_exact_length.test | 2 +-
.../t/index_primary_char_null_character.test | 2 +-
.../storage/t/index_primary_char_short.test | 2 +-
.../mroonga/storage/t/index_primary_date.test | 2 +-
...x_primary_datetime_with_fractional_seconds.test | 2 +-
...rimary_datetime_without_fractional_seconds.test | 2 +-
...ex_primary_decimal_with_fractional_seconds.test | 2 +-
...primary_decimal_without_fractional_seconds.test | 2 +-
...index_primary_time_with_fractional_seconds.test | 2 +-
...ex_primary_time_without_fractional_seconds.test | 2 +-
..._primary_timestamp_with_fractional_seconds.test | 2 +-
...imary_timestamp_without_fractional_seconds.test | 2 +-
.../t/index_primary_varchar_null_character.test | 2 +-
.../mroonga/storage/t/index_primary_year.test | 2 +-
.../t/index_range_normal_greater_than_asc.test | 2 +-
.../t/index_range_normal_greater_than_desc.test | 2 +-
...dex_range_normal_greater_than_or_equal_asc.test | 2 +-
...ex_range_normal_greater_than_or_equal_desc.test | 2 +-
.../t/index_range_normal_less_than_asc.test | 2 +-
.../t/index_range_normal_less_than_desc.test | 2 +-
.../index_range_normal_less_than_or_equal_asc.test | 2 +-
...index_range_normal_less_than_or_equal_desc.test | 2 +-
.../t/index_range_primary_greater_than_asc.test | 2 +-
.../t/index_range_primary_greater_than_desc.test | 2 +-
...ex_range_primary_greater_than_or_equal_asc.test | 2 +-
...x_range_primary_greater_than_or_equal_desc.test | 2 +-
.../t/index_range_primary_less_than_asc.test | 2 +-
.../t/index_range_primary_less_than_desc.test | 2 +-
...index_range_primary_less_than_or_equal_asc.test | 2 +-
...ndex_range_primary_less_than_or_equal_desc.test | 2 +-
.../storage/t/index_read_multiple_bigint.test | 2 +-
.../t/index_read_multiple_bigint_unsigned.test | 2 +-
.../storage/t/index_read_multiple_double.test | 2 +-
.../storage/t/index_read_multiple_float.test | 2 +-
.../mroonga/storage/t/index_read_multiple_int.test | 2 +-
.../t/index_read_multiple_int_unsigned.test | 2 +-
.../storage/t/index_read_multiple_mediumint.test | 2 +-
.../t/index_read_multiple_mediumint_unsigned.test | 2 +-
.../storage/t/index_read_multiple_smallint.test | 2 +-
.../t/index_read_multiple_smallint_unsigned.test | 2 +-
.../storage/t/index_read_multiple_tinyint.test | 2 +-
.../t/index_read_multiple_tinyint_unsigned.test | 2 +-
.../storage/t/index_read_multiple_varchar.test | 2 +-
.../t/index_read_multiple_varchar_collation.test | 2 +-
.../mroonga/storage/t/index_read_normal_int.test | 2 +-
.../storage/t/index_read_normal_varchar.test | 2 +-
.../mroonga/storage/t/index_read_primary_int.test | 2 +-
.../storage/t/index_read_primary_varchar.test | 2 +-
.../mroonga/storage/t/index_unique_delete_all.test | 2 +-
.../t/index_unique_delete_by_primary_key.test | 2 +-
.../storage/t/index_unique_insert_after_error.test | 2 +-
.../t/index_unique_search_after_duplicated.test | 2 +-
.../mroonga/storage/t/index_unique_varchar.test | 2 +-
.../storage/t/index_update_multiple_column.test | 2 +-
.../storage/t/index_update_single_column.test | 2 +-
.../storage/t/information_schema_plugins.test | 2 +-
...ormation_schema_tables_auto_increment_none.test | 2 +-
...formation_schema_tables_auto_increment_use.test | 2 +-
.../t/information_schema_tables_data_length.test | 2 +-
.../mroonga/storage/t/insert_TODO_SPLIT_ME.test | 2 +-
.../mroonga/storage/t/insert_delayed.test | 2 +-
...update_no_primary_key_and_unique_key_twice.test | 2 +-
...insert_on_duplicate_key_update_primary_key.test | 2 +-
.../insert_on_duplicate_key_update_unique_key.test | 2 +-
.../mroonga/storage/t/insert_virtual_column.test | 2 +-
.../mroonga/storage/t/like_unicode_ci.test | 2 +-
.../mroonga/storage/t/lock_tables_read.test | 2 +-
...zation_count_skip_after_insert_multithread.test | 2 +-
...tion_count_skip_after_insert_single_thread.test | 2 +-
.../t/optimization_count_skip_disabled.test | 2 +-
.../t/optimization_count_skip_index_and.test | 2 +-
.../t/optimization_count_skip_index_between.test | 2 +-
.../t/optimization_count_skip_index_equal.test | 2 +-
...kip_index_full_text_search_in_boolean_mode.test | 2 +-
..._full_text_search_in_natural_language_mode.test | 2 +-
.../t/optimization_count_skip_index_greater.test | 2 +-
...ptimization_count_skip_index_greater_equal.test | 2 +-
.../t/optimization_count_skip_index_less.test | 2 +-
.../optimization_count_skip_index_less_equal.test | 2 +-
.../t/optimization_count_skip_index_not_equal.test | 2 +-
.../t/optimization_count_skip_index_view.test | 2 +-
...ptimization_count_skip_multiple_conditions.test | 2 +-
...ptimization_count_skip_primary_key_between.test | 2 +-
.../optimization_count_skip_primary_key_equal.test | 2 +-
...ptimization_count_skip_primary_key_greater.test | 2 +-
...ation_count_skip_primary_key_greater_equal.test | 2 +-
.../optimization_count_skip_primary_key_less.test | 2 +-
...mization_count_skip_primary_key_less_equal.test | 2 +-
...imization_count_skip_primary_key_not_equal.test | 2 +-
...ization_order_limit_not_optimized_disabled.test | 2 +-
...imit_not_optimized_multiple_match_againsts.test | 2 +-
...ization_order_limit_not_optimized_no_limit.test | 2 +-
.../optimization_order_limit_optimized_cp932.test | 2 +-
...ion_order_limit_optimized_datetime_between.test | 2 +-
...rder_limit_optimized_datetime_between_over.test | 2 +-
...ation_order_limit_optimized_datetime_equal.test | 2 +-
...rder_limit_optimized_datetime_greater_than.test | 2 +-
...t_optimized_datetime_greater_than_or_equal.test | 2 +-
...n_order_limit_optimized_datetime_less_than.test | 2 +-
...imit_optimized_datetime_less_than_or_equal.test | 2 +-
...imit_optimized_duplicated_order_by_columns.test | 2 +-
...timization_order_limit_optimized_enum_name.test | 2 +-
...imization_order_limit_optimized_enum_value.test | 2 +-
...ion_order_limit_optimized_have_primary_key.test | 2 +-
...mization_order_limit_optimized_int_between.test | 2 +-
...ion_order_limit_optimized_int_between_over.test | 2 +-
...timization_order_limit_optimized_int_equal.test | 2 +-
...ion_order_limit_optimized_int_greater_than.test | 2 +-
..._limit_optimized_int_greater_than_or_equal.test | 2 +-
...zation_order_limit_optimized_int_less_than.test | 2 +-
...der_limit_optimized_int_less_than_or_equal.test | 2 +-
...ation_order_limit_optimized_no_primary_key.test | 2 +-
...tion_order_limit_optimized_no_where_clause.test | 2 +-
...ization_order_limit_optimized_order_by_asc.test | 2 +-
...zation_order_limit_optimized_order_by_desc.test | 2 +-
...mization_order_limit_optimized_order_by_id.test | 2 +-
...der_limit_optimized_order_by_match_against.test | 2 +-
...order_limit_optimized_select_match_against.test | 2 +-
...ization_order_limit_optimized_time_between.test | 2 +-
...on_order_limit_optimized_time_between_over.test | 2 +-
...imization_order_limit_optimized_time_equal.test | 2 +-
...on_order_limit_optimized_time_greater_than.test | 2 +-
...limit_optimized_time_greater_than_or_equal.test | 2 +-
...ation_order_limit_optimized_time_less_than.test | 2 +-
...er_limit_optimized_time_less_than_or_equal.test | 2 +-
...r_limit_optimized_varchar_equal_with_index.test | 2 +-
...imit_optimized_varchar_equal_without_index.test | 2 +-
...ization_order_limit_optimized_year_between.test | 2 +-
...on_order_limit_optimized_year_between_over.test | 2 +-
...imization_order_limit_optimized_year_equal.test | 2 +-
...on_order_limit_optimized_year_greater_than.test | 2 +-
...limit_optimized_year_greater_than_or_equal.test | 2 +-
...ation_order_limit_optimized_year_less_than.test | 2 +-
...er_limit_optimized_year_less_than_or_equal.test | 2 +-
.../mroonga/storage/t/partition_insert.test | 2 +-
.../mroonga/storage/t/partition_update.test | 2 +-
.../storage/t/repair_table_no_index_file.test | 2 +-
.../mroonga/storage/t/replace_geometry.test | 2 +-
.../mroonga/storage/t/replace_select_varchar.test | 2 +-
.../mysql-test/mroonga/storage/t/replace_text.test | 2 +-
.../mroonga/storage/t/replace_varchar.test | 2 +-
.../mroonga/storage/t/replace_vector.test | 2 +-
.../mroonga/storage/t/replace_without_key.test | 2 +-
.../mysql-test/mroonga/storage/t/select_all.test | 2 +-
.../storage/t/select_empty_key_where_equal.test | 2 +-
.../t/select_empty_key_where_not_equal.test | 2 +-
.../storage/t/select_group_by_with_index.test | 2 +-
.../storage/t/select_group_by_without_index.test | 2 +-
.../mysql-test/mroonga/storage/t/select_pkey.test | 2 +-
.../mroonga/storage/t/select_secondary_key.test | 2 +-
.../storage/t/show_create_table_TODO_SPLIT_ME.test | 2 +-
.../mroonga/storage/t/sub_query_fulltext.test | 2 +-
.../mroonga/storage/t/temporary_table.test | 2 +-
.../mysql-test/mroonga/storage/t/truncate.test | 2 +-
.../mroonga/storage/t/update_binlog_row.test | 2 +-
.../mroonga/storage/t/update_fulltext.test | 2 +-
.../mroonga/storage/t/update_id_hash_index.test | 2 +-
.../storage/t/update_id_unique_hash_index.test | 2 +-
.../mysql-test/mroonga/storage/t/update_int.test | 2 +-
.../storage/t/update_last_insert_grn_id.test | 2 +-
.../mroonga/storage/t/update_virtual_column.test | 2 +-
...ble_boolean_mode_syntax_flags_allow_column.test | 2 +-
...oolean_mode_syntax_flags_allow_leading_not.test | 2 +-
...ble_boolean_mode_syntax_flags_allow_update.test | 2 +-
...ble_boolean_mode_syntax_flags_syntax_query.test | 2 +-
...le_boolean_mode_syntax_flags_syntax_script.test | 2 +-
.../storage/t/variable_database_path_prefix.test | 2 +-
.../t/variable_default_parser_new_value.test | 2 +-
.../t/variable_default_parser_same_value.test | 2 +-
.../t/variable_default_tokenizer_new_value.test | 2 +-
.../t/variable_default_tokenizer_same_value.test | 2 +-
.../storage/t/variable_dry_write_delete.test | 2 +-
.../storage/t/variable_dry_write_insert.test | 2 +-
.../storage/t/variable_dry_write_update.test | 2 +-
...ariable_enable_operations_recording_insert.test | 2 +-
.../storage/t/variable_lock_timeout_disable.test | 2 +-
.../storage/t/variable_lock_timeout_invalid.test | 2 +-
.../storage/t/variable_lock_timeout_no_retry.test | 2 +-
.../storage/t/variable_lock_timeout_valid.test | 2 +-
.../storage/t/variable_log_file_new_value.test | 2 +-
.../t/variable_log_file_nonexistent_path.test | 2 +-
.../storage/t/variable_log_file_same_value.test | 2 +-
.../t/variable_log_level_TODO_SPLIT_ME.test | 2 +-
...variable_match_escalation_threshold_global.test | 2 +-
...ariable_match_escalation_threshold_session.test | 2 +-
...variable_max_n_records_for_estimate_global.test | 2 +-
...rds_for_estimate_mysql_5_7_or_later_global.test | 2 +-
...mate_mysql_5_7_or_later_not_found_in_limit.test | 2 +-
...ds_for_estimate_mysql_5_7_or_later_session.test | 2 +-
..._n_records_for_estimate_not_found_in_limit.test | 2 +-
...ariable_max_n_records_for_estimate_session.test | 2 +-
...riable_query_log_file_disabled_empty_value.test | 2 +-
...ariable_query_log_file_disabled_null_value.test | 2 +-
...ariable_query_log_file_enabled_empty_value.test | 2 +-
...variable_query_log_file_enabled_null_value.test | 2 +-
.../t/variable_query_log_file_new_value.test | 2 +-
.../t/variable_query_log_file_same_value.test | 2 +-
.../t/variable_vector_column_delimiter.test | 2 +-
.../mroonga/storage/t/variable_version.test | 2 +-
.../mroonga/wrapper/t/alter_table_add_column.test | 2 +-
.../t/alter_table_add_column_multibyte_cp932.test | 2 +-
.../t/alter_table_add_column_multibyte_utf8.test | 2 +-
.../t/alter_table_change_column_comment.test | 2 +-
.../wrapper/t/alter_table_change_engine.test | 2 +-
.../t/alter_table_comment_change_engine.test | 2 +-
.../alter_table_disable_keys_create_fulltext.test | 2 +-
.../t/alter_table_disable_keys_fulltext.test | 2 +-
.../alter_table_disable_keys_multiple_column.test | 2 +-
.../wrapper/t/alter_table_disable_keys_normal.test | 2 +-
.../t/alter_table_disable_keys_primary.test | 2 +-
.../t/alter_table_disable_keys_updating.test | 2 +-
.../mroonga/wrapper/t/alter_table_drop_column.test | 2 +-
.../t/alter_table_enable_keys_fulltext.test | 2 +-
.../t/alter_table_enable_keys_lock_tables.test | 2 +-
.../t/alter_table_enable_keys_multiple_column.test | 2 +-
.../wrapper/t/alter_table_enable_keys_normal.test | 2 +-
.../wrapper/t/alter_table_enable_keys_primary.test | 2 +-
.../mroonga/wrapper/t/alter_table_fulltext.test | 2 +-
.../wrapper/t/alter_table_rename_table.test | 2 +-
.../mroonga/wrapper/t/alter_table_spatial.test | 2 +-
.../mroonga/wrapper/t/auto_increment_text.test | 2 +-
.../mroonga/wrapper/t/binlog_TODO_SPLIT_ME.test | 2 +-
.../mroonga/wrapper/t/check_table_for_upgrade.test | 2 +-
.../t/column_comment_index_not_for_mroonga.test | 2 +-
.../t/column_generated_stored_add_column.test | 2 +-
.../wrapper/t/column_generated_stored_delete.test | 2 +-
.../t/column_generated_stored_drop_column.test | 2 +-
.../wrapper/t/column_generated_stored_insert.test | 2 +-
.../wrapper/t/column_generated_stored_reindex.test | 2 +-
.../wrapper/t/column_generated_stored_update.test | 2 +-
.../t/column_generated_virtual_add_column.test | 2 +-
...olumn_generated_virtual_add_fulltext_index.test | 2 +-
.../t/column_generated_virtual_add_index.test | 2 +-
.../wrapper/t/column_generated_virtual_delete.test | 2 +-
.../t/column_generated_virtual_drop_column.test | 2 +-
.../wrapper/t/column_generated_virtual_insert.test | 2 +-
.../wrapper/t/column_generated_virtual_update.test | 2 +-
.../mroonga/wrapper/t/column_multibyte_cp932.test | 2 +-
.../mroonga/wrapper/t/column_multibyte_utf8.test | 2 +-
.../mroonga/wrapper/t/column_normal_comment.test | 2 +-
.../mysql-test/mroonga/wrapper/t/count_star.test | 2 +-
.../count_star_mysql_5_7_or_later_with_index.test | 2 +-
.../mroonga/wrapper/t/count_star_with_index.test | 2 +-
.../wrapper/t/create_table_TODO_SPLIT_ME.test | 2 +-
.../wrapper/t/create_table_comment_combined.test | 2 +-
.../wrapper/t/create_table_flags_comment.test | 2 +-
.../mroonga/wrapper/t/create_table_flags_none.test | 2 +-
.../wrapper/t/create_table_flags_parameter.test | 2 +-
.../wrapper/t/create_table_index_flags_none.test | 2 +-
..._index_flags_with_position_and_with_weight.test | 2 +-
.../wrapper/t/create_table_normalizer_comment.test | 2 +-
...create_table_normalizer_fulltext_index_bin.test | 2 +-
.../t/create_table_normalizer_parameter.test | 2 +-
.../wrapper/t/create_table_parser_comment.test | 2 +-
...token_filters_index_multiple_token_filters.test | 2 +-
...table_token_filters_index_one_token_filter.test | 2 +-
...create_table_token_filters_index_parameter.test | 2 +-
.../wrapper/t/create_table_tokenizer_comment.test | 2 +-
.../t/create_table_tokenizer_parameter.test | 2 +-
.../mroonga/wrapper/t/delete_TODO_SPLIT_ME.test | 2 +-
.../mysql-test/mroonga/wrapper/t/delete_all.test | 2 +-
.../wrapper/t/drop_table_new_connection.test | 2 +-
.../t/fulltext_boolean_mode_leading_not.test | 2 +-
...lltext_boolean_mode_multiple_match_against.test | 2 +-
..._pragma_default_operator_minus_no_operator.test | 2 +-
...mode_pragma_default_operator_minus_with_or.test | 2 +-
...de_pragma_default_operator_minus_with_plus.test | 2 +-
...ode_pragma_default_operator_or_no_operator.test | 2 +-
...mode_pragma_default_operator_or_with_minus.test | 2 +-
..._mode_pragma_default_operator_or_with_plus.test | 2 +-
...e_pragma_default_operator_plus_no_operator.test | 2 +-
...de_pragma_default_operator_plus_with_minus.test | 2 +-
..._mode_pragma_default_operator_plus_with_or.test | 2 +-
...ltext_boolean_mode_pragma_weight_full_spec.test | 2 +-
...ltext_boolean_mode_pragma_weight_no_weight.test | 2 +-
...xt_boolean_mode_pragma_weight_omit_section.test | 2 +-
.../mroonga/wrapper/t/fulltext_charset_ascii.test | 2 +-
.../mroonga/wrapper/t/fulltext_charset_cp932.test | 2 +-
.../wrapper/t/fulltext_charset_eucjpms.test | 2 +-
.../wrapper/t/fulltext_charset_japanese.test | 2 +-
.../mroonga/wrapper/t/fulltext_index_recreate.test | 2 +-
.../mroonga/wrapper/t/fulltext_insert_select.test | 2 +-
.../mroonga/wrapper/t/fulltext_insert_values.test | 2 +-
.../mroonga/wrapper/t/fulltext_many_records.test | 2 +-
...d_and_not_matched_have_where_matched_order.test | 2 +-
...atched_and_not_matched_have_where_no_order.test | 2 +-
...atched_and_not_matched_no_where_both_order.test | 2 +-
.../t/fulltext_multiple_column_index_delete.test | 2 +-
.../t/fulltext_multiple_column_index_insert.test | 2 +-
.../t/fulltext_multiple_column_index_recreate.test | 2 +-
.../t/fulltext_multiple_column_index_update.test | 2 +-
.../mroonga/wrapper/t/fulltext_multiple_index.test | 2 +-
.../mroonga/wrapper/t/fulltext_myisam.test | 2 +-
.../wrapper/t/fulltext_not_match_against.test | 2 +-
.../wrapper/t/fulltext_order_TODO_SPLIT_ME.test | 2 +-
.../wrapper/t/fulltext_order_transaction.test | 2 +-
.../t/function_last_insert_id_reference.test | 2 +-
.../wrapper/t/function_last_insert_id_set.test | 2 +-
.../mroonga/wrapper/t/geometry_contains.test | 2 +-
.../mroonga/wrapper/t/geometry_delete.test | 2 +-
.../mroonga/wrapper/t/geometry_update.test | 2 +-
.../wrapper/t/index_force_index_not_used.test | 2 +-
.../mroonga/wrapper/t/insert_TODO_SPLIT_ME.test | 2 +-
.../mysql-test/mroonga/wrapper/t/insert_bulk.test | 2 +-
..._update_multiple_column_primary_key_myisam.test | 2 +-
...update_multiple_column_unique_index_myisam.test | 2 +-
.../wrapper/t/multi_range_read_disk_sweep.test | 2 +-
...i_range_read_mysql_5_7_or_later_disk_sweep.test | 2 +-
.../t/optimization_order_limit_TODO_SPLIT_ME.test | 2 +-
.../t/optimization_order_limit_no_direction.test | 2 +-
.../optimization_order_limit_no_where_clause.test | 2 +-
...imization_order_limit_order_by_primary_key.test | 2 +-
.../mroonga/wrapper/t/performance_schema.test | 2 +-
.../mroonga/wrapper/t/repair_table_no_files.test | 2 +-
.../wrapper/t/repair_table_no_index_file.test | 2 +-
.../mroonga/wrapper/t/temporary_table.test | 2 +-
.../mroonga/wrapper/t/transaction_query_cache.test | 2 +-
.../t/transaction_rollback_delete_delete.test | 2 +-
.../t/transaction_rollback_delete_update.test | 2 +-
.../mysql-test/mroonga/wrapper/t/truncate.test | 2 +-
.../mroonga/wrapper/t/update_fulltext.test | 2 +-
.../mysql-test/mroonga/wrapper/t/update_int.test | 2 +-
.../wrapper/t/variable_dry_write_delete.test | 2 +-
.../wrapper/t/variable_dry_write_insert.test | 2 +-
.../wrapper/t/variable_dry_write_update.test | 2 +-
...variable_match_escalation_threshold_global.test | 2 +-
...ariable_match_escalation_threshold_session.test | 2 +-
storage/mroonga/packages/ubuntu/upload.rb | 2 +-
storage/mroonga/test/run-sql-test.sh | 2 +-
storage/mroonga/test/unit/test_mrn_path_mapper.cpp | 2 +-
storage/mroonga/tools/travis/before_script.sh | 2 +-
storage/mroonga/tools/travis/install.sh | 2 +-
storage/mroonga/tools/travis/script.sh | 2 +-
storage/mroonga/udf/mrn_udf_command.cpp | 2 +-
storage/mroonga/udf/mrn_udf_escape.cpp | 2 +-
storage/mroonga/udf/mrn_udf_highlight_html.cpp | 2 +-
storage/mroonga/udf/mrn_udf_last_insert_grn_id.cpp | 2 +-
storage/mroonga/udf/mrn_udf_normalize.cpp | 2 +-
storage/mroonga/udf/mrn_udf_query_expand.cpp | 2 +-
storage/mroonga/udf/mrn_udf_snippet.cpp | 2 +-
storage/mroonga/udf/mrn_udf_snippet_html.cpp | 2 +-
storage/mroonga/vendor/groonga/CMakeLists.txt | 16 +-
storage/mroonga/vendor/groonga/COPYING | 4 +-
.../groonga/benchmark/bench-between-sequential.c | 2 +-
.../mroonga/vendor/groonga/benchmark/bench-cache.c | 2 +-
.../vendor/groonga/benchmark/bench-ctx-create.c | 2 +-
.../vendor/groonga/benchmark/bench-geo-distance.c | 2 +-
.../vendor/groonga/benchmark/bench-geo-select.c | 2 +-
.../mroonga/vendor/groonga/benchmark/bench-nfkc.c | 2 +-
.../groonga/benchmark/bench-query-optimizer.c | 2 +-
.../vendor/groonga/benchmark/bench-range-select.c | 2 +-
.../vendor/groonga/benchmark/bench-result-set.c | 2 +-
.../vendor/groonga/benchmark/bench-table-factory.c | 2 +-
.../vendor/groonga/benchmark/lib/bench-reporter.c | 2 +-
.../vendor/groonga/benchmark/lib/bench-reporter.h | 2 +-
.../vendor/groonga/benchmark/lib/bench-utils.c | 2 +-
.../vendor/groonga/benchmark/lib/bench-utils.h | 2 +-
.../vendor/groonga/benchmark/lib/benchmark.c | 2 +-
.../vendor/groonga/benchmark/lib/benchmark.h | 2 +-
.../vendor/groonga/bindings/python/ql/groongaql.c | 2 +-
.../groonga/build/cmake_modules/ReadFileList.cmake | 2 +-
storage/mroonga/vendor/groonga/config.h.cmake | 1 +
.../mroonga/vendor/groonga/include/CMakeLists.txt | 2 +-
storage/mroonga/vendor/groonga/include/groonga.h | 2 +-
storage/mroonga/vendor/groonga/include/groonga.hpp | 2 +-
.../vendor/groonga/include/groonga/accessor.h | 2 +-
.../mroonga/vendor/groonga/include/groonga/array.h | 2 +-
.../mroonga/vendor/groonga/include/groonga/arrow.h | 2 +-
.../vendor/groonga/include/groonga/arrow.hpp | 2 +-
.../mroonga/vendor/groonga/include/groonga/cache.h | 2 +-
.../vendor/groonga/include/groonga/column.h | 2 +-
.../vendor/groonga/include/groonga/command.h | 2 +-
.../vendor/groonga/include/groonga/config.h | 2 +-
.../mroonga/vendor/groonga/include/groonga/dat.h | 2 +-
.../mroonga/vendor/groonga/include/groonga/db.h | 2 +-
.../mroonga/vendor/groonga/include/groonga/dump.h | 2 +-
.../mroonga/vendor/groonga/include/groonga/error.h | 2 +-
.../mroonga/vendor/groonga/include/groonga/expr.h | 2 +-
.../vendor/groonga/include/groonga/file_reader.h | 2 +-
.../mroonga/vendor/groonga/include/groonga/geo.h | 2 +-
.../vendor/groonga/include/groonga/groonga.h | 2 +-
.../mroonga/vendor/groonga/include/groonga/hash.h | 2 +-
.../mroonga/vendor/groonga/include/groonga/id.h | 2 +-
.../mroonga/vendor/groonga/include/groonga/ii.h | 2 +-
.../mroonga/vendor/groonga/include/groonga/nfkc.h | 2 +-
.../vendor/groonga/include/groonga/normalizer.h | 2 +-
.../mroonga/vendor/groonga/include/groonga/obj.h | 2 +-
.../vendor/groonga/include/groonga/operator.h | 2 +-
.../vendor/groonga/include/groonga/output.h | 2 +-
.../mroonga/vendor/groonga/include/groonga/pat.h | 2 +-
.../vendor/groonga/include/groonga/plugin.h | 2 +-
.../vendor/groonga/include/groonga/portability.h | 2 +-
.../groonga/include/groonga/request_canceler.h | 2 +-
.../vendor/groonga/include/groonga/request_timer.h | 2 +-
.../vendor/groonga/include/groonga/scorer.h | 2 +-
.../mroonga/vendor/groonga/include/groonga/table.h | 2 +-
.../vendor/groonga/include/groonga/thread.h | 2 +-
.../mroonga/vendor/groonga/include/groonga/time.h | 2 +-
.../mroonga/vendor/groonga/include/groonga/token.h | 2 +-
.../vendor/groonga/include/groonga/token_filter.h | 2 +-
.../vendor/groonga/include/groonga/tokenizer.h | 2 +-
.../mroonga/vendor/groonga/include/groonga/type.h | 2 +-
.../mroonga/vendor/groonga/include/groonga/util.h | 2 +-
.../groonga/include/groonga/window_function.h | 2 +-
.../vendor/groonga/include/groonga/windows.h | 2 +-
.../groonga/include/groonga/windows_event_logger.h | 2 +-
storage/mroonga/vendor/groonga/lib/CMakeLists.txt | 5 +-
storage/mroonga/vendor/groonga/lib/alloc.c | 2 +-
storage/mroonga/vendor/groonga/lib/arrow.cpp | 2 +-
storage/mroonga/vendor/groonga/lib/cache.c | 2 +-
storage/mroonga/vendor/groonga/lib/column.c | 2 +-
storage/mroonga/vendor/groonga/lib/com.c | 2 +-
storage/mroonga/vendor/groonga/lib/command.c | 2 +-
storage/mroonga/vendor/groonga/lib/config.c | 2 +-
storage/mroonga/vendor/groonga/lib/ctx.c | 2 +-
storage/mroonga/vendor/groonga/lib/ctx_impl_mrb.c | 2 +-
storage/mroonga/vendor/groonga/lib/dat.cpp | 2 +-
storage/mroonga/vendor/groonga/lib/dat/array.hpp | 2 +-
storage/mroonga/vendor/groonga/lib/dat/base.hpp | 2 +-
storage/mroonga/vendor/groonga/lib/dat/block.hpp | 2 +-
storage/mroonga/vendor/groonga/lib/dat/check.hpp | 2 +-
.../vendor/groonga/lib/dat/cursor-factory.cpp | 2 +-
.../vendor/groonga/lib/dat/cursor-factory.hpp | 2 +-
storage/mroonga/vendor/groonga/lib/dat/cursor.hpp | 2 +-
storage/mroonga/vendor/groonga/lib/dat/dat.hpp | 2 +-
storage/mroonga/vendor/groonga/lib/dat/entry.hpp | 2 +-
.../mroonga/vendor/groonga/lib/dat/file-impl.cpp | 2 +-
.../mroonga/vendor/groonga/lib/dat/file-impl.hpp | 2 +-
storage/mroonga/vendor/groonga/lib/dat/file.cpp | 2 +-
storage/mroonga/vendor/groonga/lib/dat/file.hpp | 2 +-
storage/mroonga/vendor/groonga/lib/dat/header.hpp | 2 +-
.../mroonga/vendor/groonga/lib/dat/id-cursor.cpp | 2 +-
.../mroonga/vendor/groonga/lib/dat/id-cursor.hpp | 2 +-
.../mroonga/vendor/groonga/lib/dat/key-cursor.cpp | 2 +-
.../mroonga/vendor/groonga/lib/dat/key-cursor.hpp | 2 +-
storage/mroonga/vendor/groonga/lib/dat/key.hpp | 2 +-
storage/mroonga/vendor/groonga/lib/dat/node.hpp | 2 +-
.../vendor/groonga/lib/dat/predictive-cursor.cpp | 2 +-
.../vendor/groonga/lib/dat/predictive-cursor.hpp | 2 +-
.../vendor/groonga/lib/dat/prefix-cursor.cpp | 2 +-
.../vendor/groonga/lib/dat/prefix-cursor.hpp | 2 +-
storage/mroonga/vendor/groonga/lib/dat/string.hpp | 2 +-
storage/mroonga/vendor/groonga/lib/dat/trie.cpp | 2 +-
storage/mroonga/vendor/groonga/lib/dat/trie.hpp | 2 +-
storage/mroonga/vendor/groonga/lib/dat/vector.hpp | 2 +-
storage/mroonga/vendor/groonga/lib/db.c | 2 +-
storage/mroonga/vendor/groonga/lib/dump.c | 2 +-
storage/mroonga/vendor/groonga/lib/error.c | 2 +-
storage/mroonga/vendor/groonga/lib/expr.c | 4 +-
storage/mroonga/vendor/groonga/lib/expr_code.c | 2 +-
storage/mroonga/vendor/groonga/lib/expr_executor.c | 2 +-
storage/mroonga/vendor/groonga/lib/file_lock.c | 2 +-
storage/mroonga/vendor/groonga/lib/file_reader.c | 2 +-
storage/mroonga/vendor/groonga/lib/geo.c | 2 +-
storage/mroonga/vendor/groonga/lib/grn.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_alloc.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_cache.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_com.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_config.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_ctx.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_ctx_impl.h | 2 +-
.../mroonga/vendor/groonga/lib/grn_ctx_impl_mrb.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_dat.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_db.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_error.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_expr.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_expr_code.h | 2 +-
.../mroonga/vendor/groonga/lib/grn_expr_executor.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_file_lock.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_geo.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_hash.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_ii.h | 2 +-
.../mroonga/vendor/groonga/lib/grn_index_column.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_io.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_load.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_logger.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_mrb.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_msgpack.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_nfkc.h | 2 +-
.../mroonga/vendor/groonga/lib/grn_normalizer.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_obj.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_output.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_pat.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_plugin.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_proc.h | 2 +-
.../mroonga/vendor/groonga/lib/grn_raw_string.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_report.h | 2 +-
.../vendor/groonga/lib/grn_request_canceler.h | 2 +-
.../mroonga/vendor/groonga/lib/grn_request_timer.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_rset.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_scanner.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_scorer.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_scorers.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_snip.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_store.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_str.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_string.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_time.h | 2 +-
.../mroonga/vendor/groonga/lib/grn_token_cursor.h | 2 +-
.../mroonga/vendor/groonga/lib/grn_tokenizers.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_ts.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_util.h | 2 +-
.../vendor/groonga/lib/grn_window_function.h | 2 +-
.../vendor/groonga/lib/grn_window_functions.h | 2 +-
storage/mroonga/vendor/groonga/lib/grn_windows.h | 2 +-
storage/mroonga/vendor/groonga/lib/hash.c | 36 +-
storage/mroonga/vendor/groonga/lib/icudump.c | 2 +-
storage/mroonga/vendor/groonga/lib/id.c | 2 +-
storage/mroonga/vendor/groonga/lib/ii.c | 19 +-
storage/mroonga/vendor/groonga/lib/index_column.c | 2 +-
storage/mroonga/vendor/groonga/lib/io.c | 2 +-
storage/mroonga/vendor/groonga/lib/load.c | 2 +-
storage/mroonga/vendor/groonga/lib/logger.c | 2 +-
storage/mroonga/vendor/groonga/lib/mrb.c | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_accessor.c | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_accessor.h | 2 +-
storage/mroonga/vendor/groonga/lib/mrb/mrb_array.c | 2 +-
storage/mroonga/vendor/groonga/lib/mrb/mrb_array.h | 2 +-
storage/mroonga/vendor/groonga/lib/mrb/mrb_bulk.c | 2 +-
storage/mroonga/vendor/groonga/lib/mrb/mrb_bulk.h | 2 +-
storage/mroonga/vendor/groonga/lib/mrb/mrb_cache.c | 2 +-
storage/mroonga/vendor/groonga/lib/mrb/mrb_cache.h | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_column.c | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_column.h | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_command.c | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_command.h | 2 +-
.../vendor/groonga/lib/mrb/mrb_command_input.c | 2 +-
.../vendor/groonga/lib/mrb/mrb_command_input.h | 2 +-
.../vendor/groonga/lib/mrb/mrb_command_version.c | 2 +-
.../vendor/groonga/lib/mrb/mrb_command_version.h | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_config.c | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_config.h | 2 +-
.../vendor/groonga/lib/mrb/mrb_content_type.c | 2 +-
.../vendor/groonga/lib/mrb/mrb_content_type.h | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_converter.c | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_converter.h | 2 +-
storage/mroonga/vendor/groonga/lib/mrb/mrb_ctx.c | 2 +-
storage/mroonga/vendor/groonga/lib/mrb/mrb_ctx.h | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_database.c | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_database.h | 2 +-
.../vendor/groonga/lib/mrb/mrb_double_array_trie.c | 2 +-
.../vendor/groonga/lib/mrb/mrb_double_array_trie.h | 2 +-
storage/mroonga/vendor/groonga/lib/mrb/mrb_error.c | 2 +-
storage/mroonga/vendor/groonga/lib/mrb/mrb_error.h | 2 +-
.../vendor/groonga/lib/mrb/mrb_eval_context.c | 2 +-
.../vendor/groonga/lib/mrb/mrb_eval_context.h | 2 +-
storage/mroonga/vendor/groonga/lib/mrb/mrb_expr.c | 2 +-
storage/mroonga/vendor/groonga/lib/mrb/mrb_expr.h | 2 +-
.../vendor/groonga/lib/mrb/mrb_fixed_size_column.c | 2 +-
.../vendor/groonga/lib/mrb/mrb_fixed_size_column.h | 2 +-
.../vendor/groonga/lib/mrb/mrb_hash_table.c | 2 +-
.../vendor/groonga/lib/mrb/mrb_hash_table.h | 2 +-
storage/mroonga/vendor/groonga/lib/mrb/mrb_id.c | 2 +-
storage/mroonga/vendor/groonga/lib/mrb/mrb_id.h | 2 +-
.../vendor/groonga/lib/mrb/mrb_index_column.c | 2 +-
.../vendor/groonga/lib/mrb/mrb_index_column.h | 2 +-
.../vendor/groonga/lib/mrb/mrb_index_cursor.c | 2 +-
.../vendor/groonga/lib/mrb/mrb_index_cursor.h | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_indexable.c | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_indexable.h | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_logger.c | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_logger.h | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_object.c | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_object.h | 2 +-
.../vendor/groonga/lib/mrb/mrb_object_flags.c | 2 +-
.../vendor/groonga/lib/mrb/mrb_object_flags.h | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_operator.c | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_operator.h | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_options.c | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_options.h | 2 +-
.../vendor/groonga/lib/mrb/mrb_patricia_trie.c | 2 +-
.../vendor/groonga/lib/mrb/mrb_patricia_trie.h | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_pointer.c | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_pointer.h | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_procedure.c | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_procedure.h | 2 +-
.../vendor/groonga/lib/mrb/mrb_query_logger.c | 2 +-
.../vendor/groonga/lib/mrb/mrb_query_logger.h | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_record.c | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_record.h | 2 +-
storage/mroonga/vendor/groonga/lib/mrb/mrb_table.c | 2 +-
storage/mroonga/vendor/groonga/lib/mrb/mrb_table.h | 2 +-
.../vendor/groonga/lib/mrb/mrb_table_cursor.c | 2 +-
.../vendor/groonga/lib/mrb/mrb_table_cursor.h | 2 +-
.../groonga/lib/mrb/mrb_table_cursor_flags.c | 2 +-
.../groonga/lib/mrb/mrb_table_cursor_flags.h | 2 +-
.../vendor/groonga/lib/mrb/mrb_table_group_flags.c | 2 +-
.../vendor/groonga/lib/mrb/mrb_table_group_flags.h | 2 +-
.../groonga/lib/mrb/mrb_table_group_result.c | 2 +-
.../groonga/lib/mrb/mrb_table_group_result.h | 2 +-
.../vendor/groonga/lib/mrb/mrb_table_sort_flags.c | 2 +-
.../vendor/groonga/lib/mrb/mrb_table_sort_flags.h | 2 +-
.../vendor/groonga/lib/mrb/mrb_table_sort_key.c | 2 +-
.../vendor/groonga/lib/mrb/mrb_table_sort_key.h | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_thread.c | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_thread.h | 2 +-
storage/mroonga/vendor/groonga/lib/mrb/mrb_type.c | 2 +-
storage/mroonga/vendor/groonga/lib/mrb/mrb_type.h | 2 +-
.../groonga/lib/mrb/mrb_variable_size_column.c | 2 +-
.../groonga/lib/mrb/mrb_variable_size_column.h | 2 +-
storage/mroonga/vendor/groonga/lib/mrb/mrb_void.c | 2 +-
storage/mroonga/vendor/groonga/lib/mrb/mrb_void.h | 2 +-
.../vendor/groonga/lib/mrb/mrb_window_definition.c | 2 +-
.../vendor/groonga/lib/mrb/mrb_window_definition.h | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_writer.c | 2 +-
.../mroonga/vendor/groonga/lib/mrb/mrb_writer.h | 2 +-
storage/mroonga/vendor/groonga/lib/nfkc.c | 2 +-
storage/mroonga/vendor/groonga/lib/nfkc.rb | 4 +-
storage/mroonga/vendor/groonga/lib/nfkc50.c | 2 +-
storage/mroonga/vendor/groonga/lib/normalizer.c | 2 +-
storage/mroonga/vendor/groonga/lib/obj.c | 2 +-
storage/mroonga/vendor/groonga/lib/operator.c | 2 +-
storage/mroonga/vendor/groonga/lib/output.c | 2 +-
storage/mroonga/vendor/groonga/lib/pat.c | 16 +-
storage/mroonga/vendor/groonga/lib/plugin.c | 2 +-
storage/mroonga/vendor/groonga/lib/proc.c | 2 +-
.../mroonga/vendor/groonga/lib/proc/proc_column.c | 2 +-
.../mroonga/vendor/groonga/lib/proc/proc_config.c | 2 +-
.../mroonga/vendor/groonga/lib/proc/proc_dump.c | 2 +-
.../vendor/groonga/lib/proc/proc_fuzzy_search.c | 2 +-
.../vendor/groonga/lib/proc/proc_highlight.c | 2 +-
.../vendor/groonga/lib/proc/proc_in_records.c | 2 +-
.../mroonga/vendor/groonga/lib/proc/proc_lock.c | 2 +-
.../mroonga/vendor/groonga/lib/proc/proc_object.c | 2 +-
.../vendor/groonga/lib/proc/proc_object_inspect.c | 2 +-
.../vendor/groonga/lib/proc/proc_object_list.c | 2 +-
.../mroonga/vendor/groonga/lib/proc/proc_query.c | 2 +-
.../vendor/groonga/lib/proc/proc_query_log_flags.c | 2 +-
.../mroonga/vendor/groonga/lib/proc/proc_schema.c | 2 +-
.../mroonga/vendor/groonga/lib/proc/proc_select.c | 2 +-
.../mroonga/vendor/groonga/lib/proc/proc_snippet.c | 2 +-
.../mroonga/vendor/groonga/lib/proc/proc_table.c | 2 +-
.../vendor/groonga/lib/proc/proc_tokenize.c | 2 +-
storage/mroonga/vendor/groonga/lib/raw_string.c | 2 +-
storage/mroonga/vendor/groonga/lib/report.c | 2 +-
.../mroonga/vendor/groonga/lib/request_canceler.c | 2 +-
storage/mroonga/vendor/groonga/lib/request_timer.c | 2 +-
storage/mroonga/vendor/groonga/lib/rset.c | 2 +-
storage/mroonga/vendor/groonga/lib/scanner.c | 2 +-
storage/mroonga/vendor/groonga/lib/scorer.c | 2 +-
storage/mroonga/vendor/groonga/lib/scorers.c | 2 +-
storage/mroonga/vendor/groonga/lib/snip.c | 2 +-
storage/mroonga/vendor/groonga/lib/store.c | 2 +-
storage/mroonga/vendor/groonga/lib/str.c | 2 +-
storage/mroonga/vendor/groonga/lib/string.c | 2 +-
storage/mroonga/vendor/groonga/lib/table.c | 2 +-
storage/mroonga/vendor/groonga/lib/thread.c | 2 +-
storage/mroonga/vendor/groonga/lib/time.c | 2 +-
storage/mroonga/vendor/groonga/lib/token_cursor.c | 2 +-
storage/mroonga/vendor/groonga/lib/token_filter.c | 2 +-
storage/mroonga/vendor/groonga/lib/tokenizer.c | 2 +-
storage/mroonga/vendor/groonga/lib/tokenizers.c | 2 +-
storage/mroonga/vendor/groonga/lib/ts.c | 4 +-
storage/mroonga/vendor/groonga/lib/ts/ts_buf.c | 2 +-
storage/mroonga/vendor/groonga/lib/ts/ts_buf.h | 2 +-
storage/mroonga/vendor/groonga/lib/ts/ts_cursor.c | 2 +-
storage/mroonga/vendor/groonga/lib/ts/ts_cursor.h | 2 +-
storage/mroonga/vendor/groonga/lib/ts/ts_expr.c | 2 +-
storage/mroonga/vendor/groonga/lib/ts/ts_expr.h | 2 +-
.../vendor/groonga/lib/ts/ts_expr_builder.c | 2 +-
.../vendor/groonga/lib/ts/ts_expr_builder.h | 2 +-
.../mroonga/vendor/groonga/lib/ts/ts_expr_node.c | 55 +-
.../mroonga/vendor/groonga/lib/ts/ts_expr_node.h | 2 +-
.../mroonga/vendor/groonga/lib/ts/ts_expr_parser.c | 2 +-
.../mroonga/vendor/groonga/lib/ts/ts_expr_parser.h | 2 +-
storage/mroonga/vendor/groonga/lib/ts/ts_log.h | 2 +-
storage/mroonga/vendor/groonga/lib/ts/ts_op.c | 2 +-
storage/mroonga/vendor/groonga/lib/ts/ts_op.h | 2 +-
storage/mroonga/vendor/groonga/lib/ts/ts_plan.c | 2 +-
storage/mroonga/vendor/groonga/lib/ts/ts_plan.h | 2 +-
storage/mroonga/vendor/groonga/lib/ts/ts_sorter.c | 2 +-
storage/mroonga/vendor/groonga/lib/ts/ts_sorter.h | 2 +-
storage/mroonga/vendor/groonga/lib/ts/ts_str.c | 2 +-
storage/mroonga/vendor/groonga/lib/ts/ts_str.h | 2 +-
storage/mroonga/vendor/groonga/lib/ts/ts_types.h | 2 +-
storage/mroonga/vendor/groonga/lib/ts/ts_util.c | 2 +-
storage/mroonga/vendor/groonga/lib/ts/ts_util.h | 2 +-
storage/mroonga/vendor/groonga/lib/type.c | 2 +-
storage/mroonga/vendor/groonga/lib/util.c | 2 +-
.../mroonga/vendor/groonga/lib/window_function.c | 2 +-
.../mroonga/vendor/groonga/lib/window_functions.c | 2 +-
storage/mroonga/vendor/groonga/lib/windows.c | 2 +-
.../vendor/groonga/lib/windows_event_logger.c | 2 +-
.../mroonga/vendor/groonga/plugins/CMakeLists.txt | 2 +-
.../plugins/expression_rewriters/CMakeLists.txt | 2 +-
.../groonga/plugins/functions/CMakeLists.txt | 2 +-
.../groonga/plugins/functions/index_column.c | 2 +-
.../vendor/groonga/plugins/functions/math.c | 2 +-
.../vendor/groonga/plugins/functions/number.c | 2 +-
.../vendor/groonga/plugins/functions/string.c | 2 +-
.../vendor/groonga/plugins/functions/time.c | 2 +-
.../vendor/groonga/plugins/functions/vector.c | 2 +-
.../groonga/plugins/query_expanders/CMakeLists.txt | 2 +-
.../vendor/groonga/plugins/query_expanders/tsv.c | 2 +-
.../vendor/groonga/plugins/ruby/CMakeLists.txt | 2 +-
.../vendor/groonga/plugins/sharding/CMakeLists.txt | 2 +-
.../vendor/groonga/plugins/suggest/CMakeLists.txt | 2 +-
.../vendor/groonga/plugins/suggest/suggest.c | 2 +-
.../groonga/plugins/token_filters/CMakeLists.txt | 2 +-
.../vendor/groonga/plugins/token_filters/stem.c | 2 +-
.../groonga/plugins/token_filters/stop_word.c | 2 +-
.../groonga/plugins/tokenizers/CMakeLists.txt | 2 +-
.../vendor/groonga/plugins/tokenizers/kytea.cpp | 2 +-
.../vendor/groonga/plugins/tokenizers/mecab.c | 2 +-
storage/mroonga/vendor/groonga/src/CMakeLists.txt | 2 +-
storage/mroonga/vendor/groonga/src/grndb.c | 2 +-
storage/mroonga/vendor/groonga/src/grnslap.c | 2 +-
storage/mroonga/vendor/groonga/src/groonga.c | 2 +-
.../mroonga/vendor/groonga/src/groonga_benchmark.c | 2 +-
storage/mroonga/vendor/groonga/src/groonga_mruby.c | 2 +-
.../httpd/nginx-module/ngx_http_groonga_module.c | 2 +-
.../vendor/groonga/src/suggest/CMakeLists.txt | 2 +-
.../src/suggest/groonga_suggest_create_dataset.c | 2 +-
.../groonga/src/suggest/groonga_suggest_httpd.c | 2 +-
.../groonga/src/suggest/groonga_suggest_learner.c | 2 +-
storage/mroonga/vendor/groonga/src/suggest/util.c | 2 +-
storage/mroonga/vendor/groonga/src/suggest/util.h | 2 +-
.../vendor/groonga/src/suggest/zmq_compatible.h | 2 +-
.../groonga/tools/groonga-object-list-checker.rb | 2 +-
.../groonga/tools/groonga-suggest-httpd-client.rb | 2 +-
.../mroonga/vendor/groonga/vendor/CMakeLists.txt | 2 +-
.../vendor/groonga/vendor/lz4/CMakeLists.txt | 2 +-
.../vendor/groonga/vendor/mecab/CMakeLists.txt | 2 +-
.../groonga/vendor/message_pack/CMakeLists.txt | 2 +-
.../vendor/groonga/vendor/mruby/CMakeLists.txt | 2 +-
.../vendor/groonga/vendor/onigmo/CMakeLists.txt | 2 +-
.../vendor/groonga/vendor/plugins/CMakeLists.txt | 2 +-
.../groonga-normalizer-mysql/CMakeLists.txt | 2 +-
.../plugins/groonga-normalizer-mysql/Makefile.am | 2 +-
.../plugins/groonga-normalizer-mysql/autogen.sh | 2 +-
.../groonga-normalizer-mysql/build/Makefile.am | 2 +-
.../build/cmake_modules/Makefile.am | 2 +-
.../build/cmake_modules/ReadFileList.cmake | 2 +-
.../plugins/groonga-normalizer-mysql/configure.ac | 2 +-
.../groonga-normalizer-mysql/data/travis/setup.sh | 2 +-
.../groonga-normalizer-mysql/doc/Makefile.am | 2 +-
.../groonga-normalizer-mysql/doc/text/Makefile.am | 2 +-
.../groonga-normalizer-mysql/doc/text/lgpl-2.0.txt | 4 +-
.../normalizers/CMakeLists.txt | 2 +-
.../normalizers/Makefile.am | 2 +-
.../groonga-normalizer-mysql/normalizers/mysql.c | 2 +-
.../normalizers/mysql_general_ci_table.h | 4 +-
...ept_kana_ci_kana_with_voiced_sound_mark_table.h | 4 +-
.../normalizers/mysql_unicode_520_ci_table.h | 4 +-
...ept_kana_ci_kana_with_voiced_sound_mark_table.h | 4 +-
.../normalizers/mysql_unicode_ci_table.h | 4 +-
.../packages/debian/copyright | 4 +-
.../tool/dump_difference_uca.rb | 2 +-
.../tool/dump_difference_utf8.rb | 2 +-
.../tool/generate_uca_table.rb | 6 +-
.../tool/generate_utf8_table.rb | 6 +-
.../groonga-normalizer-mysql/tool/parser.rb | 2 +-
.../tool/travis/before_script.sh | 2 +-
.../tool/travis/install.sh | 2 +-
storage/myisam/CMakeLists.txt | 2 +-
storage/myisam/NEWS | 4 +-
storage/myisam/ft_boolean_search.c | 4 +-
storage/myisam/ft_myisam.c | 2 +-
storage/myisam/ft_nlq_search.c | 4 +-
storage/myisam/ft_parser.c | 2 +-
storage/myisam/ft_static.c | 2 +-
storage/myisam/ft_stopwords.c | 2 +-
storage/myisam/ft_update.c | 2 +-
storage/myisam/ftbench/Ecompare.pl | 2 +-
storage/myisam/ftbench/Ecreate.pl | 2 +-
storage/myisam/ftbench/Ereport.pl | 2 +-
storage/myisam/ftbench/ft-test-run.sh | 2 +-
storage/myisam/ftdefs.h | 2 +-
storage/myisam/fulltext.h | 2 +-
storage/myisam/ha_myisam.cc | 24 +-
storage/myisam/ha_myisam.h | 2 +-
storage/myisam/mi_cache.c | 2 +-
storage/myisam/mi_changed.c | 2 +-
storage/myisam/mi_check.c | 18 +-
storage/myisam/mi_checksum.c | 2 +-
storage/myisam/mi_close.c | 19 +-
storage/myisam/mi_create.c | 6 +-
storage/myisam/mi_dbug.c | 2 +-
storage/myisam/mi_delete.c | 4 +-
storage/myisam/mi_delete_all.c | 2 +-
storage/myisam/mi_delete_table.c | 2 +-
storage/myisam/mi_dynrec.c | 6 +-
storage/myisam/mi_extra.c | 10 +-
storage/myisam/mi_extrafunc.h | 2 +-
storage/myisam/mi_info.c | 2 +-
storage/myisam/mi_key.c | 8 +-
storage/myisam/mi_keycache.c | 2 +-
storage/myisam/mi_locking.c | 10 +-
storage/myisam/mi_log.c | 2 +-
storage/myisam/mi_open.c | 10 +-
storage/myisam/mi_packrec.c | 4 +-
storage/myisam/mi_page.c | 2 +-
storage/myisam/mi_panic.c | 2 +-
storage/myisam/mi_preload.c | 2 +-
storage/myisam/mi_range.c | 2 +-
storage/myisam/mi_rename.c | 2 +-
storage/myisam/mi_rfirst.c | 4 +-
storage/myisam/mi_rkey.c | 2 +-
storage/myisam/mi_rlast.c | 2 +-
storage/myisam/mi_rnext.c | 2 +-
storage/myisam/mi_rnext_same.c | 2 +-
storage/myisam/mi_rprev.c | 2 +-
storage/myisam/mi_rrnd.c | 2 +-
storage/myisam/mi_rsame.c | 2 +-
storage/myisam/mi_rsamepos.c | 2 +-
storage/myisam/mi_scan.c | 2 +-
storage/myisam/mi_search.c | 4 +-
storage/myisam/mi_static.c | 2 +-
storage/myisam/mi_statrec.c | 2 +-
storage/myisam/mi_test1.c | 2 +-
storage/myisam/mi_test2.c | 2 +-
storage/myisam/mi_test3.c | 4 +-
storage/myisam/mi_test_all.sh | 6 +-
storage/myisam/mi_unique.c | 2 +-
storage/myisam/mi_update.c | 2 +-
storage/myisam/mi_write.c | 21 +-
storage/myisam/myisam_ftdump.c | 2 +-
storage/myisam/myisamchk.c | 8 +-
storage/myisam/myisamdef.h | 4 +-
storage/myisam/myisamlog.c | 12 +-
storage/myisam/myisampack.c | 6 +-
storage/myisam/rt_index.c | 2 +-
storage/myisam/rt_index.h | 2 +-
storage/myisam/rt_key.c | 2 +-
storage/myisam/rt_key.h | 2 +-
storage/myisam/rt_mbr.c | 2 +-
storage/myisam/rt_mbr.h | 2 +-
storage/myisam/rt_split.c | 2 +-
storage/myisam/rt_test.c | 2 +-
storage/myisam/sort.c | 4 +-
storage/myisam/sp_defs.h | 2 +-
storage/myisam/sp_key.c | 4 +-
storage/myisam/sp_test.c | 2 +-
storage/myisammrg/CMakeLists.txt | 2 +-
storage/myisammrg/ha_myisammrg.cc | 49 +-
storage/myisammrg/ha_myisammrg.h | 2 +-
storage/myisammrg/myrg_close.c | 2 +-
storage/myisammrg/myrg_create.c | 2 +-
storage/myisammrg/myrg_def.h | 2 +-
storage/myisammrg/myrg_delete.c | 2 +-
storage/myisammrg/myrg_extra.c | 2 +-
storage/myisammrg/myrg_info.c | 2 +-
storage/myisammrg/myrg_locking.c | 2 +-
storage/myisammrg/myrg_open.c | 2 +-
storage/myisammrg/myrg_panic.c | 2 +-
storage/myisammrg/myrg_queue.c | 2 +-
storage/myisammrg/myrg_range.c | 2 +-
storage/myisammrg/myrg_records.c | 2 +-
storage/myisammrg/myrg_rfirst.c | 2 +-
storage/myisammrg/myrg_rkey.c | 2 +-
storage/myisammrg/myrg_rlast.c | 2 +-
storage/myisammrg/myrg_rnext.c | 2 +-
storage/myisammrg/myrg_rnext_same.c | 2 +-
storage/myisammrg/myrg_rprev.c | 2 +-
storage/myisammrg/myrg_rrnd.c | 2 +-
storage/myisammrg/myrg_rsame.c | 2 +-
storage/myisammrg/myrg_static.c | 2 +-
storage/myisammrg/myrg_update.c | 2 +-
storage/myisammrg/myrg_write.c | 2 +-
.../mysql-test/storage_engine/disabled.def | 1 +
.../myisammrg/mysql-test/storage_engine/vcol.rdiff | 16 +-
storage/oqgraph/graphcore-config.h | 2 +-
storage/oqgraph/graphcore-graph.cc | 2 +-
storage/oqgraph/graphcore-graph.h | 2 +-
storage/oqgraph/graphcore-types.h | 2 +-
storage/oqgraph/graphcore.cc | 2 +-
storage/oqgraph/graphcore.h | 2 +-
storage/oqgraph/ha_oqgraph.cc | 2 +-
storage/oqgraph/ha_oqgraph.h | 2 +-
storage/oqgraph/oqgraph_judy.cc | 2 +-
storage/oqgraph/oqgraph_judy.h | 2 +-
storage/oqgraph/oqgraph_probes.d | 2 +-
storage/oqgraph/oqgraph_shim.cc | 2 +-
storage/oqgraph/oqgraph_shim.h | 2 +-
storage/oqgraph/oqgraph_thunk.cc | 2 +-
storage/oqgraph/oqgraph_thunk.h | 2 +-
storage/perfschema/CMakeLists.txt | 17 +-
storage/perfschema/cursor_by_account.cc | 15 +-
storage/perfschema/cursor_by_account.h | 15 +-
storage/perfschema/cursor_by_host.cc | 15 +-
storage/perfschema/cursor_by_host.h | 15 +-
storage/perfschema/cursor_by_thread.cc | 15 +-
storage/perfschema/cursor_by_thread.h | 15 +-
.../perfschema/cursor_by_thread_connect_attr.cc | 15 +-
storage/perfschema/cursor_by_thread_connect_attr.h | 15 +-
storage/perfschema/cursor_by_user.cc | 15 +-
storage/perfschema/cursor_by_user.h | 15 +-
storage/perfschema/gen_pfs_lex_token.cc | 15 +-
storage/perfschema/ha_perfschema.cc | 17 +-
storage/perfschema/ha_perfschema.h | 15 +-
storage/perfschema/pfs.cc | 15 +-
storage/perfschema/pfs.h | 15 +-
storage/perfschema/pfs_account.cc | 15 +-
storage/perfschema/pfs_account.h | 15 +-
storage/perfschema/pfs_atomic.h | 15 +-
storage/perfschema/pfs_autosize.cc | 15 +-
storage/perfschema/pfs_column_types.h | 15 +-
storage/perfschema/pfs_column_values.cc | 15 +-
storage/perfschema/pfs_column_values.h | 15 +-
storage/perfschema/pfs_con_slice.cc | 15 +-
storage/perfschema/pfs_con_slice.h | 15 +-
storage/perfschema/pfs_defaults.cc | 15 +-
storage/perfschema/pfs_defaults.h | 15 +-
storage/perfschema/pfs_digest.cc | 15 +-
storage/perfschema/pfs_digest.h | 15 +-
storage/perfschema/pfs_engine_table.cc | 15 +-
storage/perfschema/pfs_engine_table.h | 15 +-
storage/perfschema/pfs_events.h | 27 +-
storage/perfschema/pfs_events_stages.cc | 15 +-
storage/perfschema/pfs_events_stages.h | 15 +-
storage/perfschema/pfs_events_statements.cc | 15 +-
storage/perfschema/pfs_events_statements.h | 15 +-
storage/perfschema/pfs_events_waits.cc | 15 +-
storage/perfschema/pfs_events_waits.h | 49 +-
storage/perfschema/pfs_global.cc | 15 +-
storage/perfschema/pfs_global.h | 15 +-
storage/perfschema/pfs_host.cc | 15 +-
storage/perfschema/pfs_host.h | 15 +-
storage/perfschema/pfs_instr.cc | 20 +-
storage/perfschema/pfs_instr.h | 15 +-
storage/perfschema/pfs_instr_class.cc | 15 +-
storage/perfschema/pfs_instr_class.h | 15 +-
storage/perfschema/pfs_lock.h | 15 +-
storage/perfschema/pfs_server.cc | 15 +-
storage/perfschema/pfs_server.h | 15 +-
storage/perfschema/pfs_setup_actor.cc | 15 +-
storage/perfschema/pfs_setup_actor.h | 15 +-
storage/perfschema/pfs_setup_object.cc | 15 +-
storage/perfschema/pfs_setup_object.h | 15 +-
storage/perfschema/pfs_stat.h | 15 +-
storage/perfschema/pfs_timer.cc | 38 +-
storage/perfschema/pfs_timer.h | 17 +-
storage/perfschema/pfs_user.cc | 15 +-
storage/perfschema/pfs_user.h | 15 +-
storage/perfschema/pfs_visitor.cc | 15 +-
storage/perfschema/pfs_visitor.h | 15 +-
storage/perfschema/table_accounts.cc | 15 +-
storage/perfschema/table_accounts.h | 15 +-
storage/perfschema/table_all_instr.cc | 15 +-
storage/perfschema/table_all_instr.h | 15 +-
.../table_esgs_by_account_by_event_name.cc | 15 +-
.../table_esgs_by_account_by_event_name.h | 15 +-
.../perfschema/table_esgs_by_host_by_event_name.cc | 15 +-
.../perfschema/table_esgs_by_host_by_event_name.h | 15 +-
.../table_esgs_by_thread_by_event_name.cc | 15 +-
.../table_esgs_by_thread_by_event_name.h | 15 +-
.../perfschema/table_esgs_by_user_by_event_name.cc | 15 +-
.../perfschema/table_esgs_by_user_by_event_name.h | 15 +-
.../perfschema/table_esgs_global_by_event_name.cc | 15 +-
.../perfschema/table_esgs_global_by_event_name.h | 15 +-
.../table_esms_by_account_by_event_name.cc | 15 +-
.../table_esms_by_account_by_event_name.h | 15 +-
storage/perfschema/table_esms_by_digest.cc | 15 +-
storage/perfschema/table_esms_by_digest.h | 15 +-
.../perfschema/table_esms_by_host_by_event_name.cc | 15 +-
.../perfschema/table_esms_by_host_by_event_name.h | 15 +-
.../table_esms_by_thread_by_event_name.cc | 15 +-
.../table_esms_by_thread_by_event_name.h | 15 +-
.../perfschema/table_esms_by_user_by_event_name.cc | 15 +-
.../perfschema/table_esms_by_user_by_event_name.h | 15 +-
.../perfschema/table_esms_global_by_event_name.cc | 15 +-
.../perfschema/table_esms_global_by_event_name.h | 15 +-
storage/perfschema/table_events_stages.cc | 15 +-
storage/perfschema/table_events_stages.h | 15 +-
storage/perfschema/table_events_statements.cc | 15 +-
storage/perfschema/table_events_statements.h | 15 +-
storage/perfschema/table_events_waits.cc | 15 +-
storage/perfschema/table_events_waits.h | 15 +-
storage/perfschema/table_events_waits_summary.cc | 15 +-
storage/perfschema/table_events_waits_summary.h | 15 +-
.../table_ews_by_account_by_event_name.cc | 15 +-
.../table_ews_by_account_by_event_name.h | 15 +-
.../perfschema/table_ews_by_host_by_event_name.cc | 15 +-
.../perfschema/table_ews_by_host_by_event_name.h | 15 +-
.../table_ews_by_thread_by_event_name.cc | 15 +-
.../perfschema/table_ews_by_thread_by_event_name.h | 15 +-
.../perfschema/table_ews_by_user_by_event_name.cc | 15 +-
.../perfschema/table_ews_by_user_by_event_name.h | 15 +-
.../perfschema/table_ews_global_by_event_name.cc | 17 +-
.../perfschema/table_ews_global_by_event_name.h | 17 +-
storage/perfschema/table_file_instances.cc | 15 +-
storage/perfschema/table_file_instances.h | 15 +-
.../perfschema/table_file_summary_by_event_name.cc | 15 +-
.../perfschema/table_file_summary_by_event_name.h | 15 +-
.../perfschema/table_file_summary_by_instance.cc | 15 +-
.../perfschema/table_file_summary_by_instance.h | 15 +-
storage/perfschema/table_helper.cc | 15 +-
storage/perfschema/table_helper.h | 15 +-
storage/perfschema/table_host_cache.cc | 15 +-
storage/perfschema/table_host_cache.h | 15 +-
storage/perfschema/table_hosts.cc | 15 +-
storage/perfschema/table_hosts.h | 15 +-
storage/perfschema/table_os_global_by_type.cc | 15 +-
storage/perfschema/table_os_global_by_type.h | 15 +-
storage/perfschema/table_performance_timers.cc | 25 +-
storage/perfschema/table_performance_timers.h | 15 +-
.../table_session_account_connect_attrs.cc | 15 +-
.../table_session_account_connect_attrs.h | 15 +-
storage/perfschema/table_session_connect.cc | 15 +-
storage/perfschema/table_session_connect.h | 15 +-
storage/perfschema/table_session_connect_attrs.cc | 15 +-
storage/perfschema/table_session_connect_attrs.h | 15 +-
storage/perfschema/table_setup_actors.cc | 15 +-
storage/perfschema/table_setup_actors.h | 15 +-
storage/perfschema/table_setup_consumers.cc | 15 +-
storage/perfschema/table_setup_consumers.h | 15 +-
storage/perfschema/table_setup_instruments.cc | 15 +-
storage/perfschema/table_setup_instruments.h | 15 +-
storage/perfschema/table_setup_objects.cc | 15 +-
storage/perfschema/table_setup_objects.h | 15 +-
storage/perfschema/table_setup_timers.cc | 15 +-
storage/perfschema/table_setup_timers.h | 15 +-
storage/perfschema/table_socket_instances.cc | 15 +-
storage/perfschema/table_socket_instances.h | 15 +-
.../table_socket_summary_by_event_name.cc | 15 +-
.../table_socket_summary_by_event_name.h | 15 +-
.../perfschema/table_socket_summary_by_instance.cc | 15 +-
.../perfschema/table_socket_summary_by_instance.h | 15 +-
storage/perfschema/table_sync_instances.cc | 15 +-
storage/perfschema/table_sync_instances.h | 15 +-
storage/perfschema/table_threads.cc | 15 +-
storage/perfschema/table_threads.h | 15 +-
storage/perfschema/table_tiws_by_index_usage.cc | 15 +-
storage/perfschema/table_tiws_by_index_usage.h | 15 +-
storage/perfschema/table_tiws_by_table.cc | 15 +-
storage/perfschema/table_tiws_by_table.h | 15 +-
storage/perfschema/table_tlws_by_table.cc | 15 +-
storage/perfschema/table_tlws_by_table.h | 15 +-
storage/perfschema/table_users.cc | 15 +-
storage/perfschema/table_users.h | 15 +-
storage/perfschema/unittest/CMakeLists.txt | 19 +-
storage/perfschema/unittest/conf.txt | 15 +-
storage/perfschema/unittest/pfs-t.cc | 20 +-
storage/perfschema/unittest/pfs_account-oom-t.cc | 15 +-
storage/perfschema/unittest/pfs_connect_attr-t.cc | 15 +-
storage/perfschema/unittest/pfs_host-oom-t.cc | 15 +-
storage/perfschema/unittest/pfs_instr-oom-t.cc | 15 +-
storage/perfschema/unittest/pfs_instr-t.cc | 15 +-
.../perfschema/unittest/pfs_instr_class-oom-t.cc | 15 +-
storage/perfschema/unittest/pfs_instr_class-t.cc | 15 +-
storage/perfschema/unittest/pfs_misc-t.cc | 15 +-
storage/perfschema/unittest/pfs_server_stubs.cc | 17 +-
storage/perfschema/unittest/pfs_timer-t.cc | 17 +-
storage/perfschema/unittest/pfs_user-oom-t.cc | 15 +-
storage/perfschema/unittest/stub_pfs_defaults.h | 15 +-
storage/perfschema/unittest/stub_pfs_global.h | 15 +-
storage/perfschema/unittest/stub_print_error.h | 15 +-
storage/rocksdb/.clang-format | 96 +-
storage/rocksdb/CMakeLists.txt | 60 +-
storage/rocksdb/build_rocksdb.cmake | 271 +-
storage/rocksdb/event_listener.cc | 21 +-
storage/rocksdb/event_listener.h | 11 +-
storage/rocksdb/ha_rocksdb.cc | 6598 ++--
storage/rocksdb/ha_rocksdb.h | 729 +-
storage/rocksdb/ha_rocksdb_proto.h | 13 +-
storage/rocksdb/logger.h | 8 +-
storage/rocksdb/myrocks_hotbackup | 686 -
storage/rocksdb/myrocks_hotbackup.py | 698 +
storage/rocksdb/mysql-test/rocksdb/combinations | 5 +
.../rocksdb/include/autoinc_crash_safe.inc | 150 +
.../mysql-test/rocksdb/include/bulk_load.inc | 165 +
.../rocksdb/include/bulk_load_unsorted.inc | 143 +
.../rocksdb/include/bypass_create_table.inc | 298 +
.../mysql-test/rocksdb/include/group_min_max.inc | 1438 +
.../mysql-test/rocksdb/include/have_direct_io.inc | 23 +
.../rocksdb/include/have_write_committed.inc | 3 +
.../rocksdb/include/have_write_prepared.inc | 3 +
.../mysql-test/rocksdb/include/index_merge1.inc | 60 +
.../mysql-test/rocksdb/include/index_merge2.inc | 28 +
.../mysql-test/rocksdb/include/index_merge_ror.inc | 36 +
.../rocksdb/include/index_merge_ror_cpk.inc | 8 +
.../rocksdb/include/locking_issues_case3.inc | 5 +-
.../rocksdb/include/locking_issues_case4.inc | 5 +-
.../rocksdb/include/locking_issues_case5.inc | 5 +-
.../rocksdb/include/locking_issues_case6.inc | 5 +-
.../include/restart_mysqld_with_invalid_option.inc | 8 +
.../rocksdb/include/rocksdb_concurrent_delete.inc | 53 -
.../rocksdb/include/start_mysqld_with_option.inc | 14 +
.../rocksdb/include/use_direct_io_option.inc | 23 +
storage/rocksdb/mysql-test/rocksdb/my.cnf | 1 -
.../mysql-test/rocksdb/r/2pc_group_commit.result | 42 +-
.../mysql-test/rocksdb/r/add_index_inplace.result | 24 +
.../r/add_index_inplace_sstfilewriter.result | 7 +
.../rocksdb/r/allow_no_primary_key.result | 31 +
.../rocksdb/r/allow_no_primary_key_with_sk.result | 17 +
.../r/allow_to_start_after_corruption.result | 38 +
.../mysql-test/rocksdb/r/analyze_table.result | 26 +
.../mysql-test/rocksdb/r/autoinc_crash_safe.result | 132 +
.../rocksdb/r/autoinc_crash_safe_partition.result | 132 +
.../mysql-test/rocksdb/r/autoinc_debug.result | 99 +
.../mysql-test/rocksdb/r/autoinc_vars.result | 136 +
.../rocksdb/r/autoinc_vars_thread.result | 5 +-
.../mysql-test/rocksdb/r/autoincrement.result | 1 -
.../mysql-test/rocksdb/r/blind_delete_rc.result | 87 +
.../mysql-test/rocksdb/r/blind_delete_rr.result | 87 +
.../rocksdb/r/blind_delete_without_tx_api.result | 85 -
.../mysql-test/rocksdb/r/bloomfilter.result | 5 +
.../mysql-test/rocksdb/r/bloomfilter3.result | 18 +
.../mysql-test/rocksdb/r/bloomfilter5.result | 85 +
.../rocksdb/r/bloomfilter_bulk_load.result | 15 +
.../mysql-test/rocksdb/r/bloomfilter_skip.result | 5 +
.../rocksdb/mysql-test/rocksdb/r/bulk_load.result | 72 +-
.../rocksdb/r/bulk_load_drop_table.result | 11 +
.../mysql-test/rocksdb/r/bulk_load_errors.result | 64 +-
.../mysql-test/rocksdb/r/bulk_load_rev_cf.result | 72 +-
.../rocksdb/r/bulk_load_rev_cf_and_data.result | 72 +-
.../mysql-test/rocksdb/r/bulk_load_rev_data.result | 72 +-
.../mysql-test/rocksdb/r/bulk_load_sk.result | 229 +
.../mysql-test/rocksdb/r/bulk_load_unsorted.result | 107 +-
.../rocksdb/r/bulk_load_unsorted_rev.result | 108 +
.../rocksdb/r/bypass_select_basic.result | 693 +
.../rocksdb/r/bypass_select_basic_bloom.result | 693 +
.../mysql-test/rocksdb/r/cardinality.result | 52 +-
.../mysql-test/rocksdb/r/check_flags.result | 66 +
.../rocksdb/r/check_ignore_unknown_options.result | 7 +
.../mysql-test/rocksdb/r/col_opt_not_null.result | 4 +-
.../mysql-test/rocksdb/r/col_opt_null.result | 4 +-
.../rocksdb/mysql-test/rocksdb/r/collation.result | 20 +-
.../rocksdb/mysql-test/rocksdb/r/com_rpc_tx.result | 21 +
.../mysql-test/rocksdb/r/concurrent_alter.result | 2 +-
.../rocksdb/r/create_no_primary_key_table.result | 52 +
.../mysql-test/rocksdb/r/ddl_high_priority.result | 219 +-
.../mysql-test/rocksdb/r/deadlock_tracking.result | 114 +-
.../mysql-test/rocksdb/r/delete_before_lock.result | 22 -
.../rocksdb/mysql-test/rocksdb/r/drop_table.result | 19 +
.../mysql-test/rocksdb/r/explicit_snapshot.result | 265 +
.../mysql-test/rocksdb/r/force_shutdown.result | 38 +
.../mysql-test/rocksdb/r/group_min_max.result | 3504 ++
.../mysql-test/rocksdb/r/ha_extra_keyread.result | 10 +
.../rocksdb/mysql-test/rocksdb/r/i_s_ddl.result | 19 +-
.../mysql-test/rocksdb/r/i_s_deadlock.result | 216 +
.../mysql-test/rocksdb/r/index_file_map.result | 3 +
.../rocksdb/r/index_merge_rocksdb.result | 2 +-
.../rocksdb/r/index_merge_rocksdb2.result | 76 +-
.../mysql-test/rocksdb/r/information_schema.result | 8 +-
.../rocksdb/r/innodb_i_s_tables_disabled.result | 6 +-
.../mysql-test/rocksdb/r/insert_with_keys.result | 203 +-
.../rocksdb/mysql-test/rocksdb/r/issue255.result | 53 +-
.../rocksdb/mysql-test/rocksdb/r/issue884.result | 79 +
.../rocksdb/mysql-test/rocksdb/r/issue896.result | 17 +
.../rocksdb/mysql-test/rocksdb/r/issue900.result | 11 +
.../mysql-test/rocksdb/r/iterator_bounds.result | 15 +
storage/rocksdb/mysql-test/rocksdb/r/kill.result | 6 +
storage/rocksdb/mysql-test/rocksdb/r/lock.result | 15 +
.../rocksdb/r/lock_wait_timeout_stats.result | 8 +
.../mysql-test/rocksdb/r/locking_issues.result | 675 +-
.../rocksdb/r/locking_issues_case1_1_rc.result | 30 +
.../rocksdb/r/locking_issues_case1_1_rr.result | 30 +
.../rocksdb/r/locking_issues_case1_2_rc.result | 30 +
.../rocksdb/r/locking_issues_case1_2_rr.result | 30 +
.../rocksdb/r/locking_issues_case2_rc.result | 50 +
.../rocksdb/r/locking_issues_case2_rc_lsr.result | 37 +
.../rocksdb/r/locking_issues_case2_rr.result | 50 +
.../rocksdb/r/locking_issues_case2_rr_lsr.result | 37 +
.../rocksdb/r/locking_issues_case3_rc.result | 25 +
.../rocksdb/r/locking_issues_case3_rr.result | 23 +
.../rocksdb/r/locking_issues_case4_rc.result | 23 +
.../rocksdb/r/locking_issues_case4_rr.result | 23 +
.../rocksdb/r/locking_issues_case5_rc.result | 29 +
.../rocksdb/r/locking_issues_case5_rr.result | 28 +
.../rocksdb/r/locking_issues_case6_rc.result | 29 +
.../rocksdb/r/locking_issues_case6_rr.result | 28 +
.../rocksdb/r/locking_issues_case7_rc.result | 41 +
.../rocksdb/r/locking_issues_case7_rc_lsr.result | 45 +
.../rocksdb/r/locking_issues_case7_rr.result | 41 +
.../rocksdb/r/locking_issues_case7_rr_lsr.result | 45 +
.../rocksdb/r/mariadb_misc_binlog.result | 11 +-
.../mysql-test/rocksdb/r/mariadb_plugin.result | 12 +-
.../mysql-test/rocksdb/r/mariadb_port_fixes.result | 53 +-
.../mysql-test/rocksdb/r/max_open_files.result | 21 +
.../rocksdb/r/mysqlbinlog_blind_replace.result | 128 +
.../rocksdb/mysql-test/rocksdb/r/mysqldump.result | 87 +-
.../r/optimize_myrocks_replace_into_base.result | 98 +
.../r/optimize_myrocks_replace_into_lock.result | 46 +
.../rocksdb/r/optimizer_loose_index_scans.result | 42 +-
.../r/percona_nonflushing_analyze_debug.result | 19 +
.../mysql-test/rocksdb/r/perf_context.result | 32 +-
.../rocksdb/r/prefix_extractor_override.result | 14 +-
.../rocksdb/mysql-test/rocksdb/r/rocksdb.result | 144 +-
.../rocksdb/r/rocksdb_cf_per_partition.result | 2 +-
.../mysql-test/rocksdb/r/rocksdb_checksums.result | 29 +-
.../rocksdb/r/rocksdb_concurrent_delete.result | 603 +-
.../rocksdb/r/rocksdb_deadlock_detect_rc.result | 23 +-
.../rocksdb/r/rocksdb_deadlock_detect_rr.result | 23 +-
.../mysql-test/rocksdb/r/rocksdb_debug.result | 11 +
.../mysql-test/rocksdb/r/rocksdb_qcache.result | 6 +
.../mysql-test/rocksdb/r/rocksdb_range2.result | 19 +-
.../rocksdb/r/rocksdb_read_free_rpl.result | 335 +
.../rocksdb/r/rocksdb_read_free_rpl_stress.result | 35 +
.../rocksdb/r/rocksdb_timeout_rollback.result | 84 +
.../mysql-test/rocksdb/r/rpl_read_free.result | 321 -
.../rocksdb/r/rpl_row_not_found_rc.result | 56 +
.../mysql-test/rocksdb/r/rpl_statement.result | 4 +-
.../rocksdb/r/secondary_key_update_lock.result | 18 +
storage/rocksdb/mysql-test/rocksdb/r/select.result | 3 +-
.../mysql-test/rocksdb/r/show_engine.result | 105 +-
.../mysql-test/rocksdb/r/show_table_status.result | 6 +-
.../rocksdb/r/skip_core_dump_on_error.result | 31 +
.../rocksdb/r/skip_validate_tmp_table.result | 18 +-
.../rocksdb/mysql-test/rocksdb/r/statistics.result | 18 +-
.../rocksdb/r/tbl_opt_data_index_dir.result | 24 +-
.../mysql-test/rocksdb/r/transaction.result | 17 +
.../mysql-test/rocksdb/r/truncate_partition.result | 620 +
.../mysql-test/rocksdb/r/trx_info_rpl.result | 2 +-
.../rocksdb/r/ttl_primary_read_filtering.result | 29 +
.../mysql-test/rocksdb/r/ttl_rows_examined.result | 45 +
.../rocksdb/r/ttl_secondary_read_filtering.result | 1 +
.../rocksdb/mysql-test/rocksdb/r/type_bool.result | 4 +-
.../mysql-test/rocksdb/r/type_decimal.result | 6 +-
.../mysql-test/rocksdb/r/type_varchar.result | 14 +-
.../mysql-test/rocksdb/r/unique_check.result | 10 +-
storage/rocksdb/mysql-test/rocksdb/r/update.result | 8 +
.../use_direct_io_for_flush_and_compaction.result | 18 +
.../mysql-test/rocksdb/r/use_direct_reads.result | 18 +
.../rocksdb/r/use_direct_reads_writes.result | 32 +-
.../mysql-test/rocksdb/r/validate_datadic.result | 5 +-
.../rocksdb/mysql-test/rocksdb/r/write_sync.result | 5 +-
storage/rocksdb/mysql-test/rocksdb/r/xa.result | 32 +
.../rocksdb/mysql-test/rocksdb/slow_query_log.awk | 2 -
storage/rocksdb/mysql-test/rocksdb/suite.pm | 6 +-
.../mysql-test/rocksdb/t/2pc_group_commit.test | 53 +-
.../mysql-test/rocksdb/t/add_index_inplace.test | 18 +
.../rocksdb/t/add_index_inplace_crash.test | 1 +
.../rocksdb/t/add_index_inplace_sstfilewriter.test | 8 +
.../mysql-test/rocksdb/t/allow_no_primary_key.test | 28 +
.../rocksdb/t/allow_no_primary_key_with_sk.test | 12 +
.../t/allow_to_start_after_corruption-master.opt | 1 +
.../rocksdb/t/allow_to_start_after_corruption.test | 75 +
.../mysql-test/rocksdb/t/analyze_table.test | 26 +
.../mysql-test/rocksdb/t/autoinc_crash_safe.cnf | 8 +
.../mysql-test/rocksdb/t/autoinc_crash_safe.test | 9 +
.../rocksdb/t/autoinc_crash_safe_partition.cnf | 8 +
.../rocksdb/t/autoinc_crash_safe_partition.test | 10 +
.../mysql-test/rocksdb/t/autoinc_debug-master.opt | 1 +
.../mysql-test/rocksdb/t/autoinc_debug.test | 119 +
.../rocksdb/mysql-test/rocksdb/t/autoinc_vars.test | 104 +
.../mysql-test/rocksdb/t/autoinc_vars_thread.test | 10 +-
.../mysql-test/rocksdb/t/autoincrement.test | 3 -
.../mysql-test/rocksdb/t/blind_delete_rc.cnf | 11 +
.../mysql-test/rocksdb/t/blind_delete_rc.test | 3 +
.../mysql-test/rocksdb/t/blind_delete_rr.cnf | 11 +
.../mysql-test/rocksdb/t/blind_delete_rr.test | 3 +
.../rocksdb/t/blind_delete_without_tx_api.cnf | 11 -
.../rocksdb/t/blind_delete_without_tx_api.inc | 132 +
.../rocksdb/t/blind_delete_without_tx_api.test | 130 -
.../mysql-test/rocksdb/t/bloomfilter3-master.opt | 1 +
.../rocksdb/mysql-test/rocksdb/t/bloomfilter3.test | 18 +
.../mysql-test/rocksdb/t/bloomfilter5-master.opt | 3 +
.../rocksdb/mysql-test/rocksdb/t/bloomfilter5.test | 86 +
.../rocksdb/t/bloomfilter_bulk_load-master.opt | 2 +
.../rocksdb/t/bloomfilter_bulk_load.test | 35 +
.../rocksdb/t/bloomfilter_load_select.inc | 1 +
storage/rocksdb/mysql-test/rocksdb/t/bulk_load.inc | 156 -
.../rocksdb/mysql-test/rocksdb/t/bulk_load.test | 3 +-
.../mysql-test/rocksdb/t/bulk_load_drop_table.test | 19 +
.../mysql-test/rocksdb/t/bulk_load_errors.test | 124 +-
.../mysql-test/rocksdb/t/bulk_load_rev_cf.test | 3 +-
.../rocksdb/t/bulk_load_rev_cf_and_data.test | 3 +-
.../mysql-test/rocksdb/t/bulk_load_rev_data.test | 3 +-
.../rocksdb/mysql-test/rocksdb/t/bulk_load_sk.test | 119 +
.../mysql-test/rocksdb/t/bulk_load_unsorted.test | 134 +-
.../rocksdb/t/bulk_load_unsorted_rev.test | 5 +
.../mysql-test/rocksdb/t/bypass_select_basic.inc | 213 +
.../mysql-test/rocksdb/t/bypass_select_basic.test | 3 +
.../rocksdb/t/bypass_select_basic_bloom-master.opt | 3 +
.../rocksdb/t/bypass_select_basic_bloom.test | 3 +
.../rocksdb/mysql-test/rocksdb/t/cardinality.test | 63 +-
.../rocksdb/mysql-test/rocksdb/t/check_flags.test | 117 +
.../rocksdb/t/check_ignore_unknown_options.test | 56 +
.../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 | 90 +
.../mysql-test/rocksdb/t/concurrent_alter.test | 2 +
.../rocksdb/t/cons_snapshot_read_committed.opt | 1 +
.../rocksdb/t/cons_snapshot_repeatable_read.opt | 1 +
.../rocksdb/t/cons_snapshot_serializable.opt | 1 +
.../t/create_no_primary_key_table-master.opt | 1 +
.../rocksdb/t/create_no_primary_key_table.test | 63 +
storage/rocksdb/mysql-test/rocksdb/t/deadlock.test | 1 +
.../mysql-test/rocksdb/t/deadlock_tracking.test | 78 +-
.../mysql-test/rocksdb/t/delete_before_lock.test | 36 -
storage/rocksdb/mysql-test/rocksdb/t/disabled.def | 25 +-
.../rocksdb/mysql-test/rocksdb/t/drop_table.test | 27 +
.../rocksdb/t/explicit_snapshot-master.opt | 1 +
.../mysql-test/rocksdb/t/explicit_snapshot.test | 263 +
.../mysql-test/rocksdb/t/force_shutdown.test | 97 +
.../mysql-test/rocksdb/t/group_min_max-master.opt | 1 +
.../mysql-test/rocksdb/t/group_min_max.test | 9 +
.../mysql-test/rocksdb/t/ha_extra_keyread.test | 15 +
storage/rocksdb/mysql-test/rocksdb/t/i_s_ddl.test | 7 +-
.../rocksdb/mysql-test/rocksdb/t/i_s_deadlock.test | 158 +
.../mysql-test/rocksdb/t/index_file_map.test | 3 +
.../mysql-test/rocksdb/t/index_merge_rocksdb.test | 7 +-
.../rocksdb/t/index_merge_rocksdb2-master.opt | 2 +-
.../mysql-test/rocksdb/t/index_merge_rocksdb2.test | 4 +-
.../mysql-test/rocksdb/t/information_schema.test | 5 +-
.../rocksdb/t/insert_optimized_config-master.opt | 7 -
.../rocksdb/t/insert_optimized_config.test | 10 +
.../mysql-test/rocksdb/t/insert_with_keys.test | 104 +-
storage/rocksdb/mysql-test/rocksdb/t/issue255.test | 38 +-
storage/rocksdb/mysql-test/rocksdb/t/issue884.test | 43 +
storage/rocksdb/mysql-test/rocksdb/t/issue896.test | 17 +
storage/rocksdb/mysql-test/rocksdb/t/issue900.test | 13 +
.../rocksdb/t/iterator_bounds-master.opt | 2 +
.../mysql-test/rocksdb/t/iterator_bounds.test | 29 +
storage/rocksdb/mysql-test/rocksdb/t/kill.test | 9 +
.../rocksdb/t/level_read_uncommitted.opt | 1 +
storage/rocksdb/mysql-test/rocksdb/t/lock.test | 22 +
.../rocksdb/t/lock_wait_timeout_stats.test | 4 +
.../mysql-test/rocksdb/t/locking_issues.test | 66 +-
.../rocksdb/t/locking_issues_case1_1_rc.test | 4 +
.../rocksdb/t/locking_issues_case1_1_rr.test | 4 +
.../rocksdb/t/locking_issues_case1_2_rc.test | 4 +
.../rocksdb/t/locking_issues_case1_2_rr.test | 4 +
.../rocksdb/t/locking_issues_case2_rc.test | 5 +
.../rocksdb/t/locking_issues_case2_rc_lsr.test | 5 +
.../rocksdb/t/locking_issues_case2_rr.test | 5 +
.../rocksdb/t/locking_issues_case2_rr_lsr.test | 5 +
.../rocksdb/t/locking_issues_case3_rc.test | 4 +
.../rocksdb/t/locking_issues_case3_rr.test | 4 +
.../rocksdb/t/locking_issues_case4_rc.test | 4 +
.../rocksdb/t/locking_issues_case4_rr.test | 4 +
.../rocksdb/t/locking_issues_case5_rc.test | 4 +
.../rocksdb/t/locking_issues_case5_rr.test | 4 +
.../rocksdb/t/locking_issues_case6_rc.test | 4 +
.../rocksdb/t/locking_issues_case6_rr.test | 4 +
.../rocksdb/t/locking_issues_case7_rc.test | 5 +
.../rocksdb/t/locking_issues_case7_rc_lsr.test | 5 +
.../rocksdb/t/locking_issues_case7_rr.test | 5 +
.../rocksdb/t/locking_issues_case7_rr_lsr.test | 5 +
.../mysql-test/rocksdb/t/mariadb_misc_binlog.test | 12 +-
.../mysql-test/rocksdb/t/mariadb_plugin.test | 16 +-
.../mysql-test/rocksdb/t/mariadb_port_fixes.test | 29 +
.../mysql-test/rocksdb/t/max_open_files.test | 53 +
.../rocksdb/t/mysqlbinlog_blind_replace.test | 62 +
.../rocksdb/mysql-test/rocksdb/t/mysqldump.test | 16 +-
.../rocksdb/mysql-test/rocksdb/t/mysqldump2.test | 2 +-
.../t/optimize_myrocks_replace_into_base.test | 96 +
.../t/optimize_myrocks_replace_into_lock.test | 88 +
.../t/percona_nonflushing_analyze_debug.test | 11 +
.../rocksdb/t/prefix_extractor_override.test | 18 +-
.../mysql-test/rocksdb/t/records_in_range.test | 2 +-
storage/rocksdb/mysql-test/rocksdb/t/rocksdb.test | 17 +-
.../rocksdb/t/rocksdb_cf_per_partition.test | 1 +
.../rocksdb/t/rocksdb_checksums-master.opt | 1 +
.../mysql-test/rocksdb/t/rocksdb_checksums.test | 23 +-
.../rocksdb/t/rocksdb_concurrent_delete.inc | 109 +
.../rocksdb/t/rocksdb_concurrent_delete.test | 52 +-
.../rocksdb/t/rocksdb_concurrent_delete_main.inc | 30 +
.../rocksdb/t/rocksdb_concurrent_delete_range.inc | 85 +
.../rocksdb/t/rocksdb_concurrent_delete_sk.inc | 82 +
.../rocksdb/t/rocksdb_deadlock_detect.inc | 35 +-
.../mysql-test/rocksdb/t/rocksdb_debug.test | 14 +
.../mysql-test/rocksdb/t/rocksdb_locks.test | 5 +-
.../mysql-test/rocksdb/t/rocksdb_qcache.test | 13 +-
.../mysql-test/rocksdb/t/rocksdb_range2.test | 13 +
.../mysql-test/rocksdb/t/rocksdb_read_free_rpl.cnf | 16 +
.../rocksdb/t/rocksdb_read_free_rpl.test | 414 +
.../rocksdb/t/rocksdb_read_free_rpl_stress.cnf | 17 +
.../rocksdb/t/rocksdb_read_free_rpl_stress.inc | 69 +
.../rocksdb/t/rocksdb_read_free_rpl_stress.test | 22 +
.../rocksdb/t/rocksdb_timeout_rollback-master.opt | 1 +
.../rocksdb/t/rocksdb_timeout_rollback.test | 78 +
.../rocksdb/mysql-test/rocksdb/t/rpl_read_free.cnf | 14 -
.../mysql-test/rocksdb/t/rpl_read_free.test | 302 -
.../mysql-test/rocksdb/t/rpl_row_not_found_rc.cnf | 11 +
.../mysql-test/rocksdb/t/rpl_row_not_found_rc.test | 4 +
.../mysql-test/rocksdb/t/rpl_row_triggers.cnf | 4 +-
.../mysql-test/rocksdb/t/rpl_statement.test | 4 +-
.../rocksdb/mysql-test/rocksdb/t/rqg_examples.test | 4 +
.../rocksdb/mysql-test/rocksdb/t/rqg_runtime.test | 4 +
.../mysql-test/rocksdb/t/rqg_transactions.test | 4 +
.../rocksdb/t/secondary_key_update_lock.test | 26 +
storage/rocksdb/mysql-test/rocksdb/t/select.test | 4 +-
.../mysql-test/rocksdb/t/set_checkpoint.inc | 2 +-
.../rocksdb/mysql-test/rocksdb/t/show_engine.test | 13 +
.../rocksdb/t/skip_core_dump_on_error-master.opt | 1 +
.../rocksdb/t/skip_core_dump_on_error.test | 53 +
.../rocksdb/t/skip_validate_tmp_table.test | 38 +-
.../rocksdb/t/tbl_opt_data_index_dir.test | 14 +
.../rocksdb/mysql-test/rocksdb/t/transaction.test | 23 +
.../mysql-test/rocksdb/t/truncate_partition.inc | 102 +
.../mysql-test/rocksdb/t/truncate_partition.test | 83 +
.../rocksdb/mysql-test/rocksdb/t/trx_info_rpl.test | 4 +-
.../rocksdb/t/ttl_primary_read_filtering.test | 21 +-
.../mysql-test/rocksdb/t/ttl_rows_examined.test | 57 +
.../rocksdb/t/ttl_secondary_read_filtering.test | 3 +
.../rocksdb/mysql-test/rocksdb/t/type_varchar.test | 15 +-
.../rocksdb/mysql-test/rocksdb/t/unique_check.test | 14 +-
storage/rocksdb/mysql-test/rocksdb/t/update.test | 10 +
.../t/use_direct_io_for_flush_and_compaction.test | 5 +
.../mysql-test/rocksdb/t/use_direct_reads.test | 5 +
.../rocksdb/t/use_direct_reads_writes.test | 65 +-
.../mysql-test/rocksdb/t/validate_datadic.test | 25 +-
.../rocksdb/mysql-test/rocksdb/t/write_sync.test | 10 +-
storage/rocksdb/mysql-test/rocksdb/t/xa-master.opt | 1 +
storage/rocksdb/mysql-test/rocksdb/t/xa.test | 38 +
.../rocksdb_hotbackup/include/clean_tmpfiles.sh | 8 +
.../include/create_slocket_socket.sh | 2 +
.../rocksdb_hotbackup/include/create_table.sh | 2 +
.../rocksdb_hotbackup/include/load_data.sh | 2 +
.../rocksdb_hotbackup/include/load_data_and_run.sh | 2 +
.../rocksdb_hotbackup/include/load_data_slocket.sh | 2 +
.../include/remove_slocket_socket.sh | 2 +
.../include/setup_replication_gtid.sh | 2 +
.../rocksdb_hotbackup/include/stream_run.sh | 30 +-
.../rocksdb_hotbackup/r/xbstream_direct.result | 21 +
.../mysql-test/rocksdb_hotbackup/t/xbstream.inc | 25 +
.../mysql-test/rocksdb_hotbackup/t/xbstream.test | 30 +-
.../rocksdb_hotbackup/t/xbstream_direct-master.opt | 1 +
.../rocksdb_hotbackup/t/xbstream_direct.test | 7 +
.../rocksdb/mysql-test/rocksdb_rpl/combinations | 7 +-
.../rocksdb_rpl/include/rpl_gtid_crash_safe.inc | 37 +
.../include/rpl_no_unique_check_on_lag.inc | 1 +
storage/rocksdb/mysql-test/rocksdb_rpl/my.cnf | 1 -
.../r/optimize_myrocks_replace_into.result | 282 +
...sdb_slave_check_before_image_consistency.result | 165 +
.../r/rpl_gtid_crash_safe_optimized.result | 361 +
.../r/rpl_missing_columns_sk_update.result | 62 +
.../rpl_mts_dependency_unique_key_conflicts.result | 44 +
.../r/rpl_rocksdb_slave_gtid_info_optimized.result | 43 +
.../rocksdb_rpl/r/rpl_rocksdb_snapshot.result | 4 +-
.../r/singledelete_idempotent_recovery.result | 1 +
storage/rocksdb/mysql-test/rocksdb_rpl/suite.pm | 2 +-
.../rocksdb/mysql-test/rocksdb_rpl/t/combinations | 2 -
.../rocksdb/mysql-test/rocksdb_rpl/t/disabled.def | 7 +-
.../mysql-test/rocksdb_rpl/t/multiclient_2pc.test | 1 +
.../t/optimize_myrocks_replace_into.test | 149 +
..._slave_check_before_image_consistency-slave.opt | 1 +
...cksdb_slave_check_before_image_consistency.test | 22 +
.../rocksdb_rpl/t/rpl_gtid_crash_safe.test | 39 +-
.../t/rpl_gtid_crash_safe_optimized-master.opt | 1 +
.../t/rpl_gtid_crash_safe_optimized-slave.opt | 2 +
.../t/rpl_gtid_crash_safe_optimized.test | 11 +
.../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 +
...pl_rocksdb_slave_gtid_info_optimized-master.opt | 1 +
...rpl_rocksdb_slave_gtid_info_optimized-slave.opt | 1 +
.../t/rpl_rocksdb_slave_gtid_info_optimized.test | 51 +
.../t/singledelete_idempotent_recovery.test | 6 +
.../rocksdb/mysql-test/rocksdb_stress/combinations | 5 +
.../rocksdb_stress/include/have_rocksdb.inc | 10 +
.../rocksdb_stress/include/have_rocksdb.opt | 12 +
.../rocksdb_stress/include/rocksdb_stress.inc | 11 +-
storage/rocksdb/mysql-test/rocksdb_stress/my.cnf | 3 +-
.../rocksdb_stress/r/rocksdb_stress.result | 2 +
.../rocksdb_stress/r/rocksdb_stress_crash.result | 2 +
.../rocksdb/mysql-test/rocksdb_stress/suite.opt | 2 +
storage/rocksdb/mysql-test/rocksdb_stress/suite.pm | 28 +
.../mysql-test/rocksdb_stress/t/disabled.def | 2 +
.../mysql-test/rocksdb_stress/t/load_generator.py | 13 +
.../rocksdb_stress/t/rocksdb_stress.test | 4 +-
.../rocksdb_stress/t/rocksdb_stress_crash.test | 4 +-
storage/rocksdb/mysql-test/rocksdb_sys_vars/my.cnf | 1 -
...db_allow_to_start_after_corruption_basic.result | 7 +
.../r/rocksdb_block_cache_size_basic.result | 84 +-
.../r/rocksdb_bulk_load_allow_sk_basic.result | 100 +
.../r/rocksdb_bytes_per_sync_basic.result | 84 +-
.../r/rocksdb_cache_dump_basic.result | 19 +
.../rocksdb_cache_high_pri_pool_ratio_basic.result | 22 +
...ndex_and_filter_with_high_priority_basic.result | 19 +
...sdb_commit_time_batch_for_recovery_basic.result | 121 +
.../r/rocksdb_concurrent_prepare_basic.result | 14 -
.../r/rocksdb_create_checkpoint_basic.result | 2 +-
...ksdb_debug_manual_compaction_delay_basic.result | 46 +
.../r/rocksdb_delete_cf_basic.result | 6 +
..._enable_insert_with_update_caching_basic.result | 75 +
...ksdb_error_on_suboptimal_collation_basic.result | 7 +
.../rocksdb_flush_memtable_on_analyze_basic.result | 58 -
.../r/rocksdb_ignore_unknown_options_basic.result | 14 +
.../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_open_files_basic.result | 10 +-
.../r/rocksdb_max_row_locks_basic.result | 39 +-
.../r/rocksdb_read_free_rpl_basic.result | 58 +
.../r/rocksdb_read_free_rpl_tables_basic.result | 50 +-
...ksdb_remove_mariabackup_checkpoint_basic.result | 4 +
.../r/rocksdb_rollback_on_timeout_basic.result | 97 +
.../rocksdb_skip_unique_check_tables_basic.result | 2 +
.../r/rocksdb_stats_level_basic.result | 85 +
.../r/rocksdb_stats_recalc_rate_basic.result | 53 +
.../r/rocksdb_two_write_queues_basic.result | 14 +
.../r/rocksdb_update_cf_options.result | 38 +
.../r/rocksdb_update_cf_options_basic.result | 22 +-
.../r/rocksdb_wal_bytes_per_sync_basic.result | 84 +-
.../r/rocksdb_write_batch_max_bytes_basic.result | 4 +-
.../r/rocksdb_write_policy_basic.result | 15 +
.../rocksdb/mysql-test/rocksdb_sys_vars/suite.pm | 2 +-
.../mysql-test/rocksdb_sys_vars/t/disabled.def | 5 +
...ksdb_allow_to_start_after_corruption_basic.test | 6 +
.../t/rocksdb_block_cache_size_basic.test | 16 +-
.../t/rocksdb_bulk_load_allow_sk_basic.test | 18 +
.../t/rocksdb_bytes_per_sync_basic.test | 17 +-
.../t/rocksdb_cache_dump_basic.test | 21 +
.../t/rocksdb_cache_high_pri_pool_ratio_basic.test | 24 +
..._index_and_filter_with_high_priority_basic.test | 21 +
...cksdb_commit_time_batch_for_recovery_basic.test | 20 +
.../t/rocksdb_concurrent_prepare_basic.test | 16 -
.../t/rocksdb_create_checkpoint_basic.test | 2 +-
...ocksdb_debug_manual_compaction_delay_basic.test | 16 +
.../t/rocksdb_delete_cf_basic-master.opt | 1 +
.../t/rocksdb_delete_cf_basic.test | 75 +
...db_enable_insert_with_update_caching_basic.test | 21 +
...ocksdb_error_on_suboptimal_collation_basic.test | 6 +
.../t/rocksdb_flush_memtable_on_analyze_basic.test | 46 -
.../t/rocksdb_ignore_unknown_options_basic.test | 16 +
.../t/rocksdb_manual_compaction_threads_basic.test | 17 +
.../t/rocksdb_max_manual_compactions_basic.test | 17 +
.../t/rocksdb_max_open_files_basic.test | 10 +-
.../t/rocksdb_max_row_locks_basic.test | 1 +
.../t/rocksdb_read_free_rpl_basic.test | 19 +
.../t/rocksdb_read_free_rpl_tables_basic.test | 7 +-
...ocksdb_remove_mariabackup_checkpoint_basic.test | 5 +
.../t/rocksdb_rollback_on_timeout_basic.test | 21 +
.../t/rocksdb_skip_unique_check_tables_basic.test | 3 +
.../t/rocksdb_stats_level_basic.test | 21 +
.../t/rocksdb_stats_recalc_rate_basic.test | 17 +
.../t/rocksdb_two_write_queues_basic.test | 16 +
.../t/rocksdb_update_cf_options.test | 22 +
.../t/rocksdb_update_cf_options_basic.test | 28 +-
.../t/rocksdb_wal_bytes_per_sync_basic.test | 18 +-
.../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/nosql_access.cc | 52 +
storage/rocksdb/nosql_access.h | 36 +
storage/rocksdb/patch/port/win/io_win.h | 446 -
storage/rocksdb/properties_collector.cc | 286 +-
storage/rocksdb/properties_collector.h | 95 +-
storage/rocksdb/rdb_buff.h | 140 +-
storage/rocksdb/rdb_cf_manager.cc | 114 +-
storage/rocksdb/rdb_cf_manager.h | 14 +-
storage/rocksdb/rdb_cf_options.cc | 78 +-
storage/rocksdb/rdb_cf_options.h | 19 +-
storage/rocksdb/rdb_compact_filter.h | 36 +-
storage/rocksdb/rdb_comparator.h | 54 +-
storage/rocksdb/rdb_converter.cc | 838 +
storage/rocksdb/rdb_converter.h | 247 +
storage/rocksdb/rdb_datadic.cc | 1999 +-
storage/rocksdb/rdb_datadic.h | 660 +-
storage/rocksdb/rdb_global.h | 392 +
storage/rocksdb/rdb_i_s.cc | 429 +-
storage/rocksdb/rdb_i_s.h | 6 +-
storage/rocksdb/rdb_index_merge.cc | 27 +-
storage/rocksdb/rdb_index_merge.h | 17 +-
storage/rocksdb/rdb_io_watchdog.cc | 15 +-
storage/rocksdb/rdb_io_watchdog.h | 16 +-
storage/rocksdb/rdb_mariadb_server_port.cc | 4 +-
storage/rocksdb/rdb_mutex_wrapper.cc | 21 +-
storage/rocksdb/rdb_mutex_wrapper.h | 42 +-
storage/rocksdb/rdb_perf_context.cc | 59 +-
storage/rocksdb/rdb_perf_context.h | 29 +-
storage/rocksdb/rdb_psi.cc | 34 +-
storage/rocksdb/rdb_psi.h | 12 +-
storage/rocksdb/rdb_sst_info.cc | 259 +-
storage/rocksdb/rdb_sst_info.h | 121 +-
storage/rocksdb/rdb_threads.cc | 14 +-
storage/rocksdb/rdb_threads.h | 56 +-
storage/rocksdb/rdb_utils.cc | 70 +-
storage/rocksdb/rdb_utils.h | 77 +-
storage/rocksdb/rocksdb | 2 +-
.../rocksdb/unittest/test_properties_collector.cc | 2 +-
storage/sequence/sequence.cc | 11 +-
storage/sphinx/ha_sphinx.cc | 27 +-
storage/sphinx/mysql-test/sphinx/disabled.def | 2 -
storage/sphinx/mysql-test/sphinx/sphinx.result | 20 +
storage/sphinx/mysql-test/sphinx/sphinx.test | 13 +
storage/sphinx/mysql-test/sphinx/suite.pm | 33 +-
storage/sphinx/mysql-test/sphinx/union-5539.result | 2 +
storage/spider/ha_spider.cc | 4 +-
storage/spider/ha_spider.h | 2 +-
storage/spider/hs_client/hs_compat.h | 2 +-
.../mysql-test/spider/include/init_child2_1.inc | 14 +
.../mysql-test/spider/include/init_master_1.inc | 4 +
.../mysql-test/spider/r/pushdown_not_like.result | 63 +
.../mysql-test/spider/r/spider_fixes_part.result | 49 +
.../mysql-test/spider/t/pushdown_not_like.test | 138 +
.../mysql-test/spider/t/spider_fixes_part.test | 109 +
storage/spider/scripts/install_spider.sql | 26 +-
storage/spider/spd_conn.cc | 31 +-
storage/spider/spd_conn.h | 2 +-
storage/spider/spd_copy_tables.cc | 86 +-
storage/spider/spd_copy_tables.h | 2 +-
storage/spider/spd_db_conn.cc | 7 +-
storage/spider/spd_db_conn.h | 2 +-
storage/spider/spd_db_handlersocket.cc | 2 +-
storage/spider/spd_db_handlersocket.h | 2 +-
storage/spider/spd_db_include.h | 4 +-
storage/spider/spd_db_mysql.cc | 39 +-
storage/spider/spd_db_mysql.h | 2 +-
storage/spider/spd_db_oracle.cc | 2 +-
storage/spider/spd_db_oracle.h | 2 +-
storage/spider/spd_direct_sql.cc | 118 +-
storage/spider/spd_direct_sql.h | 2 +-
storage/spider/spd_err.h | 2 +-
storage/spider/spd_i_s.cc | 2 +-
storage/spider/spd_include.h | 5 +-
storage/spider/spd_malloc.cc | 2 +-
storage/spider/spd_malloc.h | 4 +-
storage/spider/spd_param.cc | 40 +-
storage/spider/spd_param.h | 4 +-
storage/spider/spd_ping_table.cc | 24 +-
storage/spider/spd_ping_table.h | 2 +-
storage/spider/spd_sys_table.cc | 2 +-
storage/spider/spd_sys_table.h | 2 +-
storage/spider/spd_table.cc | 354 +-
storage/spider/spd_table.h | 218 +-
storage/spider/spd_trx.cc | 59 +-
storage/spider/spd_trx.h | 2 +-
storage/spider/spd_udf.cc | 2 +-
storage/spider/spd_udf.h | 2 +-
storage/test_sql_discovery/test_sql_discovery.cc | 2 +-
storage/tokudb/.clang-format | 40 +
storage/tokudb/CMakeLists.txt | 53 +-
storage/tokudb/PerconaFT/.clang-format | 36 +
storage/tokudb/PerconaFT/CMakeLists.txt | 6 +-
storage/tokudb/PerconaFT/COPYING.APACHEv2 | 174 +
storage/tokudb/PerconaFT/COPYING.GPLv2 | 4 +-
storage/tokudb/PerconaFT/DartConfig.cmake | 10 -
storage/tokudb/PerconaFT/README.md | 34 +-
.../PerconaFT/cmake/merge_archives_unix.cmake.in | 2 +-
.../PerconaFT/cmake_modules/TokuMergeLibs.cmake | 2 +-
.../cmake_modules/TokuSetupCompiler.cmake | 5 +-
.../PerconaFT/cmake_modules/TokuThirdParty.cmake | 34 -
.../tokudb/PerconaFT/ft/cachetable/cachetable.cc | 27 +-
.../tokudb/PerconaFT/ft/cachetable/cachetable.h | 8 +-
storage/tokudb/PerconaFT/ft/comparator.h | 14 +
.../tokudb/PerconaFT/ft/ft-cachetable-wrappers.cc | 13 +-
storage/tokudb/PerconaFT/ft/ft-flusher.cc | 44 +-
storage/tokudb/PerconaFT/ft/ft-internal.h | 21 +-
storage/tokudb/PerconaFT/ft/ft-ops.cc | 157 +-
storage/tokudb/PerconaFT/ft/ft-ops.h | 4 +-
storage/tokudb/PerconaFT/ft/ft-recount-rows.cc | 2 +-
storage/tokudb/PerconaFT/ft/ft-status.cc | 14 +
storage/tokudb/PerconaFT/ft/ft-status.h | 14 +
storage/tokudb/PerconaFT/ft/ft-test-helpers.cc | 5 +-
storage/tokudb/PerconaFT/ft/ft-verify.cc | 2 +-
storage/tokudb/PerconaFT/ft/ft.cc | 28 +-
storage/tokudb/PerconaFT/ft/ft.h | 13 +-
storage/tokudb/PerconaFT/ft/logger/logger.cc | 20 +-
storage/tokudb/PerconaFT/ft/node.cc | 20 +-
storage/tokudb/PerconaFT/ft/node.h | 21 +-
.../PerconaFT/ft/serialize/block_allocator.cc | 2 +-
.../tokudb/PerconaFT/ft/serialize/block_table.cc | 4 +-
.../PerconaFT/ft/serialize/ft-node-deserialize.cc | 2 +-
.../tokudb/PerconaFT/ft/serialize/ft-serialize.cc | 18 +-
.../PerconaFT/ft/serialize/ft_node-serialize.cc | 128 +-
.../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/ft-clock-test.cc | 4 +-
storage/tokudb/PerconaFT/ft/tests/log-test4.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 | 6 +-
storage/tokudb/PerconaFT/ft/txn/txn.cc | 4 +
storage/tokudb/PerconaFT/ft/txn/txn_manager.h | 4 +-
storage/tokudb/PerconaFT/ftcxx/malloc_utils.cpp | 2 +-
storage/tokudb/PerconaFT/ftcxx/malloc_utils.hpp | 2 +-
.../tokudb/PerconaFT/ftcxx/tests/CMakeLists.txt | 4 +-
.../tokudb/PerconaFT/locktree/concurrent_tree.cc | 14 +
.../tokudb/PerconaFT/locktree/concurrent_tree.h | 14 +
storage/tokudb/PerconaFT/locktree/keyrange.cc | 14 +
storage/tokudb/PerconaFT/locktree/keyrange.h | 14 +
storage/tokudb/PerconaFT/locktree/lock_request.cc | 14 +
storage/tokudb/PerconaFT/locktree/lock_request.h | 14 +
storage/tokudb/PerconaFT/locktree/locktree.cc | 14 +
storage/tokudb/PerconaFT/locktree/locktree.h | 14 +
storage/tokudb/PerconaFT/locktree/manager.cc | 14 +
storage/tokudb/PerconaFT/locktree/range_buffer.cc | 14 +
storage/tokudb/PerconaFT/locktree/range_buffer.h | 14 +
storage/tokudb/PerconaFT/locktree/treenode.cc | 14 +
storage/tokudb/PerconaFT/locktree/treenode.h | 14 +
storage/tokudb/PerconaFT/locktree/txnid_set.cc | 14 +
storage/tokudb/PerconaFT/locktree/txnid_set.h | 14 +
storage/tokudb/PerconaFT/locktree/wfg.cc | 14 +
storage/tokudb/PerconaFT/locktree/wfg.h | 14 +
storage/tokudb/PerconaFT/portability/memory.cc | 45 +-
storage/tokudb/PerconaFT/portability/memory.h | 16 +-
.../tokudb/PerconaFT/portability/portability.cc | 2 +
.../PerconaFT/portability/tests/test-max-data.cc | 2 +-
storage/tokudb/PerconaFT/portability/toku_assert.h | 2 +-
storage/tokudb/PerconaFT/portability/toku_atomic.h | 14 +
.../tokudb/PerconaFT/portability/toku_debug_sync.h | 6 +-
.../PerconaFT/portability/toku_instr_mysql.cc | 27 +-
.../PerconaFT/portability/toku_instr_mysql.h | 11 +-
.../PerconaFT/portability/toku_instrumentation.h | 54 +-
.../PerconaFT/portability/toku_portability.h | 18 +-
.../tokudb/PerconaFT/portability/toku_pthread.cc | 14 +
.../tokudb/PerconaFT/portability/toku_pthread.h | 108 +-
.../tokudb/PerconaFT/portability/toku_race_tools.h | 18 +-
storage/tokudb/PerconaFT/portability/toku_time.cc | 14 +
storage/tokudb/PerconaFT/portability/toku_time.h | 19 +
.../scripts/run-nightly-coverage-tests.bash | 2 +-
.../PerconaFT/scripts/run-nightly-drd-tests.bash | 2 +-
.../scripts/run-nightly-release-tests.bash | 2 +-
storage/tokudb/PerconaFT/scripts/tokuvalgrind | 1 -
storage/tokudb/PerconaFT/src/CMakeLists.txt | 2 +-
.../PerconaFT/src/tests/checkpoint_stress.cc | 2 +-
.../tokudb/PerconaFT/src/tests/directory_lock.cc | 2 +-
storage/tokudb/PerconaFT/src/tests/get_last_key.cc | 32 +-
.../PerconaFT/src/tests/loader-cleanup-test.cc | 18 +-
.../src/tests/recover-del-multiple-abort.cc | 6 +-
.../recover-del-multiple-srcdb-fdelete-all.cc | 6 +-
.../PerconaFT/src/tests/recover-del-multiple.cc | 6 +-
.../src/tests/recover-put-multiple-abort.cc | 6 +-
.../PerconaFT/src/tests/recovery_fileops_unit.cc | 4 +-
.../tokudb/PerconaFT/src/tests/test-prepare3.cc | 1 +
storage/tokudb/PerconaFT/src/ydb.cc | 61 +-
storage/tokudb/PerconaFT/src/ydb_db.cc | 8 +-
storage/tokudb/PerconaFT/src/ydb_db.h | 1 +
storage/tokudb/PerconaFT/src/ydb_lib.cc | 2 +-
.../PerconaFT/third_party/snappy-1.1.2/aclocal.m4 | 4 +-
.../PerconaFT/third_party/snappy-1.1.2/configure | 2 +-
.../PerconaFT/third_party/snappy-1.1.2/ltmain.sh | 2 +-
.../third_party/xz-4.999.9beta/COPYING.GPLv2 | 4 +-
.../third_party/xz-4.999.9beta/COPYING.LGPLv2.1 | 4 +-
.../third_party/xz-4.999.9beta/autogen.sh | 0
.../third_party/xz-4.999.9beta/build-aux/compile | 0
.../xz-4.999.9beta/build-aux/config.guess | 0
.../xz-4.999.9beta/build-aux/config.rpath | 0
.../xz-4.999.9beta/build-aux/config.sub | 2 +-
.../third_party/xz-4.999.9beta/build-aux/depcomp | 0
.../xz-4.999.9beta/build-aux/install-sh | 0
.../third_party/xz-4.999.9beta/build-aux/ltmain.sh | 2 +-
.../third_party/xz-4.999.9beta/build-aux/missing | 0
.../PerconaFT/third_party/xz-4.999.9beta/configure | 2 +-
.../xz-4.999.9beta/extra/7z2lzma/7z2lzma.bash | 0
.../third_party/xz-4.999.9beta/lib/getopt.c | 2 +-
.../third_party/xz-4.999.9beta/lib/getopt.in.h | 2 +-
.../third_party/xz-4.999.9beta/lib/getopt1.c | 2 +-
.../third_party/xz-4.999.9beta/lib/getopt_int.h | 2 +-
.../third_party/xz-4.999.9beta/m4/libtool.m4 | 2 +-
.../xz-4.999.9beta/tests/test_compress.sh | 0
.../third_party/xz-4.999.9beta/tests/test_files.sh | 0
storage/tokudb/PerconaFT/tools/tokuftdump.cc | 2 +-
storage/tokudb/PerconaFT/util/dbt.h | 14 +
storage/tokudb/PerconaFT/util/dmt.cc | 4 +-
storage/tokudb/PerconaFT/util/growable_array.h | 14 +
storage/tokudb/PerconaFT/util/memarena.cc | 14 +
storage/tokudb/PerconaFT/util/memarena.h | 14 +
storage/tokudb/PerconaFT/util/minicron.cc | 3 +-
storage/tokudb/PerconaFT/util/omt.cc | 2262 +-
storage/tokudb/PerconaFT/util/omt.h | 22 +-
.../tokudb/PerconaFT/util/partitioned_counter.cc | 14 +
.../tokudb/PerconaFT/util/partitioned_counter.h | 14 +
storage/tokudb/PerconaFT/util/scoped_malloc.cc | 2 +-
storage/tokudb/PerconaFT/util/status.h | 14 +
.../util/tests/minicron-change-period-data-race.cc | 66 +
storage/tokudb/ha_tokudb.cc | 382 +-
storage/tokudb/ha_tokudb.h | 99 +-
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_mrr_mysql.cc | 1 +
storage/tokudb/ha_tokudb_update.cc | 96 +-
storage/tokudb/hatoku_cmp.cc | 41 +-
storage/tokudb/hatoku_cmp.h | 14 +-
storage/tokudb/hatoku_defines.h | 65 +-
storage/tokudb/hatoku_hton.cc | 207 +-
storage/tokudb/hatoku_hton.h | 26 +-
storage/tokudb/mysql-test/rpl/disabled.def | 1 +
.../rpl/r/rpl_extra_col_master_tokudb.result | 6 +-
.../rpl/r/rpl_extra_col_slave_tokudb.result | 12 +-
.../mysql-test/rpl/r/rpl_mixed_replace_into.result | 23 +
.../rpl/r/rpl_parallel_tokudb_delete_pk.result | 5 -
...pl_parallel_tokudb_update_pk_uc0_lookup0.result | 5 -
.../rpl/r/rpl_parallel_tokudb_write_pk.result | 2 -
.../mysql-test/rpl/r/rpl_row_basic_3tokudb.result | 4 +-
.../mysql-test/rpl/r/rpl_row_replace_into.result | 23 +
.../mysql-test/rpl/r/rpl_stmt_replace_into.result | 23 +
.../mysql-test/rpl/r/rpl_tokudb_mixed_dml.result | 70 +-
.../rpl/r/rpl_tokudb_row_crash_safe.result | 2183 --
.../rpl/r/rpl_tokudb_stm_mixed_crash_safe.result | 1773 -
.../mysql-test/rpl/r/rpl_xa_interleave.result | 78 +
.../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 +
.../rpl/t/rpl_tokudb_row_crash_safe-master.opt | 1 -
.../rpl/t/rpl_tokudb_row_crash_safe-slave.opt | 1 -
.../rpl/t/rpl_tokudb_row_crash_safe.test | 19 -
.../t/rpl_tokudb_stm_mixed_crash_safe-master.opt | 1 -
.../t/rpl_tokudb_stm_mixed_crash_safe-slave.opt | 1 -
.../rpl/t/rpl_tokudb_stm_mixed_crash_safe.test | 18 -
.../tokudb/mysql-test/rpl/t/rpl_xa_interleave.test | 103 +
storage/tokudb/mysql-test/tokudb/disabled.def | 4 +-
.../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/mysql-test/tokudb/r/compressions.result | 11 +
.../dir_per_db_rename_to_nonexisting_schema.result | 1 +
.../mysql-test/tokudb/r/ext_key_1_innodb.result | 3 -
.../mysql-test/tokudb/r/ext_key_1_tokudb.result | 3 -
.../mysql-test/tokudb/r/ext_key_2_innodb.result | 3 -
.../mysql-test/tokudb/r/ext_key_2_tokudb.result | 3 -
.../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 +-
storage/tokudb/mysql-test/tokudb/r/mvcc-29.result | 4 +-
storage/tokudb/mysql-test/tokudb/r/mvcc-30.result | 4 +-
storage/tokudb/mysql-test/tokudb/r/mvcc-31.result | 4 +-
.../tokudb/mysql-test/tokudb/r/tokudb_mrr.result | 334 +
.../tokudb/mysql-test/tokudb/r/type_date.result | 6 +-
.../mysql-test/tokudb/r/type_datetime.result | 4 +-
.../tokudb/mysql-test/tokudb/r/type_decimal.result | 4 +-
.../tokudb/mysql-test/tokudb/r/type_float.result | 2 +-
.../mysql-test/tokudb/r/type_newdecimal.result | 2 +-
storage/tokudb/mysql-test/tokudb/suite.pm | 6 +
.../mysql-test/tokudb/t/change_column_Makefile | 10 +-
.../mysql-test/tokudb/t/change_column_bin.py | 2 +-
.../tokudb/t/change_column_bin_rename.py | 2 +-
.../mysql-test/tokudb/t/change_column_char.py | 2 +-
.../tokudb/t/change_column_char_binary.py | 2 +-
.../tokudb/t/change_column_char_charbinary.py | 2 +-
.../tokudb/t/change_column_char_rename.py | 2 +-
.../mysql-test/tokudb/t/change_column_int.py | 2 +-
.../mysql-test/tokudb/t/change_column_int_key.py | 2 +-
.../tokudb/t/change_column_int_not_supported.py | 2 +-
.../tokudb/t/change_column_int_rename.py | 2 +-
.../tokudb/mysql-test/tokudb/t/cluster_2968-0.test | 1 +
.../tokudb/mysql-test/tokudb/t/cluster_2968-1.test | 1 +
.../tokudb/mysql-test/tokudb/t/cluster_2968-2.test | 1 +
.../tokudb/mysql-test/tokudb/t/cluster_2968-3.test | 2 +
.../tokudb/mysql-test/tokudb/t/compressions.test | 68 +
storage/tokudb/mysql-test/tokudb/t/disabled.def | 24 -
.../mysql-test/tokudb/t/ext_key_1_innodb.test | 2 -
.../mysql-test/tokudb/t/ext_key_1_tokudb.test | 2 -
.../mysql-test/tokudb/t/ext_key_2_innodb.test | 2 -
.../mysql-test/tokudb/t/ext_key_2_tokudb.test | 2 -
.../mysql-test/tokudb/t/fast_update_Makefile | 4 +-
.../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/mysql-test/tokudb/t/type_varchar.opt | 1 +
.../tokudb/mysql-test/tokudb/t/type_varchar.test | 1 +
.../tokudb/mysql-test/tokudb_bugs/r/2970.result | 2 +-
.../tokudb/mysql-test/tokudb_bugs/r/PS-3773.result | 8 +
.../tokudb/mysql-test/tokudb_bugs/r/PS-4979.result | 2 +
.../tokudb/mysql-test/tokudb_bugs/r/PS-5158.result | 6 +
.../tokudb/mysql-test/tokudb_bugs/r/PS-5163.result | 5 +
.../r/alter_table_comment_rebuild_data.result | 177 +
.../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 +
.../tokudb/mysql-test/tokudb_bugs/t/PS-4979.test | 13 +
.../mysql-test/tokudb_bugs/t/PS-5158-master.opt | 2 +
.../tokudb/mysql-test/tokudb_bugs/t/PS-5158.test | 27 +
.../tokudb/mysql-test/tokudb_bugs/t/PS-5163.test | 11 +
.../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 -
.../tokudb/mysql-test/tokudb_parts/disabled.def | 1 +
.../r/partition_debug_sync_tokudb.result | 3 +
.../tokudb_parts/r/partition_debug_tokudb.result | 430 +-
.../t/partition_debug_sync_tokudb-master.opt | 1 -
.../t/partition_debug_tokudb-master.opt | 1 -
.../t/partition_special_tokudb-master.opt | 1 -
storage/tokudb/tests/math_test_int.cc | 162 +-
storage/tokudb/tests/math_test_uint.cc | 84 +-
storage/tokudb/tests/sint_test.cc | 1 -
storage/tokudb/tests/tokudb_buffer_test.cc | 11 +-
storage/tokudb/tests/uint_test.cc | 1 -
storage/tokudb/tests/vlq_test.cc | 9 +-
storage/tokudb/tests/vlq_test_uint32.cc | 15 +-
storage/tokudb/tests/vlq_test_uint64.cc | 15 +-
storage/tokudb/tokudb.cnf | 6 -
storage/tokudb/tokudb.cnf.in | 8 +
storage/tokudb/tokudb.conf.in | 2 +
storage/tokudb/tokudb_background.cc | 4 +-
storage/tokudb/tokudb_buffer.h | 4 +-
storage/tokudb/tokudb_debug.h | 5 -
storage/tokudb/tokudb_dir_cmd.h | 6 +-
storage/tokudb/tokudb_information_schema.cc | 74 +-
storage/tokudb/tokudb_math.h | 6 +-
storage/tokudb/tokudb_status.h | 4 +-
storage/tokudb/tokudb_sysvars.cc | 136 +-
storage/tokudb/tokudb_sysvars.h | 20 +-
storage/tokudb/tokudb_thread.h | 75 +-
storage/tokudb/tokudb_update_fun.cc | 230 +-
storage/xtradb/.clang-format | 111 +
storage/xtradb/CMakeLists.txt | 39 +-
storage/xtradb/api/api0api.cc | 2 +-
storage/xtradb/api/api0misc.cc | 2 +-
storage/xtradb/btr/btr0btr.cc | 2 +-
storage/xtradb/btr/btr0cur.cc | 2 +-
storage/xtradb/btr/btr0defragment.cc | 68 +-
storage/xtradb/btr/btr0pcur.cc | 2 +-
storage/xtradb/btr/btr0scrub.cc | 2 +-
storage/xtradb/btr/btr0sea.cc | 17 +-
storage/xtradb/buf/buf0buddy.cc | 13 +-
storage/xtradb/buf/buf0buf.cc | 755 +-
storage/xtradb/buf/buf0checksum.cc | 2 +-
storage/xtradb/buf/buf0dblwr.cc | 82 +-
storage/xtradb/buf/buf0dump.cc | 11 +-
storage/xtradb/buf/buf0flu.cc | 4 +-
storage/xtradb/buf/buf0lru.cc | 75 +-
storage/xtradb/buf/buf0mtflu.cc | 2 +-
storage/xtradb/buf/buf0rea.cc | 2 +-
storage/xtradb/data/data0data.cc | 5 +-
storage/xtradb/data/data0type.cc | 2 +-
storage/xtradb/dict/dict0boot.cc | 2 +-
storage/xtradb/dict/dict0crea.cc | 17 +-
storage/xtradb/dict/dict0dict.cc | 267 +-
storage/xtradb/dict/dict0load.cc | 9 +-
storage/xtradb/dict/dict0mem.cc | 16 +-
storage/xtradb/dict/dict0stats.cc | 19 +-
storage/xtradb/dict/dict0stats_bg.cc | 20 +-
storage/xtradb/dyn/dyn0dyn.cc | 2 +-
storage/xtradb/eval/eval0eval.cc | 5 +-
storage/xtradb/eval/eval0proc.cc | 2 +-
storage/xtradb/fil/fil0crypt.cc | 266 +-
storage/xtradb/fil/fil0fil.cc | 183 +-
storage/xtradb/fil/fil0pagecompress.cc | 698 +-
storage/xtradb/fsp/fsp0fsp.cc | 8 +-
storage/xtradb/fts/fts0ast.cc | 11 +-
storage/xtradb/fts/fts0blex.cc | 1116 +-
storage/xtradb/fts/fts0blex.l | 2 +-
storage/xtradb/fts/fts0config.cc | 26 +-
storage/xtradb/fts/fts0fts.cc | 494 +-
storage/xtradb/fts/fts0opt.cc | 765 +-
storage/xtradb/fts/fts0pars.cc | 16 +-
storage/xtradb/fts/fts0pars.y | 18 +-
storage/xtradb/fts/fts0que.cc | 74 +-
storage/xtradb/fts/fts0sql.cc | 156 +-
storage/xtradb/fts/fts0tlex.cc | 829 +-
storage/xtradb/fts/fts0tlex.l | 2 +-
storage/xtradb/fts/make_parser.sh | 2 +-
storage/xtradb/fut/fut0fut.cc | 2 +-
storage/xtradb/fut/fut0lst.cc | 2 +-
storage/xtradb/ha/ha0ha.cc | 2 +-
storage/xtradb/ha/ha0storage.cc | 2 +-
storage/xtradb/ha/hash0hash.cc | 2 +-
storage/xtradb/handler/ha_innodb.cc | 751 +-
storage/xtradb/handler/ha_innodb.h | 21 +-
storage/xtradb/handler/handler0alter.cc | 389 +-
storage/xtradb/handler/i_s.cc | 302 +-
storage/xtradb/handler/i_s.h | 8 +-
storage/xtradb/handler/xtradb_i_s.cc | 2 +-
storage/xtradb/handler/xtradb_i_s.h | 2 +-
storage/xtradb/ibuf/ibuf0ibuf.cc | 14 +-
storage/xtradb/include/api0api.h | 2 +-
storage/xtradb/include/api0misc.h | 2 +-
storage/xtradb/include/btr0btr.h | 2 +-
storage/xtradb/include/btr0btr.ic | 2 +-
storage/xtradb/include/btr0cur.h | 2 +-
storage/xtradb/include/btr0cur.ic | 2 +-
storage/xtradb/include/btr0defragment.h | 2 +-
storage/xtradb/include/btr0pcur.h | 2 +-
storage/xtradb/include/btr0pcur.ic | 2 +-
storage/xtradb/include/btr0sea.h | 15 +-
storage/xtradb/include/btr0sea.ic | 6 +-
storage/xtradb/include/btr0types.h | 2 +-
storage/xtradb/include/buf0buddy.h | 2 +-
storage/xtradb/include/buf0buddy.ic | 2 +-
storage/xtradb/include/buf0buf.h | 69 +-
storage/xtradb/include/buf0buf.ic | 2 +-
storage/xtradb/include/buf0checksum.h | 2 +-
storage/xtradb/include/buf0dblwr.h | 2 +-
storage/xtradb/include/buf0dump.h | 2 +-
storage/xtradb/include/buf0flu.h | 13 +-
storage/xtradb/include/buf0flu.ic | 2 +-
storage/xtradb/include/buf0lru.h | 24 +-
storage/xtradb/include/buf0lru.ic | 2 +-
storage/xtradb/include/buf0mtflu.h | 2 +-
storage/xtradb/include/buf0rea.h | 2 +-
storage/xtradb/include/buf0types.h | 2 +-
storage/xtradb/include/data0data.h | 2 +-
storage/xtradb/include/data0data.ic | 30 +-
storage/xtradb/include/data0type.h | 2 +-
storage/xtradb/include/data0type.ic | 2 +-
storage/xtradb/include/data0types.h | 2 +-
storage/xtradb/include/db0err.h | 2 +-
storage/xtradb/include/dict0boot.h | 2 +-
storage/xtradb/include/dict0boot.ic | 2 +-
storage/xtradb/include/dict0crea.h | 2 +-
storage/xtradb/include/dict0crea.ic | 12 +-
storage/xtradb/include/dict0dict.h | 14 +-
storage/xtradb/include/dict0dict.ic | 42 +-
storage/xtradb/include/dict0load.h | 2 +-
storage/xtradb/include/dict0load.ic | 2 +-
storage/xtradb/include/dict0mem.h | 13 +-
storage/xtradb/include/dict0mem.ic | 2 +-
storage/xtradb/include/dict0pagecompress.h | 2 +-
storage/xtradb/include/dict0pagecompress.ic | 2 +-
storage/xtradb/include/dict0priv.h | 2 +-
storage/xtradb/include/dict0priv.ic | 2 +-
storage/xtradb/include/dict0stats.h | 2 +-
storage/xtradb/include/dict0stats.ic | 2 +-
storage/xtradb/include/dict0stats_bg.h | 2 +-
storage/xtradb/include/dict0stats_bg.ic | 2 +-
storage/xtradb/include/dict0types.h | 2 +-
storage/xtradb/include/dyn0dyn.h | 2 +-
storage/xtradb/include/dyn0dyn.ic | 2 +-
storage/xtradb/include/eval0eval.h | 2 +-
storage/xtradb/include/eval0eval.ic | 2 +-
storage/xtradb/include/eval0proc.h | 2 +-
storage/xtradb/include/eval0proc.ic | 2 +-
storage/xtradb/include/fil0crypt.h | 13 +-
storage/xtradb/include/fil0crypt.ic | 2 +-
storage/xtradb/include/fil0fil.h | 30 +-
storage/xtradb/include/fil0fil.ic | 10 +-
storage/xtradb/include/fil0pagecompress.h | 97 +-
storage/xtradb/include/fsp0fsp.h | 4 +-
storage/xtradb/include/fsp0fsp.ic | 2 +-
storage/xtradb/include/fsp0pagecompress.h | 2 +-
storage/xtradb/include/fsp0pagecompress.ic | 72 +-
storage/xtradb/include/fsp0types.h | 2 +-
storage/xtradb/include/fts0ast.h | 8 +-
storage/xtradb/include/fts0blex.h | 465 +-
storage/xtradb/include/fts0fts.h | 107 +-
storage/xtradb/include/fts0opt.h | 5 +-
storage/xtradb/include/fts0priv.h | 66 +-
storage/xtradb/include/fts0priv.ic | 2 +-
storage/xtradb/include/fts0tlex.h | 465 +-
storage/xtradb/include/fts0types.h | 10 +-
storage/xtradb/include/fts0types.ic | 2 +-
storage/xtradb/include/fts0vlc.ic | 2 +-
storage/xtradb/include/fut0fut.h | 2 +-
storage/xtradb/include/fut0fut.ic | 2 +-
storage/xtradb/include/fut0lst.h | 2 +-
storage/xtradb/include/fut0lst.ic | 2 +-
storage/xtradb/include/ha0ha.h | 2 +-
storage/xtradb/include/ha0ha.ic | 2 +-
storage/xtradb/include/ha0storage.h | 2 +-
storage/xtradb/include/ha0storage.ic | 2 +-
storage/xtradb/include/ha_prototypes.h | 4 +-
storage/xtradb/include/handler0alter.h | 13 +-
storage/xtradb/include/hash0hash.h | 2 +-
storage/xtradb/include/hash0hash.ic | 2 +-
storage/xtradb/include/ibuf0ibuf.h | 2 +-
storage/xtradb/include/ibuf0ibuf.ic | 2 +-
storage/xtradb/include/ibuf0types.h | 2 +-
storage/xtradb/include/lock0iter.h | 2 +-
storage/xtradb/include/lock0lock.h | 18 +-
storage/xtradb/include/lock0lock.ic | 2 +-
storage/xtradb/include/lock0priv.h | 14 +-
storage/xtradb/include/lock0priv.ic | 2 +-
storage/xtradb/include/lock0types.h | 2 +-
storage/xtradb/include/log0crypt.h | 2 +-
storage/xtradb/include/log0log.h | 2 +-
storage/xtradb/include/log0log.ic | 2 +-
storage/xtradb/include/log0online.h | 5 +-
storage/xtradb/include/log0recv.h | 6 +-
storage/xtradb/include/log0recv.ic | 2 +-
storage/xtradb/include/mach0data.h | 2 +-
storage/xtradb/include/mach0data.ic | 2 +-
storage/xtradb/include/mem0dbg.h | 2 +-
storage/xtradb/include/mem0dbg.ic | 2 +-
storage/xtradb/include/mem0mem.h | 2 +-
storage/xtradb/include/mem0mem.ic | 2 +-
storage/xtradb/include/mem0pool.h | 2 +-
storage/xtradb/include/mem0pool.ic | 2 +-
storage/xtradb/include/mtr0log.h | 2 +-
storage/xtradb/include/mtr0log.ic | 2 +-
storage/xtradb/include/mtr0mtr.h | 2 +-
storage/xtradb/include/mtr0mtr.ic | 2 +-
storage/xtradb/include/mtr0types.h | 2 +-
storage/xtradb/include/os0file.h | 2 +-
storage/xtradb/include/os0file.ic | 2 +-
storage/xtradb/include/os0once.h | 2 +-
storage/xtradb/include/os0proc.h | 5 +-
storage/xtradb/include/os0proc.ic | 2 +-
storage/xtradb/include/os0stacktrace.h | 2 +-
storage/xtradb/include/os0sync.h | 2 +-
storage/xtradb/include/os0sync.ic | 2 +-
storage/xtradb/include/os0thread.h | 2 +-
storage/xtradb/include/os0thread.ic | 2 +-
storage/xtradb/include/page0cur.h | 2 +-
storage/xtradb/include/page0cur.ic | 2 +-
storage/xtradb/include/page0page.h | 20 +-
storage/xtradb/include/page0page.ic | 2 +-
storage/xtradb/include/page0types.h | 2 +-
storage/xtradb/include/page0zip.h | 2 +-
storage/xtradb/include/page0zip.ic | 2 +-
storage/xtradb/include/pars0grm.h | 2 +-
storage/xtradb/include/pars0opt.h | 2 +-
storage/xtradb/include/pars0opt.ic | 2 +-
storage/xtradb/include/pars0pars.h | 7 +-
storage/xtradb/include/pars0pars.ic | 2 +-
storage/xtradb/include/pars0sym.h | 2 +-
storage/xtradb/include/pars0sym.ic | 2 +-
storage/xtradb/include/pars0types.h | 2 +-
storage/xtradb/include/que0que.h | 2 +-
storage/xtradb/include/que0que.ic | 2 +-
storage/xtradb/include/que0types.h | 2 +-
storage/xtradb/include/read0i_s.h | 2 +-
storage/xtradb/include/read0read.h | 2 +-
storage/xtradb/include/read0read.ic | 2 +-
storage/xtradb/include/read0types.h | 2 +-
storage/xtradb/include/rem0cmp.h | 2 +-
storage/xtradb/include/rem0cmp.ic | 2 +-
storage/xtradb/include/rem0rec.h | 2 +-
storage/xtradb/include/rem0rec.ic | 26 +-
storage/xtradb/include/rem0types.h | 2 +-
storage/xtradb/include/row0ext.h | 2 +-
storage/xtradb/include/row0ext.ic | 2 +-
storage/xtradb/include/row0ftsort.h | 12 +-
storage/xtradb/include/row0import.h | 2 +-
storage/xtradb/include/row0import.ic | 2 +-
storage/xtradb/include/row0ins.h | 2 +-
storage/xtradb/include/row0ins.ic | 2 +-
storage/xtradb/include/row0log.h | 2 +-
storage/xtradb/include/row0log.ic | 2 +-
storage/xtradb/include/row0merge.h | 2 +-
storage/xtradb/include/row0mysql.h | 6 +-
storage/xtradb/include/row0mysql.ic | 2 +-
storage/xtradb/include/row0purge.h | 2 +-
storage/xtradb/include/row0purge.ic | 2 +-
storage/xtradb/include/row0quiesce.h | 2 +-
storage/xtradb/include/row0quiesce.ic | 2 +-
storage/xtradb/include/row0row.h | 2 +-
storage/xtradb/include/row0row.ic | 2 +-
storage/xtradb/include/row0sel.h | 2 +-
storage/xtradb/include/row0sel.ic | 2 +-
storage/xtradb/include/row0types.h | 2 +-
storage/xtradb/include/row0uins.h | 2 +-
storage/xtradb/include/row0uins.ic | 2 +-
storage/xtradb/include/row0umod.h | 2 +-
storage/xtradb/include/row0umod.ic | 2 +-
storage/xtradb/include/row0undo.h | 2 +-
storage/xtradb/include/row0undo.ic | 2 +-
storage/xtradb/include/row0upd.h | 2 +-
storage/xtradb/include/row0upd.ic | 2 +-
storage/xtradb/include/row0vers.h | 2 +-
storage/xtradb/include/row0vers.ic | 2 +-
storage/xtradb/include/srv0conc.h | 2 +-
storage/xtradb/include/srv0mon.h | 12 +-
storage/xtradb/include/srv0mon.ic | 2 +-
storage/xtradb/include/srv0srv.h | 16 +-
storage/xtradb/include/srv0srv.ic | 2 +-
storage/xtradb/include/srv0start.h | 2 +-
storage/xtradb/include/sync0arr.h | 2 +-
storage/xtradb/include/sync0arr.ic | 2 +-
storage/xtradb/include/sync0rw.h | 2 +-
storage/xtradb/include/sync0rw.ic | 5 +-
storage/xtradb/include/sync0sync.h | 2 +-
storage/xtradb/include/sync0sync.ic | 2 +-
storage/xtradb/include/sync0types.h | 2 +-
storage/xtradb/include/trx0i_s.h | 7 +-
storage/xtradb/include/trx0purge.h | 2 +-
storage/xtradb/include/trx0purge.ic | 2 +-
storage/xtradb/include/trx0rec.h | 2 +-
storage/xtradb/include/trx0rec.ic | 2 +-
storage/xtradb/include/trx0roll.h | 2 +-
storage/xtradb/include/trx0roll.ic | 2 +-
storage/xtradb/include/trx0rseg.h | 2 +-
storage/xtradb/include/trx0rseg.ic | 2 +-
storage/xtradb/include/trx0sys.h | 2 +-
storage/xtradb/include/trx0sys.ic | 2 +-
storage/xtradb/include/trx0trx.h | 18 +-
storage/xtradb/include/trx0trx.ic | 5 +-
storage/xtradb/include/trx0types.h | 9 +-
storage/xtradb/include/trx0undo.h | 2 +-
storage/xtradb/include/trx0undo.ic | 2 +-
storage/xtradb/include/trx0xa.h | 2 +-
storage/xtradb/include/univ.i | 18 +-
storage/xtradb/include/usr0sess.h | 2 +-
storage/xtradb/include/usr0sess.ic | 2 +-
storage/xtradb/include/usr0types.h | 2 +-
storage/xtradb/include/ut0bh.h | 2 +-
storage/xtradb/include/ut0bh.ic | 2 +-
storage/xtradb/include/ut0byte.h | 2 +-
storage/xtradb/include/ut0byte.ic | 2 +-
storage/xtradb/include/ut0counter.h | 48 +-
storage/xtradb/include/ut0crc32.h | 2 +-
storage/xtradb/include/ut0dbg.h | 5 +-
storage/xtradb/include/ut0list.h | 2 +-
storage/xtradb/include/ut0list.ic | 2 +-
storage/xtradb/include/ut0lst.h | 2 +-
storage/xtradb/include/ut0mem.h | 2 +-
storage/xtradb/include/ut0mem.ic | 2 +-
storage/xtradb/include/ut0rbt.h | 2 +-
storage/xtradb/include/ut0rnd.h | 2 +-
storage/xtradb/include/ut0rnd.ic | 2 +-
storage/xtradb/include/ut0sort.h | 2 +-
storage/xtradb/include/ut0timer.h | 104 -
storage/xtradb/include/ut0timer.ic | 113 -
storage/xtradb/include/ut0ut.h | 75 +-
storage/xtradb/include/ut0ut.ic | 2 +-
storage/xtradb/include/ut0vec.h | 2 +-
storage/xtradb/include/ut0vec.ic | 2 +-
storage/xtradb/include/ut0wqueue.h | 37 +-
storage/xtradb/lock/lock0iter.cc | 2 +-
storage/xtradb/lock/lock0lock.cc | 285 +-
storage/xtradb/lock/lock0wait.cc | 68 +-
storage/xtradb/log/log0crypt.cc | 2 +-
storage/xtradb/log/log0log.cc | 44 +-
storage/xtradb/log/log0online.cc | 61 +-
storage/xtradb/log/log0recv.cc | 49 +-
storage/xtradb/mach/mach0data.cc | 2 +-
storage/xtradb/mem/mem0dbg.cc | 2 +-
storage/xtradb/mem/mem0mem.cc | 2 +-
storage/xtradb/mem/mem0pool.cc | 2 +-
storage/xtradb/mtr/mtr0log.cc | 2 +-
storage/xtradb/mtr/mtr0mtr.cc | 2 +-
storage/xtradb/os/os0file.cc | 123 +-
storage/xtradb/os/os0proc.cc | 68 +-
storage/xtradb/os/os0stacktrace.cc | 2 +-
storage/xtradb/os/os0sync.cc | 28 +-
storage/xtradb/os/os0thread.cc | 2 +-
storage/xtradb/page/page0cur.cc | 12 +-
storage/xtradb/page/page0page.cc | 48 +-
storage/xtradb/page/page0zip.cc | 104 +-
storage/xtradb/pars/lexyy.cc | 514 +-
storage/xtradb/pars/make_bison.sh | 2 +-
storage/xtradb/pars/make_flex.sh | 11 +-
storage/xtradb/pars/pars0grm.cc | 2 +-
storage/xtradb/pars/pars0grm.y | 2 +-
storage/xtradb/pars/pars0lex.l | 12 +-
storage/xtradb/pars/pars0opt.cc | 2 +-
storage/xtradb/pars/pars0pars.cc | 11 +-
storage/xtradb/pars/pars0sym.cc | 2 +-
storage/xtradb/que/que0que.cc | 12 +-
storage/xtradb/read/read0read.cc | 2 +-
storage/xtradb/rem/rem0cmp.cc | 2 +-
storage/xtradb/rem/rem0rec.cc | 20 +-
storage/xtradb/row/row0ext.cc | 2 +-
storage/xtradb/row/row0ftsort.cc | 29 +-
storage/xtradb/row/row0import.cc | 324 +-
storage/xtradb/row/row0ins.cc | 56 +-
storage/xtradb/row/row0log.cc | 146 +-
storage/xtradb/row/row0merge.cc | 60 +-
storage/xtradb/row/row0mysql.cc | 277 +-
storage/xtradb/row/row0purge.cc | 6 +-
storage/xtradb/row/row0quiesce.cc | 2 +-
storage/xtradb/row/row0row.cc | 7 +-
storage/xtradb/row/row0sel.cc | 37 +-
storage/xtradb/row/row0uins.cc | 2 +-
storage/xtradb/row/row0umod.cc | 2 +-
storage/xtradb/row/row0undo.cc | 2 +-
storage/xtradb/row/row0upd.cc | 148 +-
storage/xtradb/row/row0vers.cc | 2 +-
storage/xtradb/srv/srv0conc.cc | 19 +-
storage/xtradb/srv/srv0mon.cc | 30 +-
storage/xtradb/srv/srv0srv.cc | 66 +-
storage/xtradb/srv/srv0start.cc | 19 +-
storage/xtradb/sync/sync0arr.cc | 12 +-
storage/xtradb/sync/sync0rw.cc | 2 +-
storage/xtradb/sync/sync0sync.cc | 2 +-
storage/xtradb/trx/trx0i_s.cc | 39 +-
storage/xtradb/trx/trx0purge.cc | 27 +-
storage/xtradb/trx/trx0rec.cc | 8 +-
storage/xtradb/trx/trx0roll.cc | 12 +-
storage/xtradb/trx/trx0rseg.cc | 2 +-
storage/xtradb/trx/trx0sys.cc | 14 +-
storage/xtradb/trx/trx0trx.cc | 101 +-
storage/xtradb/trx/trx0undo.cc | 5 +-
storage/xtradb/usr/usr0sess.cc | 2 +-
storage/xtradb/ut/ut0bh.cc | 2 +-
storage/xtradb/ut/ut0byte.cc | 2 +-
storage/xtradb/ut/ut0crc32.cc | 20 +-
storage/xtradb/ut/ut0dbg.cc | 2 +-
storage/xtradb/ut/ut0list.cc | 2 +-
storage/xtradb/ut/ut0mem.cc | 2 +-
storage/xtradb/ut/ut0rbt.cc | 2 +-
storage/xtradb/ut/ut0rnd.cc | 2 +-
storage/xtradb/ut/ut0timer.cc | 92 -
storage/xtradb/ut/ut0ut.cc | 196 +-
storage/xtradb/ut/ut0vec.cc | 2 +-
storage/xtradb/ut/ut0wqueue.cc | 26 +-
strings/CMakeLists.txt | 2 +-
strings/conf_to_src.c | 4 +-
strings/ctype-big5.c | 2 +-
strings/ctype-bin.c | 10 +-
strings/ctype-cp932.c | 2 +-
strings/ctype-czech.c | 2 +-
strings/ctype-euc_kr.c | 6 +-
strings/ctype-eucjpms.c | 2 +-
strings/ctype-extra.c | 2 +-
strings/ctype-gb2312.c | 2 +-
strings/ctype-gbk.c | 2 +-
strings/ctype-latin1.c | 2 +-
strings/ctype-mb.c | 102 +-
strings/ctype-mb.ic | 2 +-
strings/ctype-simple.c | 49 +-
strings/ctype-sjis.c | 2 +-
strings/ctype-uca.c | 118 +-
strings/ctype-ucs2.c | 80 +-
strings/ctype-ujis.c | 10 +-
strings/ctype-utf8.c | 68 +-
strings/ctype-win1250ch.c | 2 +-
strings/ctype.c | 2 +-
strings/decimal.c | 37 +-
strings/do_ctype.c | 2 +-
strings/dtoa.c | 2 +-
strings/dump_map.c | 2 +-
strings/json_lib.c | 29 +-
strings/my_strchr.c | 2 +-
strings/my_strtoll10.c | 17 +-
strings/my_vsnprintf.c | 2 +-
strings/strcoll.ic | 2 +-
strings/strings_def.h | 2 +-
strings/strmake.c | 2 +-
strings/strmov_overlapp.c | 2 +-
strings/t_ctype.h | 2 +-
strings/uca-dump.c | 2 +-
strings/uctypedump.c | 2 +-
strings/utr11-dump.c | 2 +-
strings/xml.c | 2 +-
support-files/CMakeLists.txt | 27 +-
support-files/MacOSX/Description.plist.sh | 2 +-
support-files/MacOSX/Info.plist.sh | 2 +-
support-files/MacOSX/MySQLCOM | 2 +-
support-files/MacOSX/StartupItem.Description.plist | 2 +-
support-files/MacOSX/StartupItem.Info.plist | 2 +-
support-files/MacOSX/StartupItem.postinstall | 2 +-
support-files/MacOSX/StartupParameters.plist.sh | 2 +-
support-files/MacOSX/mwar-wrapper | 2 +-
support-files/MacOSX/mwcc-wrapper | 2 +-
support-files/MacOSX/postflight.sh | 2 +-
support-files/MacOSX/preflight.sh | 2 +-
support-files/dtrace/locktime.d | 2 +-
support-files/dtrace/query-execandqc.d | 2 +-
support-files/dtrace/query-filesort-time.d | 2 +-
support-files/dtrace/query-network-time.d | 2 +-
support-files/dtrace/query-parse-time.d | 2 +-
support-files/dtrace/query-rowops.d | 2 +-
support-files/dtrace/query-time.d | 2 +-
support-files/dtrace/statement-time.d | 2 +-
support-files/dtrace/statement-type-aggregate.d | 2 +-
support-files/mariadb.service.in | 35 +-
support-files/mariadb@.service.in | 48 +-
support-files/mysql-log-rotate.sh | 10 +-
support-files/mysql.m4 | 2 +-
support-files/mysql.server.sh | 38 +-
support-files/policy/apparmor/usr.sbin.mysqld | 1 +
support-files/policy/selinux/mariadb-server.fc | 3 +-
support-files/policy/selinux/mariadb-server.te | 2 +-
support-files/rpm/plugin-postin.sh | 3 +
support-files/rpm/server-postin.sh | 11 +-
support-files/rpm/server-posttrans.sh | 10 +
support-files/rpm/server-postun.sh | 9 +-
support-files/rpm/server-preun.sh | 18 +-
support-files/use_galera_new_cluster.conf | 3 +
support-files/wsrep.cnf.sh | 7 +-
tests/CMakeLists.txt | 2 +-
tests/big_record.pl | 2 +-
tests/bug25714.c | 2 +-
tests/connect_test.c | 2 +-
tests/deadlock_test.c | 2 +-
tests/drop_test.pl | 2 +-
tests/export.pl | 2 +-
tests/fork2_test.pl | 2 +-
tests/fork_big.pl | 2 +-
tests/fork_big2.pl | 2 +-
tests/grant.pl | 2 +-
tests/index_corrupt.pl | 2 +-
tests/insert_and_repair.pl | 2 +-
tests/insert_test.c | 2 +-
tests/list_test.c | 2 +-
tests/lock_test.pl | 2 +-
tests/mysql_client_fw.c | 6 +-
tests/mysql_client_test.c | 199 +-
tests/pmail.pl | 2 +-
tests/rename_test.pl | 2 +-
tests/select_test.c | 2 +-
tests/showdb_test.c | 2 +-
tests/ssl_test.c | 2 +-
tests/table_types.pl | 2 +-
tests/test_delayed_insert.pl | 2 +-
tests/thread_test.c | 2 +-
tests/truncate.pl | 2 +-
unittest/examples/CMakeLists.txt | 2 +-
unittest/examples/core-t.c | 2 +-
unittest/examples/no_plan-t.c | 2 +-
unittest/examples/simple-t.c | 2 +-
unittest/examples/skip-t.c | 2 +-
unittest/examples/skip_all-t.c | 2 +-
unittest/examples/todo-t.c | 2 +-
unittest/json_lib/CMakeLists.txt | 2 +-
unittest/my_decimal/CMakeLists.txt | 2 +-
unittest/my_decimal/my_decimal-t.cc | 2 +-
unittest/mysys/CMakeLists.txt | 6 +-
unittest/mysys/aes-t.c | 2 +-
unittest/mysys/base64-t.c | 2 +-
unittest/mysys/bitmap-t.c | 2 +-
unittest/mysys/byte_order-t.c | 102 +
unittest/mysys/dynstring-t.c | 2 +-
unittest/mysys/lf-t.c | 7 +-
unittest/mysys/my_atomic-t.c | 23 +-
unittest/mysys/my_delete-t.c | 2 +-
unittest/mysys/my_malloc-t.c | 2 +-
unittest/mysys/my_rdtsc-t.c | 2 +-
unittest/mysys/my_vsnprintf-t.c | 2 +-
unittest/mysys/thr_template.c | 33 +-
unittest/mysys/waiting_threads-t.c | 6 +-
unittest/mytap/CMakeLists.txt | 2 +-
unittest/mytap/t/basic-t.c | 2 +-
unittest/mytap/tap.c | 2 +-
unittest/mytap/tap.h | 2 +-
unittest/sql/CMakeLists.txt | 4 +-
unittest/sql/explain_filename-t.cc | 2 +-
unittest/sql/mf_iocache-t.cc | 271 +-
unittest/sql/my_apc-t.cc | 2 +-
unittest/strings/strings-t.c | 2 +-
unittest/unit.pl | 2 +-
vio/CMakeLists.txt | 2 +-
vio/test-ssl.c | 2 +-
vio/test-sslclient.c | 2 +-
vio/test-sslserver.c | 2 +-
vio/vio.c | 2 +-
vio/vio_priv.h | 2 +-
vio/viopipe.c | 2 +-
vio/vioshm.c | 2 +-
vio/viosocket.c | 2 +-
vio/viossl.c | 14 +-
vio/viosslfactories.c | 3 +-
vio/viotest-ssl.c | 2 +-
vio/viotest-sslconnect.cc | 2 +-
vio/viotest.cc | 2 +-
win/create_def_file.js | 2 +-
win/packaging/CMakeLists.txt | 19 +-
win/packaging/COPYING.rtf | 4 +-
win/packaging/CPackWixConfig.cmake | 2 +-
win/packaging/CPackZIPConfig.cmake | 11 +
win/packaging/CPackZIPDebugInfoConfig.cmake | 6 +
win/packaging/ca/CMakeLists.txt | 2 +-
win/packaging/ca/CustomAction.cpp | 2 +-
win/packaging/create_msi.cmake.in | 5 +-
win/packaging/heidisql.cmake | 9 +-
win/packaging/heidisql.wxi.in | 20 +-
wsrep/CMakeLists.txt | 2 +-
wsrep/wsrep_api.h | 2 +-
wsrep/wsrep_dummy.c | 2 +-
wsrep/wsrep_gtid.c | 2 +-
wsrep/wsrep_loader.c | 2 +-
wsrep/wsrep_uuid.c | 2 +-
zlib/CMakeLists.txt | 155 +-
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 +-
7744 files changed, 199458 insertions(+), 295897 deletions(-)
diff --cc mysql-test/r/join_cache.result
index 4f57266,e41c79a..af5e0af
--- a/mysql-test/r/join_cache.result
+++ b/mysql-test/r/join_cache.result
@@@ -6015,67 -6053,5 +6053,67 @@@ set join_buffer_size = 222222208
select f2 from t2,t1 where f2 = 0;
f2
drop table t1, t2;
- set join_buffer_size = default;
+ set join_buffer_size=@save_join_buffer_size;
+#
+# MDEV-15357: join cache denied: optimize_join_buffer_size=off and
+# join_buffer_size > join_buffer_space_limit
+#
+CREATE TABLE t1 (
+id varchar(30) NOT NULL,
+PRIMARY KEY (id)
+) ENGINE=MyISAM;
+INSERT INTO t1 VALUES
+('ZSBILL1000'),('ZSBILL1010'),('ZSBILL1020'),('ZSBILL1030'),('ZSBILL2000'),
+('ZSBILL2010'),('ZSBILL2020'),('ZSBILL6040'),('ZSBILL6050'),('ZSBILL7000');
+CREATE TABLE t2 (
+id varchar(30) NOT NULL,
+a char(1) NOT NULL DEFAULT '3',
+PRIMARY KEY (id,a)
+) ENGINE=MyISAM;
+INSERT INTO t2(id) VALUES
+('ZSBILL1000'),('ZSBILL1010'),('ZSBILL1020'),('ZSBILL1030'),('ZSBILL2000'),
+('ZSBILL2010'),('ZSBILL2020'),('ZSBILL2030'),('ZSBILL3000');
+SET join_buffer_size=30000000;
+SET join_cache_level=4;
+SELECT @@join_buffer_space_limit;
+@@join_buffer_space_limit
+2097152
+set @tmp_optimizer_switch=@@optimizer_switch;
+set optimizer_switch='optimize_join_buffer_size=on';
+EXPLAIN EXTENDED SELECT t1.id, t2.id FROM t1,t2 WHERE t1.id = t2.id;
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 SIMPLE t2 index PRIMARY PRIMARY 33 NULL 9 100.00 Using index
+1 SIMPLE t1 hash_index PRIMARY #hash#PRIMARY:PRIMARY 32:32 test.t2.id 10 10.00 Using index; Using join buffer (flat, BNLH join)
+Warnings:
+Note 1003 select `test`.`t1`.`id` AS `id`,`test`.`t2`.`id` AS `id` from `test`.`t1` join `test`.`t2` where `test`.`t1`.`id` = `test`.`t2`.`id`
+SELECT t1.id, t2.id FROM t1,t2 WHERE t1.id = t2.id;
+id id
+ZSBILL1000 ZSBILL1000
+ZSBILL1010 ZSBILL1010
+ZSBILL1020 ZSBILL1020
+ZSBILL1030 ZSBILL1030
+ZSBILL2000 ZSBILL2000
+ZSBILL2010 ZSBILL2010
+ZSBILL2020 ZSBILL2020
+set @tmp_optimizer_switch=@@optimizer_switch;
+set optimizer_switch='optimize_join_buffer_size=off';
+EXPLAIN EXTENDED SELECT t1.id, t2.id FROM t1,t2 WHERE t1.id = t2.id;
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 SIMPLE t2 index PRIMARY PRIMARY 33 NULL 9 100.00 Using index
+1 SIMPLE t1 eq_ref PRIMARY PRIMARY 32 test.t2.id 1 100.00 Using index
+Warnings:
+Note 1003 select `test`.`t1`.`id` AS `id`,`test`.`t2`.`id` AS `id` from `test`.`t1` join `test`.`t2` where `test`.`t1`.`id` = `test`.`t2`.`id`
+SELECT t1.id, t2.id FROM t1,t2 WHERE t1.id = t2.id;
+id id
+ZSBILL1000 ZSBILL1000
+ZSBILL1010 ZSBILL1010
+ZSBILL1020 ZSBILL1020
+ZSBILL1030 ZSBILL1030
+ZSBILL2000 ZSBILL2000
+ZSBILL2010 ZSBILL2010
+ZSBILL2020 ZSBILL2020
+SET join_buffer_size=default;
+SET join_cache_level=default;
+set optimizer_switch= @tmp_optimizer_switch;
+DROP TABLE t1,t2;
set @@optimizer_switch=@save_optimizer_switch;
diff --cc mysql-test/t/join_cache.test
index 5356341,9576d59..a7866e4
--- a/mysql-test/t/join_cache.test
+++ b/mysql-test/t/join_cache.test
@@@ -3955,55 -4012,7 +4012,54 @@@ insert t2 values (4,1,1), (6,1,1)
set join_buffer_size = 222222208;
select f2 from t2,t1 where f2 = 0;
drop table t1, t2;
- set join_buffer_size = default;
+ set join_buffer_size=@save_join_buffer_size;
+--echo #
+--echo # MDEV-15357: join cache denied: optimize_join_buffer_size=off and
+--echo # join_buffer_size > join_buffer_space_limit
+--echo #
+
+CREATE TABLE t1 (
+ id varchar(30) NOT NULL,
+ PRIMARY KEY (id)
+) ENGINE=MyISAM;
+INSERT INTO t1 VALUES
+('ZSBILL1000'),('ZSBILL1010'),('ZSBILL1020'),('ZSBILL1030'),('ZSBILL2000'),
+('ZSBILL2010'),('ZSBILL2020'),('ZSBILL6040'),('ZSBILL6050'),('ZSBILL7000');
+
+CREATE TABLE t2 (
+ id varchar(30) NOT NULL,
+ a char(1) NOT NULL DEFAULT '3',
+ PRIMARY KEY (id,a)
+) ENGINE=MyISAM;
+INSERT INTO t2(id) VALUES
+('ZSBILL1000'),('ZSBILL1010'),('ZSBILL1020'),('ZSBILL1030'),('ZSBILL2000'),
+('ZSBILL2010'),('ZSBILL2020'),('ZSBILL2030'),('ZSBILL3000');
+
+SET join_buffer_size=30000000;
+SET join_cache_level=4;
+
+SELECT @@join_buffer_space_limit;
+
+let $q=
+SELECT t1.id, t2.id FROM t1,t2 WHERE t1.id = t2.id;
+
+set @tmp_optimizer_switch=@@optimizer_switch;
+set optimizer_switch='optimize_join_buffer_size=on';
+eval EXPLAIN EXTENDED $q;
+eval $q;
+
+set @tmp_optimizer_switch=@@optimizer_switch;
+set optimizer_switch='optimize_join_buffer_size=off';
+eval EXPLAIN EXTENDED $q;
+eval $q;
+
+SET join_buffer_size=default;
+SET join_cache_level=default;
+
+set optimizer_switch= @tmp_optimizer_switch;
+
+DROP TABLE t1,t2;
+
- # The following command must be the last one the file
- # this must be the last command in the file
+ # The following command must be the last one in the file
set @@optimizer_switch=@save_optimizer_switch;
1
0
778e96749bc: MDEV-20923:UBSAN: member access within address … which does not point to an object of type 'xid_count_per_binlog'
by sujatha 23 Jan '20
by sujatha 23 Jan '20
23 Jan '20
revision-id: 778e96749bcadc5528bb7f214a711272f7413b96 (mariadb-10.1.43-66-g778e96749bc)
parent(s): 982294ac1680938ac9223fb64a64e21f0cbc322a
author: Sujatha
committer: Sujatha
timestamp: 2020-01-23 16:17:55 +0530
message:
MDEV-20923:UBSAN: member access within address … which does not point to an object of type 'xid_count_per_binlog'
Problem:
-------
Accessing a member within 'xid_count_per_binlog' structure results in
following error when 'UBSAN' is enabled.
member access within address 0xXXX which does not point to an object of type
'xid_count_per_binlog'
Analysis:
---------
The problem appears to be that no constructor for 'xid_count_per_binlog' is
being called, and thus the vtable will not be initialized.
Fix:
---
Defined a parameterized constructor for 'xid_count_per_binlog' class.
---
sql/log.cc | 27 +++++++++++----------------
sql/log.h | 13 ++++++++++++-
2 files changed, 23 insertions(+), 17 deletions(-)
diff --git a/sql/log.cc b/sql/log.cc
index acf1f8f8a9c..0efef6d1e29 100644
--- a/sql/log.cc
+++ b/sql/log.cc
@@ -3216,7 +3216,7 @@ void MYSQL_BIN_LOG::cleanup()
DBUG_ASSERT(!binlog_xid_count_list.head());
WSREP_XID_LIST_ENTRY("MYSQL_BIN_LOG::cleanup(): Removing xid_list_entry "
"for %s (%lu)", b);
- my_free(b);
+ delete b;
}
mysql_mutex_destroy(&LOCK_log);
@@ -3580,17 +3580,9 @@ bool MYSQL_BIN_LOG::open(const char *log_name,
*/
uint off= dirname_length(log_file_name);
uint len= strlen(log_file_name) - off;
- char *entry_mem, *name_mem;
- if (!(new_xid_list_entry = (xid_count_per_binlog *)
- my_multi_malloc(MYF(MY_WME),
- &entry_mem, sizeof(xid_count_per_binlog),
- &name_mem, len,
- NULL)))
+ new_xid_list_entry= new xid_count_per_binlog(log_file_name+off, (int)len);
+ if (!new_xid_list_entry)
goto err;
- memcpy(name_mem, log_file_name+off, len);
- new_xid_list_entry->binlog_name= name_mem;
- new_xid_list_entry->binlog_name_len= len;
- new_xid_list_entry->xid_count= 0;
/*
Find the name for the Initial binlog checkpoint.
@@ -3607,7 +3599,10 @@ bool MYSQL_BIN_LOG::open(const char *log_name,
mysql_mutex_unlock(&LOCK_xid_list);
if (!b)
b= new_xid_list_entry;
- strmake(buf, b->binlog_name, b->binlog_name_len);
+ if (b->binlog_name)
+ strmake(buf, b->binlog_name, b->binlog_name_len);
+ else
+ goto err;
Binlog_checkpoint_log_event ev(buf, len);
DBUG_EXECUTE_IF("crash_before_write_checkpoint_event",
flush_io_cache(&log_file);
@@ -3711,7 +3706,7 @@ bool MYSQL_BIN_LOG::open(const char *log_name,
{
WSREP_XID_LIST_ENTRY("MYSQL_BIN_LOG::open(): Removing xid_list_entry for "
"%s (%lu)", b);
- my_free(binlog_xid_count_list.get());
+ delete binlog_xid_count_list.get();
}
mysql_cond_broadcast(&COND_xid_list);
WSREP_XID_LIST_ENTRY("MYSQL_BIN_LOG::open(): Adding new xid_list_entry for "
@@ -3758,7 +3753,7 @@ Turning logging off for the whole duration of the MySQL server process. \
To turn it on again: fix the cause, \
shutdown the MySQL server and restart it.", name, errno);
if (new_xid_list_entry)
- my_free(new_xid_list_entry);
+ delete new_xid_list_entry;
if (file >= 0)
mysql_file_close(file, MYF(0));
close(LOG_CLOSE_INDEX);
@@ -4252,7 +4247,7 @@ bool MYSQL_BIN_LOG::reset_logs(THD *thd, bool create_new_log,
DBUG_ASSERT(b->xid_count == 0);
WSREP_XID_LIST_ENTRY("MYSQL_BIN_LOG::reset_logs(): Removing "
"xid_list_entry for %s (%lu)", b);
- my_free(binlog_xid_count_list.get());
+ delete binlog_xid_count_list.get();
}
mysql_cond_broadcast(&COND_xid_list);
reset_master_pending--;
@@ -9736,7 +9731,7 @@ TC_LOG_BINLOG::mark_xid_done(ulong binlog_id, bool write_checkpoint)
break;
WSREP_XID_LIST_ENTRY("TC_LOG_BINLOG::mark_xid_done(): Removing "
"xid_list_entry for %s (%lu)", b);
- my_free(binlog_xid_count_list.get());
+ delete binlog_xid_count_list.get();
}
mysql_mutex_unlock(&LOCK_xid_list);
diff --git a/sql/log.h b/sql/log.h
index b4c9b24a3a9..277e5c6f69c 100644
--- a/sql/log.h
+++ b/sql/log.h
@@ -587,7 +587,18 @@ class MYSQL_BIN_LOG: public TC_LOG, private MYSQL_LOG
long xid_count;
/* For linking in requests to the binlog background thread. */
xid_count_per_binlog *next_in_queue;
- xid_count_per_binlog(); /* Give link error if constructor used. */
+ xid_count_per_binlog(char *log_file_name, uint log_file_name_len)
+ :binlog_id(0), xid_count(0)
+ {
+ binlog_name_len= log_file_name_len;
+ binlog_name= (char *) my_malloc(binlog_name_len, MYF(MY_ZEROFILL));
+ if (binlog_name)
+ memcpy(binlog_name, log_file_name, binlog_name_len);
+ }
+ ~xid_count_per_binlog()
+ {
+ my_free(binlog_name);
+ }
};
I_List<xid_count_per_binlog> binlog_xid_count_list;
mysql_mutex_t LOCK_binlog_background_thread;
1
0
d9716cfadb8: MDEV-20923:UBSAN: member access within address … which does not point to an object of type 'xid_count_per_binlog'
by sujatha 23 Jan '20
by sujatha 23 Jan '20
23 Jan '20
revision-id: d9716cfadb8cd3448f25d8b411451f87064cecaf (mariadb-10.1.43-66-gd9716cfadb8)
parent(s): 982294ac1680938ac9223fb64a64e21f0cbc322a
author: Sujatha
committer: Sujatha
timestamp: 2020-01-23 16:00:41 +0530
message:
MDEV-20923:UBSAN: member access within address … which does not point to an object of type 'xid_count_per_binlog'
Problem:
-------
Accessing a member within 'xid_count_per_binlog' structure results in
following error when 'UBSAN' is enabled.
member access within address 0xXXX which does not point to an object of type
'xid_count_per_binlog'
Analysis:
---------
The problem appears to be that no constructor for 'xid_count_per_binlog' is
being called, and thus the vtable will not be initialized.
Fix:
---
Defined a parameterized constructor for 'xid_count_per_binlog' class.
---
sql/log.cc | 27 +++++++++++----------------
sql/log.h | 14 +++++++++++++-
2 files changed, 24 insertions(+), 17 deletions(-)
diff --git a/sql/log.cc b/sql/log.cc
index acf1f8f8a9c..0efef6d1e29 100644
--- a/sql/log.cc
+++ b/sql/log.cc
@@ -3216,7 +3216,7 @@ void MYSQL_BIN_LOG::cleanup()
DBUG_ASSERT(!binlog_xid_count_list.head());
WSREP_XID_LIST_ENTRY("MYSQL_BIN_LOG::cleanup(): Removing xid_list_entry "
"for %s (%lu)", b);
- my_free(b);
+ delete b;
}
mysql_mutex_destroy(&LOCK_log);
@@ -3580,17 +3580,9 @@ bool MYSQL_BIN_LOG::open(const char *log_name,
*/
uint off= dirname_length(log_file_name);
uint len= strlen(log_file_name) - off;
- char *entry_mem, *name_mem;
- if (!(new_xid_list_entry = (xid_count_per_binlog *)
- my_multi_malloc(MYF(MY_WME),
- &entry_mem, sizeof(xid_count_per_binlog),
- &name_mem, len,
- NULL)))
+ new_xid_list_entry= new xid_count_per_binlog(log_file_name+off, (int)len);
+ if (!new_xid_list_entry)
goto err;
- memcpy(name_mem, log_file_name+off, len);
- new_xid_list_entry->binlog_name= name_mem;
- new_xid_list_entry->binlog_name_len= len;
- new_xid_list_entry->xid_count= 0;
/*
Find the name for the Initial binlog checkpoint.
@@ -3607,7 +3599,10 @@ bool MYSQL_BIN_LOG::open(const char *log_name,
mysql_mutex_unlock(&LOCK_xid_list);
if (!b)
b= new_xid_list_entry;
- strmake(buf, b->binlog_name, b->binlog_name_len);
+ if (b->binlog_name)
+ strmake(buf, b->binlog_name, b->binlog_name_len);
+ else
+ goto err;
Binlog_checkpoint_log_event ev(buf, len);
DBUG_EXECUTE_IF("crash_before_write_checkpoint_event",
flush_io_cache(&log_file);
@@ -3711,7 +3706,7 @@ bool MYSQL_BIN_LOG::open(const char *log_name,
{
WSREP_XID_LIST_ENTRY("MYSQL_BIN_LOG::open(): Removing xid_list_entry for "
"%s (%lu)", b);
- my_free(binlog_xid_count_list.get());
+ delete binlog_xid_count_list.get();
}
mysql_cond_broadcast(&COND_xid_list);
WSREP_XID_LIST_ENTRY("MYSQL_BIN_LOG::open(): Adding new xid_list_entry for "
@@ -3758,7 +3753,7 @@ Turning logging off for the whole duration of the MySQL server process. \
To turn it on again: fix the cause, \
shutdown the MySQL server and restart it.", name, errno);
if (new_xid_list_entry)
- my_free(new_xid_list_entry);
+ delete new_xid_list_entry;
if (file >= 0)
mysql_file_close(file, MYF(0));
close(LOG_CLOSE_INDEX);
@@ -4252,7 +4247,7 @@ bool MYSQL_BIN_LOG::reset_logs(THD *thd, bool create_new_log,
DBUG_ASSERT(b->xid_count == 0);
WSREP_XID_LIST_ENTRY("MYSQL_BIN_LOG::reset_logs(): Removing "
"xid_list_entry for %s (%lu)", b);
- my_free(binlog_xid_count_list.get());
+ delete binlog_xid_count_list.get();
}
mysql_cond_broadcast(&COND_xid_list);
reset_master_pending--;
@@ -9736,7 +9731,7 @@ TC_LOG_BINLOG::mark_xid_done(ulong binlog_id, bool write_checkpoint)
break;
WSREP_XID_LIST_ENTRY("TC_LOG_BINLOG::mark_xid_done(): Removing "
"xid_list_entry for %s (%lu)", b);
- my_free(binlog_xid_count_list.get());
+ delete binlog_xid_count_list.get();
}
mysql_mutex_unlock(&LOCK_xid_list);
diff --git a/sql/log.h b/sql/log.h
index b4c9b24a3a9..e69c9c39eaf 100644
--- a/sql/log.h
+++ b/sql/log.h
@@ -587,7 +587,19 @@ class MYSQL_BIN_LOG: public TC_LOG, private MYSQL_LOG
long xid_count;
/* For linking in requests to the binlog background thread. */
xid_count_per_binlog *next_in_queue;
- xid_count_per_binlog(); /* Give link error if constructor used. */
+ xid_count_per_binlog(char *log_file_name, uint log_file_name_len)
+ :binlog_name(log_file_name), binlog_name_len(log_file_name_len),
+ binlog_id(0), xid_count(0)
+ {
+ binlog_name_len= log_file_name_len;
+ binlog_name= (char *) my_malloc(binlog_name_len, MYF(MY_ZEROFILL));
+ if (binlog_name)
+ memcpy(binlog_name, log_file_name, binlog_name_len);
+ }
+ ~xid_count_per_binlog()
+ {
+ my_free(binlog_name);
+ }
};
I_List<xid_count_per_binlog> binlog_xid_count_list;
mysql_mutex_t LOCK_binlog_background_thread;
1
0
[Commits] 43f27ae4778: MDEV-21490: binlog tests fail with valgrind: Conditional jump or move depends on uninitialised value in sql_ex_info::init
by sujatha 23 Jan '20
by sujatha 23 Jan '20
23 Jan '20
revision-id: 43f27ae4778b3e7be86897e49c182dc05080fd88 (mariadb-10.1.43-66-g43f27ae4778)
parent(s): 982294ac1680938ac9223fb64a64e21f0cbc322a
author: Sujatha
committer: Sujatha
timestamp: 2020-01-23 11:57:46 +0530
message:
MDEV-21490: binlog tests fail with valgrind: Conditional jump or move depends on uninitialised value in sql_ex_info::init
Problem:
=======
P1) Conditional jump or move depends on uninitialised value(s)
sql_ex_info::init(char const*, char const*, bool) (log_event.cc:3083)
code: All the following variables are not initialized.
----
return ((cached_new_format != -1) ? cached_new_format :
(cached_new_format=(field_term_len > 1 || enclosed_len > 1 ||
line_term_len > 1 || line_start_len > 1 || escaped_len > 1)));
P2) Conditional jump or move depends on uninitialised value(s)
Rows_log_event::Rows_log_event(char const*, unsigned
int, Format_description_log_event const*) (log_event.cc:9571)
Code: Uninitialized values is reported for 'var_header_len' variable.
----
if (var_header_len < 2 || event_len < static_cast<unsigned
int>(var_header_len + (post_start - buf)))
P3) Conditional jump or move depends on uninitialised value(s)
Table_map_log_event::pack_info(Protocol*) (log_event.cc:11553)
code:'m_table_id' is uninitialized.
----
void Table_map_log_event::pack_info(Protocol *protocol)
...
size_t bytes= my_snprintf(buf, sizeof(buf), "table_id: %lu (%s.%s)",
m_table_id, m_dbnam, m_tblnam);
Fix:
===
P1 - Fix)
Initialize cached_new_format,field_term_len, enclosed_len, line_term_len,
line_start_len, escaped_len members in default constructor.
P2 - Fix)
"var_header_len" is initialized by reading the event buffer. In case of an
invalid event the buffer will contain invalid data. Hence added a check to
validate the event data. If event_len is smaller than valid header length
return immediately.
P3 - Fix)
'm_table_id' within Table_map_log_event is initialized by reading data from
the event buffer. Use 'VALIDATE_BYTES_READ' macro to validate the current
state of the buffer. If it is invalid return immediately.
---
sql/log_event.cc | 7 +++++++
sql/log_event.h | 9 ++++++++-
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/sql/log_event.cc b/sql/log_event.cc
index e8881c77f2b..9924b9a0493 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -9535,6 +9535,12 @@ Rows_log_event::Rows_log_event(const char *buf, uint event_len,
uint8 const post_header_len= description_event->post_header_len[event_type-1];
+ if (event_len < (uint)(common_header_len + post_header_len))
+ {
+ m_cols.bitmap= 0;
+ DBUG_VOID_RETURN;
+ }
+
DBUG_PRINT("enter",("event_len: %u common_header_len: %d "
"post_header_len: %d",
event_len, common_header_len,
@@ -11043,6 +11049,7 @@ Table_map_log_event::Table_map_log_event(const char *buf, uint event_len,
const char *post_start= buf + common_header_len;
post_start+= TM_MAPID_OFFSET;
+ VALIDATE_BYTES_READ(post_start, buf, event_len);
if (post_header_len == 6)
{
/* Master is of an intermediate source tree before 5.1.4. Id is 4 bytes */
diff --git a/sql/log_event.h b/sql/log_event.h
index 2c8dc3d7353..04fce65faeb 100644
--- a/sql/log_event.h
+++ b/sql/log_event.h
@@ -2057,7 +2057,14 @@ class Query_log_event: public Log_event
****************************************************************************/
struct sql_ex_info
{
- sql_ex_info() {} /* Remove gcc warning */
+ sql_ex_info():
+ cached_new_format(-1),
+ field_term_len(0),
+ enclosed_len(0),
+ line_term_len(0),
+ line_start_len(0),
+ escaped_len(0)
+ {} /* Remove gcc warning */
const char* field_term;
const char* enclosed;
const char* line_term;
1
0
[Commits] 9f831a6cfff: MDEV-21263: Allow packed values of non-sorted fields in the sort buffer
by Varun 20 Jan '20
by Varun 20 Jan '20
20 Jan '20
revision-id: 9f831a6cfff9e7591e012b733d86c7162d33058f (mariadb-10.5.0-119-g9f831a6cfff)
parent(s): 6f65931f889cf920bf52c2debeadc9f559ff687b
author: Varun Gupta
committer: Varun Gupta
timestamp: 2020-01-20 12:14:42 +0530
message:
MDEV-21263: Allow packed values of non-sorted fields in the sort buffer
This task deals with packing the non-sorted fields (or addon fields).
This would lead to efficient usage of the memory allocated for the sort buffer.
The changes brought by this feature are
1) Sort buffers would have records of variable length
2) Each record in the sort buffer would be stored like
<sort_key1><sort_key2>....<addon_length><null_bytes><field1><field2>....
addon_length is the extra bytes that are required to store the variable
length of addon field across different records.
3) Changes in rr_unpack_from_buffer and rr_from_tempfile to take into account
the variable length of records.
Ported WL#1509 Pack values of non-sorted fields in the sort buffer from
MySQL by Tor Didriksen
---
mysql-test/main/order_by_pack_big.result | 328 ++++++++++
mysql-test/main/order_by_pack_big.test | 133 ++++
sql/bounded_queue.h | 4 +-
sql/field.h | 2 +
sql/filesort.cc | 700 +++++++++++++--------
sql/filesort.h | 83 ++-
sql/filesort_utils.cc | 64 +-
sql/filesort_utils.h | 214 ++++++-
sql/records.cc | 141 ++++-
sql/records.h | 14 +-
sql/sql_array.h | 4 +
sql/sql_select.cc | 4 +-
sql/sql_sort.h | 291 ++++++++-
sql/uniques.cc | 80 ++-
sql/uniques.h | 2 +-
.../mysql-test/connect/r/mysql_index.result | 4 +-
.../connect/mysql-test/connect/t/mysql_index.test | 2 +-
17 files changed, 1636 insertions(+), 434 deletions(-)
diff --git a/mysql-test/main/order_by_pack_big.result b/mysql-test/main/order_by_pack_big.result
new file mode 100644
index 00000000000..4ecca9503f2
--- /dev/null
+++ b/mysql-test/main/order_by_pack_big.result
@@ -0,0 +1,328 @@
+set @save_rand_seed1= @@RAND_SEED1;
+set @save_rand_seed2= @@RAND_SEED2;
+set @@RAND_SEED1=810763568, @@RAND_SEED2=600681772;
+create table t1(a int);
+insert into t1 select seq from seq_1_to_10000 order by rand();
+#
+# parameters:
+# mean mean for the column to be considered
+# max_val max_value for the column to be considered
+#
+# This function generate a sample of a normal distribution
+# This function return a point
+# of the normal distribution with a given mean.
+#
+CREATE FUNCTION
+generate_normal_distribution_sample(mean DOUBLE, max_val DOUBLE)RETURNS DOUBLE
+BEGIN
+DECLARE z DOUBLE DEFAULT 0;
+SET z= (rand() + rand() + rand() + rand() + rand() + rand())/6;
+SET z= 2*(max_val-mean)*z;
+SET z= z + mean - (max_val-mean);
+return z;
+END|
+#
+# parameters:
+# len length of the random string to be generated
+#
+# This function generates a random string for the length passed
+# as an argument with characters in the range of [A,Z]
+#
+CREATE FUNCTION generate_random_string(len INT) RETURNS varchar(128)
+BEGIN
+DECLARE str VARCHAR(256) DEFAULT '';
+DECLARE x INT DEFAULT 0;
+WHILE (len > 0) DO
+SET x =round(rand()*25);
+SET str= CONCAT(str, CHAR(65 + x));
+SET len= len-1;
+END WHILE;
+RETURN str;
+END|
+#
+# parameters:
+# mean mean for the column to be considered
+# min_val min_value for the column to be considered
+# max_val max_value for the column to be considered
+#
+# This function generate a normal distribution sample in the range of
+# [min_val, max_val]
+#
+CREATE FUNCTION
+clipped_normal_distribution(mean DOUBLE, min_val DOUBLE, max_val DOUBLE)
+RETURNS INT
+BEGIN
+DECLARE r DOUBLE DEFAULT 0;
+WHILE 1=1 DO
+set r= generate_normal_distribution_sample(mean, max_val);
+IF (r >= min_val AND r <= max_val) THEN
+RETURN round(r);
+end if;
+END WHILE;
+RETURN 0;
+END|
+create table t2 (id INT NOT NULL, a INT, b int);
+insert into t2
+select a, clipped_normal_distribution(12, 0, 64),
+clipped_normal_distribution(32, 0, 128)
+from t1;
+CREATE TABLE t3(
+id INT NOT NULL,
+names VARCHAR(64),
+address VARCHAR(128),
+PRIMARY KEY (id)
+);
+#
+# table t3 stores random strings calculated from the length stored in
+# table t2
+#
+insert into t3
+select id, generate_random_string(a), generate_random_string(b) from t2;
+#
+# All records fit in memory
+#
+set sort_buffer_size=262144*10;
+flush status;
+select id DIV 100 as x,
+MD5(group_concat(substring(names,1,3), substring(address,1,3)
+order by substring(names,1,3), substring(address,1,3)))
+FROM t3
+GROUP BY x;
+x MD5(group_concat(substring(names,1,3), substring(address,1,3)
+order by substring(names,1,3), substring(address,1,3)))
+0 c2ecc41f0e37144931dbd51c286d3169
+1 65104765025a5550d2070c320c896660
+2 d2d10899abcc3be7de55092b260afbfa
+3 a44e5be670968b49b0cb1b5665f53cc5
+4 c906c31cc6f40c63f1901d257680d71f
+5 07ded386a3d789b64462eb9a9525aee1
+6 760ff88f2409ccb3319c57c3a38fe7d2
+7 320d65f718acf0876c0dbda053129d24
+8 73ace6baf48996f86b741105957ce46b
+9 cf80b0efda4108abd584ba47fea0158d
+10 6f8db75fbae31d381472c16d91c1f52b
+11 762315d05abf1d8589eb15238d03d0f3
+12 2948a913b6dfea8499605ac342c897a1
+13 789c300f6576c27d7f9ed5694b0d8fba
+14 8c83fad606cb84de677520dc6fb895f2
+15 37f499f1e50d6fb5ecb09e78d1e2e692
+16 2a953b23c198cf922a58d5ea5e12db0e
+17 ebc1145c9f4324194fc8d85d6e29ed1b
+18 2662c807f21177eb6fcdaf4688641819
+19 a423cee02d23022f9e2ffbd8a3627a7c
+20 0418584d7634ffde4f6988d93f5e2a0f
+21 f832993560565217e6dd30f8300c1c11
+22 b2ffce93f4fc478e0c1ca96fd4accee3
+23 85c7299ac9207a88b6fd9bb69fbf43aa
+24 ab2b9e611e3a8c2f470b05552cb82a4d
+25 2cb134bd2ecf3d07b702ac1f3f171a9c
+26 2e60abcf5605e65075b7e7587f2294a5
+27 705872095781fd7a87882606bb8ab423
+28 78a7e8ab78c35dae4ddf4c4f593c8cf4
+29 943c1fbf466257bb7a4d7af6b6a19165
+30 691c2ce1c6d20fdcfbf65b132c80b7a0
+31 4854dd9d208e0b45cb2e5b6d0fefe6c8
+32 f43993c3d59c03c5cf4c8e2a1ab95533
+33 4c5d5e658aba5bd8aa770a86bff05200
+34 f531b17fba7abce233f95941b42aad58
+35 f44e1f990acfcd7902c5743409412563
+36 a7d39877de8502cce6ffbc4809749eba
+37 49062ade86448805b6a222707bf45ad0
+38 c94368aa13843cc892b75eb71683aaba
+39 483247b82751113caab96ea183a9ca3b
+40 f6cf9046d05c13ae88ba7a5676b81f89
+41 1ca6c62cd730db36d49daca2d1b0ec7c
+42 2b519acd4877e780e7200659d01d43af
+43 eb59acd9a1bf374468b4986325ec2b83
+44 20137caed121517632937703d1011c18
+45 72437c79e41164c2b759702cbb36b179
+46 3c5479be06f2262e8867e967299bbb3b
+47 2084e6be3e7b18019bd874cded1c8bd6
+48 efc7de387fa2399a35a59318052a06f4
+49 8a734e334febc6f2ca45db6b846be5d4
+50 f53fafc0e8d431be62de75e0f16ee745
+51 53a0f5f1b88776c84fe22e2c3254444c
+52 9b53bc61795233850e5d958a9ba415f5
+53 a703edddf3cedbca2d331c96199cf663
+54 0e05181a4a223f43e36742021ac012ad
+55 04dad2a66800104ed8c7fad8c05135a6
+56 913795d9c8c3ddb865b81039a662ba0f
+57 fd84229b981c0dcf9f2a79e9d94cf154
+58 9ae667ec6ab7c2eb0bf5a06807042e59
+59 2e445d3921c94fe2faf400708ea83e8b
+60 dcd5f407001d00f8224bb1449254b3a3
+61 1aaacf09ce7209ed23fa0875be09a133
+62 e5face2b007eeaaa837895a6e32c63f0
+63 43a38c4b0243555e9cf655ce60c8403a
+64 6b3ca212cd7cf131f4bd8bdd9085618b
+65 ffda0a086d4259b9c48bd26391f7ebaf
+66 1f392bbb0662c3e1cb97073a5e119570
+67 33c8041b5a8341f1b117e40b2f8bd0ee
+68 b203f57d48d584ff5479f76ce76e6eba
+69 72a6172c2b14abbf64ab74a27f03fc89
+70 12a05415f69f217712ac65a0858ddfdc
+71 8bdd033aa314600e78585dc42a88c28b
+72 b2b70633781346cfa203e243319f6409
+73 cb158a725e4f3f1ef6f2053751db07d0
+74 82f3963cfebe83618ea21af5fd38d164
+75 cfb9e6e451c6855e1a7dce78d7b4cc5a
+76 eab0e37d16bbc78b21e234767f5056eb
+77 c76407fe3c50d02fba700da0011167cc
+78 1339da94058abc3fcfcf61a81e1597b7
+79 3c58d27f69d6e927bd0cb1b16bdb30ba
+80 1e500d97a85b3dd3a0b4048fe6ad54ae
+81 d03d3e0bc34d1aec0569567d0ca25365
+82 55d7ddafa551c8b7e0f6aec128ca6442
+83 8ee668de06a360b26af96902edd1c12f
+84 3b8914e6a79a67037057781cf25b6825
+85 37039d22b6e3fb8e26c29eb459ca81ae
+86 707da7bd7982b4ba685981bf32b20103
+87 c3bf51c8c12289d200c2aa0532b3b6c3
+88 5a20abf3322051f8cbc5c0d1d96724e1
+89 1e3e3e730c8447afb79331f6740d379d
+90 0414da13cd7ac8cc53ed97f9c12f52a8
+91 b862c11cc516d750ccac6e10436c6746
+92 0e7febc44370fd57a370d3fbdd9bf16c
+93 85488f13dd47b028a9db94e136eae19d
+94 f9605bb472f52d1775e669b86691e848
+95 33b4d6bc8f327e1a48328d5f5071d7e7
+96 917e41d300faaedfb5d1a67eafa85ef4
+97 b7764a86130d50379833b9606460c2d2
+98 f1b5d819e4441898a6278b99859a1774
+99 1a4bcfaa64467f4bc03f0f00b27cf063
+100 cbd5cef546acc0bfa33117d7c1ae58a8
+show status like '%sort%';
+Variable_name Value
+Sort_merge_passes 0
+Sort_priority_queue_sorts 0
+Sort_range 0
+Sort_rows 10000
+Sort_scan 1
+set sort_buffer_size=default;
+#
+# Test for merge_many_buff
+#
+set sort_buffer_size=32768;
+flush status;
+select id DIV 100 as x,
+MD5(group_concat(substring(names,1,3), substring(address,1,3)
+order by substring(names,1,3), substring(address,1,3)))
+FROM t3
+GROUP BY x;
+x MD5(group_concat(substring(names,1,3), substring(address,1,3)
+order by substring(names,1,3), substring(address,1,3)))
+0 c2ecc41f0e37144931dbd51c286d3169
+1 65104765025a5550d2070c320c896660
+2 d2d10899abcc3be7de55092b260afbfa
+3 a44e5be670968b49b0cb1b5665f53cc5
+4 c906c31cc6f40c63f1901d257680d71f
+5 07ded386a3d789b64462eb9a9525aee1
+6 760ff88f2409ccb3319c57c3a38fe7d2
+7 320d65f718acf0876c0dbda053129d24
+8 73ace6baf48996f86b741105957ce46b
+9 cf80b0efda4108abd584ba47fea0158d
+10 6f8db75fbae31d381472c16d91c1f52b
+11 762315d05abf1d8589eb15238d03d0f3
+12 2948a913b6dfea8499605ac342c897a1
+13 789c300f6576c27d7f9ed5694b0d8fba
+14 8c83fad606cb84de677520dc6fb895f2
+15 37f499f1e50d6fb5ecb09e78d1e2e692
+16 2a953b23c198cf922a58d5ea5e12db0e
+17 ebc1145c9f4324194fc8d85d6e29ed1b
+18 2662c807f21177eb6fcdaf4688641819
+19 a423cee02d23022f9e2ffbd8a3627a7c
+20 0418584d7634ffde4f6988d93f5e2a0f
+21 f832993560565217e6dd30f8300c1c11
+22 b2ffce93f4fc478e0c1ca96fd4accee3
+23 85c7299ac9207a88b6fd9bb69fbf43aa
+24 ab2b9e611e3a8c2f470b05552cb82a4d
+25 2cb134bd2ecf3d07b702ac1f3f171a9c
+26 2e60abcf5605e65075b7e7587f2294a5
+27 705872095781fd7a87882606bb8ab423
+28 78a7e8ab78c35dae4ddf4c4f593c8cf4
+29 943c1fbf466257bb7a4d7af6b6a19165
+30 691c2ce1c6d20fdcfbf65b132c80b7a0
+31 4854dd9d208e0b45cb2e5b6d0fefe6c8
+32 f43993c3d59c03c5cf4c8e2a1ab95533
+33 4c5d5e658aba5bd8aa770a86bff05200
+34 f531b17fba7abce233f95941b42aad58
+35 f44e1f990acfcd7902c5743409412563
+36 a7d39877de8502cce6ffbc4809749eba
+37 49062ade86448805b6a222707bf45ad0
+38 c94368aa13843cc892b75eb71683aaba
+39 483247b82751113caab96ea183a9ca3b
+40 f6cf9046d05c13ae88ba7a5676b81f89
+41 1ca6c62cd730db36d49daca2d1b0ec7c
+42 2b519acd4877e780e7200659d01d43af
+43 eb59acd9a1bf374468b4986325ec2b83
+44 20137caed121517632937703d1011c18
+45 72437c79e41164c2b759702cbb36b179
+46 3c5479be06f2262e8867e967299bbb3b
+47 2084e6be3e7b18019bd874cded1c8bd6
+48 efc7de387fa2399a35a59318052a06f4
+49 8a734e334febc6f2ca45db6b846be5d4
+50 f53fafc0e8d431be62de75e0f16ee745
+51 53a0f5f1b88776c84fe22e2c3254444c
+52 9b53bc61795233850e5d958a9ba415f5
+53 a703edddf3cedbca2d331c96199cf663
+54 0e05181a4a223f43e36742021ac012ad
+55 04dad2a66800104ed8c7fad8c05135a6
+56 913795d9c8c3ddb865b81039a662ba0f
+57 fd84229b981c0dcf9f2a79e9d94cf154
+58 9ae667ec6ab7c2eb0bf5a06807042e59
+59 2e445d3921c94fe2faf400708ea83e8b
+60 dcd5f407001d00f8224bb1449254b3a3
+61 1aaacf09ce7209ed23fa0875be09a133
+62 e5face2b007eeaaa837895a6e32c63f0
+63 43a38c4b0243555e9cf655ce60c8403a
+64 6b3ca212cd7cf131f4bd8bdd9085618b
+65 ffda0a086d4259b9c48bd26391f7ebaf
+66 1f392bbb0662c3e1cb97073a5e119570
+67 33c8041b5a8341f1b117e40b2f8bd0ee
+68 b203f57d48d584ff5479f76ce76e6eba
+69 72a6172c2b14abbf64ab74a27f03fc89
+70 12a05415f69f217712ac65a0858ddfdc
+71 8bdd033aa314600e78585dc42a88c28b
+72 b2b70633781346cfa203e243319f6409
+73 cb158a725e4f3f1ef6f2053751db07d0
+74 82f3963cfebe83618ea21af5fd38d164
+75 cfb9e6e451c6855e1a7dce78d7b4cc5a
+76 eab0e37d16bbc78b21e234767f5056eb
+77 c76407fe3c50d02fba700da0011167cc
+78 1339da94058abc3fcfcf61a81e1597b7
+79 3c58d27f69d6e927bd0cb1b16bdb30ba
+80 1e500d97a85b3dd3a0b4048fe6ad54ae
+81 d03d3e0bc34d1aec0569567d0ca25365
+82 55d7ddafa551c8b7e0f6aec128ca6442
+83 8ee668de06a360b26af96902edd1c12f
+84 3b8914e6a79a67037057781cf25b6825
+85 37039d22b6e3fb8e26c29eb459ca81ae
+86 707da7bd7982b4ba685981bf32b20103
+87 c3bf51c8c12289d200c2aa0532b3b6c3
+88 5a20abf3322051f8cbc5c0d1d96724e1
+89 1e3e3e730c8447afb79331f6740d379d
+90 0414da13cd7ac8cc53ed97f9c12f52a8
+91 b862c11cc516d750ccac6e10436c6746
+92 0e7febc44370fd57a370d3fbdd9bf16c
+93 85488f13dd47b028a9db94e136eae19d
+94 f9605bb472f52d1775e669b86691e848
+95 33b4d6bc8f327e1a48328d5f5071d7e7
+96 917e41d300faaedfb5d1a67eafa85ef4
+97 b7764a86130d50379833b9606460c2d2
+98 f1b5d819e4441898a6278b99859a1774
+99 1a4bcfaa64467f4bc03f0f00b27cf063
+100 cbd5cef546acc0bfa33117d7c1ae58a8
+show status like '%sort%';
+Variable_name Value
+Sort_merge_passes 4
+Sort_priority_queue_sorts 0
+Sort_range 0
+Sort_rows 10000
+Sort_scan 1
+set sort_buffer_size=default;
+set @@RAND_SEED1= @save_rand_seed1;
+set @@RAND_SEED2= @save_rand_seed2;
+drop function generate_normal_distribution_sample;
+drop function generate_random_string;
+drop function clipped_normal_distribution;
+drop table t1, t2, t3;
diff --git a/mysql-test/main/order_by_pack_big.test b/mysql-test/main/order_by_pack_big.test
new file mode 100644
index 00000000000..32c5549eb94
--- /dev/null
+++ b/mysql-test/main/order_by_pack_big.test
@@ -0,0 +1,133 @@
+--source include/big_test.inc
+--source include/have_sequence.inc
+--source include/have_64bit.inc
+
+set @save_rand_seed1= @@RAND_SEED1;
+set @save_rand_seed2= @@RAND_SEED2;
+set @@RAND_SEED1=810763568, @@RAND_SEED2=600681772;
+
+create table t1(a int);
+insert into t1 select seq from seq_1_to_10000 order by rand();
+delimiter |;
+
+--echo #
+--echo # parameters:
+--echo # mean mean for the column to be considered
+--echo # max_val max_value for the column to be considered
+--echo #
+--echo # This function generate a sample of a normal distribution
+--echo # This function return a point
+--echo # of the normal distribution with a given mean.
+--echo #
+
+CREATE FUNCTION
+generate_normal_distribution_sample(mean DOUBLE, max_val DOUBLE)RETURNS DOUBLE
+BEGIN
+ DECLARE z DOUBLE DEFAULT 0;
+ SET z= (rand() + rand() + rand() + rand() + rand() + rand())/6;
+ SET z= 2*(max_val-mean)*z;
+ SET z= z + mean - (max_val-mean);
+ return z;
+END|
+
+--echo #
+--echo # parameters:
+--echo # len length of the random string to be generated
+--echo #
+--echo # This function generates a random string for the length passed
+--echo # as an argument with characters in the range of [A,Z]
+--echo #
+
+CREATE FUNCTION generate_random_string(len INT) RETURNS varchar(128)
+BEGIN
+ DECLARE str VARCHAR(256) DEFAULT '';
+ DECLARE x INT DEFAULT 0;
+ WHILE (len > 0) DO
+ SET x =round(rand()*25);
+ SET str= CONCAT(str, CHAR(65 + x));
+ SET len= len-1;
+ END WHILE;
+RETURN str;
+END|
+
+--echo #
+--echo # parameters:
+--echo # mean mean for the column to be considered
+--echo # min_val min_value for the column to be considered
+--echo # max_val max_value for the column to be considered
+--echo #
+--echo # This function generate a normal distribution sample in the range of
+--echo # [min_val, max_val]
+--echo #
+
+CREATE FUNCTION
+clipped_normal_distribution(mean DOUBLE, min_val DOUBLE, max_val DOUBLE)
+RETURNS INT
+BEGIN
+ DECLARE r DOUBLE DEFAULT 0;
+ WHILE 1=1 DO
+ set r= generate_normal_distribution_sample(mean, max_val);
+ IF (r >= min_val AND r <= max_val) THEN
+ RETURN round(r);
+ end if;
+ END WHILE;
+ RETURN 0;
+END|
+
+delimiter ;|
+
+create table t2 (id INT NOT NULL, a INT, b int);
+insert into t2
+select a, clipped_normal_distribution(12, 0, 64),
+ clipped_normal_distribution(32, 0, 128)
+from t1;
+
+CREATE TABLE t3(
+ id INT NOT NULL,
+ names VARCHAR(64),
+ address VARCHAR(128),
+ PRIMARY KEY (id)
+);
+
+--echo #
+--echo # table t3 stores random strings calculated from the length stored in
+--echo # table t2
+--echo #
+
+insert into t3
+select id, generate_random_string(a), generate_random_string(b) from t2;
+
+
+let $query= select id DIV 100 as x,
+ MD5(group_concat(substring(names,1,3), substring(address,1,3)
+ order by substring(names,1,3), substring(address,1,3)))
+ FROM t3
+ GROUP BY x;
+
+--echo #
+--echo # All records fit in memory
+--echo #
+
+set sort_buffer_size=262144*10;
+flush status;
+eval $query;
+show status like '%sort%';
+set sort_buffer_size=default;
+
+--echo #
+--echo # Test for merge_many_buff
+--echo #
+
+set sort_buffer_size=32768;
+flush status;
+eval $query;
+show status like '%sort%';
+set sort_buffer_size=default;
+
+set @@RAND_SEED1= @save_rand_seed1;
+set @@RAND_SEED2= @save_rand_seed2;
+
+drop function generate_normal_distribution_sample;
+drop function generate_random_string;
+drop function clipped_normal_distribution;
+drop table t1, t2, t3;
diff --git a/sql/bounded_queue.h b/sql/bounded_queue.h
index fd733caa019..cd710d835aa 100644
--- a/sql/bounded_queue.h
+++ b/sql/bounded_queue.h
@@ -57,7 +57,7 @@ class Bounded_queue
@param to Where to put the key.
@param from The input data.
*/
- typedef void (*keymaker_function)(Sort_param *param,
+ typedef uint (*keymaker_function)(Sort_param *param,
Key_type *to,
Element_type *from);
@@ -181,7 +181,7 @@ void Bounded_queue<Element_type, Key_type>::push(Element_type *element)
{
// Replace top element with new key, and re-order the queue.
Key_type **pq_top= reinterpret_cast<Key_type **>(queue_top(&m_queue));
- (*m_keymaker)(m_sort_param, *pq_top, element);
+ (void)(*m_keymaker)(m_sort_param, *pq_top, element);
queue_replace_top(&m_queue);
} else {
// Insert new key into the queue.
diff --git a/sql/field.h b/sql/field.h
index 58f49f78cc7..df0f97776fb 100644
--- a/sql/field.h
+++ b/sql/field.h
@@ -1527,6 +1527,7 @@ class Field: public Value_source
{ return length;}
virtual uint max_packed_col_length(uint max_length)
{ return max_length;}
+ virtual bool is_packable() { return false; }
uint offset(const uchar *record) const
{
@@ -2139,6 +2140,7 @@ class Field_longstr :public Field_str
bool can_optimize_range(const Item_bool_func *cond,
const Item *item,
bool is_eq_func) const;
+ bool is_packable() { return true; }
};
/* base class for float and double and decimal (old one) */
diff --git a/sql/filesort.cc b/sql/filesort.cc
index df6e1eb9104..d93ae3b595a 100644
--- a/sql/filesort.cc
+++ b/sql/filesort.cc
@@ -48,17 +48,17 @@ static ha_rows find_all_keys(THD *thd, Sort_param *param, SQL_SELECT *select,
ha_rows *found_rows);
static bool write_keys(Sort_param *param, SORT_INFO *fs_info,
uint count, IO_CACHE *buffer_file, IO_CACHE *tempfile);
-static void make_sortkey(Sort_param *param, uchar *to, uchar *ref_pos);
+static uint make_sortkey(Sort_param *param, uchar *to, uchar *ref_pos);
static void register_used_fields(Sort_param *param);
static bool save_index(Sort_param *param, uint count,
SORT_INFO *table_sort);
static uint suffix_length(ulong string_length);
static uint sortlength(THD *thd, SORT_FIELD *sortorder, uint s_length,
- bool *multi_byte_charset);
-static SORT_ADDON_FIELD *get_addon_fields(TABLE *table, uint sortlength,
- LEX_STRING *addon_buf);
-static void unpack_addon_fields(struct st_sort_addon_field *addon_field,
- uchar *buff, uchar *buff_end);
+ bool *multi_byte_charset);
+static Addon_fields *get_addon_fields(TABLE *table, uint sortlength,
+ uint *addon_length,
+ uint *m_packable_length);
+
static bool check_if_pq_applicable(Sort_param *param, SORT_INFO *info,
TABLE *table,
ha_rows records, size_t memory_available);
@@ -66,7 +66,7 @@ static bool check_if_pq_applicable(Sort_param *param, SORT_INFO *info,
void Sort_param::init_for_filesort(uint sortlen, TABLE *table,
ha_rows maxrows, bool sort_positions)
{
- DBUG_ASSERT(addon_field == 0 && addon_buf.length == 0);
+ DBUG_ASSERT(addon_fields == NULL);
sort_length= sortlen;
ref_length= table->file->ref_length;
@@ -77,12 +77,13 @@ void Sort_param::init_for_filesort(uint sortlen, TABLE *table,
Get the descriptors of all fields whose values are appended
to sorted fields and get its total length in addon_buf.length
*/
- addon_field= get_addon_fields(table, sort_length, &addon_buf);
+ addon_fields= get_addon_fields(table, sort_length, &addon_length,
+ &m_packable_length);
}
- if (addon_field)
+ if (using_addon_fields())
{
- DBUG_ASSERT(addon_buf.length < UINT_MAX32);
- res_length= (uint)addon_buf.length;
+ DBUG_ASSERT(addon_length < UINT_MAX32);
+ res_length= addon_length;
}
else
{
@@ -93,11 +94,43 @@ void Sort_param::init_for_filesort(uint sortlen, TABLE *table,
*/
sort_length+= ref_length;
}
- rec_length= sort_length + (uint)addon_buf.length;
+ rec_length= sort_length + addon_length;
max_rows= maxrows;
}
+void Sort_param::try_to_pack_addons(ulong max_length_for_sort_data)
+{
+ if (!using_addon_fields() || // no addons, or
+ using_packed_addons()) // already packed
+ return;
+
+ if (!Addon_fields::can_pack_addon_fields(res_length))
+ return;
+
+ const uint sz= Addon_fields::size_of_length_field;;
+ if (rec_length + sz > max_length_for_sort_data)
+ return;
+
+ // Heuristic: skip packing if potential savings are less than 10 bytes.
+ if (m_packable_length < (10 + sz))
+ return;
+
+ SORT_ADDON_FIELD *addonf= addon_fields->begin();
+ for (;addonf != addon_fields->end(); ++addonf)
+ {
+ addonf->offset+= sz;
+ addonf->null_offset+= sz;
+ }
+
+ addon_fields->set_using_packed_addons(true);
+ m_using_packed_addons= true;
+
+ addon_length+= sz;
+ res_length+= sz;
+ rec_length+= sz;
+}
+
/**
Sort a table.
Creates a set of pointers that can be used to read the rows
@@ -134,7 +167,7 @@ SORT_INFO *filesort(THD *thd, TABLE *table, Filesort *filesort,
DBUG_ASSERT(thd->variables.sortbuff_size <= SIZE_T_MAX);
size_t memory_available= (size_t)thd->variables.sortbuff_size;
uint maxbuffer;
- BUFFPEK *buffpek;
+ Merge_chunk *buffpek;
ha_rows num_rows= HA_POS_ERROR;
IO_CACHE tempfile, buffpek_pointers, *outfile;
Sort_param param;
@@ -164,13 +197,16 @@ SORT_INFO *filesort(THD *thd, TABLE *table, Filesort *filesort,
if (subselect && subselect->filesort_buffer.is_allocated())
{
- /* Reuse cache from last call */
+ // Reuse cache from last call
sort->filesort_buffer= subselect->filesort_buffer;
sort->buffpek= subselect->sortbuffer;
subselect->filesort_buffer.reset();
subselect->sortbuffer.str=0;
}
+ DBUG_ASSERT(sort->sorted_result_in_fsbuf == FALSE ||
+ sort->record_pointers == NULL);
+
outfile= &sort->io_cache;
my_b_clear(&tempfile);
@@ -183,9 +219,8 @@ SORT_INFO *filesort(THD *thd, TABLE *table, Filesort *filesort,
&multi_byte_charset),
table, max_rows, filesort->sort_positions);
- sort->addon_buf= param.addon_buf;
- sort->addon_field= param.addon_field;
- sort->unpack= unpack_addon_fields;
+ sort->addon_fields= param.addon_fields;
+
if (multi_byte_charset &&
!(param.tmp_buffer= (char*) my_malloc(param.sort_length,
MYF(MY_WME | MY_THREAD_SPECIFIC))))
@@ -208,7 +243,15 @@ SORT_INFO *filesort(THD *thd, TABLE *table, Filesort *filesort,
thd->query_plan_flags|= QPLAN_FILESORT_PRIORITY_QUEUE;
status_var_increment(thd->status_var.filesort_pq_sorts_);
tracker->incr_pq_used();
+ param.using_pq= true;
const size_t compare_length= param.sort_length;
+ /*
+ For PQ queries (with limit) we know exactly how many pointers/records
+ we have in the buffer, so to simplify things, we initialize
+ all pointers here. (We cannot pack fields anyways, so there is no
+ point in doing lazy initialization).
+ */
+ sort->init_record_pointers();
if (pq.init(param.max_rows,
true, // max_at_top
NULL, // compare_function
@@ -223,21 +266,23 @@ SORT_INFO *filesort(THD *thd, TABLE *table, Filesort *filesort,
DBUG_ASSERT(thd->is_error());
goto err;
}
- // For PQ queries (with limit) we initialize all pointers.
- sort->init_record_pointers();
}
else
{
DBUG_PRINT("info", ("filesort PQ is not applicable"));
+ param.try_to_pack_addons(thd->variables.max_length_for_sort_data);
+ param.using_pq= false;
+
size_t min_sort_memory= MY_MAX(MIN_SORT_MEMORY,
param.sort_length*MERGEBUFF2);
- set_if_bigger(min_sort_memory, sizeof(BUFFPEK*)*MERGEBUFF2);
+ set_if_bigger(min_sort_memory, sizeof(Merge_chunk*)*MERGEBUFF2);
while (memory_available >= min_sort_memory)
{
ulonglong keys= memory_available / (param.rec_length + sizeof(char*));
param.max_keys_per_buffer= (uint) MY_MIN(num_rows, keys);
- if (sort->alloc_sort_buffer(param.max_keys_per_buffer, param.rec_length))
+ sort->alloc_sort_buffer(param.max_keys_per_buffer, param.rec_length);
+ if (sort->sort_buffer_size() > 0)
break;
size_t old_memory_available= memory_available;
memory_available= memory_available/4*3;
@@ -258,7 +303,9 @@ SORT_INFO *filesort(THD *thd, TABLE *table, Filesort *filesort,
goto err;
param.sort_form= table;
- param.end=(param.local_sortorder=filesort->sortorder)+s_length;
+ param.local_sortorder=
+ Bounds_checked_array<SORT_FIELD>(filesort->sortorder, s_length);
+
num_rows= find_all_keys(thd, ¶m, select,
sort,
&buffpek_pointers,
@@ -287,12 +334,20 @@ SORT_INFO *filesort(THD *thd, TABLE *table, Filesort *filesort,
my_free(sort->buffpek.str);
sort->buffpek.str= 0;
}
+
+ if (param.using_addon_fields())
+ {
+ DBUG_ASSERT(sort->addon_fields);
+ if (!sort->addon_fields->allocate_addon_buf(param.addon_length))
+ goto err;
+ }
+
if (!(sort->buffpek.str=
(char *) read_buffpek_from_file(&buffpek_pointers, maxbuffer,
(uchar*) sort->buffpek.str)))
goto err;
sort->buffpek.length= maxbuffer;
- buffpek= (BUFFPEK *) sort->buffpek.str;
+ buffpek= (Merge_chunk *) sort->buffpek.str;
close_cached_file(&buffpek_pointers);
/* Open cached file if it isn't open */
if (! my_b_inited(outfile) &&
@@ -306,25 +361,25 @@ SORT_INFO *filesort(THD *thd, TABLE *table, Filesort *filesort,
Use also the space previously used by string pointers in sort_buffer
for temporary key storage.
*/
- param.max_keys_per_buffer=((param.max_keys_per_buffer *
- (param.rec_length + sizeof(char*))) /
- param.rec_length - 1);
+
+ param.max_keys_per_buffer= static_cast<uint>(sort->sort_buffer_size()) /
+ param.rec_length;
set_if_bigger(param.max_keys_per_buffer, 1);
maxbuffer--; // Offset from 0
- if (merge_many_buff(¶m,
- (uchar*) sort->get_sort_keys(),
+
+ if (merge_many_buff(¶m, sort->get_raw_buf(),
buffpek,&maxbuffer,
- &tempfile))
+ &tempfile))
goto err;
if (flush_io_cache(&tempfile) ||
reinit_io_cache(&tempfile,READ_CACHE,0L,0,0))
goto err;
if (merge_index(¶m,
- (uchar*) sort->get_sort_keys(),
+ sort->get_raw_buf(),
buffpek,
maxbuffer,
&tempfile,
- outfile))
+ outfile))
goto err;
}
@@ -339,7 +394,8 @@ SORT_INFO *filesort(THD *thd, TABLE *table, Filesort *filesort,
my_free(param.tmp_buffer);
if (!subselect || !subselect->is_uncacheable())
{
- sort->free_sort_buffer();
+ if (!param.using_addon_fields())
+ sort->free_sort_buffer();
my_free(sort->buffpek.str);
}
else
@@ -347,7 +403,7 @@ SORT_INFO *filesort(THD *thd, TABLE *table, Filesort *filesort,
/* Remember sort buffers for next subquery call */
subselect->filesort_buffer= sort->filesort_buffer;
subselect->sortbuffer= sort->buffpek;
- sort->filesort_buffer.reset(); // Don't free this
+ sort->filesort_buffer.reset(); // Don't free this*/
}
sort->buffpek.str= 0;
@@ -361,7 +417,7 @@ SORT_INFO *filesort(THD *thd, TABLE *table, Filesort *filesort,
my_off_t save_pos=outfile->pos_in_file;
/* For following reads */
if (reinit_io_cache(outfile,READ_CACHE,0L,0,0))
- error=1;
+ error=1;
outfile->end_of_file=save_pos;
}
}
@@ -490,10 +546,10 @@ uint Filesort::make_sortorder(THD *thd, JOIN *join, table_map first_table_bit)
static uchar *read_buffpek_from_file(IO_CACHE *buffpek_pointers, uint count,
uchar *buf)
{
- size_t length= sizeof(BUFFPEK)*count;
+ size_t length= sizeof(Merge_chunk)*count;
uchar *tmp= buf;
DBUG_ENTER("read_buffpek_from_file");
- if (count > UINT_MAX/sizeof(BUFFPEK))
+ if (count > UINT_MAX/sizeof(Merge_chunk))
return 0; /* sizeof(BUFFPEK)*count will overflow */
if (!tmp)
tmp= (uchar *)my_malloc(length, MYF(MY_WME | MY_THREAD_SPECIFIC));
@@ -702,7 +758,8 @@ static ha_rows find_all_keys(THD *thd, Sort_param *param, SQL_SELECT *select,
handler *file;
MY_BITMAP *save_read_set, *save_write_set;
Item *sort_cond;
- ha_rows retval;
+ ha_rows num_records= 0;
+ const bool packed_addon_fields= param->using_packed_addons();
DBUG_ENTER("find_all_keys");
DBUG_PRINT("info",("using: %s",
(select ? select->quick ? "ranges" : "where":
@@ -810,23 +867,27 @@ static ha_rows find_all_keys(THD *thd, Sort_param *param, SQL_SELECT *select,
if (write_record)
{
- ++(*found_rows);
if (pq)
- {
pq->push(ref_pos);
- idx= pq->num_elements();
- }
else
{
- if (idx == param->max_keys_per_buffer)
+ if (fs_info->isfull())
{
if (write_keys(param, fs_info, idx, buffpek_pointers, tempfile))
goto err;
- idx= 0;
- indexpos++;
+ idx= 0;
+ indexpos++;
}
- make_sortkey(param, fs_info->get_record_buffer(idx++), ref_pos);
+ if (idx == 0)
+ fs_info->init_next_record_pointer();
+ uchar *start_of_rec= fs_info->get_next_record_pointer();
+
+ const uint rec_sz= make_sortkey(param, start_of_rec, ref_pos);
+ if (packed_addon_fields && rec_sz != param->rec_length)
+ fs_info->adjust_next_record_pointer(rec_sz);
+ idx++;
}
+ num_records++;
}
/* It does not make sense to read more keys in case of a fatal error */
@@ -862,11 +923,14 @@ static ha_rows find_all_keys(THD *thd, Sort_param *param, SQL_SELECT *select,
if (indexpos && idx &&
write_keys(param, fs_info, idx, buffpek_pointers, tempfile))
DBUG_RETURN(HA_POS_ERROR); /* purecov: inspected */
- retval= (my_b_inited(tempfile) ?
- (ha_rows) (my_b_tell(tempfile)/param->rec_length) :
- idx);
- DBUG_PRINT("info", ("find_all_keys return %llu", (ulonglong) retval));
- DBUG_RETURN(retval);
+
+ (*found_rows)= num_records;
+ if (pq)
+ num_records= pq->num_elements();
+
+
+ DBUG_PRINT("info", ("find_all_keys return %llu", (ulonglong) num_records));
+ DBUG_RETURN(num_records);
err:
sort_form->column_bitmaps_set(save_read_set, save_write_set);
@@ -901,36 +965,48 @@ write_keys(Sort_param *param, SORT_INFO *fs_info, uint count,
IO_CACHE *buffpek_pointers, IO_CACHE *tempfile)
{
size_t rec_length;
- uchar **end;
- BUFFPEK buffpek;
+ Merge_chunk buffpek;
DBUG_ENTER("write_keys");
rec_length= param->rec_length;
- uchar **sort_keys= fs_info->get_sort_keys();
fs_info->sort_buffer(param, count);
if (!my_b_inited(tempfile) &&
open_cached_file(tempfile, mysql_tmpdir, TEMP_PREFIX, DISK_BUFFER_SIZE,
MYF(MY_WME)))
- goto err; /* purecov: inspected */
+ DBUG_RETURN(1); /* purecov: inspected */
/* check we won't have more buffpeks than we can possibly keep in memory */
- if (my_b_tell(buffpek_pointers) + sizeof(BUFFPEK) > (ulonglong)UINT_MAX)
- goto err;
+ if (my_b_tell(buffpek_pointers) + sizeof(Merge_chunk) > (ulonglong)UINT_MAX)
+ DBUG_RETURN(1);
+
bzero(&buffpek, sizeof(buffpek));
- buffpek.file_pos= my_b_tell(tempfile);
+ buffpek.set_file_position(my_b_tell(tempfile));
if ((ha_rows) count > param->max_rows)
count=(uint) param->max_rows; /* purecov: inspected */
- buffpek.count=(ha_rows) count;
- for (end=sort_keys+count ; sort_keys != end ; sort_keys++)
- if (my_b_write(tempfile, (uchar*) *sort_keys, (uint) rec_length))
- goto err;
+ buffpek.set_rowcount(static_cast<ha_rows>(count));
+
+ const bool packed_addon_fields= param->using_packed_addons();
+ for (uint ix= 0; ix < count; ++ix)
+ {
+ uchar *record= fs_info->get_sorted_record(ix);
+ if (packed_addon_fields)
+ {
+ rec_length= param->sort_length +
+ Addon_fields::read_addon_length(record + param->sort_length);
+ }
+ else
+ rec_length= param->rec_length;
+
+ if (my_b_write(tempfile, record, rec_length))
+ DBUG_RETURN(1); /* purecov: inspected */
+ }
+
if (my_b_write(buffpek_pointers, (uchar*) &buffpek, sizeof(buffpek)))
- goto err;
+ DBUG_RETURN(1);
+
DBUG_RETURN(0);
-err:
- DBUG_RETURN(1);
} /* write_keys */
@@ -1168,14 +1244,15 @@ Type_handler_real_result::make_sort_key(uchar *to, Item *item,
/** Make a sort-key from record. */
-static void make_sortkey(Sort_param *param, uchar *to, uchar *ref_pos)
+static uint make_sortkey(Sort_param *param, uchar *to, uchar *ref_pos)
{
Field *field;
SORT_FIELD *sort_field;
uint length;
+ uchar *orig_to= to;
- for (sort_field=param->local_sortorder ;
- sort_field != param->end ;
+ for (sort_field=param->local_sortorder.begin() ;
+ sort_field != param->local_sortorder.end() ;
sort_field++)
{
bool maybe_null=0;
@@ -1202,15 +1279,15 @@ static void make_sortkey(Sort_param *param, uchar *to, uchar *ref_pos)
length=sort_field->length;
while (length--)
{
- *to = (uchar) (~ *to);
- to++;
+ *to = (uchar) (~ *to);
+ to++;
}
}
else
to+= sort_field->length;
}
- if (param->addon_field)
+ if (param->using_addon_fields())
{
/*
Save field values appended to sorted fields.
@@ -1218,41 +1295,44 @@ static void make_sortkey(Sort_param *param, uchar *to, uchar *ref_pos)
In this implementation we use fixed layout for field values -
the same for all records.
*/
- SORT_ADDON_FIELD *addonf= param->addon_field;
+ SORT_ADDON_FIELD *addonf= param->addon_fields->begin();
uchar *nulls= to;
+ uchar *p_len= to;
DBUG_ASSERT(addonf != 0);
+ const bool packed_addon_fields= param->addon_fields->using_packed_addons();
+ uint32 res_len= addonf->offset;
memset(nulls, 0, addonf->offset);
to+= addonf->offset;
- for ( ; (field= addonf->field) ; addonf++)
+ for ( ; addonf != param->addon_fields->end() ; addonf++)
{
+ Field *field= addonf->field;
if (addonf->null_bit && field->is_null())
{
nulls[addonf->null_offset]|= addonf->null_bit;
-#ifdef HAVE_valgrind
- bzero(to, addonf->length);
-#endif
+ if (!packed_addon_fields)
+ to+= addonf->length;
}
else
{
-#ifdef HAVE_valgrind
uchar *end= field->pack(to, field->ptr);
- uint length= (uint) ((to + addonf->length) - end);
- DBUG_ASSERT((int) length >= 0);
- if (length)
- bzero(end, length);
-#else
- (void) field->pack(to, field->ptr);
-#endif
+ int sz= static_cast<int>(end - to);
+ res_len += sz;
+ if (packed_addon_fields)
+ to+= sz;
+ else
+ to+= addonf->length;
}
- to+= addonf->length;
}
+ if (packed_addon_fields)
+ Addon_fields::store_addon_length(p_len, res_len);
}
else
{
/* Save filepos last */
memcpy((uchar*) to, ref_pos, (size_t) param->ref_length);
+ to+= param->ref_length;
}
- return;
+ return static_cast<uint>(to - orig_to);
}
@@ -1265,8 +1345,8 @@ static void register_used_fields(Sort_param *param)
SORT_FIELD *sort_field;
TABLE *table=param->sort_form;
- for (sort_field= param->local_sortorder ;
- sort_field != param->end ;
+ for (sort_field= param->local_sortorder.begin() ;
+ sort_field != param->local_sortorder.end() ;
sort_field++)
{
Field *field;
@@ -1281,12 +1361,14 @@ static void register_used_fields(Sort_param *param)
}
}
- if (param->addon_field)
+ if (param->using_addon_fields())
{
- SORT_ADDON_FIELD *addonf= param->addon_field;
- Field *field;
- for ( ; (field= addonf->field) ; addonf++)
+ SORT_ADDON_FIELD *addonf= param->addon_fields->begin();
+ for ( ; (addonf != param->addon_fields->end()) ; addonf++)
+ {
+ Field *field= addonf->field;
field->register_field_in_read_map();
+ }
}
else
{
@@ -1305,16 +1387,24 @@ static bool save_index(Sort_param *param, uint count,
DBUG_ASSERT(table_sort->record_pointers == 0);
table_sort->sort_buffer(param, count);
+
+ if (param->using_addon_fields())
+ {
+ table_sort->sorted_result_in_fsbuf= TRUE;
+ table_sort->set_sort_length(param->sort_length);
+ DBUG_RETURN(0);
+ }
+
res_length= param->res_length;
offset= param->rec_length-res_length;
if (!(to= table_sort->record_pointers=
(uchar*) my_malloc(res_length*count,
MYF(MY_WME | MY_THREAD_SPECIFIC))))
DBUG_RETURN(1); /* purecov: inspected */
- uchar **sort_keys= table_sort->get_sort_keys();
- for (uchar **end= sort_keys+count ; sort_keys != end ; sort_keys++)
+ for (uint ix= 0; ix < count; ++ix)
{
- memcpy(to, *sort_keys+offset, res_length);
+ uchar *record= table_sort->get_sorted_record(ix);
+ memcpy(to, record + offset, res_length);
to+= res_length;
}
DBUG_RETURN(0);
@@ -1385,8 +1475,9 @@ static bool check_if_pq_applicable(Sort_param *param,
// The whole source set fits into memory.
if (param->max_rows < num_rows/PQ_slowness )
{
- DBUG_RETURN(filesort_info->alloc_sort_buffer(param->max_keys_per_buffer,
- param->rec_length) != NULL);
+ filesort_info->alloc_sort_buffer(param->max_keys_per_buffer,
+ param->rec_length);
+ DBUG_RETURN(filesort_info->sort_buffer_size() != 0);
}
else
{
@@ -1398,12 +1489,13 @@ static bool check_if_pq_applicable(Sort_param *param,
// Do we have space for LIMIT rows in memory?
if (param->max_keys_per_buffer < num_available_keys)
{
- DBUG_RETURN(filesort_info->alloc_sort_buffer(param->max_keys_per_buffer,
- param->rec_length) != NULL);
+ filesort_info->alloc_sort_buffer(param->max_keys_per_buffer,
+ param->rec_length);
+ DBUG_RETURN(filesort_info->sort_buffer_size() != 0);
}
// Try to strip off addon fields.
- if (param->addon_field)
+ if (param->addon_fields)
{
const size_t row_length=
param->sort_length + param->ref_length + sizeof(char*);
@@ -1435,14 +1527,15 @@ static bool check_if_pq_applicable(Sort_param *param,
if (sort_merge_cost < pq_cost)
DBUG_RETURN(false);
- if (filesort_info->alloc_sort_buffer(param->max_keys_per_buffer,
- param->sort_length +
- param->ref_length))
+ filesort_info->alloc_sort_buffer(param->max_keys_per_buffer,
+ param->sort_length + param->ref_length);
+
+ if (filesort_info->sort_buffer_size() > 0)
{
/* Make attached data to be references instead of fields. */
- my_free(filesort_info->addon_field);
- filesort_info->addon_field= NULL;
- param->addon_field= NULL;
+ my_free(filesort_info->addon_fields);
+ filesort_info->addon_fields= NULL;
+ param->addon_fields= NULL;
param->res_length= param->ref_length;
param->sort_length+= param->ref_length;
@@ -1458,12 +1551,12 @@ static bool check_if_pq_applicable(Sort_param *param,
/** Merge buffers to make < MERGEBUFF2 buffers. */
-int merge_many_buff(Sort_param *param, uchar *sort_buffer,
- BUFFPEK *buffpek, uint *maxbuffer, IO_CACHE *t_file)
+int merge_many_buff(Sort_param *param, Sort_buffer sort_buffer,
+ Merge_chunk *buffpek, uint *maxbuffer, IO_CACHE *t_file)
{
uint i;
IO_CACHE t_file2,*from_file,*to_file,*temp;
- BUFFPEK *lastbuff;
+ Merge_chunk *lastbuff;
DBUG_ENTER("merge_many_buff");
if (*maxbuffer < MERGEBUFF2)
@@ -1483,11 +1576,11 @@ int merge_many_buff(Sort_param *param, uchar *sort_buffer,
lastbuff=buffpek;
for (i=0 ; i <= *maxbuffer-MERGEBUFF*3/2 ; i+=MERGEBUFF)
{
- if (merge_buffers(param,from_file,to_file,sort_buffer,lastbuff++,
+ if (merge_buffers(param,from_file,to_file,sort_buffer, lastbuff++,
buffpek+i,buffpek+i+MERGEBUFF-1,0))
goto cleanup;
}
- if (merge_buffers(param,from_file,to_file,sort_buffer,lastbuff++,
+ if (merge_buffers(param,from_file,to_file,sort_buffer, lastbuff++,
buffpek+i,buffpek+ *maxbuffer,0))
break; /* purecov: inspected */
if (flush_io_cache(to_file))
@@ -1513,24 +1606,68 @@ int merge_many_buff(Sort_param *param, uchar *sort_buffer,
(ulong)-1 if something goes wrong
*/
-ulong read_to_buffer(IO_CACHE *fromfile, BUFFPEK *buffpek,
- uint rec_length)
+ulong read_to_buffer(IO_CACHE *fromfile, Merge_chunk *buffpek,
+ Sort_param *param)
{
- ulong count;
- ulong length= 0;
+ ha_rows count;
+ uint rec_length= param->rec_length;
- if ((count= (ulong) MY_MIN((ha_rows) buffpek->max_keys,buffpek->count)))
+ if ((count= MY_MIN(buffpek->max_keys(),buffpek->rowcount())))
{
- length= rec_length*count;
- if (unlikely(my_b_pread(fromfile, (uchar*) buffpek->base, length,
- buffpek->file_pos)))
+ size_t bytes_to_read;
+ if (param->using_packed_addons())
+ {
+ count= buffpek->rowcount();
+ bytes_to_read= MY_MIN(buffpek->buffer_size(),
+ static_cast<size_t>(fromfile->end_of_file -
+ buffpek->file_position()));
+ }
+ else
+ bytes_to_read= rec_length * static_cast<size_t>(count);
+
+ if (unlikely(my_b_pread(fromfile, buffpek->buffer_start(),
+ bytes_to_read, buffpek->file_position())))
return ((ulong) -1);
- buffpek->key=buffpek->base;
- buffpek->file_pos+= length; /* New filepos */
- buffpek->count-= count;
- buffpek->mem_count= count;
+
+ size_t num_bytes_read;
+ if (param->using_packed_addons())
+ {
+ /*
+ The last record read is most likely not complete here.
+ We need to loop through all the records, reading the length fields,
+ and then "chop off" the final incomplete record.
+ */
+ uchar *record= buffpek->buffer_start();
+ uint ix= 0;
+ for (; ix < count; ++ix)
+ {
+ if (record + param->sort_length + Addon_fields::size_of_length_field >
+ buffpek->buffer_end())
+ break; // Incomplete record.
+ uchar *plen= record + param->sort_length;
+ uint res_length= Addon_fields::read_addon_length(plen);
+ if (plen + res_length > buffpek->buffer_end())
+ break; // Incomplete record.
+ DBUG_ASSERT(res_length > 0);
+ record+= param->sort_length;
+ record+= res_length;
+ }
+ DBUG_ASSERT(ix > 0);
+ count= ix;
+ num_bytes_read= record - buffpek->buffer_start();
+ DBUG_PRINT("info", ("read %llu bytes of complete records",
+ static_cast<ulonglong>(bytes_to_read)));
+ }
+ else
+ num_bytes_read= bytes_to_read;
+
+ buffpek->init_current_key();
+ buffpek->advance_file_position(num_bytes_read); /* New filepos */
+ buffpek->decrement_rowcount(count);
+ buffpek->set_mem_count(count);
+ return (ulong) num_bytes_read;
}
- return (length);
+ return 0;
} /* read_to_buffer */
@@ -1545,25 +1682,15 @@ ulong read_to_buffer(IO_CACHE *fromfile, BUFFPEK *buffpek,
@param[in] key_length key length
*/
-void reuse_freed_buff(QUEUE *queue, BUFFPEK *reuse, uint key_length)
+void reuse_freed_buff(QUEUE *queue, Merge_chunk *reuse, uint key_length)
{
- uchar *reuse_end= reuse->base + reuse->max_keys * key_length;
for (uint i= queue_first_element(queue);
i <= queue_last_element(queue);
i++)
{
- BUFFPEK *bp= (BUFFPEK *) queue_element(queue, i);
- if (bp->base + bp->max_keys * key_length == reuse->base)
- {
- bp->max_keys+= reuse->max_keys;
+ Merge_chunk *bp= (Merge_chunk *) queue_element(queue, i);
+ if (reuse->merge_freed_buff(bp))
return;
- }
- else if (bp->base == reuse_end)
- {
- bp->base= reuse->base;
- bp->max_keys+= reuse->max_keys;
- return;
- }
}
DBUG_ASSERT(0);
}
@@ -1588,8 +1715,8 @@ void reuse_freed_buff(QUEUE *queue, BUFFPEK *reuse, uint key_length)
*/
bool merge_buffers(Sort_param *param, IO_CACHE *from_file,
- IO_CACHE *to_file, uchar *sort_buffer,
- BUFFPEK *lastbuff, BUFFPEK *Fb, BUFFPEK *Tb,
+ IO_CACHE *to_file, Sort_buffer sort_buffer,
+ Merge_chunk *lastbuff, Merge_chunk *Fb, Merge_chunk *Tb,
int flag)
{
bool error= 0;
@@ -1599,7 +1726,7 @@ bool merge_buffers(Sort_param *param, IO_CACHE *from_file,
ha_rows max_rows,org_max_rows;
my_off_t to_start_filepos;
uchar *strpos;
- BUFFPEK *buffpek;
+ Merge_chunk *buffpek;
QUEUE queue;
qsort2_cmp cmp;
void *first_cmp_arg;
@@ -1625,7 +1752,7 @@ bool merge_buffers(Sort_param *param, IO_CACHE *from_file,
uint wr_offset= flag ? offset : 0;
maxcount= (ulong) (param->max_keys_per_buffer/((uint) (Tb-Fb) +1));
to_start_filepos= my_b_tell(to_file);
- strpos= sort_buffer;
+ strpos= sort_buffer.array();
org_max_rows=max_rows= param->max_rows;
set_if_bigger(maxcount, 1);
@@ -1640,19 +1767,23 @@ bool merge_buffers(Sort_param *param, IO_CACHE *from_file,
cmp= get_ptr_compare(sort_length);
first_cmp_arg= (void*) &sort_length;
}
- if (unlikely(init_queue(&queue, (uint) (Tb-Fb)+1, offsetof(BUFFPEK,key), 0,
+ if (unlikely(init_queue(&queue, (uint) (Tb-Fb)+1,
+ offsetof(Merge_chunk,m_current_key), 0,
(queue_compare) cmp, first_cmp_arg, 0, 0)))
DBUG_RETURN(1); /* purecov: inspected */
for (buffpek= Fb ; buffpek <= Tb ; buffpek++)
{
- buffpek->base= strpos;
- buffpek->max_keys= maxcount;
- bytes_read= read_to_buffer(from_file, buffpek, rec_length);
+ buffpek->set_buffer(strpos,
+ strpos + (sort_buffer.size()/((uint) (Tb-Fb) +1)));
+
+ buffpek->set_max_keys(maxcount);
+ bytes_read= read_to_buffer(from_file, buffpek, param);
if (unlikely(bytes_read == (ulong) -1))
goto err; /* purecov: inspected */
-
strpos+= bytes_read;
- buffpek->max_keys= buffpek->mem_count; // If less data in buffers than expected
+ buffpek->set_buffer_end(strpos);
+ // If less data in buffers than expected
+ buffpek->set_max_keys(buffpek->mem_count());
queue_insert(&queue, (uchar*) buffpek);
}
@@ -1663,16 +1794,17 @@ bool merge_buffers(Sort_param *param, IO_CACHE *from_file,
Copy the first argument to unique_buff for unique removal.
Store it also in 'to_file'.
*/
- buffpek= (BUFFPEK*) queue_top(&queue);
- memcpy(unique_buff, buffpek->key, rec_length);
+ buffpek= (Merge_chunk*) queue_top(&queue);
+ memcpy(unique_buff, buffpek->current_key(), rec_length);
if (min_dupl_count)
memcpy(&dupl_count, unique_buff+dupl_count_ofs,
sizeof(dupl_count));
- buffpek->key+= rec_length;
- if (! --buffpek->mem_count)
+ buffpek->advance_current_key(rec_length);
+ buffpek->decrement_mem_count();
+ if (buffpek->mem_count() == 0)
{
if (unlikely(!(bytes_read= read_to_buffer(from_file, buffpek,
- rec_length))))
+ param))))
{
(void) queue_remove_top(&queue);
reuse_freed_buff(&queue, buffpek, rec_length);
@@ -1692,61 +1824,68 @@ bool merge_buffers(Sort_param *param, IO_CACHE *from_file,
for (;;)
{
- buffpek= (BUFFPEK*) queue_top(&queue);
- src= buffpek->key;
+ buffpek= (Merge_chunk*) queue_top(&queue);
+ src= buffpek->current_key();
if (cmp) // Remove duplicates
{
- if (!(*cmp)(first_cmp_arg, &unique_buff,
- (uchar**) &buffpek->key))
- {
+ uchar *current_key= buffpek->current_key();
+ if (!(*cmp)(first_cmp_arg, &unique_buff, ¤t_key))
+ {
if (min_dupl_count)
- {
+ {
element_count cnt;
- memcpy(&cnt, (uchar *) buffpek->key+dupl_count_ofs, sizeof(cnt));
+ memcpy(&cnt, buffpek->current_key() + dupl_count_ofs, sizeof(cnt));
dupl_count+= cnt;
}
goto skip_duplicate;
}
if (min_dupl_count)
- {
+ {
memcpy(unique_buff+dupl_count_ofs, &dupl_count,
sizeof(dupl_count));
}
- src= unique_buff;
- }
-
- /*
- Do not write into the output file if this is the final merge called
- for a Unique object used for intersection and dupl_count is less
- than min_dupl_count.
- If the Unique object is used to intersect N sets of unique elements
- then for any element:
- dupl_count >= N <=> the element is occurred in each of these N sets.
- */
- if (!check_dupl_count || dupl_count >= min_dupl_count)
- {
- if (my_b_write(to_file, src+wr_offset, wr_len))
- goto err; /* purecov: inspected */
+ src= unique_buff;
}
- if (cmp)
- {
- memcpy(unique_buff, (uchar*) buffpek->key, rec_length);
- if (min_dupl_count)
- memcpy(&dupl_count, unique_buff+dupl_count_ofs,
- sizeof(dupl_count));
- }
- if (!--max_rows)
+
{
- /* Nothing more to do */
- goto end; /* purecov: inspected */
- }
+ param->get_rec_and_res_len(buffpek->current_key(),
+ &rec_length, &res_length);
+ const uint bytes_to_write= (flag == 0) ? rec_length : res_length;
+ /*
+ Do not write into the output file if this is the final merge called
+ for a Unique object used for intersection and dupl_count is less
+ than min_dupl_count.
+ If the Unique object is used to intersect N sets of unique elements
+ then for any element:
+ dupl_count >= N <=> the element is occurred in each of these N sets.
+ */
+ if (!check_dupl_count || dupl_count >= min_dupl_count)
+ {
+ if (my_b_write(to_file, src + wr_offset, bytes_to_write))
+ goto err; /* purecov: inspected */
+ }
+ if (cmp)
+ {
+ memcpy(unique_buff, buffpek->current_key(), rec_length);
+ if (min_dupl_count)
+ memcpy(&dupl_count, unique_buff+dupl_count_ofs,
+ sizeof(dupl_count));
+ }
+ if (!--max_rows)
+ {
+ /* Nothing more to do */
+ goto end; /* purecov: inspected */
+ }
+ }
skip_duplicate:
- buffpek->key+= rec_length;
- if (! --buffpek->mem_count)
+ buffpek->advance_current_key(rec_length);
+ buffpek->decrement_mem_count();
+
+ if (buffpek->mem_count() == 0)
{
if (unlikely(!(bytes_read= read_to_buffer(from_file, buffpek,
- rec_length))))
+ param))))
{
(void) queue_remove_top(&queue);
reuse_freed_buff(&queue, buffpek, rec_length);
@@ -1758,9 +1897,10 @@ bool merge_buffers(Sort_param *param, IO_CACHE *from_file,
queue_replace_top(&queue); /* Top element has been replaced */
}
}
- buffpek= (BUFFPEK*) queue_top(&queue);
- buffpek->base= (uchar*) sort_buffer;
- buffpek->max_keys= param->max_keys_per_buffer;
+ buffpek= (Merge_chunk*) queue_top(&queue);
+ buffpek->set_buffer(sort_buffer.array(),
+ sort_buffer.array() + sort_buffer.size());
+ buffpek->set_max_keys(param->max_keys_per_buffer);
/*
As we know all entries in the buffer are unique, we only have to
@@ -1768,16 +1908,17 @@ bool merge_buffers(Sort_param *param, IO_CACHE *from_file,
*/
if (cmp)
{
- if (!(*cmp)(first_cmp_arg, &unique_buff, (uchar**) &buffpek->key))
+ uchar *current_key= buffpek->current_key();
+ if (!(*cmp)(first_cmp_arg, &unique_buff, ¤t_key))
{
if (min_dupl_count)
{
element_count cnt;
- memcpy(&cnt, (uchar *) buffpek->key+dupl_count_ofs, sizeof(cnt));
+ memcpy(&cnt, buffpek->current_key() + dupl_count_ofs, sizeof(cnt));
dupl_count+= cnt;
}
- buffpek->key+= rec_length;
- --buffpek->mem_count;
+ buffpek->advance_current_key(rec_length);
+ buffpek->decrement_mem_count();
}
if (min_dupl_count)
@@ -1796,45 +1937,40 @@ bool merge_buffers(Sort_param *param, IO_CACHE *from_file,
do
{
- if ((ha_rows) buffpek->mem_count > max_rows)
+ if (buffpek->mem_count() > max_rows)
{ /* Don't write too many records */
- buffpek->mem_count= (uint) max_rows;
- buffpek->count= 0; /* Don't read more */
+ buffpek->set_mem_count(max_rows);
+ buffpek->set_rowcount(0); /* Don't read more */
}
- max_rows-= buffpek->mem_count;
- if (flag == 0)
+ max_rows-= buffpek->mem_count();
+ for (uint ix= 0; ix < buffpek->mem_count(); ++ix)
{
- if (my_b_write(to_file, (uchar*) buffpek->key,
- (size_t)(rec_length*buffpek->mem_count)))
- goto err; /* purecov: inspected */
- }
- else
- {
- uchar *end;
- src= buffpek->key+offset;
- for (end= src+buffpek->mem_count*rec_length ;
- src != end ;
- src+= rec_length)
+ param->get_rec_and_res_len(buffpek->current_key(),
+ &rec_length, &res_length);
+ const uint bytes_to_write= (flag == 0) ? rec_length : res_length;
+ if (check_dupl_count)
{
- if (check_dupl_count)
- {
- memcpy((uchar *) &dupl_count, src+dupl_count_ofs, sizeof(dupl_count));
- if (dupl_count < min_dupl_count)
- continue;
- }
- if (my_b_write(to_file, src, wr_len))
- goto err;
+ memcpy((uchar *) &dupl_count,
+ buffpek->current_key() + offset + dupl_count_ofs,
+ sizeof(dupl_count));
+ if (dupl_count < min_dupl_count)
+ continue;
}
+ if (my_b_write(to_file, buffpek->current_key() + wr_offset,
+ bytes_to_write))
+ goto err;
+ buffpek->advance_current_key(rec_length);
}
}
while (likely(!(error=
(bytes_read= read_to_buffer(from_file, buffpek,
- rec_length)) == (ulong) -1)) &&
+ param)) == (ulong) -1)) &&
bytes_read != 0);
end:
- lastbuff->count= MY_MIN(org_max_rows-max_rows, param->max_rows);
- lastbuff->file_pos= to_start_filepos;
+ lastbuff->set_rowcount(MY_MIN(org_max_rows-max_rows, param->max_rows));
+ lastbuff->set_file_position(to_start_filepos);
+
cleanup:
delete_queue(&queue);
DBUG_RETURN(error);
@@ -1848,13 +1984,13 @@ bool merge_buffers(Sort_param *param, IO_CACHE *from_file,
/* Do a merge to output-file (save only positions) */
-int merge_index(Sort_param *param, uchar *sort_buffer,
- BUFFPEK *buffpek, uint maxbuffer,
- IO_CACHE *tempfile, IO_CACHE *outfile)
+int merge_index(Sort_param *param, Sort_buffer sort_buffer,
+ Merge_chunk *buffpek, uint maxbuffer,
+ IO_CACHE *tempfile, IO_CACHE *outfile)
{
DBUG_ENTER("merge_index");
- if (merge_buffers(param,tempfile,outfile,sort_buffer,buffpek,buffpek,
- buffpek+maxbuffer,1))
+ if (merge_buffers(param, tempfile, outfile, sort_buffer, buffpek, buffpek,
+ buffpek + maxbuffer, 1))
DBUG_RETURN(1); /* purecov: inspected */
DBUG_RETURN(0);
} /* merge_index */
@@ -1977,7 +2113,7 @@ sortlength(THD *thd, SORT_FIELD *sortorder, uint s_length,
sortorder->length= (uint)cs->coll->strnxfrmlen(cs, sortorder->length);
}
if (sortorder->field->maybe_null())
- length++; // Place for NULL marker
+ length++; // Place for NULL marker
}
else
{
@@ -1988,21 +2124,40 @@ sortlength(THD *thd, SORT_FIELD *sortorder, uint s_length,
*multi_byte_charset= true;
}
if (sortorder->item->maybe_null)
- length++; // Place for NULL marker
+ length++; // Place for NULL marker
}
set_if_smaller(sortorder->length, thd->variables.max_sort_length);
length+=sortorder->length;
}
- sortorder->field= (Field*) 0; // end marker
+ sortorder->field= NULL; // end marker
DBUG_PRINT("info",("sort_length: %d",length));
return length;
}
+
+/*
+ Check whether addon fields can be used or not.
+
+ @param table Table structure
+ @param sortlength Length of sort key
+ @param length [OUT] Max length of addon fields
+ @param fields [OUT] Number of addon fields
+ @param null_fields [OUT] Number of nullable addon fields
+ @param packable_length [OUT] Max length of addon fields that can be
+ packed
+
+ @retval
+ TRUE Addon fields can be used
+ FALSE Otherwise
+*/
+
bool filesort_use_addons(TABLE *table, uint sortlength,
- uint *length, uint *fields, uint *null_fields)
+ uint *length, uint *fields, uint *null_fields,
+ uint *packable_length)
{
Field **pfield, *field;
- *length= *fields= *null_fields= 0;
+ *length= *fields= *null_fields= *packable_length= 0;
+ uint field_length=0;
for (pfield= table->field; (field= *pfield) ; pfield++)
{
@@ -2010,7 +2165,12 @@ bool filesort_use_addons(TABLE *table, uint sortlength,
continue;
if (field->flags & BLOB_FLAG)
return false;
- (*length)+= field->max_packed_col_length(field->pack_length());
+ field_length= field->max_packed_col_length(field->pack_length());
+ (*length)+= field_length;
+
+ if (field->maybe_null() || field->is_packable())
+ (*packable_length)+= field_length;
+
if (field->maybe_null())
(*null_fields)++;
(*fields)++;
@@ -2035,11 +2195,11 @@ bool filesort_use_addons(TABLE *table, uint sortlength,
layouts for the values of the non-sorted fields in the buffer and
fills them.
- @param thd Current thread
- @param ptabfield Array of references to the table fields
- @param sortlength Total length of sorted fields
- @param [out] addon_buf Buffer to us for appended fields
-
+ @param table Table structure
+ @param sortlength Total length of sorted fields
+ @param addon_length [OUT] Length of addon fields
+ @param m_packable_length [OUT] Length of the addon fields that can be
+ packed
@note
The null bits for the appended values are supposed to be put together
and stored the buffer just ahead of the value of the first field.
@@ -2050,13 +2210,13 @@ bool filesort_use_addons(TABLE *table, uint sortlength,
NULL if we do not store field values with sort data.
*/
-static SORT_ADDON_FIELD *
-get_addon_fields(TABLE *table, uint sortlength, LEX_STRING *addon_buf)
+static Addon_fields*
+get_addon_fields(TABLE *table, uint sortlength,
+ uint *addon_length, uint *m_packable_length)
{
Field **pfield;
Field *field;
- SORT_ADDON_FIELD *addonf;
- uint length, fields, null_fields;
+ uint length, fields, null_fields, packable_length;
MY_BITMAP *read_set= table->read_set;
DBUG_ENTER("get_addon_fields");
@@ -2070,23 +2230,34 @@ get_addon_fields(TABLE *table, uint sortlength, LEX_STRING *addon_buf)
the values directly from sorted fields.
But beware the case when item->cmp_type() != item->result_type()
*/
- addon_buf->str= 0;
- addon_buf->length= 0;
// see remove_const() for HA_SLOW_RND_POS explanation
if (table->file->ha_table_flags() & HA_SLOW_RND_POS)
sortlength= 0;
- if (!filesort_use_addons(table, sortlength, &length, &fields, &null_fields) ||
- !my_multi_malloc(MYF(MY_WME | MY_THREAD_SPECIFIC), &addonf,
- sizeof(SORT_ADDON_FIELD) * (fields+1),
- &addon_buf->str, length, NullS))
+ void *raw_mem_addon_field, *raw_mem;
+ if (!filesort_use_addons(table, sortlength, &length, &fields, &null_fields,
+ &packable_length) ||
+ !(my_multi_malloc(MYF(MY_WME | MY_THREAD_SPECIFIC),
+ &raw_mem, sizeof(Addon_fields),
+ &raw_mem_addon_field,
+ sizeof(SORT_ADDON_FIELD) * fields,
+ NullS)))
DBUG_RETURN(0);
- addon_buf->length= length;
+ Addon_fields_array
+ addon_array(static_cast<SORT_ADDON_FIELD*>(raw_mem_addon_field), fields);
+ Addon_fields *addon_fields= new (raw_mem) Addon_fields(addon_array);
+
+ DBUG_ASSERT(addon_fields);
+
+ (*addon_length)= length;
+ (*m_packable_length)= packable_length;
+
length= (null_fields+7)/8;
null_fields= 0;
+ SORT_ADDON_FIELD* addonf= addon_fields->begin();
for (pfield= table->field; (field= *pfield) ; pfield++)
{
if (!bitmap_is_set(read_set, field->field_index))
@@ -2108,10 +2279,9 @@ get_addon_fields(TABLE *table, uint sortlength, LEX_STRING *addon_buf)
length+= addonf->length;
addonf++;
}
- addonf->field= 0; // Put end marker
DBUG_PRINT("info",("addon_length: %d",length));
- DBUG_RETURN(addonf-fields);
+ DBUG_RETURN(addon_fields);
}
@@ -2130,24 +2300,7 @@ get_addon_fields(TABLE *table, uint sortlength, LEX_STRING *addon_buf)
void.
*/
-static void
-unpack_addon_fields(struct st_sort_addon_field *addon_field, uchar *buff,
- uchar *buff_end)
-{
- Field *field;
- SORT_ADDON_FIELD *addonf= addon_field;
- for ( ; (field= addonf->field) ; addonf++)
- {
- if (addonf->null_bit && (addonf->null_bit & buff[addonf->null_offset]))
- {
- field->set_null();
- continue;
- }
- field->set_notnull();
- field->unpack(field->ptr, buff + addonf->offset, buff_end, 0);
- }
-}
/*
** functions to change a double or float to a sortable string
@@ -2197,6 +2350,17 @@ void change_double_for_sort(double nr,uchar *to)
}
}
+bool SORT_INFO::using_packed_addons()
+{
+ return addon_fields != NULL && addon_fields->using_packed_addons();
+}
+
+void SORT_INFO::free_addon_buff()
+{
+ if (addon_fields)
+ addon_fields->free_addon_buff();
+}
+
/**
Free SORT_INFO
*/
diff --git a/sql/filesort.h b/sql/filesort.h
index 5f79a5095cc..5102ee2326f 100644
--- a/sql/filesort.h
+++ b/sql/filesort.h
@@ -27,7 +27,7 @@ class Filesort_tracker;
struct SORT_FIELD;
typedef struct st_order ORDER;
class JOIN;
-
+class Addon_fields;
/**
Sorting related info.
@@ -87,7 +87,8 @@ class SORT_INFO
public:
SORT_INFO()
- :addon_field(0), record_pointers(0)
+ :addon_fields(NULL), record_pointers(0),
+ sorted_result_in_fsbuf(FALSE)
{
buffpek.str= 0;
my_b_clear(&io_cache);
@@ -98,9 +99,11 @@ class SORT_INFO
void free_data()
{
close_cached_file(&io_cache);
+ free_addon_buff();
my_free(record_pointers);
my_free(buffpek.str);
- my_free(addon_field);
+ my_free(addon_fields);
+ free_sort_buffer();
}
void reset()
@@ -108,17 +111,26 @@ class SORT_INFO
free_data();
record_pointers= 0;
buffpek.str= 0;
- addon_field= 0;
+ addon_fields= 0;
+ sorted_result_in_fsbuf= false;
}
+ void free_addon_buff();
IO_CACHE io_cache; /* If sorted through filesort */
LEX_STRING buffpek; /* Buffer for buffpek structures */
- LEX_STRING addon_buf; /* Pointer to a buffer if sorted with fields */
- struct st_sort_addon_field *addon_field; /* Pointer to the fields info */
- /* To unpack back */
- void (*unpack)(struct st_sort_addon_field *, uchar *, uchar *);
+ Addon_fields *addon_fields; /* Addon field descriptors */
uchar *record_pointers; /* If sorted in memory */
+
+ /**
+ If the entire result of filesort fits in memory, we skip the merge phase.
+ We may leave the result in filesort_buffer
+ (indicated by sorted_result_in_fsbuf), or we may strip away
+ the sort keys, and copy the sorted result into a new buffer.
+ @see save_index()
+ */
+ bool sorted_result_in_fsbuf;
+
/*
How many rows in final result.
Also how many rows in record_pointers, if used
@@ -131,27 +143,65 @@ class SORT_INFO
void sort_buffer(Sort_param *param, uint count)
{ filesort_buffer.sort_buffer(param, count); }
- /**
- Accessors for Filesort_buffer (which @c).
- */
- uchar *get_record_buffer(uint idx)
- { return filesort_buffer.get_record_buffer(idx); }
-
uchar **get_sort_keys()
{ return filesort_buffer.get_sort_keys(); }
- uchar **alloc_sort_buffer(uint num_records, uint record_length)
+ uchar *get_sorted_record(uint ix)
+ { return filesort_buffer.get_sorted_record(ix); }
+
+ uchar *alloc_sort_buffer(uint num_records, uint record_length)
{ return filesort_buffer.alloc_sort_buffer(num_records, record_length); }
void free_sort_buffer()
{ filesort_buffer.free_sort_buffer(); }
+ bool isfull() const
+ { return filesort_buffer.isfull(); }
void init_record_pointers()
{ filesort_buffer.init_record_pointers(); }
+ void init_next_record_pointer()
+ { filesort_buffer.init_next_record_pointer(); }
+ uchar *get_next_record_pointer()
+ { return filesort_buffer.get_next_record_pointer(); }
+ void adjust_next_record_pointer(uint val)
+ { filesort_buffer.adjust_next_record_pointer(val); }
+
+ Bounds_checked_array<uchar> get_raw_buf()
+ { return filesort_buffer.get_raw_buf(); }
size_t sort_buffer_size() const
{ return filesort_buffer.sort_buffer_size(); }
+ bool is_allocated() const
+ { return filesort_buffer.is_allocated(); }
+ void set_sort_length(uint val)
+ { filesort_buffer.set_sort_length(val); }
+ uint get_sort_length() const
+ { return filesort_buffer.get_sort_length(); }
+
+ bool has_filesort_result_in_memory() const
+ {
+ return record_pointers || sorted_result_in_fsbuf;
+ }
+
+ /// Are we using "addon fields"?
+ bool using_addon_fields() const
+ {
+ return addon_fields != NULL;
+ }
+
+ /// Are we using "packed addon fields"?
+ bool using_packed_addons();
+
+ /**
+ Copies (unpacks) values appended to sorted fields from a buffer back to
+ their regular positions specified by the Field::ptr pointers.
+ @param buff Buffer which to unpack the value from
+ */
+ template<bool Packed_addon_fields>
+ inline void unpack_addon_fields(uchar *buff);
+
+
friend SORT_INFO *filesort(THD *thd, TABLE *table, Filesort *filesort,
Filesort_tracker* tracker, JOIN *join,
table_map first_table_bit);
@@ -162,7 +212,8 @@ SORT_INFO *filesort(THD *thd, TABLE *table, Filesort *filesort,
table_map first_table_bit=0);
bool filesort_use_addons(TABLE *table, uint sortlength,
- uint *length, uint *fields, uint *null_fields);
+ uint *length, uint *fields, uint *null_fields,
+ uint *m_packable_length);
void change_double_for_sort(double nr,uchar *to);
diff --git a/sql/filesort_utils.cc b/sql/filesort_utils.cc
index 703db84495f..06e3f477993 100644
--- a/sql/filesort_utils.cc
+++ b/sql/filesort_utils.cc
@@ -96,82 +96,92 @@ double get_merge_many_buffs_cost_fast(ha_rows num_rows,
# Pointer to allocated buffer
*/
-uchar **Filesort_buffer::alloc_sort_buffer(uint num_records,
- uint record_length)
+uchar *Filesort_buffer::alloc_sort_buffer(uint num_records,
+ uint record_length)
{
size_t buff_size;
- uchar **sort_keys, **start_of_data;
DBUG_ENTER("alloc_sort_buffer");
DBUG_EXECUTE_IF("alloc_sort_buffer_fail",
DBUG_SET("+d,simulate_out_of_memory"););
- buff_size= ((size_t)num_records) * (record_length + sizeof(uchar*));
- set_if_bigger(buff_size, record_length * MERGEBUFF2);
+ buff_size= ALIGN_SIZE(num_records * (record_length + sizeof(uchar*)));
- if (!m_idx_array.is_null())
+ /*
+ The minimum memory required should be each merge buffer can hold atmost
+ one key.
+ TODO varun: move this to the place where min_sort_memory is used.
+ */
+ set_if_bigger(buff_size, (record_length +sizeof(uchar*)) * MERGEBUFF2);
+
+ if (m_rawmem)
{
/*
Reuse old buffer if exists and is large enough
Note that we don't make the buffer smaller, as we want to be
prepared for next subquery iteration.
*/
-
- sort_keys= m_idx_array.array();
- if (buff_size > allocated_size)
+ if (buff_size > m_size_in_bytes)
{
/*
Better to free and alloc than realloc as we don't have to remember
the old values
*/
- my_free(sort_keys);
- if (!(sort_keys= (uchar**) my_malloc(buff_size,
- MYF(MY_THREAD_SPECIFIC))))
+ my_free(m_rawmem);
+ if (!(m_rawmem= (uchar*) my_malloc(buff_size, MYF(MY_THREAD_SPECIFIC))))
{
- reset();
+ m_size_in_bytes= 0;
DBUG_RETURN(0);
}
- allocated_size= buff_size;
}
}
else
{
- if (!(sort_keys= (uchar**) my_malloc(buff_size, MYF(MY_THREAD_SPECIFIC))))
+ if (!(m_rawmem= (uchar*) my_malloc(buff_size, MYF(MY_THREAD_SPECIFIC))))
+ {
+ m_size_in_bytes= 0;
DBUG_RETURN(0);
- allocated_size= buff_size;
+ }
+
}
- m_idx_array= Idx_array(sort_keys, num_records);
+ m_size_in_bytes= buff_size;
+ m_record_pointers= reinterpret_cast<uchar**>(m_rawmem) +
+ ((m_size_in_bytes / sizeof(uchar*)) - 1);
+ m_num_records= num_records;
m_record_length= record_length;
- start_of_data= m_idx_array.array() + m_idx_array.size();
- m_start_of_data= reinterpret_cast<uchar*>(start_of_data);
-
- DBUG_RETURN(m_idx_array.array());
+ m_idx= 0;
+ DBUG_RETURN(m_rawmem);
}
void Filesort_buffer::free_sort_buffer()
{
- my_free(m_idx_array.array());
- m_idx_array.reset();
- m_start_of_data= NULL;
+ my_free(m_rawmem);
+ *this= Filesort_buffer();
}
void Filesort_buffer::sort_buffer(const Sort_param *param, uint count)
{
size_t size= param->sort_length;
+ m_sort_keys= get_sort_keys();
+
if (count <= 1 || size == 0)
return;
- uchar **keys= get_sort_keys();
+
+ // dont reverse for PQ, it is already done
+ if (!param->using_pq)
+ reverse_record_pointers();
+
uchar **buffer= NULL;
if (radixsort_is_appliccable(count, param->sort_length) &&
(buffer= (uchar**) my_malloc(count*sizeof(char*),
MYF(MY_THREAD_SPECIFIC))))
{
- radixsort_for_str_ptr(keys, count, param->sort_length, buffer);
+ radixsort_for_str_ptr(m_sort_keys, count, param->sort_length, buffer);
my_free(buffer);
return;
}
- my_qsort2(keys, count, sizeof(uchar*), get_ptr_compare(size), &size);
+ my_qsort2(m_sort_keys, count, sizeof(uchar*), get_ptr_compare(size), &size);
}
diff --git a/sql/filesort_utils.h b/sql/filesort_utils.h
index 1ab1ba2daa8..e8b93940abf 100644
--- a/sql/filesort_utils.h
+++ b/sql/filesort_utils.h
@@ -46,68 +46,194 @@ double get_merge_many_buffs_cost_fast(ha_rows num_rows,
/**
A wrapper class around the buffer used by filesort().
- The buffer is a contiguous chunk of memory,
- where the first part is <num_records> pointers to the actual data.
+ The sort buffer is a contiguous chunk of memory,
+ containing both records to be sorted, and pointers to said records:
+
+ <start of buffer | still unused | end of buffer>
+ |rec 0|record 1 |rec 2| ............ |ptr to rec2|ptr to rec1|ptr to rec0|
+
+ Records will be inserted "left-to-right". Records are not necessarily
+ fixed-size, they can be packed and stored without any "gaps".
+
+ Record pointers will be inserted "right-to-left", as a side-effect
+ of inserting the actual records.
We wrap the buffer in order to be able to do lazy initialization of the
pointers: the buffer is often much larger than what we actually need.
+ With this allocation scheme, and lazy initialization of the pointers,
+ we are able to pack variable-sized records in the buffer,
+ and thus possibly have space for more records than we initially estimated.
+
The buffer must be kept available for multiple executions of the
same sort operation, so we have explicit allocate and free functions,
rather than doing alloc/free in CTOR/DTOR.
*/
+
class Filesort_buffer
{
public:
- Filesort_buffer()
- : m_idx_array(), m_start_of_data(NULL), allocated_size(0)
+ Filesort_buffer() :
+ m_next_rec_ptr(NULL), m_rawmem(NULL), m_record_pointers(NULL),
+ m_sort_keys(NULL),
+ m_num_records(0), m_record_length(0),
+ m_sort_length(0),
+ m_size_in_bytes(0), m_idx(0)
{}
-
- ~Filesort_buffer()
+
+ /** Sort me... */
+ void sort_buffer(const Sort_param *param, uint count);
+
+ /**
+ Reverses the record pointer array, to avoid recording new results for
+ non-deterministic mtr tests.
+ */
+ void reverse_record_pointers()
{
- my_free(m_idx_array.array());
+ if (m_idx < 2) // There is nothing to swap.
+ return;
+ uchar **keys= get_sort_keys();
+ const longlong count= m_idx - 1;
+ for (longlong ix= 0; ix <= count/2; ++ix)
+ {
+ uchar *tmp= keys[count - ix];
+ keys[count - ix] = keys[ix];
+ keys[ix]= tmp;
+ }
}
- bool is_allocated()
+ /**
+ Initializes all the record pointers.
+ */
+ void init_record_pointers()
{
- return m_idx_array.array() != 0;
+ init_next_record_pointer();
+ while (m_idx < m_num_records)
+ (void) get_next_record_pointer();
+ reverse_record_pointers();
}
- void reset()
+
+ /**
+ Prepares the buffer for the next batch of records to process.
+ */
+ void init_next_record_pointer()
{
- m_idx_array.reset();
+ m_idx= 0;
+ m_next_rec_ptr= m_rawmem;
+ m_sort_keys= NULL;
}
- /** Sort me... */
- void sort_buffer(const Sort_param *param, uint count);
+ /**
+ @returns the number of bytes currently in use for data.
+ */
+ size_t space_used_for_data() const
+ {
+ return m_next_rec_ptr ? m_next_rec_ptr - m_rawmem : 0;
+ }
- /// Initializes a record pointer.
- uchar *get_record_buffer(uint idx)
+ /**
+ @returns the number of bytes left in the buffer.
+ */
+ size_t spaceleft() const
{
- m_idx_array[idx]= m_start_of_data + (idx * m_record_length);
- return m_idx_array[idx];
+ DBUG_ASSERT(m_next_rec_ptr >= m_rawmem);
+ const size_t spaceused=
+ (m_next_rec_ptr - m_rawmem) +
+ (static_cast<size_t>(m_idx) * sizeof(uchar*));
+ return m_size_in_bytes - spaceused;
}
- /// Initializes all the record pointers.
- void init_record_pointers()
+ /**
+ Is the buffer full?
+ */
+ bool isfull() const
+ {
+ if (m_idx < m_num_records)
+ return false;
+ return spaceleft() < (m_record_length + sizeof(uchar*));
+ }
+
+ /**
+ Where should the next record be stored?
+ */
+ uchar *get_next_record_pointer()
+ {
+ uchar *retval= m_next_rec_ptr;
+ // Save the return value in the record pointer array.
+ m_record_pointers[-m_idx]= m_next_rec_ptr;
+ // Prepare for the subsequent request.
+ m_idx++;
+ m_next_rec_ptr+= m_record_length;
+ return retval;
+ }
+
+ /**
+ Adjusts for actual record length. get_next_record_pointer() above was
+ pessimistic, and assumed that the record could not be packed.
+ */
+ void adjust_next_record_pointer(uint val)
{
- for (uint ix= 0; ix < m_idx_array.size(); ++ix)
- (void) get_record_buffer(ix);
+ m_next_rec_ptr-= (m_record_length - val);
}
/// Returns total size: pointer array + record buffers.
size_t sort_buffer_size() const
{
- return allocated_size;
+ return m_size_in_bytes;
}
- /// Allocates the buffer, but does *not* initialize pointers.
- uchar **alloc_sort_buffer(uint num_records, uint record_length);
+ bool is_allocated() const
+ {
+ return m_rawmem;
+ }
+
+ /**
+ Allocates the buffer, but does *not* initialize pointers.
+ Total size = (num_records * record_length) + (num_records * sizeof(pointer))
+ space for records space for pointer to records
+ Caller is responsible for raising an error if allocation fails.
+
+ @param num_records Number of records.
+ @param record_length (maximum) size of each record.
+ @returns Pointer to allocated area, or NULL in case of out-of-memory.
+ */
+ uchar *alloc_sort_buffer(uint num_records, uint record_length);
/// Frees the buffer.
void free_sort_buffer();
- /// Getter, for calling routines which still use the uchar** interface.
- uchar **get_sort_keys() { return m_idx_array.array(); }
+ void reset()
+ {
+ m_rawmem= NULL;
+ }
+ /**
+ Used to access the "right-to-left" array of record pointers as an ordinary
+ "left-to-right" array, so that we can pass it directly on to std::sort().
+ */
+ uchar **get_sort_keys()
+ {
+ if (m_idx == 0)
+ return NULL;
+ return &m_record_pointers[1 - m_idx];
+ }
+
+ /**
+ Gets sorted record number ix. @see get_sort_keys()
+ Only valid after buffer has been sorted!
+ */
+ uchar *get_sorted_record(uint ix)
+ {
+ return m_sort_keys[ix];
+ }
+
+ /**
+ @returns The entire buffer, as a character array.
+ This is for reusing the memory for merge buffers.
+ */
+ Bounds_checked_array<uchar> get_raw_buf()
+ {
+ return Bounds_checked_array<uchar>(m_rawmem, m_size_in_bytes);
+ }
/**
We need an assignment operator, see filesort().
@@ -117,20 +243,40 @@ class Filesort_buffer
*/
Filesort_buffer &operator=(const Filesort_buffer &rhs)
{
- m_idx_array= rhs.m_idx_array;
+ m_next_rec_ptr= rhs.m_next_rec_ptr;
+ m_rawmem= rhs.m_rawmem;
+ m_record_pointers= rhs.m_record_pointers;
+ m_sort_keys= rhs.m_sort_keys;
+ m_num_records= rhs.m_num_records;
m_record_length= rhs.m_record_length;
- m_start_of_data= rhs.m_start_of_data;
- allocated_size= rhs.allocated_size;
+ m_sort_length= rhs.m_sort_length;
+ m_size_in_bytes= rhs.m_size_in_bytes;
+ m_idx= rhs.m_idx;
return *this;
}
+ uint get_sort_length() const { return m_sort_length; }
+ void set_sort_length(uint val) { m_sort_length= val; }
+
private:
- typedef Bounds_checked_array<uchar*> Idx_array;
+ uchar *m_next_rec_ptr; /// The next record will be inserted here.
+ uchar *m_rawmem; /// The raw memory buffer.
+ uchar **m_record_pointers; /// The "right-to-left" array of record pointers.
+ uchar **m_sort_keys; /// Caches the value of get_sort_keys()
+ uint m_num_records; /// Saved value from alloc_sort_buffer()
+ uint m_record_length; /// Saved value from alloc_sort_buffer()
+ uint m_sort_length; /// The length of the sort key.
+ size_t m_size_in_bytes; /// Size of raw buffer, in bytes.
- Idx_array m_idx_array; /* Pointers to key data */
- uint m_record_length;
- uchar *m_start_of_data; /* Start of key data */
- size_t allocated_size;
+ /**
+ This is the index in the "right-to-left" array of the next record to
+ be inserted into the buffer. It is signed, because we use it in signed
+ expressions like:
+ m_record_pointers[-m_idx];
+ It is longlong rather than int, to ensure that it covers UINT_MAX32
+ without any casting/warning.
+ */
+ longlong m_idx;
};
#endif // FILESORT_UTILS_INCLUDED
diff --git a/sql/records.cc b/sql/records.cc
index 3d709182a4e..2b146abb005 100644
--- a/sql/records.cc
+++ b/sql/records.cc
@@ -38,8 +38,8 @@
static int rr_quick(READ_RECORD *info);
int rr_sequential(READ_RECORD *info);
static int rr_from_tempfile(READ_RECORD *info);
-static int rr_unpack_from_tempfile(READ_RECORD *info);
-static int rr_unpack_from_buffer(READ_RECORD *info);
+template<bool> static int rr_unpack_from_tempfile(READ_RECORD *info);
+template<bool> static int rr_unpack_from_buffer(READ_RECORD *info);
int rr_from_pointers(READ_RECORD *info);
static int rr_from_cache(READ_RECORD *info);
static int init_rr_cache(THD *thd, READ_RECORD *info);
@@ -187,23 +187,23 @@ bool init_read_record(READ_RECORD *info,THD *thd, TABLE *table,
bool disable_rr_cache)
{
IO_CACHE *tempfile;
- SORT_ADDON_FIELD *addon_field= filesort ? filesort->addon_field : 0;
DBUG_ENTER("init_read_record");
+ const bool using_addon_fields= filesort && filesort->using_addon_fields();
+
bzero((char*) info,sizeof(*info));
info->thd=thd;
info->table=table;
- info->addon_field= addon_field;
+ info->sort_info= filesort;
if ((table->s->tmp_table == INTERNAL_TMP_TABLE) &&
- !addon_field)
+ !using_addon_fields)
(void) table->file->extra(HA_EXTRA_MMAP);
- if (addon_field)
+ if (using_addon_fields)
{
- info->rec_buf= (uchar*) filesort->addon_buf.str;
- info->ref_length= (uint)filesort->addon_buf.length;
- info->unpack= filesort->unpack;
+ info->rec_buf= filesort->addon_fields->get_addon_buf();
+ info->ref_length= filesort->addon_fields->get_addon_buf_length();
}
else
{
@@ -223,9 +223,20 @@ bool init_read_record(READ_RECORD *info,THD *thd, TABLE *table,
if (tempfile && !(select && select->quick))
{
- DBUG_PRINT("info",("using rr_from_tempfile"));
- info->read_record_func=
- addon_field ? rr_unpack_from_tempfile : rr_from_tempfile;
+ if (using_addon_fields)
+ {
+ DBUG_PRINT("info",("using rr_from_tempfile"));
+ if (filesort->addon_fields->using_packed_addons())
+ info->read_record_func= rr_unpack_from_tempfile<true>;
+ else
+ info->read_record_func= rr_unpack_from_tempfile<false>;
+ }
+ else
+ {
+ DBUG_PRINT("info",("using rr_from_tempfile"));
+ info->read_record_func= rr_from_tempfile;
+ }
+
info->io_cache= tempfile;
reinit_io_cache(info->io_cache,READ_CACHE,0L,0,0);
info->ref_pos=table->file->ref;
@@ -239,7 +250,7 @@ bool init_read_record(READ_RECORD *info,THD *thd, TABLE *table,
and filesort->io_cache is read sequentially
*/
if (!disable_rr_cache &&
- !addon_field &&
+ !using_addon_fields &&
thd->variables.read_rnd_buff_size &&
!(table->file->ha_table_flags() & HA_FAST_KEY_READ) &&
(table->db_stat & HA_READ_ONLY ||
@@ -264,16 +275,29 @@ bool init_read_record(READ_RECORD *info,THD *thd, TABLE *table,
DBUG_PRINT("info",("using rr_quick"));
info->read_record_func= rr_quick;
}
- else if (filesort && filesort->record_pointers)
+ else if (filesort && filesort->has_filesort_result_in_memory())
{
DBUG_PRINT("info",("using record_pointers"));
if (unlikely(table->file->ha_rnd_init_with_error(0)))
DBUG_RETURN(1);
+
info->cache_pos= filesort->record_pointers;
- info->cache_end= (info->cache_pos+
- filesort->return_rows * info->ref_length);
- info->read_record_func=
- addon_field ? rr_unpack_from_buffer : rr_from_pointers;
+ if (using_addon_fields)
+ {
+ DBUG_PRINT("info",("using rr_unpack_from_buffer"));
+ DBUG_ASSERT(filesort->sorted_result_in_fsbuf);
+ info->unpack_counter= 0;
+ if (filesort->using_packed_addons())
+ info->read_record_func= rr_unpack_from_buffer<true>;
+ else
+ info->read_record_func= rr_unpack_from_buffer<false>;
+ }
+ else
+ {
+ info->cache_end= (info->cache_pos+
+ filesort->return_rows * info->ref_length);
+ info->read_record_func= rr_from_pointers;
+ }
}
else if (table->file->keyread_enabled())
{
@@ -510,7 +534,11 @@ static int rr_from_tempfile(READ_RECORD *info)
the fields values use in the result set from this buffer into their
positions in the regular record buffer.
- @param info Reference to the context including record descriptors
+ @param info Reference to the context including record
+ descriptors
+ @param Packed_addon_fields Are the addon fields packed?
+ This is a compile-time constant, to
+ avoid if (....) tests during execution.
@retval
0 Record successfully read.
@@ -518,12 +546,38 @@ static int rr_from_tempfile(READ_RECORD *info)
-1 There is no record to be read anymore.
*/
+template<bool Packed_addon_fields>
static int rr_unpack_from_tempfile(READ_RECORD *info)
{
- if (my_b_read(info->io_cache, info->rec_buf, info->ref_length))
- return -1;
- (*info->unpack)(info->addon_field, info->rec_buf,
- info->rec_buf + info->ref_length);
+ uchar *destination= info->rec_buf;
+#ifndef DBUG_OFF
+ my_off_t where= my_b_tell(info->io_cache);
+#endif
+ if (Packed_addon_fields)
+ {
+ const uint len_sz= Addon_fields::size_of_length_field;
+
+ // First read length of the record.
+ if (my_b_read(info->io_cache, destination, len_sz))
+ return -1;
+ uint res_length= Addon_fields::read_addon_length(destination);
+ DBUG_PRINT("info", ("rr_unpack from %llu to %p sz %u",
+ static_cast<ulonglong>(where),
+ destination, res_length));
+ DBUG_ASSERT(res_length > len_sz);
+ DBUG_ASSERT(info->sort_info->using_addon_fields());
+
+ // Then read the rest of the record.
+ if (my_b_read(info->io_cache, destination + len_sz, res_length - len_sz))
+ return -1; /* purecov: inspected */
+ }
+ else
+ {
+ if (my_b_read(info->io_cache, destination, info->ref_length))
+ return -1;
+ }
+
+ info->sort_info->unpack_addon_fields<Packed_addon_fields>(destination);
return 0;
}
@@ -560,7 +614,11 @@ int rr_from_pointers(READ_RECORD *info)
the fields values use in the result set from this buffer into their
positions in the regular record buffer.
- @param info Reference to the context including record descriptors
+ @param info Reference to the context including record
+ descriptors
+ @param Packed_addon_fields Are the addon fields packed?
+ This is a compile-time constant, to
+ avoid if (....) tests during execution.
@retval
0 Record successfully read.
@@ -568,13 +626,17 @@ int rr_from_pointers(READ_RECORD *info)
-1 There is no record to be read anymore.
*/
+template<bool Packed_addon_fields>
static int rr_unpack_from_buffer(READ_RECORD *info)
{
- if (info->cache_pos == info->cache_end)
+ if (info->unpack_counter == info->sort_info->return_rows)
return -1; /* End of buffer */
- (*info->unpack)(info->addon_field, info->cache_pos,
- info->cache_end);
- info->cache_pos+= info->ref_length;
+
+ uchar *record= info->sort_info->get_sorted_record(
+ static_cast<uint>(info->unpack_counter));
+ uchar *plen= record + info->sort_info->get_sort_length();
+ info->sort_info->unpack_addon_fields<Packed_addon_fields>(plen);
+ info->unpack_counter++;
return 0;
}
/* cacheing of records from a database */
@@ -709,3 +771,26 @@ static int rr_cmp(uchar *a,uchar *b)
return (int) a[7] - (int) b[7];
#endif
}
+
+template<bool Packed_addon_fields>
+inline void SORT_INFO::unpack_addon_fields(uchar *buff)
+{
+ SORT_ADDON_FIELD *addonf= addon_fields->begin();
+ uchar *buff_end= buff + sort_buffer_size();
+ const uchar *start_of_record= buff + addonf->offset;
+
+ for ( ; addonf != addon_fields->end() ; addonf++)
+ {
+ Field *field= addonf->field;
+ if (addonf->null_bit && (addonf->null_bit & buff[addonf->null_offset]))
+ {
+ field->set_null();
+ continue;
+ }
+ field->set_notnull();
+ if (Packed_addon_fields)
+ start_of_record= field->unpack(field->ptr, start_of_record, buff_end, 0);
+ else
+ field->unpack(field->ptr, buff + addonf->offset, buff_end, 0);
+ }
+}
diff --git a/sql/records.h b/sql/records.h
index faf0d13c9a9..04dc06b3c74 100644
--- a/sql/records.h
+++ b/sql/records.h
@@ -58,13 +58,23 @@ struct READ_RECORD
THD *thd;
SQL_SELECT *select;
uint ref_length, reclength, rec_cache_size, error_offset;
+
+ /**
+ Counting records when reading result from filesort().
+ Used when filesort leaves the result in the filesort buffer.
+ */
+ ha_rows unpack_counter;
+
uchar *ref_pos; /* pointer to form->refpos */
uchar *rec_buf; /* to read field values after filesort */
uchar *cache,*cache_pos,*cache_end,*read_positions;
- struct st_sort_addon_field *addon_field; /* Pointer to the fields info */
+
+ /*
+ Structure storing information about sorting
+ */
+ SORT_INFO *sort_info;
struct st_io_cache *io_cache;
bool print_error;
- void (*unpack)(struct st_sort_addon_field *, uchar *, uchar *);
int read_record() { return read_record_func(this); }
uchar *record() const { return table->record[0]; }
diff --git a/sql/sql_array.h b/sql/sql_array.h
index bcfbb98ef19..b05e8f779bd 100644
--- a/sql/sql_array.h
+++ b/sql/sql_array.h
@@ -85,6 +85,10 @@ template <typename Element_type> class Bounds_checked_array
Element_type *array() const { return m_array; }
+ Element_type *begin() const { return array(); }
+ Element_type *end() const { return array() + m_size; }
+
+
bool operator==(const Bounds_checked_array<Element_type>&rhs) const
{
return m_array == rhs.m_array && m_size == rhs.m_size;
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index bece1f9bee2..4bd1ddf7164 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -13987,7 +13987,7 @@ remove_const(JOIN *join,ORDER *first_order, COND *cond,
*simple_order= head->on_expr_ref[0] == NULL;
if (*simple_order && head->table->file->ha_table_flags() & HA_SLOW_RND_POS)
{
- uint u1, u2, u3;
+ uint u1, u2, u3, u4;
/*
normally the condition is (see filesort_use_addons())
@@ -13998,7 +13998,7 @@ remove_const(JOIN *join,ORDER *first_order, COND *cond,
TODO proper cost estimations
*/
- *simple_order= filesort_use_addons(head->table, 0, &u1, &u2, &u3);
+ *simple_order= filesort_use_addons(head->table, 0, &u1, &u2, &u3, &u4);
}
}
else
diff --git a/sql/sql_sort.h b/sql/sql_sort.h
index 7abbc808632..5aa8f4545a4 100644
--- a/sql/sql_sort.h
+++ b/sql/sql_sort.h
@@ -20,8 +20,6 @@
#include <my_sys.h> /* qsort2_cmp */
#include "queues.h"
-typedef struct st_buffpek BUFFPEK;
-
struct SORT_FIELD;
class Field;
struct TABLE;
@@ -64,21 +62,236 @@ struct BUFFPEK_COMPARE_CONTEXT
};
+/**
+ Descriptor for a merge chunk to be sort-merged.
+ A merge chunk is a sequence of pre-sorted records, written to a
+ temporary file. A Merge_chunk instance describes where this chunk is stored
+ in the file, and where it is located when it is in memory.
+
+ It is a POD because
+ - we read/write them from/to files.
+
+ We have accessors (getters/setters) for all struct members.
+ */
+
+struct Merge_chunk {
+public:
+ Merge_chunk(): m_current_key(NULL),
+ m_file_position(0),
+ m_buffer_start(NULL),
+ m_buffer_end(NULL),
+ m_rowcount(0),
+ m_mem_count(0),
+ m_max_keys(0)
+ {}
+
+ my_off_t file_position() const { return m_file_position; }
+ void set_file_position(my_off_t val) { m_file_position= val; }
+ void advance_file_position(my_off_t val) { m_file_position+= val; }
+
+ uchar *buffer_start() { return m_buffer_start; }
+ const uchar *buffer_end() const { return m_buffer_end; }
+
+ void set_buffer(uchar *start, uchar *end)
+ {
+ m_buffer_start= start;
+ m_buffer_end= end;
+ }
+ void set_buffer_start(uchar *start)
+ {
+ m_buffer_start= start;
+ }
+ void set_buffer_end(uchar *end)
+ {
+ DBUG_ASSERT(m_buffer_end == NULL || end <= m_buffer_end);
+ m_buffer_end= end;
+ }
+
+ void init_current_key() { m_current_key= m_buffer_start; }
+ uchar *current_key() { return m_current_key; }
+ void advance_current_key(uint val) { m_current_key+= val; }
+
+ void decrement_rowcount(ha_rows val) { m_rowcount-= val; }
+ void set_rowcount(ha_rows val) { m_rowcount= val; }
+ ha_rows rowcount() const { return m_rowcount; }
+
+ ha_rows mem_count() const { return m_mem_count; }
+ void set_mem_count(ha_rows val) { m_mem_count= val; }
+ ha_rows decrement_mem_count() { return --m_mem_count; }
+
+ ha_rows max_keys() const { return m_max_keys; }
+ void set_max_keys(ha_rows val) { m_max_keys= val; }
+
+ size_t buffer_size() const { return m_buffer_end - m_buffer_start; }
+
+ /**
+ Tries to merge *this with *mc, returns true if successful.
+ The assumption is that *this is no longer in use,
+ and the space it has been allocated can be handed over to a
+ buffer which is adjacent to it.
+ */
+ bool merge_freed_buff(Merge_chunk *mc) const
+ {
+ if (mc->m_buffer_end == m_buffer_start)
+ {
+ mc->m_buffer_end= m_buffer_end;
+ mc->m_max_keys+= m_max_keys;
+ return true;
+ }
+ else if (mc->m_buffer_start == m_buffer_end)
+ {
+ mc->m_buffer_start= m_buffer_start;
+ mc->m_max_keys+= m_max_keys;
+ return true;
+ }
+ return false;
+ }
+
+ uchar *m_current_key; /// The current key for this chunk.
+ my_off_t m_file_position;/// Current position in the file to be sorted.
+ uchar *m_buffer_start; /// Start of main-memory buffer for this chunk.
+ uchar *m_buffer_end; /// End of main-memory buffer for this chunk.
+ ha_rows m_rowcount; /// Number of unread rows in this chunk.
+ ha_rows m_mem_count; /// Number of rows in the main-memory buffer.
+ ha_rows m_max_keys; /// If we have fixed-size rows:
+ /// max number of rows in buffer.
+};
+
+typedef Bounds_checked_array<SORT_ADDON_FIELD> Addon_fields_array;
+
+/**
+ This class wraps information about usage of addon fields.
+ An Addon_fields object is used both during packing of data in the filesort
+ buffer, and later during unpacking in 'Filesort_info::unpack_addon_fields'.
+
+ @see documentation for the Sort_addon_field struct.
+ @see documentation for get_addon_fields()
+ */
+class Addon_fields {
+public:
+ Addon_fields(Addon_fields_array arr)
+ : m_field_descriptors(arr),
+ m_addon_buf(),
+ m_addon_buf_length(),
+ m_using_packed_addons(false)
+ {
+ DBUG_ASSERT(!arr.is_null());
+ }
+
+ SORT_ADDON_FIELD *begin() { return m_field_descriptors.begin(); }
+ SORT_ADDON_FIELD *end() { return m_field_descriptors.end(); }
+
+ /// rr_unpack_from_tempfile needs an extra buffer when unpacking.
+ uchar *allocate_addon_buf(uint sz)
+ {
+ m_addon_buf= (uchar *)my_malloc(sz, MYF(MY_WME | MY_THREAD_SPECIFIC));
+ if (m_addon_buf)
+ m_addon_buf_length= sz;
+ return m_addon_buf;
+ }
+
+ void free_addon_buff()
+ {
+ my_free(m_addon_buf);
+ m_addon_buf= NULL;
+ m_addon_buf_length= 0;
+ }
+
+ uchar *get_addon_buf() { return m_addon_buf; }
+ uint get_addon_buf_length() const { return m_addon_buf_length; }
+
+ void set_using_packed_addons(bool val)
+ {
+ m_using_packed_addons= val;
+ }
+
+ bool using_packed_addons() const
+ {
+ return m_using_packed_addons;
+ }
+
+ static bool can_pack_addon_fields(uint record_length)
+ {
+ return (record_length <= (0xFFFF));
+ }
+
+ /**
+ @returns Total number of bytes used for packed addon fields.
+ the size of the length field + size of null bits + sum of field sizes.
+ */
+ static uint read_addon_length(uchar *p)
+ {
+ return size_of_length_field + uint2korr(p);
+ }
+
+ /**
+ Stores the number of bytes used for packed addon fields.
+ */
+ static void store_addon_length(uchar *p, uint sz)
+ {
+ // We actually store the length of everything *after* the length field.
+ int2store(p, sz - size_of_length_field);
+ }
+
+ static const uint size_of_length_field= 2;
+
+private:
+ Addon_fields_array m_field_descriptors;
+
+ uchar *m_addon_buf; ///< Buffer for unpacking addon fields.
+ uint m_addon_buf_length; ///< Length of the buffer.
+ bool m_using_packed_addons; ///< Are we packing the addon fields?
+};
+
+
+/**
+ There are two record formats for sorting:
+ |<key a><key b>...|<rowid>|
+ / sort_length / ref_l /
+
+ or with "addon fields"
+ |<key a><key b>...|<null bits>|<field a><field b>...|
+ / sort_length / addon_length /
+
+ The packed format for "addon fields"
+ |<key a><key b>...|<length>|<null bits>|<field a><field b>...|
+ / sort_length / addon_length /
+
+ <key> Fields are fixed-size, specially encoded with
+ Field::make_sort_key() so we can do byte-by-byte compare.
+ <length> Contains the *actual* packed length (after packing) of
+ everything after the sort keys.
+ The size of the length field is 2 bytes,
+ which should cover most use cases: addon data <= 65535 bytes.
+ This is the same as max record size in MySQL.
+ <null bits> One bit for each nullable field, indicating whether the field
+ is null or not. May have size zero if no fields are nullable.
+ <field xx> Are stored with field->pack(), and retrieved with
+ field->unpack(). Addon fields within a record are stored
+ consecutively, with no "holes" or padding. They will have zero
+ size for NULL values.
+
+*/
+
class Sort_param {
public:
uint rec_length; // Length of sorted records.
uint sort_length; // Length of sorted columns.
uint ref_length; // Length of record ref.
+ uint addon_length; // Length of addon_fields
uint res_length; // Length of records in final sorted file/buffer.
uint max_keys_per_buffer; // Max keys / buffer.
uint min_dupl_count;
ha_rows max_rows; // Select limit, or HA_POS_ERROR if unlimited.
ha_rows examined_rows; // Number of examined rows.
TABLE *sort_form; // For quicker make_sortkey.
- SORT_FIELD *local_sortorder;
- SORT_FIELD *end;
- SORT_ADDON_FIELD *addon_field; // Descriptors for companion fields.
- LEX_STRING addon_buf; // Buffer & length of added packed fields.
+ /**
+ ORDER BY list with some precalculated info for filesort.
+ Array is created and owned by a Filesort instance.
+ */
+ Bounds_checked_array<SORT_FIELD> local_sortorder;
+ Addon_fields *addon_fields; // Descriptors for companion fields.
+ bool using_pq;
uchar *unique_buff;
bool not_killable;
@@ -93,21 +306,63 @@ class Sort_param {
}
void init_for_filesort(uint sortlen, TABLE *table,
ha_rows maxrows, bool sort_positions);
+ /// Enables the packing of addons if possible.
+ void try_to_pack_addons(ulong max_length_for_sort_data);
+
+ /// Are we packing the "addon fields"?
+ bool using_packed_addons() const
+ {
+ DBUG_ASSERT(m_using_packed_addons ==
+ (addon_fields != NULL &&
+ addon_fields->using_packed_addons()));
+ return m_using_packed_addons;
+ }
+
+ /// Are we using "addon fields"?
+ bool using_addon_fields() const
+ {
+ return addon_fields != NULL;
+ }
+
+ /**
+ Getter for record length and result length.
+ @param record_start Pointer to record.
+ @param [out] recl Store record length here.
+ @param [out] resl Store result length here.
+ */
+ void get_rec_and_res_len(uchar *record_start, uint *recl, uint *resl)
+ {
+ if (!using_packed_addons())
+ {
+ *recl= rec_length;
+ *resl= res_length;
+ return;
+ }
+ uchar *plen= record_start + sort_length;
+ *resl= Addon_fields::read_addon_length(plen);
+ DBUG_ASSERT(*resl <= res_length);
+ const uchar *record_end= plen + *resl;
+ *recl= static_cast<uint>(record_end - record_start);
+ }
+
+private:
+ uint m_packable_length;
+ bool m_using_packed_addons; ///< caches the value of using_packed_addons()
};
+typedef Bounds_checked_array<uchar> Sort_buffer;
-int merge_many_buff(Sort_param *param, uchar *sort_buffer,
- BUFFPEK *buffpek,
- uint *maxbuffer, IO_CACHE *t_file);
-ulong read_to_buffer(IO_CACHE *fromfile,BUFFPEK *buffpek,
- uint sort_length);
+int merge_many_buff(Sort_param *param, Sort_buffer sort_buffer,
+ Merge_chunk *buffpek, uint *maxbuffer, IO_CACHE *t_file);
+ulong read_to_buffer(IO_CACHE *fromfile, Merge_chunk *buffpek,
+ Sort_param *param);
bool merge_buffers(Sort_param *param,IO_CACHE *from_file,
- IO_CACHE *to_file, uchar *sort_buffer,
- BUFFPEK *lastbuff,BUFFPEK *Fb,
- BUFFPEK *Tb,int flag);
-int merge_index(Sort_param *param, uchar *sort_buffer,
- BUFFPEK *buffpek, uint maxbuffer,
- IO_CACHE *tempfile, IO_CACHE *outfile);
-void reuse_freed_buff(QUEUE *queue, BUFFPEK *reuse, uint key_length);
+ IO_CACHE *to_file, Sort_buffer sort_buffer,
+ Merge_chunk *lastbuff, Merge_chunk *Fb,
+ Merge_chunk *Tb, int flag);
+int merge_index(Sort_param *param, Sort_buffer sort_buffer,
+ Merge_chunk *buffpek, uint maxbuffer,
+ IO_CACHE *tempfile, IO_CACHE *outfile);
+void reuse_freed_buff(QUEUE *queue, Merge_chunk *reuse, uint key_length);
#endif /* SQL_SORT_INCLUDED */
diff --git a/sql/uniques.cc b/sql/uniques.cc
index fafb44b56a0..a8170951e88 100644
--- a/sql/uniques.cc
+++ b/sql/uniques.cc
@@ -39,7 +39,6 @@
#include "my_tree.h" // element_count
#include "uniques.h" // Unique
#include "sql_sort.h"
-#include "myisamchk.h" // BUFFPEK
int unique_write_to_file(uchar* key, element_count count, Unique *unique)
{
@@ -94,7 +93,7 @@ Unique::Unique(qsort_cmp2 comp_func, void * comp_func_fixed_arg,
init_tree(&tree, (max_in_memory_size / 16), 0, size, comp_func,
NULL, comp_func_fixed_arg, MYF(MY_THREAD_SPECIFIC));
/* If the following fail's the next add will also fail */
- my_init_dynamic_array(&file_ptrs, sizeof(BUFFPEK), 16, 16,
+ my_init_dynamic_array(&file_ptrs, sizeof(Merge_chunk), 16, 16,
MYF(MY_THREAD_SPECIFIC));
/*
If you change the following, change it in get_max_elements function, too.
@@ -375,10 +374,10 @@ Unique::~Unique()
/* Write tree to disk; clear tree */
bool Unique::flush()
{
- BUFFPEK file_ptr;
+ Merge_chunk file_ptr;
elements+= tree.elements_in_tree;
- file_ptr.count=tree.elements_in_tree;
- file_ptr.file_pos=my_b_tell(&file);
+ file_ptr.set_rowcount(tree.elements_in_tree);
+ file_ptr.set_file_position(my_b_tell(&file));
tree_walk_action action= min_dupl_count ?
(tree_walk_action) unique_write_to_file_with_count :
@@ -490,7 +489,7 @@ void put_counter_into_merged_element(void *ptr, uint ofs, element_count cnt)
*/
static bool merge_walk(uchar *merge_buffer, size_t merge_buffer_size,
- uint key_length, BUFFPEK *begin, BUFFPEK *end,
+ uint key_length, Merge_chunk *begin, Merge_chunk *end,
tree_walk_action walk_action, void *walk_action_arg,
qsort_cmp2 compare, void *compare_arg,
IO_CACHE *file, bool with_counters)
@@ -499,7 +498,8 @@ static bool merge_walk(uchar *merge_buffer, size_t merge_buffer_size,
QUEUE queue;
if (end <= begin ||
merge_buffer_size < (size_t) (key_length * (end - begin + 1)) ||
- init_queue(&queue, (uint) (end - begin), offsetof(BUFFPEK, key), 0,
+ init_queue(&queue, (uint) (end - begin),
+ offsetof(Merge_chunk, m_current_key), 0,
buffpek_compare, &compare_context, 0, 0))
return 1;
/* we need space for one key when a piece of merge buffer is re-read */
@@ -510,10 +510,16 @@ static bool merge_walk(uchar *merge_buffer, size_t merge_buffer_size,
/* if piece_size is aligned reuse_freed_buffer will always hit */
uint piece_size= max_key_count_per_piece * key_length;
ulong bytes_read; /* to hold return value of read_to_buffer */
- BUFFPEK *top;
+ Merge_chunk *top;
int res= 1;
uint cnt_ofs= key_length - (with_counters ? sizeof(element_count) : 0);
element_count cnt;
+
+ // read_to_buffer() needs only rec_length.
+ Sort_param sort_param;
+ sort_param.rec_length= key_length;
+ DBUG_ASSERT(!sort_param.using_addon_fields());
+
/*
Invariant: queue must contain top element from each tree, until a tree
is not completely walked through.
@@ -522,15 +528,16 @@ static bool merge_walk(uchar *merge_buffer, size_t merge_buffer_size,
*/
for (top= begin; top != end; ++top)
{
- top->base= merge_buffer + (top - begin) * piece_size;
- top->max_keys= max_key_count_per_piece;
- bytes_read= read_to_buffer(file, top, key_length);
+ top->set_buffer_start(merge_buffer + (top - begin) * piece_size);
+ top->set_buffer_end(top->buffer_start() + piece_size);
+ top->set_max_keys(max_key_count_per_piece);
+ bytes_read= read_to_buffer(file, top, &sort_param);
if (unlikely(bytes_read == (ulong) -1))
goto end;
DBUG_ASSERT(bytes_read);
queue_insert(&queue, (uchar *) top);
}
- top= (BUFFPEK *) queue_top(&queue);
+ top= (Merge_chunk *) queue_top(&queue);
while (queue.elements > 1)
{
/*
@@ -540,20 +547,21 @@ static bool merge_walk(uchar *merge_buffer, size_t merge_buffer_size,
elements in each tree are unique. Action is applied only to unique
elements.
*/
- void *old_key= top->key;
+ void *old_key= top->current_key();
/*
read next key from the cache or from the file and push it to the
queue; this gives new top.
*/
- top->key+= key_length;
- if (--top->mem_count)
+ top->advance_current_key(key_length);
+ top->decrement_mem_count();
+ if (top->mem_count())
queue_replace_top(&queue);
else /* next piece should be read */
{
/* save old_key not to overwrite it in read_to_buffer */
memcpy(save_key_buff, old_key, key_length);
old_key= save_key_buff;
- bytes_read= read_to_buffer(file, top, key_length);
+ bytes_read= read_to_buffer(file, top, &sort_param);
if (unlikely(bytes_read == (ulong) -1))
goto end;
else if (bytes_read) /* top->key, top->mem_count are reset */
@@ -568,9 +576,9 @@ static bool merge_walk(uchar *merge_buffer, size_t merge_buffer_size,
reuse_freed_buff(&queue, top, key_length);
}
}
- top= (BUFFPEK *) queue_top(&queue);
+ top= (Merge_chunk *) queue_top(&queue);
/* new top has been obtained; if old top is unique, apply the action */
- if (compare(compare_arg, old_key, top->key))
+ if (compare(compare_arg, old_key, top->current_key()))
{
cnt= with_counters ?
get_counter_from_merged_element(old_key, cnt_ofs) : 1;
@@ -579,9 +587,9 @@ static bool merge_walk(uchar *merge_buffer, size_t merge_buffer_size,
}
else if (with_counters)
{
- cnt= get_counter_from_merged_element(top->key, cnt_ofs);
+ cnt= get_counter_from_merged_element(top->current_key(), cnt_ofs);
cnt+= get_counter_from_merged_element(old_key, cnt_ofs);
- put_counter_into_merged_element(top->key, cnt_ofs, cnt);
+ put_counter_into_merged_element(top->current_key(), cnt_ofs, cnt);
}
}
/*
@@ -595,13 +603,13 @@ static bool merge_walk(uchar *merge_buffer, size_t merge_buffer_size,
{
cnt= with_counters ?
- get_counter_from_merged_element(top->key, cnt_ofs) : 1;
- if (walk_action(top->key, cnt, walk_action_arg))
+ get_counter_from_merged_element(top->current_key(), cnt_ofs) : 1;
+ if (walk_action(top->current_key(), cnt, walk_action_arg))
goto end;
- top->key+= key_length;
+ top->advance_current_key(key_length);
}
- while (--top->mem_count);
- bytes_read= read_to_buffer(file, top, key_length);
+ while (top->decrement_mem_count());
+ bytes_read= read_to_buffer(file, top, &sort_param);
if (unlikely(bytes_read == (ulong) -1))
goto end;
}
@@ -657,13 +665,14 @@ bool Unique::walk(TABLE *table, tree_walk_action action, void *walk_action_arg)
if (!(merge_buffer = (uchar *)my_malloc(buff_sz, MYF(MY_WME))))
return 1;
if (buff_sz < full_size * (file_ptrs.elements + 1UL))
- res= merge(table, merge_buffer, buff_sz >= full_size * MERGEBUFF2) ;
+ res= merge(table, merge_buffer, buff_sz,
+ buff_sz >= full_size * MERGEBUFF2) ;
if (!res)
{
res= merge_walk(merge_buffer, buff_sz, full_size,
- (BUFFPEK *) file_ptrs.buffer,
- (BUFFPEK *) file_ptrs.buffer + file_ptrs.elements,
+ (Merge_chunk *) file_ptrs.buffer,
+ (Merge_chunk *) file_ptrs.buffer + file_ptrs.elements,
action, walk_action_arg,
tree.compare, tree.custom_arg, &file, with_counters);
}
@@ -684,16 +693,18 @@ bool Unique::walk(TABLE *table, tree_walk_action action, void *walk_action_arg)
All params are 'IN':
table the parameter to access sort context
buff merge buffer
+ buff_size size of merge buffer
without_last_merge TRUE <=> do not perform the last merge
RETURN VALUE
0 OK
<> 0 error
*/
-bool Unique::merge(TABLE *table, uchar *buff, bool without_last_merge)
+bool Unique::merge(TABLE *table, uchar *buff, size_t buff_size,
+ bool without_last_merge)
{
IO_CACHE *outfile= &sort.io_cache;
- BUFFPEK *file_ptr= (BUFFPEK*) file_ptrs.buffer;
+ Merge_chunk *file_ptr= (Merge_chunk*) file_ptrs.buffer;
uint maxbuffer= file_ptrs.elements - 1;
my_off_t save_pos;
bool error= 1;
@@ -724,7 +735,9 @@ bool Unique::merge(TABLE *table, uchar *buff, bool without_last_merge)
sort_param.cmp_context.key_compare_arg= tree.custom_arg;
/* Merge the buffers to one file, removing duplicates */
- if (merge_many_buff(&sort_param,buff,file_ptr,&maxbuffer,&file))
+ if (merge_many_buff(&sort_param,
+ Bounds_checked_array<uchar>(buff, buff_size),
+ file_ptr,&maxbuffer,&file))
goto err;
if (flush_io_cache(&file) ||
reinit_io_cache(&file,READ_CACHE,0L,0,0))
@@ -736,7 +749,8 @@ bool Unique::merge(TABLE *table, uchar *buff, bool without_last_merge)
file_ptrs.elements= maxbuffer+1;
return 0;
}
- if (merge_index(&sort_param, buff, file_ptr, maxbuffer, &file, outfile))
+ if (merge_index(&sort_param, Bounds_checked_array<uchar>(buff, buff_size),
+ file_ptr, maxbuffer, &file, outfile))
goto err;
error= 0;
err:
@@ -791,7 +805,7 @@ bool Unique::get(TABLE *table)
MYF(MY_THREAD_SPECIFIC|MY_WME))))
DBUG_RETURN(1);
- if (merge(table, sort_buffer, FALSE))
+ if (merge(table, sort_buffer, buff_sz, FALSE))
goto err;
rc= 0;
diff --git a/sql/uniques.h b/sql/uniques.h
index 654b3692aaa..f83eac36855 100644
--- a/sql/uniques.h
+++ b/sql/uniques.h
@@ -39,7 +39,7 @@ class Unique :public Sql_alloc
uint min_dupl_count; /* always 0 for unions, > 0 for intersections */
bool with_counters;
- bool merge(TABLE *table, uchar *buff, bool without_last_merge);
+ bool merge(TABLE *table, uchar *buff, size_t size, bool without_last_merge);
bool flush();
public:
diff --git a/storage/connect/mysql-test/connect/r/mysql_index.result b/storage/connect/mysql-test/connect/r/mysql_index.result
index b0c88b16fef..5f8f41f6218 100644
--- a/storage/connect/mysql-test/connect/r/mysql_index.result
+++ b/storage/connect/mysql-test/connect/r/mysql_index.result
@@ -299,11 +299,11 @@ matricule nom prenom
7626 HENIN PHILIPPE
403 HERMITTE PHILIPPE
9096 HELENA PHILIPPE
-SELECT matricule, nom, prenom FROM t2 ORDER BY nom LIMIT 10;
+SELECT matricule, nom, prenom FROM t2 ORDER BY nom,prenom LIMIT 10;
matricule nom prenom
4552 ABBADIE MONIQUE
-6627 ABBAYE GERALD
307 ABBAYE ANNICK
+6627 ABBAYE GERALD
7961 ABBE KATIA
1340 ABBE MICHELE
9270 ABBE SOPHIE
diff --git a/storage/connect/mysql-test/connect/t/mysql_index.test b/storage/connect/mysql-test/connect/t/mysql_index.test
index 74dc48f42c8..e36a827ac3c 100644
--- a/storage/connect/mysql-test/connect/t/mysql_index.test
+++ b/storage/connect/mysql-test/connect/t/mysql_index.test
@@ -120,7 +120,7 @@ SELECT matricule, nom, prenom FROM t2 WHERE nom <= 'ABEL' OR nom > 'YVON';
SELECT matricule, nom, prenom FROM t2 WHERE nom > 'HELEN' AND nom < 'HEROS';
SELECT matricule, nom, prenom FROM t2 WHERE nom BETWEEN 'HELEN' AND 'HEROS';
SELECT matricule, nom, prenom FROM t2 WHERE nom BETWEEN 'HELEN' AND 'HEROS' AND prenom = 'PHILIPPE';
-SELECT matricule, nom, prenom FROM t2 ORDER BY nom LIMIT 10;
+SELECT matricule, nom, prenom FROM t2 ORDER BY nom,prenom LIMIT 10;
SELECT a.nom, a.prenom, b.nom FROM t1 a STRAIGHT_JOIN t2 b ON a.prenom = b.prenom WHERE a.nom = 'FOCH' AND a.nom != b.nom;
DROP TABLE t2;
1
0