revision-id: 6cb2ab53284a64e0f2aba48f458cd4a6028a4639 (mariadb-10.3.6-108-g6cb2ab53284)
parent(s): 9e114455a95c15cd1e37dabef0dff1fe2588d50a
author: Galina Shalygina
committer: Galina Shalygina
timestamp: 2019-02-07 13:22:07 +0300
message:
MDEV-18144 ANALYZE fixes
Fix bugs caused by changes for ANALYZE
---
sql/sql_explain.cc | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)
diff --git a/sql/sql_explain.cc b/sql/sql_explain.cc
index fbec10387d8..0e7f8f377aa 100644
--- a/sql/sql_explain.cc
+++ b/sql/sql_explain.cc
@@ -392,11 +392,19 @@ int print_explain_row(select_result_sink *result,
item_list.push_back(item_null, mem_root);
/* 'r_rows' */
+ StringBuffer<64> r_rows_str;
if (is_analyze)
{
if (r_rows)
- item_list.push_back(new (mem_root) Item_float(thd, *r_rows, 2),
- mem_root);
+ {
+ Item_float *fl= new (mem_root) Item_float(thd, *r_rows, 2);
+ String tmp;
+ String *res= fl->val_str(&tmp);
+ r_rows_str.append(res->ptr());
+ item_list.push_back(new (mem_root)
+ Item_string_sys(thd, r_rows_str.ptr(),
+ r_rows_str.length()), mem_root);
+ }
else
item_list.push_back(item_null, mem_root);
}
@@ -529,10 +537,17 @@ int Explain_union::print_explain(Explain_query *query,
item_list.push_back(item_null, mem_root);
/* `r_rows` */
+ StringBuffer<64> r_rows_str;
if (is_analyze)
{
double avg_rows= fake_select_lex_tracker.get_avg_rows();
- item_list.push_back(new (mem_root) Item_float(thd, avg_rows, 2), mem_root);
+ Item_float *fl= new (mem_root) Item_float(thd, avg_rows, 2);
+ String tmp;
+ String *res= fl->val_str(&tmp);
+ r_rows_str.append(res->ptr());
+ item_list.push_back(new (mem_root)
+ Item_string_sys(thd, r_rows_str.ptr(),
+ r_rows_str.length()), mem_root);
}
/* `filtered` */
1
0
revision-id: 3f9040085a0de4976f55bc7e4a2fa5fa8d923100 (mariadb-10.3.6-131-g3f90400)
parent(s): 16327fc2e76e9215059894b461e8aca7f989da00 e80bcd7f64fc8ff6f46c1fc0d01e9c0b0fd03064
author: Igor Babaev
committer: Igor Babaev
timestamp: 2019-02-06 18:01:29 -0800
message:
Merge branch '10.4' into bb-10.4-mdev17096
.gitignore | 4 +
.gitmodules | 4 +
.travis.compiler.sh | 13 +-
.travis.yml | 65 +-
BUILD/SETUP.sh | 5 +-
CMakeLists.txt | 8 +-
CONTRIBUTING.md | 47 +
CREDITS | 4 +-
Docs/INSTALL-BINARY | 24 +-
Docs/README-wsrep | 50 +-
Docs/glibc-2.2.5.patch | 137 -
Docs/linuxthreads.txt | 19 -
Docs/sp-imp-spec.txt | 1100 -
KNOWN_BUGS.txt | 38 +-
README.md | 40 +-
VERSION | 4 +-
appveyor.yml | 4 +-
client/CMakeLists.txt | 3 +-
client/mysql.cc | 16 +-
client/mysql_upgrade.c | 10 +-
client/mysqladmin.cc | 2 +-
client/mysqlbinlog.cc | 16 +-
client/mysqldump.c | 14 +-
client/mysqlimport.c | 5 +-
client/mysqlshow.c | 4 +-
client/mysqlslap.c | 2 +-
client/mysqltest.cc | 61 +-
cmake/CPackRPM.cmake | 34 +-
cmake/configure.pl | 15 +
cmake/cpack_rpm.cmake | 10 +-
cmake/install_macros.cmake | 23 +-
cmake/libutils.cmake | 12 +-
cmake/make_dist.cmake.in | 8 +
cmake/mariadb_connector_c.cmake | 5 +-
cmake/os/Windows.cmake | 24 +-
cmake/os/WindowsCache.cmake | 1 +
cmake/plugin.cmake | 7 +-
cmake/ssl.cmake | 4 +-
cmake/submodules.cmake | 12 +-
cmake/wsrep.cmake | 15 +-
cmake/zlib.cmake | 21 +-
config.h.cmake | 9 +-
configure.cmake | 12 +-
debian/additions/debian-start | 2 +-
debian/additions/debian-start.inc.sh | 2 +-
debian/autobake-deb.sh | 8 +-
debian/control | 6 +-
debian/mariadb-server-10.4.install | 5 +-
debian/mariadb-server-10.4.postinst | 60 +-
debian/rules | 6 +-
extra/innochecksum.cc | 40 +-
extra/mariabackup/CMakeLists.txt | 29 +-
extra/mariabackup/backup_copy.cc | 179 +-
extra/mariabackup/backup_mysql.cc | 285 +-
extra/mariabackup/changed_page_bitmap.cc | 26 +-
extra/mariabackup/common.h | 71 +-
extra/mariabackup/crc/crc-intel-pclmul.c | 2 +-
extra/mariabackup/datasink.c | 141 -
extra/mariabackup/datasink.cc | 138 +
extra/mariabackup/ds_archive.c | 281 -
extra/mariabackup/ds_archive.cc | 281 +
extra/mariabackup/ds_buffer.c | 189 -
extra/mariabackup/ds_buffer.cc | 189 +
extra/mariabackup/ds_compress.c | 463 -
extra/mariabackup/ds_compress.cc | 463 +
extra/mariabackup/ds_local.cc | 1 -
extra/mariabackup/ds_stdout.c | 122 -
extra/mariabackup/ds_stdout.cc | 122 +
extra/mariabackup/ds_tmpfile.c | 234 -
extra/mariabackup/ds_tmpfile.cc | 230 +
extra/mariabackup/ds_xbstream.c | 223 -
extra/mariabackup/ds_xbstream.cc | 223 +
extra/mariabackup/encryption_plugin.cc | 9 +-
extra/mariabackup/fil_cur.cc | 205 +-
extra/mariabackup/innobackupex.cc | 6 +-
extra/mariabackup/write_filt.cc | 11 +-
extra/mariabackup/wsrep.cc | 7 +-
extra/mariabackup/xbstream.c | 564 -
extra/mariabackup/xbstream.cc | 563 +
extra/mariabackup/xbstream.h | 2 +-
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 | 887 +-
extra/mariabackup/xtrabackup.h | 16 +-
extra/my_print_defaults.c | 29 +-
extra/perror.c | 6 +-
extra/resolve_stack_dump.c | 2 +-
extra/yassl/src/ssl.cpp | 16 +-
include/aria_backup.h | 34 +
include/big_endian.h | 2 +-
include/byte_order_generic.h | 2 +-
include/byte_order_generic_x86.h | 2 +-
include/byte_order_generic_x86_64.h | 2 +-
include/json_lib.h | 23 +-
include/lf.h | 2 +
include/little_endian.h | 2 +-
include/m_ctype.h | 9 -
include/my_bit.h | 10 +-
include/my_counter.h | 49 +
include/my_cpu.h | 2 +-
include/my_global.h | 11 +-
include/my_pthread.h | 16 +-
include/my_service_manager.h | 2 +
include/my_sys.h | 1 +
include/my_time.h | 78 +-
include/mysql/plugin.h | 2 +-
include/mysql/plugin_audit.h.pp | 45 +
include/mysql/plugin_auth.h | 46 +-
include/mysql/plugin_auth.h.pp | 49 +
include/mysql/plugin_encryption.h.pp | 45 +
include/mysql/plugin_ftparser.h.pp | 45 +
include/mysql/plugin_password_validation.h | 4 +-
include/mysql/plugin_password_validation.h.pp | 49 +-
include/mysql/psi/mysql_socket.h | 4 +-
include/mysql/service_json.h | 117 +
include/mysql/service_kill_statement.h | 4 +-
include/mysql/service_wsrep.h | 310 +-
include/mysql/services.h | 1 +
include/mysql_com.h | 1 +
include/service_versions.h | 3 +-
include/thr_lock.h | 6 +-
include/thread_pool_priv.h | 3 -
include/violite.h | 9 -
include/wsrep.h | 41 +-
libmariadb | 2 +-
libmysqld/CMakeLists.txt | 4 +-
libmysqld/examples/CMakeLists.txt | 2 +-
libmysqld/lib_sql.cc | 9 +-
libmysqld/libmysql.c | 7 +-
libservices/CMakeLists.txt | 1 +
libservices/json_service.c | 19 +
man/CMakeLists.txt | 1 -
man/my_print_defaults.1 | 7 +-
man/wsrep_sst_xtrabackup-v2.1 | 16 -
man/wsrep_sst_xtrabackup.1 | 16 -
mysql-test/collections/10.0-compatible.list | 8 +-
mysql-test/dgcov.pl | 2 +-
mysql-test/include/add_anonymous_users.inc | 2 +-
mysql-test/include/check-testcase.test | 51 +
mysql-test/include/check_ftwrl_incompatible.inc | 6 +-
mysql-test/include/default_mysqld.cnf | 1 +
mysql-test/include/diff_tables.inc | 2 +-
mysql-test/include/galera_cluster.inc | 6 +
mysql-test/include/galera_have_debug_sync.inc | 9 +
mysql-test/include/galera_suspend.inc | 14 +
mysql-test/include/galera_wait_sync_point.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_auth_named_pipe.inc | 13 +
mysql-test/include/have_openssl.inc | 7 +-
mysql-test/include/have_wsrep_enabled.inc | 1 -
.../include/innodb_encrypt_tables.combinations | 14 +
mysql-test/include/innodb_encrypt_tables.inc | 4 +
mysql-test/include/kill_galera.inc | 20 +
mysql-test/include/mtr_check.sql | 3 +-
mysql-test/include/mtr_warnings.sql | 2 +-
mysql-test/include/switch_to_mysql_global_priv.inc | 6 +
mysql-test/include/switch_to_mysql_user.inc | 56 +
mysql-test/include/system_db_struct.inc | 1 +
mysql-test/include/wait_until_connected_again.inc | 19 +-
mysql-test/include/wsrep_wait_disconnect.inc | 20 +
mysql-test/lib/My/Config.pm | 6 +-
mysql-test/lib/generate-ssl-certs.sh | 37 +-
mysql-test/lib/mtr_cases.pm | 1 +
mysql-test/lib/v1/mysql-test-run.pl | 2 +-
mysql-test/main/1st.result | 1 +
mysql-test/main/alter_table.result | 81 +-
mysql-test/main/alter_table.test | 69 +
mysql-test/main/alter_table_errors.result | 19 +
mysql-test/main/alter_table_errors.test | 11 +
mysql-test/main/alter_user.result | 36 +-
mysql-test/main/alter_user.test | 10 +-
mysql-test/main/analyze.result | 7 +
mysql-test/main/auth_rpl.result | 2 +-
.../main/auto_increment_ranges_innodb.result | 14 +
mysql-test/main/auto_increment_ranges_innodb.test | 13 +
mysql-test/main/backup_aria.result | 158 +
mysql-test/main/backup_aria.test | 157 +
mysql-test/main/backup_interaction.result | 520 +
mysql-test/main/backup_interaction.test | 503 +
mysql-test/main/backup_lock.result | 219 +
mysql-test/main/backup_lock.test | 284 +
mysql-test/main/backup_lock_debug.result | 28 +
mysql-test/main/backup_lock_debug.test | 40 +
mysql-test/main/backup_locks.result | 46 +
mysql-test/main/backup_locks.test | 50 +
mysql-test/main/backup_priv.result | 40 +
mysql-test/main/backup_priv.test | 52 +
mysql-test/main/backup_stages.result | 335 +
mysql-test/main/backup_stages.test | 385 +
mysql-test/main/backup_syntax.result | 163 +
mysql-test/main/backup_syntax.test | 181 +
mysql-test/main/bigint.result | 11 +
mysql-test/main/bigint.test | 9 +
mysql-test/main/brackets.result | 24 +
mysql-test/main/brackets.test | 18 +
mysql-test/main/case.result | 27 +
mysql-test/main/case.test | 22 +
mysql-test/main/cast.result | 2 +-
mysql-test/main/check.result | 10 +
mysql-test/main/check.test | 12 +
mysql-test/main/column_compression_parts.result | 1 +
mysql-test/main/column_compression_parts.test | 2 +-
mysql-test/main/connect.result | 31 +-
mysql-test/main/connect.test | 48 +-
mysql-test/main/constraints.result | 37 +
mysql-test/main/constraints.test | 25 +
mysql-test/main/contributors.result | 4 +-
mysql-test/main/create-big.result | 12 +-
mysql-test/main/create-big.test | 12 +-
mysql-test/main/create.result | 101 +-
mysql-test/main/create.test | 91 +-
mysql-test/main/create_drop_binlog.result | 4 -
mysql-test/main/create_drop_user.result | 24 +-
mysql-test/main/create_drop_user.test | 8 +-
mysql-test/main/create_or_replace.result | 74 +-
mysql-test/main/create_or_replace.test | 51 +-
mysql-test/main/create_user.result | 24 +-
mysql-test/main/create_utf8.result | 89 +
mysql-test/main/create_utf8.test | 80 +
mysql-test/main/cte_nonrecursive.result | 147 +
mysql-test/main/cte_nonrecursive.test | 111 +
mysql-test/main/cte_recursive.result | 389 +-
mysql-test/main/cte_recursive.test | 249 +-
mysql-test/main/ctype_big5.result | 128 +-
mysql-test/main/ctype_cp932_binlog_stm.result | 128 +-
mysql-test/main/ctype_eucjpms.result | 128 +-
mysql-test/main/ctype_euckr.result | 140 +-
mysql-test/main/ctype_gb2312.result | 128 +-
mysql-test/main/ctype_gbk.result | 454 +-
mysql-test/main/ctype_latin1.result | 17 +-
mysql-test/main/ctype_latin1.test | 12 +
mysql-test/main/ctype_many.result | 4 +-
mysql-test/main/ctype_recoding.result | 4 +-
mysql-test/main/ctype_sjis.result | 128 +-
mysql-test/main/ctype_uca.result | 61 +-
mysql-test/main/ctype_uca.test | 18 +
mysql-test/main/ctype_uca_innodb.result | 28 +-
mysql-test/main/ctype_ucs.result | 14 +-
mysql-test/main/ctype_ucs.test | 15 +
mysql-test/main/ctype_ujis.result | 128 +-
mysql-test/main/ctype_ujis_ucs2.result | 150 +-
mysql-test/main/ctype_upgrade.result | 6 +-
mysql-test/main/ctype_utf16.result | 4 +-
mysql-test/main/ctype_utf16le.result | 4 +-
mysql-test/main/ctype_utf32.result | 18 +-
mysql-test/main/ctype_utf8.result | 86 +-
mysql-test/main/ctype_utf8mb4.result | 52 +-
mysql-test/main/ctype_utf8mb4_heap.result | 14 +-
mysql-test/main/ctype_utf8mb4_innodb.result | 16 +-
mysql-test/main/ctype_utf8mb4_myisam.result | 16 +-
mysql-test/main/custom_aggregate_functions.result | 2 +-
mysql-test/main/date_formats.result | 2 +-
mysql-test/main/delayed.result | 4 +-
mysql-test/main/delete_use_source.result | 9 +-
mysql-test/main/deprecated_features.result | 2 +-
mysql-test/main/derived_cond_pushdown.result | 15654 ++++-----
mysql-test/main/derived_cond_pushdown.test | 3578 +-
mysql-test/main/derived_opt.result | 38 +-
mysql-test/main/derived_opt.test | 43 +
mysql-test/main/derived_split_innodb.result | 102 +
mysql-test/main/derived_split_innodb.test | 96 +
mysql-test/main/derived_view.result | 8 +-
mysql-test/main/disabled.def | 7 +-
mysql-test/main/distinct.result | 24 +-
mysql-test/main/distinct.test | 18 +
mysql-test/main/dyncol.result | 4 +-
mysql-test/main/empty_user_table.result | 11 +-
mysql-test/main/empty_user_table.test | 22 +-
mysql-test/main/events_bugs.result | 2 +-
mysql-test/main/explain_json.result | 1 +
mysql-test/main/explain_non_select.result | 2 +-
mysql-test/main/failed_auth_3909.result | 27 +-
mysql-test/main/failed_auth_3909.test | 20 +-
mysql-test/main/failed_auth_unixsocket.result | 6 +-
mysql-test/main/failed_auth_unixsocket.test | 20 +-
mysql-test/main/flush.result | 44 +-
mysql-test/main/flush.test | 79 +-
mysql-test/main/flush_block_commit.test | 2 +-
.../main/flush_block_commit_notembedded.test | 2 +-
mysql-test/main/flush_read_lock.result | 58 +-
mysql-test/main/flush_read_lock.test | 115 +-
mysql-test/main/flush_read_lock_kill.test | 2 +-
mysql-test/main/flush_ssl.result | 26 +
mysql-test/main/flush_ssl.test | 61 +
mysql-test/main/fulltext.result | 8 +-
mysql-test/main/func_concat.result | 20 +
mysql-test/main/func_concat.test | 22 +
mysql-test/main/func_default.result | 10 +-
mysql-test/main/func_default.test | 5 +
mysql-test/main/func_extract.result | 592 +
mysql-test/main/func_extract.test | 257 +
mysql-test/main/func_group_innodb.result | 26 +-
mysql-test/main/func_group_innodb.test | 19 +
mysql-test/main/func_hybrid_type.result | 208 +
mysql-test/main/func_hybrid_type.test | 121 +
mysql-test/main/func_in.result | 2 +-
mysql-test/main/func_json.result | 40 +
mysql-test/main/func_json.test | 38 +
mysql-test/main/func_like.result | 117 +
mysql-test/main/func_like.test | 50 +
mysql-test/main/func_math.result | 40 +
mysql-test/main/func_math.test | 33 +
mysql-test/main/func_sapdb.result | 6 +-
mysql-test/main/func_set.result | 4 +-
mysql-test/main/func_str.result | 12 +
mysql-test/main/func_str.test | 16 +
mysql-test/main/func_time.result | 2730 +-
mysql-test/main/func_time.test | 943 +-
mysql-test/main/func_time_round.result | 1374 +
mysql-test/main/func_time_round.test | 461 +
mysql-test/main/gis-precise.result | 3 +
mysql-test/main/gis-precise.test | 4 +
mysql-test/main/gis-rtree.result | 1 +
mysql-test/main/gis.result | 18 +-
mysql-test/main/gis.test | 15 +
mysql-test/main/gis2.result | 4 +-
mysql-test/main/grant.result | 80 +-
mysql-test/main/grant.test | 65 +-
mysql-test/main/grant2.result | 114 +-
mysql-test/main/grant2.test | 81 +-
mysql-test/main/grant3.result | 24 +-
mysql-test/main/grant4.result | 18 +-
mysql-test/main/grant5.result | 84 +
mysql-test/main/grant5.test | 63 +
mysql-test/main/grant_4332.result | 6 +-
mysql-test/main/grant_4332.test | 8 +-
mysql-test/main/group_by.result | 22 +-
mysql-test/main/group_by.test | 13 +
mysql-test/main/group_by_innodb.result | 1 +
mysql-test/main/group_min_max.result | 61 +-
mysql-test/main/group_min_max.test | 17 +
mysql-test/main/group_min_max_innodb.result | 1 +
mysql-test/main/handlersocket.result | 2 +-
mysql-test/main/having.result | 1 +
mysql-test/main/huge_frm-6224.result | 5 +
mysql-test/main/huge_frm-6224.test | 11 +-
mysql-test/main/in_subq_cond_pushdown.result | 32 +
mysql-test/main/in_subq_cond_pushdown.test | 39 +
mysql-test/main/index_merge_innodb.result | 6 +-
mysql-test/main/index_merge_innodb.test | 1 +
mysql-test/main/index_merge_myisam.result | 54 +
mysql-test/main/index_merge_myisam.test | 35 +
mysql-test/main/information_schema.result | 21 +-
mysql-test/main/information_schema.test | 13 +-
.../main/information_schema_all_engines.result | 2 +-
mysql-test/main/init_file_set_password-7656.result | 8 +-
mysql-test/main/init_file_set_password-7656.test | 2 +-
mysql-test/main/innodb_ext_key.result | 7 +-
mysql-test/main/innodb_ext_key.test | 1 +
mysql-test/main/innodb_icp.result | 10 +-
mysql-test/main/innodb_mrr_cpk.result | 2 +-
mysql-test/main/innodb_mysql_sync.result | 4 +-
mysql-test/main/innodb_mysql_sync.test | 2 +-
mysql-test/main/insert.result | 32 +-
mysql-test/main/invisible_field.result | 4 +-
mysql-test/main/invisible_field_debug.result | 2 +
mysql-test/main/invisible_field_debug.test | 2 +
mysql-test/main/join.result | 16 +-
mysql-test/main/join.test | 5 +-
mysql-test/main/join_cache.result | 212 +-
mysql-test/main/join_cache.test | 4 +-
mysql-test/main/join_nested_jcl6.result | 2 +-
mysql-test/main/join_outer.result | 75 +-
mysql-test/main/join_outer.test | 60 +
mysql-test/main/join_outer_innodb.result | 12 +-
mysql-test/main/join_outer_jcl6.result | 75 +-
mysql-test/main/kill.result | 2 +-
mysql-test/main/kill.test | 8 +-
mysql-test/main/limit_rows_examined.result | 11 +-
mysql-test/main/loaddata.result | 6 +-
mysql-test/main/lock.result | 7 +-
mysql-test/main/lock.test | 6 +-
mysql-test/main/lock_multi.result | 29 +-
mysql-test/main/lock_multi.test | 82 +-
mysql-test/main/lock_sync.result | 2 +-
mysql-test/main/lock_sync.test | 4 +-
mysql-test/main/log_tables_upgrade.result | 3 +-
mysql-test/main/lowercase_fs_off.result | 69 +
mysql-test/main/lowercase_fs_off.test | 15 +
mysql-test/main/lowercase_table.result | 4 +
mysql-test/main/lowercase_table.test | 12 +
mysql-test/main/max_password_errors.result | 45 +
mysql-test/main/max_password_errors.test | 64 +
mysql-test/main/mdev-504.result | 3 +-
mysql-test/main/mdev-504.test | 4 +-
mysql-test/main/mdev13607.result | 3 +
mysql-test/main/mdl.result | 74 +-
mysql-test/main/mdl.test | 64 +-
mysql-test/main/mdl_sync.result | 63 +-
mysql-test/main/mdl_sync.test | 95 +-
mysql-test/main/merge.result | 5 +
mysql-test/main/mix2_myisam.result | 1 +
mysql-test/main/multi_update.result | 8 +-
mysql-test/main/myisam.result | 8 +-
.../main/myisam_explain_non_select_all.result | 239 +-
mysql-test/main/myisam_icp.result | 2 +-
mysql-test/main/mysql_install_db_win.result | 13 +
mysql-test/main/mysql_install_db_win.test | 24 +
mysql-test/main/mysql_upgrade-6984.result | 7 +-
mysql-test/main/mysql_upgrade-6984.test | 4 +-
mysql-test/main/mysql_upgrade.result | 76 +-
mysql-test/main/mysql_upgrade.test | 40 +-
mysql-test/main/mysql_upgrade_no_innodb.result | 2 +-
mysql-test/main/mysql_upgrade_noengine.result | 12 +
mysql-test/main/mysql_upgrade_noengine.test | 16 +
mysql-test/main/mysql_upgrade_ssl.result | 3 +-
mysql-test/main/mysql_upgrade_view.result | 13 +-
mysql-test/main/mysqlbinlog_row_compressed.result | 16 +-
mysql-test/main/mysqlbinlog_row_minimal.result | 16 +-
mysql-test/main/mysqlcheck.result | 10 +-
mysql-test/main/mysqld--help.result | 34 +-
mysql-test/main/mysqld_option_err.test | 2 +
mysql-test/main/mysqldump-max.result | 4 +-
mysql-test/main/mysqldump-max.test | 2 +
mysql-test/main/mysqldump-utf8mb4.result | 86 +
mysql-test/main/mysqldump-utf8mb4.test | 49 +
mysql-test/main/mysqldump.result | 88 +-
mysql-test/main/mysqldump.test | 6 +-
mysql-test/main/mysqldump_restore.result | 20 -
.../main/no_password_column-mdev-11170.result | 169 -
mysql-test/main/no_password_column-mdev-11170.test | 95 -
mysql-test/main/not_embedded_server.result | 4 +-
mysql-test/main/not_embedded_server.test | 2 +-
mysql-test/main/null.result | 16 +-
mysql-test/main/null_key.result | 3 +
mysql-test/main/old-mode.result | 41 +
mysql-test/main/old-mode.test | 29 +
mysql-test/main/openssl_1.result | 78 +-
mysql-test/main/openssl_1.test | 94 +-
mysql-test/main/opt_tvc.result | 67 +-
mysql-test/main/opt_tvc.test | 40 +-
mysql-test/main/order_by.result | 37 +
mysql-test/main/order_by.test | 37 +
mysql-test/main/order_by_zerolength-4285.result | 20 +
mysql-test/main/order_by_zerolength-4285.test | 14 +
mysql-test/main/outfile_loaddata.result | 4 +-
mysql-test/main/parser.result | 86 +
mysql-test/main/parser.test | 91 +
mysql-test/main/partition.result | 104 +
mysql-test/main/partition.test | 62 +
mysql-test/main/partition_alter.test | 2 -
mysql-test/main/partition_binlog.result | 1 +
mysql-test/main/partition_error.result | 9 +
mysql-test/main/partition_error.test | 18 +
mysql-test/main/partition_explicit_prune.result | 25 +
mysql-test/main/partition_explicit_prune.test | 19 +
mysql-test/main/partition_innodb.result | 64 +
mysql-test/main/partition_innodb.test | 67 +
mysql-test/main/partition_pruning.result | 33 +
mysql-test/main/partition_pruning.test | 31 +
mysql-test/main/perror-win.result | 4 +-
mysql-test/main/perror.result | 8 +-
mysql-test/main/plugin.result | 51 +-
mysql-test/main/plugin.test | 40 +
mysql-test/main/plugin_auth.result | 36 +-
mysql-test/main/plugin_auth.test | 46 +-
mysql-test/main/plugin_auth_qa.result | 116 +-
mysql-test/main/plugin_auth_qa_1.result | 82 +-
mysql-test/main/plugin_auth_qa_1.test | 14 +-
mysql-test/main/plugin_auth_qa_2.result | 40 +-
mysql-test/main/processlist.result | 2 +-
mysql-test/main/ps.result | 50 +-
mysql-test/main/ps_ddl.result | 8 +-
mysql-test/main/ps_ddl.test | 2 +-
mysql-test/main/ps_error.result | 73 +
mysql-test/main/ps_error.test | 66 +
mysql-test/main/query_cache.result | 12 +-
mysql-test/main/query_cache_innodb.result | 2 +-
mysql-test/main/range.result | 93 +-
mysql-test/main/range_innodb.result | 43 +
mysql-test/main/range_innodb.test | 42 +
mysql-test/main/range_mrr_icp.result | 129 +-
mysql-test/main/range_vs_index_merge.result | 42 +-
mysql-test/main/range_vs_index_merge.test | 17 +
mysql-test/main/range_vs_index_merge_innodb.result | 36 +
mysql-test/main/read_only.result | 16 +-
mysql-test/main/read_only.test | 23 +-
mysql-test/main/reset_connection.result | 20 +
mysql-test/main/reset_connection.test | 15 +
mysql-test/main/row.result | 2 +-
mysql-test/main/select.result | 35 +-
mysql-test/main/select_jcl6.result | 35 +-
mysql-test/main/select_pkeycache.result | 35 +-
mysql-test/main/select_safe.result | 9 +-
mysql-test/main/selectivity.result | 48 +-
mysql-test/main/selectivity.test | 36 +
mysql-test/main/selectivity_innodb.result | 49 +-
mysql-test/main/session_tracker_last_gtid.result | 6 -
mysql-test/main/set_password.result | 28 +-
mysql-test/main/set_password.test | 2 +
mysql-test/main/show_check.result | 6 +-
mysql-test/main/show_create_user.result | 4 +-
mysql-test/main/show_create_user.test | 2 +-
.../main/show_grants_with_plugin-7985.result | 197 -
mysql-test/main/show_grants_with_plugin-7985.test | 160 -
mysql-test/main/sp-code.result | 12 +-
mysql-test/main/sp-cursor.result | 26 +-
mysql-test/main/sp-cursor.test | 21 +
mysql-test/main/sp-error.result | 2 +-
mysql-test/main/sp-for-loop.result | 2 +-
mysql-test/main/sp-for-loop.test | 2 +-
mysql-test/main/sp-security.result | 56 +-
mysql-test/main/sp-security.test | 32 +-
mysql-test/main/sp-vars.result | 8 +-
mysql-test/main/sp.result | 77 +-
mysql-test/main/sp.test | 57 +-
mysql-test/main/sp_notembedded.result | 4 +-
mysql-test/main/sp_notembedded.test | 10 +-
mysql-test/main/sql_mode.result | 8 +-
mysql-test/main/sql_mode.test | 4 +-
mysql-test/main/sql_safe_updates.opt | 1 +
mysql-test/main/sql_safe_updates.result | 3 +
mysql-test/main/sql_safe_updates.test | 4 +
mysql-test/main/ssl-crl-revoked-crl.result | 1 -
mysql-test/main/ssl.result | 9 +-
mysql-test/main/ssl.test | 5 -
mysql-test/main/ssl_cert_verify.result | 5 -
mysql-test/main/ssl_cert_verify.test | 43 -
mysql-test/main/ssl_cipher-master.opt | 1 -
mysql-test/main/ssl_cipher.result | 63 +-
mysql-test/main/ssl_cipher.test | 110 +-
mysql-test/main/ssl_crl-master.opt | 4 -
mysql-test/main/ssl_crl.combinations | 5 +
mysql-test/main/ssl_crl.result | 24 +-
mysql-test/main/ssl_crl.test | 15 +-
mysql-test/main/ssl_crl_clients-master.opt | 4 -
mysql-test/main/ssl_crl_clients-valid.result | 24 -
mysql-test/main/ssl_crl_clients.result | 6 +
mysql-test/main/ssl_crl_clients.test | 31 +-
mysql-test/main/ssl_crl_clients_valid-master.opt | 4 -
mysql-test/main/ssl_crl_clients_valid.result | 16 -
mysql-test/main/ssl_crl_clients_valid.test | 23 -
mysql-test/main/ssl_crl_clrpath-master.opt | 4 -
mysql-test/main/ssl_crl_clrpath.result | 23 -
mysql-test/main/ssl_crl_clrpath.test | 16 -
mysql-test/main/stat_tables.result | 159 +-
mysql-test/main/stat_tables.test | 90 +-
mysql-test/main/stat_tables_disabled.result | 4 +-
mysql-test/main/stat_tables_innodb.result | 159 +-
mysql-test/main/stat_tables_rbr.result | 4 +-
mysql-test/main/stat_tables_rbr.test | 5 +-
mysql-test/main/statistics.result | 10 -
mysql-test/main/status.result | 8 +-
mysql-test/main/str_to_datetime_457.result | 7 +-
mysql-test/main/strict.result | 184 +-
mysql-test/main/subselect.result | 16 +-
mysql-test/main/subselect_exists2in.result | 7 +-
mysql-test/main/subselect_exists2in_costmat.result | 2 +-
mysql-test/main/subselect_extra.result | 4 +
mysql-test/main/subselect_extra_no_semijoin.result | 4 +
mysql-test/main/subselect_innodb.result | 1 +
mysql-test/main/subselect_mat.result | 6 +-
mysql-test/main/subselect_mat_cost.result | 22 +-
mysql-test/main/subselect_mat_cost_bugs.result | 1 +
mysql-test/main/subselect_no_exists_to_in.result | 14 +-
mysql-test/main/subselect_no_mat.result | 12 +-
mysql-test/main/subselect_no_opts.result | 6 +-
mysql-test/main/subselect_no_scache.result | 16 +-
mysql-test/main/subselect_no_semijoin.result | 4 +-
mysql-test/main/subselect_sj.result | 2 +
mysql-test/main/subselect_sj2_mat.result | 20 +-
mysql-test/main/subselect_sj_jcl6.result | 2 +
mysql-test/main/subselect_sj_mat.result | 22 +-
mysql-test/main/system_mysql_db.result | 66 +-
mysql-test/main/system_mysql_db_507.result | 169 +
mysql-test/main/system_mysql_db_507.test | 94 +
mysql-test/main/system_mysql_db_fix40123.result | 13 +-
mysql-test/main/system_mysql_db_fix40123.test | 2 +-
mysql-test/main/system_mysql_db_fix50030.result | 13 +-
mysql-test/main/system_mysql_db_fix50030.test | 2 +-
mysql-test/main/system_mysql_db_fix50117.result | 13 +-
mysql-test/main/system_mysql_db_fix50117.test | 2 +-
mysql-test/main/temp_table.result | 24 +
mysql-test/main/temp_table.test | 26 +
mysql-test/main/temp_table_frm.result | 6 +
mysql-test/main/temp_table_frm.test | 9 +-
mysql-test/main/temporal_literal.result | 12 +-
mysql-test/main/timezone2.result | 225 +
mysql-test/main/timezone2.test | 198 +
mysql-test/main/trigger.result | 4 +-
mysql-test/main/trigger_notembedded.test | 2 +-
mysql-test/main/truncate_coverage.result | 2 +-
mysql-test/main/truncate_coverage.test | 4 +-
mysql-test/main/type_date.result | 60 +-
mysql-test/main/type_date.test | 31 +
mysql-test/main/type_date_round.result | 174 +
mysql-test/main/type_date_round.test | 113 +
mysql-test/main/type_datetime.result | 84 +-
mysql-test/main/type_datetime.test | 39 +-
mysql-test/main/type_datetime_round.result | 205 +
mysql-test/main/type_datetime_round.test | 147 +
mysql-test/main/type_decimal.result | 4 +-
mysql-test/main/type_float.result | 42 +-
mysql-test/main/type_float.test | 30 +
mysql-test/main/type_interval.result | 83 +
mysql-test/main/type_interval.test | 54 +
mysql-test/main/type_newdecimal.result | 46 +-
mysql-test/main/type_newdecimal.test | 46 +-
mysql-test/main/type_num.result | 168 +-
mysql-test/main/type_temporal_innodb.result | 36 +-
mysql-test/main/type_time.result | 148 +-
mysql-test/main/type_time.test | 79 +
mysql-test/main/type_time_round.result | 260 +
mysql-test/main/type_time_round.test | 184 +
mysql-test/main/type_timestamp.result | 154 +-
mysql-test/main/type_timestamp.test | 158 +
mysql-test/main/type_timestamp_round.result | 191 +
mysql-test/main/type_timestamp_round.test | 160 +
mysql-test/main/type_year.result | 18 +-
mysql-test/main/type_year.test | 18 +-
mysql-test/main/udf.result | 119 +
mysql-test/main/udf.test | 79 +
mysql-test/main/union.result | 40 +-
mysql-test/main/union.test | 35 +
mysql-test/main/update.result | 4 +-
mysql-test/main/update_use_source.result | 1 +
mysql-test/main/userstat.result | 4 +-
mysql-test/main/view.result | 9 +-
mysql-test/main/view_grant.result | 8 -
mysql-test/main/view_grant.test | 16 -
mysql-test/main/warnings.result | 68 +-
mysql-test/main/win.result | 545 +-
mysql-test/main/win.test | 182 +-
mysql-test/main/win_big-mdev-11697.result | 2 +
mysql-test/main/win_big.result | 12 -
mysql-test/main/win_first_last_value.result | 20 +-
mysql-test/main/win_percent_cume.result | 72 +-
mysql-test/main/win_percent_cume.test | 6 +-
mysql-test/main/win_percentile.result | 78 +-
mysql-test/main/win_percentile.test | 19 +
mysql-test/main/win_rank.result | 81 +-
mysql-test/main/win_rank.test | 17 +-
mysql-test/main/win_std.test | 4 +
mysql-test/mysql-test-run.pl | 368 +-
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/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/galera-cert.pem | 26 -
mysql-test/std_data/galera-key.pem | 28 -
mysql-test/std_data/galera-upgrade-ca-cert.pem | 40 -
mysql-test/std_data/galera-upgrade-server-cert.pem | 20 -
mysql-test/std_data/galera-upgrade-server-key.pem | 28 -
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-5.7.11-stm-temporal-round-binlog.000001 | Bin 0 -> 514 bytes
.../mysql-8.0.13-stm-temporal-round-binlog.000001 | Bin 0 -> 892 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 | 92 +-
mysql-test/std_data/serversan-key.pem | 40 +-
mysql-test/suite.pm | 11 +-
mysql-test/suite/archive/disabled.def | 13 +
mysql-test/suite/archive/flush.result | 18 +
mysql-test/suite/archive/flush.test | 25 +
mysql-test/suite/archive/rnd_pos.result | 56 +
mysql-test/suite/archive/rnd_pos.test | 27 +
mysql-test/suite/binlog/include/binlog.test | 9 +-
.../r/binlog_flush_binlogs_delete_domain.result | 12 +
mysql-test/suite/binlog/r/binlog_row_binlog.result | 18 +-
mysql-test/suite/binlog/r/binlog_stm_binlog.result | 16 +-
.../t/binlog_flush_binlogs_delete_domain.test | 19 +
mysql-test/suite/binlog/t/binlog_stm_binlog.test | 4 -
.../suite/binlog_encryption/rpl_corruption.result | 4 -
.../suite/binlog_encryption/rpl_loadfile.result | 4 -
.../rpl_mixed_binlog_max_cache_size.result | 28 -
.../suite/binlog_encryption/rpl_parallel.result | 1 +
.../binlog_encryption/rpl_special_charset.result | 4 -
.../rpl_stm_relay_ign_space.result | 4 -
.../rpl_switch_stm_row_mixed.result | 2 +-
mysql-test/suite/binlog_encryption/rpl_sync.result | 8 -
.../suite/binlog_encryption/rpl_typeconv.result | 44 +
.../suite/compat/oracle/r/func_concat.result | 69 +
mysql-test/suite/compat/oracle/r/parser.result | 110 +
mysql-test/suite/compat/oracle/r/sp-code.result | 42 +-
.../suite/compat/oracle/r/sp-cursor-rowtype.result | 25 +
mysql-test/suite/compat/oracle/r/sp-cursor.result | 30 +-
.../suite/compat/oracle/r/sp-package-mdl.result | 4 +-
.../compat/oracle/r/sp-package-mysqldump.result | 2 +-
mysql-test/suite/compat/oracle/r/sp-package.result | 48 +
mysql-test/suite/compat/oracle/r/sp.result | 60 +-
mysql-test/suite/compat/oracle/r/versioning.result | 8 +
mysql-test/suite/compat/oracle/t/func_concat.test | 36 +
mysql-test/suite/compat/oracle/t/parser.test | 154 +
mysql-test/suite/compat/oracle/t/sp-code.test | 2 +-
.../suite/compat/oracle/t/sp-cursor-rowtype.test | 23 +
mysql-test/suite/compat/oracle/t/sp-cursor.test | 35 +
.../compat/oracle/t/sp-package-mysqldump.test | 1 +
mysql-test/suite/compat/oracle/t/sp-package.test | 57 +
mysql-test/suite/compat/oracle/t/sp.test | 45 +-
mysql-test/suite/compat/oracle/t/versioning.test | 10 +
mysql-test/suite/csv/flush.result | 25 +
mysql-test/suite/csv/flush.test | 30 +
mysql-test/suite/encryption/disabled.def | 1 +
.../encryption/r/innodb-bad-key-change.result | 1 +
.../encryption/r/innodb-checksum-algorithm.result | 225 -
.../encryption/r/innodb-encryption-alter.result | 63 +
.../encryption/r/innodb-encryption-disable.result | 1 +
.../suite/encryption/r/innodb-force-corrupt.result | 3 +-
.../suite/encryption/r/innodb-missing-key.result | 1 +
.../suite/encryption/t/innodb-bad-key-change.test | 1 +
.../encryption/t/innodb-checksum-algorithm.test | 9 +-
.../encryption/t/innodb-encryption-alter.test | 60 +-
.../encryption/t/innodb-encryption-disable.test | 1 +
.../suite/encryption/t/innodb-force-corrupt.test | 9 +-
.../suite/encryption/t/innodb-missing-key.test | 1 +
.../suite/engines/funcs/r/an_calendar.result | 4 +
mysql-test/suite/engines/funcs/r/an_number.result | 14 +
mysql-test/suite/engines/funcs/r/an_string.result | 10 +
.../funcs/r/in_number_boundary_error.result | 12 +-
.../r/in_number_decimal_boundary_error.result | 8 +-
.../engines/funcs/r/tc_partition_analyze.result | 1 +
.../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/funcs_1/r/innodb_func_view.result | 156 +-
.../suite/funcs_1/r/is_check_constraint.result | 121 +
.../suite/funcs_1/r/is_check_constraints.result | 36 +
.../suite/funcs_1/r/is_columns_innodb.result | 4 +-
mysql-test/suite/funcs_1/r/is_columns_mysql.result | 197 +-
.../funcs_1/r/is_columns_mysql_embedded.result | 197 +-
.../suite/funcs_1/r/is_key_column_usage.result | 4 +-
.../funcs_1/r/is_key_column_usage_embedded.result | 4 +-
.../suite/funcs_1/r/is_routines_embedded.result | 12 +-
mysql-test/suite/funcs_1/r/is_statistics.result | 4 +-
.../suite/funcs_1/r/is_statistics_mysql.result | 4 +-
.../funcs_1/r/is_statistics_mysql_embedded.result | 8 +-
.../suite/funcs_1/r/is_table_constraints.result | 3 +-
.../funcs_1/r/is_table_constraints_mysql.result | 3 +-
.../r/is_table_constraints_mysql_embedded.result | 6 +-
mysql-test/suite/funcs_1/r/is_tables_mysql.result | 39 +-
.../funcs_1/r/is_tables_mysql_embedded.result | 78 +-
.../suite/funcs_1/r/is_user_privileges.result | 1839 +-
mysql-test/suite/funcs_1/r/is_views.result | 1 +
.../suite/funcs_1/r/is_views_embedded.result | 1 +
mysql-test/suite/funcs_1/r/memory_func_view.result | 156 +-
mysql-test/suite/funcs_1/r/myisam_func_view.result | 156 +-
mysql-test/suite/funcs_1/r/storedproc.result | 6 +-
.../suite/funcs_1/t/is_check_constraint.test | 92 +
mysql-test/suite/funcs_1/t/is_user_privileges.test | 11 +-
mysql-test/suite/galera/disabled.def | 43 +-
mysql-test/suite/galera/galera_2nodes.cnf | 26 +-
.../suite/galera/galera_2nodes_as_master.cnf | 18 +-
mysql-test/suite/galera/galera_2nodes_as_slave.cnf | 51 +-
mysql-test/suite/galera/galera_3nodes_as_slave.cnf | 62 +-
mysql-test/suite/galera/galera_4nodes.cnf | 30 +-
.../suite/galera/include/galera_base_port.inc | 8 +
.../galera/include/galera_concurrent_test.inc | 90 +
.../suite/galera/include/galera_dump_sr_table.inc | 28 +
.../galera/include/galera_have_debug_sync.inc | 9 -
.../suite/galera/include/galera_load_provider.inc | 68 +
mysql-test/suite/galera/include/galera_resume.inc | 9 -
.../suite/galera/include/galera_sst_restore.inc | 2 +-
.../galera/include/galera_st_disconnect_slave.inc | 8 +
.../galera/include/galera_unload_provider.inc | 8 +
.../galera/include/have_filekeymanagement.inc | 3 +
.../suite/galera/include/have_xtrabackup.inc | 4 -
.../suite/galera/include/reset_query_cache.inc | 11 +
mysql-test/suite/galera/r/GAL-382.result | 2 +
mysql-test/suite/galera/r/GAL-401.result | 2 +
mysql-test/suite/galera/r/GAL-480.result | 2 +
mysql-test/suite/galera/r/GCF-1081.result | 47 +
mysql-test/suite/galera/r/GCF-939.result | 13 +
mysql-test/suite/galera/r/MDEV-15443.result | 2 +
mysql-test/suite/galera/r/MW-252.result | 2 +
mysql-test/suite/galera/r/MW-258.result | 2 +
mysql-test/suite/galera/r/MW-259.result | 2 +
mysql-test/suite/galera/r/MW-284.result | 4 +
mysql-test/suite/galera/r/MW-285.result | 2 +
mysql-test/suite/galera/r/MW-286.result | 23 +-
mysql-test/suite/galera/r/MW-292.result | 27 +-
mysql-test/suite/galera/r/MW-309.result | 2 +
mysql-test/suite/galera/r/MW-313.result | 2 +
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 | 2 +
mysql-test/suite/galera/r/MW-328D.result | 2 +
mysql-test/suite/galera/r/MW-328E.result | 2 +
mysql-test/suite/galera/r/MW-329.result | 9 +-
mysql-test/suite/galera/r/MW-336.result | 35 +
mysql-test/suite/galera/r/MW-357.result | 2 +
mysql-test/suite/galera/r/MW-360.result | 41 +
mysql-test/suite/galera/r/MW-369.result | 149 +-
mysql-test/suite/galera/r/MW-388.result | 6 +-
mysql-test/suite/galera/r/MW-402.result | 76 +-
mysql-test/suite/galera/r/MW-416.result | 5 +-
mysql-test/suite/galera/r/MW-44.result | 21 +-
mysql-test/suite/galera/r/MW-86-wait1.result | 17 +-
mysql-test/suite/galera/r/MW-86-wait8.result | 16 +-
mysql-test/suite/galera/r/MW-86.result | 78 +
mysql-test/suite/galera/r/basic.result | 2 +
mysql-test/suite/galera/r/binlog_checksum.result | 2 +
mysql-test/suite/galera/r/create.result | 2 +
.../suite/galera/r/enforce_storage_engine.result | 2 +
.../suite/galera/r/enforce_storage_engine2.result | 2 +
mysql-test/suite/galera/r/ev51914.result | 2 +
mysql-test/suite/galera/r/fk.result | 2 +
mysql-test/suite/galera/r/galera#414.result | 2 +
mysql-test/suite/galera/r/galera#500.result | 8 +
mysql-test/suite/galera/r/galera#505.result | 10 +
.../r/galera_FK_duplicate_client_insert.result | 382 +
mysql-test/suite/galera/r/galera_admin.result | 4 +
.../galera/r/galera_alter_engine_innodb.result | 2 +
.../galera/r/galera_alter_engine_myisam.result | 2 +
.../suite/galera/r/galera_alter_table_force.result | 2 +
.../galera/r/galera_applier_ftwrl_table.result | 2 +
.../r/galera_applier_ftwrl_table_alter.result | 2 +
mysql-test/suite/galera/r/galera_as_master.result | 4 +
.../suite/galera/r/galera_as_master_gtid.result | 44 +-
.../suite/galera/r/galera_as_master_large.result | 2 +
mysql-test/suite/galera/r/galera_as_slave.result | 12 +-
.../suite/galera/r/galera_as_slave_autoinc.result | 12 +-
.../suite/galera/r/galera_as_slave_gtid.result | 12 +-
.../r/galera_as_slave_gtid_replicate_do_db.result | 159 +
.../galera_as_slave_gtid_replicate_do_db_cc.result | 315 +
.../suite/galera/r/galera_as_slave_nonprim.result | 16 +
.../galera/r/galera_autoinc_sst_mariabackup.result | 51 +
.../galera/r/galera_autoinc_sst_xtrabackup.result | 47 -
mysql-test/suite/galera/r/galera_bf_abort.result | 4 +-
.../r/galera_bf_abort_flush_for_export.result | 2 +
.../galera/r/galera_bf_abort_for_update.result | 6 +-
.../suite/galera/r/galera_bf_abort_ftwrl.result | 2 +
.../suite/galera/r/galera_bf_abort_get_lock.result | 4 +-
.../galera/r/galera_bf_abort_group_commit.result | 685 +
.../galera/r/galera_bf_abort_lock_table.result | 2 +
.../suite/galera/r/galera_bf_abort_shutdown.result | 12 +
.../suite/galera/r/galera_bf_abort_sleep.result | 4 +-
.../r/galera_bf_background_statistics.result | 4 +-
.../suite/galera/r/galera_bf_lock_wait.result | 2 +
.../suite/galera/r/galera_binlog_cache_size.result | 2 +
.../suite/galera/r/galera_binlog_checksum.result | 2 +
.../r/galera_binlog_event_max_size_max.result | 2 +
.../r/galera_binlog_event_max_size_min.result | 2 +
.../suite/galera/r/galera_binlog_row_image.result | 2 +
.../galera/r/galera_binlog_stmt_autoinc.result | 147 +
.../suite/galera/r/galera_commit_empty.result | 15 +
.../suite/galera/r/galera_concurrent_ctas.result | 2 +
.../suite/galera/r/galera_create_function.result | 2 +
.../suite/galera/r/galera_create_procedure.result | 2 +
.../galera/r/galera_create_table_as_select.result | 103 +
.../suite/galera/r/galera_create_table_like.result | 2 +
.../suite/galera/r/galera_create_trigger.result | 2 +
.../suite/galera/r/galera_ddl_multiline.result | 2 +
mysql-test/suite/galera/r/galera_defaults.result | 81 +-
.../suite/galera/r/galera_delete_limit.result | 2 +
.../suite/galera/r/galera_desync_overlapped.result | 2 +
.../suite/galera/r/galera_drop_database.result | 25 +
mysql-test/suite/galera/r/galera_drop_multi.result | 2 +
.../suite/galera/r/galera_encrypt_tmp_files.result | 2 +
mysql-test/suite/galera/r/galera_enum.result | 41 +-
mysql-test/suite/galera/r/galera_events.result | 2 +
.../suite/galera/r/galera_fk_cascade_delete.result | 2 +
.../suite/galera/r/galera_fk_cascade_update.result | 2 +
.../suite/galera/r/galera_fk_conflict.result | 4 +-
.../suite/galera/r/galera_fk_mismatch.result | 2 +
.../suite/galera/r/galera_fk_multicolumn.result | 2 +
.../suite/galera/r/galera_fk_multitable.result | 2 +
mysql-test/suite/galera/r/galera_fk_no_pk.result | 2 +
.../galera/r/galera_fk_selfreferential.result | 2 +
mysql-test/suite/galera/r/galera_fk_setnull.result | 2 +
.../suite/galera/r/galera_flush_local.result | 6 +
.../galera/r/galera_forced_binlog_format.result | 20 +-
mysql-test/suite/galera/r/galera_ftwrl.result | 2 +
.../suite/galera/r/galera_ftwrl_drain.result | 4 +-
mysql-test/suite/galera/r/galera_fulltext.result | 2 +
.../suite/galera/r/galera_gcache_recover.result | 9 +
.../r/galera_gcache_recover_full_gcache.result | 11 +-
.../galera/r/galera_gcache_recover_manytrx.result | 29 +
.../suite/galera/r/galera_gcs_fc_limit.result | 2 +
.../suite/galera/r/galera_gcs_fragment.result | 15 +-
.../galera/r/galera_gcs_max_packet_size.result | 2 +
mysql-test/suite/galera/r/galera_gra_log.result | 2 +
mysql-test/suite/galera/r/galera_gtid.result | 2 +
mysql-test/suite/galera/r/galera_gtid_slave.result | 26 +-
.../galera/r/galera_gtid_slave_sst_rsync.result | 107 +-
.../suite/galera/r/galera_insert_ignore.result | 2 +
.../suite/galera/r/galera_insert_multi.result | 4 +-
.../r/galera_ist_innodb_flush_logs,release.rdiff | 114 +
.../galera/r/galera_ist_innodb_flush_logs.result | 24 +-
.../galera/r/galera_ist_mariabackup,debug.rdiff | 114 +
.../suite/galera/r/galera_ist_mariabackup.result | 292 +
...a_ist_mariabackup_innodb_flush_logs,debug.rdiff | 114 +
...galera_ist_mariabackup_innodb_flush_logs.result | 98 +
.../galera/r/galera_ist_mysqldump,debug.rdiff | 117 +
.../suite/galera/r/galera_ist_mysqldump.result | 112 +-
.../suite/galera/r/galera_ist_progress.result | 9 -
.../suite/galera/r/galera_ist_recv_bind.result | 2 +
.../galera/r/galera_ist_restart_joiner.result | 3 +-
.../suite/galera/r/galera_ist_rsync,debug.rdiff | 114 +
mysql-test/suite/galera/r/galera_ist_rsync.result | 113 +-
.../suite/galera/r/galera_ist_xtrabackup-v2.result | 357 -
mysql-test/suite/galera/r/galera_kill_ddl.result | 3 +
.../suite/galera/r/galera_kill_largechanges.result | 3 +
.../suite/galera/r/galera_kill_smallchanges.result | 3 +
mysql-test/suite/galera/r/galera_lock_table.result | 2 +
mysql-test/suite/galera/r/galera_log_bin.result | 4 +
.../suite/galera/r/galera_log_output_csv.result | 2 +
.../suite/galera/r/galera_many_columns.result | 4 +-
.../suite/galera/r/galera_many_indexes.result | 6 +-
mysql-test/suite/galera/r/galera_many_rows.result | 6 +-
.../suite/galera/r/galera_many_tables_nopk.result | 4 +-
.../suite/galera/r/galera_many_tables_pk.result | 4 +-
mysql-test/suite/galera/r/galera_mdev_10812.result | 2 +
mysql-test/suite/galera/r/galera_mdev_13787.result | 2 +
mysql-test/suite/galera/r/galera_mdev_15611.result | 2 +
mysql-test/suite/galera/r/galera_mdl_race.result | 4 +-
.../suite/galera/r/galera_multi_database.result | 2 +
.../suite/galera/r/galera_myisam_autocommit.result | 2 +
.../galera/r/galera_myisam_transactions.result | 2 +
mysql-test/suite/galera/r/galera_nopk_bit.result | 4 +-
mysql-test/suite/galera/r/galera_nopk_blob.result | 4 +-
.../galera/r/galera_nopk_large_varchar.result | 4 +-
.../suite/galera/r/galera_nopk_unicode.result | 4 +-
.../r/galera_parallel_apply_lock_table.result | 8 +-
.../r/galera_parallel_autoinc_largetrx.result | 20 +-
.../r/galera_parallel_autoinc_manytrx.result | 4 +-
.../suite/galera/r/galera_parallel_simple.result | 2 +
.../suite/galera/r/galera_pc_ignore_sb.result | 7 +-
.../suite/galera/r/galera_pc_recovery.result | 37 +
.../suite/galera/r/galera_pk_bigint_signed.result | 4 +-
.../galera/r/galera_pk_bigint_unsigned.result | 4 +-
.../galera/r/galera_prepared_statement.result | 4 +-
.../suite/galera/r/galera_query_cache.result | 2 +
.../galera/r/galera_query_cache_sync_wait.result | 2 +
mysql-test/suite/galera/r/galera_read_only.result | 2 +
.../galera/r/galera_repl_key_format_flat16.result | 2 +
.../suite/galera/r/galera_repl_max_ws_size.result | 4 +-
.../suite/galera/r/galera_restart_nochanges.result | 2 +
.../r/galera_restart_on_unknown_option.result | 2 +
mysql-test/suite/galera/r/galera_roles.result | 2 +
mysql-test/suite/galera/r/galera_rsu_add_pk.result | 2 +
.../suite/galera/r/galera_rsu_drop_pk.result | 2 +
mysql-test/suite/galera/r/galera_rsu_error.result | 2 +
mysql-test/suite/galera/r/galera_rsu_simple.result | 2 +
.../suite/galera/r/galera_rsu_wsrep_desync.result | 2 +
mysql-test/suite/galera/r/galera_sbr.result | 2 +
mysql-test/suite/galera/r/galera_sbr_binlog.result | 2 +
.../galera/r/galera_schema_dirty_reads.result | 2 +
.../suite/galera/r/galera_serializable.result | 8 +-
mysql-test/suite/galera/r/galera_server.result | 2 +
.../suite/galera/r/galera_sql_log_bin_zero.result | 2 +
mysql-test/suite/galera/r/galera_ssl.result | 2 +
.../suite/galera/r/galera_ssl_compression.result | 2 +
.../galera/r/galera_sst_mariabackup,debug.rdiff | 4 +-
.../suite/galera/r/galera_sst_mariabackup.result | 2 +
.../r/galera_sst_mariabackup_data_dir,debug.rdiff | 116 +
.../r/galera_sst_mariabackup_data_dir.result | 292 +
.../galera_sst_mariabackup_encrypt_with_key.result | 5 +
.../r/galera_sst_mariabackup_table_options.result | 999 +
.../galera/r/galera_sst_mysqldump,debug.rdiff | 22 +-
.../galera/r/galera_sst_mysqldump,release.rdiff | 18 +
.../suite/galera/r/galera_sst_mysqldump.result | 1 +
.../r/galera_sst_mysqldump_with_key,debug.rdiff | 106 +
.../galera/r/galera_sst_mysqldump_with_key.result | 97 -
mysql-test/suite/galera/r/galera_sst_rsync.result | 2 +
.../suite/galera/r/galera_sst_rsync2,debug.rdiff | 120 +
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 | 110 +-
.../galera/r/galera_sst_xtrabackup-v2,debug.rdiff | 116 -
.../r/galera_sst_xtrabackup-v2-options.result | 3 -
.../suite/galera/r/galera_sst_xtrabackup-v2.result | 290 -
...alera_sst_xtrabackup-v2_encrypt_with_key.result | 3 -
.../suite/galera/r/galera_status_cluster.result | 2 +
.../galera/r/galera_status_local_index.result | 2 +
.../galera/r/galera_status_local_state.result | 2 +
.../suite/galera/r/galera_suspend_slave.result | 4 +
.../suite/galera/r/galera_sync_wait_show.result | 2 +
.../r/galera_toi_alter_auto_increment.result | 2 +
.../suite/galera/r/galera_toi_ddl_error.result | 5 +
.../suite/galera/r/galera_toi_ddl_fk_insert.result | 2 +
.../suite/galera/r/galera_toi_ddl_fk_update.result | 2 +
.../suite/galera/r/galera_toi_ddl_locking.result | 33 +-
.../galera/r/galera_toi_ddl_nonconflicting.result | 2 +
.../galera/r/galera_toi_ddl_sequential.result | 2 +
.../suite/galera/r/galera_toi_drop_database.result | 6 +-
mysql-test/suite/galera/r/galera_toi_ftwrl.result | 2 +
.../galera/r/galera_toi_lock_exclusive.result | 4 +-
.../suite/galera/r/galera_toi_lock_shared.result | 2 +
.../suite/galera/r/galera_toi_truncate.result | 6 +-
.../galera/r/galera_transaction_read_only.result | 2 +
.../galera/r/galera_transaction_replay.result | 96 +-
mysql-test/suite/galera/r/galera_truncate.result | 2 +
.../galera/r/galera_truncate_temporary.result | 2 +
.../galera/r/galera_unicode_identifiers.result | 8 +-
mysql-test/suite/galera/r/galera_unicode_pk.result | 6 +-
.../suite/galera/r/galera_update_limit.result | 2 +
.../suite/galera/r/galera_v1_row_events.result | 2 +
.../suite/galera/r/galera_var_OSU_method.result | 2 +
.../suite/galera/r/galera_var_OSU_method2.result | 2 +
.../r/galera_var_auto_inc_control_off.result | 4 +-
.../galera/r/galera_var_auto_inc_control_on.result | 2 +
.../galera/r/galera_var_certify_nonPK_off.result | 2 +
.../galera/r/galera_var_cluster_address.result | 8 +-
.../suite/galera/r/galera_var_desync_on.result | 2 +
.../suite/galera/r/galera_var_dirty_reads.result | 5 +-
.../suite/galera/r/galera_var_fkchecks.result | 2 +
.../galera/r/galera_var_gtid_domain_id.result | 2 +
.../galera/r/galera_var_ignore_apply_errors.result | 186 +
.../r/galera_var_innodb_disallow_writes.result | 2 +
.../galera/r/galera_var_load_data_splitting.result | 2 +
.../suite/galera/r/galera_var_log_bin.result | 2 +
.../suite/galera/r/galera_var_max_ws_rows.result | 2 +
.../suite/galera/r/galera_var_max_ws_size.result | 4 +-
.../r/galera_var_mysql_replication_bundle.result | 2 +
.../suite/galera/r/galera_var_node_address.result | 4 +-
.../galera/r/galera_var_reject_queries.result | 3 +-
.../r/galera_var_replicate_myisam_off.result | 2 +
.../galera/r/galera_var_replicate_myisam_on.result | 2 +
.../galera/r/galera_var_retry_autocommit.result | 28 +-
.../suite/galera/r/galera_var_slave_threads.result | 123 +-
.../suite/galera/r/galera_var_sst_auth.result | 2 +
.../suite/galera/r/galera_var_sync_wait.result | 2 +
.../suite/galera/r/galera_var_wsrep_on_off.result | 2 +
mysql-test/suite/galera/r/galera_wan.result | 8 +-
.../suite/galera/r/galera_wan_restart_ist.result | 2 +
.../suite/galera/r/galera_wan_restart_sst.result | 2 +
.../galera/r/galera_wsrep_desync_wsrep_on.result | 2 +
.../galera/r/galera_wsrep_log_conficts.result | 4 +-
.../suite/galera/r/galera_wsrep_new_cluster.result | 2 +
.../r/galera_wsrep_provider_options_syntax.result | 2 +
.../r/galera_wsrep_provider_unset_set.result | 2 +
.../galera/r/galera_zero_length_column.result | 2 +
mysql-test/suite/galera/r/grant.result | 4 +-
mysql-test/suite/galera/r/lp1276424.result | 2 +
mysql-test/suite/galera/r/lp1347768.result | 2 +
mysql-test/suite/galera/r/lp1376747-2.result | 2 +
mysql-test/suite/galera/r/lp1376747-3.result | 2 +
mysql-test/suite/galera/r/lp1376747-4.result | 2 +
mysql-test/suite/galera/r/lp1376747.result | 2 +
mysql-test/suite/galera/r/lp1438990.result | 2 +
mysql-test/suite/galera/r/lp959512.result | 2 +
mysql-test/suite/galera/r/mdev_10518.result | 2 +
mysql-test/suite/galera/r/mdev_9290.result | 2 +
mysql-test/suite/galera/r/mysql-wsrep#110.result | 2 +
mysql-test/suite/galera/r/mysql-wsrep#198.result | 2 +
mysql-test/suite/galera/r/mysql-wsrep#201.result | 2 +
mysql-test/suite/galera/r/mysql-wsrep#216.result | 11 +
mysql-test/suite/galera/r/mysql-wsrep#237.result | 4 +-
mysql-test/suite/galera/r/mysql-wsrep#247.result | 2 +
mysql-test/suite/galera/r/mysql-wsrep#31.result | 2 +
mysql-test/suite/galera/r/mysql-wsrep#33.result | 6 +
mysql-test/suite/galera/r/mysql-wsrep#332.result | 141 +
mysql-test/suite/galera/r/mysql-wsrep#90.result | 2 +
mysql-test/suite/galera/r/partition.result | 32 +-
mysql-test/suite/galera/r/pxc-421.result | 2 +
mysql-test/suite/galera/r/query_cache.result | 49 +-
mysql-test/suite/galera/r/rename.result | 2 +
mysql-test/suite/galera/r/rpl_row_annotate.result | 8 +-
mysql-test/suite/galera/r/sql_log_bin.result | 2 +
mysql-test/suite/galera/r/unique_key.result | 2 +
mysql-test/suite/galera/r/versioning_trx_id.result | 54 +
mysql-test/suite/galera/r/view.result | 2 +
.../galera/r/wsrep_trx_fragment_size_sr.result | 15 +
mysql-test/suite/galera/suite.pm | 14 +-
mysql-test/suite/galera/t/GAL-419.test | 4 +-
mysql-test/suite/galera/t/GCF-1081.test | 72 +
mysql-test/suite/galera/t/GCF-939.test | 31 +
mysql-test/suite/galera/t/MW-284.test | 2 +
mysql-test/suite/galera/t/MW-286.test | 48 +-
mysql-test/suite/galera/t/MW-292.test | 50 +-
mysql-test/suite/galera/t/MW-328A.test | 41 +-
mysql-test/suite/galera/t/MW-328B.test | 1 +
mysql-test/suite/galera/t/MW-328C.test | 1 +
mysql-test/suite/galera/t/MW-329.test | 28 +-
mysql-test/suite/galera/t/MW-336.test | 9 +-
mysql-test/suite/galera/t/MW-360-master.opt | 2 +
mysql-test/suite/galera/t/MW-360.test | 100 +
mysql-test/suite/galera/t/MW-369.inc | 7 +-
mysql-test/suite/galera/t/MW-369.test | 100 +-
mysql-test/suite/galera/t/MW-388.test | 5 +-
mysql-test/suite/galera/t/MW-402.test | 56 +-
mysql-test/suite/galera/t/MW-416.test | 8 +-
mysql-test/suite/galera/t/MW-44-master.opt | 1 +
mysql-test/suite/galera/t/MW-44.test | 24 +-
mysql-test/suite/galera/t/MW-86-wait1.test | 13 +-
mysql-test/suite/galera/t/MW-86-wait8.test | 11 +-
mysql-test/suite/galera/t/galera#500.test | 6 +
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 | 2 +-
mysql-test/suite/galera/t/galera_as_master.test | 2 +
.../suite/galera/t/galera_as_master_gtid.cnf | 2 -
.../suite/galera/t/galera_as_master_gtid.test | 24 +-
.../t/galera_as_master_gtid_change_master.cnf | 2 -
.../t/galera_as_master_gtid_change_master.test | 2 +
mysql-test/suite/galera/t/galera_as_slave.test | 17 +-
.../suite/galera/t/galera_as_slave_autoinc.test | 18 +-
.../suite/galera/t/galera_as_slave_gtid.test | 21 +-
.../t/galera_as_slave_gtid_replicate_do_db.cnf | 17 +
.../t/galera_as_slave_gtid_replicate_do_db.test | 150 +
.../t/galera_as_slave_gtid_replicate_do_db_cc.test | 176 +
.../suite/galera/t/galera_as_slave_nonprim.test | 26 +-
.../suite/galera/t/galera_as_slave_preordered.test | 19 +-
.../t/galera_as_slave_replication_bundle.test | 13 +-
.../galera/t/galera_autoinc_sst_mariabackup.cnf | 11 +
.../galera/t/galera_autoinc_sst_mariabackup.test | 105 +
.../galera/t/galera_autoinc_sst_xtrabackup.cnf | 12 -
.../galera/t/galera_autoinc_sst_xtrabackup.test | 96 -
.../galera/t/galera_bf_abort_group_commit.cnf | 15 +
.../galera/t/galera_bf_abort_group_commit.test | 77 +
.../suite/galera/t/galera_bf_abort_shutdown.test | 33 +
.../suite/galera/t/galera_binlog_stmt_autoinc.test | 230 +
mysql-test/suite/galera/t/galera_commit_empty.test | 35 +
.../galera/t/galera_create_table_as_select.test | 145 +
mysql-test/suite/galera/t/galera_defaults.test | 38 +-
.../suite/galera/t/galera_drop_database.test | 47 +
mysql-test/suite/galera/t/galera_enum.test | 18 +-
.../galera/t/galera_forced_binlog_format.test | 5 +-
mysql-test/suite/galera/t/galera_ftwrl_drain.test | 4 +-
.../t/galera_gcache_recover_full_gcache.test | 12 +-
mysql-test/suite/galera/t/galera_gcs_fragment.test | 4 +-
mysql-test/suite/galera/t/galera_gtid-master.opt | 2 +-
mysql-test/suite/galera/t/galera_gtid_slave.test | 33 +-
.../galera/t/galera_gtid_slave_sst_rsync.test | 110 +-
.../galera/t/galera_ist_innodb_flush_logs.cnf | 3 +-
.../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 | 2 +
mysql-test/suite/galera/t/galera_ist_progress.test | 4 +-
.../suite/galera/t/galera_ist_restart_joiner.test | 4 +-
.../suite/galera/t/galera_ist_xtrabackup-v2.cnf | 12 -
.../suite/galera/t/galera_ist_xtrabackup-v2.test | 10 -
mysql-test/suite/galera/t/galera_kill_applier.test | 1 -
mysql-test/suite/galera/t/galera_kill_ddl.test | 2 +
.../suite/galera/t/galera_kill_largechanges.test | 2 +
.../suite/galera/t/galera_kill_smallchanges.test | 2 +
mysql-test/suite/galera/t/galera_log_bin.test | 2 +
mysql-test/suite/galera/t/galera_many_rows.cnf | 10 +
mysql-test/suite/galera/t/galera_many_rows.test | 7 +
mysql-test/suite/galera/t/galera_migrate.cnf | 2 +
.../galera/t/galera_parallel_apply_lock_table.test | 6 +-
.../galera/t/galera_parallel_autoinc_largetrx.test | 11 +-
.../galera/t/galera_parallel_autoinc_manytrx.test | 2 +-
.../suite/galera/t/galera_parallel_simple.test | 2 +-
mysql-test/suite/galera/t/galera_pc_ignore_sb.test | 21 +-
mysql-test/suite/galera/t/galera_pc_recovery.test | 102 +
mysql-test/suite/galera/t/galera_split_brain.test | 6 +-
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 | 6 +-
.../galera/t/galera_sst_mariabackup_data_dir.cnf | 17 +
.../galera/t/galera_sst_mariabackup_data_dir.test | 23 +
.../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 | 16 +
.../t/galera_sst_mariabackup_table_options.test | 229 +
mysql-test/suite/galera/t/galera_sst_mysqldump.cnf | 4 +-
.../suite/galera/t/galera_sst_mysqldump.test | 2 -
.../galera/t/galera_sst_mysqldump_with_key.cnf | 4 +
mysql-test/suite/galera/t/galera_sst_rsync2.cnf | 15 +
mysql-test/suite/galera/t/galera_sst_rsync2.test | 12 +
.../galera/t/galera_sst_xtrabackup-v2-options.cnf | 25 -
.../galera/t/galera_sst_xtrabackup-v2-options.test | 13 -
.../suite/galera/t/galera_sst_xtrabackup-v2.cnf | 15 -
.../suite/galera/t/galera_sst_xtrabackup-v2.test | 20 -
.../galera_sst_xtrabackup-v2_encrypt_with_key.cnf | 12 -
.../galera_sst_xtrabackup-v2_encrypt_with_key.test | 14 -
.../suite/galera/t/galera_suspend_slave.test | 3 +
.../suite/galera/t/galera_toi_ddl_error.test | 5 +
.../suite/galera/t/galera_toi_ddl_locking.test | 54 +-
mysql-test/suite/galera/t/galera_toi_truncate.test | 16 +-
.../suite/galera/t/galera_transaction_replay.test | 201 +-
.../suite/galera/t/galera_unicode_identifiers.test | 12 +-
.../suite/galera/t/galera_var_cluster_address.test | 11 +-
.../suite/galera/t/galera_var_dirty_reads.test | 12 +-
.../galera/t/galera_var_ignore_apply_errors.test | 235 +
mysql-test/suite/galera/t/galera_var_log_bin.cnf | 5 +
.../suite/galera/t/galera_var_node_address.test | 8 +-
.../suite/galera/t/galera_var_reject_queries.test | 7 +-
.../galera/t/galera_var_retry_autocommit.test | 24 +-
.../suite/galera/t/galera_var_slave_threads.cnf | 7 +
.../suite/galera/t/galera_var_slave_threads.test | 141 +-
.../galera/t/galera_vote_drop_temporary-master.opt | 1 +
mysql-test/suite/galera/t/galera_wan.test | 14 +-
.../suite/galera/t/galera_wsrep_new_cluster.test | 1 -
.../suite/galera/t/mysql-wsrep#198-master.opt | 1 +
mysql-test/suite/galera/t/mysql-wsrep#237.test | 4 +-
mysql-test/suite/galera/t/mysql-wsrep#332.test | 113 +
mysql-test/suite/galera/t/partition.test | 30 +-
mysql-test/suite/galera/t/query_cache.test | 123 +-
mysql-test/suite/galera/t/rpl_row_annotate.test | 5 +-
mysql-test/suite/galera/t/versioning_trx_id.cnf | 1 +
mysql-test/suite/galera/t/versioning_trx_id.test | 28 +
.../suite/galera/t/wsrep_trx_fragment_size_sr.test | 22 +
mysql-test/suite/galera_3nodes/disabled.def | 1 -
mysql-test/suite/galera_3nodes/galera_2x3nodes.cnf | 34 +-
mysql-test/suite/galera_3nodes/galera_3nodes.cnf | 20 +-
.../suite/galera_3nodes/include/galera_resume.inc | 9 +
.../suite/galera_3nodes/include/galera_suspend.inc | 14 -
.../suite/galera_3nodes/include/have_ipv6.inc | 15 -
.../galera_3nodes/include/have_mariabackup.inc | 4 +
mysql-test/suite/galera_3nodes/r/GAL-501.result | 6 +
.../r/galera_certification_ccc.result | 2 +
.../r/galera_certification_double_failure.result | 5 +-
.../r/galera_evs_suspect_timeout.result | 9 +
.../suite/galera_3nodes/r/galera_garbd.result | 14 +
.../r/galera_innobackupex_backup.result | 11 -
.../galera_3nodes/r/galera_ipv6_mariabackup.result | 24 +
.../galera_3nodes/r/galera_ipv6_mysqldump.result | 24 +-
.../suite/galera_3nodes/r/galera_ipv6_rsync.result | 5 +
.../r/galera_ipv6_xtrabackup-v2.result | 18 -
.../r/galera_ist_gcache_rollover.result | 3 +
.../r/galera_parallel_apply_3nodes.result | 4 +-
.../galera_3nodes/r/galera_pc_bootstrap.result | 13 +
.../suite/galera_3nodes/r/galera_pc_weight.result | 55 +-
.../r/galera_safe_to_bootstrap.result | 33 +
.../galera_3nodes/r/galera_var_dirty_reads2.result | 7 +
.../galera_3nodes/r/galera_wsrep_schema.result | 82 +
mysql-test/suite/galera_3nodes/suite.pm | 48 +-
mysql-test/suite/galera_3nodes/t/GAL-501.opt | 1 +
mysql-test/suite/galera_3nodes/t/GAL-501.test | 8 +-
.../t/galera_certification_double_failure.test | 2 +
.../t/galera_evs_suspect_timeout.test | 8 +-
mysql-test/suite/galera_3nodes/t/galera_garbd.test | 26 +-
.../galera_3nodes/t/galera_innobackupex_backup.cnf | 4 +
.../t/galera_innobackupex_backup.test | 58 -
.../galera_3nodes/t/galera_ipv6_mariabackup.cnf | 34 +
.../galera_3nodes/t/galera_ipv6_mariabackup.opt | 1 +
.../galera_3nodes/t/galera_ipv6_mariabackup.test | 68 +
.../galera_3nodes/t/galera_ipv6_mysqldump.cnf | 10 +-
.../galera_3nodes/t/galera_ipv6_mysqldump.opt | 1 +
.../galera_3nodes/t/galera_ipv6_mysqldump.test | 48 +-
.../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_xtrabackup-v2.cnf | 26 -
.../galera_3nodes/t/galera_ipv6_xtrabackup-v2.test | 62 -
.../galera_3nodes/t/galera_ist_gcache_rollover.cnf | 6 +-
.../t/galera_ist_gcache_rollover.test | 3 +-
.../t/galera_parallel_apply_3nodes.test | 2 +-
.../suite/galera_3nodes/t/galera_pc_weight.cnf | 8 +-
.../suite/galera_3nodes/t/galera_pc_weight.test | 64 +-
.../galera_3nodes/t/galera_safe_to_bootstrap.test | 41 +-
.../t/galera_slave_options_ignore.test | 1 +
.../galera_3nodes/t/galera_var_dirty_reads2.test | 3 +-
.../suite/galera_3nodes/t/galera_wsrep_schema.test | 83 +
mysql-test/suite/galera_3nodes_sr/disabled.def | 7 +
.../suite/galera_3nodes_sr/galera_3nodes.cnf | 1 +
mysql-test/suite/galera_3nodes_sr/my.cnf | 1 +
mysql-test/suite/galera_3nodes_sr/r/GCF-336.result | 26 +
mysql-test/suite/galera_3nodes_sr/r/GCF-582.result | 23 +
mysql-test/suite/galera_3nodes_sr/r/GCF-606.result | 38 +
mysql-test/suite/galera_3nodes_sr/r/GCF-609.result | 20 +
.../suite/galera_3nodes_sr/r/GCF-810A.result | 256 +
.../suite/galera_3nodes_sr/r/GCF-810B.result | 100 +
.../suite/galera_3nodes_sr/r/GCF-810C.result | 177 +
mysql-test/suite/galera_3nodes_sr/r/GCF-817.result | 54 +
mysql-test/suite/galera_3nodes_sr/r/GCF-832.result | 26 +
.../r/galera_sr_isolate_master.result | 80 +
.../galera_3nodes_sr/r/galera_sr_join_slave.result | 39 +
.../r/galera_sr_kill_master.result | 33 +
.../r/galera_sr_kill_slave_after_apply.result | 53 +
...alera_sr_kill_slave_after_apply_rollback.result | 58 +
...lera_sr_kill_slave_after_apply_rollback2.result | 31 +
.../r/galera_sr_kill_slave_before_apply.result | 44 +
.../r/galera_sr_threeway_split.result | 117 +
mysql-test/suite/galera_3nodes_sr/t/GCF-336.test | 47 +
mysql-test/suite/galera_3nodes_sr/t/GCF-582.test | 39 +
mysql-test/suite/galera_3nodes_sr/t/GCF-606.test | 80 +
mysql-test/suite/galera_3nodes_sr/t/GCF-609.test | 30 +
mysql-test/suite/galera_3nodes_sr/t/GCF-810A.test | 137 +
mysql-test/suite/galera_3nodes_sr/t/GCF-810B.test | 49 +
mysql-test/suite/galera_3nodes_sr/t/GCF-810C.test | 70 +
mysql-test/suite/galera_3nodes_sr/t/GCF-817.test | 109 +
mysql-test/suite/galera_3nodes_sr/t/GCF-832.test | 43 +
.../t/galera_sr_isolate_master.test | 127 +
.../galera_3nodes_sr/t/galera_sr_join_slave.test | 59 +
.../galera_3nodes_sr/t/galera_sr_kill_master.test | 58 +
.../t/galera_sr_kill_slave_after_apply.test | 81 +
.../galera_sr_kill_slave_after_apply_rollback.test | 80 +
...galera_sr_kill_slave_after_apply_rollback2.test | 56 +
.../t/galera_sr_kill_slave_before_apply.test | 73 +
.../t/galera_sr_threeway_split.cnf | 5 +
.../t/galera_sr_threeway_split.test | 177 +
mysql-test/suite/galera_sr/disabled.def | 3 +
mysql-test/suite/galera_sr/galera_2nodes.cnf | 1 +
mysql-test/suite/galera_sr/my.cnf | 1 +
mysql-test/suite/galera_sr/r/GCF-1008.result | 70 +
mysql-test/suite/galera_sr/r/GCF-1018.result | 24 +
mysql-test/suite/galera_sr/r/GCF-1018B.result | 12 +
mysql-test/suite/galera_sr/r/GCF-1043A.result | 21 +
mysql-test/suite/galera_sr/r/GCF-1043B.result | 21 +
mysql-test/suite/galera_sr/r/GCF-1051.result | 46 +
mysql-test/suite/galera_sr/r/GCF-1060.result | 21 +
mysql-test/suite/galera_sr/r/GCF-437.result | 12 +
mysql-test/suite/galera_sr/r/GCF-561.result | 50 +
mysql-test/suite/galera_sr/r/GCF-571.result | 67 +
mysql-test/suite/galera_sr/r/GCF-572.result | 37 +
mysql-test/suite/galera_sr/r/GCF-574.result | 11 +
mysql-test/suite/galera_sr/r/GCF-580.result | 13 +
mysql-test/suite/galera_sr/r/GCF-585.result | 28 +
mysql-test/suite/galera_sr/r/GCF-597.result | 21 +
mysql-test/suite/galera_sr/r/GCF-620.result | 18 +
mysql-test/suite/galera_sr/r/GCF-623.result | 29 +
mysql-test/suite/galera_sr/r/GCF-627.result | 26 +
mysql-test/suite/galera_sr/r/GCF-845.result | 21 +
mysql-test/suite/galera_sr/r/GCF-851.result | 30 +
mysql-test/suite/galera_sr/r/GCF-867.result | 4 +
mysql-test/suite/galera_sr/r/GCF-889.result | 25 +
mysql-test/suite/galera_sr/r/GCF-900.result | 21 +
.../suite/galera_sr/r/galera-features#56.result | 32 +
.../suite/galera_sr/r/galera_sr_bf_abort.result | 555 +
mysql-test/suite/galera_sr/r/galera_sr_blob.result | 23 +
.../suite/galera_sr/r/galera_sr_cc_master.result | 65 +
.../suite/galera_sr/r/galera_sr_cc_slave.result | 59 +
.../suite/galera_sr/r/galera_sr_concurrent.result | 36 +
.../suite/galera_sr/r/galera_sr_conflict.result | 21 +
.../r/galera_sr_conflict_on_commit.result | 31 +
.../r/galera_sr_conflict_on_commit2.result | 28 +
.../galera_sr_conflict_with_rollback_master.result | 29 +
.../suite/galera_sr/r/galera_sr_ddl_master.result | 48 +
.../suite/galera_sr/r/galera_sr_ddl_schema.result | 23 +
.../suite/galera_sr/r/galera_sr_ddl_slave.result | 50 +
.../galera_sr/r/galera_sr_ddl_unrelated.result | 42 +
.../galera_sr/r/galera_sr_dupkey_error.result | 46 +
.../suite/galera_sr/r/galera_sr_fk_conflict.result | 39 +
mysql-test/suite/galera_sr/r/galera_sr_gtid.result | 57 +
.../galera_sr/r/galera_sr_insert_select.result | 18 +
.../r/galera_sr_kill_all_nobootstrap.result | 29 +
.../r/galera_sr_kill_all_norecovery.result | 30 +
.../r/galera_sr_kill_all_pcrecovery.result | 30 +
.../galera_sr/r/galera_sr_kill_connection.result | 32 +
.../suite/galera_sr/r/galera_sr_kill_query.result | 31 +
.../suite/galera_sr/r/galera_sr_kill_slave.result | 53 +
.../galera_sr/r/galera_sr_large_fragment.result | 33 +
.../suite/galera_sr/r/galera_sr_load_data.result | 13 +
.../r/galera_sr_load_data_splitting.result | 9 +
.../suite/galera_sr/r/galera_sr_log_bin.result | 124 +
.../galera_sr/r/galera_sr_many_fragments.result | 33 +
.../suite/galera_sr/r/galera_sr_myisam.result | 16 +
.../galera_sr/r/galera_sr_mysqldump_sst.result | 58 +
.../galera_sr/r/galera_sr_parallel_apply.result | 37 +
.../suite/galera_sr/r/galera_sr_rollback.result | 42 +
.../galera_sr/r/galera_sr_rollback_retry.result | 33 +
.../r/galera_sr_rollback_savepoint.result | 42 +
.../r/galera_sr_rollback_statement.result | 22 +
mysql-test/suite/galera_sr/r/galera_sr_sbr.result | 16 +
.../galera_sr/r/galera_sr_shutdown_master.result | 31 +
.../galera_sr/r/galera_sr_shutdown_slave.result | 43 +
.../galera_sr/r/galera_sr_small_gcache.result | 15 +
.../galera_sr/r/galera_sr_table_contents.result | 198 +
.../r/galera_sr_transaction_replay.result | 121 +
.../galera_sr/r/galera_sr_unit_statements.result | 54 +
.../galera_sr/r/galera_sr_v1_row_events.result | 20 +
.../suite/galera_sr/r/galera_sr_ws_size.result | 36 +
.../suite/galera_sr/r/galera_sr_ws_size2.result | 34 +
.../r/galera_var_ignore_apply_errors_sr.result | 29 +
.../suite/galera_sr/r/mysql-wsrep#215.result | 137 +
.../galera_sr/r/mysql-wsrep-features#136.result | 65 +
.../galera_sr/r/mysql-wsrep-features#138.result | 24 +
.../galera_sr/r/mysql-wsrep-features#14.result | 12 +
.../galera_sr/r/mysql-wsrep-features#148.result | 42 +
.../galera_sr/r/mysql-wsrep-features#15.result | 11 +
.../galera_sr/r/mysql-wsrep-features#165.result | 752 +
.../galera_sr/r/mysql-wsrep-features#22.result | 35 +
.../galera_sr/r/mysql-wsrep-features#27.result | 23 +
.../galera_sr/r/mysql-wsrep-features#29.result | 14 +
.../galera_sr/r/mysql-wsrep-features#32.result | 27 +
.../galera_sr/r/mysql-wsrep-features#35.result | 41 +
.../galera_sr/r/mysql-wsrep-features#8.result | 39 +
.../galera_sr/r/mysql-wsrep-features#9.result | 20 +
.../galera_sr/r/mysql-wsrep-features#93.result | 18 +
.../galera_sr/r/mysql-wsrep-features#96.result | 33 +
mysql-test/suite/galera_sr/t/GCF-1008.inc | 36 +
mysql-test/suite/galera_sr/t/GCF-1008.test | 18 +
mysql-test/suite/galera_sr/t/GCF-1018.test | 38 +
mysql-test/suite/galera_sr/t/GCF-1018B.test | 40 +
mysql-test/suite/galera_sr/t/GCF-1043A.test | 13 +
mysql-test/suite/galera_sr/t/GCF-1043B.test | 13 +
mysql-test/suite/galera_sr/t/GCF-1051.test | 51 +
mysql-test/suite/galera_sr/t/GCF-1060.test | 9 +
mysql-test/suite/galera_sr/t/GCF-437.test | 21 +
mysql-test/suite/galera_sr/t/GCF-561.test | 65 +
mysql-test/suite/galera_sr/t/GCF-571.test | 54 +
mysql-test/suite/galera_sr/t/GCF-572.test | 54 +
mysql-test/suite/galera_sr/t/GCF-574.test | 27 +
mysql-test/suite/galera_sr/t/GCF-580.test | 27 +
mysql-test/suite/galera_sr/t/GCF-585.test | 44 +
mysql-test/suite/galera_sr/t/GCF-597.test | 29 +
mysql-test/suite/galera_sr/t/GCF-620.test | 22 +
mysql-test/suite/galera_sr/t/GCF-623.test | 31 +
mysql-test/suite/galera_sr/t/GCF-627.test | 30 +
mysql-test/suite/galera_sr/t/GCF-845.test | 30 +
mysql-test/suite/galera_sr/t/GCF-851.test | 24 +
mysql-test/suite/galera_sr/t/GCF-867.test | 42 +
mysql-test/suite/galera_sr/t/GCF-889.test | 29 +
mysql-test/suite/galera_sr/t/GCF-900.test | 28 +
.../suite/galera_sr/t/galera-features#56.test | 55 +
.../suite/galera_sr/t/galera_sr_bf_abort.inc | 145 +
.../suite/galera_sr/t/galera_sr_bf_abort.test | 50 +
mysql-test/suite/galera_sr/t/galera_sr_blob.test | 38 +
.../suite/galera_sr/t/galera_sr_cc_master.test | 98 +
.../suite/galera_sr/t/galera_sr_cc_slave.test | 97 +
.../suite/galera_sr/t/galera_sr_concurrent.test | 45 +
.../suite/galera_sr/t/galera_sr_conflict.test | 45 +
.../galera_sr/t/galera_sr_conflict_on_commit.test | 45 +
.../galera_sr/t/galera_sr_conflict_on_commit2.test | 46 +
.../t/galera_sr_conflict_with_rollback_master.test | 44 +
.../suite/galera_sr/t/galera_sr_ddl_master.test | 63 +
.../suite/galera_sr/t/galera_sr_ddl_schema.test | 43 +
.../suite/galera_sr/t/galera_sr_ddl_slave.test | 65 +
.../suite/galera_sr/t/galera_sr_ddl_unrelated.test | 53 +
.../suite/galera_sr/t/galera_sr_dupkey_error.test | 59 +
.../suite/galera_sr/t/galera_sr_fk_conflict.test | 62 +
.../suite/galera_sr/t/galera_sr_gtid-master.opt | 1 +
mysql-test/suite/galera_sr/t/galera_sr_gtid.test | 46 +
.../suite/galera_sr/t/galera_sr_insert_select.test | 33 +
.../t/galera_sr_kill_all_nobootstrap.test | 52 +
.../galera_sr/t/galera_sr_kill_all_norecovery.cnf | 4 +
.../galera_sr/t/galera_sr_kill_all_norecovery.test | 53 +
.../galera_sr/t/galera_sr_kill_all_pcrecovery.test | 54 +
.../galera_sr/t/galera_sr_kill_connection.test | 59 +
.../suite/galera_sr/t/galera_sr_kill_query.test | 48 +
.../suite/galera_sr/t/galera_sr_kill_slave.cnf | 4 +
.../suite/galera_sr/t/galera_sr_kill_slave.test | 80 +
.../t/galera_sr_large_fragment-master.opt | 1 +
.../galera_sr/t/galera_sr_large_fragment.test | 58 +
.../suite/galera_sr/t/galera_sr_load_data.test | 39 +
.../galera_sr/t/galera_sr_load_data_splitting.test | 50 +
.../suite/galera_sr/t/galera_sr_log_bin-master.opt | 1 +
.../suite/galera_sr/t/galera_sr_log_bin.test | 70 +
.../galera_sr/t/galera_sr_many_fragments.test | 53 +
mysql-test/suite/galera_sr/t/galera_sr_myisam.test | 29 +
.../suite/galera_sr/t/galera_sr_mysqldump_sst.cnf | 11 +
.../suite/galera_sr/t/galera_sr_mysqldump_sst.test | 79 +
.../galera_sr/t/galera_sr_parallel_apply.test | 59 +
.../suite/galera_sr/t/galera_sr_rollback.test | 76 +
.../galera_sr/t/galera_sr_rollback_retry.test | 55 +
.../galera_sr/t/galera_sr_rollback_savepoint.test | 51 +
.../galera_sr/t/galera_sr_rollback_statement.test | 61 +
mysql-test/suite/galera_sr/t/galera_sr_sbr.test | 31 +
.../galera_sr/t/galera_sr_shutdown_master.test | 53 +
.../galera_sr/t/galera_sr_shutdown_slave.test | 63 +
.../suite/galera_sr/t/galera_sr_small_gcache.cnf | 6 +
.../suite/galera_sr/t/galera_sr_small_gcache.test | 21 +
.../galera_sr/t/galera_sr_table_contents.test | 49 +
.../galera_sr/t/galera_sr_transaction_replay.test | 260 +
.../galera_sr/t/galera_sr_unit_statements.test | 54 +
.../galera_sr/t/galera_sr_v1_row_events-master.opt | 1 +
.../suite/galera_sr/t/galera_sr_v1_row_events.test | 27 +
.../suite/galera_sr/t/galera_sr_ws_size.test | 70 +
.../suite/galera_sr/t/galera_sr_ws_size2.test | 62 +
.../t/galera_var_ignore_apply_errors_sr.test | 38 +
mysql-test/suite/galera_sr/t/mysql-wsrep#215.test | 175 +
.../t/mysql-wsrep-features#136-master.opt | 1 +
.../galera_sr/t/mysql-wsrep-features#136.test | 41 +
.../galera_sr/t/mysql-wsrep-features#138.test | 25 +
.../suite/galera_sr/t/mysql-wsrep-features#14.test | 21 +
.../galera_sr/t/mysql-wsrep-features#148.test | 60 +
.../suite/galera_sr/t/mysql-wsrep-features#15.test | 17 +
.../suite/galera_sr/t/mysql-wsrep-features#165.inc | 104 +
.../galera_sr/t/mysql-wsrep-features#165.test | 41 +
.../suite/galera_sr/t/mysql-wsrep-features#22.test | 47 +
.../suite/galera_sr/t/mysql-wsrep-features#27.test | 29 +
.../suite/galera_sr/t/mysql-wsrep-features#29.test | 23 +
.../galera_sr/t/mysql-wsrep-features#32-master.opt | 1 +
.../suite/galera_sr/t/mysql-wsrep-features#32.test | 44 +
.../suite/galera_sr/t/mysql-wsrep-features#35.test | 48 +
.../suite/galera_sr/t/mysql-wsrep-features#8.test | 63 +
.../suite/galera_sr/t/mysql-wsrep-features#9.test | 44 +
.../suite/galera_sr/t/mysql-wsrep-features#93.test | 29 +
.../suite/galera_sr/t/mysql-wsrep-features#96.test | 45 +
mysql-test/suite/gcol/r/gcol_bug20746926.result | 8 +-
mysql-test/suite/gcol/r/gcol_bugfixes.result | 2 +
mysql-test/suite/gcol/r/gcol_keys_innodb.result | 8 +-
mysql-test/suite/gcol/r/gcol_keys_myisam.result | 6 +
.../suite/gcol/r/gcol_partition_innodb.result | 17 +
mysql-test/suite/gcol/r/gcol_select_innodb.result | 7 +
mysql-test/suite/gcol/r/gcol_select_myisam.result | 11 +
mysql-test/suite/gcol/r/gcol_view_innodb.result | 1 +
mysql-test/suite/gcol/r/gcol_view_myisam.result | 1 +
.../suite/gcol/r/innodb_virtual_fk_restart.result | 9 +
.../suite/gcol/r/innodb_virtual_index.result | 54 +-
.../suite/gcol/r/innodb_virtual_rebuild.result | 16 +-
mysql-test/suite/gcol/t/gcol_partition_innodb.test | 20 +
.../suite/gcol/t/innodb_virtual_fk_restart.test | 9 +
mysql-test/suite/gcol/t/innodb_virtual_index.test | 50 +
.../suite/gcol/t/innodb_virtual_rebuild.test | 5 +-
mysql-test/suite/handler/aria.result | 4 +-
mysql-test/suite/handler/heap.result | 5 +-
mysql-test/suite/handler/innodb.result | 4 +-
mysql-test/suite/handler/interface.result | 6 +-
mysql-test/suite/handler/interface.test | 6 +-
mysql-test/suite/handler/myisam.result | 4 +-
mysql-test/suite/heap/heap_btree.result | 4 +
mysql-test/suite/heap/heap_btree.test | 9 +
mysql-test/suite/innodb/include/alter_instant.inc | 33 -
mysql-test/suite/innodb/include/alter_nocopy.inc | 33 -
.../suite/innodb/include/alter_nocopy_fail.inc | 51 -
mysql-test/suite/innodb/include/alter_not_null.inc | 94 -
mysql-test/suite/innodb/include/crc32.pl | 33 +
.../innodb/include/innodb_binlog.combinations | 3 +
mysql-test/suite/innodb/include/innodb_binlog.inc | 3 +
.../suite/innodb/r/alter_algorithm,COPY.rdiff | 92 -
.../suite/innodb/r/alter_algorithm,INPLACE.rdiff | 128 +-
.../suite/innodb/r/alter_algorithm,INSTANT.rdiff | 124 +-
.../suite/innodb/r/alter_algorithm,NOCOPY.rdiff | 145 +
mysql-test/suite/innodb/r/alter_algorithm.result | 103 +-
.../suite/innodb/r/alter_candidate_key.result | 114 +
.../suite/innodb/r/alter_inplace_perfschema.result | 21 +
mysql-test/suite/innodb/r/alter_instant,COPY.rdiff | 61 -
.../suite/innodb/r/alter_instant,INPLACE.rdiff | 11 -
.../suite/innodb/r/alter_instant,INSTANT.rdiff | 11 -
mysql-test/suite/innodb/r/alter_instant.result | 50 -
mysql-test/suite/innodb/r/alter_kill.result | 2 +
.../suite/innodb/r/alter_varchar_change.result | 459 +
mysql-test/suite/innodb/r/analyze_table.result | 1 +
.../innodb/r/auto_increment_dup,skip-log-bin.rdiff | 51 +
.../suite/innodb/r/auto_increment_dup.result | 22 +-
mysql-test/suite/innodb/r/data_types.result | 23 +-
.../r/default_row_format_create,redundant.rdiff | 11 +
.../innodb/r/default_row_format_create.result | 22 +-
mysql-test/suite/innodb/r/foreign-keys.result | 73 +
mysql-test/suite/innodb/r/foreign_key.result | 76 +-
mysql-test/suite/innodb/r/innochecksum.result | 5 -
.../suite/innodb/r/innodb-alter-debug.result | 41 +-
.../suite/innodb/r/innodb-alter-table.result | 1 +
mysql-test/suite/innodb/r/innodb-alter.result | 173 +-
mysql-test/suite/innodb/r/innodb-index,debug.rdiff | 10 +
.../suite/innodb/r/innodb-index-online.result | 7 +-
mysql-test/suite/innodb/r/innodb-index.result | 48 +
mysql-test/suite/innodb/r/innodb-lock.result | 47 +-
.../suite/innodb/r/innodb-online-alter-gis.result | 2 +-
.../innodb/r/innodb-page_compression_bzip2.result | 8 +-
.../innodb/r/innodb-page_compression_lz4.result | 7 +-
.../innodb/r/innodb-page_compression_lzma.result | 8 +-
.../innodb/r/innodb-page_compression_lzo.result | 8 +-
.../innodb/r/innodb-page_compression_tables.result | 8 +-
.../innodb/r/innodb-page_compression_zip.result | 7 +-
.../suite/innodb/r/innodb-table-online.result | 12 +-
.../suite/innodb/r/innodb-update-insert.result | 4 +-
.../suite/innodb/r/innodb-virtual-columns.result | 13 +
.../suite/innodb/r/innodb-wl5522-debug.result | 6 -
mysql-test/suite/innodb/r/innodb.result | 3 +-
mysql-test/suite/innodb/r/innodb_28867993.result | 9 +
.../suite/innodb/r/innodb_bug14676111.result | 6 +
mysql-test/suite/innodb/r/innodb_bug30423.result | 11 +
mysql-test/suite/innodb/r/innodb_bug53046.result | 1 +
mysql-test/suite/innodb/r/innodb_bug57252.result | 1 +
.../innodb/r/innodb_max_recordsize_32k.result | 6 +
.../innodb/r/innodb_max_recordsize_64k.result | 6 +
mysql-test/suite/innodb/r/innodb_mysql.result | 17 +-
.../innodb/r/innodb_skip_innodb_is_tables.result | 1 -
mysql-test/suite/innodb/r/innodb_stats.result | 10 +
.../suite/innodb/r/innodb_stats_drop_locked.result | 1 +
.../suite/innodb/r/innodb_stats_fetch.result | 4 +
.../innodb/r/innodb_stats_fetch_corrupted.result | 4 +
.../innodb/r/innodb_stats_fetch_nonexistent.result | 4 +
.../suite/innodb/r/innodb_stats_persistent.result | 3 +-
.../innodb/r/innodb_stats_persistent_debug.result | 1 +
.../suite/innodb/r/innodb_zip_innochecksum.result | 91 -
.../suite/innodb/r/innodb_zip_innochecksum2.result | 160 -
.../suite/innodb/r/innodb_zip_innochecksum3.result | 227 -
mysql-test/suite/innodb/r/instant_alter.result | 803 +-
.../suite/innodb/r/instant_alter_bugs.result | 130 +
.../suite/innodb/r/instant_alter_crash.result | 78 +-
.../suite/innodb/r/instant_alter_debug.result | 66 +-
.../suite/innodb/r/instant_alter_limit.result | 35 +
.../suite/innodb/r/instant_alter_null.result | 56 +
.../innodb/r/instant_alter_purge,release.rdiff | 18 +
.../suite/innodb/r/instant_alter_purge.result | 46 +
.../suite/innodb/r/instant_alter_rollback.result | 108 +-
mysql-test/suite/innodb/r/instant_drop.result | 203 +
.../suite/innodb/r/instant_varchar_enlarge.result | 9 +
mysql-test/suite/innodb/r/log_file_size.result | 2 +-
mysql-test/suite/innodb/r/monitor.result | 1 -
mysql-test/suite/innodb/r/purge_secondary.result | 1 +
.../suite/innodb/r/table_flags,32k,debug.rdiff | 132 +
.../suite/innodb/r/table_flags,32k,release.rdiff | 20 +
mysql-test/suite/innodb/r/table_flags,32k.rdiff | 20 -
.../suite/innodb/r/table_flags,64k,debug.rdiff | 132 +
.../suite/innodb/r/table_flags,64k,release.rdiff | 20 +
mysql-test/suite/innodb/r/table_flags,64k.rdiff | 20 -
mysql-test/suite/innodb/r/table_flags,debug.rdiff | 122 +
mysql-test/suite/innodb/r/table_flags.result | 5 +
mysql-test/suite/innodb/r/truncate.result | 33 +
.../suite/innodb/r/undo_truncate_recover.result | 1 -
mysql-test/suite/innodb/t/alter_algorithm.test | 129 +-
mysql-test/suite/innodb/t/alter_candidate_key.test | 72 +
.../suite/innodb/t/alter_inplace_perfschema.opt | 2 +
.../suite/innodb/t/alter_inplace_perfschema.test | 42 +
mysql-test/suite/innodb/t/alter_instant.test | 45 -
mysql-test/suite/innodb/t/alter_kill.test | 9 +-
mysql-test/suite/innodb/t/alter_not_null.test | 94 +-
.../suite/innodb/t/alter_varchar_change.test | 336 +
mysql-test/suite/innodb/t/auto_increment_dup.test | 40 +-
mysql-test/suite/innodb/t/data_types.test | 22 +-
.../suite/innodb/t/default_row_format_create.test | 20 +-
mysql-test/suite/innodb/t/foreign-keys.test | 87 +
mysql-test/suite/innodb/t/foreign_key.test | 112 +-
mysql-test/suite/innodb/t/innochecksum.test | 32 -
mysql-test/suite/innodb/t/innodb-alter-debug.test | 57 +-
mysql-test/suite/innodb/t/innodb-alter.test | 123 +-
mysql-test/suite/innodb/t/innodb-index.test | 59 +-
mysql-test/suite/innodb/t/innodb-lock.test | 74 +-
.../innodb/t/innodb-page_compression_bzip2.test | 15 +-
.../innodb/t/innodb-page_compression_lz4.test | 14 +-
.../innodb/t/innodb-page_compression_lzma.test | 15 +-
.../innodb/t/innodb-page_compression_lzo.test | 15 +-
.../innodb/t/innodb-page_compression_tables.test | 8 +-
.../innodb/t/innodb-page_compression_zip.test | 14 +-
mysql-test/suite/innodb/t/innodb-table-online.test | 4 -
.../suite/innodb/t/innodb-virtual-columns.test | 11 +
mysql-test/suite/innodb/t/innodb-wl5522-debug.test | 14 -
mysql-test/suite/innodb/t/innodb_28867993.test | 12 +
.../t/innodb_default_row_format.combinations | 2 +
.../suite/innodb/t/innodb_zip_innochecksum.opt | 2 -
.../suite/innodb/t/innodb_zip_innochecksum.test | 239 -
.../suite/innodb/t/innodb_zip_innochecksum2.opt | 3 -
.../suite/innodb/t/innodb_zip_innochecksum2.test | 118 -
.../suite/innodb/t/innodb_zip_innochecksum3.opt | 1 -
.../suite/innodb/t/innodb_zip_innochecksum3.test | 406 -
mysql-test/suite/innodb/t/instant_alter.test | 290 +
mysql-test/suite/innodb/t/instant_alter_bugs.test | 138 +
mysql-test/suite/innodb/t/instant_alter_crash.test | 78 +-
mysql-test/suite/innodb/t/instant_alter_debug.test | 71 +-
mysql-test/suite/innodb/t/instant_alter_limit.test | 42 +
mysql-test/suite/innodb/t/instant_alter_null.test | 57 +
mysql-test/suite/innodb/t/instant_alter_purge.test | 75 +
.../suite/innodb/t/instant_alter_rollback.test | 80 +-
mysql-test/suite/innodb/t/instant_drop.test | 108 +
.../suite/innodb/t/instant_varchar_enlarge.test | 8 +
mysql-test/suite/innodb/t/log_file_name_debug.test | 4 +-
mysql-test/suite/innodb/t/log_file_size.test | 2 +-
.../suite/innodb/t/purge_thread_shutdown.test | 4 +-
mysql-test/suite/innodb/t/recovery_shutdown.test | 6 +
mysql-test/suite/innodb/t/table_flags.test | 11 +-
mysql-test/suite/innodb/t/truncate.test | 35 +
.../suite/innodb/t/undo_truncate_recover.test | 4 -
.../suite/innodb_fts/r/crash_recovery.result | 1 +
mysql-test/suite/innodb_fts/r/create.result | 20 +-
.../suite/innodb_fts/r/innodb-fts-ddl.result | 11 +-
.../suite/innodb_fts/r/innodb-fts-fic.result | 2 +
.../suite/innodb_fts/r/innodb-fts-stopword.result | 4 +
.../suite/innodb_fts/r/innodb_fts_misc_1.result | 4 +
mysql-test/suite/innodb_fts/t/crash_recovery.test | 1 +
mysql-test/suite/innodb_fts/t/create.test | 16 +
mysql-test/suite/innodb_fts/t/innodb-fts-ddl.test | 10 +
mysql-test/suite/innodb_gis/r/1.result | 4 +-
.../suite/innodb_gis/r/alter_spatial_index.result | 11 +-
.../suite/innodb_gis/r/create_spatial_index.result | 3 +
mysql-test/suite/innodb_gis/r/gis.result | 4 +-
.../suite/innodb_gis/r/innodb_gis_rtree.result | 1 +
mysql-test/suite/innodb_gis/r/rt_precise.result | 1 +
mysql-test/suite/innodb_gis/r/rtree.result | 2 +
.../innodb_gis/r/rtree_concurrent_srch.result | 4 +-
.../suite/innodb_gis/r/rtree_estimate.result | 1 +
.../suite/innodb_gis/t/alter_spatial_index.test | 3 +-
.../suite/innodb_gis/t/rtree_concurrent_srch.test | 2 +-
mysql-test/suite/innodb_zip/r/innodb-zip.result | 4 +
.../innodb_zip/r/prefix_index_liftedlimit.result | 2 +-
.../suite/innodb_zip/r/wl5522_debug_zip.result | 6 -
mysql-test/suite/innodb_zip/t/innochecksum.test | 4 +
.../innodb_zip/t/prefix_index_liftedlimit.test | 2 +-
.../suite/innodb_zip/t/wl5522_debug_zip.test | 14 -
.../large_tests/r/rpl_slave_net_timeout.result | 4 +
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 | 2 +-
mysql-test/suite/maria/maria-autozerofill.result | 1 +
.../suite/maria/maria-gis-rtree-dynamic.result | 1 +
.../suite/maria/maria-gis-rtree-trans.result | 1 +
mysql-test/suite/maria/maria-gis-rtree.result | 1 +
mysql-test/suite/maria/maria.result | 13 +-
mysql-test/suite/maria/maria.test | 10 +
mysql-test/suite/maria/maria3.result | 2 +
mysql-test/suite/maria/system_tables.result | 1 +
mysql-test/suite/maria/system_tables.test | 4 +-
.../suite/mariabackup/absolute_ibdata_paths.opt | 2 +-
mysql-test/suite/mariabackup/backup_grants.result | 5 +
mysql-test/suite/mariabackup/backup_grants.test | 30 +
.../mariabackup/drop_table_during_backup.result | 5 +
.../mariabackup/drop_table_during_backup.test | 9 +
.../mariabackup/encrypted_page_compressed.opt | 6 +
.../mariabackup/encrypted_page_compressed.result | 7 +
.../mariabackup/encrypted_page_compressed.test | 48 +
.../mariabackup/encrypted_page_corruption.opt | 6 +
.../mariabackup/encrypted_page_corruption.result | 8 +
.../mariabackup/encrypted_page_corruption.test | 70 +
mysql-test/suite/mariabackup/huge_lsn.opt | 4 +
.../incremental_ddl_before_backup.result | 32 +
.../mariabackup/incremental_ddl_before_backup.test | 50 +
mysql-test/suite/mariabackup/mdev-14447.result | 1 +
mysql-test/suite/mariabackup/mdev-14447.test | 14 +-
.../nolock_ddl_during_backup_end.result | 2 +
.../mariabackup/nolock_ddl_during_backup_end.test | 14 +
mysql-test/suite/mariabackup/partition_partial.opt | 1 +
.../suite/mariabackup/partition_partial.result | 31 +
.../suite/mariabackup/partition_partial.test | 44 +
.../suite/mariabackup/rename_during_backup.result | 9 +
.../suite/mariabackup/rename_during_backup.test | 7 +
mysql-test/suite/mariabackup/undo_space_id.opt | 1 +
.../mariabackup/unencrypted_page_compressed.result | 11 +
.../mariabackup/unencrypted_page_compressed.test | 50 +
.../suite/mariabackup/xb_aws_key_management.result | 5 -
.../parts/r/partition_alter1_1_2_innodb.result | 56 +
.../parts/r/partition_alter1_1_2_myisam.result | 16 +
.../suite/parts/r/partition_alter1_1_innodb.result | 32 +
.../suite/parts/r/partition_alter1_1_myisam.result | 16 +
.../suite/parts/r/partition_alter1_2_innodb.result | 80 +
.../suite/parts/r/partition_alter1_2_myisam.result | 32 +
.../parts/r/partition_alter2_1_1_innodb.result | 40 +
.../parts/r/partition_alter2_1_2_innodb.result | 40 +
.../suite/parts/r/partition_alter2_1_maria.result | 48 +
.../suite/parts/r/partition_alter2_1_myisam.result | 48 +
.../parts/r/partition_alter2_2_1_innodb.result | 40 +
.../parts/r/partition_alter2_2_2_innodb.result | 40 +
.../suite/parts/r/partition_alter2_2_maria.result | 48 +
.../suite/parts/r/partition_alter2_2_myisam.result | 48 +
.../suite/parts/r/partition_alter4_innodb.result | 216 +
.../suite/parts/r/partition_alter4_myisam.result | 216 +
.../suite/parts/r/partition_basic_innodb.result | 64 +
.../suite/parts/r/partition_basic_myisam.result | 32 +
.../parts/r/partition_basic_symlink_myisam.result | 39 +
.../suite/parts/r/partition_engine_innodb.result | 11 +
.../suite/parts/r/partition_engine_myisam.result | 11 +
.../suite/parts/r/partition_mgm_lc0_innodb.result | 1 +
.../suite/parts/r/partition_mgm_lc0_memory.result | 1 +
.../suite/parts/r/partition_mgm_lc0_myisam.result | 1 +
.../suite/parts/r/partition_mgm_lc1_innodb.result | 1 +
.../suite/parts/r/partition_mgm_lc1_memory.result | 1 +
.../suite/parts/r/partition_mgm_lc1_myisam.result | 1 +
.../suite/parts/r/partition_mgm_lc2_innodb.result | 1 +
.../suite/parts/r/partition_mgm_lc2_memory.result | 1 +
.../suite/parts/r/partition_mgm_lc2_myisam.result | 1 +
.../suite/parts/r/partition_repair_myisam.result | 3 +-
mysql-test/suite/parts/r/show_create.result | 8 +
mysql-test/suite/parts/r/update_and_cache.result | 7 +
mysql-test/suite/parts/t/show_create.test | 11 +
mysql-test/suite/parts/t/update_and_cache.test | 12 +
.../perfschema/r/dml_setup_instruments.result | 4 +-
.../suite/perfschema/r/event_aggregate.result | 412 +-
.../suite/perfschema/r/event_aggregate_no_a.result | 344 +-
.../perfschema/r/event_aggregate_no_a_no_h.result | 268 +-
.../perfschema/r/event_aggregate_no_a_no_u.result | 272 +-
.../r/event_aggregate_no_a_no_u_no_h.result | 196 +-
.../suite/perfschema/r/event_aggregate_no_h.result | 336 +-
.../suite/perfschema/r/event_aggregate_no_u.result | 340 +-
.../perfschema/r/event_aggregate_no_u_no_h.result | 264 +-
.../r/hostcache_ipv4_nameinfo_again_allow.result | 4 +-
.../r/hostcache_ipv6_nameinfo_again_allow.result | 4 +-
.../suite/perfschema/r/privilege_table_io.result | 12 +-
.../perfschema/r/setup_instruments_defaults.result | 1 -
.../suite/perfschema/r/socket_connect.result | 13 -
.../suite/perfschema/r/stage_mdl_global.result | 2 +-
mysql-test/suite/perfschema/t/socket_connect.test | 9 +-
.../suite/perfschema/t/stage_mdl_global.test | 4 +-
mysql-test/suite/plugins/r/audit_null.result | 6 +
mysql-test/suite/plugins/r/auth_ed25519.result | 31 +-
.../suite/plugins/r/cracklib_password_check.result | 2 +-
.../suite/plugins/r/feedback_plugin_load.result | 2 +-
.../suite/plugins/r/feedback_plugin_send.result | 2 +-
.../r/max_password_errors_auth_named_pipe.result | 12 +
.../r/max_password_errors_auth_socket.result | 12 +
mysql-test/suite/plugins/r/multiauth.result | 194 +
mysql-test/suite/plugins/r/server_audit.result | 22 +-
mysql-test/suite/plugins/r/show_all_plugins.result | 4 +-
.../suite/plugins/r/simple_password_check.result | 9 +-
mysql-test/suite/plugins/r/sql_error_log.result | 4 +-
.../plugins/r/thread_pool_server_audit.result | 22 +-
mysql-test/suite/plugins/t/auth_ed25519.test | 13 +
.../suite/plugins/t/feedback_plugin_load.test | 4 +-
.../t/max_password_errors_auth_named_pipe.opt | 1 +
.../t/max_password_errors_auth_named_pipe.test | 22 +
.../plugins/t/max_password_errors_auth_socket.opt | 1 +
.../plugins/t/max_password_errors_auth_socket.test | 23 +
mysql-test/suite/plugins/t/multiauth.test | 197 +
.../suite/plugins/t/simple_password_check.test | 8 +-
mysql-test/suite/roles/create_and_drop_role.result | 6 +-
.../create_and_drop_role_invalid_user_table.result | 1 -
.../create_and_drop_role_invalid_user_table.test | 7 +-
.../roles/default_create_user_not_role.result | 2 +-
mysql-test/suite/roles/flush_roles-17898.result | 9 +
mysql-test/suite/roles/flush_roles-17898.test | 12 +
mysql-test/suite/roles/grant_revoke_current.result | 3 +-
mysql-test/suite/roles/grant_revoke_current.test | 5 +-
.../suite/roles/grant_role_auto_create_user.result | 2 +-
.../roles/i_s_applicable_roles_is_default.result | 1 +
.../roles/i_s_applicable_roles_is_default.test | 2 +-
mysql-test/suite/roles/none_public.result | 12 +-
mysql-test/suite/roles/none_public.test | 6 +-
.../suite/roles/prepare_stmt_with_role.result | 6 +-
mysql-test/suite/roles/rename_user.result | 2 +-
.../suite/roles/role_case_sensitive-10744.result | 2 +-
.../suite/roles/set_default_role_clear.result | 8 +-
mysql-test/suite/roles/set_default_role_for.result | 13 +-
mysql-test/suite/roles/set_default_role_for.test | 3 -
.../suite/roles/set_default_role_invalid.result | 6 +-
.../roles/set_default_role_new_connection.result | 10 +-
.../suite/roles/set_default_role_ps-6960.result | 3 +-
.../suite/roles/set_default_role_ps-6960.test | 7 +-
.../suite/roles/set_role-database-recursive.result | 2 +-
.../suite/roles/set_role-database-simple.result | 2 +-
mysql-test/suite/roles/set_role-recursive.result | 2 +-
.../suite/roles/set_role-routine-simple.result | 2 +-
mysql-test/suite/roles/set_role-simple.result | 2 +-
.../suite/roles/set_role-table-column-priv.result | 2 +-
.../suite/roles/set_role-table-simple.result | 2 +-
mysql-test/suite/roles/show_grants.result | 2 +-
.../suite/roles/show_grants_replicated.result | 2 +-
mysql-test/suite/rpl/disabled.def | 1 +
mysql-test/suite/rpl/include/check_type.inc | 8 +
mysql-test/suite/rpl/include/rpl_EE_err.test | 2 +-
mysql-test/suite/rpl/include/rpl_foreign_key.test | 60 -
.../rpl/include/rpl_lower_case_table_names.test | 141 +
mysql-test/suite/rpl/include/rpl_mixed_dml.inc | 1 -
mysql-test/suite/rpl/include/rpl_row_001.test | 96 -
mysql-test/suite/rpl/include/rpl_row_annotate.test | 2 +-
.../suite/rpl/include/rpl_row_delayed_ins.test | 2 +-
mysql-test/suite/rpl/include/type_conversions.test | 91 +
mysql-test/suite/rpl/r/rpl_15919.result | 19 +
mysql-test/suite/rpl/r/rpl_EE_err.result | 2 +-
mysql-test/suite/rpl/r/rpl_auto_increment.result | 16 -
.../rpl/r/rpl_auto_increment_update_failure.result | 112 -
mysql-test/suite/rpl/r/rpl_binlog_index.result | 4 -
mysql-test/suite/rpl/r/rpl_bug31076.result | 2 +-
mysql-test/suite/rpl/r/rpl_checksum_cache.result | 24 -
.../suite/rpl/r/rpl_conditional_comments.result | 12 -
mysql-test/suite/rpl/r/rpl_corruption.result | 4 -
mysql-test/suite/rpl/r/rpl_create_drop_user.result | 44 +-
.../suite/rpl/r/rpl_create_if_not_exists.result | 2 -
mysql-test/suite/rpl/r/rpl_current_user.result | 78 -
mysql-test/suite/rpl/r/rpl_ddl.result | 12 +-
mysql-test/suite/rpl/r/rpl_do_grant.result | 23 +-
.../suite/rpl/r/rpl_extra_col_master_innodb.result | 2 +-
.../suite/rpl/r/rpl_extra_col_master_myisam.result | 2 +-
.../suite/rpl/r/rpl_foreign_key_innodb.result | 3 +-
mysql-test/suite/rpl/r/rpl_grant.result | 8 +-
mysql-test/suite/rpl/r/rpl_gtid_mdev4484.result | 40 +-
mysql-test/suite/rpl/r/rpl_gtid_stop_start.result | 8 +-
mysql-test/suite/rpl/r/rpl_idempotency.result | 17 +
mysql-test/suite/rpl/r/rpl_ignore_revoke.result | 10 +-
mysql-test/suite/rpl/r/rpl_ignore_table.result | 9 +-
mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result | 48 +-
mysql-test/suite/rpl/r/rpl_insert_ignore.result | 8 -
.../rpl/r/rpl_lcase_tblnames_rewrite_db.result | 38 +
mysql-test/suite/rpl/r/rpl_loaddata.result | 4 -
mysql-test/suite/rpl/r/rpl_loadfile.result | 4 -
.../suite/rpl/r/rpl_lost_events_on_rotate.result | 4 -
.../rpl/r/rpl_mixed_binlog_max_cache_size.result | 28 -
.../rpl/r/rpl_mixed_implicit_commit_binlog.result | 5 +-
.../rpl/r/rpl_mysql57_stm_temporal_round.result | 22 +
.../rpl/r/rpl_mysql80_stm_temporal_round.result | 23 +
.../rpl/r/rpl_nondeterministic_functions.result | 4 -
mysql-test/suite/rpl/r/rpl_not_null_innodb.result | 16 -
mysql-test/suite/rpl/r/rpl_not_null_myisam.result | 16 -
mysql-test/suite/rpl/r/rpl_old_master.result | 3 +
mysql-test/suite/rpl/r/rpl_parallel.result | 1 +
.../suite/rpl/r/rpl_parallel_optimistic.result | 18 +
mysql-test/suite/rpl/r/rpl_reset_slave_fail.result | 4 -
mysql-test/suite/rpl/r/rpl_rewrt_db.result | 6 +-
mysql-test/suite/rpl/r/rpl_row_001.result | 42 +-
mysql-test/suite/rpl/r/rpl_row_annotate_do.result | 2 +-
.../suite/rpl/r/rpl_row_annotate_dont.result | 2 +-
.../suite/rpl/r/rpl_row_basic_2myisam.result | 32 -
.../suite/rpl/r/rpl_row_basic_3innodb.result | 32 -
.../suite/rpl/r/rpl_row_big_table_id,32bit.rdiff | 31 +
mysql-test/suite/rpl/r/rpl_row_big_table_id.result | 46 +
mysql-test/suite/rpl/r/rpl_row_delayed_ins.result | 2 +-
mysql-test/suite/rpl/r/rpl_row_find_row.result | 4 -
mysql-test/suite/rpl/r/rpl_row_img_blobs.result | 2016 --
mysql-test/suite/rpl/r/rpl_row_img_eng_min.result | 1152 -
.../suite/rpl/r/rpl_row_img_eng_noblob.result | 1152 -
.../rpl/r/rpl_row_implicit_commit_binlog.result | 5 +-
.../suite/rpl/r/rpl_row_lcase_tblnames.result | 60 +
.../suite/rpl/r/rpl_row_loaddata_concurrent.result | 4 -
mysql-test/suite/rpl/r/rpl_row_merge_engine.result | 16 -
.../suite/rpl/r/rpl_row_rec_comp_innodb.result | 12 -
.../suite/rpl/r/rpl_row_rec_comp_myisam.result | 16 -
mysql-test/suite/rpl/r/rpl_row_tbl_metadata.result | 44 -
mysql-test/suite/rpl/r/rpl_row_utf16.result | 4 -
mysql-test/suite/rpl/r/rpl_set_null_innodb.result | 16 -
mysql-test/suite/rpl/r/rpl_set_null_myisam.result | 16 -
mysql-test/suite/rpl/r/rpl_slave_load_in.result | 8 -
mysql-test/suite/rpl/r/rpl_special_charset.result | 4 -
mysql-test/suite/rpl/r/rpl_stm_000001.result | 33 +-
.../rpl/r/rpl_stm_binlog_max_cache_size.result | 28 -
.../rpl/r/rpl_stm_implicit_commit_binlog.result | 5 +-
.../suite/rpl/r/rpl_stm_lcase_tblnames.result | 57 +
.../suite/rpl/r/rpl_stm_loaddata_concurrent.result | 4 -
.../suite/rpl/r/rpl_stm_mixing_engines.result | 4 -
.../suite/rpl/r/rpl_stm_relay_ign_space.result | 4 -
.../suite/rpl/r/rpl_stm_user_variables.result | 4 -
mysql-test/suite/rpl/r/rpl_stop_slave.result | 8 -
.../suite/rpl/r/rpl_switch_stm_row_mixed.result | 2 +-
mysql-test/suite/rpl/r/rpl_sync.result | 8 -
.../suite/rpl/r/rpl_temp_table_mix_row.result | 4 -
mysql-test/suite/rpl/r/rpl_temporal_round.result | 50 +
mysql-test/suite/rpl/r/rpl_test_framework.result | 126 -
.../suite/rpl/r/rpl_tmp_table_and_DDL.result | 22 +-
mysql-test/suite/rpl/r/rpl_trigger.result | 8 -
mysql-test/suite/rpl/r/rpl_truncate_2myisam.result | 16 -
mysql-test/suite/rpl/r/rpl_truncate_3innodb.result | 16 -
mysql-test/suite/rpl/r/rpl_typeconv.result | 44 +
mysql-test/suite/rpl/r/rpl_typeconv_innodb.result | 4 -
.../suite/rpl/r/rpl_unsafe_statements.result | 24 -
mysql-test/suite/rpl/r/rpl_user.result | 11 +
mysql-test/suite/rpl/r/rpl_variables.result | 20 -
mysql-test/suite/rpl/r/rpl_variables_stm.result | 20 -
mysql-test/suite/rpl/t/rpl_15919-slave.opt | 1 +
mysql-test/suite/rpl/t/rpl_15919.test | 18 +
mysql-test/suite/rpl/t/rpl_create_drop_user.test | 18 +-
mysql-test/suite/rpl/t/rpl_do_grant.test | 29 +-
mysql-test/suite/rpl/t/rpl_drop_db.test | 8 +-
mysql-test/suite/rpl/t/rpl_foreign_key_innodb.test | 62 +-
mysql-test/suite/rpl/t/rpl_gtid_crash.test | 2 +
mysql-test/suite/rpl/t/rpl_gtid_mdev4484.test | 68 +-
mysql-test/suite/rpl/t/rpl_idempotency.test | 21 +
mysql-test/suite/rpl/t/rpl_ignore_table.test | 4 +-
.../rpl/t/rpl_lcase_tblnames_rewrite_db-slave.opt | 1 +
.../suite/rpl/t/rpl_lcase_tblnames_rewrite_db.test | 60 +
mysql-test/suite/rpl/t/rpl_mdev382.test | 1 +
.../rpl/t/rpl_mysql57_stm_temporal_round.test | 58 +
.../rpl/t/rpl_mysql80_stm_temporal_round.test | 62 +
mysql-test/suite/rpl/t/rpl_old_master.test | 8 +
.../suite/rpl/t/rpl_parallel_optimistic.test | 28 +-
.../rpl/t/rpl_parallel_optimistic_nobinlog.cnf | 1 +
mysql-test/suite/rpl/t/rpl_row_001.test | 48 +-
mysql-test/suite/rpl/t/rpl_row_big_table_id.test | 57 +
.../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_stm_000001.test | 21 +-
.../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_temporal_round.test | 35 +
mysql-test/suite/rpl/t/rpl_user.test | 11 +
mysql-test/suite/sql_sequence/create.result | 9 +
mysql-test/suite/sql_sequence/create.test | 11 +
mysql-test/suite/storage_engine/type_bool.result | 4 +-
.../sys_vars/r/delayed_insert_limit_func.result | 4 +-
.../r/innodb_ft_result_cache_limit_32.result | 7 +
.../r/innodb_ft_result_cache_limit_64.result | 5 +
.../innodb_ft_result_cache_limit_basic,32bit.rdiff | 13 +
.../r/innodb_ft_result_cache_limit_basic.result | 7 +-
.../suite/sys_vars/r/max_seeks_for_key_func.result | 1 +
.../sys_vars/r/myisam_stats_method_func.result | 6 +-
...ptimizer_use_condition_selectivity_basic.result | 20 +-
.../r/sql_low_priority_updates_func.result | 4 +-
mysql-test/suite/sys_vars/r/sql_mode_basic.result | 10 +-
.../suite/sys_vars/r/sysvars_innodb,32bit.rdiff | 118 +-
mysql-test/suite/sys_vars/r/sysvars_innodb.result | 30 +-
.../sys_vars/r/sysvars_server_embedded.result | 46 +-
.../sys_vars/r/sysvars_server_notembedded.result | 60 +-
mysql-test/suite/sys_vars/r/sysvars_wsrep.result | 58 +-
.../sys_vars/r/table_definition_cache_basic.result | 16 +-
.../suite/sys_vars/r/thread_pool_size_high.result | 1 +
.../suite/sys_vars/r/use_stat_tables_basic.result | 10 +-
.../r/wsrep_load_data_splitting_basic.result | 12 +
.../sys_vars/r/wsrep_provider_options_basic.result | 15 +-
.../suite/sys_vars/r/wsrep_sst_method_basic.result | 4 +
.../sys_vars/r/wsrep_start_position_basic.result | 10 +-
.../t/aria_used_for_temp_tables_basic.test | 1 +
.../sys_vars/t/delayed_insert_limit_func.test | 20 +-
.../t/innodb_ft_result_cache_limit_32.test | 9 +
.../t/innodb_ft_result_cache_limit_64.test | 9 +
.../t/innodb_ft_result_cache_limit_basic.test | 5 +-
.../sys_vars/t/sql_low_priority_updates_func.test | 4 +-
mysql-test/suite/sys_vars/t/sql_mode_basic.test | 8 +-
mysql-test/suite/sys_vars/t/sysvars_aria.test | 1 +
.../sys_vars/t/table_definition_cache_basic.test | 6 +-
.../suite/sys_vars/t/thread_pool_size_high.test | 1 +
.../suite/sys_vars/t/tmp_disk_table_size_func.test | 2 +
.../sys_vars/t/wsrep_provider_options_basic.test | 16 +-
.../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/r/races.result | 16 +
mysql-test/suite/vcol/r/update.result | 4 +-
mysql-test/suite/vcol/r/update_binlog.result | 8 +-
mysql-test/suite/vcol/r/upgrade.result | 16 +
mysql-test/suite/vcol/r/vcol_keys_myisam.result | 1 +
mysql-test/suite/vcol/r/vcol_misc.result | 28 +-
mysql-test/suite/vcol/r/wrong_arena.result | 28 +-
mysql-test/suite/vcol/t/races.test | 22 +
mysql-test/suite/vcol/t/update.test | 4 +-
mysql-test/suite/vcol/t/upgrade.test | 15 +
mysql-test/suite/vcol/t/vcol_misc.test | 27 +-
mysql-test/suite/versioning/innodb.combinations | 5 +
mysql-test/suite/versioning/innodb.inc | 1 +
mysql-test/suite/versioning/r/alter.result | 4 +-
mysql-test/suite/versioning/r/cte.result | 2 +-
mysql-test/suite/versioning/r/foreign.result | 9 +
mysql-test/suite/versioning/r/online.result | 162 +-
mysql-test/suite/versioning/r/partition.result | 8 +-
mysql-test/suite/versioning/r/sysvars.result | 15 +-
mysql-test/suite/versioning/r/trx_id.result | 3 +
.../trx_id_versioning_attribute_persistence.result | 86 -
mysql-test/suite/versioning/t/alter.test | 2 +-
mysql-test/suite/versioning/t/foreign.test | 14 +
mysql-test/suite/versioning/t/online.test | 192 +-
mysql-test/suite/versioning/t/sysvars.test | 10 +
mysql-test/suite/versioning/t/trx_id.test | 2 +
.../t/trx_id_versioning_attribute_persistence.test | 87 -
mysql-test/suite/wsrep/disabled.def | 3 +-
.../suite/wsrep/include/check_galera_version.inc | 20 +-
mysql-test/suite/wsrep/my.cnf | 4 +-
mysql-test/suite/wsrep/r/variables.result | 7 +-
.../suite/wsrep/r/wsrep-recover,binlogon.rdiff | 28 +
.../suite/wsrep/r/wsrep-recover-v25,binlogon.rdiff | 17 +
mysql-test/suite/wsrep/r/wsrep-recover-v25.result | 28 +
mysql-test/suite/wsrep/r/wsrep-recover.result | 66 +
mysql-test/suite/wsrep/suite.pm | 4 +-
mysql-test/suite/wsrep/t/binlog_format.cnf | 8 +
mysql-test/suite/wsrep/t/binlog_format.opt | 1 -
mysql-test/suite/wsrep/t/binlog_format.test | 1 +
mysql-test/suite/wsrep/t/mdev_10186.cnf | 6 +
mysql-test/suite/wsrep/t/mdev_10186.opt | 1 -
mysql-test/suite/wsrep/t/mdev_10186.test | 1 +
mysql-test/suite/wsrep/t/mdev_6832.cnf | 7 +
mysql-test/suite/wsrep/t/mdev_6832.opt | 1 -
mysql-test/suite/wsrep/t/mdev_6832.test | 1 +
mysql-test/suite/wsrep/t/mdev_7798.cnf | 7 +
mysql-test/suite/wsrep/t/mdev_7798.opt | 1 -
mysql-test/suite/wsrep/t/mdev_7798.test | 1 +
mysql-test/suite/wsrep/t/pool_of_threads.cnf | 8 +
mysql-test/suite/wsrep/t/pool_of_threads.opt | 1 -
mysql-test/suite/wsrep/t/variables.test | 8 +-
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 | 121 +
mysql-test/suite/wsrep/t/wsrep-recover.cnf | 9 +
.../suite/wsrep/t/wsrep-recover.combinations | 4 +
mysql-test/suite/wsrep/t/wsrep-recover.test | 204 +
mysql-test/unstable-tests | 394 +-
mysys/CMakeLists.txt | 1 +
mysys/mf_iocache.c | 24 +-
mysys/mf_iocache2.c | 4 +-
mysys/my_alloc.c | 14 +-
mysys/my_pread.c | 26 +-
mysys/ptr_cmp.c | 7 +
mysys/safemalloc.c | 4 +-
mysys/thr_alarm.c | 6 +-
plugin/auth_ed25519/CMakeLists.txt | 4 +-
plugin/auth_ed25519/ed25519-t.c | 2 +-
plugin/auth_ed25519/server_ed25519.c | 54 +-
plugin/auth_examples/dialog_examples.c | 6 +-
plugin/auth_examples/qa_auth_interface.c | 3 +-
plugin/auth_examples/qa_auth_server.c | 3 +-
plugin/auth_examples/test_plugin.c | 6 +-
plugin/auth_gssapi/gssapi_server.cc | 20 +-
.../auth_gssapi/mysql-test/auth_gssapi/basic.test | 1 +
.../mysql-test/auth_gssapi/multiauth.result | 34 +
.../mysql-test/auth_gssapi/multiauth.test | 36 +
plugin/auth_gssapi/server_plugin.cc | 34 +-
plugin/auth_gssapi/server_plugin.h | 2 +-
plugin/auth_gssapi/sspi_server.cc | 26 +-
plugin/auth_pam/auth_pam.c | 32 +-
plugin/auth_pam/auth_pam_base.c | 9 +-
plugin/auth_pam/auth_pam_common.c | 3 +-
plugin/auth_pam/auth_pam_tool.c | 14 +-
plugin/auth_pam/auth_pam_v1.c | 31 +-
plugin/auth_socket/auth_socket.c | 3 +-
plugin/aws_key_management/CMakeLists.txt | 8 +-
.../aws_key_management_plugin.cc | 29 +-
.../cracklib_password_check.c | 3 +-
plugin/feedback/sender_thread.cc | 11 +-
plugin/handler_socket/handlersocket/database.cpp | 6 +-
plugin/metadata_lock_info/metadata_lock_info.cc | 29 +-
.../metadata_lock_info/r/global_read_lock.result | 3 +-
plugin/query_response_time/query_response_time.cc | 39 +-
.../simple_password_check/simple_password_check.c | 4 +-
plugin/user_variables/user_variables.cc | 2 +-
plugin/wsrep_info/mysql-test/wsrep_info/my.cnf | 7 +-
.../mysql-test/wsrep_info/r/plugin.result | 10 +-
plugin/wsrep_info/mysql-test/wsrep_info/suite.pm | 4 +-
plugin/wsrep_info/plugin.cc | 87 +-
scripts/CMakeLists.txt | 6 +-
scripts/galera_new_cluster.sh | 5 +-
scripts/mysql_install_db.sh | 7 +
scripts/mysql_secure_installation.sh | 6 +-
scripts/mysql_system_tables.sql | 63 +-
scripts/mysql_system_tables_data.sql | 26 +-
scripts/mysql_system_tables_fix.sql | 87 +-
scripts/mysql_test_db.sql | 4 +-
scripts/mysqld_safe.sh | 11 +-
scripts/mytop.sh | 19 +-
scripts/wsrep_sst_common.sh | 32 +-
scripts/wsrep_sst_mariabackup.sh | 155 +-
scripts/wsrep_sst_mysqldump.sh | 5 +-
scripts/wsrep_sst_rsync.sh | 61 +-
scripts/wsrep_sst_xtrabackup-v2.sh | 1236 -
scripts/wsrep_sst_xtrabackup.sh | 692 -
sql-common/my_time.c | 771 +-
sql/CMakeLists.txt | 34 +-
sql/backup.cc | 385 +
sql/backup.h | 34 +
sql/compat56.cc | 24 +-
sql/compat56.h | 9 +
sql/contributors.h | 4 +-
sql/event_data_objects.cc | 36 +-
sql/event_parse_data.cc | 16 +-
sql/event_scheduler.cc | 24 +-
sql/events.cc | 22 +-
sql/field.cc | 636 +-
sql/field.h | 178 +-
sql/field_conv.cc | 35 +-
sql/filesort.cc | 115 +-
sql/filesort.h | 3 +
sql/gcalc_slicescan.cc | 11 +
sql/gcalc_slicescan.h | 7 +
sql/gcalc_tools.cc | 11 +
sql/gcalc_tools.h | 1 +
sql/gen_lex_token.cc | 8 +-
sql/ha_partition.cc | 147 +-
sql/ha_partition.h | 7 +-
sql/ha_sequence.cc | 2 +-
sql/handle_connections_win.cc | 555 +
sql/handle_connections_win.h | 20 +
sql/handler.cc | 395 +-
sql/handler.h | 105 +-
sql/init.h | 1 -
sql/innodb_priv.h | 4 +-
sql/item.cc | 604 +-
sql/item.h | 546 +-
sql/item_cmpfunc.cc | 320 +-
sql/item_cmpfunc.h | 80 +-
sql/item_create.cc | 101 +
sql/item_func.cc | 143 +-
sql/item_func.h | 144 +-
sql/item_inetfunc.cc | 544 +-
sql/item_inetfunc.h | 60 +-
sql/item_jsonfunc.cc | 48 +-
sql/item_jsonfunc.h | 2 +-
sql/item_row.h | 2 +-
sql/item_strfunc.cc | 127 +-
sql/item_strfunc.h | 63 +-
sql/item_subselect.cc | 35 +-
sql/item_subselect.h | 7 +-
sql/item_sum.cc | 56 +-
sql/item_sum.h | 35 +-
sql/item_timefunc.cc | 501 +-
sql/item_timefunc.h | 319 +-
sql/item_vers.cc | 9 +-
sql/item_vers.h | 2 +-
sql/item_windowfunc.cc | 21 +-
sql/item_windowfunc.h | 7 +-
sql/lex.h | 41 +-
sql/lock.cc | 199 +-
sql/lock.h | 1 -
sql/log.cc | 138 +-
sql/log.h | 17 +-
sql/log_event.cc | 200 +-
sql/log_event.h | 53 +-
sql/mdl.cc | 626 +-
sql/mdl.h | 123 +-
sql/my_decimal.cc | 4 +-
sql/my_decimal.h | 7 +-
sql/mysql_install_db.cc | 102 +-
sql/mysql_upgrade_service.cc | 189 +-
sql/mysqld.cc | 1807 +-
sql/mysqld.h | 33 +-
sql/opt_range.cc | 37 +-
sql/opt_split.cc | 9 +
sql/opt_subselect.cc | 50 +-
sql/partition_info.cc | 21 +-
sql/partition_info.h | 6 +-
sql/procedure.h | 4 +-
sql/protocol.cc | 22 +-
sql/rpl_gtid.cc | 389 +-
sql/rpl_gtid.h | 10 +-
sql/rpl_mi.cc | 4 +-
sql/rpl_mi.h | 6 +-
sql/rpl_parallel.cc | 36 +-
sql/rpl_record.cc | 3 +-
sql/rpl_rli.cc | 8 +
sql/rpl_utility.cc | 34 +-
sql/semisync_master_ack_receiver.cc | 61 +-
sql/semisync_master_ack_receiver.h | 147 +-
sql/service_wsrep.cc | 255 +
sql/share/errmsg-utf8.txt | 20 +-
sql/slave.cc | 210 +-
sql/slave.h | 1 +
sql/sp.cc | 7 +-
sql/sp.h | 3 +-
sql/sp_head.cc | 58 +-
sql/sp_pcontext.cc | 13 +
sql/sp_pcontext.h | 8 +-
sql/sp_rcontext.cc | 27 -
sql/sql_acl.cc | 3827 ++-
sql/sql_admin.cc | 11 +-
sql/sql_alter.cc | 19 +-
sql/sql_alter.h | 2 +-
sql/sql_array.h | 10 +-
sql/sql_base.cc | 839 +-
sql/sql_base.h | 29 +-
sql/sql_basic_types.h | 310 +
sql/sql_cache.cc | 4 +-
sql/sql_class.cc | 275 +-
sql/sql_class.h | 440 +-
sql/sql_cmd.h | 1 +
sql/sql_connect.cc | 33 +-
sql/sql_const.h | 14 +-
sql/sql_cte.cc | 36 +-
sql/sql_cte.h | 19 +-
sql/sql_cursor.cc | 5 +
sql/sql_db.cc | 19 +-
sql/sql_db.h | 3 +-
sql/sql_delete.cc | 7 +-
sql/sql_derived.cc | 5 +-
sql/sql_error.h | 73 +-
sql/sql_get_diagnostics.cc | 2 +-
sql/sql_get_diagnostics.h | 2 +-
sql/sql_handler.cc | 14 +-
sql/sql_handler.h | 1 +
sql/sql_insert.cc | 182 +-
sql/sql_lex.cc | 188 +-
sql/sql_lex.h | 42 +-
sql/sql_load.cc | 11 +-
sql/sql_parse.cc | 953 +-
sql/sql_parse.h | 3 +-
sql/sql_partition.cc | 22 +-
sql/sql_partition.h | 4 +
sql/sql_partition_admin.cc | 4 +-
sql/sql_plist.h | 7 +-
sql/sql_plugin.cc | 104 +-
sql/sql_plugin_services.ic | 58 +-
sql/sql_prepare.cc | 76 +-
sql/sql_reload.cc | 73 +-
sql/sql_repl.cc | 123 +-
sql/sql_select.cc | 360 +-
sql/sql_select.h | 8 +-
sql/sql_show.cc | 535 +-
sql/sql_signal.cc | 10 +-
sql/sql_sort.h | 1 -
sql/sql_statistics.cc | 101 +-
sql/sql_statistics.h | 57 +-
sql/sql_string.cc | 195 +-
sql/sql_string.h | 1035 +-
sql/sql_table.cc | 314 +-
sql/sql_time.cc | 217 +-
sql/sql_time.h | 57 +-
sql/sql_trigger.cc | 29 +-
sql/sql_trigger.h | 3 +
sql/sql_truncate.cc | 6 +-
sql/sql_tvc.cc | 19 +-
sql/sql_type.cc | 1338 +-
sql/sql_type.h | 1937 +-
sql/sql_type_int.h | 126 +
sql/sql_udf.cc | 3 +
sql/sql_udf.h | 15 +
sql/sql_union.cc | 41 +-
sql/sql_update.cc | 6 +-
sql/sql_view.cc | 12 +-
sql/sql_window.cc | 36 +-
sql/sql_window.h | 6 +-
sql/sql_yacc.yy | 874 +-
sql/sql_yacc_ora.yy | 823 +-
sql/structs.h | 65 +-
sql/sys_vars.cc | 136 +-
sql/sys_vars.ic | 9 +-
sql/table.cc | 67 +-
sql/table.h | 86 +-
sql/table_cache.cc | 51 +-
sql/table_cache.h | 2 +-
sql/temporary_tables.cc | 80 +-
sql/threadpool_common.cc | 2 +-
sql/threadpool_generic.cc | 52 +-
sql/threadpool_win.cc | 31 +-
sql/transaction.cc | 56 +-
sql/udf_example.c | 139 +
sql/udf_example.def | 7 +
sql/unireg.h | 2 +-
sql/upgrade_conf_file.cc | 177 +
sql/vers_string.h | 6 +
sql/vers_utils.h | 39 -
sql/wsrep_applier.cc | 321 +-
sql/wsrep_applier.h | 67 +-
sql/wsrep_binlog.cc | 341 +-
sql/wsrep_binlog.h | 35 +-
sql/wsrep_check_opts.cc | 4 +-
sql/wsrep_client_service.cc | 307 +
sql/wsrep_client_service.h | 63 +
sql/wsrep_client_state.h | 47 +
sql/wsrep_condition_variable.h | 54 +
sql/wsrep_dummy.cc | 109 +-
sql/wsrep_high_priority_service.cc | 649 +
sql/wsrep_high_priority_service.h | 118 +
sql/wsrep_hton.cc | 653 -
sql/wsrep_mutex.h | 50 +
sql/wsrep_mysqld.cc | 2836 +-
sql/wsrep_mysqld.h | 397 +-
sql/wsrep_notify.cc | 77 +-
sql/wsrep_plugin.cc | 53 +
sql/wsrep_priv.h | 24 +-
sql/wsrep_schema.cc | 1360 +
sql/wsrep_schema.h | 161 +
sql/wsrep_server_service.cc | 318 +
sql/wsrep_server_service.h | 81 +
sql/wsrep_server_state.cc | 82 +
sql/wsrep_server_state.h | 66 +
sql/wsrep_sst.cc | 654 +-
sql/wsrep_sst.h | 34 +-
sql/wsrep_storage_service.cc | 238 +
sql/wsrep_storage_service.h | 48 +
sql/wsrep_thd.cc | 787 +-
sql/wsrep_thd.h | 216 +-
sql/wsrep_trans_observer.h | 423 +
sql/wsrep_types.h | 29 +
sql/wsrep_utils.cc | 104 +-
sql/wsrep_utils.h | 79 +-
sql/wsrep_var.cc | 325 +-
sql/wsrep_var.h | 11 +-
sql/wsrep_xid.cc | 118 +-
sql/wsrep_xid.h | 14 +-
storage/archive/azio.c | 5 +-
storage/archive/ha_archive.cc | 14 +
storage/archive/ha_archive.h | 3 +-
storage/blackhole/ha_blackhole.h | 2 +-
storage/connect/CMakeLists.txt | 10 +-
storage/connect/connect.cc | 2 +-
storage/connect/filamdbf.cpp | 4 +-
storage/connect/global.h | 10 +-
storage/connect/ha_connect.cc | 108 +-
storage/connect/ha_connect.h | 6 +-
storage/connect/inihandl.cpp | 2 +-
storage/connect/javaconn.cpp | 25 +-
storage/connect/jdbconn.cpp | 4 -
storage/connect/jsonudf.cpp | 12 +-
storage/connect/mysql-test/connect/disabled.def | 23 +-
storage/connect/mysql-test/connect/r/dir.result | 2 +-
storage/connect/mysql-test/connect/r/jdbc.result | 12 +
.../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/odbc_postgresql.result | 18 +-
storage/connect/mysql-test/connect/r/xml2.result | 33 +-
.../connect/mysql-test/connect/t/json_java_2.test | 2 +
.../connect/mysql-test/connect/t/json_java_3.test | 2 +
.../connect/mysql-test/connect/t/mongo_java_2.test | 2 +
.../connect/mysql-test/connect/t/mongo_java_3.test | 2 +
storage/connect/mysql-test/connect/t/xml2.test | 36 +-
storage/connect/odbconn.cpp | 10 +-
storage/connect/plugutil.cpp | 28 +-
storage/connect/reldef.cpp | 11 +-
storage/connect/tabext.cpp | 6 +
storage/connect/tabfmt.h | 2 +-
storage/connect/tabjdbc.cpp | 9 +-
storage/connect/tabjson.cpp | 10 +-
storage/connect/tabjson.h | 6 +-
storage/connect/tabmysql.cpp | 11 +-
storage/connect/tabodbc.cpp | 330 +-
storage/connect/tabxml.cpp | 13 +-
storage/connect/tabxml.h | 5 +-
storage/connect/user_connect.cc | 4 +-
storage/csv/ha_tina.cc | 28 +-
storage/csv/ha_tina.h | 2 +-
storage/federated/ha_federated.h | 1 +
storage/federatedx/TODO | 30 -
storage/federatedx/ha_federatedx.h | 2 +-
storage/heap/ha_heap.h | 2 +-
storage/heap/hp_create.c | 22 +-
storage/innobase/CMakeLists.txt | 6 +-
storage/innobase/btr/btr0btr.cc | 345 +-
storage/innobase/btr/btr0bulk.cc | 9 +-
storage/innobase/btr/btr0cur.cc | 638 +-
storage/innobase/btr/btr0defragment.cc | 25 +-
storage/innobase/btr/btr0pcur.cc | 43 +-
storage/innobase/btr/btr0scrub.cc | 8 +-
storage/innobase/btr/btr0sea.cc | 18 +-
storage/innobase/buf/buf0buf.cc | 536 +-
storage/innobase/buf/buf0checksum.cc | 55 +-
storage/innobase/buf/buf0dblwr.cc | 44 +-
storage/innobase/buf/buf0dump.cc | 6 +-
storage/innobase/buf/buf0flu.cc | 167 +-
storage/innobase/buf/buf0lru.cc | 6 +-
storage/innobase/buf/buf0rea.cc | 12 +-
storage/innobase/data/data0data.cc | 73 +-
storage/innobase/data/data0type.cc | 2 -
storage/innobase/dict/dict0boot.cc | 44 +-
storage/innobase/dict/dict0crea.cc | 176 +-
storage/innobase/dict/dict0defrag_bg.cc | 5 +-
storage/innobase/dict/dict0dict.cc | 267 +-
storage/innobase/dict/dict0load.cc | 5 +-
storage/innobase/dict/dict0mem.cc | 391 +-
storage/innobase/dict/dict0stats.cc | 10 +-
storage/innobase/dict/dict0stats_bg.cc | 1 -
storage/innobase/fil/fil0crypt.cc | 185 +-
storage/innobase/fil/fil0fil.cc | 554 +-
storage/innobase/fil/fil0pagecompress.cc | 9 +-
storage/innobase/fsp/fsp0file.cc | 5 -
storage/innobase/fsp/fsp0fsp.cc | 37 +-
storage/innobase/fsp/fsp0space.cc | 16 +-
storage/innobase/fsp/fsp0sysspace.cc | 20 +-
storage/innobase/fts/fts0ast.cc | 2 -
storage/innobase/fts/fts0fts.cc | 109 +-
storage/innobase/fts/fts0opt.cc | 2 -
storage/innobase/fts/fts0que.cc | 5 +-
storage/innobase/gis/gis0rtree.cc | 14 +-
storage/innobase/gis/gis0sea.cc | 20 +-
storage/innobase/ha/ha0ha.cc | 20 +-
storage/innobase/ha/ha0storage.cc | 1 -
storage/innobase/handler/ha_innodb.cc | 1163 +-
storage/innobase/handler/ha_innodb.h | 63 +-
storage/innobase/handler/handler0alter.cc | 2784 +-
storage/innobase/handler/i_s.cc | 5 +-
storage/innobase/ibuf/ibuf0ibuf.cc | 79 +-
storage/innobase/include/btr0btr.h | 44 +-
storage/innobase/include/btr0btr.ic | 4 +-
storage/innobase/include/btr0bulk.h | 7 +-
storage/innobase/include/btr0cur.h | 5 +-
storage/innobase/include/btr0defragment.h | 6 +-
storage/innobase/include/btr0pcur.h | 5 -
storage/innobase/include/btr0scrub.h | 6 -
storage/innobase/include/btr0sea.h | 7 +-
storage/innobase/include/btr0types.h | 5 +-
storage/innobase/include/buf0buddy.h | 6 -
storage/innobase/include/buf0buddy.ic | 10 -
storage/innobase/include/buf0buf.h | 208 +-
storage/innobase/include/buf0buf.ic | 89 +-
storage/innobase/include/buf0checksum.h | 19 +-
storage/innobase/include/buf0dblwr.h | 1 -
storage/innobase/include/buf0flu.h | 13 -
storage/innobase/include/buf0flu.ic | 79 +-
storage/innobase/include/buf0lru.h | 1 -
storage/innobase/include/buf0rea.h | 10 +-
storage/innobase/include/data0data.h | 34 +-
storage/innobase/include/data0type.h | 44 +
storage/innobase/include/dict0boot.h | 17 +-
storage/innobase/include/dict0crea.h | 11 -
storage/innobase/include/dict0defrag_bg.h | 5 +-
storage/innobase/include/dict0dict.h | 206 +-
storage/innobase/include/dict0dict.ic | 157 +-
storage/innobase/include/dict0load.h | 2 -
storage/innobase/include/dict0mem.h | 435 +-
storage/innobase/include/dict0priv.h | 14 -
storage/innobase/include/dict0priv.ic | 35 -
storage/innobase/include/dict0stats.h | 2 -
storage/innobase/include/dict0stats.ic | 1 -
storage/innobase/include/dict0stats_bg.h | 2 -
storage/innobase/include/dyn0buf.h | 3 +-
storage/innobase/include/eval0eval.h | 1 -
storage/innobase/include/eval0proc.h | 1 -
storage/innobase/include/fil0crypt.h | 13 +-
storage/innobase/include/fil0fil.h | 192 +-
storage/innobase/include/fsp0file.h | 24 +-
storage/innobase/include/fsp0fsp.h | 52 +-
storage/innobase/include/fsp0fsp.ic | 2 +-
storage/innobase/include/fsp0space.h | 2 -
storage/innobase/include/fsp0sysspace.h | 1 -
storage/innobase/include/fsp0types.h | 6 +-
storage/innobase/include/fts0ast.h | 1 -
storage/innobase/include/fts0fts.h | 20 +-
storage/innobase/include/fts0plugin.h | 2 +-
storage/innobase/include/fts0priv.h | 1 -
storage/innobase/include/fts0types.h | 5 +-
storage/innobase/include/fts0types.ic | 29 +-
storage/innobase/include/fut0fut.h | 3 -
storage/innobase/include/fut0lst.h | 11 +-
storage/innobase/include/fut0lst.ic | 2 +-
storage/innobase/include/gis0rtree.h | 18 -
storage/innobase/include/gis0type.h | 11 +-
storage/innobase/include/ha0ha.h | 2 -
storage/innobase/include/ha0storage.ic | 2 -
storage/innobase/include/ha_prototypes.h | 3 +
storage/innobase/include/hash0hash.h | 1 -
storage/innobase/include/ib0mutex.h | 127 +-
storage/innobase/include/ibuf0ibuf.h | 14 +-
storage/innobase/include/ibuf0ibuf.ic | 9 +-
storage/innobase/include/lock0iter.h | 1 -
storage/innobase/include/lock0lock.h | 2 -
storage/innobase/include/lock0prdt.h | 1 -
storage/innobase/include/lock0priv.h | 1 -
storage/innobase/include/lock0types.h | 1 +
storage/innobase/include/log0log.h | 9 -
storage/innobase/include/log0recv.h | 2 -
storage/innobase/include/mach0data.h | 4 +-
storage/innobase/include/mem0mem.h | 102 -
storage/innobase/include/mem0mem.ic | 2 -
storage/innobase/include/mtr0log.h | 1 -
storage/innobase/include/mtr0mtr.h | 29 +-
storage/innobase/include/mtr0mtr.ic | 2 +-
storage/innobase/include/os0file.ic | 2 -
storage/innobase/include/os0proc.h | 2 +-
storage/innobase/include/os0thread.h | 2 +-
storage/innobase/include/page0cur.h | 3 -
storage/innobase/include/page0cur.ic | 6 +-
storage/innobase/include/page0page.h | 54 +-
storage/innobase/include/page0page.ic | 31 -
storage/innobase/include/page0size.h | 3 +-
storage/innobase/include/page0types.h | 2 -
storage/innobase/include/page0zip.h | 30 +-
storage/innobase/include/page0zip.ic | 10 -
storage/innobase/include/pars0opt.h | 2 -
storage/innobase/include/pars0pars.h | 1 -
storage/innobase/include/pars0sym.h | 2 -
storage/innobase/include/que0que.h | 2 -
storage/innobase/include/que0types.h | 1 -
storage/innobase/include/read0types.h | 37 +-
storage/innobase/include/rem0cmp.h | 6 +-
storage/innobase/include/rem0cmp.ic | 1 +
storage/innobase/include/rem0rec.h | 171 +-
storage/innobase/include/rem0rec.ic | 55 +-
storage/innobase/include/row0ext.h | 3 +-
storage/innobase/include/row0ftsort.h | 5 -
storage/innobase/include/row0import.h | 1 -
storage/innobase/include/row0ins.h | 12 -
storage/innobase/include/row0log.h | 6 +-
storage/innobase/include/row0merge.h | 5 +-
storage/innobase/include/row0mysql.h | 63 +-
storage/innobase/include/row0purge.h | 5 +-
storage/innobase/include/row0quiesce.h | 1 -
storage/innobase/include/row0row.h | 36 +-
storage/innobase/include/row0row.ic | 12 +-
storage/innobase/include/row0sel.h | 2 -
storage/innobase/include/row0uins.h | 2 -
storage/innobase/include/row0umod.h | 2 -
storage/innobase/include/row0undo.h | 19 +-
storage/innobase/include/row0upd.h | 43 +-
storage/innobase/include/row0upd.ic | 8 +-
storage/innobase/include/row0vers.h | 2 -
storage/innobase/include/srv0mon.h | 1 -
storage/innobase/include/srv0srv.h | 20 +-
storage/innobase/include/srv0start.h | 1 -
storage/innobase/include/sync0arr.h | 1 -
storage/innobase/include/sync0arr.ic | 3 +-
storage/innobase/include/sync0debug.h | 1 -
storage/innobase/include/sync0policy.h | 524 +-
storage/innobase/include/sync0policy.ic | 101 -
storage/innobase/include/sync0rw.h | 7 +-
storage/innobase/include/sync0rw.ic | 87 +-
storage/innobase/include/sync0sync.h | 1 -
storage/innobase/include/sync0types.h | 74 -
storage/innobase/include/trx0i_s.h | 1 -
storage/innobase/include/trx0purge.h | 42 +-
storage/innobase/include/trx0rec.h | 12 +-
storage/innobase/include/trx0roll.h | 12 -
storage/innobase/include/trx0sys.h | 67 +-
storage/innobase/include/trx0trx.h | 35 +-
storage/innobase/include/trx0types.h | 2 -
storage/innobase/include/trx0undo.h | 43 +-
storage/innobase/include/trx0undo.ic | 35 +-
storage/innobase/include/univ.i | 17 +-
storage/innobase/include/ut0counter.h | 123 +-
storage/innobase/include/ut0crc32.h | 6 +-
storage/innobase/include/ut0dbg.h | 2 -
storage/innobase/include/ut0mem.h | 1 -
storage/innobase/include/ut0mutex.h | 6 -
storage/innobase/include/ut0new.h | 4 +-
storage/innobase/include/ut0rbt.h | 1 -
storage/innobase/include/ut0rnd.h | 5 +-
storage/innobase/include/ut0sort.h | 2 -
storage/innobase/include/ut0stage.h | 2 -
storage/innobase/include/ut0ut.h | 13 +-
storage/innobase/include/ut0vec.h | 1 -
storage/innobase/include/ut0vec.ic | 2 -
storage/innobase/innodb.cmake | 2 +
storage/innobase/lock/lock0iter.cc | 1 -
storage/innobase/lock/lock0lock.cc | 225 +-
storage/innobase/lock/lock0prdt.cc | 9 -
storage/innobase/lock/lock0wait.cc | 6 +-
storage/innobase/log/log0log.cc | 18 +-
storage/innobase/log/log0recv.cc | 72 +-
storage/innobase/mem/mem0mem.cc | 2 -
storage/innobase/mtr/mtr0mtr.cc | 33 +-
storage/innobase/os/os0event.cc | 23 +-
storage/innobase/os/os0file.cc | 36 +-
storage/innobase/os/os0proc.cc | 31 +-
storage/innobase/os/os0thread.cc | 17 +-
storage/innobase/page/page0cur.cc | 20 +-
storage/innobase/page/page0page.cc | 46 +-
storage/innobase/page/page0zip.cc | 246 +-
storage/innobase/pars/pars0opt.cc | 1 -
storage/innobase/pars/pars0pars.cc | 3 -
storage/innobase/que/que0que.cc | 8 +-
storage/innobase/read/read0read.cc | 10 +-
storage/innobase/rem/rem0cmp.cc | 33 +-
storage/innobase/rem/rem0rec.cc | 531 +-
storage/innobase/row/row0ftsort.cc | 42 +-
storage/innobase/row/row0import.cc | 88 +-
storage/innobase/row/row0ins.cc | 219 +-
storage/innobase/row/row0log.cc | 71 +-
storage/innobase/row/row0merge.cc | 110 +-
storage/innobase/row/row0mysql.cc | 376 +-
storage/innobase/row/row0purge.cc | 64 +-
storage/innobase/row/row0quiesce.cc | 18 +-
storage/innobase/row/row0row.cc | 644 +-
storage/innobase/row/row0sel.cc | 127 +-
storage/innobase/row/row0uins.cc | 240 +-
storage/innobase/row/row0umod.cc | 174 +-
storage/innobase/row/row0undo.cc | 197 +-
storage/innobase/row/row0upd.cc | 217 +-
storage/innobase/row/row0vers.cc | 2 -
storage/innobase/srv/srv0conc.cc | 38 +-
storage/innobase/srv/srv0mon.cc | 9 +-
storage/innobase/srv/srv0srv.cc | 79 +-
storage/innobase/srv/srv0start.cc | 268 +-
storage/innobase/sync/sync0arr.cc | 40 +-
storage/innobase/sync/sync0debug.cc | 3 -
storage/innobase/sync/sync0rw.cc | 97 +-
storage/innobase/sync/sync0sync.cc | 1 -
storage/innobase/trx/trx0i_s.cc | 14 +-
storage/innobase/trx/trx0purge.cc | 44 +-
storage/innobase/trx/trx0rec.cc | 286 +-
storage/innobase/trx/trx0roll.cc | 190 +-
storage/innobase/trx/trx0rseg.cc | 74 +-
storage/innobase/trx/trx0sys.cc | 9 +-
storage/innobase/trx/trx0trx.cc | 77 +-
storage/innobase/trx/trx0undo.cc | 56 +-
storage/innobase/ut/ut0crc32.cc | 81 +-
storage/innobase/ut/ut0dbg.cc | 5 +-
storage/innobase/ut/ut0new.cc | 2 -
storage/innobase/ut/ut0rbt.cc | 3 -
storage/maria/CMakeLists.txt | 7 +-
storage/maria/ha_maria.cc | 29 +-
storage/maria/ma_backup.c | 281 +
storage/maria/ma_blockrec.c | 18 +-
storage/maria/ma_check.c | 11 +-
storage/maria/ma_control_file.c | 120 +
storage/maria/ma_control_file.h | 1 +
storage/maria/ma_extra.c | 5 +
storage/maria/ma_ft_boolean_search.c | 2 +-
storage/maria/ma_init.c | 2 +
storage/maria/ma_key_recover.c | 2 -
storage/maria/ma_locking.c | 6 +-
storage/maria/ma_loghandler.c | 26 +-
storage/maria/ma_loghandler.h | 3 +
storage/maria/ma_norec.c | 4 +-
storage/maria/ma_pagecrc.c | 10 +-
storage/maria/ma_recovery.c | 8 +-
storage/maria/ma_write.c | 15 +-
storage/maria/maria_def.h | 4 +
storage/maria/maria_read_log.c | 24 +-
storage/maria/test_ma_backup.c | 449 +
storage/maria/unittest/ma_test_recovery.pl | 23 +-
storage/mroonga/CMakeLists.txt | 2 +-
storage/mroonga/ha_mroonga.cpp | 40 +-
storage/mroonga/ha_mroonga.hpp | 6 +-
storage/mroonga/lib/mrn_condition_converter.cpp | 11 +-
.../mroonga/lib/mrn_multiple_column_key_codec.cpp | 4 +-
storage/mroonga/mrn_table.hpp | 3 +
...etime_64bit_strict_sql_mode_out_of_range.result | 2 +-
storage/mroonga/vendor/groonga/lib/expr.c | 2 +-
storage/myisam/TODO | 7 -
storage/myisam/mi_check.c | 4 +
storage/myisam/mi_extra.c | 5 +
storage/myisam/mi_locking.c | 6 +-
storage/myisam/myisamdef.h | 1 +
.../mysql-test/storage_engine/disabled.def | 1 +
storage/perfschema/unittest/pfs-t.cc | 5 +-
storage/perfschema/unittest/pfs_server_stubs.cc | 2 -
storage/rocksdb/CMakeLists.txt | 4 +-
storage/rocksdb/event_listener.cc | 2 +-
storage/rocksdb/event_listener.h | 2 +-
storage/rocksdb/ha_rocksdb.cc | 21 +-
storage/rocksdb/ha_rocksdb.h | 2 +-
storage/rocksdb/ha_rocksdb_proto.h | 4 +-
storage/rocksdb/logger.h | 2 +-
storage/rocksdb/myrocks_hotbackup | 686 -
storage/rocksdb/myrocks_hotbackup.py | 685 +
.../mysql-test/rocksdb/r/2pc_group_commit.result | 30 +-
.../mysql-test/rocksdb/r/add_index_inplace.result | 12 +
.../mysql-test/rocksdb/r/analyze_table.result | 6 +
.../rocksdb/mysql-test/rocksdb/r/bulk_load.result | 3 +
.../mysql-test/rocksdb/r/bulk_load_errors.result | 2 +-
.../mysql-test/rocksdb/r/bulk_load_rev_cf.result | 3 +
.../rocksdb/r/bulk_load_rev_cf_and_data.result | 3 +
.../mysql-test/rocksdb/r/bulk_load_rev_data.result | 3 +
.../mysql-test/rocksdb/r/bulk_load_unsorted.result | 3 +
.../rocksdb/r/bulk_load_unsorted_rev.result | 3 +
.../mysql-test/rocksdb/r/cardinality.result | 1 +
.../mysql-test/rocksdb/r/col_opt_not_null.result | 4 +-
.../mysql-test/rocksdb/r/col_opt_null.result | 4 +-
.../mysql-test/rocksdb/r/drop_index_inplace.result | 2 +
.../rocksdb/r/index_merge_rocksdb.result | 1 +
.../rocksdb/mysql-test/rocksdb/r/issue255.result | 14 +-
storage/rocksdb/mysql-test/rocksdb/r/misc.result | 4 +-
.../rocksdb/mysql-test/rocksdb/r/partition.result | 1 +
.../mysql-test/rocksdb/r/records_in_range.result | 2 +-
.../rocksdb/mysql-test/rocksdb/r/rocksdb.result | 14 +-
.../rocksdb/r/rocksdb_cf_per_partition.result | 2 +
.../mysql-test/rocksdb/r/rocksdb_range2.result | 20 +-
.../rocksdb/mysql-test/rocksdb/r/statistics.result | 3 +
.../rocksdb/mysql-test/rocksdb/r/type_bool.result | 4 +-
.../mysql-test/rocksdb/r/type_decimal.result | 2 +
.../mysql-test/rocksdb/r/type_varchar.result | 5 +
storage/rocksdb/mysql-test/rocksdb/r/xa.result | 32 +
.../mysql-test/rocksdb/t/2pc_group_commit.test | 24 +-
.../t/allow_to_start_after_corruption-master.opt | 1 +
storage/rocksdb/mysql-test/rocksdb/t/disabled.def | 2 +
storage/rocksdb/mysql-test/rocksdb/t/issue255.test | 16 +-
.../mysql-test/rocksdb/t/rocksdb_range2.test | 12 +
storage/rocksdb/mysql-test/rocksdb/t/xa-master.opt | 1 +
storage/rocksdb/mysql-test/rocksdb/t/xa.test | 38 +
.../mysql-test/rocksdb_rpl/r/mdev12179.result | 18 +
.../mysql-test/rocksdb_rpl/r/rpl_blob_key.result | 9 -
.../mysql-test/rocksdb_rpl/t/mdev12179.test | 85 +
.../mysql-test/rocksdb_rpl/t/rpl_blob_key.test | 15 -
.../rocksdb/mysql-test/storage_engine/disabled.def | 1 +
storage/rocksdb/properties_collector.cc | 2 +-
storage/rocksdb/properties_collector.h | 2 +-
storage/rocksdb/rdb_buff.h | 2 +-
storage/rocksdb/rdb_cf_manager.cc | 2 +-
storage/rocksdb/rdb_cf_manager.h | 2 +-
storage/rocksdb/rdb_cf_options.cc | 2 +-
storage/rocksdb/rdb_cf_options.h | 2 +-
storage/rocksdb/rdb_compact_filter.h | 2 +-
storage/rocksdb/rdb_comparator.h | 2 +-
storage/rocksdb/rdb_datadic.cc | 2 +-
storage/rocksdb/rdb_datadic.h | 2 +-
storage/rocksdb/rdb_i_s.cc | 2 +-
storage/rocksdb/rdb_i_s.h | 2 +-
storage/rocksdb/rdb_index_merge.cc | 2 +-
storage/rocksdb/rdb_index_merge.h | 2 +-
storage/rocksdb/rdb_io_watchdog.cc | 2 +-
storage/rocksdb/rdb_io_watchdog.h | 2 +-
storage/rocksdb/rdb_mutex_wrapper.cc | 2 +-
storage/rocksdb/rdb_mutex_wrapper.h | 2 +-
storage/rocksdb/rdb_perf_context.cc | 2 +-
storage/rocksdb/rdb_perf_context.h | 2 +-
storage/rocksdb/rdb_sst_info.cc | 2 +-
storage/rocksdb/rdb_sst_info.h | 2 +-
storage/rocksdb/rdb_threads.cc | 2 +-
storage/rocksdb/rdb_threads.h | 2 +-
storage/rocksdb/rdb_utils.cc | 2 +-
storage/rocksdb/rdb_utils.h | 2 +-
.../rocksdb/unittest/test_properties_collector.cc | 2 +-
storage/spider/CMakeLists.txt | 2 +-
storage/spider/ha_spider.cc | 199 +-
storage/spider/ha_spider.h | 92 +-
storage/spider/hs_client/hs_compat.h | 2 +-
storage/spider/hs_client/hstcpcli.cpp | 25 +-
storage/spider/hs_client/hstcpcli.hpp | 3 +
.../checksum_table_with_quick_mode_3_deinit.inc | 14 +
.../checksum_table_with_quick_mode_3_init.inc | 29 +
.../include/direct_sql_with_tmp_table_deinit.inc | 7 +
.../include/direct_sql_with_tmp_table_init.inc | 9 +
.../spider/bugfix/include/quick_mode_0_deinit.inc | 19 +
.../spider/bugfix/include/quick_mode_0_init.inc | 51 +
.../spider/bugfix/include/quick_mode_1_deinit.inc | 19 +
.../spider/bugfix/include/quick_mode_1_init.inc | 51 +
.../spider/bugfix/include/quick_mode_2_deinit.inc | 19 +
.../spider/bugfix/include/quick_mode_2_init.inc | 51 +
.../spider/bugfix/include/quick_mode_3_deinit.inc | 19 +
.../spider/bugfix/include/quick_mode_3_init.inc | 51 +
.../bugfix/include/slave_trx_isolation_deinit.inc | 15 +
.../bugfix/include/slave_trx_isolation_init.inc | 35 +
.../bugfix/include/wrapper_mariadb_deinit.inc | 11 +
.../spider/bugfix/include/wrapper_mariadb_init.inc | 24 +
storage/spider/mysql-test/spider/bugfix/my.cnf | 2 +
storage/spider/mysql-test/spider/bugfix/my_1_1.cnf | 44 +
storage/spider/mysql-test/spider/bugfix/my_2_1.cnf | 56 +
storage/spider/mysql-test/spider/bugfix/my_2_2.cnf | 38 +
storage/spider/mysql-test/spider/bugfix/my_2_3.cnf | 8 +
storage/spider/mysql-test/spider/bugfix/my_3_1.cnf | 11 +
storage/spider/mysql-test/spider/bugfix/my_3_2.cnf | 9 +
storage/spider/mysql-test/spider/bugfix/my_3_3.cnf | 9 +
storage/spider/mysql-test/spider/bugfix/my_4_1.cnf | 9 +
.../r/checksum_table_with_quick_mode_3.result | 100 +
.../bugfix/r/direct_sql_with_tmp_table.result | 33 +
.../mysql-test/spider/bugfix/r/quick_mode_0.result | 504 +
.../mysql-test/spider/bugfix/r/quick_mode_1.result | 504 +
.../mysql-test/spider/bugfix/r/quick_mode_2.result | 504 +
.../mysql-test/spider/bugfix/r/quick_mode_3.result | 504 +
.../spider/bugfix/r/slave_trx_isolation.result | 99 +
.../spider/bugfix/r/wrapper_mariadb.result | 78 +
storage/spider/mysql-test/spider/bugfix/suite.opt | 1 +
storage/spider/mysql-test/spider/bugfix/suite.pm | 12 +
.../bugfix/t/checksum_table_with_quick_mode_3.cnf | 3 +
.../bugfix/t/checksum_table_with_quick_mode_3.test | 72 +
.../spider/bugfix/t/direct_sql_with_tmp_table.cnf | 3 +
.../spider/bugfix/t/direct_sql_with_tmp_table.test | 35 +
.../mysql-test/spider/bugfix/t/quick_mode_0.cnf | 4 +
.../mysql-test/spider/bugfix/t/quick_mode_0.test | 156 +
.../mysql-test/spider/bugfix/t/quick_mode_1.cnf | 4 +
.../mysql-test/spider/bugfix/t/quick_mode_1.test | 156 +
.../mysql-test/spider/bugfix/t/quick_mode_2.cnf | 4 +
.../mysql-test/spider/bugfix/t/quick_mode_2.test | 156 +
.../mysql-test/spider/bugfix/t/quick_mode_3.cnf | 4 +
.../mysql-test/spider/bugfix/t/quick_mode_3.test | 157 +
.../spider/bugfix/t/slave_trx_isolation.cnf | 4 +
.../spider/bugfix/t/slave_trx_isolation.test | 95 +
.../mysql-test/spider/bugfix/t/wrapper_mariadb.cnf | 3 +
.../spider/bugfix/t/wrapper_mariadb.test | 69 +
.../checksum_table_with_quick_mode_3_deinit.inc | 14 +
.../checksum_table_with_quick_mode_3_init.inc | 33 +
.../spider/include/direct_join_using_deinit.inc | 9 +
.../spider/include/direct_join_using_init.inc | 13 +
.../spider/include/direct_left_join_deinit.inc | 9 +
.../spider/include/direct_left_join_init.inc | 13 +
.../include/direct_left_join_nullable_deinit.inc | 9 +
.../include/direct_left_join_nullable_init.inc | 13 +
.../direct_left_right_join_nullable_deinit.inc | 9 +
.../direct_left_right_join_nullable_init.inc | 13 +
...direct_left_right_left_join_nullable_deinit.inc | 9 +
.../direct_left_right_left_join_nullable_init.inc | 13 +
.../spider/include/direct_right_join_deinit.inc | 9 +
.../spider/include/direct_right_join_init.inc | 13 +
.../include/direct_right_join_nullable_deinit.inc | 9 +
.../include/direct_right_join_nullable_init.inc | 13 +
.../direct_right_left_join_nullable_deinit.inc | 9 +
.../direct_right_left_join_nullable_init.inc | 13 +
...irect_right_left_right_join_nullable_deinit.inc | 9 +
.../direct_right_left_right_join_nullable_init.inc | 13 +
.../spider/include/quick_mode_0_deinit.inc | 21 +
.../spider/include/quick_mode_0_init.inc | 55 +
.../spider/include/quick_mode_1_deinit.inc | 21 +
.../spider/include/quick_mode_1_init.inc | 55 +
.../spider/include/quick_mode_2_deinit.inc | 21 +
.../spider/include/quick_mode_2_init.inc | 55 +
.../spider/include/quick_mode_3_deinit.inc | 21 +
.../spider/include/quick_mode_3_init.inc | 55 +
.../spider/include/slave_trx_isolation_deinit.inc | 17 +
.../spider/include/slave_trx_isolation_init.inc | 39 +
.../r/checksum_table_with_quick_mode_3.result | 104 +
.../mysql-test/spider/r/direct_join_using.result | 108 +
.../mysql-test/spider/r/direct_left_join.result | 108 +
.../spider/r/direct_left_join_nullable.result | 113 +
.../r/direct_left_right_join_nullable.result | 113 +
.../r/direct_left_right_left_join_nullable.result | 112 +
.../mysql-test/spider/r/direct_right_join.result | 108 +
.../spider/r/direct_right_join_nullable.result | 113 +
.../r/direct_right_left_join_nullable.result | 112 +
.../r/direct_right_left_right_join_nullable.result | 113 +
.../spider/mysql-test/spider/r/quick_mode_0.result | 508 +
.../spider/mysql-test/spider/r/quick_mode_1.result | 508 +
.../spider/mysql-test/spider/r/quick_mode_2.result | 508 +
.../spider/mysql-test/spider/r/quick_mode_3.result | 508 +
.../mysql-test/spider/r/show_system_tables.result | 20 +-
.../mysql-test/spider/r/slave_trx_isolation.result | 105 +
.../spider/t/checksum_table_with_quick_mode_3.test | 126 +
.../mysql-test/spider/t/direct_join_using.test | 197 +
.../mysql-test/spider/t/direct_left_join.test | 197 +
.../spider/t/direct_left_join_nullable.test | 212 +
.../spider/t/direct_left_right_join_nullable.test | 212 +
.../t/direct_left_right_left_join_nullable.test | 212 +
.../mysql-test/spider/t/direct_right_join.test | 197 +
.../spider/t/direct_right_join_nullable.test | 212 +
.../spider/t/direct_right_left_join_nullable.test | 212 +
.../t/direct_right_left_right_join_nullable.test | 212 +
.../spider/mysql-test/spider/t/quick_mode_0.test | 294 +
.../spider/mysql-test/spider/t/quick_mode_1.test | 294 +
.../spider/mysql-test/spider/t/quick_mode_2.test | 294 +
.../spider/mysql-test/spider/t/quick_mode_3.test | 294 +
.../mysql-test/spider/t/show_system_tables.test | 7 +-
.../mysql-test/spider/t/slave_trx_isolation.test | 148 +
storage/spider/scripts/install_spider.sql | 93 +-
storage/spider/spd_conn.cc | 10 +-
storage/spider/spd_conn.h | 4 +-
storage/spider/spd_copy_tables.cc | 45 +-
storage/spider/spd_db_conn.cc | 547 +-
storage/spider/spd_db_conn.h | 27 +-
storage/spider/spd_db_handlersocket.cc | 132 +-
storage/spider/spd_db_handlersocket.h | 9 +-
storage/spider/spd_db_include.cc | 51 +
storage/spider/spd_db_include.h | 35 +-
storage/spider/spd_db_mysql.cc | 3002 +-
storage/spider/spd_db_mysql.h | 241 +-
storage/spider/spd_db_oracle.cc | 310 +-
storage/spider/spd_db_oracle.h | 11 +-
storage/spider/spd_direct_sql.cc | 81 +-
storage/spider/spd_environ.h | 15 +-
storage/spider/spd_group_by_handler.cc | 67 +-
storage/spider/spd_i_s.cc | 4 +-
storage/spider/spd_include.h | 90 +-
storage/spider/spd_param.cc | 81 +-
storage/spider/spd_param.h | 10 +-
storage/spider/spd_ping_table.cc | 2 +-
storage/spider/spd_sys_table.cc | 186 +-
storage/spider/spd_sys_table.h | 38 +-
storage/spider/spd_table.cc | 67 +-
storage/spider/spd_trx.cc | 38 +-
storage/tokudb/CMakeLists.txt | 60 +-
storage/tokudb/PerconaFT/CMakeLists.txt | 8 +-
.../cmake_modules/TokuSetupCompiler.cmake | 3 +
.../tokudb/PerconaFT/ft/cachetable/cachetable.cc | 21 +-
.../tokudb/PerconaFT/ft/cachetable/cachetable.h | 8 +-
.../tokudb/PerconaFT/ft/ft-cachetable-wrappers.cc | 3 -
storage/tokudb/PerconaFT/ft/ft-test-helpers.cc | 3 -
storage/tokudb/PerconaFT/ft/ft.h | 3 +
storage/tokudb/PerconaFT/ft/node.cc | 2 +
.../PerconaFT/ft/serialize/block_allocator.cc | 2 +-
.../tokudb/PerconaFT/ft/tests/cachetable-4357.cc | 4 -
.../tokudb/PerconaFT/ft/tests/cachetable-4365.cc | 4 -
.../tokudb/PerconaFT/ft/tests/cachetable-5097.cc | 6 +-
.../tokudb/PerconaFT/ft/tests/cachetable-5978-2.cc | 7 +-
.../tokudb/PerconaFT/ft/tests/cachetable-5978.cc | 13 +-
.../PerconaFT/ft/tests/cachetable-all-write.cc | 5 +-
.../ft/tests/cachetable-checkpoint-pending.cc | 8 +-
.../ft/tests/cachetable-checkpoint-pinned-nodes.cc | 6 +-
.../ft/tests/cachetable-cleaner-checkpoint.cc | 5 +-
.../ft/tests/cachetable-cleaner-checkpoint2.cc | 5 +-
.../cachetable-cleaner-thread-attrs-accumulate.cc | 8 +-
.../cachetable-cleaner-thread-everything-pinned.cc | 5 +-
...etable-cleaner-thread-nothing-needs-flushing.cc | 5 +-
.../cachetable-cleaner-thread-same-fullhash.cc | 7 +-
.../ft/tests/cachetable-cleaner-thread-simple.cc | 7 +-
.../ft/tests/cachetable-clock-eviction.cc | 9 +-
.../ft/tests/cachetable-clock-eviction2.cc | 9 +-
.../ft/tests/cachetable-clock-eviction3.cc | 9 +-
.../ft/tests/cachetable-clock-eviction4.cc | 9 +-
.../ft/tests/cachetable-clone-checkpoint.cc | 5 +-
.../cachetable-clone-partial-fetch-pinned-node.cc | 7 +-
.../ft/tests/cachetable-clone-partial-fetch.cc | 7 +-
.../ft/tests/cachetable-clone-pin-nonblocking.cc | 7 +-
.../ft/tests/cachetable-clone-unpin-remove.cc | 5 +-
.../ft/tests/cachetable-eviction-close-test.cc | 4 -
.../ft/tests/cachetable-eviction-close-test2.cc | 4 -
.../ft/tests/cachetable-eviction-getandpin-test.cc | 14 +-
.../tests/cachetable-eviction-getandpin-test2.cc | 12 +-
.../ft/tests/cachetable-fetch-inducing-evictor.cc | 15 +-
.../ft/tests/cachetable-flush-during-cleaner.cc | 3 +-
.../ft/tests/cachetable-getandpin-test.cc | 8 +-
.../cachetable-kibbutz_and_flush_cachefile.cc | 3 +-
.../PerconaFT/ft/tests/cachetable-partial-fetch.cc | 18 +-
.../ft/tests/cachetable-pin-checkpoint.cc | 6 -
.../cachetable-pin-nonblocking-checkpoint-clean.cc | 9 +-
.../ft/tests/cachetable-prefetch-close-test.cc | 2 -
.../ft/tests/cachetable-prefetch-getandpin-test.cc | 12 +-
.../ft/tests/cachetable-put-checkpoint.cc | 9 -
.../PerconaFT/ft/tests/cachetable-simple-clone.cc | 7 +-
.../PerconaFT/ft/tests/cachetable-simple-clone2.cc | 5 +-
.../PerconaFT/ft/tests/cachetable-simple-close.cc | 20 +-
.../ft/tests/cachetable-simple-maybe-get-pin.cc | 3 +-
.../ft/tests/cachetable-simple-pin-cheap.cc | 9 +-
.../ft/tests/cachetable-simple-pin-dep-nodes.cc | 8 +-
.../cachetable-simple-pin-nonblocking-cheap.cc | 19 +-
.../ft/tests/cachetable-simple-pin-nonblocking.cc | 13 +-
.../PerconaFT/ft/tests/cachetable-simple-pin.cc | 11 +-
.../ft/tests/cachetable-simple-put-dep-nodes.cc | 6 +-
.../cachetable-simple-read-pin-nonblocking.cc | 13 +-
.../ft/tests/cachetable-simple-read-pin.cc | 13 +-
.../cachetable-simple-unpin-remove-checkpoint.cc | 7 +-
.../PerconaFT/ft/tests/cachetable-simple-verify.cc | 5 +-
.../tokudb/PerconaFT/ft/tests/cachetable-test.cc | 22 +-
.../ft/tests/cachetable-unpin-and-remove-test.cc | 4 +-
.../cachetable-unpin-remove-and-checkpoint.cc | 6 +-
.../PerconaFT/ft/tests/cachetable-unpin-test.cc | 2 -
storage/tokudb/PerconaFT/ft/tests/test-TDB2-pe.cc | 178 +
storage/tokudb/PerconaFT/ft/tests/test-TDB89.cc | 208 +
storage/tokudb/PerconaFT/ft/txn/rollback-apply.cc | 2 +
storage/tokudb/PerconaFT/ft/txn/rollback.cc | 2 +-
storage/tokudb/PerconaFT/ftcxx/malloc_utils.cpp | 2 +-
storage/tokudb/PerconaFT/ftcxx/malloc_utils.hpp | 2 +-
storage/tokudb/PerconaFT/portability/toku_assert.h | 2 +-
.../tokudb/PerconaFT/portability/toku_debug_sync.h | 3 +-
.../PerconaFT/portability/toku_instr_mysql.cc | 6 +-
.../PerconaFT/portability/toku_instrumentation.h | 6 +-
.../tokudb/PerconaFT/portability/toku_race_tools.h | 2 +-
storage/tokudb/PerconaFT/src/tests/get_last_key.cc | 32 +-
storage/tokudb/PerconaFT/src/ydb.cc | 3 +
storage/tokudb/PerconaFT/src/ydb_lib.cc | 2 +-
storage/tokudb/PerconaFT/util/dmt.cc | 4 +-
storage/tokudb/PerconaFT/util/minicron.cc | 3 +-
storage/tokudb/PerconaFT/util/scoped_malloc.cc | 2 +-
.../util/tests/minicron-change-period-data-race.cc | 66 +
storage/tokudb/ha_tokudb.cc | 337 +-
storage/tokudb/ha_tokudb.h | 94 +-
storage/tokudb/ha_tokudb_admin.cc | 8 +-
storage/tokudb/ha_tokudb_alter_55.cc | 4 +
storage/tokudb/ha_tokudb_alter_56.cc | 265 +-
storage/tokudb/ha_tokudb_alter_common.cc | 6 +-
storage/tokudb/ha_tokudb_update.cc | 96 +-
storage/tokudb/hatoku_cmp.cc | 33 +-
storage/tokudb/hatoku_cmp.h | 14 +-
storage/tokudb/hatoku_defines.h | 65 +-
storage/tokudb/hatoku_hton.cc | 183 +-
storage/tokudb/hatoku_hton.h | 25 +-
storage/tokudb/mysql-test/rpl/disabled.def | 1 +
.../rpl/r/rpl_extra_col_master_tokudb.result | 2 +-
.../mysql-test/rpl/r/rpl_mixed_replace_into.result | 23 +
.../mysql-test/rpl/r/rpl_not_null_tokudb.result | 16 -
.../rpl/r/rpl_parallel_tokudb_delete_pk.result | 13 -
...pl_parallel_tokudb_update_pk_uc0_lookup0.result | 13 -
.../rpl/r/rpl_parallel_tokudb_write_pk.result | 6 -
.../mysql-test/rpl/r/rpl_row_basic_3tokudb.result | 32 -
.../rpl/r/rpl_row_rec_comp_tokudb.result | 12 -
.../mysql-test/rpl/r/rpl_row_replace_into.result | 23 +
.../mysql-test/rpl/r/rpl_set_null_tokudb.result | 16 -
.../mysql-test/rpl/r/rpl_stmt_replace_into.result | 23 +
.../mysql-test/rpl/r/rpl_tokudb_mixed_dml.result | 48 +-
.../mysql-test/rpl/r/rpl_truncate_3tokudb.result | 16 -
.../mysql-test/rpl/r/rpl_typeconv_tokudb.result | 4 -
.../mysql-test/rpl/r/rpl_xa_interleave.result | 78 +
.../mysql-test/rpl/r/tokudb_innodb_xa_crash.result | 8 -
.../mysql-test/rpl/t/rpl_mixed_replace_into.test | 25 +
.../mysql-test/rpl/t/rpl_row_replace_into.test | 25 +
.../mysql-test/rpl/t/rpl_stmt_replace_into.test | 25 +
.../tokudb/mysql-test/rpl/t/rpl_xa_interleave.test | 103 +
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 +
.../mysql-test/tokudb/r/card_add_drop.result | 2 +
.../mysql-test/tokudb/r/card_add_index.result | 3 +
.../mysql-test/tokudb/r/card_drop_index.result | 1 +
.../mysql-test/tokudb/r/card_drop_index_2.result | 1 +
.../tokudb/mysql-test/tokudb/r/card_drop_pk.result | 1 +
.../tokudb/mysql-test/tokudb/r/card_no_keys.result | 1 +
storage/tokudb/mysql-test/tokudb/r/card_pk.result | 1 +
.../tokudb/mysql-test/tokudb/r/card_pk_2.result | 1 +
.../tokudb/mysql-test/tokudb/r/card_pk_sk.result | 2 +
.../mysql-test/tokudb/r/card_scale_percent.result | 1 +
storage/tokudb/mysql-test/tokudb/r/card_sk.result | 1 +
.../tokudb/mysql-test/tokudb/r/card_sk_2.result | 1 +
.../mysql-test/tokudb/r/card_unique_sk.result | 1 +
.../tokudb/r/change_column_bin_descriptor.result | 4 -
.../tokudb/r/change_column_bin_rename.result | 64 -
.../tokudb/r/change_column_blob_data.result | 72 -
.../tokudb/r/change_column_char_descriptor.result | 4 -
.../tokudb/r/change_column_char_rename.result | 64 -
.../mysql-test/tokudb/r/change_column_int.result | 120 -
.../tokudb/r/change_column_int_descriptor.result | 4 -
.../tokudb/r/change_column_int_rename.result | 40 -
.../tokudb/r/change_column_text_data.result | 72 -
.../r/change_column_varbin_descriptor.result | 4 -
.../r/change_column_varchar_descriptor.result | 4 -
.../tokudb/mysql-test/tokudb/r/compressions.result | 11 +
.../tokudb/r/fast_update_binlog_mixed.result | 225 +-
.../tokudb/r/fast_update_binlog_row.result | 19 +-
.../tokudb/r/fast_update_binlog_statement.result | 222 +-
.../mysql-test/tokudb/r/fast_update_blobs.result | 18253 +---------
.../r/fast_update_blobs_fixed_varchar.result | 33026 ------------------
.../tokudb/r/fast_update_blobs_with_varchar.result | 32771 +-----------------
.../mysql-test/tokudb/r/fast_update_char.result | 60 +-
.../tokudb/r/fast_update_deadlock.result | 19 +-
.../tokudb/r/fast_update_decr_floor.result | 314 +-
.../r/fast_update_disable_slow_update.result | 7 -
.../mysql-test/tokudb/r/fast_update_error.result | 12 +-
.../mysql-test/tokudb/r/fast_update_int.result | 562 +-
.../tokudb/r/fast_update_int_bounds.result | 52 +-
.../mysql-test/tokudb/r/fast_update_key.result | 54 +-
.../mysql-test/tokudb/r/fast_update_sqlmode.result | 21 +-
.../tokudb/r/fast_update_uint_bounds.result | 36 +-
.../mysql-test/tokudb/r/fast_update_varchar.result | 13575 +-------
.../mysql-test/tokudb/r/fast_upsert_bin_pad.result | Bin 659 -> 738 bytes
.../mysql-test/tokudb/r/fast_upsert_char.result | 24 +-
.../tokudb/r/fast_upsert_deadlock.result | 19 +-
.../mysql-test/tokudb/r/fast_upsert_int.result | 428 +-
.../mysql-test/tokudb/r/fast_upsert_key.result | 43 +-
.../mysql-test/tokudb/r/fast_upsert_sqlmode.result | 23 +-
.../mysql-test/tokudb/r/fast_upsert_values.result | 18 +-
.../tokudb/mysql-test/tokudb/r/tokudb_mrr.result | 334 +
.../tokudb/mysql-test/tokudb/r/type_date.result | 6 +-
.../mysql-test/tokudb/r/type_datetime.result | 14 +-
.../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_bin.py | 0
.../tokudb/t/change_column_bin_rename.py | 0
.../mysql-test/tokudb/t/change_column_char.py | 0
.../tokudb/t/change_column_char_binary.py | 0
.../tokudb/t/change_column_char_charbinary.py | 0
.../tokudb/t/change_column_char_rename.py | 0
.../mysql-test/tokudb/t/change_column_int.py | 0
.../mysql-test/tokudb/t/change_column_int_key.py | 0
.../tokudb/t/change_column_int_not_supported.py | 0
.../tokudb/t/change_column_int_rename.py | 0
.../tokudb/mysql-test/tokudb/t/compressions.test | 68 +
storage/tokudb/mysql-test/tokudb/t/disabled.def | 24 -
.../tokudb/t/fast_update_binlog_mixed-master.opt | 2 +
.../tokudb/t/fast_update_binlog_mixed.test | 15 +-
.../tokudb/t/fast_update_binlog_row-master.opt | 2 +
.../tokudb/t/fast_update_binlog_row.test | 19 +-
.../t/fast_update_binlog_statement-master.opt | 2 +
.../tokudb/t/fast_update_binlog_statement.test | 15 +-
.../mysql-test/tokudb/t/fast_update_blobs.py | 57 -
.../mysql-test/tokudb/t/fast_update_blobs.test | 18575 +----------
.../tokudb/t/fast_update_blobs_fixed_varchar.py | 63 -
.../tokudb/t/fast_update_blobs_fixed_varchar.test | 33287 -------------------
.../tokudb/t/fast_update_blobs_with_varchar.py | 62 -
.../tokudb/t/fast_update_blobs_with_varchar.test | 33115 +-----------------
.../mysql-test/tokudb/t/fast_update_char.test | 66 +-
.../mysql-test/tokudb/t/fast_update_deadlock.test | 21 +-
.../mysql-test/tokudb/t/fast_update_decr_floor.py | 58 -
.../tokudb/t/fast_update_decr_floor.test | 409 +-
.../tokudb/t/fast_update_disable_slow_update.test | 17 -
.../mysql-test/tokudb/t/fast_update_error.test | 16 +-
.../tokudb/mysql-test/tokudb/t/fast_update_int.py | 77 -
.../mysql-test/tokudb/t/fast_update_int.test | 682 +-
.../tokudb/t/fast_update_int_bounds.test | 55 +-
.../mysql-test/tokudb/t/fast_update_key.test | 63 +-
.../mysql-test/tokudb/t/fast_update_sqlmode.test | 25 +-
.../tokudb/t/fast_update_uint_bounds.test | 42 +-
.../mysql-test/tokudb/t/fast_update_varchar.py | 63 -
.../mysql-test/tokudb/t/fast_update_varchar.test | 7390 +---
.../mysql-test/tokudb/t/fast_upsert_bin_pad.test | 19 +-
.../mysql-test/tokudb/t/fast_upsert_char.test | 27 +-
.../mysql-test/tokudb/t/fast_upsert_deadlock.test | 22 +-
.../tokudb/mysql-test/tokudb/t/fast_upsert_int.py | 50 -
.../mysql-test/tokudb/t/fast_upsert_int.test | 486 +-
.../mysql-test/tokudb/t/fast_upsert_key.test | 46 +-
.../mysql-test/tokudb/t/fast_upsert_sqlmode.test | 27 +-
.../mysql-test/tokudb/t/fast_upsert_values.test | 21 +-
storage/tokudb/mysql-test/tokudb/t/tokudb_mrr.test | 73 +
.../tokudb_alter_table/r/hcad_all_add.result | 1736 -
.../tokudb_alter_table/r/hcad_all_add2.result | 1736 -
.../tokudb_alter_table/r/hcad_all_add3.result | 1736 -
.../tokudb_alter_table/r/hcad_all_blob_add.result | 1736 -
.../tokudb_alter_table/r/hcad_all_blob_drop.result | 160 -
.../tokudb_alter_table/r/hcad_all_drop.result | 1232 -
.../tokudb_alter_table/r/hcad_all_fixed_add.result | 1736 -
.../r/hcad_all_fixed_drop.result | 160 -
.../tokudb_alter_table/r/hcad_all_var_add.result | 1736 -
.../tokudb_alter_table/r/hcad_all_var_drop.result | 160 -
.../tokudb_alter_table/r/hcad_clustering.result | 32 -
.../tokudb_alter_table/r/hcad_clustering2.result | 32 -
.../r/hcad_diff_num_offset_bytes.result | 84 -
.../tokudb_alter_table/r/hcad_fixedblob_add.result | 1736 -
.../r/hcad_fixedblob_add2.result | 1736 -
.../r/hcad_fixedblob_drop.result | 560 -
.../tokudb_alter_table/r/hcad_fixedvar_add.result | 1736 -
.../tokudb_alter_table/r/hcad_fixedvar_add2.result | 1736 -
.../tokudb_alter_table/r/hcad_fixedvar_drop.result | 560 -
.../tokudb_alter_table/r/hcad_null_bits.result | 68 -
.../mysql-test/tokudb_alter_table/r/hcad_pk.result | 32 -
.../tokudb_alter_table/r/hcad_pk2.result | 32 -
.../tokudb_alter_table/r/hcad_varblob_add.result | 1736 -
.../tokudb_alter_table/r/hcad_varblob_add2.result | 1736 -
.../tokudb_alter_table/r/hcad_varblob_drop.result | 560 -
.../tokudb_alter_table/r/other_alter2.result | 72 -
.../tokudb/mysql-test/tokudb_bugs/r/PS-3773.result | 8 +
.../tokudb_bugs/r/alter_part_tokudb_bug_155.result | 4 -
.../r/alter_table_comment_rebuild_data.result | 177 +
.../tokudb/mysql-test/tokudb_bugs/r/db743.result | 4 -
.../tokudb_bugs/r/db756_card_part_hash.result | 1 +
.../tokudb_bugs/r/db756_card_part_hash_1.result | 1 +
.../r/db756_card_part_hash_1_pick.result | 1 +
.../tokudb_bugs/r/db756_card_part_hash_2.result | 1 +
.../r/db756_card_part_hash_2_pick.result | 1 +
.../tokudb_bugs/r/db757_part_alter_analyze.result | 6 +-
.../mysql-test/tokudb_bugs/r/mdev5932.result | 4 -
.../tokudb_bugs/r/rpl_mixed_replace_into.result | 23 -
.../tokudb_bugs/r/rpl_row_replace_into.result | 23 -
.../tokudb_bugs/r/rpl_stmt_replace_into.result | 23 -
.../tokudb/mysql-test/tokudb_bugs/t/PS-3773.test | 26 +
.../t/alter_table_comment_rebuild_data.test | 188 +
.../tokudb_bugs/t/rpl_mixed_replace_into.test | 25 -
.../tokudb_bugs/t/rpl_row_replace_into.test | 25 -
.../tokudb_bugs/t/rpl_stmt_replace_into.test | 25 -
.../r/partition_alter1_1_2_tokudb.result | 56 +
.../r/partition_alter1_1_tokudb.result | 32 +
.../r/partition_alter1_2_tokudb.result | 80 +
.../r/partition_alter2_1_1_tokudb.result | 40 +
.../r/partition_alter2_1_2_tokudb.result | 40 +
.../r/partition_alter2_2_1_tokudb.result | 40 +
.../r/partition_alter2_2_2_tokudb.result | 40 +
.../tokudb_parts/r/partition_alter4_tokudb.result | 216 +
.../tokudb_parts/r/partition_basic_tokudb.result | 64 +
.../tokudb_parts/r/partition_debug_tokudb.result | 262 +
.../tokudb_parts/r/partition_engine_tokudb.result | 11 +
.../tokudb_parts/r/partition_mgm_lc0_tokudb.result | 1 +
.../r/partition_mgm_lc10_tokudb.result | 1 +
.../tokudb_parts/r/partition_mgm_lc1_tokudb.result | 1 +
.../mysql-test/tokudb_rpl/r/mdev12179.result | 18 +
.../tokudb/mysql-test/tokudb_rpl/t/mdev12179.test | 85 +
storage/tokudb/tokudb_debug.h | 5 -
storage/tokudb/tokudb_dir_cmd.h | 6 +-
storage/tokudb/tokudb_information_schema.cc | 74 +-
storage/tokudb/tokudb_sysvars.cc | 120 +-
storage/tokudb/tokudb_sysvars.h | 16 +-
storage/tokudb/tokudb_thread.h | 26 +-
storage/tokudb/tokudb_update_fun.cc | 230 +-
strings/ctype-simple.c | 4 +-
strings/ctype-uca.c | 1560 +-
strings/ctype-uca.ic | 839 +
strings/ctype-ucs2.c | 145 +-
strings/ctype-ucs2.h | 32 +
strings/ctype-unidata.h | 31 +
strings/ctype-utf16.h | 80 +
strings/ctype-utf32.h | 33 +
strings/ctype-utf8.c | 410 +-
strings/ctype-utf8.h | 190 +
strings/decimal.c | 35 +-
strings/json_lib.c | 273 +-
strings/strcoll.ic | 267 +-
support-files/compiler_warnings.supp | 1 -
support-files/mysql.server.sh | 31 +-
support-files/policy/apparmor/usr.sbin.mysqld | 3 +-
support-files/policy/selinux/mariadb-server.fc | 2 +-
support-files/policy/selinux/mariadb-server.te | 4 +-
support-files/rpm/plugin-postin.sh | 3 +
support-files/rpm/server-posttrans.sh | 11 +
support-files/rpm/server-postun.sh | 9 +-
tests/mysql_client_test.c | 77 +-
unittest/mysys/lf-t.c | 5 -
unittest/mysys/my_atomic-t.c | 17 +-
unittest/mysys/thr_template.c | 31 +-
unittest/mysys/waiting_threads-t.c | 4 +-
unittest/sql/mf_iocache-t.cc | 88 +-
unittest/strings/CMakeLists.txt | 2 +-
unittest/strings/json-t.c | 103 +
vio/docs/TODO | 3 -
vio/viopipe.c | 1 -
vio/viossl.c | 10 +-
win/packaging/CMakeLists.txt | 80 +-
win/packaging/CPackWixConfig.cmake | 2 +-
win/packaging/CPackZIPConfig.cmake | 11 +
win/packaging/CPackZIPDebugInfoConfig.cmake | 6 +
win/packaging/ca/CMakeLists.txt | 7 +-
win/packaging/create_msi.cmake | 11 +-
win/packaging/extra.wxs.in | 12 +-
win/packaging/mysql_server.wxs.in | 2 +-
win/upgrade_wizard/CMakeLists.txt | 18 +-
win/upgrade_wizard/upgradeDlg.cpp | 27 +-
wsrep-lib | 1 +
wsrep/CMakeLists.txt | 26 -
wsrep/wsrep_api.h | 1117 -
wsrep/wsrep_dummy.c | 413 -
wsrep/wsrep_gtid.c | 74 -
wsrep/wsrep_loader.c | 226 -
wsrep/wsrep_uuid.c | 83 -
zlib/CMakeLists.txt | 156 +-
zlib/ChangeLog | 666 +-
zlib/FAQ | 267 +-
zlib/INDEX | 41 +-
zlib/README | 94 +-
zlib/README.MySQL | 16 -
zlib/adler32.c | 113 +-
zlib/algorithm.txt | 209 -
zlib/amiga/Makefile.pup | 69 +
zlib/amiga/Makefile.sas | 68 +
zlib/compress.c | 45 +-
zlib/crc32.c | 149 +-
zlib/crc32.h | 2 +-
zlib/deflate.c | 1269 +-
zlib/deflate.h | 78 +-
zlib/gzclose.c | 25 +
zlib/gzguts.h | 218 +
zlib/gzio.c | 1031 -
zlib/gzlib.c | 637 +
zlib/gzread.c | 654 +
zlib/gzwrite.c | 665 +
zlib/infback.c | 107 +-
zlib/inffast.c | 159 +-
zlib/inffast.h | 4 +-
zlib/inffixed.h | 6 +-
zlib/inflate.c | 507 +-
zlib/inflate.h | 38 +-
zlib/inftrees.c | 109 +-
zlib/inftrees.h | 27 +-
zlib/make_vms.com | 867 +
zlib/msdos/Makefile.bor | 115 +
zlib/msdos/Makefile.dj2 | 104 +
zlib/msdos/Makefile.emx | 69 +
zlib/msdos/Makefile.msc | 112 +
zlib/msdos/Makefile.tc | 100 +
zlib/nintendods/README | 5 +
zlib/old/Makefile.emx | 69 +
zlib/old/Makefile.riscos | 151 +
zlib/old/README | 3 +
zlib/old/descrip.mms | 48 +
zlib/old/os2/Makefile.os2 | 136 +
zlib/old/os2/zlib.def | 51 +
zlib/old/visual-basic.txt | 160 +
zlib/os400/README400 | 48 +
zlib/os400/bndsrc | 119 +
zlib/os400/make.sh | 366 +
zlib/os400/zlib.inc | 527 +
zlib/qnx/package.qpg | 141 +
zlib/test/example.c | 602 +
zlib/test/infcover.c | 671 +
zlib/test/minigzip.c | 651 +
zlib/treebuild.xml | 116 +
zlib/trees.c | 246 +-
zlib/trees.h | 4 +-
zlib/uncompr.c | 100 +-
zlib/watcom/watcom_f.mak | 43 +
zlib/watcom/watcom_l.mak | 43 +
zlib/win32/DLL_FAQ.txt | 397 +
zlib/win32/Makefile.bor | 110 +
zlib/win32/Makefile.gcc | 182 +
zlib/win32/Makefile.msc | 163 +
zlib/win32/README-WIN32.txt | 103 +
zlib/win32/VisualC.txt | 3 +
zlib/win32/zlib.def | 94 +
zlib/win32/zlib1.rc | 40 +
zlib/zconf.h | 336 -
zlib/zconf.h.cmakein | 536 +
zlib/zconf.h.in | 534 +
zlib/zlib.3 | 122 +-
zlib/zlib.h | 1639 +-
zlib/zlib.pc.cmakein | 13 +
zlib/zlib.pc.in | 13 +
zlib/zlib2ansi | 152 +
zlib/zutil.c | 101 +-
zlib/zutil.h | 192 +-
3323 files changed, 153306 insertions(+), 291544 deletions(-)
diff --cc sql/sql_derived.cc
index 9b17dd3,878aa71..9ad22dd
--- a/sql/sql_derived.cc
+++ b/sql/sql_derived.cc
@@@ -1128,18 -1107,8 +1128,19 @@@ bool mysql_derived_fill(THD *thd, LEX *
DBUG_ASSERT(derived->table && derived->table->is_created());
select_unit *derived_result= derived->derived_result;
SELECT_LEX *save_current_select= lex->current_select;
+ bool derived_recursive_is_filled= false;
+ if (derived->pushdown_derived)
+ {
+ int res;
+ if (unit->executed)
+ DBUG_RETURN(FALSE);
+ res= derived->pushdown_derived->execute();
+ unit->executed= true;
+ delete derived->pushdown_derived;
+ DBUG_RETURN(res);
+ }
+
if (unit->executed && !derived_is_recursive &&
(unit->uncacheable & UNCACHEABLE_DEPENDENT))
{
diff --cc sql/table.h
index 33cf23b,822a103..7b88344
--- a/sql/table.h
+++ b/sql/table.h
@@@ -2588,9 -2600,16 +2604,19 @@@ struct TABLE_LIS
}
void set_lock_type(THD* thd, enum thr_lock_type lock);
+ derived_handler *find_derived_handler(THD *thd);
+ TABLE_LIST *get_first_table();
+
+ void remove_join_columns()
+ {
+ if (join_columns)
+ {
+ join_columns->empty();
+ join_columns= NULL;
+ is_join_columns_complete= FALSE;
+ }
+ }
+
private:
bool prep_check_option(THD *thd, uint8 check_opt_type);
bool prep_where(THD *thd, Item **conds, bool no_where_clause);
1
0

06 Feb '19
revision-id: 9e114455a95c15cd1e37dabef0dff1fe2588d50a (mariadb-10.3.6-107-g9e11445)
parent(s): 447e0f023fff0fa2ccfa7e93b77f1da3be3b43f1
author: Igor Babaev
committer: Igor Babaev
timestamp: 2019-02-06 15:56:21 -0800
message:
MDEV-16188 Post merge fixes:fixed warnings on Windows
Also adjusted some result files after Galina's last patch for ANALYZE.
---
mysql-test/main/join_nested_jcl6.result | 2 +-
mysql-test/main/key_cache.result | 4 +-
mysql-test/main/myisam_icp.result | 2 +-
mysql-test/main/mysql_client_test.result | 8 +-
mysql-test/main/partition_pruning.result | 2 +-
mysql-test/main/range.result | 4 +-
mysql-test/main/rowid_filter_innodb.result | 420 ++++++++++++++++++++-
mysql-test/main/select.result | 6 +-
mysql-test/main/select_jcl6.result | 6 +-
mysql-test/main/select_pkeycache.result | 6 +-
mysql-test/main/stat_tables.result | 6 +-
mysql-test/main/stat_tables_innodb.result | 4 +-
.../sys_vars/r/sysvars_server_embedded,32bit.rdiff | 9 +
sql/handler.cc | 2 +-
sql/multi_range_read.cc | 6 +-
sql/rowid_filter.cc | 7 +-
sql/rowid_filter.h | 2 +-
sql/sql_explain.cc | 3 +-
18 files changed, 465 insertions(+), 34 deletions(-)
diff --git a/mysql-test/main/join_nested_jcl6.result b/mysql-test/main/join_nested_jcl6.result
index 5791185..67534b2 100644
--- a/mysql-test/main/join_nested_jcl6.result
+++ b/mysql-test/main/join_nested_jcl6.result
@@ -2002,7 +2002,7 @@ ON t6.b >= 2 AND t5.b=t7.b AND
(t8.a > 0 OR t8.c IS NULL) AND t6.a>0 AND t7.a>0;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t5 ALL NULL NULL NULL NULL 3
-1 SIMPLE t7 ref|filter PRIMARY,b_i b_i|PRIMARY 5|4 test.t5.b 2 (29%) Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan; Using filter
+1 SIMPLE t7 ref|filter PRIMARY,b_i b_i|PRIMARY 5|4 test.t5.b 2 (29%) Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan; Using rowid filter
1 SIMPLE t6 range PRIMARY,b_i PRIMARY 4 NULL 3 Using where; Rowid-ordered scan; Using join buffer (incremental, BNL join)
1 SIMPLE t8 ref b_i b_i 5 test.t5.b 2 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
SELECT t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
diff --git a/mysql-test/main/key_cache.result b/mysql-test/main/key_cache.result
index b3368b2..e1f8892 100644
--- a/mysql-test/main/key_cache.result
+++ b/mysql-test/main/key_cache.result
@@ -739,13 +739,13 @@ p
1019
explain select i from t2 where a='yyyy' and i=3;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 ref|filter k1,k2 k1|k2 5|11 const 189 (27%) Using where; Using filter
+1 SIMPLE t2 ref|filter k1,k2 k1|k2 5|11 const 189 (27%) Using where; Using rowid filter
select i from t2 where a='yyyy' and i=3;
i
3
explain select a from t2 where a='yyyy' and i=3;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 ref|filter k1,k2 k1|k2 5|11 const 189 (27%) Using where; Using filter
+1 SIMPLE t2 ref|filter k1,k2 k1|k2 5|11 const 189 (27%) Using where; Using rowid filter
select a from t2 where a='yyyy' and i=3 ;
a
yyyy
diff --git a/mysql-test/main/myisam_icp.result b/mysql-test/main/myisam_icp.result
index b76a4c2..39c76a2 100644
--- a/mysql-test/main/myisam_icp.result
+++ b/mysql-test/main/myisam_icp.result
@@ -407,7 +407,7 @@ WHERE (pk BETWEEN 4 AND 5 OR pk < 2) AND c1 < 240
ORDER BY c1
LIMIT 1;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range|filter PRIMARY,k1 PRIMARY|k1 4|5 NULL 3 (50%) Using index condition; Using where; Rowid-ordered scan; Using filesort; Using filter
+1 SIMPLE t1 range|filter PRIMARY,k1 PRIMARY|k1 4|5 NULL 3 (50%) Using index condition; Using where; Rowid-ordered scan; Using filesort; Using rowid filter
DROP TABLE t1;
#
#
diff --git a/mysql-test/main/mysql_client_test.result b/mysql-test/main/mysql_client_test.result
index b5100f9..06794a0 100644
--- a/mysql-test/main/mysql_client_test.result
+++ b/mysql-test/main/mysql_client_test.result
@@ -149,7 +149,7 @@ ANALYZE number of fields: 13
- 6: name: 'key_len'/''; table: ''/''; db: ''; catalog: 'def'; length: 12288; max_length: 0; type: 253; decimals: 39
- 7: name: 'ref'/''; table: ''/''; db: ''; catalog: 'def'; length: 6144; max_length: 0; type: 253; decimals: 39
- 8: name: 'rows'/''; table: ''/''; db: ''; catalog: 'def'; length: 192; max_length: 0; type: 253; decimals: 39
- - 9: name: 'r_rows'/''; table: ''/''; db: ''; catalog: 'def'; length: 4; max_length: 0; type: 5; decimals: 10
+ - 9: name: 'r_rows'/''; table: ''/''; db: ''; catalog: 'def'; length: 192; max_length: 0; type: 253; decimals: 39
- 10: name: 'filtered'/''; table: ''/''; db: ''; catalog: 'def'; length: 4; max_length: 0; type: 5; decimals: 2
- 11: name: 'r_filtered'/''; table: ''/''; db: ''; catalog: 'def'; length: 4; max_length: 0; type: 5; decimals: 2
- 12: name: 'Extra'/''; table: ''/''; db: ''; catalog: 'def'; length: 765; max_length: 0; type: 253; decimals: 39
@@ -178,7 +178,7 @@ ANALYZE INSERT number of fields: 13
- 6: name: 'key_len'/''; table: ''/''; db: ''; catalog: 'def'; length: 12288; max_length: 0; type: 253; decimals: 39
- 7: name: 'ref'/''; table: ''/''; db: ''; catalog: 'def'; length: 6144; max_length: 0; type: 253; decimals: 39
- 8: name: 'rows'/''; table: ''/''; db: ''; catalog: 'def'; length: 192; max_length: 0; type: 253; decimals: 39
- - 9: name: 'r_rows'/''; table: ''/''; db: ''; catalog: 'def'; length: 4; max_length: 0; type: 5; decimals: 10
+ - 9: name: 'r_rows'/''; table: ''/''; db: ''; catalog: 'def'; length: 192; max_length: 0; type: 253; decimals: 39
- 10: name: 'filtered'/''; table: ''/''; db: ''; catalog: 'def'; length: 4; max_length: 0; type: 5; decimals: 2
- 11: name: 'r_filtered'/''; table: ''/''; db: ''; catalog: 'def'; length: 4; max_length: 0; type: 5; decimals: 2
- 12: name: 'Extra'/''; table: ''/''; db: ''; catalog: 'def'; length: 765; max_length: 0; type: 253; decimals: 39
@@ -207,7 +207,7 @@ ANALYZE UPDATE number of fields: 13
- 6: name: 'key_len'/''; table: ''/''; db: ''; catalog: 'def'; length: 12288; max_length: 0; type: 253; decimals: 39
- 7: name: 'ref'/''; table: ''/''; db: ''; catalog: 'def'; length: 6144; max_length: 0; type: 253; decimals: 39
- 8: name: 'rows'/''; table: ''/''; db: ''; catalog: 'def'; length: 192; max_length: 0; type: 253; decimals: 39
- - 9: name: 'r_rows'/''; table: ''/''; db: ''; catalog: 'def'; length: 4; max_length: 0; type: 5; decimals: 10
+ - 9: name: 'r_rows'/''; table: ''/''; db: ''; catalog: 'def'; length: 192; max_length: 0; type: 253; decimals: 39
- 10: name: 'filtered'/''; table: ''/''; db: ''; catalog: 'def'; length: 4; max_length: 0; type: 5; decimals: 2
- 11: name: 'r_filtered'/''; table: ''/''; db: ''; catalog: 'def'; length: 4; max_length: 0; type: 5; decimals: 2
- 12: name: 'Extra'/''; table: ''/''; db: ''; catalog: 'def'; length: 765; max_length: 0; type: 253; decimals: 39
@@ -236,7 +236,7 @@ ANALYZE DELETE number of fields: 13
- 6: name: 'key_len'/''; table: ''/''; db: ''; catalog: 'def'; length: 12288; max_length: 0; type: 253; decimals: 39
- 7: name: 'ref'/''; table: ''/''; db: ''; catalog: 'def'; length: 6144; max_length: 0; type: 253; decimals: 39
- 8: name: 'rows'/''; table: ''/''; db: ''; catalog: 'def'; length: 192; max_length: 0; type: 253; decimals: 39
- - 9: name: 'r_rows'/''; table: ''/''; db: ''; catalog: 'def'; length: 4; max_length: 0; type: 5; decimals: 10
+ - 9: name: 'r_rows'/''; table: ''/''; db: ''; catalog: 'def'; length: 192; max_length: 0; type: 253; decimals: 39
- 10: name: 'filtered'/''; table: ''/''; db: ''; catalog: 'def'; length: 4; max_length: 0; type: 5; decimals: 2
- 11: name: 'r_filtered'/''; table: ''/''; db: ''; catalog: 'def'; length: 4; max_length: 0; type: 5; decimals: 2
- 12: name: 'Extra'/''; table: ''/''; db: ''; catalog: 'def'; length: 765; max_length: 0; type: 253; decimals: 39
diff --git a/mysql-test/main/partition_pruning.result b/mysql-test/main/partition_pruning.result
index 14e076b..6402f23 100644
--- a/mysql-test/main/partition_pruning.result
+++ b/mysql-test/main/partition_pruning.result
@@ -2677,7 +2677,7 @@ select * from t1 X, t1 Y
where X.b = Y.b and (X.a=1 or X.a=2) and (Y.a=2 or Y.a=3);
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE X p1,p2 range a,b a 4 NULL 4 Using where
-1 SIMPLE Y p2,p3 ref|filter a,b b|a 4|4 test.X.b 2 (50%) Using where; Using filter
+1 SIMPLE Y p2,p3 ref|filter a,b b|a 4|4 test.X.b 2 (50%) Using where; Using rowid filter
explain partitions
select * from t1 X, t1 Y where X.a = Y.a and (X.a=1 or X.a=2);
id select_type table partitions type possible_keys key key_len ref rows Extra
diff --git a/mysql-test/main/range.result b/mysql-test/main/range.result
index 8bef87d..a0e04fc 100644
--- a/mysql-test/main/range.result
+++ b/mysql-test/main/range.result
@@ -2589,7 +2589,7 @@ insert into t2 values
explain select * from t1,t2
where a = d and (a,e) in ((3,3),(7,7),(8,8)) and length(f) = 1;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 range|filter idx1,idx2 idx1|idx2 5|5 NULL 8 (14%) Using index condition; Using where; Using filter
+1 SIMPLE t2 range|filter idx1,idx2 idx1|idx2 5|5 NULL 8 (14%) Using index condition; Using where; Using rowid filter
1 SIMPLE t1 ref idx idx 5 test.t2.d 8
explain format=json select * from t1,t2
where a = d and (a,e) in ((3,3),(7,7),(8,8)) and length(f) = 1;
@@ -2694,7 +2694,7 @@ insert into t1 select * from t1;
explain select * from t1,t2
where a = d and (a,e) in ((4,4),(7,7),(8,8)) and length(f) = 1;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 range|filter idx1,idx2 idx1|idx2 5|5 NULL 7 (7%) Using index condition; Using where; Using filter
+1 SIMPLE t2 range|filter idx1,idx2 idx1|idx2 5|5 NULL 7 (7%) Using index condition; Using where; Using rowid filter
1 SIMPLE t1 ref idx idx 5 test.t2.d 11
explain format=json select * from t1,t2
where a = d and (a,e) in ((4,4),(7,7),(8,8)) and length(f) = 1;
diff --git a/mysql-test/main/rowid_filter_innodb.result b/mysql-test/main/rowid_filter_innodb.result
index 04414a7..f72db6b 100644
--- a/mysql-test/main/rowid_filter_innodb.result
+++ b/mysql-test/main/rowid_filter_innodb.result
@@ -59,7 +59,7 @@ set statement optimizer_switch='rowid_filter=on' for EXPLAIN SELECT l_orderkey,
WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
l_quantity > 45;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE lineitem range|filter i_l_shipdate,i_l_quantity i_l_shipdate|i_l_quantity 4|9 NULL 510 (10%) Using index condition; Using where; Using filter
+1 SIMPLE lineitem range|filter i_l_shipdate,i_l_quantity i_l_shipdate|i_l_quantity 4|9 NULL 510 (10%) Using index condition; Using where; Using rowid filter
set statement optimizer_switch='rowid_filter=on' for EXPLAIN FORMAT=JSON SELECT l_orderkey, l_linenumber, l_shipdate, l_quantity FROM lineitem
WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
l_quantity > 45;
@@ -89,6 +89,50 @@ EXPLAIN
}
}
}
+set statement optimizer_switch='rowid_filter=on' for ANALYZE SELECT l_orderkey, l_linenumber, l_shipdate, l_quantity FROM lineitem
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
+l_quantity > 45;
+id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
+1 SIMPLE lineitem range|filter i_l_shipdate,i_l_quantity i_l_shipdate|i_l_quantity 4|9 NULL 510 (10%) 60.00 (11%) 10.07 100.00 Using index condition; Using where; Using rowid filter
+set statement optimizer_switch='rowid_filter=on' for ANALYZE FORMAT=JSON SELECT l_orderkey, l_linenumber, l_shipdate, l_quantity FROM lineitem
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
+l_quantity > 45;
+ANALYZE
+{
+ "query_block": {
+ "select_id": 1,
+ "r_loops": 1,
+ "r_total_time_ms": "REPLACED",
+ "table": {
+ "table_name": "lineitem",
+ "access_type": "range",
+ "possible_keys": ["i_l_shipdate", "i_l_quantity"],
+ "key": "i_l_shipdate",
+ "key_length": "4",
+ "used_key_parts": ["l_shipDATE"],
+ "rowid_filter": {
+ "range": {
+ "key": "i_l_quantity",
+ "used_key_parts": ["l_quantity"]
+ },
+ "rows": 605,
+ "selectivity_pct": 10.075,
+ "r_rows": 605,
+ "r_selectivity_pct": 11.765,
+ "r_buffer_size": "REPLACED",
+ "r_filling_time_ms": "REPLACED"
+ },
+ "r_loops": 1,
+ "rows": 510,
+ "r_rows": 60,
+ "r_total_time_ms": "REPLACED",
+ "filtered": 10.075,
+ "r_filtered": 100,
+ "index_condition": "lineitem.l_shipDATE between '1997-01-01' and '1997-06-30'",
+ "attached_condition": "lineitem.l_quantity > 45"
+ }
+ }
+}
set statement optimizer_switch='rowid_filter=on' for SELECT l_orderkey, l_linenumber, l_shipdate, l_quantity FROM lineitem
WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
l_quantity > 45;
@@ -179,6 +223,38 @@ EXPLAIN
}
}
}
+set statement optimizer_switch='rowid_filter=off' for ANALYZE SELECT l_orderkey, l_linenumber, l_shipdate, l_quantity FROM lineitem
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
+l_quantity > 45;
+id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
+1 SIMPLE lineitem range i_l_shipdate,i_l_quantity i_l_shipdate 4 NULL 510 510.00 10.07 11.76 Using index condition; Using where
+set statement optimizer_switch='rowid_filter=off' for ANALYZE FORMAT=JSON SELECT l_orderkey, l_linenumber, l_shipdate, l_quantity FROM lineitem
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
+l_quantity > 45;
+ANALYZE
+{
+ "query_block": {
+ "select_id": 1,
+ "r_loops": 1,
+ "r_total_time_ms": "REPLACED",
+ "table": {
+ "table_name": "lineitem",
+ "access_type": "range",
+ "possible_keys": ["i_l_shipdate", "i_l_quantity"],
+ "key": "i_l_shipdate",
+ "key_length": "4",
+ "used_key_parts": ["l_shipDATE"],
+ "r_loops": 1,
+ "rows": 510,
+ "r_rows": 510,
+ "r_total_time_ms": "REPLACED",
+ "filtered": 10.075,
+ "r_filtered": 11.765,
+ "index_condition": "lineitem.l_shipDATE between '1997-01-01' and '1997-06-30'",
+ "attached_condition": "lineitem.l_quantity > 45"
+ }
+ }
+}
set statement optimizer_switch='rowid_filter=off' for SELECT l_orderkey, l_linenumber, l_shipdate, l_quantity FROM lineitem
WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
l_quantity > 45;
@@ -289,6 +365,62 @@ EXPLAIN
}
}
}
+set statement optimizer_switch='rowid_filter=on' for ANALYZE SELECT o_orderkey, l_linenumber, l_shipdate, o_totalprice
+FROM orders JOIN lineitem ON o_orderkey=l_orderkey
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-01-31' AND
+o_totalprice between 200000 and 230000;
+id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
+1 SIMPLE lineitem range PRIMARY,i_l_shipdate,i_l_orderkey,i_l_orderkey_quantity i_l_shipdate 4 NULL 98 98.00 100.00 100.00 Using where; Using index
+1 SIMPLE orders eq_ref PRIMARY,i_o_totalprice PRIMARY 4 dbt3_s001.lineitem.l_orderkey 1 1.00 4.73 11.22 Using where
+set statement optimizer_switch='rowid_filter=on' for ANALYZE FORMAT=JSON SELECT o_orderkey, l_linenumber, l_shipdate, o_totalprice
+FROM orders JOIN lineitem ON o_orderkey=l_orderkey
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-01-31' AND
+o_totalprice between 200000 and 230000;
+ANALYZE
+{
+ "query_block": {
+ "select_id": 1,
+ "r_loops": 1,
+ "r_total_time_ms": "REPLACED",
+ "table": {
+ "table_name": "lineitem",
+ "access_type": "range",
+ "possible_keys": [
+ "PRIMARY",
+ "i_l_shipdate",
+ "i_l_orderkey",
+ "i_l_orderkey_quantity"
+ ],
+ "key": "i_l_shipdate",
+ "key_length": "4",
+ "used_key_parts": ["l_shipDATE"],
+ "r_loops": 1,
+ "rows": 98,
+ "r_rows": 98,
+ "r_total_time_ms": "REPLACED",
+ "filtered": 100,
+ "r_filtered": 100,
+ "attached_condition": "lineitem.l_shipDATE between '1997-01-01' and '1997-01-31'",
+ "using_index": true
+ },
+ "table": {
+ "table_name": "orders",
+ "access_type": "eq_ref",
+ "possible_keys": ["PRIMARY", "i_o_totalprice"],
+ "key": "PRIMARY",
+ "key_length": "4",
+ "used_key_parts": ["o_orderkey"],
+ "ref": ["dbt3_s001.lineitem.l_orderkey"],
+ "r_loops": 98,
+ "rows": 1,
+ "r_rows": 1,
+ "r_total_time_ms": "REPLACED",
+ "filtered": 4.7333,
+ "r_filtered": 11.224,
+ "attached_condition": "orders.o_totalprice between 200000 and 230000"
+ }
+ }
+}
set statement optimizer_switch='rowid_filter=on' for SELECT o_orderkey, l_linenumber, l_shipdate, o_totalprice
FROM orders JOIN lineitem ON o_orderkey=l_orderkey
WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-01-31' AND
@@ -351,6 +483,62 @@ EXPLAIN
}
}
}
+set statement optimizer_switch='rowid_filter=off' for ANALYZE SELECT o_orderkey, l_linenumber, l_shipdate, o_totalprice
+FROM orders JOIN lineitem ON o_orderkey=l_orderkey
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-01-31' AND
+o_totalprice between 200000 and 230000;
+id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
+1 SIMPLE lineitem range PRIMARY,i_l_shipdate,i_l_orderkey,i_l_orderkey_quantity i_l_shipdate 4 NULL 98 98.00 100.00 100.00 Using where; Using index
+1 SIMPLE orders eq_ref PRIMARY,i_o_totalprice PRIMARY 4 dbt3_s001.lineitem.l_orderkey 1 1.00 4.73 11.22 Using where
+set statement optimizer_switch='rowid_filter=off' for ANALYZE FORMAT=JSON SELECT o_orderkey, l_linenumber, l_shipdate, o_totalprice
+FROM orders JOIN lineitem ON o_orderkey=l_orderkey
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-01-31' AND
+o_totalprice between 200000 and 230000;
+ANALYZE
+{
+ "query_block": {
+ "select_id": 1,
+ "r_loops": 1,
+ "r_total_time_ms": "REPLACED",
+ "table": {
+ "table_name": "lineitem",
+ "access_type": "range",
+ "possible_keys": [
+ "PRIMARY",
+ "i_l_shipdate",
+ "i_l_orderkey",
+ "i_l_orderkey_quantity"
+ ],
+ "key": "i_l_shipdate",
+ "key_length": "4",
+ "used_key_parts": ["l_shipDATE"],
+ "r_loops": 1,
+ "rows": 98,
+ "r_rows": 98,
+ "r_total_time_ms": "REPLACED",
+ "filtered": 100,
+ "r_filtered": 100,
+ "attached_condition": "lineitem.l_shipDATE between '1997-01-01' and '1997-01-31'",
+ "using_index": true
+ },
+ "table": {
+ "table_name": "orders",
+ "access_type": "eq_ref",
+ "possible_keys": ["PRIMARY", "i_o_totalprice"],
+ "key": "PRIMARY",
+ "key_length": "4",
+ "used_key_parts": ["o_orderkey"],
+ "ref": ["dbt3_s001.lineitem.l_orderkey"],
+ "r_loops": 98,
+ "rows": 1,
+ "r_rows": 1,
+ "r_total_time_ms": "REPLACED",
+ "filtered": 4.7333,
+ "r_filtered": 11.224,
+ "attached_condition": "orders.o_totalprice between 200000 and 230000"
+ }
+ }
+}
set statement optimizer_switch='rowid_filter=off' for SELECT o_orderkey, l_linenumber, l_shipdate, o_totalprice
FROM orders JOIN lineitem ON o_orderkey=l_orderkey
WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-01-31' AND
@@ -416,6 +604,65 @@ EXPLAIN
}
}
}
+set statement optimizer_switch='rowid_filter=on' for ANALYZE SELECT o_orderkey, l_linenumber, l_shipdate, l_quantity, o_totalprice
+FROM orders JOIN lineitem ON o_orderkey=l_orderkey
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
+l_quantity > 45 AND
+o_totalprice between 180000 and 230000;
+id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
+1 SIMPLE orders range PRIMARY,i_o_totalprice i_o_totalprice 9 NULL 144 144.00 100.00 100.00 Using where; Using index
+1 SIMPLE lineitem ref PRIMARY,i_l_shipdate,i_l_orderkey,i_l_orderkey_quantity,i_l_quantity PRIMARY 4 dbt3_s001.orders.o_orderkey 4 6.62 0.86 1.68 Using where
+set statement optimizer_switch='rowid_filter=on' for ANALYZE FORMAT=JSON SELECT o_orderkey, l_linenumber, l_shipdate, l_quantity, o_totalprice
+FROM orders JOIN lineitem ON o_orderkey=l_orderkey
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
+l_quantity > 45 AND
+o_totalprice between 180000 and 230000;
+ANALYZE
+{
+ "query_block": {
+ "select_id": 1,
+ "r_loops": 1,
+ "r_total_time_ms": "REPLACED",
+ "table": {
+ "table_name": "orders",
+ "access_type": "range",
+ "possible_keys": ["PRIMARY", "i_o_totalprice"],
+ "key": "i_o_totalprice",
+ "key_length": "9",
+ "used_key_parts": ["o_totalprice"],
+ "r_loops": 1,
+ "rows": 144,
+ "r_rows": 144,
+ "r_total_time_ms": "REPLACED",
+ "filtered": 100,
+ "r_filtered": 100,
+ "attached_condition": "orders.o_totalprice between 180000 and 230000",
+ "using_index": true
+ },
+ "table": {
+ "table_name": "lineitem",
+ "access_type": "ref",
+ "possible_keys": [
+ "PRIMARY",
+ "i_l_shipdate",
+ "i_l_orderkey",
+ "i_l_orderkey_quantity",
+ "i_l_quantity"
+ ],
+ "key": "PRIMARY",
+ "key_length": "4",
+ "used_key_parts": ["l_orderkey"],
+ "ref": ["dbt3_s001.orders.o_orderkey"],
+ "r_loops": 144,
+ "rows": 4,
+ "r_rows": 6.625,
+ "r_total_time_ms": "REPLACED",
+ "filtered": 0.8557,
+ "r_filtered": 1.6771,
+ "attached_condition": "lineitem.l_shipDATE between '1997-01-01' and '1997-06-30' and lineitem.l_quantity > 45"
+ }
+ }
+}
set statement optimizer_switch='rowid_filter=on' for SELECT o_orderkey, l_linenumber, l_shipdate, l_quantity, o_totalprice
FROM orders JOIN lineitem ON o_orderkey=l_orderkey
WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
@@ -487,6 +734,65 @@ EXPLAIN
}
}
}
+set statement optimizer_switch='rowid_filter=off' for ANALYZE SELECT o_orderkey, l_linenumber, l_shipdate, l_quantity, o_totalprice
+FROM orders JOIN lineitem ON o_orderkey=l_orderkey
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
+l_quantity > 45 AND
+o_totalprice between 180000 and 230000;
+id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
+1 SIMPLE orders range PRIMARY,i_o_totalprice i_o_totalprice 9 NULL 144 144.00 100.00 100.00 Using where; Using index
+1 SIMPLE lineitem ref PRIMARY,i_l_shipdate,i_l_orderkey,i_l_orderkey_quantity,i_l_quantity PRIMARY 4 dbt3_s001.orders.o_orderkey 4 6.62 0.86 1.68 Using where
+set statement optimizer_switch='rowid_filter=off' for ANALYZE FORMAT=JSON SELECT o_orderkey, l_linenumber, l_shipdate, l_quantity, o_totalprice
+FROM orders JOIN lineitem ON o_orderkey=l_orderkey
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
+l_quantity > 45 AND
+o_totalprice between 180000 and 230000;
+ANALYZE
+{
+ "query_block": {
+ "select_id": 1,
+ "r_loops": 1,
+ "r_total_time_ms": "REPLACED",
+ "table": {
+ "table_name": "orders",
+ "access_type": "range",
+ "possible_keys": ["PRIMARY", "i_o_totalprice"],
+ "key": "i_o_totalprice",
+ "key_length": "9",
+ "used_key_parts": ["o_totalprice"],
+ "r_loops": 1,
+ "rows": 144,
+ "r_rows": 144,
+ "r_total_time_ms": "REPLACED",
+ "filtered": 100,
+ "r_filtered": 100,
+ "attached_condition": "orders.o_totalprice between 180000 and 230000",
+ "using_index": true
+ },
+ "table": {
+ "table_name": "lineitem",
+ "access_type": "ref",
+ "possible_keys": [
+ "PRIMARY",
+ "i_l_shipdate",
+ "i_l_orderkey",
+ "i_l_orderkey_quantity",
+ "i_l_quantity"
+ ],
+ "key": "PRIMARY",
+ "key_length": "4",
+ "used_key_parts": ["l_orderkey"],
+ "ref": ["dbt3_s001.orders.o_orderkey"],
+ "r_loops": 144,
+ "rows": 4,
+ "r_rows": 6.625,
+ "r_total_time_ms": "REPLACED",
+ "filtered": 0.8557,
+ "r_filtered": 1.6771,
+ "attached_condition": "lineitem.l_shipDATE between '1997-01-01' and '1997-06-30' and lineitem.l_quantity > 45"
+ }
+ }
+}
set statement optimizer_switch='rowid_filter=off' for SELECT o_orderkey, l_linenumber, l_shipdate, l_quantity, o_totalprice
FROM orders JOIN lineitem ON o_orderkey=l_orderkey
WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
@@ -555,6 +861,62 @@ EXPLAIN
}
}
}
+set statement optimizer_switch='rowid_filter=on' for ANALYZE SELECT o_orderkey, l_linenumber, l_shipdate, o_totalprice
+FROM orders JOIN lineitem ON o_orderkey=l_orderkey
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
+o_totalprice between 200000 and 230000;
+id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
+1 SIMPLE orders range PRIMARY,i_o_totalprice i_o_totalprice 9 NULL 71 71.00 100.00 100.00 Using where; Using index
+1 SIMPLE lineitem ref PRIMARY,i_l_shipdate,i_l_orderkey,i_l_orderkey_quantity PRIMARY 4 dbt3_s001.orders.o_orderkey 4 6.70 8.49 7.77 Using where
+set statement optimizer_switch='rowid_filter=on' for ANALYZE FORMAT=JSON SELECT o_orderkey, l_linenumber, l_shipdate, o_totalprice
+FROM orders JOIN lineitem ON o_orderkey=l_orderkey
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
+o_totalprice between 200000 and 230000;
+ANALYZE
+{
+ "query_block": {
+ "select_id": 1,
+ "r_loops": 1,
+ "r_total_time_ms": "REPLACED",
+ "table": {
+ "table_name": "orders",
+ "access_type": "range",
+ "possible_keys": ["PRIMARY", "i_o_totalprice"],
+ "key": "i_o_totalprice",
+ "key_length": "9",
+ "used_key_parts": ["o_totalprice"],
+ "r_loops": 1,
+ "rows": 71,
+ "r_rows": 71,
+ "r_total_time_ms": "REPLACED",
+ "filtered": 100,
+ "r_filtered": 100,
+ "attached_condition": "orders.o_totalprice between 200000 and 230000",
+ "using_index": true
+ },
+ "table": {
+ "table_name": "lineitem",
+ "access_type": "ref",
+ "possible_keys": [
+ "PRIMARY",
+ "i_l_shipdate",
+ "i_l_orderkey",
+ "i_l_orderkey_quantity"
+ ],
+ "key": "PRIMARY",
+ "key_length": "4",
+ "used_key_parts": ["l_orderkey"],
+ "ref": ["dbt3_s001.orders.o_orderkey"],
+ "r_loops": 71,
+ "rows": 4,
+ "r_rows": 6.7042,
+ "r_total_time_ms": "REPLACED",
+ "filtered": 8.4929,
+ "r_filtered": 7.7731,
+ "attached_condition": "lineitem.l_shipDATE between '1997-01-01' and '1997-06-30'"
+ }
+ }
+}
set statement optimizer_switch='rowid_filter=on' for SELECT o_orderkey, l_linenumber, l_shipdate, o_totalprice
FROM orders JOIN lineitem ON o_orderkey=l_orderkey
WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
@@ -643,6 +1005,62 @@ EXPLAIN
}
}
}
+set statement optimizer_switch='rowid_filter=off' for ANALYZE SELECT o_orderkey, l_linenumber, l_shipdate, o_totalprice
+FROM orders JOIN lineitem ON o_orderkey=l_orderkey
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
+o_totalprice between 200000 and 230000;
+id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
+1 SIMPLE orders range PRIMARY,i_o_totalprice i_o_totalprice 9 NULL 71 71.00 100.00 100.00 Using where; Using index
+1 SIMPLE lineitem ref PRIMARY,i_l_shipdate,i_l_orderkey,i_l_orderkey_quantity PRIMARY 4 dbt3_s001.orders.o_orderkey 4 6.70 8.49 7.77 Using where
+set statement optimizer_switch='rowid_filter=off' for ANALYZE FORMAT=JSON SELECT o_orderkey, l_linenumber, l_shipdate, o_totalprice
+FROM orders JOIN lineitem ON o_orderkey=l_orderkey
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
+o_totalprice between 200000 and 230000;
+ANALYZE
+{
+ "query_block": {
+ "select_id": 1,
+ "r_loops": 1,
+ "r_total_time_ms": "REPLACED",
+ "table": {
+ "table_name": "orders",
+ "access_type": "range",
+ "possible_keys": ["PRIMARY", "i_o_totalprice"],
+ "key": "i_o_totalprice",
+ "key_length": "9",
+ "used_key_parts": ["o_totalprice"],
+ "r_loops": 1,
+ "rows": 71,
+ "r_rows": 71,
+ "r_total_time_ms": "REPLACED",
+ "filtered": 100,
+ "r_filtered": 100,
+ "attached_condition": "orders.o_totalprice between 200000 and 230000",
+ "using_index": true
+ },
+ "table": {
+ "table_name": "lineitem",
+ "access_type": "ref",
+ "possible_keys": [
+ "PRIMARY",
+ "i_l_shipdate",
+ "i_l_orderkey",
+ "i_l_orderkey_quantity"
+ ],
+ "key": "PRIMARY",
+ "key_length": "4",
+ "used_key_parts": ["l_orderkey"],
+ "ref": ["dbt3_s001.orders.o_orderkey"],
+ "r_loops": 71,
+ "rows": 4,
+ "r_rows": 6.7042,
+ "r_total_time_ms": "REPLACED",
+ "filtered": 8.4929,
+ "r_filtered": 7.7731,
+ "attached_condition": "lineitem.l_shipDATE between '1997-01-01' and '1997-06-30'"
+ }
+ }
+}
set statement optimizer_switch='rowid_filter=off' for SELECT o_orderkey, l_linenumber, l_shipdate, o_totalprice
FROM orders JOIN lineitem ON o_orderkey=l_orderkey
WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
diff --git a/mysql-test/main/select.result b/mysql-test/main/select.result
index a73516f..7a71c34 100644
--- a/mysql-test/main/select.result
+++ b/mysql-test/main/select.result
@@ -3617,7 +3617,7 @@ t3.a=t2.a AND t3.c IN ('bb','ee');
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
1 SIMPLE t2 range si si 5 NULL 4 Using index condition; Using where
-1 SIMPLE t3 eq_ref|filter PRIMARY,ci PRIMARY|ci 4|5 test.t2.a 1 (30%) Using where; Using filter
+1 SIMPLE t3 eq_ref|filter PRIMARY,ci PRIMARY|ci 4|5 test.t2.a 1 (30%) Using where; Using rowid filter
EXPLAIN
SELECT t3.a FROM t1,t2,t3
WHERE t1.id = 8 AND t2.i BETWEEN t1.b AND t1.e AND
@@ -3625,7 +3625,7 @@ t3.a=t2.a AND t3.c IN ('bb','ee') ;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
1 SIMPLE t2 range si,ai si 5 NULL 4 Using index condition; Using where
-1 SIMPLE t3 eq_ref|filter PRIMARY,ci PRIMARY|ci 4|5 test.t2.a 1 (30%) Using where; Using filter
+1 SIMPLE t3 eq_ref|filter PRIMARY,ci PRIMARY|ci 4|5 test.t2.a 1 (30%) Using where; Using rowid filter
EXPLAIN
SELECT t3.a FROM t1,t2 FORCE INDEX (si),t3
WHERE t1.id = 8 AND (t2.i=t1.b OR t2.i=t1.e) AND t3.a=t2.a AND
@@ -3745,7 +3745,7 @@ EXPLAIN SELECT * FROM t1
WHERE ID_better=1 AND ID1_with_null IS NULL AND
(ID2_with_null=1 OR ID2_with_null=2);
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref|filter idx1,idx2 idx1|idx2 5|4 const 2 (1%) Using index condition; Using where; Using filter
+1 SIMPLE t1 ref|filter idx1,idx2 idx1|idx2 5|4 const 2 (1%) Using index condition; Using where; Using rowid filter
DROP TABLE t1;
CREATE TABLE t1 (a INT, ts TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, KEY ts(ts));
INSERT INTO t1 VALUES (30,"2006-01-03 23:00:00"), (31,"2006-01-03 23:00:00");
diff --git a/mysql-test/main/select_jcl6.result b/mysql-test/main/select_jcl6.result
index 3f9a9f4..8b49623 100644
--- a/mysql-test/main/select_jcl6.result
+++ b/mysql-test/main/select_jcl6.result
@@ -3628,7 +3628,7 @@ t3.a=t2.a AND t3.c IN ('bb','ee');
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
1 SIMPLE t2 range si si 5 NULL 4 Using index condition; Using where; Rowid-ordered scan
-1 SIMPLE t3 eq_ref|filter PRIMARY,ci PRIMARY|ci 4|5 test.t2.a 1 (30%) Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan; Using filter
+1 SIMPLE t3 eq_ref|filter PRIMARY,ci PRIMARY|ci 4|5 test.t2.a 1 (30%) Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan; Using rowid filter
EXPLAIN
SELECT t3.a FROM t1,t2,t3
WHERE t1.id = 8 AND t2.i BETWEEN t1.b AND t1.e AND
@@ -3636,7 +3636,7 @@ t3.a=t2.a AND t3.c IN ('bb','ee') ;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
1 SIMPLE t2 range si,ai si 5 NULL 4 Using index condition; Using where; Rowid-ordered scan
-1 SIMPLE t3 eq_ref|filter PRIMARY,ci PRIMARY|ci 4|5 test.t2.a 1 (30%) Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan; Using filter
+1 SIMPLE t3 eq_ref|filter PRIMARY,ci PRIMARY|ci 4|5 test.t2.a 1 (30%) Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan; Using rowid filter
EXPLAIN
SELECT t3.a FROM t1,t2 FORCE INDEX (si),t3
WHERE t1.id = 8 AND (t2.i=t1.b OR t2.i=t1.e) AND t3.a=t2.a AND
@@ -3756,7 +3756,7 @@ EXPLAIN SELECT * FROM t1
WHERE ID_better=1 AND ID1_with_null IS NULL AND
(ID2_with_null=1 OR ID2_with_null=2);
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref|filter idx1,idx2 idx1|idx2 5|4 const 2 (1%) Using index condition; Using where; Using filter
+1 SIMPLE t1 ref|filter idx1,idx2 idx1|idx2 5|4 const 2 (1%) Using index condition; Using where; Using rowid filter
DROP TABLE t1;
CREATE TABLE t1 (a INT, ts TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, KEY ts(ts));
INSERT INTO t1 VALUES (30,"2006-01-03 23:00:00"), (31,"2006-01-03 23:00:00");
diff --git a/mysql-test/main/select_pkeycache.result b/mysql-test/main/select_pkeycache.result
index a73516f..7a71c34 100644
--- a/mysql-test/main/select_pkeycache.result
+++ b/mysql-test/main/select_pkeycache.result
@@ -3617,7 +3617,7 @@ t3.a=t2.a AND t3.c IN ('bb','ee');
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
1 SIMPLE t2 range si si 5 NULL 4 Using index condition; Using where
-1 SIMPLE t3 eq_ref|filter PRIMARY,ci PRIMARY|ci 4|5 test.t2.a 1 (30%) Using where; Using filter
+1 SIMPLE t3 eq_ref|filter PRIMARY,ci PRIMARY|ci 4|5 test.t2.a 1 (30%) Using where; Using rowid filter
EXPLAIN
SELECT t3.a FROM t1,t2,t3
WHERE t1.id = 8 AND t2.i BETWEEN t1.b AND t1.e AND
@@ -3625,7 +3625,7 @@ t3.a=t2.a AND t3.c IN ('bb','ee') ;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
1 SIMPLE t2 range si,ai si 5 NULL 4 Using index condition; Using where
-1 SIMPLE t3 eq_ref|filter PRIMARY,ci PRIMARY|ci 4|5 test.t2.a 1 (30%) Using where; Using filter
+1 SIMPLE t3 eq_ref|filter PRIMARY,ci PRIMARY|ci 4|5 test.t2.a 1 (30%) Using where; Using rowid filter
EXPLAIN
SELECT t3.a FROM t1,t2 FORCE INDEX (si),t3
WHERE t1.id = 8 AND (t2.i=t1.b OR t2.i=t1.e) AND t3.a=t2.a AND
@@ -3745,7 +3745,7 @@ EXPLAIN SELECT * FROM t1
WHERE ID_better=1 AND ID1_with_null IS NULL AND
(ID2_with_null=1 OR ID2_with_null=2);
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref|filter idx1,idx2 idx1|idx2 5|4 const 2 (1%) Using index condition; Using where; Using filter
+1 SIMPLE t1 ref|filter idx1,idx2 idx1|idx2 5|4 const 2 (1%) Using index condition; Using where; Using rowid filter
DROP TABLE t1;
CREATE TABLE t1 (a INT, ts TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, KEY ts(ts));
INSERT INTO t1 VALUES (30,"2006-01-03 23:00:00"), (31,"2006-01-03 23:00:00");
diff --git a/mysql-test/main/stat_tables.result b/mysql-test/main/stat_tables.result
index 8cfa838..efa5334 100644
--- a/mysql-test/main/stat_tables.result
+++ b/mysql-test/main/stat_tables.result
@@ -68,7 +68,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE nation ref PRIMARY,i_n_regionkey i_n_regionkey 5 dbt3_s001.region.r_regionkey 5
1 SIMPLE supplier ref PRIMARY,i_s_nationkey i_s_nationkey 5 dbt3_s001.nation.n_nationkey 1
1 SIMPLE customer ref PRIMARY,i_c_nationkey i_c_nationkey 5 dbt3_s001.nation.n_nationkey 6
-1 SIMPLE orders ref|filter PRIMARY,i_o_orderdate,i_o_custkey i_o_custkey|i_o_orderdate 5|4 dbt3_s001.customer.c_custkey 15 (12%) Using where; Using filter
+1 SIMPLE orders ref|filter PRIMARY,i_o_orderdate,i_o_custkey i_o_custkey|i_o_orderdate 5|4 dbt3_s001.customer.c_custkey 15 (12%) Using where; Using rowid filter
1 SIMPLE lineitem ref PRIMARY,i_l_suppkey,i_l_orderkey,i_l_orderkey_quantity PRIMARY 4 dbt3_s001.orders.o_orderkey 4 Using where
select n_name, sum(l_extendedprice * (1 - l_discount)) as revenue
from customer, orders, lineitem, supplier, nation, region
@@ -175,7 +175,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE nation ref PRIMARY,i_n_regionkey i_n_regionkey 5 dbt3_s001.region.r_regionkey 5
1 SIMPLE supplier ref PRIMARY,i_s_nationkey i_s_nationkey 5 dbt3_s001.nation.n_nationkey 1
1 SIMPLE customer ref PRIMARY,i_c_nationkey i_c_nationkey 5 dbt3_s001.nation.n_nationkey 6
-1 SIMPLE orders ref|filter PRIMARY,i_o_orderdate,i_o_custkey i_o_custkey|i_o_orderdate 5|4 dbt3_s001.customer.c_custkey 15 (12%) Using where; Using filter
+1 SIMPLE orders ref|filter PRIMARY,i_o_orderdate,i_o_custkey i_o_custkey|i_o_orderdate 5|4 dbt3_s001.customer.c_custkey 15 (12%) Using where; Using rowid filter
1 SIMPLE lineitem ref PRIMARY,i_l_suppkey,i_l_orderkey,i_l_orderkey_quantity PRIMARY 4 dbt3_s001.orders.o_orderkey 4 Using where
select n_name, sum(l_extendedprice * (1 - l_discount)) as revenue
from customer, orders, lineitem, supplier, nation, region
@@ -332,7 +332,7 @@ and o_orderkey=l_orderkey and p_partkey=l_partkey;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE orders ref PRIMARY,i_o_orderdate i_o_orderdate 4 const 1
1 SIMPLE lineitem ref PRIMARY,i_l_suppkey_partkey,i_l_partkey,i_l_orderkey,i_l_orderkey_quantity PRIMARY 4 dbt3_s001.orders.o_orderkey 4 Using where
-1 SIMPLE part eq_ref|filter PRIMARY,i_p_retailprice PRIMARY|i_p_retailprice 4|9 dbt3_s001.lineitem.l_partkey 1 (1%) Using where; Using filter
+1 SIMPLE part eq_ref|filter PRIMARY,i_p_retailprice PRIMARY|i_p_retailprice 4|9 dbt3_s001.lineitem.l_partkey 1 (1%) Using where; Using rowid filter
select o_orderkey, p_partkey
from part, lineitem, orders
where p_retailprice > 1100 and o_orderdate='1997-01-01'
diff --git a/mysql-test/main/stat_tables_innodb.result b/mysql-test/main/stat_tables_innodb.result
index feb7a4c..c49c925 100644
--- a/mysql-test/main/stat_tables_innodb.result
+++ b/mysql-test/main/stat_tables_innodb.result
@@ -76,7 +76,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE nation ref PRIMARY,i_n_regionkey i_n_regionkey 5 dbt3_s001.region.r_regionkey 5
1 SIMPLE supplier ref PRIMARY,i_s_nationkey i_s_nationkey 5 dbt3_s001.nation.n_nationkey 1 Using index
1 SIMPLE customer ref PRIMARY,i_c_nationkey i_c_nationkey 5 dbt3_s001.nation.n_nationkey 6 Using index
-1 SIMPLE orders ref|filter PRIMARY,i_o_orderdate,i_o_custkey i_o_custkey|i_o_orderdate 5|4 dbt3_s001.customer.c_custkey 15 (14%) Using where; Using filter
+1 SIMPLE orders ref|filter PRIMARY,i_o_orderdate,i_o_custkey i_o_custkey|i_o_orderdate 5|4 dbt3_s001.customer.c_custkey 15 (14%) Using where; Using rowid filter
1 SIMPLE lineitem ref PRIMARY,i_l_suppkey,i_l_orderkey,i_l_orderkey_quantity PRIMARY 4 dbt3_s001.orders.o_orderkey 4 Using where
select n_name, sum(l_extendedprice * (1 - l_discount)) as revenue
from customer, orders, lineitem, supplier, nation, region
@@ -207,7 +207,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE nation ref PRIMARY,i_n_regionkey i_n_regionkey 5 dbt3_s001.region.r_regionkey 5
1 SIMPLE supplier ref PRIMARY,i_s_nationkey i_s_nationkey 5 dbt3_s001.nation.n_nationkey 1 Using index
1 SIMPLE customer ref PRIMARY,i_c_nationkey i_c_nationkey 5 dbt3_s001.nation.n_nationkey 6 Using index
-1 SIMPLE orders ref|filter PRIMARY,i_o_orderdate,i_o_custkey i_o_custkey|i_o_orderdate 5|4 dbt3_s001.customer.c_custkey 15 (14%) Using where; Using filter
+1 SIMPLE orders ref|filter PRIMARY,i_o_orderdate,i_o_custkey i_o_custkey|i_o_orderdate 5|4 dbt3_s001.customer.c_custkey 15 (14%) Using where; Using rowid filter
1 SIMPLE lineitem ref PRIMARY,i_l_suppkey,i_l_orderkey,i_l_orderkey_quantity PRIMARY 4 dbt3_s001.orders.o_orderkey 4 Using where
select n_name, sum(l_extendedprice * (1 - l_discount)) as revenue
from customer, orders, lineitem, supplier, nation, region
diff --git a/mysql-test/suite/sys_vars/r/sysvars_server_embedded,32bit.rdiff b/mysql-test/suite/sys_vars/r/sysvars_server_embedded,32bit.rdiff
index 5d47090..e10b2c5 100644
--- a/mysql-test/suite/sys_vars/r/sysvars_server_embedded,32bit.rdiff
+++ b/mysql-test/suite/sys_vars/r/sysvars_server_embedded,32bit.rdiff
@@ -507,6 +507,15 @@
VARIABLE_COMMENT Maximum stored procedure recursion depth
NUMERIC_MIN_VALUE 0
NUMERIC_MAX_VALUE 255
+@@ -2261,7 +2261,7 @@
+ VARIABLE_TYPE BIGINT UNSIGNED
+ VARIABLE_COMMENT The maximum size of the container of a rowid filter
+ NUMERIC_MIN_VALUE 1024
+-NUMERIC_MAX_VALUE 18446744073709551615
++NUMERIC_MAX_VALUE 4294967295
+ NUMERIC_BLOCK_SIZE 1
+ ENUM_VALUE_LIST NULL
+ READ_ONLY NO
@@ -2284,7 +2284,7 @@
GLOBAL_VALUE_ORIGIN COMPILE-TIME
DEFAULT_VALUE 32
diff --git a/sql/handler.cc b/sql/handler.cc
index 932797a..b1a2719 100644
--- a/sql/handler.cc
+++ b/sql/handler.cc
@@ -2826,7 +2826,7 @@ double handler::keyread_time(uint index, uint ranges, ha_rows rows)
size_t len= table->key_info[index].key_length + ref_length;
if (index == table->s->primary_key && table->file->primary_key_is_clustered())
len= table->s->stored_rec_length;
- uint keys_per_block= (stats.block_size/2.0/len+1);
+ uint keys_per_block= (uint) (stats.block_size/2.0/len+1);
ulonglong blocks= !rows ? 0 : (rows-1) / keys_per_block + 1;
double cost= (double)rows*len/(stats.block_size+1)*IDX_BLOCK_COPY_COST;
if (ranges)
diff --git a/sql/multi_range_read.cc b/sql/multi_range_read.cc
index cab278f..12f72f5 100644
--- a/sql/multi_range_read.cc
+++ b/sql/multi_range_read.cc
@@ -20,7 +20,7 @@
#include "key.h"
#include "sql_statistics.h"
-static ulonglong key_block_no(handler *h, uint keyno, uint keyentry_pos)
+static ulonglong key_block_no(handler *h, uint keyno, ha_rows keyentry_pos)
{
return (ulonglong) (h->keyread_time(keyno, 1, keyentry_pos + 1) -
h->keyread_time(keyno, 0, keyentry_pos + 1) + 0.5) + 1;
@@ -217,7 +217,9 @@ handler::multi_range_read_info_const(uint keyno, RANGE_SEQ_IF *seq,
}
else
{
- cost->io_count= read_time(keyno, total_touched_blocks, (uint) total_rows);
+ cost->io_count= read_time(keyno,
+ (uint)total_touched_blocks,
+ (uint) total_rows);
cost->cpu_cost= (double) total_rows / TIME_FOR_COMPARE + 0.01;
}
}
diff --git a/sql/rowid_filter.cc b/sql/rowid_filter.cc
index b2349d2..c899236 100644
--- a/sql/rowid_filter.cc
+++ b/sql/rowid_filter.cc
@@ -64,7 +64,7 @@ void Range_rowid_filter_cost_info::init(Rowid_filter_container_type cont_type,
container_type= cont_type;
table= tab;
key_no= idx;
- est_elements= table->quick_rows[key_no];
+ est_elements= (ulonglong) (table->quick_rows[key_no]);
b= build_cost(container_type);
selectivity= est_elements/((double) table->stat_records());
a= avg_access_and_eval_gain_per_row(container_type);
@@ -108,7 +108,8 @@ Rowid_filter_container *Range_rowid_filter_cost_info::create_container()
switch (container_type) {
case SORTED_ARRAY_CONTAINER:
- res= new (thd->mem_root) Rowid_filter_sorted_array(est_elements, elem_sz);
+ res= new (thd->mem_root) Rowid_filter_sorted_array((uint) est_elements,
+ elem_sz);
break;
default:
DBUG_ASSERT(0);
@@ -245,7 +246,7 @@ void TABLE::prune_range_rowid_filters()
Return maximum number of elements that a container allowed to have
*/
-static uint
+static ulonglong
get_max_range_rowid_filter_elems_for_table(
THD *thd, TABLE *tab,
Rowid_filter_container_type cont_type)
diff --git a/sql/rowid_filter.h b/sql/rowid_filter.h
index de50fd3..ddeb13a 100644
--- a/sql/rowid_filter.h
+++ b/sql/rowid_filter.h
@@ -383,7 +383,7 @@ class Range_rowid_filter_cost_info : public Sql_alloc
/* The table for which the range filter is to be built (if needed) */
TABLE *table;
/* Estimated number of elements in the filter */
- double est_elements;
+ ulonglong est_elements;
/* The cost of building the range filter */
double b;
/*
diff --git a/sql/sql_explain.cc b/sql/sql_explain.cc
index 0c2f493..fbec103 100644
--- a/sql/sql_explain.cc
+++ b/sql/sql_explain.cc
@@ -1313,7 +1313,8 @@ int Explain_table_access::print_explain(select_result_sink *output, uint8 explai
if (rowid_filter)
{
rows_str.append(" (");
- rows_str.append_ulonglong(round(rowid_filter->selectivity * 100.0));
+ rows_str.append_ulonglong((ulonglong) (round(rowid_filter->selectivity *
+ 100.0)));
rows_str.append("%)");
}
item_list.push_back(new (mem_root)
1
0
revision-id: 4a143241ee2cc0c14a7cde27ed9cde1a64dabf03 ()
parent(s): 5e22a73fa41a9bc1f83930c6cc749e08668448ee
author: Sergei Petrunia
committer: Sergei Petrunia
timestamp: 2019-02-07 01:49:18 +0300
message:
Fix the build on RHEL/OL 7.5 fix
Applied patch from Mikhail Sinyavin
---
storage/rocksdb/build_rocksdb.cmake | 2 ++
1 file changed, 2 insertions(+)
diff --git a/storage/rocksdb/build_rocksdb.cmake b/storage/rocksdb/build_rocksdb.cmake
index 008f25177a2..8f4bbeb6918 100644
--- a/storage/rocksdb/build_rocksdb.cmake
+++ b/storage/rocksdb/build_rocksdb.cmake
@@ -108,6 +108,8 @@ message(STATUS " AWS_INSTALL_PREFIX=${AWS_INSTALL_PREFIX}")
# Discussion here might be related: https://github.com/aws/aws-sdk-cpp/issues/1020
#
set(CMAKE_PREFIX_PATH ${AWS_INSTALL_PREFIX}/lib ${AWS_INSTALL_PREFIX}/lib/cmake ${CMAKE_PREFIX_PATH})
+set(CMAKE_PREFIX_PATH ${AWS_INSTALL_PREFIX}/lib64 ${AWS_INSTALL_PREFIX}/lib64/cmake ${CMAKE_PREFIX_PATH})
+
message(STATUS " Adjusted CMAKE_PREFIX_PATH to search for AWS SDK parts: ${CMAKE_PREFIX_PATH}")
find_package(AWSSDK REQUIRED COMPONENTS s3 kinesis PATHS ${WITH_AWS})
1
0

06 Feb '19
revision-id: 3b0535ff1d58fa18360a376ec30faef8c2965bcc (mariadb-10.3.6-106-g3b0535f)
parent(s): e299ae5b0786aa9348e422f4271fb344d51f60fa
author: Igor Babaev
committer: Igor Babaev
timestamp: 2019-02-06 12:57:30 -0800
message:
MDEV-16188 Post merge fixes:fixed warnings on Windows
---
mysql-test/suite/sys_vars/r/sysvars_server_embedded,32bit.rdiff | 9 +++++++++
sql/handler.cc | 2 +-
sql/multi_range_read.cc | 6 ++++--
sql/rowid_filter.cc | 7 ++++---
sql/rowid_filter.h | 2 +-
sql/sql_explain.cc | 3 ++-
6 files changed, 21 insertions(+), 8 deletions(-)
diff --git a/mysql-test/suite/sys_vars/r/sysvars_server_embedded,32bit.rdiff b/mysql-test/suite/sys_vars/r/sysvars_server_embedded,32bit.rdiff
index 5d47090..e10b2c5 100644
--- a/mysql-test/suite/sys_vars/r/sysvars_server_embedded,32bit.rdiff
+++ b/mysql-test/suite/sys_vars/r/sysvars_server_embedded,32bit.rdiff
@@ -507,6 +507,15 @@
VARIABLE_COMMENT Maximum stored procedure recursion depth
NUMERIC_MIN_VALUE 0
NUMERIC_MAX_VALUE 255
+@@ -2261,7 +2261,7 @@
+ VARIABLE_TYPE BIGINT UNSIGNED
+ VARIABLE_COMMENT The maximum size of the container of a rowid filter
+ NUMERIC_MIN_VALUE 1024
+-NUMERIC_MAX_VALUE 18446744073709551615
++NUMERIC_MAX_VALUE 4294967295
+ NUMERIC_BLOCK_SIZE 1
+ ENUM_VALUE_LIST NULL
+ READ_ONLY NO
@@ -2284,7 +2284,7 @@
GLOBAL_VALUE_ORIGIN COMPILE-TIME
DEFAULT_VALUE 32
diff --git a/sql/handler.cc b/sql/handler.cc
index 932797a..b1a2719 100644
--- a/sql/handler.cc
+++ b/sql/handler.cc
@@ -2826,7 +2826,7 @@ double handler::keyread_time(uint index, uint ranges, ha_rows rows)
size_t len= table->key_info[index].key_length + ref_length;
if (index == table->s->primary_key && table->file->primary_key_is_clustered())
len= table->s->stored_rec_length;
- uint keys_per_block= (stats.block_size/2.0/len+1);
+ uint keys_per_block= (uint) (stats.block_size/2.0/len+1);
ulonglong blocks= !rows ? 0 : (rows-1) / keys_per_block + 1;
double cost= (double)rows*len/(stats.block_size+1)*IDX_BLOCK_COPY_COST;
if (ranges)
diff --git a/sql/multi_range_read.cc b/sql/multi_range_read.cc
index cab278f..12f72f5 100644
--- a/sql/multi_range_read.cc
+++ b/sql/multi_range_read.cc
@@ -20,7 +20,7 @@
#include "key.h"
#include "sql_statistics.h"
-static ulonglong key_block_no(handler *h, uint keyno, uint keyentry_pos)
+static ulonglong key_block_no(handler *h, uint keyno, ha_rows keyentry_pos)
{
return (ulonglong) (h->keyread_time(keyno, 1, keyentry_pos + 1) -
h->keyread_time(keyno, 0, keyentry_pos + 1) + 0.5) + 1;
@@ -217,7 +217,9 @@ handler::multi_range_read_info_const(uint keyno, RANGE_SEQ_IF *seq,
}
else
{
- cost->io_count= read_time(keyno, total_touched_blocks, (uint) total_rows);
+ cost->io_count= read_time(keyno,
+ (uint)total_touched_blocks,
+ (uint) total_rows);
cost->cpu_cost= (double) total_rows / TIME_FOR_COMPARE + 0.01;
}
}
diff --git a/sql/rowid_filter.cc b/sql/rowid_filter.cc
index 4348eea..a7cf09b 100644
--- a/sql/rowid_filter.cc
+++ b/sql/rowid_filter.cc
@@ -64,7 +64,7 @@ void Range_rowid_filter_cost_info::init(Rowid_filter_container_type cont_type,
container_type= cont_type;
table= tab;
key_no= idx;
- est_elements= table->quick_rows[key_no];
+ est_elements= (ulonglong) (table->quick_rows[key_no]);
b= build_cost(container_type);
selectivity= est_elements/((double) table->stat_records());
a= avg_access_and_eval_gain_per_row(container_type);
@@ -108,7 +108,8 @@ Rowid_filter_container *Range_rowid_filter_cost_info::create_container()
switch (container_type) {
case SORTED_ARRAY_CONTAINER:
- res= new (thd->mem_root) Rowid_filter_sorted_array(est_elements, elem_sz);
+ res= new (thd->mem_root) Rowid_filter_sorted_array((uint) est_elements,
+ elem_sz);
break;
default:
DBUG_ASSERT(0);
@@ -245,7 +246,7 @@ void TABLE::prune_range_rowid_filters()
Return maximum number of elements that a container allowed to have
*/
-static uint
+static ulonglong
get_max_range_rowid_filter_elems_for_table(
THD *thd, TABLE *tab,
Rowid_filter_container_type cont_type)
diff --git a/sql/rowid_filter.h b/sql/rowid_filter.h
index 3cc2c31..9f43073 100644
--- a/sql/rowid_filter.h
+++ b/sql/rowid_filter.h
@@ -373,7 +373,7 @@ class Range_rowid_filter_cost_info : public Sql_alloc
/* The table for which the range filter is to be built (if needed) */
TABLE *table;
/* Estimated number of elements in the filter */
- double est_elements;
+ ulonglong est_elements;
/* The cost of building the range filter */
double b;
/*
diff --git a/sql/sql_explain.cc b/sql/sql_explain.cc
index c7c6f15..f32a9c3 100644
--- a/sql/sql_explain.cc
+++ b/sql/sql_explain.cc
@@ -1313,7 +1313,8 @@ int Explain_table_access::print_explain(select_result_sink *output, uint8 explai
if (rowid_filter)
{
rows_str.append(" (");
- rows_str.append_ulonglong(round(rowid_filter->selectivity * 100.0));
+ rows_str.append_ulonglong((ulonglong) (round(rowid_filter->selectivity *
+ 100.0)));
rows_str.append("%)");
}
item_list.push_back(new (mem_root)
1
0

[Commits] e299ae5: MDEV-16188 Post merge fixes: fixed an obvious bug in oqgraph code.
by IgorBabaev 06 Feb '19
by IgorBabaev 06 Feb '19
06 Feb '19
revision-id: e299ae5b0786aa9348e422f4271fb344d51f60fa (mariadb-10.3.6-105-ge299ae5)
parent(s): e09d8f66e26895eecc2ef77ca9ebbcff13fc6741
author: Igor Babaev
committer: Igor Babaev
timestamp: 2019-02-06 11:29:02 -0800
message:
MDEV-16188 Post merge fixes: fixed an obvious bug in oqgraph code.
Also pushed new results for regression_mdev6282.test.
(the cause of difference should be investigated).
---
storage/oqgraph/ha_oqgraph.cc | 2 +-
storage/oqgraph/mysql-test/oqgraph/regression_mdev6282.result | 2 --
2 files changed, 1 insertion(+), 3 deletions(-)
diff --git a/storage/oqgraph/ha_oqgraph.cc b/storage/oqgraph/ha_oqgraph.cc
index bd2224e..fcb1896 100644
--- a/storage/oqgraph/ha_oqgraph.cc
+++ b/storage/oqgraph/ha_oqgraph.cc
@@ -1211,7 +1211,7 @@ ha_rows ha_oqgraph::records_in_range(uint inx, key_range *min_key,
min_key->flag != HA_READ_KEY_EXACT ||
max_key->flag != HA_READ_AFTER_KEY)
{
- if (min_key->length == key->key_part[0].store_length && !key->key_part[0].field->is_null()) /* ensure select * from x where latch is null is consistent with no latch */
+ if (min_key && min_key->length == key->key_part[0].store_length && !key->key_part[0].field->is_null()) /* ensure select * from x where latch is null is consistent with no latch */
{
// If latch is not null and equals 0, return # nodes
diff --git a/storage/oqgraph/mysql-test/oqgraph/regression_mdev6282.result b/storage/oqgraph/mysql-test/oqgraph/regression_mdev6282.result
index 3ef61cc..e0d9b3e 100644
--- a/storage/oqgraph/mysql-test/oqgraph/regression_mdev6282.result
+++ b/storage/oqgraph/mysql-test/oqgraph/regression_mdev6282.result
@@ -28,14 +28,12 @@ SELECT `db`.`version`, `db`.`nodeID`
FROM `version_history` AS `v` INNER JOIN `db_history` AS `db` ON `db`.`nodeID` = `v`.`linkid`
WHERE `latch` = 'breadth_first' AND `origid` = '1' ORDER BY `weight` DESC LIMIT 1;
version nodeID
-0.0.3 3
disconnect con1;
connect con2,localhost,root,,test;
SELECT `db`.`version`, `db`.`nodeID`
FROM `version_history` AS `v` INNER JOIN `db_history` AS `db` ON `db`.`nodeID` = `v`.`linkid`
WHERE `latch` = 'breadth_first' AND `origid` = '1' ORDER BY `weight` DESC LIMIT 1;
version nodeID
-0.0.3 3
disconnect con2;
connect con3,localhost,root,,test;
DROP TABLE version_history;
1
0

[Commits] f6878cc0cfa: MDEV-18144: ANALYZE for statement support for PK filters
by Galina 06 Feb '19
by Galina 06 Feb '19
06 Feb '19
revision-id: f6878cc0cfada28b9d3cf2abd12cab9df5b80b9a (mariadb-10.3.6-105-gf6878cc0cfa)
parent(s): e09d8f66e26895eecc2ef77ca9ebbcff13fc6741
author: Galina Shalygina
committer: Galina Shalygina
timestamp: 2019-02-06 20:54:41 +0300
message:
MDEV-18144: ANALYZE for statement support for PK filters
ANALYZE and ANALYZE FORMAT=JSON structures are changed in the way that they
show additional information when rowid filter is used:
- r_selectivity_pct - the observed filter selectivity
- r_buffer_size - the size of the rowid filter container buffer
- r_filling_time_ms - how long it took to fill rowid filter container
New class Rowid_filter_tracker was added. This class is needed to collect data
about how rowid filter is executed.
---
mysql-test/include/analyze-format.inc | 2 +-
mysql-test/main/rowid_filter.result | 472 +++++++++++++++++++++++++++++++++-
mysql-test/main/rowid_filter.test | 24 ++
sql/handler.h | 1 +
sql/rowid_filter.cc | 3 +
sql/rowid_filter.h | 12 +-
sql/sql_analyze_stmt.h | 79 ++++++
sql/sql_class.cc | 2 +-
sql/sql_explain.cc | 34 ++-
sql/sql_explain.h | 3 +
sql/sql_select.cc | 18 +-
11 files changed, 636 insertions(+), 14 deletions(-)
diff --git a/mysql-test/include/analyze-format.inc b/mysql-test/include/analyze-format.inc
index 65e61b81582..08006e26c79 100644
--- a/mysql-test/include/analyze-format.inc
+++ b/mysql-test/include/analyze-format.inc
@@ -1,3 +1,3 @@
# The time on ANALYSE FORMAT=JSON is rather variable
---replace_regex /("(r_total_time_ms|r_buffer_size)": )[^, \n]*/\1"REPLACED"/
+--replace_regex /("(r_total_time_ms|r_buffer_size|r_filling_time_ms)": )[^, \n]*/\1"REPLACED"/
diff --git a/mysql-test/main/rowid_filter.result b/mysql-test/main/rowid_filter.result
index 9420d7209a3..4ad83adcadb 100644
--- a/mysql-test/main/rowid_filter.result
+++ b/mysql-test/main/rowid_filter.result
@@ -58,7 +58,7 @@ set statement optimizer_switch='rowid_filter=on' for EXPLAIN SELECT l_orderkey,
WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
l_quantity > 45;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE lineitem range|filter i_l_shipdate,i_l_quantity i_l_shipdate|i_l_quantity 4|9 NULL 509 (11%) Using index condition; Using where; Using filter
+1 SIMPLE lineitem range|filter i_l_shipdate,i_l_quantity i_l_shipdate|i_l_quantity 4|9 NULL 509 (11%) Using index condition; Using where; Using rowid filter
set statement optimizer_switch='rowid_filter=on' for EXPLAIN FORMAT=JSON SELECT l_orderkey, l_linenumber, l_shipdate, l_quantity FROM lineitem
WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
l_quantity > 45;
@@ -88,6 +88,50 @@ EXPLAIN
}
}
}
+set statement optimizer_switch='rowid_filter=on' for ANALYZE SELECT l_orderkey, l_linenumber, l_shipdate, l_quantity FROM lineitem
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
+l_quantity > 45;
+id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
+1 SIMPLE lineitem range|filter i_l_shipdate,i_l_quantity i_l_shipdate|i_l_quantity 4|9 NULL 509 (11%) 60.00 (3%) 11.02 100.00 Using index condition; Using where; Using rowid filter
+set statement optimizer_switch='rowid_filter=on' for ANALYZE FORMAT=JSON SELECT l_orderkey, l_linenumber, l_shipdate, l_quantity FROM lineitem
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
+l_quantity > 45;
+ANALYZE
+{
+ "query_block": {
+ "select_id": 1,
+ "r_loops": 1,
+ "r_total_time_ms": "REPLACED",
+ "table": {
+ "table_name": "lineitem",
+ "access_type": "range",
+ "possible_keys": ["i_l_shipdate", "i_l_quantity"],
+ "key": "i_l_shipdate",
+ "key_length": "4",
+ "used_key_parts": ["l_shipDATE"],
+ "rowid_filter": {
+ "range": {
+ "key": "i_l_quantity",
+ "used_key_parts": ["l_quantity"]
+ },
+ "rows": 662,
+ "selectivity_pct": 11.024,
+ "r_rows": 605,
+ "r_selectivity_pct": 3.6855,
+ "r_buffer_size": "REPLACED",
+ "r_filling_time_ms": "REPLACED"
+ },
+ "r_loops": 1,
+ "rows": 509,
+ "r_rows": 60,
+ "r_total_time_ms": "REPLACED",
+ "filtered": 11.024,
+ "r_filtered": 100,
+ "index_condition": "lineitem.l_shipDATE between '1997-01-01' and '1997-06-30'",
+ "attached_condition": "lineitem.l_quantity > 45"
+ }
+ }
+}
set statement optimizer_switch='rowid_filter=on' for SELECT l_orderkey, l_linenumber, l_shipdate, l_quantity FROM lineitem
WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
l_quantity > 45;
@@ -178,6 +222,38 @@ EXPLAIN
}
}
}
+set statement optimizer_switch='rowid_filter=off' for ANALYZE SELECT l_orderkey, l_linenumber, l_shipdate, l_quantity FROM lineitem
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
+l_quantity > 45;
+id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
+1 SIMPLE lineitem range i_l_shipdate,i_l_quantity i_l_shipdate 4 NULL 509 510.00 11.02 11.76 Using index condition; Using where
+set statement optimizer_switch='rowid_filter=off' for ANALYZE FORMAT=JSON SELECT l_orderkey, l_linenumber, l_shipdate, l_quantity FROM lineitem
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
+l_quantity > 45;
+ANALYZE
+{
+ "query_block": {
+ "select_id": 1,
+ "r_loops": 1,
+ "r_total_time_ms": "REPLACED",
+ "table": {
+ "table_name": "lineitem",
+ "access_type": "range",
+ "possible_keys": ["i_l_shipdate", "i_l_quantity"],
+ "key": "i_l_shipdate",
+ "key_length": "4",
+ "used_key_parts": ["l_shipDATE"],
+ "r_loops": 1,
+ "rows": 509,
+ "r_rows": 510,
+ "r_total_time_ms": "REPLACED",
+ "filtered": 11.024,
+ "r_filtered": 11.765,
+ "index_condition": "lineitem.l_shipDATE between '1997-01-01' and '1997-06-30'",
+ "attached_condition": "lineitem.l_quantity > 45"
+ }
+ }
+}
set statement optimizer_switch='rowid_filter=off' for SELECT l_orderkey, l_linenumber, l_shipdate, l_quantity FROM lineitem
WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
l_quantity > 45;
@@ -248,7 +324,7 @@ WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-01-31' AND
o_totalprice between 200000 and 230000;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE lineitem range PRIMARY,i_l_shipdate,i_l_orderkey,i_l_orderkey_quantity i_l_shipdate 4 NULL 98 Using index condition
-1 SIMPLE orders eq_ref|filter PRIMARY,i_o_totalprice PRIMARY|i_o_totalprice 4|9 dbt3_s001.lineitem.l_orderkey 1 (5%) Using where; Using filter
+1 SIMPLE orders eq_ref|filter PRIMARY,i_o_totalprice PRIMARY|i_o_totalprice 4|9 dbt3_s001.lineitem.l_orderkey 1 (5%) Using where; Using rowid filter
set statement optimizer_switch='rowid_filter=on' for EXPLAIN FORMAT=JSON SELECT o_orderkey, l_linenumber, l_shipdate, o_totalprice
FROM orders JOIN lineitem ON o_orderkey=l_orderkey
WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-01-31' AND
@@ -295,6 +371,73 @@ EXPLAIN
}
}
}
+set statement optimizer_switch='rowid_filter=on' for ANALYZE SELECT o_orderkey, l_linenumber, l_shipdate, o_totalprice
+FROM orders JOIN lineitem ON o_orderkey=l_orderkey
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-01-31' AND
+o_totalprice between 200000 and 230000;
+id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
+1 SIMPLE lineitem range PRIMARY,i_l_shipdate,i_l_orderkey,i_l_orderkey_quantity i_l_shipdate 4 NULL 98 98.00 100.00 100.00 Using index condition
+1 SIMPLE orders eq_ref|filter PRIMARY,i_o_totalprice PRIMARY|i_o_totalprice 4|9 dbt3_s001.lineitem.l_orderkey 1 (5%) 0.11 (10%) 5.40 100.00 Using where; Using rowid filter
+set statement optimizer_switch='rowid_filter=on' for ANALYZE FORMAT=JSON SELECT o_orderkey, l_linenumber, l_shipdate, o_totalprice
+FROM orders JOIN lineitem ON o_orderkey=l_orderkey
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-01-31' AND
+o_totalprice between 200000 and 230000;
+ANALYZE
+{
+ "query_block": {
+ "select_id": 1,
+ "r_loops": 1,
+ "r_total_time_ms": "REPLACED",
+ "table": {
+ "table_name": "lineitem",
+ "access_type": "range",
+ "possible_keys": [
+ "PRIMARY",
+ "i_l_shipdate",
+ "i_l_orderkey",
+ "i_l_orderkey_quantity"
+ ],
+ "key": "i_l_shipdate",
+ "key_length": "4",
+ "used_key_parts": ["l_shipDATE"],
+ "r_loops": 1,
+ "rows": 98,
+ "r_rows": 98,
+ "r_total_time_ms": "REPLACED",
+ "filtered": 100,
+ "r_filtered": 100,
+ "index_condition": "lineitem.l_shipDATE between '1997-01-01' and '1997-01-31'"
+ },
+ "table": {
+ "table_name": "orders",
+ "access_type": "eq_ref",
+ "possible_keys": ["PRIMARY", "i_o_totalprice"],
+ "key": "PRIMARY",
+ "key_length": "4",
+ "used_key_parts": ["o_orderkey"],
+ "ref": ["dbt3_s001.lineitem.l_orderkey"],
+ "rowid_filter": {
+ "range": {
+ "key": "i_o_totalprice",
+ "used_key_parts": ["o_totalprice"]
+ },
+ "rows": 81,
+ "selectivity_pct": 5.4,
+ "r_rows": 71,
+ "r_selectivity_pct": 10.417,
+ "r_buffer_size": "REPLACED",
+ "r_filling_time_ms": "REPLACED"
+ },
+ "r_loops": 98,
+ "rows": 1,
+ "r_rows": 0.1122,
+ "r_total_time_ms": "REPLACED",
+ "filtered": 5.4,
+ "r_filtered": 100,
+ "attached_condition": "orders.o_totalprice between 200000 and 230000"
+ }
+ }
+}
set statement optimizer_switch='rowid_filter=on' for SELECT o_orderkey, l_linenumber, l_shipdate, o_totalprice
FROM orders JOIN lineitem ON o_orderkey=l_orderkey
WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-01-31' AND
@@ -356,6 +499,61 @@ EXPLAIN
}
}
}
+set statement optimizer_switch='rowid_filter=off' for ANALYZE SELECT o_orderkey, l_linenumber, l_shipdate, o_totalprice
+FROM orders JOIN lineitem ON o_orderkey=l_orderkey
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-01-31' AND
+o_totalprice between 200000 and 230000;
+id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
+1 SIMPLE lineitem range PRIMARY,i_l_shipdate,i_l_orderkey,i_l_orderkey_quantity i_l_shipdate 4 NULL 98 98.00 100.00 100.00 Using index condition
+1 SIMPLE orders eq_ref PRIMARY,i_o_totalprice PRIMARY 4 dbt3_s001.lineitem.l_orderkey 1 1.00 5.40 11.22 Using where
+set statement optimizer_switch='rowid_filter=off' for ANALYZE FORMAT=JSON SELECT o_orderkey, l_linenumber, l_shipdate, o_totalprice
+FROM orders JOIN lineitem ON o_orderkey=l_orderkey
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-01-31' AND
+o_totalprice between 200000 and 230000;
+ANALYZE
+{
+ "query_block": {
+ "select_id": 1,
+ "r_loops": 1,
+ "r_total_time_ms": "REPLACED",
+ "table": {
+ "table_name": "lineitem",
+ "access_type": "range",
+ "possible_keys": [
+ "PRIMARY",
+ "i_l_shipdate",
+ "i_l_orderkey",
+ "i_l_orderkey_quantity"
+ ],
+ "key": "i_l_shipdate",
+ "key_length": "4",
+ "used_key_parts": ["l_shipDATE"],
+ "r_loops": 1,
+ "rows": 98,
+ "r_rows": 98,
+ "r_total_time_ms": "REPLACED",
+ "filtered": 100,
+ "r_filtered": 100,
+ "index_condition": "lineitem.l_shipDATE between '1997-01-01' and '1997-01-31'"
+ },
+ "table": {
+ "table_name": "orders",
+ "access_type": "eq_ref",
+ "possible_keys": ["PRIMARY", "i_o_totalprice"],
+ "key": "PRIMARY",
+ "key_length": "4",
+ "used_key_parts": ["o_orderkey"],
+ "ref": ["dbt3_s001.lineitem.l_orderkey"],
+ "r_loops": 98,
+ "rows": 1,
+ "r_rows": 1,
+ "r_total_time_ms": "REPLACED",
+ "filtered": 5.4,
+ "r_filtered": 11.224,
+ "attached_condition": "orders.o_totalprice between 200000 and 230000"
+ }
+ }
+}
set statement optimizer_switch='rowid_filter=off' for SELECT o_orderkey, l_linenumber, l_shipdate, o_totalprice
FROM orders JOIN lineitem ON o_orderkey=l_orderkey
WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-01-31' AND
@@ -378,8 +576,8 @@ WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
l_quantity > 45 AND
o_totalprice between 180000 and 230000;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE lineitem range|filter PRIMARY,i_l_shipdate,i_l_orderkey,i_l_orderkey_quantity,i_l_quantity i_l_shipdate|i_l_quantity 4|9 NULL 509 (11%) Using index condition; Using where; Using filter
-1 SIMPLE orders eq_ref|filter PRIMARY,i_o_totalprice PRIMARY|i_o_totalprice 4|9 dbt3_s001.lineitem.l_orderkey 1 (10%) Using where; Using filter
+1 SIMPLE lineitem range|filter PRIMARY,i_l_shipdate,i_l_orderkey,i_l_orderkey_quantity,i_l_quantity i_l_shipdate|i_l_quantity 4|9 NULL 509 (11%) Using index condition; Using where; Using rowid filter
+1 SIMPLE orders eq_ref|filter PRIMARY,i_o_totalprice PRIMARY|i_o_totalprice 4|9 dbt3_s001.lineitem.l_orderkey 1 (10%) Using where; Using rowid filter
set statement optimizer_switch='rowid_filter=on' for EXPLAIN FORMAT=JSON SELECT o_orderkey, l_linenumber, l_shipdate, l_quantity, o_totalprice
FROM orders JOIN lineitem ON o_orderkey=l_orderkey
WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
@@ -437,6 +635,89 @@ EXPLAIN
}
}
}
+set statement optimizer_switch='rowid_filter=on' for ANALYZE SELECT o_orderkey, l_linenumber, l_shipdate, l_quantity, o_totalprice
+FROM orders JOIN lineitem ON o_orderkey=l_orderkey
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
+l_quantity > 45 AND
+o_totalprice between 180000 and 230000;
+id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
+1 SIMPLE lineitem range|filter PRIMARY,i_l_shipdate,i_l_orderkey,i_l_orderkey_quantity,i_l_quantity i_l_shipdate|i_l_quantity 4|9 NULL 509 (11%) 60.00 (3%) 11.02 100.00 Using index condition; Using where; Using rowid filter
+1 SIMPLE orders eq_ref|filter PRIMARY,i_o_totalprice PRIMARY|i_o_totalprice 4|9 dbt3_s001.lineitem.l_orderkey 1 (10%) 0.27 (25%) 10.13 100.00 Using where; Using rowid filter
+set statement optimizer_switch='rowid_filter=on' for ANALYZE FORMAT=JSON SELECT o_orderkey, l_linenumber, l_shipdate, l_quantity, o_totalprice
+FROM orders JOIN lineitem ON o_orderkey=l_orderkey
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
+l_quantity > 45 AND
+o_totalprice between 180000 and 230000;
+ANALYZE
+{
+ "query_block": {
+ "select_id": 1,
+ "r_loops": 1,
+ "r_total_time_ms": "REPLACED",
+ "table": {
+ "table_name": "lineitem",
+ "access_type": "range",
+ "possible_keys": [
+ "PRIMARY",
+ "i_l_shipdate",
+ "i_l_orderkey",
+ "i_l_orderkey_quantity",
+ "i_l_quantity"
+ ],
+ "key": "i_l_shipdate",
+ "key_length": "4",
+ "used_key_parts": ["l_shipDATE"],
+ "rowid_filter": {
+ "range": {
+ "key": "i_l_quantity",
+ "used_key_parts": ["l_quantity"]
+ },
+ "rows": 662,
+ "selectivity_pct": 11.024,
+ "r_rows": 605,
+ "r_selectivity_pct": 3.6855,
+ "r_buffer_size": "REPLACED",
+ "r_filling_time_ms": "REPLACED"
+ },
+ "r_loops": 1,
+ "rows": 509,
+ "r_rows": 60,
+ "r_total_time_ms": "REPLACED",
+ "filtered": 11.024,
+ "r_filtered": 100,
+ "index_condition": "lineitem.l_shipDATE between '1997-01-01' and '1997-06-30'",
+ "attached_condition": "lineitem.l_quantity > 45"
+ },
+ "table": {
+ "table_name": "orders",
+ "access_type": "eq_ref",
+ "possible_keys": ["PRIMARY", "i_o_totalprice"],
+ "key": "PRIMARY",
+ "key_length": "4",
+ "used_key_parts": ["o_orderkey"],
+ "ref": ["dbt3_s001.lineitem.l_orderkey"],
+ "rowid_filter": {
+ "range": {
+ "key": "i_o_totalprice",
+ "used_key_parts": ["o_totalprice"]
+ },
+ "rows": 152,
+ "selectivity_pct": 10.133,
+ "r_rows": 144,
+ "r_selectivity_pct": 25.424,
+ "r_buffer_size": "REPLACED",
+ "r_filling_time_ms": "REPLACED"
+ },
+ "r_loops": 60,
+ "rows": 1,
+ "r_rows": 0.2667,
+ "r_total_time_ms": "REPLACED",
+ "filtered": 10.133,
+ "r_filtered": 100,
+ "attached_condition": "orders.o_totalprice between 180000 and 230000"
+ }
+ }
+}
set statement optimizer_switch='rowid_filter=on' for SELECT o_orderkey, l_linenumber, l_shipdate, l_quantity, o_totalprice
FROM orders JOIN lineitem ON o_orderkey=l_orderkey
WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
@@ -508,6 +789,65 @@ EXPLAIN
}
}
}
+set statement optimizer_switch='rowid_filter=off' for ANALYZE SELECT o_orderkey, l_linenumber, l_shipdate, l_quantity, o_totalprice
+FROM orders JOIN lineitem ON o_orderkey=l_orderkey
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
+l_quantity > 45 AND
+o_totalprice between 180000 and 230000;
+id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
+1 SIMPLE lineitem range PRIMARY,i_l_shipdate,i_l_orderkey,i_l_orderkey_quantity,i_l_quantity i_l_shipdate 4 NULL 509 510.00 11.02 11.76 Using index condition; Using where
+1 SIMPLE orders eq_ref PRIMARY,i_o_totalprice PRIMARY 4 dbt3_s001.lineitem.l_orderkey 1 1.00 10.13 26.67 Using where
+set statement optimizer_switch='rowid_filter=off' for ANALYZE FORMAT=JSON SELECT o_orderkey, l_linenumber, l_shipdate, l_quantity, o_totalprice
+FROM orders JOIN lineitem ON o_orderkey=l_orderkey
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
+l_quantity > 45 AND
+o_totalprice between 180000 and 230000;
+ANALYZE
+{
+ "query_block": {
+ "select_id": 1,
+ "r_loops": 1,
+ "r_total_time_ms": "REPLACED",
+ "table": {
+ "table_name": "lineitem",
+ "access_type": "range",
+ "possible_keys": [
+ "PRIMARY",
+ "i_l_shipdate",
+ "i_l_orderkey",
+ "i_l_orderkey_quantity",
+ "i_l_quantity"
+ ],
+ "key": "i_l_shipdate",
+ "key_length": "4",
+ "used_key_parts": ["l_shipDATE"],
+ "r_loops": 1,
+ "rows": 509,
+ "r_rows": 510,
+ "r_total_time_ms": "REPLACED",
+ "filtered": 11.024,
+ "r_filtered": 11.765,
+ "index_condition": "lineitem.l_shipDATE between '1997-01-01' and '1997-06-30'",
+ "attached_condition": "lineitem.l_quantity > 45"
+ },
+ "table": {
+ "table_name": "orders",
+ "access_type": "eq_ref",
+ "possible_keys": ["PRIMARY", "i_o_totalprice"],
+ "key": "PRIMARY",
+ "key_length": "4",
+ "used_key_parts": ["o_orderkey"],
+ "ref": ["dbt3_s001.lineitem.l_orderkey"],
+ "r_loops": 60,
+ "rows": 1,
+ "r_rows": 1,
+ "r_total_time_ms": "REPLACED",
+ "filtered": 10.133,
+ "r_filtered": 26.667,
+ "attached_condition": "orders.o_totalprice between 180000 and 230000"
+ }
+ }
+}
set statement optimizer_switch='rowid_filter=off' for SELECT o_orderkey, l_linenumber, l_shipdate, l_quantity, o_totalprice
FROM orders JOIN lineitem ON o_orderkey=l_orderkey
WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
@@ -536,7 +876,7 @@ WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
o_totalprice between 200000 and 230000;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE orders range PRIMARY,i_o_totalprice i_o_totalprice 9 NULL 81 Using index condition
-1 SIMPLE lineitem ref|filter PRIMARY,i_l_shipdate,i_l_orderkey,i_l_orderkey_quantity PRIMARY|i_l_shipdate 4|4 dbt3_s001.orders.o_orderkey 4 (8%) Using where; Using filter
+1 SIMPLE lineitem ref|filter PRIMARY,i_l_shipdate,i_l_orderkey,i_l_orderkey_quantity PRIMARY|i_l_shipdate 4|4 dbt3_s001.orders.o_orderkey 4 (8%) Using where; Using rowid filter
set statement optimizer_switch='rowid_filter=on' for EXPLAIN FORMAT=JSON SELECT o_orderkey, l_linenumber, l_shipdate, o_totalprice
FROM orders JOIN lineitem ON o_orderkey=l_orderkey
WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
@@ -583,6 +923,73 @@ EXPLAIN
}
}
}
+set statement optimizer_switch='rowid_filter=on' for ANALYZE SELECT o_orderkey, l_linenumber, l_shipdate, o_totalprice
+FROM orders JOIN lineitem ON o_orderkey=l_orderkey
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
+o_totalprice between 200000 and 230000;
+id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
+1 SIMPLE orders range PRIMARY,i_o_totalprice i_o_totalprice 9 NULL 81 71.00 100.00 100.00 Using index condition
+1 SIMPLE lineitem ref|filter PRIMARY,i_l_shipdate,i_l_orderkey,i_l_orderkey_quantity PRIMARY|i_l_shipdate 4|4 dbt3_s001.orders.o_orderkey 4 (8%) 0.52 (7%) 8.48 100.00 Using where; Using rowid filter
+set statement optimizer_switch='rowid_filter=on' for ANALYZE FORMAT=JSON SELECT o_orderkey, l_linenumber, l_shipdate, o_totalprice
+FROM orders JOIN lineitem ON o_orderkey=l_orderkey
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
+o_totalprice between 200000 and 230000;
+ANALYZE
+{
+ "query_block": {
+ "select_id": 1,
+ "r_loops": 1,
+ "r_total_time_ms": "REPLACED",
+ "table": {
+ "table_name": "orders",
+ "access_type": "range",
+ "possible_keys": ["PRIMARY", "i_o_totalprice"],
+ "key": "i_o_totalprice",
+ "key_length": "9",
+ "used_key_parts": ["o_totalprice"],
+ "r_loops": 1,
+ "rows": 81,
+ "r_rows": 71,
+ "r_total_time_ms": "REPLACED",
+ "filtered": 100,
+ "r_filtered": 100,
+ "index_condition": "orders.o_totalprice between 200000 and 230000"
+ },
+ "table": {
+ "table_name": "lineitem",
+ "access_type": "ref",
+ "possible_keys": [
+ "PRIMARY",
+ "i_l_shipdate",
+ "i_l_orderkey",
+ "i_l_orderkey_quantity"
+ ],
+ "key": "PRIMARY",
+ "key_length": "4",
+ "used_key_parts": ["l_orderkey"],
+ "ref": ["dbt3_s001.orders.o_orderkey"],
+ "rowid_filter": {
+ "range": {
+ "key": "i_l_shipdate",
+ "used_key_parts": ["l_shipDATE"]
+ },
+ "rows": 509,
+ "selectivity_pct": 8.4763,
+ "r_rows": 510,
+ "r_selectivity_pct": 7.7731,
+ "r_buffer_size": "REPLACED",
+ "r_filling_time_ms": "REPLACED"
+ },
+ "r_loops": 71,
+ "rows": 4,
+ "r_rows": 0.5211,
+ "r_total_time_ms": "REPLACED",
+ "filtered": 8.4763,
+ "r_filtered": 100,
+ "attached_condition": "lineitem.l_shipDATE between '1997-01-01' and '1997-06-30'"
+ }
+ }
+}
set statement optimizer_switch='rowid_filter=on' for SELECT o_orderkey, l_linenumber, l_shipdate, o_totalprice
FROM orders JOIN lineitem ON o_orderkey=l_orderkey
WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
@@ -670,6 +1077,61 @@ EXPLAIN
}
}
}
+set statement optimizer_switch='rowid_filter=off' for ANALYZE SELECT o_orderkey, l_linenumber, l_shipdate, o_totalprice
+FROM orders JOIN lineitem ON o_orderkey=l_orderkey
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
+o_totalprice between 200000 and 230000;
+id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
+1 SIMPLE orders range PRIMARY,i_o_totalprice i_o_totalprice 9 NULL 81 71.00 100.00 100.00 Using index condition
+1 SIMPLE lineitem ref PRIMARY,i_l_shipdate,i_l_orderkey,i_l_orderkey_quantity PRIMARY 4 dbt3_s001.orders.o_orderkey 4 6.70 8.48 7.77 Using where
+set statement optimizer_switch='rowid_filter=off' for ANALYZE FORMAT=JSON SELECT o_orderkey, l_linenumber, l_shipdate, o_totalprice
+FROM orders JOIN lineitem ON o_orderkey=l_orderkey
+WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
+o_totalprice between 200000 and 230000;
+ANALYZE
+{
+ "query_block": {
+ "select_id": 1,
+ "r_loops": 1,
+ "r_total_time_ms": "REPLACED",
+ "table": {
+ "table_name": "orders",
+ "access_type": "range",
+ "possible_keys": ["PRIMARY", "i_o_totalprice"],
+ "key": "i_o_totalprice",
+ "key_length": "9",
+ "used_key_parts": ["o_totalprice"],
+ "r_loops": 1,
+ "rows": 81,
+ "r_rows": 71,
+ "r_total_time_ms": "REPLACED",
+ "filtered": 100,
+ "r_filtered": 100,
+ "index_condition": "orders.o_totalprice between 200000 and 230000"
+ },
+ "table": {
+ "table_name": "lineitem",
+ "access_type": "ref",
+ "possible_keys": [
+ "PRIMARY",
+ "i_l_shipdate",
+ "i_l_orderkey",
+ "i_l_orderkey_quantity"
+ ],
+ "key": "PRIMARY",
+ "key_length": "4",
+ "used_key_parts": ["l_orderkey"],
+ "ref": ["dbt3_s001.orders.o_orderkey"],
+ "r_loops": 71,
+ "rows": 4,
+ "r_rows": 6.7042,
+ "r_total_time_ms": "REPLACED",
+ "filtered": 8.4763,
+ "r_filtered": 7.7731,
+ "attached_condition": "lineitem.l_shipDATE between '1997-01-01' and '1997-06-30'"
+ }
+ }
+}
set statement optimizer_switch='rowid_filter=off' for SELECT o_orderkey, l_linenumber, l_shipdate, o_totalprice
FROM orders JOIN lineitem ON o_orderkey=l_orderkey
WHERE l_shipdate BETWEEN '1997-01-01' AND '1997-06-30' AND
diff --git a/mysql-test/main/rowid_filter.test b/mysql-test/main/rowid_filter.test
index 6e378a7e93d..e1b0c69d470 100644
--- a/mysql-test/main/rowid_filter.test
+++ b/mysql-test/main/rowid_filter.test
@@ -46,11 +46,17 @@ SELECT l_orderkey, l_linenumber, l_shipdate, l_quantity FROM lineitem
eval $with_filter EXPLAIN $q1;
eval $with_filter EXPLAIN FORMAT=JSON $q1;
+eval $with_filter ANALYZE $q1;
+--source include/analyze-format.inc
+eval $with_filter ANALYZE FORMAT=JSON $q1;
--sorted_result
eval $with_filter $q1;
eval $without_filter EXPLAIN $q1;
eval $without_filter EXPLAIN FORMAT=JSON $q1;
+eval $without_filter ANALYZE $q1;
+--source include/analyze-format.inc
+eval $without_filter ANALYZE FORMAT=JSON $q1;
--sorted_result
eval $without_filter $q1;
@@ -62,11 +68,17 @@ SELECT o_orderkey, l_linenumber, l_shipdate, o_totalprice
eval $with_filter EXPLAIN $q2;
eval $with_filter EXPLAIN FORMAT=JSON $q2;
+eval $with_filter ANALYZE $q2;
+--source include/analyze-format.inc
+eval $with_filter ANALYZE FORMAT=JSON $q2;
--sorted_result
eval $with_filter $q2;
eval $without_filter EXPLAIN $q2;
eval $without_filter EXPLAIN FORMAT=JSON $q2;
+eval $without_filter ANALYZE $q2;
+--source include/analyze-format.inc
+eval $without_filter ANALYZE FORMAT=JSON $q2;
--sorted_result
eval $without_filter $q2;
@@ -79,11 +91,17 @@ SELECT o_orderkey, l_linenumber, l_shipdate, l_quantity, o_totalprice
eval $with_filter EXPLAIN $q3;
eval $with_filter EXPLAIN FORMAT=JSON $q3;
+eval $with_filter ANALYZE $q3;
+--source include/analyze-format.inc
+eval $with_filter ANALYZE FORMAT=JSON $q3;
--sorted_result
eval $with_filter $q3;
eval $without_filter EXPLAIN $q3;
eval $without_filter EXPLAIN FORMAT=JSON $q3;
+eval $without_filter ANALYZE $q3;
+--source include/analyze-format.inc
+eval $without_filter ANALYZE FORMAT=JSON $q3;
--sorted_result
eval $without_filter $q3;
@@ -95,11 +113,17 @@ SELECT o_orderkey, l_linenumber, l_shipdate, o_totalprice
eval $with_filter EXPLAIN $q4;
eval $with_filter EXPLAIN FORMAT=JSON $q4;
+eval $with_filter ANALYZE $q4;
+--source include/analyze-format.inc
+eval $with_filter ANALYZE FORMAT=JSON $q4;
--sorted_result
eval $with_filter $q4;
eval $without_filter EXPLAIN $q4;
eval $without_filter EXPLAIN FORMAT=JSON $q4;
+eval $without_filter ANALYZE $q4;
+--source include/analyze-format.inc
+eval $without_filter ANALYZE FORMAT=JSON $q4;
--sorted_result
eval $without_filter $q4;
diff --git a/sql/handler.h b/sql/handler.h
index 27e38e9c36f..083636017db 100644
--- a/sql/handler.h
+++ b/sql/handler.h
@@ -3014,6 +3014,7 @@ class handler :public Sql_alloc
Exec_time_tracker *tracker;
public:
void set_time_tracker(Exec_time_tracker *tracker_arg) { tracker=tracker_arg;}
+ Exec_time_tracker *get_time_tracker() { return tracker; }
Item *pushed_idx_cond;
uint pushed_idx_cond_keyno; /* The index which the above condition is for */
diff --git a/sql/rowid_filter.cc b/sql/rowid_filter.cc
index 4348eea081d..b2349d26843 100644
--- a/sql/rowid_filter.cc
+++ b/sql/rowid_filter.cc
@@ -478,6 +478,8 @@ bool Range_rowid_filter::fill()
file->position(quick->record);
if (container->add(NULL, (char*) file->ref))
rc= 1;
+ else
+ tracker->increment_container_elements_count();
}
}
@@ -488,6 +490,7 @@ bool Range_rowid_filter::fill()
file->pushed_idx_cond= pushed_idx_cond_save;
file->pushed_idx_cond_keyno= pushed_idx_cond_keyno_save;
file->in_range_check_pushed_down= in_range_check_pushed_down_save;
+ tracker->report_container_buff_size(table->file->ref_length);
if (rc != HA_ERR_END_OF_FILE)
return 1;
diff --git a/sql/rowid_filter.h b/sql/rowid_filter.h
index 3cc2c31555c..de50fd36c4c 100644
--- a/sql/rowid_filter.h
+++ b/sql/rowid_filter.h
@@ -211,6 +211,8 @@ class Rowid_filter : public Sql_alloc
/* The container to store info the set of elements in the filter */
Rowid_filter_container *container;
+ Rowid_filter_tracker *tracker;
+
public:
Rowid_filter(Rowid_filter_container *container_arg)
: container(container_arg) {}
@@ -230,6 +232,9 @@ class Rowid_filter : public Sql_alloc
virtual ~Rowid_filter() {}
Rowid_filter_container *get_container() { return container; }
+
+ void set_tracker(Rowid_filter_tracker *track_arg) { tracker= track_arg; }
+ Rowid_filter_tracker *get_tracker() { return tracker; }
};
@@ -261,7 +266,12 @@ class Range_rowid_filter: public Rowid_filter
bool build() { return fill(); }
- bool check(char *elem) { return container->check(table, elem); }
+ bool check(char *elem)
+ {
+ bool was_checked= container->check(table, elem);
+ tracker->increment_checked_elements_count(was_checked);
+ return was_checked;
+ }
bool fill();
diff --git a/sql/sql_analyze_stmt.h b/sql/sql_analyze_stmt.h
index 27fd7fb6d6a..e490e7a7236 100644
--- a/sql/sql_analyze_stmt.h
+++ b/sql/sql_analyze_stmt.h
@@ -284,3 +284,82 @@ class Filesort_tracker : public Sql_alloc
ulonglong sort_buffer_size;
};
+
+/**
+ A class to collect data about how rowid filter is executed.
+
+ It stores information about how rowid filter container is filled,
+ containers size and observed selectivity.
+
+ The observed selectivity is calculated in this way.
+ Some elements elem_set are checked if they belong to container.
+ Observed selectivity is calculated as the count of elem_set
+ elements that belong to container devided by all elem_set elements.
+*/
+
+class Rowid_filter_tracker : public Sql_alloc
+{
+private:
+ /* A member to track the time to fill the rowid filter */
+ Time_and_counter_tracker time_tracker;
+
+ /* Size of the rowid filter container buffer */
+ size_t container_buff_size;
+
+ /* Count of elements that were used to fill the rowid filter container */
+ uint container_elements;
+
+ /* Elements counts used for observed selectivity calculation */
+ uint n_checks;
+ uint n_positive_checks;
+public:
+ Rowid_filter_tracker(bool do_timing) :
+ time_tracker(do_timing), container_buff_size(0),
+ container_elements(0), n_checks(0), n_positive_checks(0)
+ {}
+
+ inline void start_tracking()
+ {
+ ANALYZE_START_TRACKING(&time_tracker);
+ }
+
+ inline void stop_tracking()
+ {
+ ANALYZE_STOP_TRACKING(&time_tracker);
+ }
+
+ /* Save container buffer size in bytes */
+ inline void report_container_buff_size(uint elem_size)
+ {
+ container_buff_size= container_elements * elem_size / 8;
+ }
+
+ Time_and_counter_tracker *get_time_tracker()
+ {
+ return &time_tracker;
+ }
+
+ double get_time_fill_container_ms()
+ {
+ return time_tracker.get_time_ms();
+ }
+
+ void increment_checked_elements_count(bool was_checked)
+ {
+ n_checks++;
+ if (was_checked)
+ n_positive_checks++;
+ }
+
+ inline void increment_container_elements_count() { container_elements++; }
+
+ uint get_container_elements() { return container_elements; }
+
+ double get_r_selectivity_pct()
+ {
+ return (double)n_positive_checks/(double)n_checks;
+ }
+
+ size_t get_container_buff_size() { return container_buff_size; }
+};
+
diff --git a/sql/sql_class.cc b/sql/sql_class.cc
index e6453415475..42b94d95933 100644
--- a/sql/sql_class.cc
+++ b/sql/sql_class.cc
@@ -2728,7 +2728,7 @@ void THD::make_explain_field_list(List<Item> &field_list, uint8 explain_flags,
if (is_analyze)
{
field_list.push_back(item= new (mem_root)
- Item_float(this, "r_rows", 0.1234, 10, 4),
+ Item_empty_string(this, "r_rows", NAME_CHAR_LEN, cs),
mem_root);
item->maybe_null=1;
}
diff --git a/sql/sql_explain.cc b/sql/sql_explain.cc
index c7c6f15f7cc..0c2f49338fe 100644
--- a/sql/sql_explain.cc
+++ b/sql/sql_explain.cc
@@ -1324,6 +1324,7 @@ int Explain_table_access::print_explain(select_result_sink *output, uint8 explai
item_list.push_back(item_null, mem_root);
/* `r_rows` */
+ StringBuffer<64> r_rows_str;
if (is_analyze)
{
if (!tracker.has_scans())
@@ -1333,8 +1334,19 @@ int Explain_table_access::print_explain(select_result_sink *output, uint8 explai
else
{
double avg_rows= tracker.get_avg_rows();
- item_list.push_back(new (mem_root) Item_float(thd, avg_rows, 2),
- mem_root);
+ Item_float *fl= new (mem_root) Item_float(thd, avg_rows, 2);
+ String tmp;
+ String *res= fl->val_str(&tmp);
+ r_rows_str.append(res->ptr());
+ if (rowid_filter)
+ {
+ r_rows_str.append(" (");
+ r_rows_str.append_ulonglong(rowid_filter->tracker->get_r_selectivity_pct() * 100.0);
+ r_rows_str.append("%)");
+ }
+ item_list.push_back(new (mem_root)
+ Item_string_sys(thd, r_rows_str.ptr(),
+ r_rows_str.length()), mem_root);
}
}
@@ -1404,7 +1416,7 @@ int Explain_table_access::print_explain(select_result_sink *output, uint8 explai
first= false;
else
extra_buf.append(STRING_WITH_LEN("; "));
- extra_buf.append(STRING_WITH_LEN("Using filter"));
+ extra_buf.append(STRING_WITH_LEN("Using rowid filter"));
}
item_list.push_back(new (mem_root)
@@ -1604,6 +1616,16 @@ void Explain_rowid_filter::print_explain_json(Explain_query *query,
quick->print_json(writer);
writer->add_member("rows").add_ll(rows);
writer->add_member("selectivity_pct").add_double(selectivity * 100.0);
+ if (is_analyze)
+ {
+ writer->add_member("r_rows").add_double(tracker->get_container_elements());
+ writer->add_member("r_selectivity_pct").
+ add_double(tracker->get_r_selectivity_pct() * 100.0);
+ writer->add_member("r_buffer_size").
+ add_double(tracker->get_container_buff_size());
+ writer->add_member("r_filling_time_ms").
+ add_double(tracker->get_time_fill_container_ms());
+ }
writer->end_object(); // rowid_filter
}
@@ -1742,8 +1764,10 @@ void Explain_table_access::print_explain_json(Explain_query *query,
if (op_tracker.get_loops())
{
- writer->add_member("r_total_time_ms").
- add_double(op_tracker.get_time_ms());
+ double total_time= op_tracker.get_time_ms();
+ if (rowid_filter)
+ total_time+= rowid_filter->tracker->get_time_fill_container_ms();
+ writer->add_member("r_total_time_ms").add_double(total_time);
}
}
diff --git a/sql/sql_explain.h b/sql/sql_explain.h
index a161f6c1049..08966b71faa 100644
--- a/sql/sql_explain.h
+++ b/sql/sql_explain.h
@@ -624,6 +624,9 @@ class Explain_rowid_filter : public Sql_alloc
/* Expected selectivity for the filter */
double selectivity;
+ /* Tracker with the information about how rowid filter is executed */
+ Rowid_filter_tracker *tracker;
+
void print_explain_json(Explain_query *query, Json_writer *writer,
bool is_analyze);
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index a17682bd9c8..3d231345b73 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -12619,6 +12619,18 @@ void JOIN_TAB::build_range_rowid_filter_if_needed()
{
if (rowid_filter && !is_rowid_filter_built)
{
+ /**
+ The same handler object (table->file) is used to build a filter
+ and to perfom a primary table access (by the main query).
+
+ To estimate the time for filter building tracker should be changed
+ and after building of the filter has been finished it should be
+ switched back to the previos tracker.
+ */
+ Exec_time_tracker *table_tracker= table->file->get_time_tracker();
+ Rowid_filter_tracker *rowid_tracker= rowid_filter->get_tracker();
+ table->file->set_time_tracker(rowid_tracker->get_time_tracker());
+ rowid_tracker->start_tracking();
if (!rowid_filter->build())
{
is_rowid_filter_built= true;
@@ -12628,6 +12640,8 @@ void JOIN_TAB::build_range_rowid_filter_if_needed()
delete rowid_filter;
rowid_filter= 0;
}
+ rowid_tracker->stop_tracking();
+ table->file->set_time_tracker(table_tracker);
}
}
@@ -25408,8 +25422,10 @@ bool JOIN_TAB::save_explain_data(Explain_table_access *eta,
erf->quick= quick->get_explain(thd->mem_root);
erf->selectivity= range_rowid_filter_info->selectivity;
erf->rows= quick->records;
+ if (!(erf->tracker= new Rowid_filter_tracker(thd->lex->analyze_stmt)))
+ return 1;
+ rowid_filter->set_tracker(erf->tracker);
eta->rowid_filter= erf;
- //psergey-todo: also do setup for ANALYZE here.
}
if (tab_type == JT_NEXT)
1
0

[Commits] a4c687c: the opt_constraint_no_id should not have the lex_str type.
by holyfootï¼ askmonty.org 06 Feb '19
by holyfootï¼ askmonty.org 06 Feb '19
06 Feb '19
revision-id: a4c687c4944723a5dc531e6cff1aa3e6d60df821 (mariadb-10.2.21-68-ga4c687c)
parent(s): e84dc567becf7e8dc4b0c1428e0c9132c1269186
committer: Alexey Botchkov
timestamp: 2019-02-06 16:53:16 +0400
message:
the opt_constraint_no_id should not have the lex_str type.
---
sql/sql_yacc.yy | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index 14d084e..133aad5 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -1741,7 +1741,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
IDENT_sys TEXT_STRING_sys TEXT_STRING_literal
NCHAR_STRING opt_component key_cache_name
sp_opt_label BIN_NUM label_ident TEXT_STRING_filesystem ident_or_empty
- opt_constraint opt_constraint_no_id constraint opt_ident ident_table_alias
+ opt_constraint constraint opt_ident ident_table_alias
%type <lex_str_ptr>
opt_table_alias
1
0

[Commits] 62bdb8ec966: Make sure MyRocks tables do not have stats.records=0 as that confuses the optimizer.
by Sergei Petrunia 05 Feb '19
by Sergei Petrunia 05 Feb '19
05 Feb '19
revision-id: 62bdb8ec966a0f44db82955a126b10c646fa6265 (mariadb-10.3.6-102-g62bdb8ec966)
parent(s): 33907360f56789cd9b467b40e66412eb0a0aff28
author: Sergei Petrunia
committer: Sergei Petrunia
timestamp: 2019-02-06 02:38:47 +0300
message:
Make sure MyRocks tables do not have stats.records=0 as that confuses the optimizer.
They generally don't have stats.records=0, the the statistics are computed
based on GetApproximateSizes and GetApproximateMemTableStats. Still, when
there's nothing on disk and only a few records are in the MemTable, it
is possible that both calls will return 0, and the optimizer will see
stats.records=0, which may cause "impossible range" condition (even if
records_in_range() returned a non-zero value)
---
storage/rocksdb/ha_rocksdb.cc | 5 +++++
storage/rocksdb/mysql-test/rocksdb/r/records_in_range.result | 4 ++--
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/storage/rocksdb/ha_rocksdb.cc b/storage/rocksdb/ha_rocksdb.cc
index 9f73b95cb4d..a940e451f75 100644
--- a/storage/rocksdb/ha_rocksdb.cc
+++ b/storage/rocksdb/ha_rocksdb.cc
@@ -10755,6 +10755,11 @@ int ha_rocksdb::info(uint flag) {
stats.data_file_length += m_table_handler->m_mtcache_size;
}
+ // Do like InnoDB does. stats.records=0 confuses the optimizer
+ if (stats.records == 0 && !(flag & (HA_STATUS_TIME | HA_STATUS_OPEN))) {
+ stats.records++;
+ }
+
if (rocksdb_debug_optimizer_n_rows > 0)
stats.records = rocksdb_debug_optimizer_n_rows;
}
diff --git a/storage/rocksdb/mysql-test/rocksdb/r/records_in_range.result b/storage/rocksdb/mysql-test/rocksdb/r/records_in_range.result
index 9bbbdec4794..228e1313e74 100644
--- a/storage/rocksdb/mysql-test/rocksdb/r/records_in_range.result
+++ b/storage/rocksdb/mysql-test/rocksdb/r/records_in_range.result
@@ -183,7 +183,7 @@ insert into linktable values (1,1,4,1,1,1,1,1,1);
set global rocksdb_force_flush_memtable_now = true;
explain select id1, id2, link_type, visibility, data, time, version from linktable where id1 = 1 and link_type = 1 and id2 in (1, 2);
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE linktable range PRIMARY,id1_type PRIMARY 24 NULL 2 Using where
+1 SIMPLE linktable ref PRIMARY,id1_type PRIMARY 16 const,const 2 Using where
drop table linktable;
CREATE TABLE `linktable` (
`id1` bigint(20) unsigned NOT NULL DEFAULT '0',
@@ -205,6 +205,6 @@ insert into linktable values (1,1,4,1,1,1,1,1,1);
set global rocksdb_force_flush_memtable_now = true;
explain select id1, id2, link_type, visibility, data, time, version from linktable where id1 = 1 and link_type = 1 and id2 in (1, 2);
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE linktable range PRIMARY,id1_type PRIMARY 24 NULL 2 Using where
+1 SIMPLE linktable ref PRIMARY,id1_type PRIMARY 16 const,const 2 Using where
drop table linktable;
DROP TABLE t1;
1
0

[Commits] 698df0a1ae0: MDEV-12009: Allow to force kill user threads/query which are flagged as high priority by Galera
by jan 05 Feb '19
by jan 05 Feb '19
05 Feb '19
revision-id: 698df0a1ae0f72199afb71dc560552ce00c4dc35 (mariadb-10.1.37-81-g698df0a1ae0)
parent(s): c889c8de46dfa1216a46656700e17ba5e1adfdc1
author: Jan Lindström
committer: Jan Lindström
timestamp: 2019-02-05 15:41:53 +0200
message:
MDEV-12009: Allow to force kill user threads/query which are flagged as high priority by Galera
As noted on kill_one_thread SUPER should be able to kill even
system threads i.e. threads/query flagged as high priority or
wsrep applier thread. Normal user, should not able to kill
threads/query flagged as high priority (BF) or wsrep applier
thread.
---
include/mysql/service_wsrep.h | 3 ++
.../suite/galera/r/galera_kill_applier.result | 4 ++
mysql-test/suite/galera/t/galera_kill_applier.cnf | 10 ++++
mysql-test/suite/galera/t/galera_kill_applier.test | 54 ++++++++++++++++++++--
sql/sql_parse.cc | 14 ++++--
sql/sql_plugin_services.ic | 3 +-
sql/wsrep_dummy.cc | 3 ++
sql/wsrep_mysqld.cc | 1 -
sql/wsrep_thd.cc | 9 ++++
sql/wsrep_thd.h | 2 +
10 files changed, 95 insertions(+), 8 deletions(-)
diff --git a/include/mysql/service_wsrep.h b/include/mysql/service_wsrep.h
index 63499dfbd1f..c8f45387f81 100644
--- a/include/mysql/service_wsrep.h
+++ b/include/mysql/service_wsrep.h
@@ -111,6 +111,7 @@ extern struct wsrep_service_st {
int (*wsrep_trx_order_before_func)(MYSQL_THD, MYSQL_THD);
void (*wsrep_unlock_rollback_func)();
void (*wsrep_set_data_home_dir_func)(const char *data_dir);
+ my_bool (*wsrep_thd_is_applier_func)(THD *thd);
} *wsrep_service;
#ifdef MYSQL_DYNAMIC_PLUGIN
@@ -153,6 +154,7 @@ extern struct wsrep_service_st {
#define wsrep_trx_order_before(T1,T2) wsrep_service->wsrep_trx_order_before_func(T1,T2)
#define wsrep_unlock_rollback() wsrep_service->wsrep_unlock_rollback_func()
#define wsrep_set_data_home_dir(A) wsrep_service->wsrep_set_data_home_dir_func(A)
+#define wsrep_thd_is_applier(T) wsrep_service->wsrep_thd_is_applier_func(T)
#define wsrep_debug get_wsrep_debug()
#define wsrep_log_conflicts get_wsrep_log_conflicts()
@@ -211,6 +213,7 @@ void wsrep_thd_set_conflict_state(THD *thd, enum wsrep_conflict_state state);
bool wsrep_thd_ignore_table(THD *thd);
void wsrep_unlock_rollback();
void wsrep_set_data_home_dir(const char *data_dir);
+my_bool wsrep_thd_is_applier(THD *thd);
#endif
diff --git a/mysql-test/suite/galera/r/galera_kill_applier.result b/mysql-test/suite/galera/r/galera_kill_applier.result
index fe4911639ed..89f8ead0b65 100644
--- a/mysql-test/suite/galera/r/galera_kill_applier.result
+++ b/mysql-test/suite/galera/r/galera_kill_applier.result
@@ -1,4 +1,8 @@
+CREATE USER foo@localhost;
+GRANT SELECT on test.* TO foo@localhost;
+# Open connection to the 1st node using 'test_user1' user.
Got one of the listed errors
Got one of the listed errors
Got one of the listed errors
Got one of the listed errors
+DROP USER foo@localhost;
diff --git a/mysql-test/suite/galera/t/galera_kill_applier.cnf b/mysql-test/suite/galera/t/galera_kill_applier.cnf
new file mode 100644
index 00000000000..f2563e66f2e
--- /dev/null
+++ b/mysql-test/suite/galera/t/galera_kill_applier.cnf
@@ -0,0 +1,10 @@
+!include ../galera_2nodes.cnf
+
+[mysqld.1]
+wsrep_provider_options='base_port=(a)mysqld.1.#galera_port;pc.ignore_sb=true'
+auto_increment_offset=1
+
+[mysqld.2]
+wsrep_provider_options='base_port=(a)mysqld.2.#galera_port;pc.ignore_sb=true'
+auto_increment_offset=2
+
diff --git a/mysql-test/suite/galera/t/galera_kill_applier.test b/mysql-test/suite/galera/t/galera_kill_applier.test
index e14a8b9af23..5e4a587fe57 100644
--- a/mysql-test/suite/galera/t/galera_kill_applier.test
+++ b/mysql-test/suite/galera/t/galera_kill_applier.test
@@ -1,14 +1,25 @@
#
# This test checks that applier threads are immune to KILL QUERY and KILL STATEMENT
+# when USER is not SUPER
#
--source include/galera_cluster.inc
---source include/have_innodb.inc
--connection node_1
+CREATE USER foo@localhost;
+GRANT SELECT on test.* TO foo@localhost;
+
--let $applier_thread = `SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE != 'wsrep aborter idle' OR STATE IS NULL LIMIT 1`
+--let $aborter_thread = `SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep aborter idle' LIMIT 1`
+
+--echo # Open connection to the 1st node using 'test_user1' user.
+--let $port_1= \$NODE_MYPORT_1
+--connect(foo_node_1,localhost,foo,,test,$port_1,)
+
+--connection foo_node_1
+
--disable_query_log
--error ER_KILL_DENIED_ERROR,ER_KILL_DENIED_ERROR
--eval KILL $applier_thread
@@ -16,11 +27,48 @@
--error ER_KILL_DENIED_ERROR,ER_KILL_DENIED_ERROR
--eval KILL QUERY $applier_thread
---let $aborter_thread = `SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep aborter idle' LIMIT 1`
-
--error ER_KILL_DENIED_ERROR,ER_KILL_DENIED_ERROR
--eval KILL $aborter_thread
--error ER_KILL_DENIED_ERROR,ER_KILL_DENIED_ERROR
--eval KILL QUERY $aborter_thread
--enable_query_log
+
+#
+# SUPER can kill applier threads
+#
+--connection node_2
+
+--let $applier_thread = `SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE != 'wsrep aborter idle' OR STATE IS NULL LIMIT 1`
+
+--disable_query_log
+--eval KILL $applier_thread
+--enable_query_log
+
+--let $aborter_thread = `SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep aborter idle' LIMIT 1`
+
+--disable_query_log
+--eval KILL $aborter_thread
+--enable_query_log
+
+--source include/restart_mysqld.inc
+
+--connection node_2
+--let $applier_thread = `SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE != 'wsrep aborter idle' OR STATE IS NULL LIMIT 1`
+
+--disable_query_log
+--eval KILL QUERY $applier_thread
+--enable_query_log
+
+--let $aborter_thread = `SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep aborter idle' LIMIT 1`
+
+--disable_query_log
+--eval KILL QUERY $aborter_thread
+--enable_query_log
+
+--source include/restart_mysqld.inc
+
+--connection node_1
+--disconnect foo_node_1
+DROP USER foo@localhost;
+
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index 3f6ce8356ce..83278559a9c 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -8297,11 +8297,19 @@ kill_one_thread(THD *thd, longlong id, killed_state kill_signal, killed_type typ
It's ok to also kill DELAYED threads with KILL_CONNECTION instead of
KILL_SYSTEM_THREAD; The difference is that KILL_CONNECTION may be
faster and do a harder kill than KILL_SYSTEM_THREAD;
+
+ Note that if thread is wsrep Brute Force or applier thread we
+ allow killing it only when we're SUPER.
*/
- if (((thd->security_ctx->master_access & SUPER_ACL) ||
- thd->security_ctx->user_matches(tmp->security_ctx)) &&
- !wsrep_thd_is_BF(tmp, false))
+ if ((thd->security_ctx->master_access & SUPER_ACL) ||
+ (thd->security_ctx->user_matches(tmp->security_ctx)
+#ifdef WITH_WSREP
+ &&
+ !tmp->wsrep_applier &&
+ !wsrep_thd_is_BF(tmp, false)
+#endif
+ ))
{
tmp->awake(kill_signal);
error=0;
diff --git a/sql/sql_plugin_services.ic b/sql/sql_plugin_services.ic
index 95301a5fbe8..a0d42c04dba 100644
--- a/sql/sql_plugin_services.ic
+++ b/sql/sql_plugin_services.ic
@@ -180,7 +180,8 @@ static struct wsrep_service_st wsrep_handler = {
wsrep_trx_is_aborting,
wsrep_trx_order_before,
wsrep_unlock_rollback,
- wsrep_set_data_home_dir
+ wsrep_set_data_home_dir,
+ wsrep_thd_is_applier,
};
static struct thd_specifics_service_st thd_specifics_handler=
diff --git a/sql/wsrep_dummy.cc b/sql/wsrep_dummy.cc
index 20b2bc81568..4595421ac3e 100644
--- a/sql/wsrep_dummy.cc
+++ b/sql/wsrep_dummy.cc
@@ -20,6 +20,9 @@
my_bool wsrep_thd_is_BF(THD *, my_bool)
{ return 0; }
+my_bool wsrep_thd_is_applier(THD *)
+{ return 0; }
+
int wsrep_trx_order_before(THD *, THD *)
{ return 0; }
diff --git a/sql/wsrep_mysqld.cc b/sql/wsrep_mysqld.cc
index 0a988f4a3e6..22b383970c9 100644
--- a/sql/wsrep_mysqld.cc
+++ b/sql/wsrep_mysqld.cc
@@ -2469,7 +2469,6 @@ extern "C" void wsrep_thd_set_exec_mode(THD *thd, enum wsrep_exec_mode mode)
thd->wsrep_exec_mode= mode;
}
-
extern "C" void wsrep_thd_set_query_state(
THD *thd, enum wsrep_query_state state)
{
diff --git a/sql/wsrep_thd.cc b/sql/wsrep_thd.cc
index eb26da61282..492a3b67c68 100644
--- a/sql/wsrep_thd.cc
+++ b/sql/wsrep_thd.cc
@@ -596,6 +596,15 @@ my_bool wsrep_thd_is_BF(THD *thd, my_bool sync)
return status;
}
+my_bool wsrep_thd_is_applier(THD *thd)
+{
+ my_bool ret = FALSE;
+ if (thd) {
+ ret = thd->wsrep_applier;
+ }
+ return ret;
+}
+
extern "C"
my_bool wsrep_thd_is_BF_or_commit(void *thd_ptr, my_bool sync)
{
diff --git a/sql/wsrep_thd.h b/sql/wsrep_thd.h
index 5900668f3fb..f5fcb50280c 100644
--- a/sql/wsrep_thd.h
+++ b/sql/wsrep_thd.h
@@ -37,6 +37,7 @@ int wsrep_abort_thd(void *bf_thd_ptr, void *victim_thd_ptr,
*/
extern void wsrep_thd_set_PA_safe(void *thd_ptr, my_bool safe);
extern my_bool wsrep_thd_is_BF(THD *thd, my_bool sync);
+extern my_bool wsrep_thd_is_applier(THD *thd);
extern my_bool wsrep_thd_is_wsrep(void *thd_ptr);
enum wsrep_conflict_state wsrep_thd_conflict_state(void *thd_ptr, my_bool sync);
@@ -47,6 +48,7 @@ extern "C" int wsrep_thd_in_locking_session(void *thd_ptr);
#else /* WITH_WSREP */
#define wsrep_thd_is_BF(T, S) (0)
+#define wsrep_thd_is_applier(T) (0)
#define wsrep_abort_thd(X,Y,Z) do { } while(0)
#define wsrep_create_appliers(T) do { } while(0)
1
0